qemu-e2k/hw
Peter Maydell a724377a11 hw/intc/armv7m_nvic: Make all of system PPB range be RAZWI/BusFault
For M-profile CPUs, the range from 0xe0000000 to 0xe00fffff is the
Private Peripheral Bus range, which includes all of the memory mapped
devices and registers that are part of the CPU itself, including the
NVIC, systick timer, and debug and trace components like the Data
Watchpoint and Trace unit (DWT).  Within this large region, the range
0xe000e000 to 0xe000efff is the System Control Space (NVIC, system
registers, systick) and 0xe002e000 to 0exe002efff is its Non-secure
alias.

The architecture is clear that within the SCS unimplemented registers
should be RES0 for privileged accesses and generate BusFault for
unprivileged accesses, and we currently implement this.

It is less clear about how to handle accesses to unimplemented
regions of the wider PPB.  Unprivileged accesses should definitely
cause BusFaults (R_DQQS), but the behaviour of privileged accesses is
not given as a general rule.  However, the register definitions of
individual registers for components like the DWT all state that they
are RES0 if the relevant component is not implemented, so the
simplest way to provide that is to provide RAZ/WI for the whole range
for privileged accesses.  (The v7M Arm ARM does say that reserved
registers should be UNK/SBZP.)

Expand the container MemoryRegion that the NVIC exposes so that
it covers the whole PPB space. This means:
 * moving the address that the ARMV7M device maps it to down by
   0xe000 bytes
 * moving the off and the offsets within the container of all the
   subregions forward by 0xe000 bytes
 * adding a new default MemoryRegion that covers the whole container
   at a lower priority than anything else and which provides the
   RAZWI/BusFault behaviour

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20201119215617.29887-2-peter.maydell@linaro.org
2020-12-10 11:44:55 +00:00
..
9pfs hw/9pfs: Fix Kconfig dependency problem between 9pfs and Xen 2020-11-05 15:21:11 +01:00
acpi x86: acpi: let the firmware handle pending "CPU remove" events in SMM 2020-12-09 13:04:17 -05:00
adc
alpha
arm hw/intc/armv7m_nvic: Make all of system PPB range be RAZWI/BusFault 2020-12-10 11:44:55 +00:00
audio nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
avr
block nand: put it into the 'storage' category 2020-11-17 10:17:02 +01:00
char nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
core hw: add compat machines for 6.0 2020-12-08 13:48:58 -05:00
cpu
cris
display hw/display/tcx: add missing 64-bit access for framebuffer blitter 2020-11-22 10:43:30 +00:00
dma
gpio nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
hppa
hyperv
i2c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
i386 x86: ich9: let firmware negotiate 'CPU hot-unplug with SMI' feature 2020-12-09 13:04:17 -05:00
ide ide: atapi: assert that the buffer pointer is in range 2020-12-01 15:23:05 +00:00
input hw/input/ps2.c: Remove remnants of printf debug 2020-11-17 12:56:32 +00:00
intc hw/intc/armv7m_nvic: Make all of system PPB range be RAZWI/BusFault 2020-12-10 11:44:55 +00:00
ipack
ipmi
isa x86: ich9: let firmware negotiate 'CPU hot-unplug with SMI' feature 2020-12-09 13:04:17 -05:00
lm32 nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
m68k hw/m68k/mcf5206: Don't leak IRQs in mcf5206_mbar_realize() 2020-12-09 08:04:34 +01:00
mem nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
microblaze
mips hw/mips/boston: Fix memory leak in boston_fdt_filter() error-handling paths 2020-11-09 00:40:44 +01:00
misc i.MX6ul: Fix bad printf format specifiers 2020-12-10 11:44:55 +00:00
moxie
net hw/net/can: Introduce Xilinx ZynqMP CAN controller 2020-12-10 11:30:44 +00:00
nios2
nubus
nvram fw_cfg: Refactor extra pci roots addition 2020-12-08 13:48:57 -05:00
openrisc
pci
pci-bridge nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
pci-host acpi/gpex: Build tables for pxb 2020-12-08 13:48:57 -05:00
pcmcia
ppc hw: add compat machines for 6.0 2020-12-08 13:48:58 -05:00
rdma
riscv
rtc
rx hw/rx/rx-gdbsim: Fix memory leak (CID 1432307) 2020-11-09 00:53:07 +01:00
s390x hw: add compat machines for 6.0 2020-12-08 13:48:58 -05:00
scsi scsi-disk: convert more errno values back to SCSI statuses 2020-11-16 13:22:17 -05:00
sd hw/sd: Fix 2 GiB card CSD register values 2020-11-17 11:45:13 +01:00
semihosting
sh4
smbios
sparc
sparc64
ssi ssi: Fix bad printf format specifiers 2020-11-10 11:03:47 +00:00
timer exynos: Fix bad printf format specifiers 2020-11-17 12:56:32 +00:00
tpm tpm: Fix Lesser GPL version number 2020-11-15 16:44:18 +01:00
tricore tricore tcg cpus: Fix Lesser GPL version number 2020-11-15 16:40:30 +01:00
unicore32
usb usb: fix kconfig for usb-xhci-sysbus 2020-11-20 10:43:41 -05:00
vfio vfio: Change default dirty pages tracking behavior during migration 2020-11-23 10:05:58 -07:00
virtio hw/virtio-pci Added AER capability. 2020-12-09 13:04:17 -05:00
watchdog
xen nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
xenpv
xtensa
Kconfig hw/net/can: Introduce Xilinx ZynqMP CAN controller 2020-12-10 11:30:44 +00:00
meson.build