FreeRTOS-Kernel/portable/ARMv8M
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
..
non_secure Fix vPortFreeSecureContext to read xSecureContext at correct offset (#1441) 2026-07-01 10:58:41 -07:00
secure Add stack size validation in SecureContext_AllocateContext (#1402) 2026-04-16 14:18:23 -07:00
copy_files.py Add Arm China STAR-MC3 port support (#1363) 2026-02-20 10:33:34 -08:00
ReadMe.txt Add Arm China STAR-MC3 port support (#1363) 2026-02-20 10:33:34 -08:00

This directory tree contains the master copy of the FreeRTOS Armv8-M and
Armv8.1-M ports.
Do not use the files located here!  These file are copied into separate
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NNN directories
prior to each FreeRTOS release.

If your Armv8-M and Armv8.1-M application uses TrustZone then use the files from the
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3] directories.

If your Armv8-M and Armv8.1-M application does not use TrustZone then use the files from
the FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NTZ directories.