From 8b408120e45f05df9d73eb30dc9fd914e84dbabf Mon Sep 17 00:00:00 2001 From: Jonathan Pallant Date: Mon, 3 Aug 2026 09:43:06 +0100 Subject: [PATCH] Prepare aarch32-rt 0.5 with SMP support --- aarch32-rt-macros/CHANGELOG.md | 7 ++++++- aarch32-rt-macros/Cargo.toml | 2 +- aarch32-rt/CHANGELOG.md | 22 +++++++++++++++++++++- aarch32-rt/Cargo.toml | 4 ++-- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/aarch32-rt-macros/CHANGELOG.md b/aarch32-rt-macros/CHANGELOG.md index 36c477f..47fa9d4 100644 --- a/aarch32-rt-macros/CHANGELOG.md +++ b/aarch32-rt-macros/CHANGELOG.md @@ -10,6 +10,10 @@ As of *aarch32-rt-macros v0.1.0*, this project is released in lock-step with ## [Unreleased] +## [aarch32-rt-macros v0.5.0] + +- No changes + ## [aarch32-rt-macros v0.4.0] - Increased MSRV to 1.93 @@ -37,7 +41,8 @@ As of *aarch32-rt-macros v0.1.0*, this project is released in lock-step with Initial release -[Unreleased]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.4.0...HEAD +[Unreleased]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.5.0...HEAD +[aarch32-rt-macros v0.5.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.4.0...aarch32-rt-v0.5.0 [aarch32-rt-macros v0.4.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.3.0...aarch32-rt-v0.4.0 [aarch32-rt-macros v0.3.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.2.0...aarch32-rt-v0.3.0 [aarch32-rt-macros v0.2.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.1.0...aarch32-rt-v0.2.0 diff --git a/aarch32-rt-macros/Cargo.toml b/aarch32-rt-macros/Cargo.toml index 00c6fed..d40af3d 100644 --- a/aarch32-rt-macros/Cargo.toml +++ b/aarch32-rt-macros/Cargo.toml @@ -12,7 +12,7 @@ readme = "README.md" repository = "https://github.com/rust-embedded/aarch32.git" homepage = "https://github.com/rust-embedded/aarch32" rust-version = "1.93" -version = "0.4.0" +version = "0.5.0" [lib] proc-macro = true diff --git a/aarch32-rt/CHANGELOG.md b/aarch32-rt/CHANGELOG.md index 3ae31b2..1131d1f 100644 --- a/aarch32-rt/CHANGELOG.md +++ b/aarch32-rt/CHANGELOG.md @@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [aarch32-rt v0.5.0] + +### Added + +- Improved SMP support - you now only have to supply a + `_asm_secondary_core_park` function to park/release any secondary cores (such + cores enter a WFE loop by default) +- New `fn _asm_stack_setup_preallocated(core_id: u32)` function exported +- New `fn _asm_init_segments()` which initialises the `.data` and `.bss` segments +- New `fn _asm_core_start()` which does some core set-up (enable FPU, wipe + registers, etc) then calls `kmain` or `kmain_secondary` +- New internal (but exported) `_default_kmain_secondary` symbol +- New internal (but exported) `_asm_default_secondary_core_park` symbol + +### Removed + +- Internal (but exported) `_stack_setup_preallocated` function +- Internal (but exported) `_init_segments` function + ## [aarch32-rt v0.4.0] ### Added @@ -86,7 +105,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). Initial release -[Unreleased]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.4.0...HEAD +[Unreleased]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.5.0...HEAD +[aarch32-rt v0.5.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.4.0...aarch32-rt-v0.5.0 [aarch32-rt v0.4.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.3.0...aarch32-rt-v0.4.0 [aarch32-rt v0.3.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.2.0...aarch32-rt-v0.3.0 [aarch32-rt v0.2.0]: https://github.com/rust-embedded/aarch32/compare/aarch32-rt-v0.1.0...aarch32-rt-v0.2.0 diff --git a/aarch32-rt/Cargo.toml b/aarch32-rt/Cargo.toml index a8ff7ad..10b1edf 100644 --- a/aarch32-rt/Cargo.toml +++ b/aarch32-rt/Cargo.toml @@ -21,11 +21,11 @@ name = "aarch32-rt" readme = "README.md" repository = "https://github.com/rust-embedded/aarch32.git" rust-version = "1.93" -version = "0.4.0" +version = "0.5.0" [dependencies] aarch32-cpu = { version = "0.4.0", path = "../aarch32-cpu" } -aarch32-rt-macros = { path = "../aarch32-rt-macros", version = "=0.4.0" } +aarch32-rt-macros = { path = "../aarch32-rt-macros", version = "=0.5.0" } [features] # Enable the FPU on start-up, even on a soft-float EABI target