Skip to content

Add Multicore SMP on Armv8-M ports#1385

Open
AhmedIsmail02 wants to merge 2 commits intoFreeRTOS:mainfrom
AhmedIsmail02:add-multicore-smp-on-armv8-m-ports
Open

Add Multicore SMP on Armv8-M ports#1385
AhmedIsmail02 wants to merge 2 commits intoFreeRTOS:mainfrom
AhmedIsmail02:add-multicore-smp-on-armv8-m-ports

Conversation

@AhmedIsmail02
Copy link
Copy Markdown
Member

@AhmedIsmail02 AhmedIsmail02 commented Mar 26, 2026

Description

  • Enable SMP for Arm8-M NTZ ports for GCC, ArmClang, and IAR toolchains.
  • Add per-core scheduler/port state: critical nesting.
  • Introduce spin-locks and inter-core yield/wakeup (SEV/WFE) plus primary/secondary core bring-up sync.
  • Update PendSV (i.e., context switch assembly) for core-safe preemption and restore paths.
  • Extend port macros/hooks for SMP in portmacrocommon.h single-core builds remain unchanged.
  • Add the SMP boot sequence along with the necessary steps to enable SMP on Armv8-M based ports. This should help developers understand the requirements and process for enabling SMP on their Armv8-M based applications.
  • Update the kernel checker script to accept comma separated years in the copyright header.

This PR blocks the FreeRTOS-Partner-Supported-Demos PR!38.

Test Steps

Checklist:

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

Related Issue

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

* Enable SMP for Arm Cortex-M33 NTZ port for
GCC, ArmClang, and IAR toolchains.
* Add per-core scheduler/port state: critical nesting.
* Introduce spinlocks and inter-core yield/wakeup (SEV/WFE) plus
primary/secondary core bring-up sync.
* Update PendSV (i.e., context switch assembly) for core-safe
preemption and restore paths.
* Extend port macros/hooks for SMP in portmacrocommon.h,
single-core builds remain unchanged.
* Add the SMP boot sequence along with the necessary steps to enable
SMP on Armv8-M based ports. This should help developers understand
the requirements and process for enabling SMP on their
Armv8-M based applications.
* Update the kernel checker script to accept comma separated years
in the copyright header.

Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com>
This commit executes the `copy_files.py` python script
to copy the changes applied in the previous commit
(i.e., SMP changes) to all the Armv8-M based ports.

Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.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