qemu-e2k/hw/arm
Stefan Hajnoczi a1c5a06224 hw/arm: make bitbanded IO optional on ARMv7-M
Some ARM CPUs have bitbanded IO, a memory region that allows convenient
bit access via 32-bit memory loads/stores.  This eliminates the need for
read-modify-update instruction sequences.

This patch makes this optional feature an ARMv7MState qdev property,
allowing boards to choose whether they want bitbanding or not.

Status of boards:
 * iotkit (Cortex M33), no bitband
 * mps2 (Cortex M3), bitband
 * msf2 (Cortex M3), bitband
 * stellaris (Cortex M3), bitband
 * stm32f205 (Cortex M3), bitband

As a side-effect of this patch, Peter Maydell noted that the Ethernet
controller on mps2 board is now accessible.  Previously they were hidden
by the bitband region (which does not exist on the real board).

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20180814162739.11814-2-stefanha@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-08-16 14:05:28 +01:00
..
Makefile.objs i.MX6UL: Add Freescale i.MX6 UltraLite 14x14 EVK Board 2018-08-16 14:05:28 +01:00
allwinner-a10.c hw/arm/allwinner-a10: Fix introspection problem with 'allwinner-a10' 2018-07-17 13:12:49 +01:00
armv7m.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
aspeed.c aspeed: add the pc9552 chips to the witherspoon machine 2018-06-08 13:15:32 +01:00
aspeed_soc.c aspeed/timer: use the APB frequency from the SCU 2018-06-26 17:50:42 +01:00
bcm2835_peripherals.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
bcm2836.c hw/arm/bcm2836: Fix crash with device_add bcm2837 on unsupported machines 2018-07-17 13:12:49 +01:00
boot.c arm: Fix return code of arm_load_elf 2018-08-14 17:17:21 +01:00
collie.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
cubieboard.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
digic.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
digic_boards.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
exynos4_boards.c hw: add .min_cpus and .default_cpus fields to machine_class 2017-11-13 13:55:27 +00:00
exynos4210.c Remove unnecessary variables for function return value 2018-05-20 08:48:13 +03:00
fsl-imx6.c hw/arm/fsl-imx6: Fix introspection problems with the "fsl, imx6" device 2018-07-17 13:12:49 +01:00
fsl-imx6ul.c i.MX6UL: Add i.MX6UL SOC 2018-08-16 14:05:28 +01:00
fsl-imx7.c hw/arm/fsl-imx7: Fix introspection problems with the "fsl, imx7" device 2018-07-17 13:12:49 +01:00
fsl-imx25.c hw/arm/fsl-imx25: Fix introspection problem with the "fsl, imx25" device 2018-07-17 13:12:49 +01:00
fsl-imx31.c hw/arm/fsl-imx31: Fix introspection problem with the "fsl, imx31" device 2018-07-17 13:12:49 +01:00
gumstix.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
highbank.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
imx25_pdk.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
integratorcp.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
iotkit.c hw/arm/iotkit: Fix IRQ number for timer1 2018-07-30 14:51:40 +01:00
kzm.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
mainstone.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
mcimx6ul-evk.c i.MX6UL: Add Freescale i.MX6 UltraLite 14x14 EVK Board 2018-08-16 14:05:28 +01:00
mcimx7d-sabre.c i.mx7d: Remove unused header files 2018-06-29 15:11:16 +01:00
mps2-tz.c hw/arm/mps2-tz.c: Instantiate MPCs 2018-06-22 13:28:41 +01:00
mps2.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
msf2-soc.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
msf2-som.c hw: Directly use "qemu/units.h" instead of "qemu/cutils.h" 2018-07-02 15:41:12 +02:00
musicpal.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
netduino2.c arm: drop intermediate cpu_model -> cpu type parsing and use cpu type directly 2017-09-19 09:09:32 -03:00
nseries.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
omap1.c hw/arm/omap1: Use qemu_log_mask(GUEST_ERROR) instead of fprintf 2018-06-26 17:50:40 +01:00
omap2.c hw: Do not include "sysemu/blockdev.h" if it is not necessary 2018-06-01 14:15:10 +02:00
omap_sx1.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
palm.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
pxa2xx_gpio.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx_pic.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
raspi.c hw/arm/raspi: Don't bother setting default_cpu_type 2018-04-26 11:04:39 +01:00
realview.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
sabrelite.c hw/arm: Set ignore_memory_transaction_failures for most ARM boards 2017-09-07 13:54:54 +01:00
smmu-common.c hw/arm/smmu-common: Fix devfn computation in smmu_iommu_mr 2018-07-09 14:51:34 +01: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: Fix translate error handling 2018-06-26 17:50:42 +01:00
smmuv3.c arm/smmuv3: Fix missing VMSD terminator 2018-07-30 14:45:54 +01:00
spitz.c hw/arm/spitz: Move problematic nand_init() code to realize function 2018-07-23 15:21:26 +01:00
stellaris.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
stm32f205_soc.c hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
strongarm.c Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
strongarm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sysbus-fdt.c hw/arm/sysbus-fdt: Fix assertion in copy_properties_from_host() 2018-07-30 14:47:32 +01:00
tosa.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-03-12 16:12:46 +01:00
trace-events hw/arm/smmuv3: Add notifications on invalidation 2018-06-26 17:50:42 +01:00
versatilepb.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
vexpress.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
virt-acpi-build.c arm/virt: Add support for GICv2 virtualization extensions 2018-08-14 17:17:21 +01:00
virt.c arm/virt: Add support for GICv2 virtualization extensions 2018-08-14 17:17:21 +01:00
xilinx_zynq.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
xlnx-zcu102.c xlnx-zynqmp: Swap Cortex-R5 for Cortex-R5F 2018-06-22 13:28:38 +01:00
xlnx-zynqmp.c xlnx-zynqmp: Improve GIC wiring and MMIO mapping 2018-08-14 17:17:21 +01:00
z2.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00