Commit 58225203 authored by Jean-Philippe Brucker's avatar Jean-Philippe Brucker Committed by Rafael J. Wysocki
Browse files

ACPICA: iASL: Add definitions for the VIOT table

ACPICA commit fc4e33319c1ee08f20f5c44853dd8426643f6dfd

Add definitions for the VIOT table and its subtables.

Link: https://github.com/acpica/acpica/commit/fc4e3331


Signed-off-by: default avatarJean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarErik Kaneda <erik.kaneda@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 14012d2f
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
@@ -33,6 +33,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 */
@@ -484,6 +485,71 @@ struct acpi_table_uefi {
	u16 data_offset;	/* Offset of remaining data in table */
};

/*******************************************************************************
 *
 * VIOT - Virtual I/O Translation Table
 *        Version 1
 *
 ******************************************************************************/

struct acpi_table_viot {
	struct acpi_table_header header;	/* Common ACPI table header */
	u16 node_count;
	u16 node_offset;
	u8 reserved[8];
};

/* VIOT subtable header */

struct acpi_viot_header {
	u8 type;
	u8 reserved;
	u16 length;
};

/* Values for Type field above */

enum acpi_viot_node_type {
	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,
};

/* VIOT subtables */

struct acpi_viot_pci_range {
	ACPI_VIOT_HEADER header;
	u32 endpoint_start;
	u16 segment_start;
	u16 segment_end;
	u16 bdf_start;
	u16 bdf_end;
	u16 output_node;
	u8 reserved[6];
};

struct acpi_viot_mmio {
	ACPI_VIOT_HEADER header;
	u32 endpoint;
	u64 base_address;
	u16 output_node;
	u8 reserved[6];
};

struct acpi_viot_virtio_iommu_pci {
	ACPI_VIOT_HEADER header;
	u16 segment;
	u16 bdf;
	u8 reserved[8];
};

struct acpi_viot_virtio_iommu_mmio {
	ACPI_VIOT_HEADER header;
	u8 reserved[4];
	u64 base_address;
};

/*******************************************************************************
 *
 * WAET - Windows ACPI Emulated devices Table