FreeRTOS-Kernel/portable/GCC
Gaurav-Aggarwal-AWS ae46383c90
Fix vPortFreeSecureContext to read xSecureContext at correct offset (#1441)
When MPU is enabled, the first item in the TCB is not the top of the
stack but the stored context location. As a result, xSecureContext
is located at a negative offset from that position rather than at
offset 0. The current implementation unconditionally reads
xSecureContext at offset 0, which returns an incorrect value when MPU
is enabled.

This commit updates vPortFreeSecureContext to read xSecureContext at
the correcct offset based on the port configuration:
- CM33/CM35P/CM52/CM55/CM85/STAR_MC3: -20 (or -36 with PAC enabled)
- CM23: -20 (no PAC support)
- Without MPU: 0 (xSecureContext remains at the top of stack)

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
2026-07-01 10:58:41 -07:00
..
ARM7_AT91FR40008 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
ARM7_AT91SAM7S Fix spelling typos (#1168) 2024-11-01 10:09:49 -07:00
ARM7_LPC23xx Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
ARM7_LPC2000 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
ARM_AARCH64 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_AARCH64_SRE portable: aarch64_sre: Add support for vApplicationFPUSafeIRQHandler 2025-01-22 17:00:50 -08:00
ARM_CA9 Fix function parameter shadowing global variable. (#1221) 2025-01-13 14:48:10 -08:00
ARM_CA53_64_BIT fix typos in comments: interace -> interface, swtich -> switch (#1022) 2024-04-08 17:50:55 -07:00
ARM_CA53_64_BIT_SRE fix typos in comments: interace -> interface, swtich -> switch (#1022) 2024-04-08 17:50:55 -07:00
ARM_CM0 cortex-M ports: Clarify hardware-saved exception frame size variable (#1314) 2025-09-09 14:25:42 +08:00
ARM_CM3 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM3_MPU Disallow unprivileged critical sections with MPU wrappers v2 (#1427) 2026-06-15 15:30:25 -07:00
ARM_CM4_MPU Disallow unprivileged critical sections with MPU wrappers v2 (#1427) 2026-06-15 15:30:25 -07:00
ARM_CM4F Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM7 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CM23 Fix vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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 vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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 vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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 vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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 vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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 vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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_CR5 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
ARM_CR82 Arm-Cortex-R82: Add MPU support (#1347) 2026-02-11 10:18:55 +05:30
ARM_CRx_MPU remove stray semicolon from gcc-ARM_CRx_MPU port.c 2026-01-29 17:28:28 -08:00
ARM_CRx_No_GIC fix: make vPortYield weak in ARM_CRx_No_GIC port (#1414) 2026-05-25 18:28:54 -07:00
ARM_STAR_MC3 Fix vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -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
AVR32_UC3 Fix spelling typos (#1168) 2024-11-01 10:09:49 -07:00
AVR_AVRDx Remove AVR ports from main repo (#394) 2021-09-14 19:25:46 -07:00
AVR_Mega0 Remove AVR ports from main repo (#394) 2021-09-14 19:25:46 -07:00
ColdFire_V2 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
CORTUS_APS3 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
H8S2329 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
HCS12 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
IA32_flat Fix IA32 compilation with common IRQ entry disabled (#1137) 2024-09-09 12:54:38 +05:30
MCF5235 Replace two dashes and one whitespace with their corresponding ASCII characters. (#362) 2021-06-30 15:07:55 -07:00
MicroBlaze Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
MicroBlazeV8 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
MicroBlazeV9 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
MSP430F449 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
NiosII Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
PPC405_Xilinx Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
PPC440_Xilinx Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
RISC-V Cleanup: remove unnecessary const variable (#1399) 2026-04-15 16:45:01 +00:00
RL78 [Fixed the Issue] Fixed the Issue#1102 of RL78 of the Context switch issue. https://github.com/FreeRTOS/FreeRTOS-Kernel/issues/1102 (#1157) 2024-10-15 11:09:45 +05:30
RX100 Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
RX200 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
RX600v2 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
STR75x Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00
TriCore_1782 Use Regex for Copyright Year in Header Check (#1002) 2024-02-26 09:26:42 -08:00