On Mon, May 24, 2021 at 9:13 AM Zhiguang Liu wrote: > From SysTableInfo Hob, get ACPI table address, and creat gPldAcpiTableGuid > Hob > to store it. Remove diretly adding ACPI table to ConfigurationTable. > Dxe ACPI driver will parse it and install ACPI table from Guid Hob. > > Cc: Maurice Ma > Cc: Guo Dong > Cc: Benjamin You > Cc: Ray Ni > Signed-off-by: Zhiguang Liu > --- > UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c | 17 > ----------------- > UefiPayloadPkg/BlSupportDxe/BlSupportDxe.h | 5 +---- > UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf | 1 - > UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 11 +++++++++++ > UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h | 2 +- > UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf | 1 + > 6 files changed, 14 insertions(+), 23 deletions(-) > > diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c > b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c > index 56b85b8e6d..ffd3427fb3 100644 > --- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c > +++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c > @@ -99,7 +99,6 @@ BlDxeEntryPoint ( > { > EFI_STATUS Status; > EFI_HOB_GUID_TYPE *GuidHob; > - SYSTEM_TABLE_INFO *SystemTableInfo; > EFI_PEI_GRAPHICS_INFO_HOB *GfxInfo; > ACPI_BOARD_INFO *AcpiBoardInfo; > > @@ -113,22 +112,6 @@ BlDxeEntryPoint ( > Status = ReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, > 0xFED00000, SIZE_1KB, 0, ImageHandle); // HPET > ASSERT_EFI_ERROR (Status); > > - // > - // Find the system table information guid hob > - // > - GuidHob = GetFirstGuidHob (&gUefiSystemTableInfoGuid); > - ASSERT (GuidHob != NULL); > - SystemTableInfo = (SYSTEM_TABLE_INFO *)GET_GUID_HOB_DATA (GuidHob); > - > - // > - // Install Acpi Table > - // > - if (SystemTableInfo->AcpiTableBase != 0 && > SystemTableInfo->AcpiTableSize != 0) { > - DEBUG ((DEBUG_ERROR, "Install Acpi Table at 0x%lx, length 0x%x\n", > SystemTableInfo->AcpiTableBase, SystemTableInfo->AcpiTableSize)); > - Status = gBS->InstallConfigurationTable (&gEfiAcpiTableGuid, (VOID > *)(UINTN)SystemTableInfo->AcpiTableBase); > - ASSERT_EFI_ERROR (Status); > - } > - > Note that AcpiTableDxe.inf is currently not part of the FV on UefipayloadPkg, so there won't be any tables installed after all. // > // Find the frame buffer information and update PCDs > // > diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.h > b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.h > index 512105fafd..3332a30eae 100644 > --- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.h > +++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.h > @@ -1,7 +1,7 @@ > /** @file > The header file of bootloader support DXE. > > -Copyright (c) 2014, Intel Corporation. All rights reserved.
> +Copyright (c) 2021, Intel Corporation. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > @@ -19,12 +19,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #include > #include > > -#include > #include > #include > #include > #include > > -#include > - > #endif > diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf > b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf > index 30f41f8c39..1ccb250991 100644 > --- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf > +++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf > @@ -42,7 +42,6 @@ > HobLib > > [Guids] > - gEfiAcpiTableGuid > gUefiSystemTableInfoGuid > gUefiAcpiBoardInfoGuid > gEfiGraphicsInfoHobGuid > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > index 7b71d37f94..14b7a732da 100644 > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c > @@ -235,6 +235,7 @@ BuildHobFromBl ( > EFI_PEI_GRAPHICS_DEVICE_INFO_HOB GfxDeviceInfo; > EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *NewGfxDeviceInfo; > PLD_SMBIOS_TABLE *SmBiosTableHob; > + PLD_ACPI_TABLE *AcpiTableHob; > > // > // Parse memory info and build memory HOBs > @@ -287,6 +288,16 @@ BuildHobFromBl ( > SmBiosTableHob->SmBiosEntryPoint = SysTableInfo.SmbiosTableBase; > DEBUG ((DEBUG_INFO, "Create smbios table gPldSmbiosTableGuid guid > hob\n")); > > + // > + // Creat ACPI table Hob > + // > + AcpiTableHob = BuildGuidHob (&gPldAcpiTableGuid, sizeof > (PLD_ACPI_TABLE)); > + ASSERT (AcpiTableHob != NULL); > + AcpiTableHob->PldHeader.Revision = PLD_ACPI_TABLE_REVISION; > + AcpiTableHob->PldHeader.Length = sizeof (PLD_ACPI_TABLE); > + AcpiTableHob->Rsdp = SysTableInfo.AcpiTableBase; > + DEBUG ((DEBUG_INFO, "Create smbios table gPldAcpiTableGuid guid > hob\n")); > + > DEBUG ((DEBUG_INFO, "Create acpi table ... // > // Create guid hob for acpi board information > // > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h > index e7d0d15118..a4c9da128e 100644 > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h > @@ -32,7 +32,7 @@ > #include > #include > #include > - > +#include > > #define LEGACY_8259_MASK_REGISTER_MASTER 0x21 > #define LEGACY_8259_MASK_REGISTER_SLAVE 0xA1 > diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > index 444f39acf3..01388b8831 100644 > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf > @@ -65,6 +65,7 @@ > gEfiGraphicsDeviceInfoHobGuid > gUefiAcpiBoardInfoGuid > gPldSmbiosTableGuid > + gPldAcpiTableGuid > > [FeaturePcd.IA32] > gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## > CONSUMES > -- > 2.30.0.windows.2 > > > > ------------ > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#75493): https://edk2.groups.io/g/devel/message/75493 > Mute This Topic: https://groups.io/mt/83045527/2917327 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [ > patrick.rudolph@9elements.com] > ------------ > > >