]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
UefiPayloadPkg: Build a HOB from bootloader ACPI table
[mirror_edk2.git] / UefiPayloadPkg / UefiPayloadEntry / UniversalPayloadEntry.c
index 03ad9c457bc725ae0c74cac311d0f1a5b3ee77c6..7e67cf0f040d32aee18d8c843b5bf1ba127c87eb 100644 (file)
@@ -260,6 +260,8 @@ BuildHobs (
   UNIVERSAL_PAYLOAD_EXTRA_DATA     *ExtraData;\r
   UINT8                            *GuidHob;\r
   EFI_HOB_FIRMWARE_VOLUME          *FvHob;\r
+  UNIVERSAL_PAYLOAD_ACPI_TABLE     *AcpiTable;\r
+  ACPI_BOARD_INFO                  *AcpiBoardInfo;\r
 \r
   Hob.Raw = (UINT8 *) BootloaderParameter;\r
   MinimalNeededSize = FixedPcdGet32 (PcdSystemMemoryUefiRegionSize);\r
@@ -351,6 +353,16 @@ BuildHobs (
   *DxeFv = (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) ExtraData->Entry[0].Base;\r
   ASSERT ((*DxeFv)->FvLength == ExtraData->Entry[0].Size);\r
 \r
+  //\r
+  // Create guid hob for acpi board information\r
+  //\r
+  GuidHob = GetFirstGuidHob(&gUniversalPayloadAcpiTableGuid);\r
+  if (GuidHob != NULL) {\r
+    AcpiTable = (UNIVERSAL_PAYLOAD_ACPI_TABLE *) GET_GUID_HOB_DATA (GuidHob);\r
+    AcpiBoardInfo = BuildHobFromAcpi ((UINT64)AcpiTable->Rsdp);\r
+    ASSERT (AcpiBoardInfo != NULL);\r
+  }\r
+\r
   //\r
   // Update DXE FV information to first fv hob in the hob list, which\r
   // is the empty FvHob created before.\r