aboutsummaryrefslogtreecommitdiff
path: root/source/include/actbl3.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/include/actbl3.h')
-rw-r--r--source/include/actbl3.h84
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
*