Jean-Philippe Brucker
2021-Mar-16 19:16 UTC
[PATCH 1/3] ACPICA: iASL: Add definitions for the VIOT table
Just here for reference, don't merge!
The actual commits will be pulled from the next ACPICA release.
I squashed the three relevant commits:
ACPICA commit fc4e33319c1ee08f20f5c44853dd8426643f6dfd
ACPICA commit 2197e354fb5dcafaddd2016ffeb0620e5bc3d5e2
ACPICA commit 856a96fdf4b51b2b8da17529df0255e6f51f1b5b
Link: https://github.com/acpica/acpica/commit/fc4e3331
Link: https://github.com/acpica/acpica/commit/2197e354
Link: https://github.com/acpica/acpica/commit/856a96fd
Signed-off-by: Bob Moore <robert.moore at intel.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe at linaro.org>
---
include/acpi/actbl3.h | 67 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h
index df5f4b27f3aa..09d15898e9a8 100644
--- a/include/acpi/actbl3.h
+++ b/include/acpi/actbl3.h
@@ -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 */
@@ -483,6 +484,72 @@ 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,
+ ACPI_VIOT_RESERVED = 0x05
+};
+
+/* VIOT subtables */
+
+struct acpi_viot_pci_range {
+ struct 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 {
+ struct acpi_viot_header header;
+ u32 endpoint;
+ u64 base_address;
+ u16 output_node;
+ u8 reserved[6];
+};
+
+struct acpi_viot_virtio_iommu_pci {
+ struct acpi_viot_header header;
+ u16 segment;
+ u16 bdf;
+ u8 reserved[8];
+};
+
+struct acpi_viot_virtio_iommu_mmio {
+ struct acpi_viot_header header;
+ u8 reserved[4];
+ u64 base_address;
+};
+
/*******************************************************************************
*
* WAET - Windows ACPI Emulated devices Table
--
2.30.2
Auger Eric
2021-Mar-18 17:52 UTC
[PATCH 1/3] ACPICA: iASL: Add definitions for the VIOT table
Hi Jean, On 3/16/21 8:16 PM, Jean-Philippe Brucker wrote:> Just here for reference, don't merge! > > The actual commits will be pulled from the next ACPICA release. > I squashed the three relevant commits: > > ACPICA commit fc4e33319c1ee08f20f5c44853dd8426643f6dfd > ACPICA commit 2197e354fb5dcafaddd2016ffeb0620e5bc3d5e2 > ACPICA commit 856a96fdf4b51b2b8da17529df0255e6f51f1b5b > > Link: https://github.com/acpica/acpica/commit/fc4e3331 > Link: https://github.com/acpica/acpica/commit/2197e354 > Link: https://github.com/acpica/acpica/commit/856a96fd > Signed-off-by: Bob Moore <robert.moore at intel.com> > Signed-off-by: Jean-Philippe Brucker <jean-philippe at linaro.org> > --- > include/acpi/actbl3.h | 67 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 67 insertions(+) > > diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h > index df5f4b27f3aa..09d15898e9a8 100644 > --- a/include/acpi/actbl3.h > +++ b/include/acpi/actbl3.h > @@ -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 */ > @@ -483,6 +484,72 @@ struct acpi_table_uefi { > u16 data_offset; /* Offset of remaining data in table */ > }; > > +/******************************************************************************* > + * > + * VIOT - Virtual I/O Translation Table > + * Version 1For other tables I see Conforms to ../.. Shouldn't we have such section too> + * > + ******************************************************************************/ > + > +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, > + ACPI_VIOT_RESERVED = 0x05 > +}; > + > +/* VIOT subtables */ > + > +struct acpi_viot_pci_range { > + struct 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 { > + struct acpi_viot_header header; > + u32 endpoint; > + u64 base_address; > + u16 output_node; > + u8 reserved[6]; > +}; > + > +struct acpi_viot_virtio_iommu_pci { > + struct acpi_viot_header header; > + u16 segment; > + u16 bdf; > + u8 reserved[8]; > +}; > + > +struct acpi_viot_virtio_iommu_mmio { > + struct acpi_viot_header header; > + u8 reserved[4]; > + u64 base_address; > +}; > + > /******************************************************************************* > * > * WAET - Windows ACPI Emulated devices Table >Besides Reviewed-by: Eric Auger <eric.auger at redhat.com> Thanks Eric
Jean-Philippe Brucker
2021-Apr-15 14:36 UTC
[PATCH 1/3] ACPICA: iASL: Add definitions for the VIOT table
On Thu, Mar 18, 2021 at 06:52:44PM +0100, Auger Eric wrote:> Besides > Reviewed-by: Eric Auger <eric.auger at redhat.com>Thanks, though this patch comes from ACPICA and has now been merged with the other ACPICA updates: https://lore.kernel.org/linux-acpi/20210406213028.718796-1-erik.kaneda at intel.com/ Thanks, Jean