qemu/include/hw
Peter Maydell cb0929bb13 hw/arm/armv7m: Add mpu-ns-regions and mpu-s-regions properties
M-profile CPUs generally allow configuration of the number of MPU
regions that they have.  We don't currently model this, so our
implementations of some of the board models provide CPUs with the
wrong number of regions.  RTOSes like Zephyr that hardcode the
expected number of regions may therefore not run on the model if they
are set up to run on real hardware.

Add properties mpu-ns-regions and mpu-s-regions to the ARMV7M object,
matching the ability of hardware to configure the number of Secure
and NonSecure regions separately.  Our actual CPU implementation
doesn't currently support that, and it happens that none of the MPS
boards we model set the number of regions differently for Secure vs
NonSecure, so we provide an interface to the boards and SoCs that
won't need to change if we ever do add that functionality in future,
but make it an error to configure the two properties to different
values.

(The property name on the CPU is the somewhat misnamed-for-M-profile
"pmsav7-dregion", so we don't follow that naming convention for
the properties here. The TRM doesn't say what the CPU configuration
variable names are, so we pick something, and follow the lowercase
convention we already have for properties here.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20230724174335.2150499-3-peter.maydell@linaro.org
2023-08-31 11:07:02 +01:00
..
acpi tpm: Extend common APIs to support TPM TIS I2C 2023-04-20 08:17:15 -04:00
adc
arm hw/arm/armv7m: Add mpu-ns-regions and mpu-s-regions properties 2023-08-31 11:07:02 +01:00
audio
block hw/block: replace TABs with space 2023-03-24 11:45:46 +01:00
char escc: emulate dip switch language layout settings on SUN keyboard 2023-06-28 10:54:25 +01:00
core plugins: force slow path when plugins instrument memory ops 2023-07-03 12:51:58 +01:00
cpu
cris
cxl hw/cxl/events: Add injection of Memory Module Events 2023-06-23 02:54:40 -04:00
display
dma
firmware
gpio hw/gpio/nrf51: implement DETECT signal 2023-08-22 17:30:59 +01:00
hyperv
i2c qtest: Add functions for accessing devices on Aspeed I2C controller 2023-04-20 08:17:15 -04:00
i386 hw: Add compat machines for 8.2 2023-08-23 12:06:39 +02:00
ide hw/ide: Extract bmdma_status_writeb() 2023-07-11 00:11:25 +02:00
input
intc arm: spelling fixes 2023-07-25 17:13:53 +03:00
ipack
ipmi
isa hw/isa/vt82c686: Remove via_isa_set_irq() 2023-07-11 00:11:25 +02:00
kvm
loongarch hw/loongarch/virt: Set max 256 cpus support on loongarch virt machine 2023-05-15 19:09:33 +08:00
m68k q800: move macfb device to Q800MachineState 2023-06-22 09:30:11 +02:00
mem
mips
misc Add i.MX7 SRC device implementation 2023-08-31 09:45:17 +01:00
net hw/net/dp8393x.c: move TYPE_DP8393X and dp8393xState into dp8393x.h 2023-06-22 09:25:40 +02:00
nubus
nvram Revert "x86: return modified setup_data only if read as memory, not as file" 2023-03-02 03:10:46 -05:00
openrisc
pci pcie: Specify 0 for ARI next function numbers 2023-07-10 18:59:32 -04:00
pci-bridge
pci-host hw/pci-host/i440fx: Resolve i440fx_init() 2023-07-10 16:29:17 -04:00
ppc ppc/pnv: Add QME region for P10 2023-07-07 06:32:53 -03:00
rdma
remote
riscv hw/riscv: sifive_e: Support the watchdog timer of HiFive 1 rev b. 2023-07-10 22:29:15 +10:00
rtc hw/rtc/aspeed_rtc: Use 64-bit offset for holding time_t difference 2023-08-31 09:45:18 +01:00
rx
s390x s390x: spelling fixes 2023-07-25 17:13:45 +03:00
scsi scsi: fetch unit attention when creating the request 2023-07-14 11:10:58 +02:00
sd hw: sd: allwinner-sdhost: Add sun50i-a64 SoC support 2023-06-06 10:19:33 +01:00
sensor
sh4
southbridge hw/isa/piix3: Resolve redundant TYPE_PIIX3_XEN_DEVICE 2023-06-07 15:07:10 +01:00
sparc
ssi
timer
tricore
usb
vfio vfio/migration: Return bool type for vfio_migration_realize() 2023-07-10 09:52:52 +02:00
virtio include/hw/virtio/virtio-gpu: Fix virtio-gpu with blob on big endian hosts 2023-08-23 12:06:44 +02:00
watchdog hw/watchdog: Allwinner WDT emulation for system reset 2023-04-20 10:21:13 +01:00
xen xen: Don't pass MemoryListener around by value 2023-08-01 10:22:33 +01:00
xtensa
boards.h hw: Add compat machines for 8.2 2023-08-23 12:06:39 +02:00
clock.h
elf_ops.h replace TABs with spaces 2023-03-20 12:43:50 +01:00
fw-path-provider.h
hotplug.h pci: fix 'hotplugglable' property behavior 2023-03-07 12:38:59 -05:00
hw.h
ide.h hw/ide: Declare ide_get_[geometry/bios_chs_trans] in 'hw/ide/internal.h' 2023-02-27 22:29:02 +01:00
irq.h
loader-fit.h
loader.h hw: arm: Support direct boot for Linux/arm64 EFI zboot images 2023-03-06 14:08:12 +00:00
nmi.h
or-irq.h
pcmcia.h replace TABs with spaces 2023-03-20 12:43:50 +01:00
platform-bus.h
ptimer.h
qdev-clock.h
qdev-core.h include/hw: document the device_class_set_parent_* fns 2023-07-10 18:59:32 -04:00
qdev-dma.h
qdev-properties-system.h
qdev-properties.h
register.h
registerfields.h
resettable.h
stream.h
sysbus.h
usb.h
vmstate-if.h