mirror of https://github.com/acidanthera/audk.git
UefiPayloadPkg: Create gUniversalPayloadAcpiTableGuid Hob
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>
This commit is contained in:
parent
761329ee27
commit
8c0d678063
|
@ -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);
|
||||
}
|
||||
|
||||
//
|
||||
// Find the frame buffer information and update PCDs
|
||||
//
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
HobLib
|
||||
|
||||
[Guids]
|
||||
gEfiAcpiTableGuid
|
||||
gUefiSystemTableInfoGuid
|
||||
gUefiAcpiBoardInfoGuid
|
||||
gEfiGraphicsInfoHobGuid
|
||||
|
|
|
@ -235,6 +235,7 @@ BuildHobFromBl (
|
|||
EFI_PEI_GRAPHICS_DEVICE_INFO_HOB GfxDeviceInfo;
|
||||
EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *NewGfxDeviceInfo;
|
||||
UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmBiosTableHob;
|
||||
UNIVERSAL_PAYLOAD_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 gUniversalPayloadSmbiosTableGuid guid hob\n"));
|
||||
|
||||
//
|
||||
// Creat ACPI table Hob
|
||||
//
|
||||
AcpiTableHob = BuildGuidHob (&gUniversalPayloadAcpiTableGuid, sizeof (UNIVERSAL_PAYLOAD_ACPI_TABLE));
|
||||
ASSERT (AcpiTableHob != NULL);
|
||||
AcpiTableHob->Header.Revision = UNIVERSAL_PAYLOAD_ACPI_TABLE_REVISION;
|
||||
AcpiTableHob->Header.Length = sizeof (UNIVERSAL_PAYLOAD_ACPI_TABLE);
|
||||
AcpiTableHob->Rsdp = SysTableInfo.AcpiTableBase;
|
||||
DEBUG ((DEBUG_INFO, "Create smbios table gUniversalPayloadAcpiTableGuid guid hob\n"));
|
||||
|
||||
//
|
||||
// Create guid hob for acpi board information
|
||||
//
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
gEfiGraphicsDeviceInfoHobGuid
|
||||
gUefiAcpiBoardInfoGuid
|
||||
gUniversalPayloadSmbiosTableGuid
|
||||
gUniversalPayloadAcpiTableGuid
|
||||
|
||||
[FeaturePcd.IA32]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES
|
||||
|
|
|
@ -175,6 +175,10 @@ INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
|||
INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
|
||||
INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
||||
|
||||
#
|
||||
# ACPI Support
|
||||
#
|
||||
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
||||
|
||||
#
|
||||
# Shell
|
||||
|
|
Loading…
Reference in New Issue