Message ID | 20210316191652.3401335-1-jean-philippe@linaro.org |
---|---|
Headers | show |
Series | Add support for ACPI VIOT | expand |
Hi Jean, On 3/16/21 8:16 PM, Jean-Philippe Brucker wrote: > 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@redhat.com/ > [3] https://jpbrucker.net/virtio-iommu/viot/viot-v9.pdf > [4] https://lore.kernel.org/linux-iommu/20191122105000.800410-1-jean-philippe@linaro.org/ > [5] https://lore.kernel.org/linux-iommu/20200228172537.377327-1-jean-philippe@linaro.org/ > [6] https://lore.kernel.org/linux-iommu/20200821131540.2801801-1-jean-philippe@linaro.org/ Do you have a qemu branch to share for us to start exercising different kinds of topology? Thanks Eric > > 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 >
Hi Eric, On Fri, Mar 19, 2021 at 11:58:49AM +0100, Auger Eric wrote: > Hi Jean, > > On 3/16/21 8:16 PM, Jean-Philippe Brucker wrote: > > 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@redhat.com/ > > [3] https://jpbrucker.net/virtio-iommu/viot/viot-v9.pdf > > [4] https://lore.kernel.org/linux-iommu/20191122105000.800410-1-jean-philippe@linaro.org/ > > [5] https://lore.kernel.org/linux-iommu/20200228172537.377327-1-jean-philippe@linaro.org/ > > [6] https://lore.kernel.org/linux-iommu/20200821131540.2801801-1-jean-philippe@linaro.org/ > > Do you have a qemu branch to share for us to start exercising different > kinds of topology? Yes: https://jpbrucker.net/git/qemu/log/?h=virtio-iommu/acpi Thanks for the reviews, I'll rework this in a week or so Jean