This patch series adds support for ACPI tables on the SBSA Qemu platform. We are using a pseudo static approach to create the ACPI tables. Some of the tables such as DSDT, MCFG, SPCR, GTDT are created in a static way at compile time because they hold a fixed configuration and there are no changes at runtime.
The MADT and SSDT are dependant on the number of CPUs and hence they are created at runtime based on the number of CPUs the user has requested.
Changes in V2: - Add support for SSDT table creation - Addressed the comments of V1 patch o Moved PCI changes to a separate patch o Used Pcd to create common ACPI fields such as OEMID, OEM revision etc. o Created an Include directory to hold the common header files for ACPI
Tanmay Jagdale (5): SbsaQemu: Initial support for static ACPI tables SbsaQemu: AcpiTables: Add PCI support and MCFG Table SbsaQemu: Add new ACPI driver and FDT parser to count CPU SbsaQemu: AcpiDxe: Create MADT table at runtime SbsaQemu: AcpiDxe: Add support to SSDT Table
Platform/Qemu/SbsaQemu/SbsaQemu.dsc | 12 +- Platform/Qemu/SbsaQemu/SbsaQemu.fdf | 9 + Silicon/Qemu/SbsaQemu/Acpi.dsc.inc | 36 ++ .../Qemu/SbsaQemu/AcpiTables/AcpiTables.inf | 46 ++ Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl | 449 ++++++++++++++++++ Silicon/Qemu/SbsaQemu/AcpiTables/Fadt.aslc | 80 ++++ Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc | 67 +++ Silicon/Qemu/SbsaQemu/AcpiTables/Mcfg.aslc | 43 ++ Silicon/Qemu/SbsaQemu/AcpiTables/Spcr.aslc | 53 +++ .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 379 +++++++++++++++ .../SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf | 67 +++ .../SbsaQemuPlatformDxe.inf | 1 - .../Include/IndustryStandard/SbsaQemuAcpi.h | 81 ++++ Silicon/Qemu/SbsaQemu/SbsaQemu.dec | 8 +- 14 files changed, 1326 insertions(+), 5 deletions(-) create mode 100644 Silicon/Qemu/SbsaQemu/Acpi.dsc.inc create mode 100644 Silicon/Qemu/SbsaQemu/AcpiTables/AcpiTables.inf create mode 100644 Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl create mode 100644 Silicon/Qemu/SbsaQemu/AcpiTables/Fadt.aslc create mode 100644 Silicon/Qemu/SbsaQemu/AcpiTables/Gtdt.aslc create mode 100644 Silicon/Qemu/SbsaQemu/AcpiTables/Mcfg.aslc create mode 100644 Silicon/Qemu/SbsaQemu/AcpiTables/Spcr.aslc create mode 100644 Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c create mode 100644 Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf create mode 100644 Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuAcpi.h