Sorry for the duplicated msg. Please ignore the duplicated one. Thanks, -Maurice
> -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ma, > Maurice > Sent: Thursday, September 30, 2021 9:59 > To: devel@edk2.groups.io > Cc: Ma, Maurice <maurice...@intel.com>; Ni, Ray <ray...@intel.com>; Dong, > Guo <guo.d...@intel.com>; You, Benjamin <benjamin....@intel.com> > Subject: [edk2-devel] [PATCH 1/1] UefiPayloadPkg: Add PCI root bridge info > hob support for SBL > > Current UefiPayloadPkg can suport PCI root bridge info HOB provided by > bootloader. For UniversalPayload, bootloader can directly provide this HOB > for payload consumption. However, for legacy UEFI payload, it is required to > migrate the HOB information from bootloader HOB space to UEFI payload > HOB space. This patch added the missing part for the bootloader ParseLib in > order to support both legacy and universal UEFI payload. > > This patch was tested on Slim Bootloader with latest UEFI payload, and it > worked as expected. > > Cc: Ray Ni <ray...@intel.com> > Cc: Guo Dong <guo.d...@intel.com> > Cc: Benjamin You <benjamin....@intel.com> > Signed-off-by: Maurice Ma <maurice...@intel.com> > --- > UefiPayloadPkg/Include/Library/BlParseLib.h | 14 ++++++ > .../Library/CbParseLib/CbParseLib.c | 16 +++++++ > .../Library/SblParseLib/SblParseLib.c | 47 ++++++++++++++++++- > .../Library/SblParseLib/SblParseLib.inf | 1 + > .../UefiPayloadEntry/UefiPayloadEntry.c | 8 ++++ > 5 files changed, 84 insertions(+), 2 deletions(-) > > diff --git a/UefiPayloadPkg/Include/Library/BlParseLib.h > b/UefiPayloadPkg/Include/Library/BlParseLib.h > index 1244190d4e87..49eac3124818 100644 > --- a/UefiPayloadPkg/Include/Library/BlParseLib.h > +++ b/UefiPayloadPkg/Include/Library/BlParseLib.h > @@ -116,4 +116,18 @@ ParseGfxDeviceInfo ( > OUT EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *GfxDeviceInfo ); +/**+ > Parse and handle the misc info provided by bootloader++ @retval > RETURN_SUCCESS The misc information was parsed successfully.+ > @retval RETURN_NOT_FOUND Could not find required misc info.+ > @retval RETURN_OUT_OF_RESOURCES Insufficant memory > space.++**/+RETURN_STATUS+EFIAPI+ParseMiscInfo (+ VOID+ );+ > #endifdiff --git a/UefiPayloadPkg/Library/CbParseLib/CbParseLib.c > b/UefiPayloadPkg/Library/CbParseLib/CbParseLib.c > index 4f90687e407e..f81aa0f301d8 100644 > --- a/UefiPayloadPkg/Library/CbParseLib/CbParseLib.c > +++ b/UefiPayloadPkg/Library/CbParseLib/CbParseLib.c > @@ -560,3 +560,19 @@ ParseGfxDeviceInfo ( > return RETURN_NOT_FOUND; } +/**+ Parse and handle the misc info > provided by bootloader++ @retval RETURN_SUCCESS The misc > information was parsed successfully.+ @retval RETURN_NOT_FOUND > Could not find required misc info.+ @retval RETURN_OUT_OF_RESOURCES > Insufficant memory space.++**/+RETURN_STATUS+EFIAPI+ParseMiscInfo > (+ VOID+ )+{+ return RETURN_SUCCESS;+}diff --git > a/UefiPayloadPkg/Library/SblParseLib/SblParseLib.c > b/UefiPayloadPkg/Library/SblParseLib/SblParseLib.c > index 7214fd87d20c..ccdcbfc07db9 100644 > --- a/UefiPayloadPkg/Library/SblParseLib/SblParseLib.c > +++ b/UefiPayloadPkg/Library/SblParseLib/SblParseLib.c > @@ -1,7 +1,7 @@ > /** @file This library will parse the Slim Bootloader to get required > information. - Copyright (c) 2014 - 2019, Intel Corporation. All rights > reserved.<BR>+ Copyright (c) 2014 - 2021, Intel Corporation. All rights > reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/@@ -15,7 > +15,7 @@ > #include <Library/HobLib.h> #include <Library/BlParseLib.h> #include > <IndustryStandard/Acpi.h>-+#include <UniversalPayload/PciRootBridges.h> > /** This function retrieves the parameter base address from boot > loader.@@ -221,3 +221,46 @@ ParseGfxDeviceInfo ( > return RETURN_SUCCESS; } +/**+ Parse and handle the misc info provided > by bootloader++ @retval RETURN_SUCCESS The misc information was > parsed successfully.+ @retval RETURN_NOT_FOUND Could not find > required misc info.+ @retval RETURN_OUT_OF_RESOURCES Insufficant > memory space.++**/+RETURN_STATUS+EFIAPI+ParseMiscInfo (+ > VOID+ )+{+ RETURN_STATUS Status;+ > UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES *BlRootBridgesHob;+ > UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES *PldRootBridgesHob;++ > Status = RETURN_NOT_FOUND;+ BlRootBridgesHob = > (UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES *) GetGuidHobDataFromSbl (+ > &gUniversalPayloadPciRootBridgeInfoGuid+ );+ if > (BlRootBridgesHob != NULL) {+ //+ // Migrate bootloader root bridge info > hob from bootloader to payload.+ //+ PldRootBridgesHob = BuildGuidHob > (+ > &gUniversalPayloadPciRootBridgeInfoGuid,+ > BlRootBridgesHob->Header.Length+ );+ > ASSERT > (PldRootBridgesHob != NULL);+ if (PldRootBridgesHob != NULL) {+ > CopyMem (PldRootBridgesHob, BlRootBridgesHob, BlRootBridgesHob- > >Header.Length);+ DEBUG ((DEBUG_INFO, "Create PCI root bridge info > guid hob\n"));+ Status = RETURN_SUCCESS;+ } else {+ Status = > RETURN_OUT_OF_RESOURCES;+ }+ }++ return Status;+}+diff --git > a/UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > b/UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > index 665a5a8adcef..535cca58a63c 100644 > --- a/UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > +++ b/UefiPayloadPkg/Library/SblParseLib/SblParseLib.inf > @@ -41,6 +41,7 @@ > gLoaderMemoryMapInfoGuid gEfiGraphicsInfoHobGuid > gEfiGraphicsDeviceInfoHobGuid+ gUniversalPayloadPciRootBridgeInfoGuid > [Pcd] gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameterdiff --git > a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > index f2ac3d2c6925..5a1e5786687a 100644 > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > @@ -321,6 +321,14 @@ BuildHobFromBl ( > return Status; } + //+ // Parse the misc info provided by > bootloader+ //+ > Status = ParseMiscInfo ();+ if (EFI_ERROR (Status)) {+ DEBUG > ((DEBUG_WARN, "Error when parsing misc info, Status = %r\n", Status));+ }+ > // // Parse platform specific information. //-- > 2.29.2.windows.2 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#81353): https://edk2.groups.io/g/devel/message/81353 > Mute This Topic: https://groups.io/mt/85978857/1773972 > Group Owner: devel+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [maurice...@intel.com] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#81354): https://edk2.groups.io/g/devel/message/81354 Mute This Topic: https://groups.io/mt/85978857/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-