Skip to content

Conversation

AhmedIsmail02
Copy link
Member

Description

The goal of this PR is to add the GCC/ARMClang non-MPU port variant for ARM Cortex-R82 processor ( ARMv8-R AArch64 based ).

This port has the following features:

  • Uses single security state (non TrustZone).
  • Supports SMP (Symmetric multi-processing).
  • Doesn't support Hypervisor (EL2).
  • Doesn't support neither PMSA (MPU) nor VMSA (MMU).

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.

Copy link

sonarqubecloud bot commented Jul 9, 2025

@jasonpcarroll
Copy link
Member

Hi @AhmedIsmail02,

Apologies for the late response. I will reach out to someone with a bit more familiarity with this architecture (and has a board to test) to take a look.

Best,

Jason Carroll

@AhmedIsmail02
Copy link
Member Author

Hi @jasonpcarroll,

Thanks for getting back to me.

Sure, you can refer them to use the example available here which runs on Arm's FVP.

uint64_t ullPortInterruptNestings[ configNUMBER_OF_CORES ] = { 0 };

/* Flag to control tick ISR handling, this is made true just before schedular start. */
__attribute__( ( section( ".shared_ram" ) ) )
Copy link
Member

Choose a reason for hiding this comment

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

Why does it need to be placed in shared_ram section?

Copy link
Member Author

Choose a reason for hiding this comment

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

That's not needed anymore as the port assumes that the hardware or target model is fully cache coherent. Hence, it's now removed.

@AhmedIsmail02 AhmedIsmail02 force-pushed the add-cortex-r82-non-mpu-gcc-armclang-port branch 2 times, most recently from afae6d9 to 1655021 Compare September 24, 2025 08:46
Copy link

codecov bot commented Sep 24, 2025

Codecov Report

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

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1289   +/-   ##
=======================================
  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.

The goal of this commit is to add the GCC/ARMClang non-MPU
port variant for ARM Cortex-R82 processor which is
ARMv8-R AArch64 based.
The work done is inspired by the GCC ARM_AARCH64 FreeRTOS port.

This port has the following features:
* Uses single security state (non TrustZone).
* Supports SMP (Symmetric multi-processing).
* Doesn't support Hypervisor (EL2).
* Doesn't support neither PMSA (MPU) nor VMSA (MMU).

Signed-off-by: Ahmed Ismail <Ahmed.Ismail@arm.com>
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
@AhmedIsmail02 AhmedIsmail02 force-pushed the add-cortex-r82-non-mpu-gcc-armclang-port branch from 1655021 to 2a0b5ec Compare September 29, 2025 12:53
Copy link

@aggarg aggarg merged commit a8ae21c into FreeRTOS:main Sep 29, 2025
16 of 17 checks passed
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.

4 participants