From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web09.3082.1576895810362032007 for ; Fri, 20 Dec 2019 18:36:50 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=KXvsI2I+; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: michael.a.kubacki@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Dec 2019 18:36:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,338,1571727600"; d="scan'208";a="213734674" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by fmsmga008.fm.intel.com with ESMTP; 20 Dec 2019 18:36:49 -0800 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 20 Dec 2019 18:36:49 -0800 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 20 Dec 2019 18:36:48 -0800 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 20 Dec 2019 18:36:48 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 20 Dec 2019 18:36:48 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kYPSUvwhkfzlVAlWr2t3yi1H51qrf0h6SDnhzMgzmu6vXjoGisllVjM+g/QBa2ahtvj2PqRc1YqHFneQD7p6Tg01bro5HqrT7pFndg00JKfcqFlyzlC52d4QMh1sivfvm7F33zpKuxu+sfsyclCOboNNkpakmpJLgWUiE5V17iIqKn046mIFxJ0bcfYs87C9PKK6O6xsQSc8q6980MooytvTgTyI5VjKhYcNxSoYuge8mWng92oVz9pP60/V14Jn3tO0hDVrH7qorybRcbF7Wre9hAkKLHh6pKQW9yNAtQxal593fu3zGQjC/OKoy/ElcVmovtQnJnUCGl8bJDKR6g== 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=ujz9GH8Mtb+UBsHFZtGrRS6XMPjdpCCfLr0jKnWqR7k=; b=JT25uTMBgMyr9D0GRbCy1UdiA1d30dlSNZPBMCKjQrTAjSa8dNHPD61LnXPGeqoBHFlai76R04rPmAItPmuhZjNWX4J5EcRrD1lF4WH9IyQp2TXAS1K1magvNKFdpPLQpqYdwMjAfJJvp7GfWRjsL6Pc37NRZoEq8SXT8IPMFhjwOSzA2CpzsL8cDSMY+x+HtWvTSsgl2pweIgCANmforPCcLRrMV+YNZTmJo9NhWiW4AxgR6BrESoQ5sqssEE6kpvPQ8Bb6zUrLn2y/Zh7BmrQg4uR3DT738A3Im9k3D4redkquV/dbYcHlmftzBTljK8PMUlUafHykOXWW8Iw+BQ== 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=ujz9GH8Mtb+UBsHFZtGrRS6XMPjdpCCfLr0jKnWqR7k=; b=KXvsI2I+v06puP3s53pEAZdcef1G3LjHH1+LKdmDBFm2qD2ZN63b/OeKXC0v97FFtm276VkaekV+CecRFrcbcJfpaxsGlHRvZ7Qt5P1f074hCH6ohIjUC11KntI3q46n8AvLjzOnONBG4rnMXGC7e7KgfV2W1HPDY54AOolQ1C8= Received: from BY5PR11MB4484.namprd11.prod.outlook.com (52.132.254.155) by BY5PR11MB3895.namprd11.prod.outlook.com (10.255.162.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.15; Sat, 21 Dec 2019 02:36:45 +0000 Received: from BY5PR11MB4484.namprd11.prod.outlook.com ([fe80::bc80:2ec3:11ba:2f8a]) by BY5PR11MB4484.namprd11.prod.outlook.com ([fe80::bc80:2ec3:11ba:2f8a%3]) with mapi id 15.20.2559.017; Sat, 21 Dec 2019 02:36:45 +0000 From: "Kubacki, Michael A" To: "Agyeman, Prince" , "devel@edk2.groups.io" CC: "Chiu, Chasel" , "Desimone, Nathaniel L" Subject: Re: [edk2-platforms] [PATCH 06/11] BoardModulePkg: Add Generic BoardBootManagerLib Thread-Topic: [edk2-platforms] [PATCH 06/11] BoardModulePkg: Add Generic BoardBootManagerLib Thread-Index: AQHVsh5ut/cL4iwcF0C1sk6wVmCqpqfD53eQ Date: Sat, 21 Dec 2019 02:36:45 +0000 Message-ID: References: <97f98fc0ed58cf75513694f674f8c0124dbab647.1576282834.git.prince.agyeman@intel.com> In-Reply-To: <97f98fc0ed58cf75513694f674f8c0124dbab647.1576282834.git.prince.agyeman@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2RhYWIzZGMtNjY2MC00ZDVjLTg0ZTktOTgyNDc5YTc5MGZhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVzNnTzlcL2dDN3Q2S0xWXC9WdjVsd0hKUTBxWHJicGtGbGR4RjlXWjR1U2IrWUU5ckIrUE5FMFdSUlwvWG1zdjFQMiJ9 dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=michael.a.kubacki@intel.com; x-originating-ip: [134.134.136.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: cb9c1b8d-9e89-44e5-832c-08d785be9f4d x-ms-traffictypediagnostic: BY5PR11MB3895: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0258E7CCD4 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39860400002)(366004)(136003)(396003)(376002)(346002)(13464003)(199004)(189003)(9686003)(107886003)(55016002)(26005)(478600001)(186003)(4326008)(86362001)(66946007)(53546011)(66446008)(64756008)(66476007)(66556008)(5660300002)(2906002)(8936002)(33656002)(8676002)(81166006)(76116006)(316002)(54906003)(81156014)(110136005)(6506007)(7696005)(52536014)(71200400001)(41533002)(14943795004);DIR:OUT;SFP:1102;SCL:1;SRVR:BY5PR11MB3895;H:BY5PR11MB4484.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sNiu6/FIfcB/G0PO7QN68q0n7V18zuvQ44HT6pV18kVwAebhKLhzAiQL01oVqVEqIlnQ18SWRnt79uIl7DW9IT3q871f8vk48+uaFNzBEbokh2BjV0ShYzf7u6ThVyM7ZgrTQ3HbgTUq51xT8JCaT0ZLiaDhK9JqKPNlupsa9fbh7TwKPVRIaYlGdLJhhhxXG52MScfz7MoJdhm63xkuJO8O7V/nUzWmJ4p4XMYhfv3MQftFmNlZf//zCCq0+oFbK+SFTqnP+tjuaC2uDZMqR0QeKRuz/uL4qKX9AqWoY871kZSZNFvjVSZZMFwxNE65EOUmWXEpSijhNnz/NX4gPsrqaZ/732Nu9HaXQahT/87t7XlYEg2jpMAf5w81oGaAQ3uBPpMqEg53vp/tRjTJCFWXnkNMv3DEEjwI8eqMfmspD+uqgszSQwlH+FRYCKLKrNxunx+zrWGuySALPeKT8C7dSAoY1JJqiYEKlaXeea6OrKjF7k1/mrU5pAQwCEJQnJgLk1S07pxVcXkFYh38y6UG2mhMx6RLDqYRHpPYZtk= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: cb9c1b8d-9e89-44e5-832c-08d785be9f4d X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Dec 2019 02:36:45.7443 (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: Puv+qvW/7ueCBm7LTHCvAqfignzg99iRDN9wZf11pjOkEkpA36W5V8YLqsMYc592wgXanAU+rk7Wo06qFDpIt9XHcn7WXD5aZN1i/MiB7/0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB3895 Return-Path: michael.a.kubacki@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Michael Kubacki > -----Original Message----- > From: Agyeman, Prince > Sent: Friday, December 13, 2019 5:33 PM > To: devel@edk2.groups.io > Cc: Kubacki, Michael A ; Chiu, Chasel > ; Desimone, Nathaniel L > > Subject: [edk2-platforms] [PATCH 06/11] BoardModulePkg: Add Generic > BoardBootManagerLib >=20 > This library implements a generic PlatformBootManagerWaitCallback and > PlatformBootManagerUnableToBoot which will be linked Minplatform's > PlatformBootManager library instance. >=20 > Cc: Michael Kubacki > Cc: Chasel Chiu > Cc: Nate DeSimone >=20 > Signed-off-by: Prince Agyeman > --- > .../BoardBootManagerLib/BoardBootManager.c | 103 > ++++++++++++++++++ > .../BoardBootManagerLib.inf | 39 +++++++ > .../BoardBootManagerLib.c | 2 +- > 3 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 > Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoot > Manager.c > create mode 100644 > Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoot > ManagerLib.inf >=20 > diff --git > a/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo > tManager.c > b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo > tManager.c > new file mode 100644 > index 0000000000..f6628d4125 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo > +++ tManager.c > @@ -0,0 +1,103 @@ > +/** @file > + This file include board specific boot manager callbacks > + > + Copyright (c) 2019, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ > + > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > + > +BOOLEAN mHotKeypressed =3D FALSE; > +EFI_EVENT HotKeyEvent =3D NULL; > +UINTN mBootMenuOptionNumber; > + > +/** > + This function is called each second during the boot manager waits time= out. > + > + @param TimeoutRemain The remaining timeout. > +**/ > +VOID > +EFIAPI > +BoardBootManagerWaitCallback ( > + UINT16 TimeoutRemain > + ) > +{ > + EFI_STATUS Status; > + EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TxtInEx; > + EFI_KEY_DATA KeyData; > + BOOLEAN PausePressed; > + > + // > + // Pause on PAUSE key > + // > + Status =3D gBS->HandleProtocol (gST->ConsoleInHandle, > + &gEfiSimpleTextInputExProtocolGuid, (VOID **) &TxtInEx); > + ASSERT_EFI_ERROR (Status); > + > + PausePressed =3D FALSE; > + > + while (TRUE) { > + Status =3D TxtInEx->ReadKeyStrokeEx (TxtInEx, &KeyData); > + if (EFI_ERROR (Status)) { > + break; > + } > + > + if (KeyData.Key.ScanCode =3D=3D SCAN_PAUSE) { > + PausePressed =3D TRUE; > + break; > + } > + } > + > + // > + // Loop until non-PAUSE key pressed > + // > + while (PausePressed) { > + Status =3D TxtInEx->ReadKeyStrokeEx (TxtInEx, &KeyData); > + if (!EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_INFO, "[PauseCallback] %x/%x %x/%x\n", > + KeyData.Key.ScanCode, KeyData.Key.UnicodeChar, > + KeyData.KeyState.KeyShiftState, KeyData.KeyState.KeyToggleState > + )); > + PausePressed =3D (BOOLEAN) (KeyData.Key.ScanCode =3D=3D SCAN_PAUSE= ); > + } > + } > +} > + > +/** > + The function is called when no boot option could be launched, > + including platform recovery options and options pointing to > +applications > + built into firmware volumes. > + > + If this function returns, BDS attempts to enter an infinite loop. > +**/ > +VOID > +EFIAPI > +BoardBootManagerUnableToBoot ( > + VOID > + ) > +{ > + EFI_STATUS Status; > + EFI_BOOT_MANAGER_LOAD_OPTION BootDeviceList; > + CHAR16 OptionName[sizeof ("Boot####")]; > + > + if (mBootMenuOptionNumber =3D=3D LoadOptionNumberUnassigned) { > + return; > + } > + UnicodeSPrint (OptionName, sizeof (OptionName), L"Boot%04x", > +mBootMenuOptionNumber); > + Status =3D EfiBootManagerVariableToLoadOption (OptionName, > +&BootDeviceList); > + if (EFI_ERROR (Status)) { > + return; > + } > + for (;;) { > + EfiBootManagerBoot (&BootDeviceList); > + } > +} > diff --git > a/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo > tManagerLib.inf > b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo > tManagerLib.inf > new file mode 100644 > index 0000000000..38ff52ca81 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BoardBootManagerLib/BoardBoo > +++ tManagerLib.inf > @@ -0,0 +1,39 @@ > +## @file > +# The module definition file for BoardBootManagerLib. > +# > +# Copyright (c) 2019, Intel Corporation. All rights reserved.
# > +SPDX-License-Identifier: BSD-2-Clause-Patent # ## > + > +[Defines] > + INF_VERSION =3D 0x00010005 > + BASE_NAME =3D BoardBootManagerLib > + FILE_GUID =3D E7512AE0-6CB1-47ED-B6FF-94A97A86BAB= B > + MODULE_TYPE =3D DXE_DRIVER > + VERSION_STRING =3D 1.0 > + LIBRARY_CLASS =3D BoardBootManagerLib|DXE_DRIVER > + > + > +# > +# The following information is for reference only and not required by th= e > build tools. > +# > +# VALID_ARCHITECTURES =3D IA32 X64 EBC > +# > + > +[Sources] > + BoardBootManager.c > + > +[LibraryClasses] > + BaseLib > + UefiBootServicesTableLib > + DebugLib > + UefiLib > + HobLib > + UefiBootManagerLib > + TimerLib > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MinPlatformPkg/MinPlatformPkg.dec > diff --git > a/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/Bo > ardBootManagerLib.c > b/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/Bo > ardBootManagerLib.c > index 46fce8f59f..6bc518f02c 100644 > --- > a/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/Bo > ardBootManagerLib.c > +++ > b/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/ > +++ BoardBootManagerLib.c > @@ -1,7 +1,7 @@ > /** @file > This file include board specific boot manager callbacks >=20 > - Copyright (c) 2018, Intel Corporation. All rights reserved.
> + Copyright (c) 2019, Intel Corporation. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent **/ >=20 > -- > 2.19.1.windows.1