Add a driver for the ACPI VIOT table, which enables virtio-iommu on non-devicetree platforms, including x86. This series depends on the ACPICA changes of patch 1, which will be included in next release [1] and pulled into Linux. The Virtual I/O Translation table (VIOT) describes the topology of para-virtual I/O translation devices and the endpoints they manage. It was recently approved for inclusion into the ACPI standard [2]. A provisional version of the specification can be found at [3]. After discussing non-devicetree support for virtio-iommu at length [4][5][6] we concluded that it should use this new ACPI table. And for platforms that don't implement either devicetree or ACPI, a structure that uses roughly the same format [6] can be built into the device. [1] https://github.com/acpica/acpica/pull/666 [2] https://lore.kernel.org/linux-iommu/20210218233943.GH702808@xxxxxxxxxx/ [3] https://jpbrucker.net/virtio-iommu/viot/viot-v9.pdf [4] https://lore.kernel.org/linux-iommu/20191122105000.800410-1-jean-philippe@xxxxxxxxxx/ [5] https://lore.kernel.org/linux-iommu/20200228172537.377327-1-jean-philippe@xxxxxxxxxx/ [6] https://lore.kernel.org/linux-iommu/20200821131540.2801801-1-jean-philippe@xxxxxxxxxx/ Jean-Philippe Brucker (3): ACPICA: iASL: Add definitions for the VIOT table ACPI: Add driver for the VIOT table iommu/virtio: Enable x86 support drivers/acpi/Kconfig | 3 + drivers/iommu/Kconfig | 4 +- drivers/acpi/Makefile | 2 + include/acpi/actbl3.h | 67 ++++++ include/linux/acpi_viot.h | 26 +++ drivers/acpi/bus.c | 2 + drivers/acpi/scan.c | 6 + drivers/acpi/viot.c | 406 +++++++++++++++++++++++++++++++++++ drivers/iommu/virtio-iommu.c | 3 + MAINTAINERS | 8 + 10 files changed, 526 insertions(+), 1 deletion(-) create mode 100644 include/linux/acpi_viot.h create mode 100644 drivers/acpi/viot.c -- 2.30.2