@@ -25,6 +25,7 @@
* the wrong signature.
*/
#define ACPI_SIG_IORT "IORT" /* IO Remapping Table */
+#define ACPI_SIG_VIOT "VIOT" /* Virtual I/O Table */
#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */
#define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */
#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
@@ -412,6 +413,36 @@ struct acpi_ivrs_memory {
u64 memory_length;
};
+/*******************************************************************************
+ *
+ * VIOT - Virtual I/O Table
+ * Version 1
+ *
+ ******************************************************************************/
+
+struct acpi_table_viot {
+ struct acpi_table_header header;
+ u8 reserved[12];
+ struct acpi_table_header base_table;
+};
+
+#define ACPI_VIOT_IORT_NODE_VIRTIO_PCI_IOMMU 0x80
+#define ACPI_VIOT_IORT_NODE_VIRTIO_MMIO_IOMMU 0x81
+
+struct acpi_viot_iort_virtio_pci_iommu {
+ u32 devid;
+};
+
+struct acpi_viot_iort_virtio_mmio_iommu {
+ u64 base_address;
+ u64 span;
+ u64 flags;
+ u64 interrupt;
+};
+
+/* FIXME: rename this monstrosity. */
+#define ACPI_VIOT_IORT_VIRTIO_MMIO_IOMMU_CACHE_COHERENT (1<<0)
+
/*******************************************************************************
*
* LPIT - Low Power Idle Table
This is temporary, until the VIOT table is published and these definitions added to ACPICA. Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> --- include/acpi/actbl2.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)