-
Notifications
You must be signed in to change notification settings - Fork 2
Draft Extension: Sspmp
#94
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
Open
a4lg
wants to merge
2
commits into
master
Choose a base branch
from
riscv-sspmp
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ee7c749
to
4b87c2e
Compare
5461f32
to
332345f
Compare
e5779fd
to
3454b68
Compare
13f8f1f
to
6dc4cc9
Compare
8cb797c
to
74e6e14
Compare
88e368e
to
e83d7f5
Compare
d245f22
to
e516528
Compare
c7f7ad9
to
446be3d
Compare
4301ab2
to
ac3b65c
Compare
d6296b8
to
aec3d14
Compare
a3669af
to
d7841db
Compare
[DO NOT MERGE] Until 'Sspmp' extension is frozen/ratified and final version number is determined, this patch should not be merged upstream. This commit uses unratified version 0.8 as in the documentation (instead of possible 1.0 after ratification). This commit adds RISC-V S-mode Physical Memory Protection (SPMP) version 0.8 based on the specification: <https://github.com/riscv/riscv-spmp/blob/c1e38ede20e4fe0a534ec7e8302c99b2a0a0ca72/rv-spmp-spec.pdf> Note Because CSR addresses are not fixed yet, this commit uses tentative addresses (a part of custom CSR space). bfd/ChangeLog: * elfxx-riscv.c (riscv_implicit_subsets): Add implication 'Sspmp' -> 'Zicsr'. (riscv_supported_std_s_ext): Add 'Sspmp' extension to valid 'S' extension list. gas/ChangeLog: * config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for the 'Sspmp' extension. (riscv_csr_address): Add handling for new CSR classes. * testsuite/gas/riscv/csr-dw-regnums.d: Add new CSRs. * testsuite/gas/riscv/csr-dw-regnums.s: Likewise. * testsuite/gas/riscv/csr.s: Add new CSRs. * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise. * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise. * testsuite/gas/riscv/csr-version-1p10.d: Likewise. * testsuite/gas/riscv/csr-version-1p10.l: Likewise. * testsuite/gas/riscv/csr-version-1p11.d: Likewise. * testsuite/gas/riscv/csr-version-1p11.l: Likewise. * testsuite/gas/riscv/csr-version-1p12.d: Likewise. * testsuite/gas/riscv/csr-version-1p12.l: Likewise. include/ChangeLog: * opcode/riscv-opc.h (CSR_SPMPCFG0, CSR_SPMPCFG1, CSR_SPMPCFG2, CSR_SPMPCFG3, CSR_SPMPCFG4, CSR_SPMPCFG5, CSR_SPMPCFG6, CSR_SPMPCFG7, CSR_SPMPCFG8, CSR_SPMPCFG9, CSR_SPMPCFG10, CSR_SPMPCFG11, CSR_SPMPCFG12, CSR_SPMPCFG13, CSR_SPMPCFG14, CSR_SPMPCFG15, CSR_SPMPSWITCH0, CSR_SPMPSWITCH1, CSR_SPMPADDR0, CSR_SPMPADDR1, CSR_SPMPADDR2, CSR_SPMPADDR3, CSR_SPMPADDR4, CSR_SPMPADDR5, CSR_SPMPADDR6, CSR_SPMPADDR7, CSR_SPMPADDR8, CSR_SPMPADDR9, CSR_SPMPADDR10, CSR_SPMPADDR11, CSR_SPMPADDR12, CSR_SPMPADDR13, CSR_SPMPADDR14, CSR_SPMPADDR15, CSR_SPMPADDR16, CSR_SPMPADDR17, CSR_SPMPADDR18, CSR_SPMPADDR19, CSR_SPMPADDR20, CSR_SPMPADDR21, CSR_SPMPADDR22, CSR_SPMPADDR23, CSR_SPMPADDR24, CSR_SPMPADDR25, CSR_SPMPADDR26, CSR_SPMPADDR27, CSR_SPMPADDR28, CSR_SPMPADDR29, CSR_SPMPADDR30, CSR_SPMPADDR31, CSR_SPMPADDR32, CSR_SPMPADDR33, CSR_SPMPADDR34, CSR_SPMPADDR35, CSR_SPMPADDR36, CSR_SPMPADDR37, CSR_SPMPADDR38, CSR_SPMPADDR39, CSR_SPMPADDR40, CSR_SPMPADDR41, CSR_SPMPADDR42, CSR_SPMPADDR43, CSR_SPMPADDR44, CSR_SPMPADDR45, CSR_SPMPADDR46, CSR_SPMPADDR47, CSR_SPMPADDR48, CSR_SPMPADDR49, CSR_SPMPADDR50, CSR_SPMPADDR51, CSR_SPMPADDR52, CSR_SPMPADDR53, CSR_SPMPADDR54, CSR_SPMPADDR55, CSR_SPMPADDR56, CSR_SPMPADDR57, CSR_SPMPADDR58, CSR_SPMPADDR59, CSR_SPMPADDR60, CSR_SPMPADDR61, CSR_SPMPADDR62, CSR_SPMPADDR63): New.
**DEVELOPMENT ENVIRONMENT ONLY** The attached script can be used to replace related source files when the CSR addresses of "spmpcfg*", "spmpaddr*" and "spmpswitch[01]" (now tentative) are determined. Note that this script accepts the CSR addresses of "spmpcfg0" and "spmpaddr0", assuming subsequent entries are consecutive.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Wiki Page (details): https://github.com/a4lg/binutils-gdb/wiki/riscv_sspmp