qemu-patch-raspberry4/hw/arm
Eric Auger 9e54dee71f hw/arm/smmu-common: Manage IOTLB block entries
At the moment each entry in the IOTLB corresponds to a page sized
mapping (4K, 16K or 64K), even if the page belongs to a mapped
block. In case of block mapping this unefficiently consumes IOTLB
entries.

Change the value of the entry so that it reflects the actual
mapping it belongs to (block or page start address and size).

Also the level/tg of the entry is encoded in the key. In subsequent
patches we will enable range invalidation. This latter is able
to provide the level/tg of the entry.

Encoding the level/tg directly in the key will allow to invalidate
using g_hash_table_remove() when num_pages equals to 1.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20200728150815.11446-6-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-08-24 10:02:06 +01:00
..
allwinner-a10.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
allwinner-h3.c hw: Mark nd_table[] misuse in realize methods FIXME 2020-07-21 08:41:15 +02:00
armsse.c hw/arm/armsse: Assert info->num_cpus is in-bounds in armsse_realize() 2020-07-20 11:35:17 +01:00
armv7m.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
aspeed.c Minor changes to: 2020-07-20 11:03:09 +01:00
aspeed_ast2600.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
aspeed_soc.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
bcm2835_peripherals.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
bcm2836.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
boot.c hw/arm/boot: Fix MTE for EL3 direct kernel boot 2020-07-27 16:12:10 +01:00
collie.c hw/arm/collie: Put StrongARMState* into a CollieMachineState struct 2020-04-03 19:23:37 +01:00
cubieboard.c qom: Use returned bool to check for failure, Coccinelle part 2020-07-10 15:18:08 +02:00
digic.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
digic_boards.c qdev: Use returned bool to check for qdev_realize() etc. failure 2020-07-10 15:01:06 +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 qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
fsl-imx6.c Add the ability to change the FEC PHY MDIO device number on i.MX6 processor 2020-07-13 14:36:08 +01:00
fsl-imx6ul.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
fsl-imx7.c Add the ability to change the FEC PHY MDIO devices numbers on i.MX7 processor 2020-07-13 14:36:08 +01:00
fsl-imx25.c Add the ability to change the FEC PHY MDIO device number on i.MX25 processor 2020-07-13 14:36:07 +01:00
fsl-imx31.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +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 qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +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 hw/sd/pl181: Do not create SD card within the SD host controller 2020-08-21 16:22:43 +02:00
Kconfig hw: Only compile the usb-dwc2 controller if it is really needed 2020-07-24 16:15:28 +02: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
mcimx6ul-evk.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mcimx7d-sabre.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
meson.build meson: convert hw/arch* 2020-08-21 06:30:33 -04:00
microbit.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mps2-tz.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mps2.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
msf2-soc.c msf2-soc, stellaris: Don't wire up SYSRESETREQ 2020-08-03 17:55:03 +01:00
msf2-som.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
musca.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
musicpal.c hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() 2020-07-16 12:30:54 -05:00
netduino2.c hw/arm/netduino2, netduinoplus2: Set system_clock_scale 2020-08-03 17:55:03 +01:00
netduinoplus2.c hw/arm/netduino2, netduinoplus2: Set system_clock_scale 2020-08-03 17:55:03 +01:00
nrf51_soc.c hw/arm/nrf51_soc: Set system_clock_scale 2020-08-03 17:55:31 +01:00
nseries.c hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() 2020-07-16 12:30:54 -05: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 qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
palm.c hw/arm/palm.c: Encapsulate misc GPIO handling in a device 2020-07-13 14:36:12 +01:00
pxa2xx.c hw/sd/pxa2xx_mmci: Do not create SD card within the SD host controller 2020-08-21 16:22:43 +02:00
pxa2xx_gpio.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
pxa2xx_pic.c hw/arm/pxa2xx_pic: Use LOG_GUEST_ERROR for bad guest register accesses 2020-07-03 16:59:45 +01:00
raspi.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
realview.c hw/sd/pl181: Do not create SD card within the SD host controller 2020-08-21 16:22:43 +02:00
sabrelite.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
sbsa-ref.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
smmu-common.c hw/arm/smmu-common: Manage IOTLB block entries 2020-08-24 10:02:06 +01:00
smmu-internal.h hw/arm/smmu-common: Manage IOTLB block entries 2020-08-24 10:02:06 +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/arm/smmu-common: Manage IOTLB block entries 2020-08-24 10:02:06 +01:00
spitz.c hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() 2020-07-16 12:30:54 -05:00
stellaris.c msf2-soc, stellaris: Don't wire up SYSRESETREQ 2020-08-03 17:55:03 +01:00
stm32f205_soc.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
stm32f405_soc.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +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 Minor changes to: 2020-07-20 11:03:09 +01:00
trace-events hw/arm/smmu-common: Manage IOTLB block entries 2020-08-24 10:02:06 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
versatilepb.c hw/sd/pl181: Do not create SD card within the SD host controller 2020-08-21 16:22:43 +02:00
vexpress.c hw/sd/pl181: Do not create SD card within the SD host controller 2020-08-21 16:22:43 +02:00
virt-acpi-build.c hw/arm/virt-acpi-build: Only expose flash on older machine types 2020-07-03 16:59:43 +01:00
virt.c hw: add compat machines for 5.2 2020-08-19 10:45:48 -04:00
xilinx_zynq.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
xlnx-versal-virt.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
xlnx-versal.c hw: Mark nd_table[] misuse in realize methods FIXME 2020-07-21 08:41:15 +02:00
xlnx-zcu102.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
xlnx-zynqmp.c QOM patches for 2020-07-21 2020-07-21 18:31:52 +01:00
z2.c hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() 2020-07-16 12:30:54 -05:00