Skip to content

kernel: Introduce Arch trait - #2704

Open
jamesmunns wants to merge 5 commits into
james/abi-addrfrom
james/arch-trait
Open

jamesmunns wants to merge 5 commits into
james/abi-addrfrom
james/arch-trait

Conversation

@jamesmunns

Copy link
Copy Markdown
Contributor

This is the second PR in a series to be able to potentially run the kernel and tasks on a 64-bit host for testing purposes. This is currently based on #2703

This PR introduces an Arch trait, which captures the architecture-specific methods required for a new architecture impl. This encapsulates the behaviors that the rest of the kernel uses for scheduling and other behavior.

This follows the pattern we've started using for BSP impls lately: We define a trait, each BSP (or Arch in this case) implements it, and we expose the One Selected Impl using cfgs as a commonly named type (here: Current) which the rest of the crate uses.

This one might be worth review commit-by-commit, as the total diff is a bit large, but the individual commits are each pretty straightforward.

Sorry for all the reflowed comments. The 80-col limit comes for us all.
There are now no more "Magic" types/methods required across the kernel.

The current `kconfig.rs` generation is still Arm-M specific, but that's okay,
we only support Arm-M still for now.
@labbott

labbott commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator

More thoughts later but I'd like us to have an eye towards something that could let us have RISC-V support too (I think this should be sufficient but always watch out for foot guns or something)

@jamesmunns

Copy link
Copy Markdown
Contributor Author

For reviewers, I've added some "big picture" notes in #2706 on how this PR fits into the bigger picture.

This branch has not been deployed

No deployments
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.

2 participants