aboutsummaryrefslogtreecommitdiff
path: root/src/include/acpi/acpi.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/acpi/acpi.h')
-rw-r--r--src/include/acpi/acpi.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h
index f6eb772ac7..1c364a0ee8 100644
--- a/src/include/acpi/acpi.h
+++ b/src/include/acpi/acpi.h
@@ -73,7 +73,7 @@ enum acpi_tables {
BERT, DBG2, DMAR, DSDT, FACS, FADT, HEST, HPET, IVRS, MADT, MCFG,
RSDP, RSDT, SLIT, SRAT, SSDT, TCPA, TPM2, XSDT, ECDT,
/* Additional proprietary tables used by coreboot */
- VFCT, NHLT, SPMI
+ VFCT, NHLT, SPMI, CRAT
};
/* RSDP (Root System Description Pointer) */
@@ -307,6 +307,14 @@ typedef struct acpi_ivrs {
struct acpi_ivrs_ivhd ivhd;
} __packed acpi_ivrs_t;
+/* CRAT (Component Resource Affinity Table Structure) */
+struct acpi_crat_header {
+ acpi_header_t header;
+ uint32_t total_entries;
+ uint16_t num_nodes;
+ uint8_t reserved[6];
+} __packed;
+
/* IVHD Type 11h IOMMU Attributes */
typedef struct ivhd11_iommu_attr {
uint32_t reserved1 : 13;
@@ -964,6 +972,10 @@ void acpi_create_ivrs(acpi_ivrs_t *ivrs,
unsigned long (*acpi_fill_ivrs)(acpi_ivrs_t *ivrs_struct,
unsigned long current));
+void acpi_create_crat(struct acpi_crat_header *crat,
+ unsigned long (*acpi_fill_crat)(struct acpi_crat_header *crat_struct,
+ unsigned long current));
+
void acpi_create_hpet(acpi_hpet_t *hpet);
unsigned long acpi_write_hpet(const struct device *device, unsigned long start,
acpi_rsdp_t *rsdp);