qemu/include/hw
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
..
acpi
adc
arm hw/intc/armv7m_nvic: Provide default "reset the system" behaviour for SYSRESETREQ 2020-08-03 17:55:03 +01:00
audio qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
block
char hw/char: Convert the Ibex UART to use the registerfields API 2020-07-13 17:25:37 -07:00
core cputlb: ensure we save the IOTLB data in case of reset 2020-07-15 11:52:43 +01:00
cpu
cris
display
dma
firmware
gpio
hyperv hyperv: vmbus: Remove the 2nd IRQ 2020-06-26 09:39:40 -04:00
i2c hw/i2c: Document the I2C qdev helpers 2020-07-16 12:30:54 -05:00
i386 * Make checkpatch say 'qemu' instead of 'kernel' (Aleksandar) 2020-07-11 16:52:24 +01:00
ide
input adb: add autopoll_blocked variable to block autopoll 2020-06-26 10:13:51 +01:00
intc
ipack
ipmi
isa
kvm
lm32
m68k
mem
mips
misc hw/misc: avr: Add limited support for power reduction device 2020-07-11 11:02:05 +02:00
net Add a phy-num property to the i.MX FEC emulator 2020-07-03 16:59:41 +01:00
nubus
nvram hw/nvram/fw_cfg: Let fw_cfg_add_from_generator() return boolean value 2020-07-21 16:47:54 +02:00
pci hw/pci-host: save/restore pci host config register 2020-07-27 10:24:39 -04:00
pci-bridge
pci-host spapr: Add a new level of NUMA for GPUs 2020-07-20 09:21:39 +10:00
ppc spapr: Add a new level of NUMA for GPUs 2020-07-20 09:21:39 +10:00
rdma
riscv riscv: Add opensbi firmware dynamic support 2020-07-13 17:25:37 -07:00
rtc goldfish_rtc: Fix non-atomic read behaviour of TIME_LOW/TIME_HIGH 2020-07-22 09:39:46 -07:00
rx
s390x
scsi
sd
semihosting
sh4
southbridge
sparc
ssi Replace uses of FROM_SSI_SLAVE() macro with QOM casts 2020-07-03 16:59:46 +01:00
timer hw/timer: avr: Add limited support for 16-bit timer peripheral 2020-07-11 11:02:05 +02:00
tricore
unicore32
usb
vfio vfio: Convert to ram_block_discard_disable() 2020-07-02 05:54:59 -04:00
virtio virtio-pci: fix virtio_pci_queue_enabled() 2020-07-27 11:34:50 -04:00
watchdog
xen
xtensa
boards.h numa: Auto-enable NUMA when any memory devices are possible 2020-07-03 07:57:04 -04:00
clock.h
elf_ops.h
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h include/hw/irq.h: New function qemu_irq_is_connected() 2020-08-03 17:55:03 +01:00
loader-fit.h
loader.h
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-clock.h
qdev-core.h qdev: Document GPIO related functions 2020-07-20 11:35:17 +01:00
qdev-dma.h
qdev-properties.h qdev: Move doc comments from qdev.c to qdev-core.h 2020-07-20 11:35:17 +01:00
register.h
registerfields.h
resettable.h
stream.h
sysbus.h
usb.h
vmstate-if.h