qemu/hw/arm
Simon Veith 3d44c60500 hw/arm/smmuv3: Apply address mask to linear strtab base address
In the SMMU_STRTAB_BASE register, the stream table base address only
occupies bits [51:6]. Other bits, such as RA (bit [62]), must be masked
out to obtain the base address.

The branch for 2-level stream tables correctly applies this mask by way
of SMMU_BASE_ADDR_MASK, but the one for linear stream tables does not.

Apply the missing mask in that case as well so that the correct stream
base address is used by guests which configure a linear stream table.

Linux guests are unaffected by this change because they choose a 2-level
stream table layout for the QEMU SMMUv3, based on the size of its stream
ID space.

ref. ARM IHI 0070C, section 6.3.23.

Signed-off-by: Simon Veith <sveith@amazon.de>
Acked-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1576509312-13083-2-git-send-email-sveith@amazon.de
Cc: Eric Auger <eric.auger@redhat.com>
Cc: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org
Acked-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-12-20 14:03:00 +00:00
..
allwinner-a10.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
armsse.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
armv7m.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
aspeed.c aspeed: Add support for the tacoma-bmc board 2019-12-16 10:46:34 +00:00
aspeed_ast2600.c ast2600: Configure CNTFRQ at 1125MHz 2019-12-20 14:03:00 +00:00
aspeed_soc.c aspeed: Change the "scu" property definition 2019-12-16 10:46:34 +00:00
bcm2835_peripherals.c hw/arm/bcm2835_peripherals: Use the SYS_timer 2019-10-25 13:09:27 +01:00
bcm2836.c hw/arm/bcm2836: Rename cpus[] as cpu[].core 2019-10-25 13:09:27 +01:00
boot.c hw/arm/boot: Set NSACR.{CP11, CP10} in dummy SMC setup routine 2019-11-11 13:44:16 +00:00
collie.c hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
cubieboard.c Machine + x86 queue, 2019-09-03 2019-09-04 14:44:54 +01:00
digic.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
digic_boards.c hw/arm/digic4: Inline digic4_board_setup_ram() function 2019-10-22 17:44:01 +01:00
exynos4_boards.c Machine + x86 queue, 2019-09-03 2019-09-04 14:44:54 +01:00
exynos4210.c hw/arm/exynos4210: Use the Samsung s3c SDHCI controller 2019-10-22 17:44:00 +01:00
fsl-imx6.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
fsl-imx6ul.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
fsl-imx7.c hw/arm: Replace global smp variables with machine smp properties 2019-07-05 17:08:03 -03:00
fsl-imx25.c hw/arm/fsl-imx: Add the cpu as child of the SoC object 2019-09-03 16:20:34 +01:00
fsl-imx31.c hw/arm/fsl-imx: Add the cpu as child of the SoC object 2019-09-03 16:20:34 +01:00
gumstix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
highbank.c hw/arm/highbank: Use AddressSpace when using write_secondary_boot() 2019-10-25 13:09:27 +01:00
imx25_pdk.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
integratorcp.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
Kconfig hw/arm/virt: Enable device memory cold/hot plug with ACPI boot 2019-10-05 17:12:08 -04:00
kzm.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
mainstone.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
Makefile.objs aspeed/soc: Add AST2600 support 2019-10-15 18:09:05 +01:00
mcimx6ul-evk.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
mcimx7d-sabre.c Machine + x86 queue, 2019-09-03 2019-09-04 14:44:54 +01:00
microbit.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mps2-tz.c hw/arm/mps2: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
mps2.c hw/arm/mps2: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
msf2-soc.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
msf2-som.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
musca.c hw: Move PL031 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:10:27 +02:00
musicpal.c hw/arm/musicpal.c: Switch to transaction-based ptimer API 2019-10-15 18:09:02 +01:00
netduino2.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
nrf51_soc.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
nseries.c hw/arm/nseries: Replace the bluetooth chardev with a "null" chardev 2019-12-16 17:24:07 +01:00
omap1.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
omap2.c hw/arm/omap2: Create the RAM in the board 2019-10-22 17:44:01 +01:00
omap_sx1.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
palm.c hw/arm/omap1: Create the RAM in the board 2019-10-22 17:44:01 +01:00
pxa2xx.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pxa2xx_gpio.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pxa2xx_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
raspi.c hw/arm/raspi: Use AddressSpace when using arm_boot::write_secondary_boot 2019-10-25 13:09:27 +01:00
realview.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
sabrelite.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
sbsa-ref.c hw/arm/sbsa-ref: Simplify by moving the gic in the machine state 2019-12-16 10:46:35 +00:00
smmu-common.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02: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: Remove spurious error messages on IOVA invalidations 2019-09-03 16:20:34 +01:00
smmuv3.c hw/arm/smmuv3: Apply address mask to linear strtab base address 2019-12-20 14:03:00 +00:00
spitz.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
stellaris.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
stm32f205_soc.c Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
strongarm.c hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tosa.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
versatilepb.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
vexpress.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
virt-acpi-build.c hw/arm/acpi: enable SHPC native hot plug 2019-12-16 10:46:35 +00:00
virt.c target-arm queue: 2019-12-16 13:04:34 +00:00
xilinx_zynq.c hw/arm/xilinx_zynq: Use the IEC binary prefix definitions 2019-10-22 17:44:00 +01:00
xlnx-versal-virt.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
xlnx-versal.c hw/arm: versal: Add the CRP as unimplemented 2019-11-26 13:55:36 +00:00
xlnx-zcu102.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00
xlnx-zynqmp.c hw/arm: Use ARM_CPU_TYPE_NAME() macro when appropriate 2019-09-03 16:20:34 +01:00
z2.c hw/arm: simplify arm_load_dtb 2019-09-03 11:26:55 -03:00