diff options
author | Jean-Philippe Brucker <jean-philippe@linaro.org> | 2021-10-26 19:20:20 +0100 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2021-11-01 18:49:10 -0400 |
commit | 1f85d74ac542d57559babbe0525633837e9fd52f (patch) | |
tree | f88acfa66703dd64c243f5a5db8cc9cb64dc7710 /hw/acpi/viot.h | |
parent | e1c1915befbd2a991b20812eef6ad650b5637a36 (diff) | |
download | qemu-1f85d74ac542d57559babbe0525633837e9fd52f.zip qemu-1f85d74ac542d57559babbe0525633837e9fd52f.tar.gz qemu-1f85d74ac542d57559babbe0525633837e9fd52f.tar.bz2 |
hw/acpi: Add VIOT table
Add a function that generates a Virtual I/O Translation table (VIOT),
describing the topology of paravirtual IOMMUs. The table is created if a
virtio-iommu device is present. It contains a virtio-iommu node and PCI
Range nodes for endpoints managed by the IOMMU. By default, a single
node describes all PCI devices. When passing the
"default_bus_bypass_iommu" machine option and "bypass_iommu" PXB option,
only buses that do not bypass the IOMMU are described by PCI Range
nodes.
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Message-Id: <20211026182024.2642038-2-jean-philippe@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/acpi/viot.h')
-rw-r--r-- | hw/acpi/viot.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/hw/acpi/viot.h b/hw/acpi/viot.h new file mode 100644 index 0000000..9fe565b --- /dev/null +++ b/hw/acpi/viot.h @@ -0,0 +1,13 @@ +/* + * ACPI Virtual I/O Translation Table implementation + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef VIOT_H +#define VIOT_H + +void build_viot(MachineState *ms, GArray *table_data, BIOSLinker *linker, + uint16_t virtio_iommu_bdf, const char *oem_id, + const char *oem_table_id); + +#endif /* VIOT_H */ |