[edk2-devel] [PATCH 9/9] UefiPayloadPkg: Creat gPldAcpiTableGuid Hob

Guo Dong guo.dong at intel.com
Wed Jun 2 03:47:03 UTC 2021


Agree with Patrick.
In this patch, it removed gBS->InstallConfigurationTable(), it should also add AcpiTableDxe.inf to avoid regression.

Thanks,
Guo

From: Patrick Rudolph <patrick.rudolph at 9elements.com>
Sent: Wednesday, May 26, 2021 6:50 AM
To: devel at edk2.groups.io; Liu, Zhiguang <zhiguang.liu at intel.com>
Cc: Ma, Maurice <maurice.ma at intel.com>; Dong, Guo <guo.dong at intel.com>; You, Benjamin <benjamin.you at intel.com>; Ni, Ray <ray.ni at intel.com>
Subject: Re: [edk2-devel] [PATCH 9/9] UefiPayloadPkg: Creat gPldAcpiTableGuid Hob


On Mon, May 24, 2021 at 9:13 AM Zhiguang Liu <zhiguang.liu at intel.com<mailto:zhiguang.liu at intel.com>> 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 <maurice.ma at intel.com<mailto:maurice.ma at intel.com>>
Cc: Guo Dong <guo.dong at intel.com<mailto:guo.dong at intel.com>>
Cc: Benjamin You <benjamin.you at intel.com<mailto:benjamin.you at intel.com>>
Cc: Ray Ni <ray.ni at intel.com<mailto:ray.ni at intel.com>>
Signed-off-by: Zhiguang Liu <zhiguang.liu at intel.com<mailto:zhiguang.liu at intel.com>>
---
 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.<BR>
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent

 **/
@@ -19,12 +19,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include <Library/IoLib.h>
 #include <Library/HobLib.h>

-#include <Guid/Acpi.h>
 #include <Guid/SmBios.h>
 #include <Guid/SystemTableInfoGuid.h>
 #include <Guid/AcpiBoardInfoGuid.h>
 #include <Guid/GraphicsInfoHob.h>

-#include <IndustryStandard/Acpi.h>
-
 #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 <Guid/AcpiBoardInfoGuid.h>
 #include <Guid/GraphicsInfoHob.h>
 #include <UniversalPayload/SmbiosTable.h>
-
+#include <UniversalPayload/AcpiTable.h>

 #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 at edk2.groups.io<mailto:devel%2Bowner at edk2.groups.io>
Unsubscribe: https://edk2.groups.io/g/devel/unsub [patrick.rudolph at 9elements.com<mailto:patrick.rudolph at 9elements.com>]
------------



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75932): https://edk2.groups.io/g/devel/message/75932
Mute This Topic: https://groups.io/mt/83045527/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20210602/a10457df/attachment.htm>


More information about the edk2-devel-archive mailing list