qemu/include/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
..
allwinner-a10.h hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
arm.h hw/arm/armv7m: Remove unused armv7m_init() function 2018-06-15 15:23:34 +01:00
armv7m.h hw/arm: make bitbanded IO optional on ARMv7-M 2018-08-16 14:05:28 +01:00
aspeed_soc.h hw/arm/aspeed: simplify using the 'unimplemented device' for aspeed_soc.io 2018-02-15 18:29:36 +00:00
bcm2835_peripherals.h hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
bcm2836.h hw/arm/bcm2836: Create proper bcm2837 device 2018-03-19 18:23:24 +00:00
digic.h qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
exynos4210.h hw/arm/exynos: Move DRAM initialization next boards 2017-06-13 14:56:57 +01:00
fdt.h hw/arm/sysbus-fdt: enable vfio-calxeda-xgmac dynamic instantiation 2015-06-19 14:17:44 +01:00
fsl-imx6.h fsl-imx6: Swap Ethernet interrupt defines 2018-03-19 18:23:24 +00:00
fsl-imx6ul.h i.MX6UL: Add i.MX6UL SOC 2018-08-16 14:05:28 +01:00
fsl-imx7.h i.MX: Add i.MX7 SOC implementation. 2018-03-09 17:09:43 +00:00
fsl-imx25.h imx_fec: Reserve full FSL_IMX25_FEC_SIZE page for the register file 2018-01-11 13:25:38 +00:00
fsl-imx31.h i.MX: Split the CCM class into an abstract base class and a concrete class 2015-12-17 13:37:15 +00:00
iotkit.h hw/arm/iotkit: Wire up MPC interrupt lines 2018-06-22 13:28:40 +01:00
linux-boot-if.h hw/arm: new interface for devices which need to behave differently for kernel boot 2015-09-08 17:38:43 +01:00
msf2-soc.h msf2: Add Smartfusion2 SoC 2017-09-21 16:36:56 +01:00
omap.h hw/arm/omap: Use qemu_log_mask(GUEST_ERROR) instead of fprintf 2018-06-26 17:50:40 +01:00
primecell.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
pxa.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
raspi_platform.h bcm2835_peripherals: add rollup device for bcm2835 peripherals 2016-02-03 15:00:45 +00:00
sharpsl.h Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
smmu-common.h hw/arm/smmu-common: Fix devfn computation in smmu_iommu_mr 2018-07-09 14:51:34 +01:00
smmuv3.h hw/arm/smmuv3: Cache/invalidate config data 2018-06-26 17:50:42 +01:00
soc_dma.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
stm32f205_soc.h arm: drop intermediate cpu_model -> cpu type parsing and use cpu type directly 2017-09-19 09:09:32 -03:00
sysbus-fdt.h arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
virt.h arm/virt: Add support for GICv2 virtualization extensions 2018-08-14 17:17:21 +01:00
xlnx-zynqmp.h xlnx-zynqmp: Improve GIC wiring and MMIO mapping 2018-08-14 17:17:21 +01:00