sw: Support bare-metal SMP in software stack #85
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains some modification to the Cheshire software stack to ease bare-metal SMP.
The following modifications are pushed:
smp_pause
andsmp_resume
to the bootrom crt0.S file, renaming thembootrom_smp_pause
andbootrom_smp_resume
, to support a future implementation in C of such functionalities.smp_pause
andsmp_resume
in C, in the filesmp.c
, and add a SMP Hello World test application.smp_pause
is called on entry andsmp_resume
is called before invoking the next stage.Notice that while commit
8a65d72
modifiescheshire_bootrom.S
, the changes do not affect the generated.sv
file, and should be hardware-neutral. I double-checked that by computing the SHA256 digest of thecheshire_bootrom.sv
file in themain
branch, and at commit53d71de
after regenerating it by runningmake chs-bootrom-all
with the active toolchain pointing toriscv64-unknown-elf-gcc-12.2.0
. In both cases, I obtain6ccbbc2d958008b1d9101100bcef9dd934545623d94ed329794d37bb47919606