xemu/hw/arm
Michael Davidsaver 542b3478a0 armv7m: Replace armv7m.hack with unassigned_access handler
For v7m we need to catch attempts to execute from special
addresses at 0xfffffff0 and above. Previously we did this
with the aid of a hacky special purpose lump of memory
in the address space and a check in translate.c for whether
we were translating code at those addresses.

We can implement this more cleanly using a CPU
unassigned access handler which throws the exception
if the unassigned access is for one of the special addresses.

Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 1484937883-1068-3-git-send-email-peter.maydell@linaro.org
[PMM:
 * drop the deletion of the "don't interrupt if PC is magic"
   code in arm_v7m_cpu_exec_interrupt() -- this is still
   required
 * don't generate an exception for unassigned accesses
   which aren't to the magic address -- although doing
   this is in theory correct in practice it will break
   currently working guests which rely on the RAZ/WI
   behaviour when they touch devices which we haven't
   modelled.
 * trigger EXCP_EXCEPTION_EXIT on is_exec, not !is_write
]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-01-27 15:20:21 +00:00
..
Makefile.objs palmetto-bmc: rename the Aspeed board file to aspeed.c 2016-09-22 18:13:05 +01:00
allwinner-a10.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
armv7m.c armv7m: Replace armv7m.hack with unassigned_access handler 2017-01-27 15:20:21 +00:00
aspeed.c aspeed: use first FMC flash as a boot ROM 2017-01-20 11:15:08 +00:00
aspeed_soc.c aspeed/smc: set the number of flash modules for the FMC controller 2016-12-27 14:59:29 +00:00
bcm2835_peripherals.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
bcm2836.c hw/arm/bcm2836: Wire up CPU timer interrupts correctly 2016-04-04 17:33:51 +01:00
boot.c arm: Create /chosen and /memory devicetree nodes if necessary 2016-11-28 11:32:34 +00:00
collie.c explicitly include qom/cpu.h 2016-05-19 16:42:27 +02:00
cubieboard.c arm: cubieboard: Add support for initrd 2016-10-28 15:51:27 +01:00
digic.c hw/char: QOM'ify digic-uart model 2016-06-06 16:59:31 +01:00
digic_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
exynos4_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
exynos4210.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
fsl-imx6.c char: remove init callback 2016-10-24 15:27:20 +02:00
fsl-imx25.c char: remove init callback 2016-10-24 15:27:20 +02:00
fsl-imx31.c char: remove init callback 2016-10-24 15:27:20 +02:00
gumstix.c machine: Use type_init() to register machine classes 2016-03-16 15:34:05 -03:00
highbank.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
imx25_pdk.c arm: Uniquely name imx25 I2C buses. 2017-01-20 11:15:06 +00:00
integratorcp.c hw/arm: Fix Integrator/CM initialization 2016-10-04 13:28:08 +01:00
kzm.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mainstone.c mainstone: Add mapping for dot, slash and backspace. 2016-10-04 13:28:08 +01:00
musicpal.c hw/arm: QOM'ify musicpal.c 2016-10-24 16:26:55 +01:00
netduino2.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
nseries.c bt-hci-csr: drop unused argument 2016-10-08 09:02:19 +03:00
omap1.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
omap2.c char: use qemu_chr_fe* functions with CharBackend argument 2016-10-24 15:27:21 +02:00
omap_sx1.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palm.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pxa2xx.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00
pxa2xx_gpio.c hw/arm: QOM'ify pxa2xx_gpio.c 2016-10-24 16:26:55 +01:00
pxa2xx_pic.c hw/arm: QOM'ify pxa2xx_pic.c 2016-05-12 13:42:08 +01:00
raspi.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
realview.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
sabrelite.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
spitz.c hw/arm/spitz: Fix reset handling 2016-10-28 15:51:27 +01:00
stellaris.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
stm32f205_soc.c STM32F205: Connect the SPI devices 2016-10-04 13:28:07 +01:00
strongarm.c hw/arm: QOM'ify strongarm.c 2016-10-24 16:26:56 +01:00
strongarm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sysbus-fdt.c sysbus: Remove ignored return value of FindSysbusDeviceFunc 2016-09-27 17:03:34 -03:00
tosa.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
versatilepb.c versatilepb: do not run if user asks for more than 256MB RAM 2016-10-28 15:51:27 +01:00
vexpress.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
virt-acpi-build.c virtio, vhost, pc: fixes, features 2017-01-20 14:05:44 +00:00
virt.c hw/arm/virt: Add board property to enable EL2 2017-01-20 11:15:11 +00:00
xilinx_zynq.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
xlnx-ep108.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
xlnx-zynqmp.c target-arm: Enable EL2 feature bit on A53 and A57 2017-01-20 11:15:10 +00:00
z2.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00