From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by mx.groups.io with SMTP id smtpd.web11.16807.1627889337649338942 for ; Mon, 02 Aug 2021 00:28:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=kG9xDB+9; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.219.43, mailfrom: gjb@semihalf.com) Received: by mail-qv1-f43.google.com with SMTP id d3so8453191qvq.6 for ; Mon, 02 Aug 2021 00:28:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1XVL3yJNbTFQsMRVUnY/HG4OzPOiKCjCSg0OYj+6Jes=; b=kG9xDB+9KmtCodDFdPPK03FcgR5cmlLhRh8Dm43vsyLuesWQRuOG9wVLr4knN5ynp8 Znq3b+7fIUvLijr00I/7TKsbNkM+nw7wcR3+ENmeXOod/ZgpWfgp70Axsy8WWrRZqxp7 Hn5uaXkHjv/v2PaiRs6E+RmM5N5D8DINkO7/GICAFF63RQoemaau8lbusw+H6u/KQbCY KhDMQU0bW0RTnAd7QMJ6KO8hoD0Uz62Mx35+olQurCUtQxQzlDrrnwreiXZuLZSYZzmj Urv+iwG5AuOybOqZdx1fd5caoC0KPtGlxKW2uNDw3zQ7AQ7TpXN7UGczbHMOjwclsRwZ eySQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1XVL3yJNbTFQsMRVUnY/HG4OzPOiKCjCSg0OYj+6Jes=; b=Uqw+6vjdeInLsONUVBrAc8+DkqOjcNJEOHa55FZCd3JDjHnzbGZbDN1F616IbecGJF aQpmxs5jbxfDjxYI3lZanqBpE6dhErfbhYWEV6HMUSo9sPA4ykTNSbm/IQmyEixzIj+N cQuPKk2QV6FNOEjZVgLyVxRrJmFUAYn225hk8i4f8bGMEL/tj6aol3xFLV0W0Pb+e2mr tpvJqrNBb9G1Psbz9Biqn7NtDjH0KyozLmIYTo/g+0+lRTuEGGy1t6mPlpViYeb8opjV boo3GzQFbOF2e2ydUOn58gqYJWoIpciP/wv/YZ3hjnqRttcZYsA0+Px04vr9hnrYnOBw mO5A== X-Gm-Message-State: AOAM532x2BicRXqMTTdD7vLnM3xfstH6BT8MpXQYyx0unw4Q3SWBwNq2 2JdEo1ELDSKRxysoiUE3Af/G63CJaoTQcFxGYdaKAA== X-Google-Smtp-Source: ABdhPJwbe3yzwCID7pY2r0OcAuLWsDz/RuEQBmssbS6t4pAvDS46goQo2barazzmR5eyC6ZHGzGmN4IH3FllO7buZGk= X-Received: by 2002:a0c:d644:: with SMTP id e4mr15064896qvj.45.1627889336761; Mon, 02 Aug 2021 00:28:56 -0700 (PDT) MIME-Version: 1.0 References: <20210722074425.2274716-1-gjb@semihalf.com> <20210722074425.2274716-2-gjb@semihalf.com> In-Reply-To: From: "Grzegorz Bernacki" Date: Mon, 2 Aug 2021 09:28:45 +0200 Message-ID: Subject: Re: [edk2-devel] [PATCH v4 1/1] MdeModulePkg: Add BootDiscoveryPolicyUiLib. To: "Wu, Hao A" Cc: "devel@edk2.groups.io" , Sunny Wang , "leif@nuviainc.com" , "ardb+tianocore@kernel.org" , Samer El-Haj-Mahmoud , "mw@semihalf.com" , "upstream@semihalf.com" , "pete@akeo.ie" , "Bi, Dandan" , "Dong, Eric" , "Ni, Ray" , "Wang, Jian J" , "Gao, Zhichao" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Sure, I will send a new version of the patches soon. thanks, greg pon., 2 sie 2021 o 07:22 Wu, Hao A napisa=C5=82(a): > > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Wu, Hao > > A > > Sent: Monday, August 2, 2021 12:36 PM > > To: Sunny Wang ; Gao, Zhichao > > ; Grzegorz Bernacki ; > > devel@edk2.groups.io; Wang, Jian J > > Cc: leif@nuviainc.com; ardb+tianocore@kernel.org; Samer El-Haj-Mahmoud > > ; mw@semihalf.com; > > upstream@semihalf.com; pete@akeo.ie; Bi, Dandan ; > > Dong, Eric ; Ni, Ray > > Subject: Re: [edk2-devel] [PATCH v4 1/1] MdeModulePkg: Add > > BootDiscoveryPolicyUiLib. > > > > > -----Original Message----- > > > From: Sunny Wang > > > Sent: Monday, August 2, 2021 11:16 AM > > > To: Grzegorz Bernacki ; devel@edk2.groups.io; Wang= , > > > Jian J ; Wu, Hao A > > > Cc: leif@nuviainc.com; ardb+tianocore@kernel.org; Samer El-Haj- > > Mahmoud > > > ; mw@semihalf.com; > > > upstream@semihalf.com; pete@akeo.ie; Bi, Dandan > > ; > > > Dong, Eric ; Gao, Zhichao > > > ; Sunny Wang ; Ni, Ray > > > > > > Subject: RE: [PATCH v4 1/1] MdeModulePkg: Add BootDiscoveryPolicyUiL= ib. > > > > > > Hi Hao, Jian, and MdeModulePkg maintainers, > > > > > > Could you help merge this patch? This patch already got Reviewed-by > > > from Zhichao and me. If we still need to get others' reviews, feel > > > free to let us know. > > > > > > Really sorry for the slow response. > > Pull request created at: https://github.com/tianocore/edk2/pull/1855 > > > Hello Greg, > > A couple of checks failed during the merging test: https://github.com/ti= anocore/edk2/pull/1855 > Could you help to refine the patch for the below reported errors? > https://dev.azure.com/tianocore/11ea4a10-ac9f-4e5f-8b13-7def1f19d478/_ap= is/build/builds/26960/artifacts?artifactName=3DBuild%20Logs%20TARGET_MDEMOD= ULE_RELEASE&api-version=3D6.0&%24format=3Dzip (file CI_BUILDLOG.md): > #### ERROR: Overall Build Status: Error > There were 1 failures out of 10 attempts > ## Summary > #### ERROR: Error > ## Table of Contents > + [Init SDE](#init-sde) > + [Loading Plugins](#loading-plugins) > + [Start Invocable Tool](#start-invocable-tool) > + [Getting Environment](#getting-environment) > + [Loading plugins](#loading-plugins) > + [Building MdeModulePkg Package](#building-mdemodulepkg-package) > + [MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUi= Lib.inf not in MdeModulePkg/MdeModulePkg.dsc](#mdemodulepkg/library/bootdis= coverypolicyuilib/bootdiscoverypolicyuilibinf-not-in-mdemodulepkg/mdemodule= pkgdsc) > + [Summary](#summary) > ## Error List > + "--->Test Failed: Dsc Complete Check Test NO-TARGET returned 1" from = c:\hostedtoolcache\windows\python\3.8.10\x64\lib\site-packages\edk2toolext\= invocables\edk2_ci_build.py:192 > + "Overall Build Status: Error" from c:\hostedtoolcache\windows\python\= 3.8.10\x64\lib\site-packages\edk2toolext\invocables\edk2_ci_build.py:214 > + "Error" from c:\hostedtoolcache\windows\python\3.8.10\x64\lib\site-pa= ckages\edk2toolext\base_abstract_invocable.py:144 > > https://dev.azure.com/tianocore/11ea4a10-ac9f-4e5f-8b13-7def1f19d478/_ap= is/build/builds/26959/artifacts?artifactName=3DBuild%20Logs%20TARGET_MDEMOD= ULE_RELEASE&api-version=3D6.0&%24format=3Dzip (file CI_BUILDLOG.md): > #### ERROR: Overall Build Status: Error > There were 2 failures out of 10 attempts > ## Summary > #### ERROR: Error > ## Table of Contents > + [Init SDE](#init-sde) > + [Loading Plugins](#loading-plugins) > + [Start Invocable Tool](#start-invocable-tool) > + [Getting Environment](#getting-environment) > + [Loading plugins](#loading-plugins) > + [Building MdeModulePkg Package](#building-mdemodulepkg-package) > + [MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUi= Lib.inf not in MdeModulePkg/MdeModulePkg.dsc](#mdemodulepkg/library/bootdis= coverypolicyuilib/bootdiscoverypolicyuilibinf-not-in-mdemodulepkg/mdemodule= pkgdsc) > + [Summary](#summary) > ## Error List > + "EFI coding style error" from /home/vsts/work/1/s/.pytool/Plugin/EccC= heck/EccCheck.py:87 > + "*Error code: 7001" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/= EccCheck.py:87 > + "*There should be no use of int, unsigned, char, void, long in any .c= , .h or .asl files" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/EccChe= ck.py:87 > + "*file: //home/vsts/work/1/s/MdeModulePkg/Library/BootDiscoveryPolicy= UiLib/BootDiscoveryPolicyUiLib.c" from /home/vsts/work/1/s/.pytool/Plugin/E= ccCheck/EccCheck.py:87 > + "*Line number: 31" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/E= ccCheck.py:87 > + "*Invalid variable type (unsigned) in definition [extern unsigned cha= r [] BootDiscoveryPolicyUiLibVfrBin]" from /home/vsts/work/1/s/.pytool/Plug= in/EccCheck/EccCheck.py:87 > + "EFI coding style error" from /home/vsts/work/1/s/.pytool/Plugin/EccC= heck/EccCheck.py:87 > + "*Error code: 8003" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/= EccCheck.py:87 > + "*The #ifndef at the start of an include file should have one postfix= underscore, and no prefix underscore character '_'" from /home/vsts/work/1= /s/.pytool/Plugin/EccCheck/EccCheck.py:87 > + "*file: //home/vsts/work/1/s/MdeModulePkg/Include/Guid/BootDiscoveryP= olicy.h" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/EccCheck.py:87 > + "*Line number: 11" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/E= ccCheck.py:87 > + "*The #ifndef name [_BOOT_DISCOVERY_POLICY_UI_LIB_H_] does not follow= the rules" from /home/vsts/work/1/s/.pytool/Plugin/EccCheck/EccCheck.py:87 > + "--->Test Failed: EccCheck Test NO-TARGET returned 1" from /opt/hoste= dtoolcache/Python/3.8.11/x64/lib/python3.8/site-packages/edk2toolext/invoca= bles/edk2_ci_build.py:192 > + "--->Test Failed: Dsc Complete Check Test NO-TARGET returned 1" from = /opt/hostedtoolcache/Python/3.8.11/x64/lib/python3.8/site-packages/edk2tool= ext/invocables/edk2_ci_build.py:192 > + "Overall Build Status: Error" from /opt/hostedtoolcache/Python/3.8.11= /x64/lib/python3.8/site-packages/edk2toolext/invocables/edk2_ci_build.py:21= 4 > + "Error" from /opt/hostedtoolcache/Python/3.8.11/x64/lib/python3.8/sit= e-packages/edk2toolext/base_abstract_invocable.py:144 > > Best Regards, > Hao Wu > > > > > > By the way, I do not see an explicit 'Reviewed-by' tag from you for th= is V4 > > patch, so I will treat the above statement as your 'R-b' tag for this = patch. > > Thanks you and Zhichao for the reviewing effort. > > > > Best Regards, > > Hao Wu > > > > > > > By the way, we do have an edk2-platform change below that is waiting > > > for this patch to get merged first, and will have more patches based > > > on this to be sent out to solve some deployment and testing problems > > > caused by Fast boot on ARM platforms. > > > - https://edk2.groups.io/g/devel/message/78072 > > > > > > Best Regards, > > > Sunny Wang > > > > > > -----Original Message----- > > > From: Grzegorz Bernacki > > > Sent: Thursday, July 22, 2021 3:44 PM > > > To: devel@edk2.groups.io > > > Cc: leif@nuviainc.com; ardb+tianocore@kernel.org; Samer El-Haj- > > Mahmoud > > > ; Sunny Wang > > ; > > > mw@semihalf.com; upstream@semihalf.com; pete@akeo.ie; > > > jian.j.wang@intel.com; hao.a.wu@intel.com; dandan.bi@intel.com; > > > eric.dong@intel.com; Grzegorz Bernacki ; Zhichao G= ao > > > > > > Subject: [PATCH v4 1/1] MdeModulePkg: Add BootDiscoveryPolicyUiLib. > > > > > > This library extends Boot Maintenance Menu and allows to select Boot > > > Discovery Policy. When choice is made BootDiscoveryPolicy variable i= s set. > > > Platform code can use this variable to decide which class of device > > > shall be connected. > > > > > > Signed-off-by: Grzegorz Bernacki > > > Reviewed-by: Zhichao Gao > > > --- > > > MdeModulePkg/MdeModulePkg.dec = | 9 ++ > > > > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib= . > > > inf | 52 +++++++ > > > MdeModulePkg/Include/Guid/BootDiscoveryPolicy.h = | > > 22 > > > +++ > > > > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib= . > > > c | 160 ++++++++++++++++++++ > > > > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib= . > > > uni | 18 +++ > > > > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib > > > Strings.uni | 29 ++++ > > > > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib > > > Vfr.Vfr | 44 ++++++ > > > 7 files changed, 334 insertions(+) > > > create mode 100644 > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib= . > > > inf > > > create mode 100644 MdeModulePkg/Include/Guid/BootDiscoveryPolicy.h > > > create mode 100644 > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib= . > > > c > > > create mode 100644 > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib= . > > > uni > > > create mode 100644 > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib > > > Strings.uni > > > create mode 100644 > > > > > MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib > > > Vfr.Vfr > > > > > > diff --git a/MdeModulePkg/MdeModulePkg.dec > > > b/MdeModulePkg/MdeModulePkg.dec index ad84421cf3..133e04ee86 > > > 100644 > > > --- a/MdeModulePkg/MdeModulePkg.dec > > > +++ b/MdeModulePkg/MdeModulePkg.dec > > > @@ -425,6 +425,9 @@ > > > ## Include/UniversalPayload/SerialPortInfo.h > > > gUniversalPayloadSerialPortInfoGuid =3D { 0xaa7e190d, 0xbe21, 0x4= 409, > > > { 0x8e, 0x67, 0xa2, 0xcd, 0xf, 0x61, 0xe1, 0x70 } } > > > > > > + ## GUID used for Boot Discovery Policy FormSet guid and related > > variables. > > > + gBootDiscoveryPolicyMgrFormsetGuid =3D { 0x5b6f7107, 0xbb3c, 0x46= 60, > > > + { 0x92, 0xcd, 0x54, 0x26, 0x90, 0x28, 0x0b, 0xbd } } > > > + > > > [Ppis] > > > ## Include/Ppi/AtaController.h > > > gPeiAtaControllerPpiGuid =3D { 0xa45e60d1, 0xc719, 0x44aa, = { 0xb0, 0x7a, > > > 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d }} > > > @@ -1600,6 +1603,12 @@ > > > # @Prompt Console Output Row of Text Setup > > > > > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow|25|UINT32|0x40 > > > 00000e > > > > > > + ## Specify the Boot Discovery Policy settings # To support > > > + configuring from setup page, this PCD should be overridden in > > > + DynamicHii > > > type in its platform .dsc: > > > + # > > > + > > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdBootDiscoveryPolicy|L"BootDiscove > > > ryP > > > + olicy"|gBootDiscoveryPolicyMgrFormsetGuid|0 > > > + # @Prompt Boot Discovery Policy > > > + > > > + > > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdBootDiscoveryPolicy|2|UINT32|0x4 > > > 0000 > > > + 00f > > > + > > > [PcdsFixedAtBuild.AARCH64, PcdsPatchableInModule.AARCH64] > > > > > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20|UI > > > NT32|0x0001004c > > > > > > diff --git > > > > > a/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > b.inf > > > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > b.inf > > > new file mode 100644 > > > index 0000000000..1fb4d43caa > > > --- /dev/null > > > +++ > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyU > > > +++ iLib.inf > > > @@ -0,0 +1,52 @@ > > > +## @file > > > +# Library for BDS phase to use Boot Discovery Policy # # Copyrigh= t > > > +(c) 2021, ARM Ltd. All rights reserved.
# Copyright (c) 2021, > > > +Semihalf All rights reserved.
# SPDX-License-Identifier: > > > +BSD-2-Clause-Patent # ## > > > + > > > +[Defines] > > > + INF_VERSION =3D 0x00010005 > > > + BASE_NAME =3D BootDiscoveryPolicyUiLib > > > + MODULE_UNI_FILE =3D BootDiscoveryPolicyUiLib.uni > > > + FILE_GUID =3D BE73105A-B13D-4B57-A41A-463DBD= 15FE10 > > > + MODULE_TYPE =3D DXE_DRIVER > > > + VERSION_STRING =3D 1.0 > > > + LIBRARY_CLASS =3D NULL|DXE_DRIVER UEFI_APPLICATI= ON > > > + CONSTRUCTOR =3D BootDiscoveryPolicyUiLibConstr= uctor > > > + DESTRUCTOR =3D BootDiscoveryPolicyUiLibDestru= ctor > > > +# > > > +# The following information is for reference only and not required = by > > > +the > > > build tools. > > > +# > > > +# VALID_ARCHITECTURES =3D IA32 X64 AARCH64 > > > +# > > > + > > > +[Sources] > > > + BootDiscoveryPolicyUiLib.c > > > + BootDiscoveryPolicyUiLibStrings.uni > > > + BootDiscoveryPolicyUiLibVfr.Vfr > > > + > > > +[Packages] > > > + MdePkg/MdePkg.dec > > > + MdeModulePkg/MdeModulePkg.dec > > > + > > > +[LibraryClasses] > > > + DevicePathLib > > > + BaseLib > > > + UefiRuntimeServicesTableLib > > > + UefiBootServicesTableLib > > > + DebugLib > > > + HiiLib > > > + UefiLib > > > + BaseMemoryLib > > > + > > > +[Guids] > > > + gBootDiscoveryPolicyMgrFormsetGuid > > > + > > > +[Pcd] > > > + gEfiMdeModulePkgTokenSpaceGuid.PcdBootDiscoveryPolicy ## > > > PRODUCES > > > + > > > +[Depex] > > > + gEfiHiiDatabaseProtocolGuid AND gPcdProtocolGuid > > > diff --git a/MdeModulePkg/Include/Guid/BootDiscoveryPolicy.h > > > b/MdeModulePkg/Include/Guid/BootDiscoveryPolicy.h > > > new file mode 100644 > > > index 0000000000..8eb0968a16 > > > --- /dev/null > > > +++ b/MdeModulePkg/Include/Guid/BootDiscoveryPolicy.h > > > @@ -0,0 +1,22 @@ > > > +/** @file > > > + Definition for structure & defines exported by Boot Discovery > > > +Policy UI > > > + > > > + Copyright (c) 2021, ARM Ltd. All rights reserved.
Copyright > > > + (c) 2021, Semihalf All rights reserved.
> > > + > > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > > + > > > +**/ > > > + > > > +#ifndef _BOOT_DISCOVERY_POLICY_UI_LIB_H_ #define > > > +_BOOT_DISCOVERY_POLICY_UI_LIB_H_ > > > + > > > +#define BDP_CONNECT_MINIMAL 0 /* Do not connect any additional > > > devices */ > > > +#define BDP_CONNECT_NET 1 > > > +#define BDP_CONNECT_ALL 2 > > > + > > > +#define BOOT_DISCOVERY_POLICY_MGR_FORMSET_GUID { 0x5b6f7107, > > > 0xbb3c, > > > +0x4660, { 0x92, 0xcd, 0x54, 0x26, 0x90, 0x28, 0x0b, 0xbd } } > > > + > > > +#define BOOT_DISCOVERY_POLICY_VAR L"BootDiscoveryPolicy" > > > + > > > +#endif > > > diff --git > > > > > a/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > b.c > > > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > b.c > > > new file mode 100644 > > > index 0000000000..6814d0bb8f > > > --- /dev/null > > > +++ > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyU > > > +++ iLib.c > > > @@ -0,0 +1,160 @@ > > > +/** @file > > > + Boot Discovery Policy UI for Boot Maintenance menu. > > > + > > > + Copyright (c) 2021, ARM Ltd. All rights reserved.
Copyright > > > + (c) 2021, Semihalf All rights reserved.
> > > + > > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > > + > > > +**/ > > > + > > > +#include #include > > > + #include > > > + > > > +#include > > > +#include > > > +#include > > > +#include > > > +#include > > > +#include > > > +#include > > > +#include > > > + > > > +/// > > > +/// HII specific Vendor Device Path definition. > > > +/// > > > +typedef struct { > > > + VENDOR_DEVICE_PATH VendorDevicePath; > > > + EFI_DEVICE_PATH_PROTOCOL End; > > > +} HII_VENDOR_DEVICE_PATH; > > > + > > > +extern unsigned char BootDiscoveryPolicyUiLibVfrBin[]; > > > + > > > +EFI_HII_HANDLE mBPHiiHandle =3D NULL; > > > +EFI_HANDLE mBPDriverHandle =3D NULL; > > > + > > > +STATIC HII_VENDOR_DEVICE_PATH mVendorDevicePath =3D { > > > + { > > > + { > > > + HARDWARE_DEVICE_PATH, > > > + HW_VENDOR_DP, > > > + { > > > + (UINT8)(sizeof (VENDOR_DEVICE_PATH)), > > > + (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8) > > > + } > > > + }, > > > + BOOT_DISCOVERY_POLICY_MGR_FORMSET_GUID > > > + }, > > > + { > > > + END_DEVICE_PATH_TYPE, > > > + END_ENTIRE_DEVICE_PATH_SUBTYPE, > > > + { > > > + (UINT8)(END_DEVICE_PATH_LENGTH), > > > + (UINT8)((END_DEVICE_PATH_LENGTH) >> 8) > > > + } > > > + } > > > +}; > > > + > > > +/** > > > + > > > + Initialize Boot Maintenance Menu library. > > > + > > > + @param ImageHandle The image handle. > > > + @param SystemTable The system table. > > > + > > > + @retval EFI_SUCCESS Install Boot manager menu success. > > > + @retval Other Return error status.gBPDisplayLibGuid > > > + > > > +**/ > > > +EFI_STATUS > > > +EFIAPI > > > +BootDiscoveryPolicyUiLibConstructor ( > > > + IN EFI_HANDLE ImageHandle, > > > + IN EFI_SYSTEM_TABLE *SystemTable > > > + ) > > > +{ > > > + EFI_STATUS Status; > > > + UINTN Size; > > > + UINT32 BootDiscoveryPolicy; > > > + > > > + Size =3D sizeof (UINT32); > > > + Status =3D gRT->GetVariable ( > > > + BOOT_DISCOVERY_POLICY_VAR, > > > + &gBootDiscoveryPolicyMgrFormsetGuid, > > > + NULL, > > > + &Size, > > > + &BootDiscoveryPolicy > > > + ); > > > + if (EFI_ERROR (Status)) { > > > + Status =3D PcdSet32S (PcdBootDiscoveryPolicy, PcdGet32 > > > (PcdBootDiscoveryPolicy)); > > > + ASSERT_EFI_ERROR (Status); > > > + } > > > + > > > + Status =3D gBS->InstallMultipleProtocolInterfaces ( > > > + &mBPDriverHandle, > > > + &gEfiDevicePathProtocolGuid, > > > + &mVendorDevicePath, > > > + NULL > > > + ); > > > + if (EFI_ERROR (Status)) { > > > + return Status; > > > + } > > > + > > > + // > > > + // Publish our HII data > > > + // > > > + mBPHiiHandle =3D HiiAddPackages ( > > > + &gBootDiscoveryPolicyMgrFormsetGuid, > > > + mBPDriverHandle, > > > + BootDiscoveryPolicyUiLibVfrBin, > > > + BootDiscoveryPolicyUiLibStrings, > > > + NULL > > > + ); > > > + if (mBPHiiHandle =3D=3D NULL) { > > > + gBS->UninstallMultipleProtocolInterfaces ( > > > + mBPDriverHandle, > > > + &gEfiDevicePathProtocolGuid, > > > + &mVendorDevicePath, > > > + NULL > > > + ); > > > + > > > + return EFI_OUT_OF_RESOURCES; > > > + } > > > + > > > + return EFI_SUCCESS; > > > +} > > > + > > > +/** > > > + Destructor of Boot Maintenance menu library. > > > + > > > + @param ImageHandle The firmware allocated handle for the EFI i= mage. > > > + @param SystemTable A pointer to the EFI System Table. > > > + > > > + @retval EFI_SUCCESS The destructor completed successfully. > > > + @retval Other value The destructor did not complete successfull= y. > > > + > > > +**/ > > > +EFI_STATUS > > > +EFIAPI > > > +BootDiscoveryPolicyUiLibDestructor ( > > > + IN EFI_HANDLE ImageHandle, > > > + IN EFI_SYSTEM_TABLE *SystemTable > > > + ) > > > +{ > > > + > > > + if (mBPDriverHandle !=3D NULL) { > > > + gBS->UninstallProtocolInterface ( > > > + mBPDriverHandle, > > > + &gEfiDevicePathProtocolGuid, > > > + &mVendorDevicePath > > > + ); > > > + mBPDriverHandle =3D NULL; > > > + } > > > + > > > + if (mBPHiiHandle !=3D NULL) { > > > + HiiRemovePackages (mBPHiiHandle); > > > + mBPHiiHandle =3D NULL; > > > + } > > > + > > > + return EFI_SUCCESS; > > > +} > > > diff --git > > > > > a/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > b.uni > > > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > b.uni > > > new file mode 100644 > > > index 0000000000..eea3ca6c8d > > > --- /dev/null > > > +++ > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyU > > > +++ iLib.uni > > > @@ -0,0 +1,18 @@ > > > +// /** @file > > > +// Boot Discovery Policy UI module. > > > +// > > > +// Copyright (c) 2021, ARM Ltd. All rights reserved.
// Copyrig= ht > > > +(c) 2021, Semihalf All rights reserved.
// // > > > +SPDX-License-Identifier: BSD-2-Clause-Patent // // **/ > > > + > > > + > > > +#string STR_MODULE_ABSTRACT > > > +#language en-US "Boot Discovery Policy UI module." > > > + > > > +#string STR_MODULE_DESCRIPTION > > > +#language en-US "Boot Discovery Policy UI module." > > > + > > > + > > > diff --git > > > > > a/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > bStrings.uni > > > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > bStrings.uni > > > new file mode 100644 > > > index 0000000000..736011c9bb > > > --- /dev/null > > > +++ > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyU > > > +++ iLibStrings.uni > > > @@ -0,0 +1,29 @@ > > > +// *++ > > > +// > > > +// Copyright (c) 2021, ARM Ltd. All rights reserved.
// > > > +Copyright > > > +(c) 2021, Semihalf All rights reserved.
// > > > +SPDX-License-Identifier: BSD-2-Clause-Patent // // Module Name: > > > +// > > > +// BootDiscoveryPolicyUiLibStrings.uni > > > +// > > > +// Abstract: > > > +// > > > +// String definitions for Boot Discovery Policy UI. > > > +// > > > +// --*/ > > > + > > > +/=3D# > > > + > > > + > > > +#langdef en-US "English" > > > + > > > +#string STR_FORM_BDP_MAIN_TITLE #language en-US "Boot > > Discovery > > > Policy" > > > + > > > +#string STR_FORM_BDP_CONN_MIN #language en-US "Minimal" > > > + > > > +#string STR_FORM_BDP_CONN_NET #language en-US "Connect > > > Network Devices" > > > + > > > +#string STR_FORM_BDP_CONN_ALL #language en-US "Connect Al= l > > > Devices" > > > + > > > diff --git > > > > > a/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > bVfr.Vfr > > > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiL > > > i > > > bVfr.Vfr > > > new file mode 100644 > > > index 0000000000..0de87ec34f > > > --- /dev/null > > > +++ > > > b/MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyU > > > +++ iLibVfr.Vfr > > > @@ -0,0 +1,44 @@ > > > +///** @file > > > +// > > > +// Formset for Boot Discovery Policy UI // // Copyright (c) 2021, > > > +ARM Ltd. All rights reserved.
// Copyright (c) 2021, Semihalf > > > +All rights reserved.
// // SPDX-License-Identifier: > > > +BSD-2-Clause-Patent // //**/ > > > + > > > +#include > > > +#include "Guid/BootDiscoveryPolicy.h" > > > +#include > > > + > > > +typedef struct { > > > + UINT32 BootDiscoveryPolicy; > > > +} BOOT_DISCOVERY_POLICY_VARSTORE_DATA; > > > + > > > +formset > > > + guid =3D BOOT_DISCOVERY_POLICY_MGR_FORMSET_GUID, > > > + title =3D STRING_TOKEN(STR_FORM_BDP_MAIN_TITLE), > > > + help =3D STRING_TOKEN(STR_FORM_BDP_MAIN_TITLE), > > > + classguid =3D EFI_IFR_BOOT_MAINTENANCE_GUID, > > > + > > > + efivarstore BOOT_DISCOVERY_POLICY_VARSTORE_DATA, > > > + attribute =3D EFI_VARIABLE_BOOTSERVICE_ACCESS | > > > EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, > > > + name =3D BootDiscoveryPolicy, > > > + guid =3D BOOT_DISCOVERY_POLICY_MGR_FORMSET_GUID; > > > + > > > + form formid =3D 0x0001, > > > + title =3D STRING_TOKEN(STR_FORM_BDP_MAIN_TITLE); > > > + > > > + oneof varid =3D BootDiscoveryPolicy.BootDiscoveryPolicy, > > > + prompt =3D STRING_TOKEN(STR_FORM_BDP_MAIN_TITLE), > > > + help =3D STRING_TOKEN(STR_FORM_BDP_MAIN_TITLE), > > > + flags =3D NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED, > > > + option text =3D STRING_TOKEN(STR_FORM_BDP_CONN_MIN), value =3D > > > BDP_CONNECT_MINIMAL, flags =3D DEFAULT; > > > + option text =3D STRING_TOKEN(STR_FORM_BDP_CONN_NET), value =3D > > > BDP_CONNECT_NET, flags =3D 0; > > > + option text =3D STRING_TOKEN(STR_FORM_BDP_CONN_ALL), value =3D > > > + BDP_CONNECT_ALL, flags =3D 0; endoneof; > > > + > > > + endform; > > > +endformset; > > > -- > > > 2.25.1 > > > > > > IMPORTANT NOTICE: The contents of this email and any attachments are > > > confidential and may also be privileged. If you are not the intended > > > recipient, please notify the sender immediately and do not disclose > > > the contents to any other person, use it for any purpose, or store o= r > > > copy the information in any medium. Thank you. > > > > > >=20 > > >