Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion aarch32-rt-macros/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion aarch32-rt-macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
19 changes: 18 additions & 1 deletion aarch32-rt/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

## [aarch32-rt v0.5.0]

### Added

- Improved SMP support on ARMv7-A, ARMv7-R and ARMv8-R:
- 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 exported symbol `_asm_core_start`
- New exported symbol `_default_kmain_secondary`
- New exported symbol `_asm_default_secondary_core_park`

### Changed

- Renamed exported symbol `_stack_setup_preallocated` to `_asm_stack_setup_preallocated`
- Renamed exported symbol `_init_segments` to `_asm_init_segments`

## [aarch32-rt v0.4.0]

### Added
Expand Down Expand Up @@ -86,7 +102,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
Expand Down
4 changes: 2 additions & 2 deletions aarch32-rt/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 8 additions & 2 deletions aarch32-rt/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -539,7 +539,7 @@
//! // Wait until Core 0 does a 'sev'
//! wfe
//! // Spin until register is non-zero.
//! ldr r1, [r0]
//! ldr r1, [r0]
//! cmp r1, 0
//! beq 1b
//! // return to start-up
Expand Down Expand Up @@ -844,6 +844,10 @@ core::arch::global_asm!(
);

/// Spins secondary cores.
///
/// This function is exported so the linker can use it as a default
/// implementation of `kmain_secondary`, but it's considered an internal API
/// that we don't expect you to call.
#[unsafe(no_mangle)]
#[cfg(target_arch = "arm")]
pub extern "C" fn _default_kmain_secondary() {
Expand All @@ -859,7 +863,9 @@ pub extern "C" fn _default_kmain_secondary() {

// # _asm_stack_setup_preallocated
//
// Configure a stack for every mode. Leaves you in sys mode.
// Configure a stack for every mode using linker provided constants.
//
// Leaves you in SYS mode at the end.
//
// Pass the core number in r0
#[cfg(target_arch = "arm")]
Expand Down