diff options
author | Jianyong Wu <jianyong.wu@arm.com> | 2021-07-05 18:06:40 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2021-07-07 16:41:37 +0000 |
commit | c28fc8ab3bc1376484cc8cd1dc959e288741a4d1 (patch) | |
tree | 9d0af176f91b29c8ef9d485d08c159f4cf5d9d47 /ArmVirtPkg/ArmVirtPkg.dec | |
parent | 31fcee6d99daa9c6b733371f20a69c8b26e0ab77 (diff) | |
download | edk2-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.dec | 6 |
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
|