DynamicTablesPkg: Add dynamic PPTT table generation support

The PPTT generator uses the configuration manager protocol to
obtain information about platform's processor topology and caches.
This data is then used to generate the PPTT table.

The table generator supports ACPI 6.3, PPTT table revision 2.

The dynamic PPTT generator also carries out extensive input
validation which includes cycle detection and MADT-PPTT
cross-validation. A number of architectural compliance checks
are also performed.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
Krzysztof Koch
2019-02-22 17:42:27 +00:00
committed by Sami Mujawar
parent 8349b86836
commit 77db115601
8 changed files with 1867 additions and 6 deletions

View File

@@ -51,6 +51,8 @@ The Dynamic Tables Framework implements the following ACPI table generators:
from the Configuration Manager and builds the MCFG table.
- IORT : The IORT generator collates the IO Topology information from the
Configuration Manager and builds the IORT table.
- PPTT : The PPTT generator collates the processor topology information from
the Configuration Manager and builds the PPTT table.
*/
/** The ACPI_TABLE_GENERATOR_ID type describes ACPI table generator ID.
@@ -72,6 +74,7 @@ typedef enum StdAcpiTableId {
EStdAcpiTableIdSpcr, ///< SPCR Generator
EStdAcpiTableIdMcfg, ///< MCFG Generator
EStdAcpiTableIdIort, ///< IORT Generator
EStdAcpiTableIdPptt, ///< PPTT Generator
EStdAcpiTableIdMax
} ESTD_ACPI_TABLE_ID;