From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.737.1615428953435705679 for ; Wed, 10 Mar 2021 18:15:53 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=rb6MMSRC; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: eric.dong@intel.com) IronPort-SDR: GdD0B0NbjIND4D1elIYJRYLo2R6IR9sAnohVQ29rKhhmxxVpF6an0mTYKob1rdyAHu4Bh7orP2 ml8Vy7kUwJyQ== X-IronPort-AV: E=McAfee;i="6000,8403,9919"; a="273639246" X-IronPort-AV: E=Sophos;i="5.81,238,1610438400"; d="scan'208";a="273639246" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2021 18:15:52 -0800 IronPort-SDR: XFsWK8HA63FFgvPz/zei2X1ese9UqX0YgNPSoao1kwPigz3hNwdHdTO1NqvcIc/o434oABN1dh Rrd0GguYGixw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,238,1610438400"; d="scan'208";a="370409486" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga003.jf.intel.com with ESMTP; 10 Mar 2021 18:15:52 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX606.amr.corp.intel.com (10.22.229.19) 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 18:15:52 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX607.amr.corp.intel.com (10.22.229.20) 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 18:15:51 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) 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 18:15:51 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.100) 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 18:15:51 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jd35xNR4nJHiVYYGtPXdrjsj7xmMa9LucrdvfKsZBviWTiIKLwPSw116NrEX7BqNHRGl6y8aS++uRVQ0R6oww+7OiopC9WZ6AFsEBy8LoA90MPf0C4YG+AFCeYk1Hcj2bK5b3cThwl/087Xo9apLdpAQwE6/uYiGU45khEaScgupzbPT+2jgLYruRClkMy8w7hw0qLAz6xr26xmM9Pah90f/qEAmE/w8qZiU04uD8ghhoU6IN/4EKL2p/bdFLpHSrwHcvmUvjN4IkKD9Ta1W4f0JUq41wxKyUCG8b5UWX7WIcisTx9v5kVT1kDiJdR2xEHGS7hdbRmPsRek6tkVI1Q== 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=uImsrHA68/16ZCPdlKcsrdCeIpORwhKaJi/taSFJHKc=; b=KfD+oj6V5z4KT2QpIf6uhmrKh6lIoKk/Wzs5OId0clZRaY9/sXt3wEXSqZ3PK0PJ+iYYzQM8bqx/imaA5d2s4fD3jb4n6PI/lpp0E/Yf27ihJeso7quhiAssBH2/yNlccjlzMYoI1O9GJZygoXt0kpVeYEhwUouuZhPXpJ4Ms2zbudo6tNG3XiWLRf4FBC4OfYUq0MWRtihn1g4slsGKy5ZX7k5LXdh6Tw2OfVPX+aX8G41Knp8TULY6FKKuYAVflRspeDsqTI0gupmpEAQn6ql+qnADrjF2ZI2pur0T9UkizX3ZbWXQgrm9iu/gspwLjqyhI5Ftoaz61HumtwW/fQ== 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=uImsrHA68/16ZCPdlKcsrdCeIpORwhKaJi/taSFJHKc=; b=rb6MMSRCggIqlm6CZrpgzMAdOLq7GqV/EKcsudVw3cZ8f56zMsz1v2sP+Xx4i6+igzT1nK6ANXwTgZGcrEFyHM3J6d7X9C53R44x5E2iNy8GkvLJA6Mh9+/XGJ7gYTJsP1bMpFC4k6ggMuDehvULN9E74j+6fxEpWdD4IPSTTAs= Received: from CY4PR11MB1272.namprd11.prod.outlook.com (2603:10b6:903:29::9) by CY4PR1101MB2279.namprd11.prod.outlook.com (2603:10b6:910:17::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17; Thu, 11 Mar 2021 02:15:49 +0000 Received: from CY4PR11MB1272.namprd11.prod.outlook.com ([fe80::918c:7df3:f688:d5e9]) by CY4PR11MB1272.namprd11.prod.outlook.com ([fe80::918c:7df3:f688:d5e9%5]) with mapi id 15.20.3912.030; Thu, 11 Mar 2021 02:15:49 +0000 From: "Dong, Eric" To: "Liu, Zhiguang" , "devel@edk2.groups.io" CC: Liming Gao , "Desimone, Nathaniel L" , "Agyeman, Prince" , "Ni, Ray" , "Gao, Zhichao" Subject: Re: [Patch edk2-platforms V3] Intel/BoardModulePkg: sort load option in the first boot Thread-Topic: [Patch edk2-platforms V3] Intel/BoardModulePkg: sort load option in the first boot Thread-Index: AQHXFhUMfd+LcWehmkeA7xaZUs//Gqp+DJtA Date: Thu, 11 Mar 2021 02:15:49 +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: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9378034b-28cc-4407-a7b3-08d8e43396c9 x-ms-traffictypediagnostic: CY4PR1101MB2279: 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: GjwmfMeoUv94UjPdrtiBJwrmmIE8nzAcAR16XJdVhuiFh/RMihXFZbH2IS2qtrQIjJIl0z1VELpcWz9QtrxJU3SJtVlUoIP4GBqPZggEgYpI2YWaZcF6xdtAnBp8uX5RmXNfwhaSyqo8Qzfw+DHaKrFO9Kund8iieNP8DgpjYWlaO2EzOsy2LTZXKtr0FjyRojrsHegKnbWKr0zL9XekMBzGNk6YPOxmWowJLXVplMXw96sLnlYrbfyQ8PXfN2uGW47GkMyTmbSaWvVR0XVeEqi2Zql2oqeaUn7+ZmF+s7Vfmt4v82TA9C9Amx+US7XZfehaCMH2eFSwovzfM+niPkoqjO1eP+oaklkF8eaPLqfnh+LDFr1K0nwAJBF9f8XweFHNO7JQhfSa532g7MEKMfmXTPYoW4uyseM4Tn7Zw0VoGzUynxw9k2MCIpbE0l3IgsnNA/Kq9CaTL1lUt3WcZPpIsJ4Zu+/ymh9pS8JcGREAXLmEvCprFyTYevroFaMLdAB9Nh5isitjMxjPdLsWhg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1272.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(346002)(136003)(39860400002)(396003)(376002)(54906003)(6506007)(7696005)(53546011)(66556008)(66446008)(110136005)(66946007)(64756008)(33656002)(9686003)(8676002)(66476007)(55016002)(86362001)(107886003)(76116006)(83380400001)(4326008)(71200400001)(2906002)(26005)(186003)(8936002)(5660300002)(478600001)(316002)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?vxm7k0l0/d+VPXyvfI1ElRt1ye2SYHg2T6cGC4K8oJMA5l+PsKbMyAOMZKkQ?= =?us-ascii?Q?PiwZy6LWvWK85vZKrwIeAs2IkU7jzQOySPMdaWn7+xxBr+CVSbXK/itOdnZJ?= =?us-ascii?Q?mUn8mStJYkvUbBHbAPUMrEf2nTISkdMd32Xp7Oj0nVAQyLza2zRe7msDBOLX?= =?us-ascii?Q?t0qPCqAcascR6iUby5ZsfKy1odWITqX1wsZEPn4gDtfcETVpUvTuZ8hSQDwM?= =?us-ascii?Q?jtfaEwYmWTilStGcrSGcKAMvjBA4g6VTymIeJx4uPfDjUqB7hFg3lKuptFM4?= =?us-ascii?Q?5NQ94s5Mb7nMFhGV73/H54wGBHDHtENnst6aeKfTjgfp1rQB9TboBEB4p8hr?= =?us-ascii?Q?lPuNSZLSanX7sAOHwC1OblUKagWj+J+pJllZ3GhU7wZhTYaaI9PMEXw2g88g?= =?us-ascii?Q?UPUa7pyTAoi/sFgmd5Bmuo7nl6whqBWrZp1SFsj58NxDYuQrLqrA80OWkeBg?= =?us-ascii?Q?DFSfcDQ2lUQXZitoq/HuK3WOK0iwsZCN6vQtAhnXmGtKz9QDPUU5+J8YEBbi?= =?us-ascii?Q?3estSUsdV76PWjkn0EE5rmLGaiGq4+Y7sBCwbExpC3Da2ftjXq9kVLKn3VCe?= =?us-ascii?Q?nbcQPKOAG9+jo1CAy5sUbE16x3a6kI77bqZdGF6+RRs1ryQsI2ZSacWk1NEU?= =?us-ascii?Q?yE59bMnS1+Ras4tV/RhOAWa2EfIJBl7wv6x3OlsVm6OtgnC8Lu5RtXIeHmzc?= =?us-ascii?Q?47sBystT6GsKRqu31uvhAfZk5Zcr+0Xkm/+yugHmhUaFsZho35jRCdLg4dB1?= =?us-ascii?Q?p4tEuvIeWENqfK5OIH+SvzE+VoNDsKqV1euwY6EH4pwdAAkEy5qpZHirxZal?= =?us-ascii?Q?R9cKbip7a8BgmR4N3EHjeo7LaDjc9EvNV/vQO6+BkDG8kLOU9S/nCfH6pBt+?= =?us-ascii?Q?bjYUwwXTGFcWPnPUmxDaMITmkG1Eb6yZqn9tb1650UaIy3RPlDaCLULLwPHu?= =?us-ascii?Q?OpvAn9gjDiAsbMFsLWRTnXmo39b1kZhNW0/Mt9MYQDo+SuUKZzGOAtan0KoF?= =?us-ascii?Q?ypqJLtMwwfCqppQuvx/Cu64EvEm1B/Pg6qe4Z7b+S98BzrpVsqhHQBLMY0RH?= =?us-ascii?Q?dV50ftku9NgAg9Febo2mfW9PDZehrB+B8qudEERgsXDFCPnpqOoULqpiBCnL?= =?us-ascii?Q?RDW+GQXGijxST32XhioAQT8uA1vallVeifFOTmID/Wt5M/JnD1+KXaDN6u0q?= =?us-ascii?Q?wScsqTrccd6l/IfwXdgSpJJZ4876axXmEzhW0F+46dPcRMDcqEZI987YQLev?= =?us-ascii?Q?cLSZaRaxGrodHAsPhYOv9BSAdwCf/tjAyVGso3SRFA4AIXVIC7CHcOaGDHc8?= =?us-ascii?Q?3M9aC7eHndgceRpYIeF64AYg?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1272.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9378034b-28cc-4407-a7b3-08d8e43396c9 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2021 02:15:49.6488 (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: YeAsW+bJyTmsUwC6QcJj+GogrPpNVZHVnJVMcykUJvmaD7TYiUz1ParU3xzX30mkypXCOiaru5RwZ5xLekEoWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2279 Return-Path: eric.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Eric Dong -----Original Message----- From: Liu, Zhiguang =20 Sent: Thursday, March 11, 2021 9:22 AM To: devel@edk2.groups.io Cc: Dong, Eric ; Liming Gao = ; Desimone, Nathaniel L ; Agyeman, Prince <= prince.agyeman@intel.com>; Ni, Ray ; Gao, Zhichao Subject: [Patch edk2-platforms V3] Intel/BoardModulePkg: sort load option i= n the first boot Currently, load option is only sorted when setup is the first priority in b= oot option. However, Below change in UefiBootManagerLib puts setup in the e= nd, which causes the sort function won't be called. MdeModulePkg/UefiBootManagerLib: Put BootMenu at the end of BootOrder SHA-1: 7f34681c488aee2563eaa2afcc6a2c8aa7c5b912 This patch will set a NV variable in the first boot, and sort the boot opti= on in first boot. Cc: Eric Dong Cc: Liming Gao Cc: Nate DeSimone Cc: Prince Agyeman Cc: Ray Ni Cc: Zhichao Gao Signed-off-by: Zhiguang Liu --- Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib.c | = 72 +++++++++++++++++++++++++++++++++++++----------------------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBds= HookLib.c b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsH= ookLib.c index d7612fb80a..a37139a007 100644 --- a/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHookLib= .c +++ b/Platform/Intel/BoardModulePkg/Library/BoardBdsHookLib/BoardBdsHook +++ Lib.c @@ -20,6 +20,8 @@ #include "BoardBdsHook.h" +#define IS_FIRST_BOOT_VAR_NAME L"IsFirstBoot"+= GLOBAL_REMOVE_IF_UNREFERENCED EFI_BOOT_MODE gBootMode; BOOLEAN = gPPRequireUIConfirm; extern UINTN = mBootMenuOptionNumber;@@ -992,37 +994,6 @@ ConnectS= equence ( EfiBootManagerConnectAll (); } --/**- The function is to consider the b= oot order which is not in our expectation.- In the case that we need to re= -sort the boot option.-- @retval TRUE Need to sort Boot Option.- = @retval FALSE Don't need to sort Boot Option.-**/-BOOLEAN-IsNeedSo= rtBootOption (- VOID- )-{- EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions;- = UINTN BootOptionCount;-- BootOptions =3D EfiBootM= anagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);-- //- // If = setup is the first priority in boot option, we need to sort boot option.- = //- if ((BootOptionCount > 1) &&- (((StrnCmp (BootOptions->Description,= L"Enter Setup", StrLen (L"Enter Setup"))) =3D=3D 0) ||- ((StrnCmp (Boot= Options->Description, L"BootManagerMenuApp", StrLen (L"BootManagerMenuApp")= )) =3D=3D 0))) {- return TRUE;- }-- return FALSE;-}-- /** Connects R= oot Bridge **/@@ -1332,6 +1303,9 @@ BdsAfterConsoleReadyBeforeBootOptionCa= llback ( ) { EFI_BOOT_MODE LocalBootMode;+ EFI_STATUS = Status;+ BOOLEAN IsFirstBoot;+ UINTN = DataSize; DEBUG ((DEBUG_INFO, "Event gBdsAfterConso= leReadyBeforeBootOptionEvent callback starts\n")); //@@ -1376,14 +1350,42= @@ BdsAfterConsoleReadyBeforeBootOptionCallback ( // // PXE boot option may appear after boot option enumeration= //++ EfiBootManagerRefreshAllBootOption ();+ DataSize =3D = sizeof (BOOLEAN);+ Status =3D gRT->GetVariable (+ = IS_FIRST_BOOT_VAR_NAME,+ &gEfiCallerIdGuid,+ = NULL,+ &DataSize,+ &= IsFirstBoot+ );+ if (EFI_ERROR (Status)) {+ = //+ // If can't find the variable, see it as the first boot+ = //+ IsFirstBoot =3D TRUE;+ }++ if (IsFirstBoot) {+ = //+ // In the first boot, sort the boot option+ //+ = EfiBootManagerSortLoadOptionVariable (LoadOptionTypeBoot, CompareBootOption= );+ IsFirstBoot =3D FALSE;+ Status =3D gRT->SetVariable (+ = IS_FIRST_BOOT_VAR_NAME,+ &gEfiC= allerIdGuid,+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIAB= LE_BOOTSERVICE_ACCESS,+ sizeof (BOOLEAN),+ = &IsFirstBoot+ );+ }+ break;= } Print (L"Press F7 for BootMenu!\n"); - EfiBootManagerRefreshAllBoo= tOption (); - if (IsNeedSortBootOption()) {- EfiBootManagerSortLoadOpti= onVariable (LoadOptionTypeBoot, CompareBootOption);- } }--=20 2.30.0.windows.2