summaryrefslogtreecommitdiffstats
path: root/ArmVirtPkg/ArmVirtPkg.dec
diff options
context:
space:
mode:
authorJianyong Wu <jianyong.wu@arm.com>2021-07-05 18:06:40 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-07-07 16:41:37 +0000
commitc28fc8ab3bc1376484cc8cd1dc959e288741a4d1 (patch)
tree9d0af176f91b29c8ef9d485d08c159f4cf5d9d47 /ArmVirtPkg/ArmVirtPkg.dec
parent31fcee6d99daa9c6b733371f20a69c8b26e0ab77 (diff)
downloadedk2-c28fc8ab3bc1376484cc8cd1dc959e288741a4d1.tar.gz
edk2-c28fc8ab3bc1376484cc8cd1dc959e288741a4d1.tar.bz2
edk2-c28fc8ab3bc1376484cc8cd1dc959e288741a4d1.zip
ArmVirtPkg: Install Acpi tables for Cloud Hypervisor
There is no device like Fw-cfg in Qemu in Cloud Hypervisor, so a specific Acpi handler is introduced here. The handler implemented here is in a very simple way: 1. acquire the RSDP from the PCD variable in the top ".dsc"; 2. get the XSDT address from RSDP structure; 3. get the ACPI tables following the XSDT structure and install them one by one; 4. get DSDT address from FADT and install DSDT table. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Jianyong Wu <jianyong.wu@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Diffstat (limited to 'ArmVirtPkg/ArmVirtPkg.dec')
-rw-r--r--ArmVirtPkg/ArmVirtPkg.dec6
1 files changed, 6 insertions, 0 deletions
diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
index bf82f7f1f3..4e4d758015 100644
--- a/ArmVirtPkg/ArmVirtPkg.dec
+++ b/ArmVirtPkg/ArmVirtPkg.dec
@@ -66,6 +66,12 @@
#
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}|VOID*|0x00000007
+ ##
+ # This is the physical address of Rsdp which is the core struct of Acpi.
+ # Cloud Hypervisor has no other way to pass Rsdp address to the guest except use a PCD.
+ #
+ gArmVirtTokenSpaceGuid.PcdCloudHvAcpiRsdpBaseAddress|0x0|UINT64|0x00000005
+
[PcdsDynamic]
#
# Whether to force disable ACPI, regardless of the fw_cfg settings