FreeRTOS-Kernel/portable/IAR
Archit Gupta 83e56c38ee
Disallow unprivileged critical sections with MPU wrappers v2 (#1427)
When using MPU wrappers version 2 (configUSE_MPU_WRAPPERS_V1 == 0),
portRAISE_PRIVILEGE() is a no-op because the portSVC_RAISE_PRIVILEGE
handler is compiled only for MPU wrappers version 1. As a result, an
unprivileged task that calls taskENTER_CRITICAL() does not actually raise
its privilege, so the subsequent BASEPRI write is ignored by the hardware
and the critical section silently fails to mask interrupts. This produces
latent, hard-to-debug faults.

configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS is therefore not supported with
MPU wrappers version 2. In the ARMv7-M MPU ports:

- When the option is left undefined under v2, default it to 0 instead of 1
  so the dangerous default configuration is safe.
- When the option is explicitly set to 1 under v2, raise a compile-time
  #error so the unsupported configuration is rejected loudly rather than
  failing silently at run time.

Behaviour for MPU wrappers version 1 is unchanged.
2026-06-15 15:30:25 -07:00
..
78K0R Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
ARM_CA5_No_GIC Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
ARM_CA9 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM0 Update broken links in readme and comments (#1110) 2024-08-05 16:00:47 +05:30
ARM_CM3 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM4F Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM4F_MPU Disallow unprivileged critical sections with MPU wrappers v2 (#1427) 2026-06-15 15:30:25 -07:00
ARM_CM7 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM23 Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM23_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM33 Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM33_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM35P Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM35P_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM52 Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM52_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM55 Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM55_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM85 Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CM85_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_CRx_No_GIC fix typos in comments: interace -> interface, swtich -> switch (#1022) 2024-04-08 17:50:55 -07:00
ARM_STAR_MC3 Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ARM_STAR_MC3_NTZ/non_secure Fix MPU wrapper macro mapping for ARMv8M ports (#1419) 2026-05-29 20:08:02 -07:00
ATMega323 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
AtmelSAM7S64 Fix spelling typos (#1168) 2024-11-01 10:09:49 -07:00
AtmelSAM9XE Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
AVR32_UC3 Fix spelling typos (#1168) 2024-11-01 10:09:49 -07:00
AVR_AVRDx Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
AVR_Mega0 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
LPC2000 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
MSP430 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
MSP430X Remove hardware dependence in portmacros.h (#1112) 2024-08-19 11:31:30 +05:30
RISC-V Cleanup: remove unnecessary const variable (#1399) 2026-04-15 16:45:01 +00:00
RL78 fix[RL78 Port] incorrect register image for pvParameters in FAR model (#1316) (#1317) 2025-10-06 18:37:11 +05:30
RX100 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
RX600 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
RX700v3_DPFPU Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
RXv2 Add CFI frame unwind info in portable/IAR/RXv2/port_asm.s (#1341) 2026-01-12 17:53:32 +05:30
STR71x Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
STR75x Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
STR91x Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
V850ES Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00