diff options
author | Eric Auger | 2020-07-03 17:59:41 +0200 |
---|---|---|
committer | Peter Maydell | 2020-07-03 17:59:41 +0200 |
commit | f78069253ccf25c64e19e9889b98e499336f6c6e (patch) | |
tree | 58303aadc1e9a6dc7054383ee1fd437fca082dc8 /include/qemu | |
parent | Select MDIO device 2 and 1 as PHY devices for i.MX6UL EVK board. (diff) | |
download | qemu-f78069253ccf25c64e19e9889b98e499336f6c6e.tar.gz qemu-f78069253ccf25c64e19e9889b98e499336f6c6e.tar.xz qemu-f78069253ccf25c64e19e9889b98e499336f6c6e.zip |
qdev: Introduce DEFINE_PROP_RESERVED_REGION
Introduce a new property defining a reserved region:
<low address>:<high address>:<type>.
This will be used to encode reserved IOVA regions.
For instance, in virtio-iommu use case, reserved IOVA regions
will be passed by the machine code to the virtio-iommu-pci
device (an array of those). The type of the reserved region
will match the virtio_iommu_probe_resv_mem subtype value:
- VIRTIO_IOMMU_RESV_MEM_T_RESERVED (0)
- VIRTIO_IOMMU_RESV_MEM_T_MSI (1)
on PC/Q35 machine, this will be used to inform the
virtio-iommu-pci device it should bypass the MSI region.
The reserved region will be: 0xfee00000:0xfeefffff:1.
On ARM, we can declare the ITS MSI doorbell as an MSI
region to prevent MSIs from being mapped on guest side.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200629070404.10969-2-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include/qemu')
-rw-r--r-- | include/qemu/typedefs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h index ce4a78b687..15f5047bf1 100644 --- a/include/qemu/typedefs.h +++ b/include/qemu/typedefs.h @@ -58,6 +58,7 @@ typedef struct ISABus ISABus; typedef struct ISADevice ISADevice; typedef struct IsaDma IsaDma; typedef struct MACAddr MACAddr; +typedef struct ReservedRegion ReservedRegion; typedef struct MachineClass MachineClass; typedef struct MachineState MachineState; typedef struct MemoryListener MemoryListener; |