qemu/include/hw/arm
Peter Maydell 9e60d759d3 hw/intc/armv7m_nvic: Provide default "reset the system" behaviour for SYSRESETREQ
The NVIC provides an outbound qemu_irq "SYSRESETREQ" which it signals
when the guest sets the SYSRESETREQ bit in the AIRCR register.  This
matches the hardware design (where the CPU has a signal of this name
and it is up to the SoC to connect that up to an actual reset
mechanism), but in QEMU it mostly results in duplicated code in SoC
objects and bugs where SoC model implementors forget to wire up the
SYSRESETREQ line.

Provide a default behaviour for the case where SYSRESETREQ is not
actually connected to anything: use qemu_system_reset_request() to
perform a system reset.  This will allow us to remove the
implementations of SYSRESETREQ handling from the boards where that's
exactly what it does, and also fixes the bugs in the board models
which forgot to wire up the signal:

 * microbit
 * mps2-an385
 * mps2-an505
 * mps2-an511
 * mps2-an521
 * musca-a
 * musca-b1
 * netduino
 * netduinoplus2

We still allow the board to wire up the signal if it needs to, in case
we need to model more complicated reset controller logic or to model
buggy SoC hardware which forgot to wire up the line itself. But
defaulting to "reset the system" is more often going to be correct
than defaulting to "do nothing".

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20200728103744.6909-3-peter.maydell@linaro.org
2020-08-03 17:55:03 +01:00
..
allwinner-a10.h hw/arm/allwinner: add RTC device support 2020-03-12 16:27:33 +00:00
allwinner-h3.h hw/arm/allwinner: add RTC device support 2020-03-12 16:27:33 +00:00
armsse.h hw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards 2019-06-17 15:12:25 +01:00
armv7m.h hw/intc/armv7m_nvic: Provide default "reset the system" behaviour for SYSRESETREQ 2020-08-03 17:55:03 +01:00
aspeed_soc.h arm/aspeed: Compute the number of CPUs from the SoC definition 2020-06-15 21:36:09 +02:00
aspeed.h hw/arm/aspeed: QOM'ify AspeedMachineState 2020-06-26 14:30:28 +01:00
bcm2835_peripherals.h wire in the dwc-hsotg (dwc2) USB host controller emulation 2020-06-05 17:23:09 +01:00
bcm2836.h hw/arm/bcm2836: Remove unused 'cpu_type' field 2020-07-13 14:36:07 +01:00
boot.h hw/arm/boot: Set NSACR.{CP11, CP10} in dummy SMC setup routine 2019-11-11 13:44:16 +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/exynos4210: Fix DMA initialization 2020-01-23 16:34:15 +00:00
fdt.h hw/arm/sysbus-fdt: enable vfio-calxeda-xgmac dynamic instantiation 2015-06-19 14:17:44 +01:00
fsl-imx6.h 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.h Add the ability to select a different PHY for each i.MX6UL FEC interface 2020-07-03 16:59:41 +01:00
fsl-imx7.h 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.h 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.h hw/arm/fsl-imx31: Wire up watchdog 2020-05-21 22:05:27 +01:00
linux-boot-if.h qom: make interface types abstract 2018-12-11 15:45:22 -02:00
msf2-soc.h msf2: Add EMAC block to SmartFusion2 SoC 2020-04-30 11:52:28 +01:00
nrf51_soc.h Clean up decorations and whitespace around header guards 2019-05-13 08:58:55 +02:00
nrf51.h hw/arm/nrf51: Add NRF51_PERIPHERAL_SIZE definition 2020-05-11 11:05:11 +01:00
omap.h omap-gpio: remove PROP_PTR 2020-01-07 17:24:29 +04:00
primecell.h
pxa.h hw/arm/pxa2xx_pic: Use LOG_GUEST_ERROR for bad guest register accesses 2020-07-03 16:59:45 +01:00
raspi_platform.h hw/arm/bcm2835_peripherals: Use the thermal sensor block 2019-10-25 13:09:27 +01:00
sharpsl.h hw/gpio/zaurus.c: Use LOG_GUEST_ERROR for bad guest register accesses 2020-07-03 16:59:45 +01:00
smmu-common.h misc: Replace zero-length arrays with flexible array member (automatic) 2020-03-16 22:07:42 +01:00
smmuv3.h hw/arm/smmuv3: Cache/invalidate config data 2018-06-26 17:50:42 +01:00
soc_dma.h Include exec/memory.h slightly less 2019-08-16 13:31:52 +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
stm32f405_soc.h hw/arm: Add the STM32F4xx SoC 2020-01-17 14:09:29 +00:00
sysbus-fdt.h arm/boot: split load_dtb() from arm_load_kernel() 2018-05-10 18:10:56 +01:00
virt.h hw/arm/virt: Enable MTE via a machine property 2020-07-20 11:35:15 +01:00
xlnx-versal.h hw/arm: versal: Add support for the RTC 2020-05-04 11:11:28 +01:00
xlnx-zynqmp.h hw: Move Xilinx ZynqMP RTC from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:28:01 +02:00