diff options
| author | Frédéric Desbiens <[email protected]> | 2026-09-17 15:39:30 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-09-17 15:39:30 -0400 |
| commit | 70a530097722665b7f3704cf5099b99f255b2e5f (patch) | |
| tree | d02f79774913cb176facb8540aa4da1a3eae9cae /common_modules/module_lib | |
| parent | ad558a7b1faa7d32371901e7e2710d2e05f55f8e (diff) | |
Added a ThreadX module manager port for the Cortex-R52 (#639)
Added the first GNU ThreadX module port for an Arm R-profile core.
The port combines the PMSAv8-R MPU model from Cortex-M33 with the AArch32
privilege and processor-mode handling from Cortex-R4. It provides the complete
module path: headers, manager sources, scheduler integration, user-mode entry,
SVC dispatch, data- and prefetch-abort capture, fault notification, relocatable
module loading, and shared-memory regions.
Module isolation uses eight MPU regions (8–15) with a 64-byte granule. The
scheduler replaces those regions on each module switch and manages a separate
privileged loading window in region 16. Assembly-visible structure offsets and
region-layout assumptions are checked at build time.
Added independent module demonstrations for the S32Z280-594EVB and Armv8-R AEM
FVP. The automated FVP regressions cover:
- Loading the same position-independent module at different addresses
- User-mode data and instruction access violations
- Fault capture and notification for both abort types
- Shared-region access, alignment, exhaustion, empty-size, and overflow handling
- Required module-property combinations
- The GCC CLZ-based priority search
The port requires user mode and memory protection together, at least 17 EL1 MPU
regions, and currently validates A32 modules; Thumb module execution remains
unvalidated.
Validated with GNU Arm 14.3.1. The FVP suites pass 8/8 in the default
configuration and 11/11 with hard-float, FIQ, and interrupt nesting enabled.
The S32Z280 images build cleanly, and the module isolation and relocation paths
were exercised on S32Z280 silicon during development.
Matching user documentation is provided by rtos-docs-asciidoc PR #41.
Assisted-by: Claude Code (Opus 5) <[email protected]>
Diffstat (limited to 'common_modules/module_lib')
0 files changed, 0 insertions, 0 deletions
