FreeRTOS-Kernel/portable/IAR
Ahmed Ismail 78e0cc778a
ARMv8.1-M: Add task dedicated PAC key support (#1195)
armv8.1-m: Add task dedicated PAC key

To harden the security, each task is assigned a dedicated PAC key, so that attackers needs to guess the all the tasks' PAC keys right to exploit the system using Return Oriented Programming.

The kernel is now updated to support the following:
* A PAC key set with a random number generated and is saved in the task's context when a task is created.
* As part of scheduling, the task's PAC key is stored/restored to/from the task's context when a task is unscheduled/scheduled from/to run.

stack-overflow-check: Introduce portGET_CURRENT_TOP_OF_STACK macro

When MPU wrapper v2 is used, the task's context is stored in TCB and `pxTopOfStack`` member of TCB points to the context location in TCB. We, therefore, need to read PSP to find the task's current top of stack.

Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com>
2025-01-14 10:50:52 +05:30
..
78K0R
ARM_CA5_No_GIC
ARM_CA9
ARM_CM0
ARM_CM3
ARM_CM4F
ARM_CM4F_MPU
ARM_CM7
ARM_CM23 ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM23_NTZ/non_secure ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM33 ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM33_NTZ/non_secure ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM35P ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM35P_NTZ/non_secure ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM55 ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM55_NTZ/non_secure ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM85 ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CM85_NTZ/non_secure ARMv8.1-M: Add task dedicated PAC key support (#1195) 2025-01-14 10:50:52 +05:30
ARM_CRx_No_GIC
ATMega323
AtmelSAM7S64
AtmelSAM9XE
AVR32_UC3
AVR_AVRDx
AVR_Mega0
LPC2000
MSP430
MSP430X
RISC-V Fix RISC-V configMTIMECMP_BASE_ADDRESS (64-bit) stored in 32-bit int (#1176) 2024-11-04 18:02:35 +05:30
RL78
RX100
RX600
RX700v3_DPFPU
RXv2
STR71x
STR75x
STR91x
V850ES