Skip to content

Add EL2 examples (requires #127)#131

Open
thejpster wants to merge 5 commits intorust-embedded:mainfrom
thejpster:fun-with-el2
Open

Add EL2 examples (requires #127)#131
thejpster wants to merge 5 commits intorust-embedded:mainfrom
thejpster:fun-with-el2

Conversation

@thejpster
Copy link
Contributor

Adds another batch of examples which all run at EL2.

  • HVC calls at EL2 go into the SVC handler
  • Information about Data Aborts, Prefetch Aborts, Undefined Exceptions, etc, appear in the Hyp Syndrome Register, and not where EL1 expects to find them (DFSR, IFAR, etc)
  • You return from an IRQ, HVC, or whatever, with an eret, so a while new batch of assembly trampolines were required
  • A feature was added to aarch32-rt to enable these new EL2 trampolines. This feature also skips putting you into EL1 automatically.

Requires #127 and #119

@jonathanpallant jonathanpallant marked this pull request as draft March 5, 2026 10:17
@jonathanpallant

This comment was marked as outdated.

Will make it easier to add other tests, like sharing the GIC across
cores.
We send a Software Generated Interrupt from Core 0 to Core 1, and then
another one back the other way.
* The `_num_cores` symbol controls how many copies of each stack you get
* Added better docs to link.x
* Added `enum Stack` to aarch32-rt, which can fetch information about
  each stack
* Simplified the SMP start-up code
* Stacks and stack related code are now all in the same order

If you want to put stacks into TCM, you'll need custom routines. This
code assumes stacks all live in the same region of RAM.
The parser thought the hyphen started a bullet list.
@jonathanpallant jonathanpallant changed the title Add EL2 examples (requires #127 and #119) Add EL2 examples (requires #127) Mar 8, 2026
* Adds more Hyp register details.
* A bunch of fixes to the docs
* Makes sure CI actually runs these and the SMP examples
@jonathanpallant
Copy link
Contributor

Squashed and rebased.

@jonathanpallant jonathanpallant marked this pull request as ready for review March 8, 2026 12:21
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