summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ArmVirtPkg/ArmVirtPkg.dec10
-rw-r--r--ArmVirtPkg/ArmVirtQemu.dsc5
-rw-r--r--ArmVirtPkg/FdtClientDxe/FdtClientDxe.c16
-rw-r--r--ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf5
4 files changed, 13 insertions, 23 deletions
diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
index a5ec421664..efe83a383d 100644
--- a/ArmVirtPkg/ArmVirtPkg.dec
+++ b/ArmVirtPkg/ArmVirtPkg.dec
@@ -58,13 +58,3 @@
# EFI_VT_100_GUID.
#
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}|VOID*|0x00000007
-
-[PcdsFeatureFlag]
- #
- # Pure ACPI boot
- #
- # Inhibit installation of the FDT as a configuration table if this feature
- # PCD is TRUE. Otherwise, the OS is presented with both a DT and an ACPI
- # description of the platform, and it is up to the OS to choose.
- #
- gArmVirtTokenSpaceGuid.PcdPureAcpiBoot|FALSE|BOOLEAN|0x0000000a
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index 477dfdcfc7..7b266b98b9 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -34,7 +34,6 @@
# -D FLAG=VALUE
#
DEFINE SECURE_BOOT_ENABLE = FALSE
- DEFINE PURE_ACPI_BOOT_ENABLE = FALSE
!include ArmVirtPkg/ArmVirt.dsc.inc
@@ -94,10 +93,6 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
-!if $(PURE_ACPI_BOOT_ENABLE) == TRUE
- gArmVirtTokenSpaceGuid.PcdPureAcpiBoot|TRUE
-!endif
-
[PcdsFixedAtBuild.common]
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
!if $(ARCH) == AARCH64
diff --git a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
index 4cf79f70cb..21c1074e33 100644
--- a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
+++ b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
@@ -17,9 +17,11 @@
#include <Library/DebugLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
#include <Library/HobLib.h>
#include <libfdt.h>
+#include <Guid/Acpi.h>
#include <Guid/EventGroup.h>
#include <Guid/Fdt.h>
#include <Guid/FdtHob.h>
@@ -316,12 +318,16 @@ OnReadyToBoot (
)
{
EFI_STATUS Status;
+ VOID *Table;
- if (!FeaturePcdGet (PcdPureAcpiBoot)) {
- //
- // Only install the FDT as a configuration table if we want to leave it up
- // to the OS to decide whether it prefers ACPI over DT.
- //
+ //
+ // Only install the FDT as a configuration table if we are not exposing
+ // ACPI 2.0 (or later) tables. Note that the legacy ACPI table GUID has
+ // no meaning on ARM since we need at least ACPI 5.0 support, and the
+ // 64-bit ACPI 2.0 table GUID is mandatory in that case.
+ //
+ Status = EfiGetSystemConfigurationTable (&gEfiAcpi20TableGuid, &Table);
+ if (EFI_ERROR (Status) || Table == NULL) {
Status = gBS->InstallConfigurationTable (&gFdtTableGuid, mDeviceTreeBase);
ASSERT_EFI_ERROR (Status);
}
diff --git a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
index 00017727c3..9861f41e96 100644
--- a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+++ b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
@@ -37,17 +37,16 @@
HobLib
UefiBootServicesTableLib
UefiDriverEntryPoint
+ UefiLib
[Protocols]
gFdtClientProtocolGuid ## PRODUCES
[Guids]
+ gEfiAcpi20TableGuid
gEfiEventReadyToBootGuid
gFdtHobGuid
gFdtTableGuid
-[FeaturePcd]
- gArmVirtTokenSpaceGuid.PcdPureAcpiBoot
-
[Depex]
TRUE