Skip to content

Fix vPortFreeSecureContext to read xSecureContext at correct offset#1441

Draft
aggarg wants to merge 1 commit into
FreeRTOS:mainfrom
aggarg:fix_vPortFreeSecureContext
Draft

Fix vPortFreeSecureContext to read xSecureContext at correct offset#1441
aggarg wants to merge 1 commit into
FreeRTOS:mainfrom
aggarg:fix_vPortFreeSecureContext

Conversation

@aggarg

@aggarg aggarg commented Jun 30, 2026

Copy link
Copy Markdown
Member

Description

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 correct 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)

Test Steps

Tested using CORTEX_MPU_M33F_Nordic_NRF9160_SES demo.

Checklist:

  • I have tested my changes. No regression in existing tests.
  • [NA] I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue

NA

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

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>
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant