]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiPayloadPkg: Create gUniversalPayloadAcpiTableGuid Hob
authorZhiguang Liu <zhiguang.liu@intel.com>
Thu, 1 Apr 2021 09:08:35 +0000 (17:08 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 16 Jun 2021 05:20:19 +0000 (05:20 +0000)
From SysTableInfo Hob, get ACPI table address, and create
gUniversalPayloadAcpiTableGuid Hob to store it.
Remove directly adding ACPI table to ConfigurationTable.
Dxe ACPI driver will parse it and install ACPI table from Guid Hob.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
Tested-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.h
UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf
UefiPayloadPkg/UefiPayloadPkg.fdf

index 56b85b8e6d89553412621ddeda3122ce0fa907ca..ffd3427fb3c1a97c54480c5038504cd5f4d66e63 100644 (file)
@@ -99,7 +99,6 @@ BlDxeEntryPoint (
 {\r
   EFI_STATUS Status;\r
   EFI_HOB_GUID_TYPE          *GuidHob;\r
-  SYSTEM_TABLE_INFO          *SystemTableInfo;\r
   EFI_PEI_GRAPHICS_INFO_HOB  *GfxInfo;\r
   ACPI_BOARD_INFO            *AcpiBoardInfo;\r
 \r
@@ -113,22 +112,6 @@ BlDxeEntryPoint (
   Status = ReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFED00000, SIZE_1KB, 0, ImageHandle); // HPET\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  //\r
-  // Find the system table information guid hob\r
-  //\r
-  GuidHob = GetFirstGuidHob (&gUefiSystemTableInfoGuid);\r
-  ASSERT (GuidHob != NULL);\r
-  SystemTableInfo = (SYSTEM_TABLE_INFO *)GET_GUID_HOB_DATA (GuidHob);\r
-\r
-  //\r
-  // Install Acpi Table\r
-  //\r
-  if (SystemTableInfo->AcpiTableBase != 0 && SystemTableInfo->AcpiTableSize != 0) {\r
-    DEBUG ((DEBUG_ERROR, "Install Acpi Table at 0x%lx, length 0x%x\n", SystemTableInfo->AcpiTableBase, SystemTableInfo->AcpiTableSize));\r
-    Status = gBS->InstallConfigurationTable (&gEfiAcpiTableGuid, (VOID *)(UINTN)SystemTableInfo->AcpiTableBase);\r
-    ASSERT_EFI_ERROR (Status);\r
-  }\r
-\r
   //\r
   // Find the frame buffer information and update PCDs\r
   //\r
index 512105fafd112beafa1da1bd6c6a9f331732e249..3332a30eaebfe6990dde8111681e277359956a66 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The header file of bootloader support DXE.\r
 \r
-Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -19,12 +19,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include <Library/IoLib.h>\r
 #include <Library/HobLib.h>\r
 \r
-#include <Guid/Acpi.h>\r
 #include <Guid/SmBios.h>\r
 #include <Guid/SystemTableInfoGuid.h>\r
 #include <Guid/AcpiBoardInfoGuid.h>\r
 #include <Guid/GraphicsInfoHob.h>\r
 \r
-#include <IndustryStandard/Acpi.h>\r
-\r
 #endif\r
index 30f41f8c3950fb14504f63787e45310d1bb0976a..1ccb2509913f105237533250ec43f11cd10f130e 100644 (file)
@@ -42,7 +42,6 @@
   HobLib\r
 \r
 [Guids]\r
-  gEfiAcpiTableGuid\r
   gUefiSystemTableInfoGuid\r
   gUefiAcpiBoardInfoGuid\r
   gEfiGraphicsInfoHobGuid\r
index 80f66a3fd547ccc060c728ed17672acaf9aad998..8c6f7e326fc09ef731741b9edc4762f1c2024a89 100644 (file)
@@ -235,6 +235,7 @@ BuildHobFromBl (
   EFI_PEI_GRAPHICS_DEVICE_INFO_HOB GfxDeviceInfo;\r
   EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *NewGfxDeviceInfo;\r
   UNIVERSAL_PAYLOAD_SMBIOS_TABLE   *SmBiosTableHob;\r
+  UNIVERSAL_PAYLOAD_ACPI_TABLE     *AcpiTableHob;\r
 \r
   //\r
   // Parse memory info and build memory HOBs\r
@@ -287,6 +288,16 @@ BuildHobFromBl (
   SmBiosTableHob->SmBiosEntryPoint = SysTableInfo.SmbiosTableBase;\r
   DEBUG ((DEBUG_INFO, "Create smbios table gUniversalPayloadSmbiosTableGuid guid hob\n"));\r
 \r
+  //\r
+  // Creat ACPI table Hob\r
+  //\r
+  AcpiTableHob = BuildGuidHob (&gUniversalPayloadAcpiTableGuid, sizeof (UNIVERSAL_PAYLOAD_ACPI_TABLE));\r
+  ASSERT (AcpiTableHob != NULL);\r
+  AcpiTableHob->Header.Revision = UNIVERSAL_PAYLOAD_ACPI_TABLE_REVISION;\r
+  AcpiTableHob->Header.Length = sizeof (UNIVERSAL_PAYLOAD_ACPI_TABLE);\r
+  AcpiTableHob->Rsdp = SysTableInfo.AcpiTableBase;\r
+  DEBUG ((DEBUG_INFO, "Create smbios table gUniversalPayloadAcpiTableGuid guid hob\n"));\r
+\r
   //\r
   // Create guid hob for acpi board information\r
   //\r
index e7d0d15118cba5eb62ae7c9257eca566ee146be6..a4c9da128e321ab186d11c8672210998cbc889bb 100644 (file)
@@ -32,7 +32,7 @@
 #include <Guid/AcpiBoardInfoGuid.h>\r
 #include <Guid/GraphicsInfoHob.h>\r
 #include <UniversalPayload/SmbiosTable.h>\r
-\r
+#include <UniversalPayload/AcpiTable.h>\r
 \r
 #define LEGACY_8259_MASK_REGISTER_MASTER  0x21\r
 #define LEGACY_8259_MASK_REGISTER_SLAVE   0xA1\r
index fc5b5ce9d401a97f71042a1962f4434f2f3fcfe1..8d42925fcd2913071759463dba507fd79afae9fa 100644 (file)
@@ -65,6 +65,7 @@
   gEfiGraphicsDeviceInfoHobGuid\r
   gUefiAcpiBoardInfoGuid\r
   gUniversalPayloadSmbiosTableGuid\r
+  gUniversalPayloadAcpiTableGuid\r
 \r
 [FeaturePcd.IA32]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES\r
index 8fc509024b250f42df2f3ad5798b730febaa1500..ed7fbcaddbd037c19e598b486d15577e4475e249 100644 (file)
@@ -175,6 +175,10 @@ INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
 INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
 INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf\r
 \r
+#\r
+# ACPI Support\r
+#\r
+INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
 \r
 #\r
 # Shell\r