-
Notifications
You must be signed in to change notification settings - Fork 178
Add more CSRs #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add more CSRs #31
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, checked the register numbers and permissions against RV Privileged Architecture spec v1.10. I've also tested the build.
This does make riscv.o
noticeably larger (the rv64 one goes from 7k to 67k), which might be a problem for small-memory platforms, or does the one-function-per-section cause only the used functions to be linked in in the final binary?
I've checked and this is indeed the case ! Only what is actually used makes it into the binary. bors r+ |
31: Add more CSRs r=laanwj a=Disasm Co-authored-by: Vadim Kaushan <[email protected]>
Build succeeded |
Yep, this is quite common pattern for saving space. In two Rust releases we will have even more beautiful solution with ThinLTO. |
31: New linker script and multi-core support r=laanwj a=Disasm * Linker script was reworked. Now it uses region aliases to relocate sections. This approach makes it possible to build firmware for both FLASH+RAM and RAM-only targets. Memory definitions now supposed to be present in their corresponding crates (e.g. RAM definition in PAC crate, FLASH definition in board support crate). * Multi-core support was introduced. Cores are parked with `_mp_hook` function and then awakened in platform-dependent way. * Documentation was updated to reflect new features. * New crate version: 0.6.0 Depends on: #28 Closes: rust-embedded/riscv-rt#26 Co-authored-by: Vadim Kaushan <[email protected]>
No description provided.