From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web08.171.1615425921508693317 for ; Wed, 10 Mar 2021 17:25:21 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=vKvGdznG; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: ray.ni@intel.com) IronPort-SDR: 4SYziWMuwfP0NItrNDlZW+3v67p62D0k7bckntjhMVp6LZEC8ou5lS/0utedbjVlzePCZQ/1sz xQsBHYbUrSgw== X-IronPort-AV: E=McAfee;i="6000,8403,9919"; a="186216578" X-IronPort-AV: E=Sophos;i="5.81,238,1610438400"; d="scan'208";a="186216578" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2021 17:25:19 -0800 IronPort-SDR: d0LFuBdGQTk4oLshZ+8T2DlArP3+qZG3inINj4avnWOgCYR+z1rqoqtasZTcBoTGQoNRMsI4aK B47FMXBm9QqA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,238,1610438400"; d="scan'208";a="370394831" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga003.jf.intel.com with ESMTP; 10 Mar 2021 17:25:19 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 10 Mar 2021 17:25:19 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 10 Mar 2021 17:25:19 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.105) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Wed, 10 Mar 2021 17:25:18 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HrC9GKbxTYDyJXjLdfMXi308RIeGXf5CCdz+pT+6mKUQN/+XKgy2XICXIeuzEKWG9aL6HiIWLdbL8MG9lKYQDKROeFRvSbDKfIPar1DtYZftm5trI8j0pOXVBujVsA2K3zNn+kNOsDRrc/ZDfQGjU+Q29bxZaB9NEEZhGxVbYV3VlPRFB4SredY5Sy3oascbsOrOI7X14B397cgYRYb2EG0zN6MU4XyialcXX4xZX65kQGoXdjoQQ+iUNtYtevJAoQM1jwhEB7foTSgAHuXpsYJHJZAO+OHnkr0eFslKi1+gy5E4L2L3LDEjbzKnUZgHf9iATZscvJiI0ru6xEqfiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LgrdJ1wueG81PnztxR+2iuFKG5AviT4g0WVJtvz1sTY=; b=Kt2N/5JhfQ6su1fhoSCY1E3cz8G7tmrVMXcsEJmBTJg3GqGtH5CQMopdm5QVQeE10A9F7bh6qxvrtXuj7nUUp438DRb+NmJDeN4uTCkJp0qPddvk9Uk0OVOX+xt14EiPjySaElBvaxbzPDULdFzqR+znz3LcVsqFP3YRa/Ma4buAawEPeMC97xa4lsuFYD9b78BfnGZBed0kaiqtnw4zWLNEBNDOp3/yKfPYteSsN77dT84VcPlTZbjD9z7Y93eKKiPVB1t4/L4dI3r/R0cfUN4cKplITg3ugW0yRV+/lvZgWNtElnRcCJX0e6MvamCo46WtJwUoqMLbb/Xpqs1sAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LgrdJ1wueG81PnztxR+2iuFKG5AviT4g0WVJtvz1sTY=; b=vKvGdznGfI8OaM5gKMD/V2NPEaoYgNqvvIFEJq1yXy/7ZmjGd79546IJhQwQPCTjt8Euss6/rP65yszdUmpY4RGSQU8wu/BKLQ2/6w36JzsiOfhw4yvPvbT1dzPjSFSSDW3ogiFXVrtBsT7S1Q1OUztSZLEk3/khzpMpmYmn5sc= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB4964.namprd11.prod.outlook.com (2603:10b6:303:9e::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.26; Thu, 11 Mar 2021 01:25:15 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95%7]) with mapi id 15.20.3912.030; Thu, 11 Mar 2021 01:25:15 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Liu, Zhiguang" CC: "Dong, Eric" , Liming Gao , "Desimone, Nathaniel L" , "Agyeman, Prince" , "Gao, Zhichao" Subject: Re: [edk2-devel] [Patch edk2-platforms V3] Intel/BoardModulePkg: sort load option in the first boot Thread-Topic: [edk2-devel] [Patch edk2-platforms V3] Intel/BoardModulePkg: sort load option in the first boot Thread-Index: AQHXFhUMb9nXPRLHz0qo2KulaF8I76p9/oYA Date: Thu, 11 Mar 2021 01:25:15 +0000 Message-ID: References: <20210311012149.1042-1-zhiguang.liu@intel.com> In-Reply-To: <20210311012149.1042-1-zhiguang.liu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [124.77.195.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 250b5424-c617-4fb2-1223-08d8e42c866b x-ms-traffictypediagnostic: CO1PR11MB4964: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QIFU19r+wCdyefXd79ACGLnNq66eKwrYCbGtyaSS10csSfOHSBgtwnvkpuMNwiFJ3Xkzh0ePn+DTIJT/df6t+XSMZLiNKWU/ru1qSQQkdvYFu2wRiuRWePYnH10DQbifRHAcPVyySrXNh1hq8LYDAgx4mmBiu33AJi6EnLPr5CIZLhVVhUyHfJkx1aZBcymxsL5NfKrCzFWjcaWwHm7DrTAs5w5j3NU2R5mA72YeBa0zGS8ljzwQdI5VIPRkJv+CvlaQ0AEUQKggVR4JAJWMZ0tYlG3L7MiPXHpIpzmQ/lLUhf4LhhHsSinfxgi8nObhA0Ea9ybrOOYc8WxKVSeLakGQkyb9luMamIVMARGGV2+FCiqEiPoqE8NdOH1eDDjERhKcv2mRwYkMDIz70vrzfetb5sRDZu9rhdVsLV/iWQ0FSuNTGBG4Gqb2ZmGqgSC8Co7mfzzbiMu8yDfxK7r1Gih8xKIRhvFvIZ0uzyiHRs32US7IftvLSXJURcJfBYeGZOvFX3HBaFPsZTMNW5R1CVtdu8h7JD0dxMw9Hlwkl+SUTwyU08McZIy3mws1MTKNJu8RNos/JQ2zZahfJ77lthR9TStUEMIg0Fs6Qa5S1hI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(136003)(346002)(39860400002)(366004)(396003)(107886003)(9686003)(6636002)(53546011)(6506007)(64756008)(76116006)(66476007)(66556008)(316002)(54906003)(5660300002)(110136005)(966005)(66946007)(83380400001)(2906002)(186003)(8936002)(33656002)(8676002)(86362001)(66446008)(52536014)(478600001)(7696005)(26005)(55016002)(4326008)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?4BwB1EAPtEPvLZ16LiirPskRm0eZUL8jjkTxeXSfmwTquFLvp7SWxN36wWkA?= =?us-ascii?Q?HEYwaIBTHvKawb9HNB6f48wuTlOxH93+d1mHF/dC6au4f6y2NbZL1mThJi9r?= =?us-ascii?Q?lilRxkpltGRvKvg+EY3EY60iTC10EUwkhgF4YZKsJ2jT6522Y8Nqv5EWasok?= =?us-ascii?Q?nv8E0uPTER2ufFVMTG4Kv/Kd5m3qkT34Aq3kWEgT4X8L5X/tTFB7dtTEeZ5v?= =?us-ascii?Q?oTmsUxCLCrJHBPnxvxCf7Y8OaWAipSQ6YyUaNV+4kCOPYvNXAtsq8LlTpGCM?= =?us-ascii?Q?o+Ho2XFsZy+bQeFYTc+3Q3nii+ZsF5YdNCb4DHeZdH7W8bu0NfqTHN6sCYdr?= =?us-ascii?Q?+itAumcy2v568zxUvHaAG4azNophPspweGNgqMzHd9I9PIOrgQkiRVSM/LDx?= =?us-ascii?Q?Ptj3dwk1zs4hN7C0DDobz4zVhi0AUXi9BPv7/WgcaxPf0DgyK7BSpwkdvoIJ?= =?us-ascii?Q?tn124Pq+LoJ478g1TTJ92M7FzdAm+c5msCRyThlm2PIipexBKl1vwdPrJTlj?= =?us-ascii?Q?8wMkVzgBq1rmQz1zxLG3/PPJ6IIip8Yg4njfTKNUFi/nTFYIH9VS3BREZdJp?= =?us-ascii?Q?NeJlyU8OFALrj+NdOerD7xf/m6rx9mpBNtKsJ7E+IiF0xvhrSgOUQuRsXsC0?= =?us-ascii?Q?+EmSdsWTILpuX4qtdK/NbvLRJ7hqFj1HWRWSA+LmR1E1F8TYz2fVwN7TYGcw?= =?us-ascii?Q?yEkHtWZXGxEJIbrGcIoaHSU4ehLya+IuuEZUOB6g6Z0TUlNQ/iGtTrUjnllB?= =?us-ascii?Q?6KM9DZVUqQaMZ0lXYKJnAOAQgz0PAMR/06ihjTlim4c3B/R4YyY1pGphJMkm?= =?us-ascii?Q?mWVelsq55hb1RhtETiGEKfp43uiAMp1wdEn5N1fZDfac4NkpMX1EPGnZXX2G?= =?us-ascii?Q?CR1rtnzXYO33YJ0DrGxaxowtri7mfn+UTcJHj/k4U8iFfPoDClX+Gem4XcwI?= =?us-ascii?Q?xz1Qi41TJNfVAp2+5XgcEDqEUQPiHT2fTmbhIMRDOwZEQfq3h14P2edKZP2w?= =?us-ascii?Q?VGudq86BCEVlJZALUSN9Ice+gz4crmUGDeCn+WVcllOPr+lVvKAevHodnHKH?= =?us-ascii?Q?oP6F/bPhw2jKlm7gAoIFd3softb+2dJnTj4tHfkxFgbf8N2YtOpSDwGJodCR?= =?us-ascii?Q?AYWFe1HZivu6LgyCAEU0P3SEe9W0Zkj6q5kh/zNnFd3FkYjSy8jxntD1iLDO?= =?us-ascii?Q?YH4jc9Mks8U+mrTJ5M3V1aVUgS9YQ8st8sTR+XmBgd/dn3a/FlXcOk+3BMjb?= =?us-ascii?Q?XIVc/tAgYTG7fVr8WwHRDXD2Yghja8ELIHiRnP+hcH3ttHX5ZZX3KYme/t6O?= =?us-ascii?Q?7atTXRhL33anV/ZJxxdwd9VF?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 250b5424-c617-4fb2-1223-08d8e42c866b X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2021 01:25:15.5244 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7Env6IF6rwZl9ucKsR/Gfmzu2kh7/XTTcZFmsb+tzZpG1n9SYh4Dl/E3oMXkFwDk/LgyyPTt9GZiCr0LNoEOpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4964 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ray Ni > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Zhiguang L= iu > Sent: Thursday, March 11, 2021 9:22 AM > To: devel@edk2.groups.io > Cc: Dong, Eric ; Liming Gao ; Desimone, Nathaniel L > ; Agyeman, Prince ; Ni, Ray ; Gao, Zhichao > > Subject: [edk2-devel] [Patch edk2-platforms V3] Intel/BoardModulePkg: sor= t load option in the first boot >=20 > Currently, load option is only sorted when setup is the first priority in= boot > option. However, Below change in UefiBootManagerLib puts setup in the end= , which > causes the sort function won't be called. > MdeModulePkg/UefiBootManagerLib: Put BootMenu at the end of BootOrder > SHA-1: 7f34681c488aee2563eaa2afcc6a2c8aa7c5b912 >=20 > This patch will set a NV variable in the first boot, and sort the boot op= tion > in first boot. >=20 > Cc: Eric Dong > Cc: Liming Gao > Cc: Nate DeSimone > Cc: Prince Agyeman > Cc: Ray Ni > Cc: Zhichao Gao >=20 > Signed-off-by: Zhiguang Liu > --- > Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c = | 72 > +++++++++++++++++++++++++++++++++++++----------------------------------- > 1 file changed, 37 insertions(+), 35 deletions(-) >=20 > diff --git a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardB= dsHookLib.c > b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c > index d7612fb80a..a37139a007 100644 > --- a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookL= ib.c > +++ b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookL= ib.c > @@ -20,6 +20,8 @@ >=20 >=20 > #include "BoardBdsHook.h" >=20 >=20 >=20 > +#define IS_FIRST_BOOT_VAR_NAME L"IsFirstBoot" >=20 > + >=20 > GLOBAL_REMOVE_IF_UNREFERENCED EFI_BOOT_MODE gBootMode; >=20 > BOOLEAN gPPRequireUIConfirm; >=20 > extern UINTN mBootMenuOptionNumber; >=20 > @@ -992,37 +994,6 @@ ConnectSequence ( > EfiBootManagerConnectAll (); >=20 > } >=20 >=20 >=20 > - >=20 > -/** >=20 > - The function is to consider the boot order which is not in our expecta= tion. >=20 > - In the case that we need to re-sort the boot option. >=20 > - >=20 > - @retval TRUE Need to sort Boot Option. >=20 > - @retval FALSE Don't need to sort Boot Option. >=20 > -**/ >=20 > -BOOLEAN >=20 > -IsNeedSortBootOption ( >=20 > - VOID >=20 > - ) >=20 > -{ >=20 > - EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions; >=20 > - UINTN BootOptionCount; >=20 > - >=20 > - BootOptions =3D EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOp= tionTypeBoot); >=20 > - >=20 > - // >=20 > - // If setup is the first priority in boot option, we need to sort boot= option. >=20 > - // >=20 > - if ((BootOptionCount > 1) && >=20 > - (((StrnCmp (BootOptions->Description, L"Enter Setup", StrLen (L"Ente= r Setup"))) =3D=3D 0) || >=20 > - ((StrnCmp (BootOptions->Description, L"BootManagerMenuApp", StrLen (= L"BootManagerMenuApp"))) =3D=3D 0))) { >=20 > - return TRUE; >=20 > - } >=20 > - >=20 > - return FALSE; >=20 > -} >=20 > - >=20 > - >=20 > /** >=20 > Connects Root Bridge >=20 > **/ >=20 > @@ -1332,6 +1303,9 @@ BdsAfterConsoleReadyBeforeBootOptionCallback ( > ) >=20 > { >=20 > EFI_BOOT_MODE LocalBootMode; >=20 > + EFI_STATUS Status; >=20 > + BOOLEAN IsFirstBoot; >=20 > + UINTN DataSize; >=20 >=20 >=20 > DEBUG ((DEBUG_INFO, "Event gBdsAfterConsoleReadyBeforeBootOptionEvent = callback starts\n")); >=20 > // >=20 > @@ -1376,14 +1350,42 @@ BdsAfterConsoleReadyBeforeBootOptionCallback ( > // >=20 > // PXE boot option may appear after boot option enumeration >=20 > // >=20 > + >=20 > + EfiBootManagerRefreshAllBootOption (); >=20 > + DataSize =3D sizeof (BOOLEAN); >=20 > + Status =3D gRT->GetVariable ( >=20 > + IS_FIRST_BOOT_VAR_NAME, >=20 > + &gEfiCallerIdGuid, >=20 > + NULL, >=20 > + &DataSize, >=20 > + &IsFirstBoot >=20 > + ); >=20 > + if (EFI_ERROR (Status)) { >=20 > + // >=20 > + // If can't find the variable, see it as the first boot >=20 > + // >=20 > + IsFirstBoot =3D TRUE; >=20 > + } >=20 > + >=20 > + if (IsFirstBoot) { >=20 > + // >=20 > + // In the first boot, sort the boot option >=20 > + // >=20 > + EfiBootManagerSortLoadOptionVariable (LoadOptionTypeBoot, Compar= eBootOption); >=20 > + IsFirstBoot =3D FALSE; >=20 > + Status =3D gRT->SetVariable ( >=20 > + IS_FIRST_BOOT_VAR_NAME, >=20 > + &gEfiCallerIdGuid, >=20 > + EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSER= VICE_ACCESS, >=20 > + sizeof (BOOLEAN), >=20 > + &IsFirstBoot >=20 > + ); >=20 > + } >=20 > + >=20 > break; >=20 > } >=20 >=20 >=20 > Print (L"Press F7 for BootMenu!\n"); >=20 >=20 >=20 > - EfiBootManagerRefreshAllBootOption (); >=20 >=20 >=20 > - if (IsNeedSortBootOption()) { >=20 > - EfiBootManagerSortLoadOptionVariable (LoadOptionTypeBoot, CompareBoo= tOption); >=20 > - } >=20 > } >=20 > -- > 2.30.0.windows.2 >=20 >=20 >=20 > -=3D-=3D-=3D-=3D-=3D-=3D > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#72653): https://edk2.groups.io/g/devel/message/72653 > Mute This Topic: https://groups.io/mt/81243873/1712937 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com] > -=3D-=3D-=3D-=3D-=3D-=3D >=20