summaryrefslogtreecommitdiff
path: root/src/arch/x86/include
diff options
context:
space:
mode:
authorMarc Jones <marcj303@gmail.com>2018-08-22 18:57:24 -0600
committerMartin Roth <martinroth@google.com>2018-08-27 15:48:30 +0000
commit93a51766aaca50cfbcbedca780e935ce66c12d73 (patch)
tree0ae0e2c8d48b93639c7d5f30072e31683bef8020 /src/arch/x86/include
parentf2592f9bcefa3031bf339f45911cb4033a5753b8 (diff)
x86/acpi: Add ACPI table revision function
Use a single function to set ACPI table versions. This allows us to keep revisions synced to the correct levels for coreboot. This is a partial fix for the bug: FAILED [MEDIUM] SPECMADTFADTRevisions: Test 2, MADT revision is not in sync with the FADT revision; MADT 1 expects FADT 3.0 but found 4.0 instead. BUG=b:112476331 TEST-Run FWTS Change-Id: Ie9a486380e72b1754677c3cdf8190e3ceff9412b Signed-off-by: Marc Jones <marcj303@gmail.com> Reviewed-on: https://review.coreboot.org/28276 Reviewed-by: Martin Roth <martinroth@google.com> Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/arch/x86/include')
-rw-r--r--src/arch/x86/include/arch/acpi.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index 40fbd548d8..52245ee9be 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -76,6 +76,18 @@ enum coreboot_acpi_ids {
COREBOOT_ACPI_ID_MAX = 0xFFFF, /* BOOTFFFF */
};
+/* Table 5-30 DESCRIPTION_HEADER Signatures for tables defined by ACPI 6.2a
+ * Additional tables mssing in 5-30: MADT, RSDP, VFCT, NHLT
+ */
+enum acpi_tables {
+ APIC, BERT, BGRT, CPEP, DSDT, ECDT, EINJ, ERST, FACP, FADT, FACS,
+ FPDT, GTDT, HEST, MSCT, MPST, NFIT, OEMX, PCCT, PMTT, PSDT, RASF,
+ RSDT, SBST, SDEV, SLIT, SRAT, SSDT, XSDT, BOOT, CSRT, DBG2, DBGP,
+ DMAR, DPPT, DRTM, ETDT, HPET, IBFT, IORT, IVRS, LPIT, MCFG, MCHI,
+ MSDM, SDEI, SLIC, SPCR, SPMI, STAO, TCPA, TPM2, WAET, WDAT, WDRT,
+ WPBT, WSMT, XENV, MADT, RSDP, VFCT, NHLT
+};
+
/* RSDP (Root System Description Pointer) */
typedef struct acpi_rsdp {
char signature[8]; /* RSDP signature */
@@ -845,6 +857,12 @@ static inline uintptr_t acpi_align_current(uintptr_t current)
return ALIGN(current, 16);
}
+/* ACPI table revisions should match the revision of the ACPI spec
+ * supported. This function keeps the table versions synced. This could
+ * be made into a weak function if there is ever a need to override the
+ * coreboot default ACPI spec version supported. */
+int get_acpi_table_revision(enum acpi_tables table);
+
#endif // !defined(__ASSEMBLER__) && !defined(__ACPI__) && !defined(__ROMC__)
#endif /* __ASM_ACPI_H */