diff options
Diffstat (limited to 'source/include/actbl3.h')
-rw-r--r-- | source/include/actbl3.h | 84 |
1 files changed, 83 insertions, 1 deletions
diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 1c79143b8e63..d4260a1d98b2 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -177,6 +177,7 @@ #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ #define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */ #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ +#define ACPI_SIG_VIOT "VIOT" /* Virtual I/O Translation Table */ #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ @@ -463,7 +464,8 @@ typedef struct acpi_srat_generic_affinity /* Flags for ACPI_SRAT_GENERIC_AFFINITY */ -#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */ /******************************************************************************* * @@ -684,6 +686,86 @@ typedef struct acpi_table_uefi /******************************************************************************* * + * VIOT - Virtual I/O Translation Table + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_viot +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT16 NodeCount; + UINT16 NodeOffset; + UINT8 Reserved[8]; + +} ACPI_TABLE_VIOT; + +/* VIOT subtable header */ + +typedef struct acpi_viot_header +{ + UINT8 Type; + UINT8 Reserved; + UINT16 Length; + +} ACPI_VIOT_HEADER; + +/* Values for Type field above */ + +enum AcpiViotNodeType +{ + ACPI_VIOT_NODE_PCI_RANGE = 0x01, + ACPI_VIOT_NODE_MMIO = 0x02, + ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 0x03, + ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 0x04, + ACPI_VIOT_RESERVED = 0x05 +}; + +/* VIOT subtables */ + +typedef struct acpi_viot_pci_range +{ + ACPI_VIOT_HEADER Header; + UINT32 EndpointStart; + UINT16 SegmentStart; + UINT16 SegmentEnd; + UINT16 BdfStart; + UINT16 BdfEnd; + UINT16 OutputNode; + UINT8 Reserved[6]; + +} ACPI_VIOT_PCI_RANGE; + +typedef struct acpi_viot_mmio +{ + ACPI_VIOT_HEADER Header; + UINT32 Endpoint; + UINT64 BaseAddress; + UINT16 OutputNode; + UINT8 Reserved[6]; + +} ACPI_VIOT_MMIO; + +typedef struct acpi_viot_virtio_iommu_pci +{ + ACPI_VIOT_HEADER Header; + UINT16 Segment; + UINT16 Bdf; + UINT8 Reserved[8]; + +} ACPI_VIOT_VIRTIO_IOMMU_PCI; + +typedef struct acpi_viot_virtio_iommu_mmio +{ + ACPI_VIOT_HEADER Header; + UINT8 Reserved[4]; + UINT64 BaseAddress; + +} ACPI_VIOT_VIRTIO_IOMMU_MMIO; + + +/******************************************************************************* + * * WAET - Windows ACPI Emulated devices Table * Version 1 * |