qemu/hw/arm
Eric Auger 1b6f99d84f hw/arm/virt: Let the virtio-iommu bypass MSIs
At the moment the virtio-iommu translates MSI transactions.
This behavior is inherited from ARM SMMU. The virt machine
code knows where the guest MSI doorbells are so we can easily
declare those regions as VIRTIO_IOMMU_RESV_MEM_T_MSI. With that
setting the guest will not map MSIs through the IOMMU and those
transactions will be simply bypassed.

Depending on which MSI controller is in use (ITS or GICV2M),
we declare either:
- the ITS interrupt translation space (ITS_base + 0x10000),
  containing the GITS_TRANSLATOR or
- The GICV2M single frame, containing the MSI_SETSP_NS register.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20200629070404.10969-6-eric.auger@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-07-03 16:59:42 +01:00
..
allwinner-a10.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
allwinner-h3.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
armsse.c hw/arm/armsse: Fix armsse_realize() error API violation 2020-07-02 11:54:47 +02:00
armv7m.c hw/arm: Drop useless object_property_set_link() error handling 2020-07-02 06:25:29 +02:00
aspeed_ast2600.c aspeed: Fix realize error API violation 2020-07-02 11:54:47 +02:00
aspeed_soc.c aspeed: Fix realize error API violation 2020-07-02 11:54:47 +02:00
aspeed.c hw/arm/aspeed: Describe each PCA9552 device 2020-06-26 14:30:28 +01:00
bcm2835_peripherals.c arm/{bcm2835,fsl-imx25,fsl-imx6}: Fix realize error API violations 2020-07-02 11:54:47 +02:00
bcm2836.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
boot.c Remove unnecessary cast when using the address_space API 2020-02-20 14:47:08 +01:00
collie.c hw/arm/collie: Put StrongARMState* into a CollieMachineState struct 2020-04-03 19:23:37 +01:00
cubieboard.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
digic_boards.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
digic.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
exynos4_boards.c sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 1 2020-06-15 22:06:04 +02:00
exynos4210.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
fsl-imx6.c arm/{bcm2835,fsl-imx25,fsl-imx6}: Fix realize error API violations 2020-07-02 11:54:47 +02:00
fsl-imx6ul.c Add the ability to select a different PHY for each i.MX6UL FEC interface 2020-07-03 16:59:41 +01:00
fsl-imx7.c * hw: arm: Set vendor property for IMX SDHCI emulations 2020-06-16 13:36:31 +01:00
fsl-imx25.c arm/{bcm2835,fsl-imx25,fsl-imx6}: Fix realize error API violations 2020-07-02 11:54:47 +02:00
fsl-imx31.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
gumstix.c hw/arm/gumstix: Simplify since the machines are little-endian only 2020-03-05 16:09:14 +00:00
highbank.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
imx25_pdk.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
integratorcp.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
Kconfig hw/arm/mps2: Add I2C devices 2020-06-23 11:39:47 +01:00
kzm.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
mainstone.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
Makefile.objs hw/arm: add Xunlong Orange Pi PC machine 2020-03-12 16:27:33 +00:00
mcimx6ul-evk.c Select MDIO device 2 and 1 as PHY devices for i.MX6UL EVK board. 2020-07-03 16:59:41 +01:00
mcimx7d-sabre.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
microbit.c microbit: Eliminate two local variables in microbit_init() 2020-06-15 22:06:04 +02:00
mps2-tz.c hw/arm/mps2-tz: Use the ARM SBCon two-wire serial bus interface 2020-06-23 11:39:47 +01:00
mps2.c hw/arm/mps2: Add audio I2S interface as unimplemented device 2020-06-23 11:39:47 +01:00
msf2-soc.c sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 2 2020-06-15 22:06:04 +02:00
msf2-som.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
musca.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
musicpal.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
netduino2.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
netduinoplus2.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
nrf51_soc.c hw/arm: Drop useless object_property_set_link() error handling 2020-07-02 06:25:29 +02:00
nseries.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
omap1.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
omap2.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
omap_sx1.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
orangepi.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
palm.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
pxa2xx_gpio.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
pxa2xx_pic.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
pxa2xx.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
raspi.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
realview.c hw/arm: Use TYPE_VERSATILE_I2C instead of hardcoded string 2020-06-23 11:39:47 +01:00
sabrelite.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
sbsa-ref.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
smmu-common.c hw/arm/smmu-common: Simplify smmu_find_smmu_pcibus() logic 2020-03-05 16:09:14 +00:00
smmu-internal.h hw/arm/smmu-common: VMSAv8-64 page table walk 2018-05-04 18:05:51 +01:00
smmuv3-internal.h hw/arm/smmuv3: Use correct bit positions in EVT_SET_ADDR2 macro 2019-12-20 14:03:00 +00:00
smmuv3.c hw: Remove unnecessary cast when calling dma_memory_read() 2020-02-20 14:47:08 +01:00
spitz.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
stellaris.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
stm32f205_soc.c arm/stm32f205 arm/stm32f405: Fix realize error API violation 2020-07-02 11:54:47 +02:00
stm32f405_soc.c arm/stm32f205 arm/stm32f405: Fix realize error API violation 2020-07-02 11:54:47 +02:00
strongarm.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c hw/arm/virt: vTPM support 2020-03-05 12:18:16 -05:00
tosa.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
versatilepb.c hw/arm: Use TYPE_VERSATILE_I2C instead of hardcoded string 2020-06-23 11:39:47 +01:00
vexpress.c Qdev patches for 2020-06-23 2020-06-25 09:34:52 +01:00
virt-acpi-build.c arm/acpi: Add the TPM2.0 device under the DSDT 2020-06-24 17:18:28 -04:00
virt.c hw/arm/virt: Let the virtio-iommu bypass MSIs 2020-07-03 16:59:42 +01:00
xilinx_zynq.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
xlnx-versal-virt.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
xlnx-versal.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
xlnx-zcu102.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
xlnx-zynqmp.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
z2.c hw/arm/z2: Simplify since the machines are little-endian only 2020-03-05 16:09:15 +00:00