nuttx/boards/arm
Ricardo Maurizio Paul 3ff85acb4b arch/arm/stm32h5: map OTP, RO and EDATA flash non-cacheable.
The OTP, read-only (UID, flash size, package) and high-cycle data (EDATA)
flash areas only accept 16/32-bit accesses and return a bus error
otherwise (RM0481 Table 77).  The manual requires the MPU to disable local
cacheability for them (RM0481 7.3.2); with the ICACHE enabled and no such
region, reading them raises a precise bus error.

Until now this was worked around piecemeal: the driver disabled the
ICACHE around stm32_get_uniqueid() and the OTP and EDATA word reads, and
nucleo-h563zi mapped the 4 KB OTP/RO area non-cacheable in its board
code.  Other reads, for example stm32_otp_read() or an application
reading the OTP on another board, still raised a precise bus error when
the ICACHE was enabled.

Map 0x08fff000-0x09017fff, which covers the three contiguous areas, as
Normal non-cacheable and execute-never with a single MPU region before
the ICACHE is enabled.  STM32_ICACHE now selects ARM_MPU so that
stm32_mpuinitialize() has reset and enabled the MPU by then.

Remove the nucleo-h563zi OTP region in the same commit: the Armv8-M MPU
faults on an address that matches more than one region, so keeping both
would make OTP and UID reads fault on that board.

Assisted-by: Claude:claude-sonnet-5-5
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Ricardo Maurizio Paul <ricardopaul@geotab.com>
2026-10-06 16:57:31 -03:00
..
a1x/pcduino-a10 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
am67/t3-gem-o1 drivers/vhost: Optimize vhost-net performance and robustness 2026-09-27 18:41:30 +08:00
am335x boards/arm: Add support for the original BeagleBone 2026-08-19 10:11:38 +08:00
at32/at32f437-mini net/netdev: Combine the per-command CAN ioctl options into NETDEV_CAN_IOCTL 2026-09-01 17:40:47 +08:00
c5471/c5471evm arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
common/stm32 arch/arm/stm32f7: use common Kconfig symbols 2026-08-18 09:34:58 +08:00
csk6 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
cxd56xx cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
dm320/ntosd-dm320 !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
efm32 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
eoss3/quickfeather arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
fvp-v8r-aarch32/fvp-armv8r-aarch32 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
gd32f4 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
ht32f491x3/esk32 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
imx6/sabre-6quad boards/qemu: enable line-buffered NTFC writes 2026-09-14 23:48:49 +08:00
imx9 net: move rx timestamp from d_rxtime to iob_s.io_time 2026-09-18 20:00:49 +08:00
imxrt arch/arm/imxrt: Add support for ARMV8M_DCACHE_LINESIZE in imxrt_usbdev.c 2026-10-01 23:31:49 +08:00
kinetis arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
kl arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
lc823450/lc823450-xgevk arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
lpc17xx_40xx !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
lpc31xx !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
lpc43xx arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
lpc54xx/lpcxpresso-lpc54628 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
lpc214x arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
lpc2378/olimex-lpc2378 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
max326xx/max32660-evsys arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
mcx-nxxx/frdm-mcxn236 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
moxart/moxa !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
mps libs/libc/elf, binfmt: Describe the GOT by base and size, not by index. 2026-09-08 16:31:16 -03:00
mx8mp/verdin-mx8mp arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
n32h7/n32h762iil7 arch/arm/n32h7: Add N32H762IIL7 BSP 2026-09-17 09:39:41 -03:00
nrf52 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
nrf53 boards/thingy53: fix possible out of bound write for rgb 2026-09-25 10:46:24 +02:00
nrf91 boards/thingy91: add rgb led support 2026-09-24 09:59:04 +02:00
nuc1xx/nutiny-nuc120 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
phy62xx/phy6222 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
qemu boards/arm/qemu-armv7a: switch all nsh defconfigs to nxinit entrypoint 2026-09-02 09:14:00 +08:00
ra4 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
ra8m1/ek-ra8m1 boards/arm/ra8m1/ek-ra8m1: Add SCI0 pins and a serial-test config 2026-10-06 16:56:58 -03:00
rp23xx cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
rp2040 boards/rp2040: switch waveshare nsh/usbnsh configs to nxinit entrypoint 2026-09-18 08:47:09 -03:00
rtl8720f/rtl8720f_evb arch/arm/rtl8720f: add timer driver support 2026-09-01 17:41:14 +08:00
rtl8721dx/pke8721daf arch/arm/rtl8721dx: add shared Ameba timer driver 2026-09-01 17:41:14 +08:00
rtl8721f/rtl8721f_evb arch/arm/rtl8721f: add timer driver support 2026-09-01 17:41:14 +08:00
rtl8730e/rtl8730e_evb arch/arm/rtl8730e: add UART character driver support 2026-09-24 21:24:35 +08:00
s32k1xx boards/arm/s32k1xx: CMake added NXP RDDRONE-BMS772 board 2026-10-05 18:42:56 +08:00
s32k3xx !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
sam34 !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
sama5 arch, boards, cmake: Build C++ ELF modules without __cxa_atexit. 2026-09-04 15:44:24 -03:00
samd2l2 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
samd5e5 boards: fix mtd_partition() argument units in flash partition loops 2026-09-01 09:14:34 +08:00
samv7 boards/arm/samv7/same70-qmtech: disable FAT LFN in mcuboot-loader 2026-09-11 10:55:25 -03:00
stm32c0 boards/stm32c0/nucleo-c071rb: Add usb-cdc config 2026-09-14 18:32:23 -03:00
stm32c5 boards/arm/stm32c5: Add nucleo-C562re support 2026-08-27 01:07:10 +08:00
stm32f0 boards/nucleo-f072rb: Add USB device support and a CDC/ACM configuration. 2026-08-20 15:16:33 -03:00
stm32f1 boards: fix mtd_partition() argument units in flash partition loops 2026-09-01 09:14:34 +08:00
stm32f2 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
stm32f3 boards/arm/stm32f3/nucleo-f302r8: fix qenco configuration 2026-08-07 11:17:24 +08:00
stm32f4 boards: fix mtd_partition() argument units in flash partition loops 2026-09-01 09:14:34 +08:00
stm32f7 arch/arm/stm32f7: use common Kconfig symbols 2026-08-18 09:34:58 +08:00
stm32g0 boards/nucleo-g0b1re: Add USB device configurations 2026-08-25 01:03:58 +08:00
stm32g4 boards: stm32g4: regenerate nucleo-g431kb comp defconfig 2026-09-19 22:41:17 +08:00
stm32h5 arch/arm/stm32h5: map OTP, RO and EDATA flash non-cacheable. 2026-10-06 16:57:31 -03:00
stm32h7 boards/arm: add stm32h7s8-dk support 2026-10-06 19:01:04 +08:00
stm32l0 boards/nucleo-l073rz: Add USB device support and a CDC/ACM configuration. 2026-08-22 01:23:12 +08:00
stm32l1 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
stm32l4 boards/arm/stm32l4/stm32l476vg-disco: Add CMakeLists.txt. 2026-09-28 06:43:27 -03:00
stm32l5 stm32l5: Fix nxstyle errors in drivers and board LEDs 2026-09-22 09:21:35 -03:00
stm32n6 boards/arm/stm32n6: add initial STM32N6570-DK support 2026-10-06 15:34:14 -03:00
stm32u0 boards/stm32u0: add stm32u083c-dk support 2026-08-18 15:00:15 +02:00
stm32u3 boards/arm/stm32u3: Add NUCLEO-U3C5ZI-Q support 2026-08-23 11:03:03 +08:00
stm32u5 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
stm32wb arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
stm32wl5 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
str71x/olimex-strp711 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
tiva arch/arm: Reach an NXFLAT module's read-only data through the GOT. 2026-09-27 11:25:12 -03:00
tlsr82/tlsr8278adk80d arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
tms570 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00
xmc4 arch/arm: Reserve r10 via ARCHCFLAGS and hoist the PIC module flags. 2026-07-24 23:09:08 +08:00