Skip to content

Conversation

@cpussw01
Copy link
Contributor

@cpussw01 cpussw01 commented Nov 13, 2025

Fixes #1305

  • Add ARM_CM52 and ARM_CM52_NTZ port implementations for GCC and IAR compilers

Description

Changes:
CMakeLists.txt
portable/ARMv8M/ReadMe.txt
portable/ARMv8M/copy_files.py
portable/ARMv8M/non_secure/ReadMe.txt
portable/ARMv8M/secure/ReadMe.txt
portable/CMakeLists.txt

Add ports for Cortex-M52 ,there are copied form correspond CM55 dir, only portmacro.h CPU_NAME changed
portable/ARMv8M/non_secure/portable/GCC/ARM_CM52/
portable/ARMv8M/non_secure/portable/IAR/ARM_CM52/
portable/GCC/ARM_CM52/
portable/GCC/ARM_CM52_NTZ/
portable/IAR/ARM_CM52/
portable/IAR/ARM_CM52_NTZ/

Test Steps

Reference FreeRTOS/Demo/ThirdParty/Partner-Supported-Demos/CORTEX_M85_MPU_PXN_FVP_GCC/ Cortex-M85 demo
Create an Cortex-M52 demo , compile + build and test on Cortex-M52 device

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
#1305

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

cpussw01 and others added 2 commits November 13, 2025 17:29
Fixes FreeRTOS#1305
- Add ARM_CM52 and ARM_CM52_NTZ port implementations for GCC and IAR compilers
Copy link
Member

@AhmedIsmail02 AhmedIsmail02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please mention the compatibility of Arm Cortex-M52 with M-profile Vector Extension (MVE) in the following two files?

Also I think it's worth adding Arm Cortex-M52 to the list of platforms that can call security services in TF-M through PSA APIs in here.

Thank you.

@AhmedIsmail02
Copy link
Member

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?

Thank you

@cpussw01
Copy link
Contributor Author

cpussw01 commented Nov 18, 2025

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?

Thank you

To make the work more clear.
Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

@AhmedIsmail02
Copy link
Member

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

@JidongMei
Copy link

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

Thank you . Here I want explain and clarify something:
First. Above mentioned Cortex-M52 demo is target for our inner Cortex-M52 FPGA development board (not been publicly released). This demo is roughly modified based on CORTEX_M85_MPU_PXN_FVP_GCC demo, just for the purpose of quick verification for code changes. Tested that Cmake build works and FreeRTOS kernel works on Cortex-M52 processor. It's a draft demo for verification purpose, not for public release.
Second. To develop an public FreeRTOS Coretx-M52 demo. we plan to make it target for FVP_MPS2_Cortex-M52, it's an official FVP form ARM. This work is what we plan to do , but not ready now.

Totally, I plan to develop a Coretx-M52 demo target for FVP_MPS2_Cortex-M52, and submit to FreeRTOS-Partner-Supported-Demos repo. But it take some times.
Another question, will this demo work block current PR (Add ARM Cortex-M52 port support FreeRTOS)?

AhmedIsmail02
AhmedIsmail02 previously approved these changes Nov 20, 2025
@AhmedIsmail02
Copy link
Member

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

Thank you . Here I want explain and clarify something: First. Above mentioned Cortex-M52 demo is target for our inner Cortex-M52 FPGA development board (not been publicly released). This demo is roughly modified based on CORTEX_M85_MPU_PXN_FVP_GCC demo, just for the purpose of quick verification for code changes. Tested that Cmake build works and FreeRTOS kernel works on Cortex-M52 processor. It's a draft demo for verification purpose, not for public release. Second. To develop an public FreeRTOS Coretx-M52 demo. we plan to make it target for FVP_MPS2_Cortex-M52, it's an official FVP form ARM. This work is what we plan to do , but not ready now.

Totally, I plan to develop a Coretx-M52 demo target for FVP_MPS2_Cortex-M52, and submit to FreeRTOS-Partner-Supported-Demos repo. But it take some times. Another question, will this demo work block current PR (Add ARM Cortex-M52 port support FreeRTOS)?

No, the demo is not a blocker for this PR but it'd be great to add the demo whenever you can so that users and developers who are interested in using Arm Cortex-M52 with FreeRTOS-Kernel can have a reference example.

Thanks

@cpussw01
Copy link
Contributor Author

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

Since an example was created during the port validation, could you please open a PR for the Cortex-M52 demo?
Thank you

To make the work more clear. Do you mean create another PR for FreeRTOS-Partner-Supported-Demos repo (Not FreeRTOS-Kernel) , to submit Cortex-M52 demo?

Yes, that's exactly what I meant.

Thank you . Here I want explain and clarify something: First. Above mentioned Cortex-M52 demo is target for our inner Cortex-M52 FPGA development board (not been publicly released). This demo is roughly modified based on CORTEX_M85_MPU_PXN_FVP_GCC demo, just for the purpose of quick verification for code changes. Tested that Cmake build works and FreeRTOS kernel works on Cortex-M52 processor. It's a draft demo for verification purpose, not for public release. Second. To develop an public FreeRTOS Coretx-M52 demo. we plan to make it target for FVP_MPS2_Cortex-M52, it's an official FVP form ARM. This work is what we plan to do , but not ready now.
Totally, I plan to develop a Coretx-M52 demo target for FVP_MPS2_Cortex-M52, and submit to FreeRTOS-Partner-Supported-Demos repo. But it take some times. Another question, will this demo work block current PR (Add ARM Cortex-M52 port support FreeRTOS)?

No, the demo is not a blocker for this PR but it'd be great to add the demo whenever you can so that users and developers who are interested in using Arm Cortex-M52 with FreeRTOS-Kernel can have a reference example.

Thanks

Get it. I will do this work later.

@cpussw01
Copy link
Contributor Author

I find it that .github/scripts/kernel_checker.py execute failed. So , Do i need to modified this file to pass the Kernel-Checker item?

@jasonpcarroll
Copy link
Member

Hi @cpussw01,

Thank you for your contribution!

Per https://www.freertos.org/Documentation/02-Kernel/03-Supported-devices/03-Official-vs-3rd-party, this PR should be opened to https://github.com/FreeRTOS/FreeRTOS-Kernel-Community-Supported-Ports (seeing as their is no demo and we have not been able to test this on our side).

Once a demo project is created, we can consider doing a full review and adding it along officially supported ports.

Best,

Jason Carroll

@cpussw01
Copy link
Contributor Author

Hi @cpussw01,

Thank you for your contribution!

Per https://www.freertos.org/Documentation/02-Kernel/03-Supported-devices/03-Official-vs-3rd-party, this PR should be opened to https://github.com/FreeRTOS/FreeRTOS-Kernel-Community-Supported-Ports (seeing as their is no demo and we have not been able to test this on our side).

Once a demo project is created, we can consider doing a full review and adding it along officially supported ports.

Best,

Jason Carroll

Hi Jason
I get what you mean ,and I'm planning to add Cortex-M52 demo to https://github.com/FreeRTOS/FreeRTOS-Partner-Supported-Demos .
I plan to refer related Cortex-M55 demo , but I can't find it Cortex-M55 demo in this repo.
Do FreeRTOS related repo has Coretx-M55 demo, so that Cortex-M52 demo can refer it and be more easy.
Thank you.

aggarg
aggarg previously approved these changes Nov 24, 2025
@aggarg
Copy link
Member

aggarg commented Nov 24, 2025

I find it that .github/scripts/kernel_checker.py execute failed. So , Do i need to modified this file to pass the Kernel-Checker item?

Assuming that this change is from ARM, is it possible to use the same license header as in port.c:

 * Copyright 2024-2025 Arm Limited and/or its affiliates
 * <open-source-office@arm.com>

@jasonpcarroll
Copy link
Member

jasonpcarroll commented Nov 24, 2025

Hi @cpussw01,
Thank you for your contribution!
Per https://www.freertos.org/Documentation/02-Kernel/03-Supported-devices/03-Official-vs-3rd-party, this PR should be opened to https://github.com/FreeRTOS/FreeRTOS-Kernel-Community-Supported-Ports (seeing as their is no demo and we have not been able to test this on our side).
Once a demo project is created, we can consider doing a full review and adding it along officially supported ports.
Best,
Jason Carroll

Hi Jason I get what you mean ,and I'm planning to add Cortex-M52 demo to https://github.com/FreeRTOS/FreeRTOS-Partner-Supported-Demos . I plan to refer related Cortex-M55 demo , but I can't find it Cortex-M55 demo in this repo. Do FreeRTOS related repo has Coretx-M55 demo, so that Cortex-M52 demo can refer it and be more easy. Thank you.

I discussed this with @aggarg, and since this is pretty much a replica of the M55 port, we agreed to proceed with merging here. Just fix the headers as @aggarg outlined and we can merge. Thanks for your contribution!

@cpussw01
Copy link
Contributor Author

I find it that .github/scripts/kernel_checker.py execute failed. So , Do i need to modified this file to pass the Kernel-Checker item?

Assuming that this change is from ARM, is it possible to use the same license header as in port.c:

 * Copyright 2024-2025 Arm Limited and/or its affiliates
 * <open-source-office@arm.com>

Hi aggarg

I want to explain that this code change is from ARM China
It's an independently operated joint venture

@cpussw01
Copy link
Contributor Author

Hello, any things updated ? Or anything I can do for this PR request?

@aggarg
Copy link
Member

aggarg commented Dec 17, 2025

@cpussw01 Nothing is needed from your end. I'll get back to you on this.

Signed-off-by: Gaurav Aggarwal <[email protected]>
@aggarg aggarg dismissed stale reviews from AhmedIsmail02 and themself via 1171353 December 19, 2025 05:59
aggarg
aggarg previously approved these changes Dec 19, 2025
Signed-off-by: Gaurav Aggarwal <[email protected]>
@codecov
Copy link

codecov bot commented Dec 19, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.46%. Comparing base (386c1bc) to head (3436cee).
⚠️ Report is 13 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1334   +/-   ##
=======================================
  Coverage   91.46%   91.46%           
=======================================
  Files           6        6           
  Lines        3256     3256           
  Branches      899      899           
=======================================
  Hits         2978     2978           
  Misses        132      132           
  Partials      146      146           
Flag Coverage Δ
unittests 91.46% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Signed-off-by: Gaurav Aggarwal <[email protected]>
AhmedIsmail02
AhmedIsmail02 previously approved these changes Dec 19, 2025
@sonarqubecloud
Copy link

@aggarg aggarg merged commit 7d6890e into FreeRTOS:main Dec 19, 2025
19 checks passed
@aggarg
Copy link
Member

aggarg commented Dec 19, 2025

Thank you @cpussw01 for your contribution!

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.

[Feature Request] <Support for Cortex-M52>

5 participants