Hi Jiawei, These CSRs are defined in Priv 1.12 (Sm1p12), not in Smepmp. Smepmp only defines the behavior. Note, that I wrote a similar patch a month ago, but I reached out to Greg Favor to get this clarified. He clearly stated that Sm1p12 defines the CSRs. BR Christoph On Fri, Sep 30, 2022 at 9:34 AM jiawei wrote: > Machine Security Configuration[1] (mseccfg) is a new RW Machine mode CSR, > used for configuring various security mechanisms present on the hart, > and only accessible to machine mode. It is 64 bits wide, and is at > address 0x747 on RV64 and 0x747 (low 32bits), 0x757 (high 32bits) on RV32. > We change these two CSR to support smepmp extension features. > > [1] https://github.com/riscv/riscv-tee/tree/main/Smepmp > > V2: Update implement with new Binutils version. > > bfd/ChangeLog: > > * elfxx-riscv.c: New extension. > > gas/ChangeLog: > > * config/tc-riscv.c (enum riscv_csr_class): New class. > (riscv_csr_address): New csr. > * testsuite/gas/riscv/csr-version-1p10.d: Change csr. > * testsuite/gas/riscv/csr-version-1p10.l: Ditto. > * testsuite/gas/riscv/csr-version-1p11.d: Ditto. > * testsuite/gas/riscv/csr-version-1p11.l: Ditto. > * testsuite/gas/riscv/csr-version-1p12.d: Ditto. > * testsuite/gas/riscv/csr-version-1p12.l: Ditto. > * testsuite/gas/riscv/csr-version-1p9p1.d: Ditto. > * testsuite/gas/riscv/csr-version-1p9p1.l: Ditto. > * testsuite/gas/riscv/csr.s: Ditto. > > include/ChangeLog: > > * opcode/riscv-opc.h (CSR_MSECCFG): Change csr. > (CSR_MSECCFGH): Ditto. > (DECLARE_CSR): Ditto. > > --- > bfd/elfxx-riscv.c | 1 + > gas/config/tc-riscv.c | 8 ++++++++ > gas/testsuite/gas/riscv/csr-version-1p10.d | 8 ++++---- > gas/testsuite/gas/riscv/csr-version-1p10.l | 12 ++++++------ > gas/testsuite/gas/riscv/csr-version-1p11.d | 8 ++++---- > gas/testsuite/gas/riscv/csr-version-1p11.l | 12 ++++++------ > gas/testsuite/gas/riscv/csr-version-1p12.d | 8 ++++---- > gas/testsuite/gas/riscv/csr-version-1p12.l | 8 ++++++-- > gas/testsuite/gas/riscv/csr-version-1p9p1.d | 8 ++++---- > gas/testsuite/gas/riscv/csr-version-1p9p1.l | 12 ++++++------ > gas/testsuite/gas/riscv/csr.s | 6 ++++-- > include/opcode/riscv-opc.h | 10 ++++++---- > 12 files changed, 59 insertions(+), 42 deletions(-) > > diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c > index fa393c7c427..e5dd8f106cf 100644 > --- a/bfd/elfxx-riscv.c > +++ b/bfd/elfxx-riscv.c > @@ -1211,6 +1211,7 @@ static struct riscv_supported_ext > riscv_supported_std_z_ext[] = > > static struct riscv_supported_ext riscv_supported_std_s_ext[] = > { > + {"smepmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, > {"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, > {"sscofpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, > {"sstc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, > diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c > index d9f63b11398..171150b7821 100644 > --- a/gas/config/tc-riscv.c > +++ b/gas/config/tc-riscv.c > @@ -78,6 +78,8 @@ enum riscv_csr_class > CSR_CLASS_SSTC_AND_H, /* Sstc only (with H) */ > CSR_CLASS_SSTC_32, /* Sstc RV32 only */ > CSR_CLASS_SSTC_AND_H_32, /* Sstc RV32 only (with H) */ > + CSR_CLASS_SMEPMP, /* Smepmp only. */ > + CSR_CLASS_SMEPMP_32, /* Smepmp RV32 only. */ > }; > > /* This structure holds all restricted conditions for a CSR. */ > @@ -977,6 +979,12 @@ riscv_csr_address (const char *csr_name, > || csr_class == CSR_CLASS_SSTC_AND_H_32); > extension = "sstc"; > break; > + case CSR_CLASS_SMEPMP_32: > + is_rv32_only = true; > + /* Fall through. */ > + case CSR_CLASS_SMEPMP: > + extension = "smepmp"; > + break; > case CSR_CLASS_DEBUG: > break; > default: > diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d > b/gas/testsuite/gas/riscv/csr-version-1p10.d > index bd8b10302e3..5d6cad65d69 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p10.d > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.d > @@ -203,10 +203,6 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+30a59073[ ]+csrw[ ]+0x30a,a1 > [ ]+[0-9a-f]+:[ ]+31a02573[ ]+csrr[ ]+a0,0x31a > [ ]+[0-9a-f]+:[ ]+31a59073[ ]+csrw[ ]+0x31a,a1 > -[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,0x747 > -[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+0x747,a1 > -[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,0x757 > -[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+0x757,a1 > [ ]+[0-9a-f]+:[ ]+3a002573[ ]+csrr[ ]+a0,pmpcfg0 > [ ]+[0-9a-f]+:[ ]+3a059073[ ]+csrw[ ]+pmpcfg0,a1 > [ ]+[0-9a-f]+:[ ]+3a102573[ ]+csrr[ ]+a0,pmpcfg1 > @@ -709,6 +705,10 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1 > [ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph > [ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1 > +[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg > +[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1 > +[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh > +[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1 > [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,utval > [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+utval,a1 > [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval > diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l > b/gas/testsuite/gas/riscv/csr-version-1p10.l > index 999e9af1520..53ab22f1d51 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p10.l > +++ b/gas/testsuite/gas/riscv/csr-version-1p10.l > @@ -150,12 +150,6 @@ > .*Warning: invalid CSR `menvcfgh' for the privileged spec `1.10' > .*Warning: invalid CSR `menvcfgh', needs rv32i extension > .*Warning: invalid CSR `menvcfgh' for the privileged spec `1.10' > -.*Warning: invalid CSR `mseccfg' for the privileged spec `1.10' > -.*Warning: invalid CSR `mseccfg' for the privileged spec `1.10' > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh' for the privileged spec `1.10' > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh' for the privileged spec `1.10' > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > .*Warning: invalid CSR `pmpcfg3', needs rv32i extension > @@ -618,6 +612,12 @@ > .*Warning: invalid CSR `vstimecmph', needs rv32i extension > .*Warning: invalid CSR `vstimecmph', needs `h' extension > .*Warning: invalid CSR `vstimecmph', needs `sstc' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.10' > .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.10' > .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.10' > diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d > b/gas/testsuite/gas/riscv/csr-version-1p11.d > index 5d6333884f1..a20de4a7e20 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p11.d > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.d > @@ -203,10 +203,6 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+30a59073[ ]+csrw[ ]+0x30a,a1 > [ ]+[0-9a-f]+:[ ]+31a02573[ ]+csrr[ ]+a0,0x31a > [ ]+[0-9a-f]+:[ ]+31a59073[ ]+csrw[ ]+0x31a,a1 > -[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,0x747 > -[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+0x747,a1 > -[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,0x757 > -[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+0x757,a1 > [ ]+[0-9a-f]+:[ ]+3a002573[ ]+csrr[ ]+a0,pmpcfg0 > [ ]+[0-9a-f]+:[ ]+3a059073[ ]+csrw[ ]+pmpcfg0,a1 > [ ]+[0-9a-f]+:[ ]+3a102573[ ]+csrr[ ]+a0,pmpcfg1 > @@ -709,6 +705,10 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1 > [ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph > [ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1 > +[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg > +[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1 > +[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh > +[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1 > [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,utval > [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+utval,a1 > [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval > diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l > b/gas/testsuite/gas/riscv/csr-version-1p11.l > index a099e4ecc93..c14f46d119b 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p11.l > +++ b/gas/testsuite/gas/riscv/csr-version-1p11.l > @@ -150,12 +150,6 @@ > .*Warning: invalid CSR `menvcfgh' for the privileged spec `1.11' > .*Warning: invalid CSR `menvcfgh', needs rv32i extension > .*Warning: invalid CSR `menvcfgh' for the privileged spec `1.11' > -.*Warning: invalid CSR `mseccfg' for the privileged spec `1.11' > -.*Warning: invalid CSR `mseccfg' for the privileged spec `1.11' > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh' for the privileged spec `1.11' > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh' for the privileged spec `1.11' > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > .*Warning: invalid CSR `pmpcfg3', needs rv32i extension > @@ -616,6 +610,12 @@ > .*Warning: invalid CSR `vstimecmph', needs rv32i extension > .*Warning: invalid CSR `vstimecmph', needs `h' extension > .*Warning: invalid CSR `vstimecmph', needs `sstc' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.11' > .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.11' > .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.11' > diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d > b/gas/testsuite/gas/riscv/csr-version-1p12.d > index 728e647c552..2717d717feb 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p12.d > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.d > @@ -203,10 +203,6 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+30a59073[ ]+csrw[ ]+menvcfg,a1 > [ ]+[0-9a-f]+:[ ]+31a02573[ ]+csrr[ ]+a0,menvcfgh > [ ]+[0-9a-f]+:[ ]+31a59073[ ]+csrw[ ]+menvcfgh,a1 > -[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg > -[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1 > -[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh > -[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1 > [ ]+[0-9a-f]+:[ ]+3a002573[ ]+csrr[ ]+a0,pmpcfg0 > [ ]+[0-9a-f]+:[ ]+3a059073[ ]+csrw[ ]+pmpcfg0,a1 > [ ]+[0-9a-f]+:[ ]+3a102573[ ]+csrr[ ]+a0,pmpcfg1 > @@ -709,6 +705,10 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1 > [ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph > [ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1 > +[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg > +[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1 > +[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh > +[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1 > [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,0x43 > [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+0x43,a1 > [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval > diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l > b/gas/testsuite/gas/riscv/csr-version-1p12.l > index cf8f2e25634..37eeb405aeb 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p12.l > +++ b/gas/testsuite/gas/riscv/csr-version-1p12.l > @@ -136,8 +136,6 @@ > .*Warning: invalid CSR `mstatush', needs rv32i extension > .*Warning: invalid CSR `menvcfgh', needs rv32i extension > .*Warning: invalid CSR `menvcfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > .*Warning: invalid CSR `pmpcfg3', needs rv32i extension > @@ -478,6 +476,12 @@ > .*Warning: invalid CSR `vstimecmph', needs rv32i extension > .*Warning: invalid CSR `vstimecmph', needs `h' extension > .*Warning: invalid CSR `vstimecmph', needs `sstc' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.12' > .*Warning: invalid CSR `ubadaddr' for the privileged spec `1.12' > .*Warning: invalid CSR `sbadaddr' for the privileged spec `1.12' > diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.d > b/gas/testsuite/gas/riscv/csr-version-1p9p1.d > index a34b99f4632..5d3ba2beb4c 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.d > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.d > @@ -203,10 +203,6 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+30a59073[ ]+csrw[ ]+0x30a,a1 > [ ]+[0-9a-f]+:[ ]+31a02573[ ]+csrr[ ]+a0,0x31a > [ ]+[0-9a-f]+:[ ]+31a59073[ ]+csrw[ ]+0x31a,a1 > -[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,0x747 > -[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+0x747,a1 > -[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,0x757 > -[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+0x757,a1 > [ ]+[0-9a-f]+:[ ]+3a002573[ ]+csrr[ ]+a0,0x3a0 > [ ]+[0-9a-f]+:[ ]+3a059073[ ]+csrw[ ]+0x3a0,a1 > [ ]+[0-9a-f]+:[ ]+3a102573[ ]+csrr[ ]+a0,0x3a1 > @@ -709,6 +705,10 @@ Disassembly of section .text: > [ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1 > [ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph > [ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1 > +[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg > +[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1 > +[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh > +[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1 > [ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,ubadaddr > [ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+ubadaddr,a1 > [ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,sbadaddr > diff --git a/gas/testsuite/gas/riscv/csr-version-1p9p1.l > b/gas/testsuite/gas/riscv/csr-version-1p9p1.l > index 5f298c1dda9..69fe9a6a80b 100644 > --- a/gas/testsuite/gas/riscv/csr-version-1p9p1.l > +++ b/gas/testsuite/gas/riscv/csr-version-1p9p1.l > @@ -160,12 +160,6 @@ > .*Warning: invalid CSR `menvcfgh' for the privileged spec `1.9.1' > .*Warning: invalid CSR `menvcfgh', needs rv32i extension > .*Warning: invalid CSR `menvcfgh' for the privileged spec `1.9.1' > -.*Warning: invalid CSR `mseccfg' for the privileged spec `1.9.1' > -.*Warning: invalid CSR `mseccfg' for the privileged spec `1.9.1' > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh' for the privileged spec `1.9.1' > -.*Warning: invalid CSR `mseccfgh', needs rv32i extension > -.*Warning: invalid CSR `mseccfgh' for the privileged spec `1.9.1' > .*Warning: invalid CSR `pmpcfg0' for the privileged spec `1.9.1' > .*Warning: invalid CSR `pmpcfg0' for the privileged spec `1.9.1' > .*Warning: invalid CSR `pmpcfg1', needs rv32i extension > @@ -668,6 +662,12 @@ > .*Warning: invalid CSR `vstimecmph', needs rv32i extension > .*Warning: invalid CSR `vstimecmph', needs `h' extension > .*Warning: invalid CSR `vstimecmph', needs `sstc' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfg', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > +.*Warning: invalid CSR `mseccfgh', needs rv32i extension > +.*Warning: invalid CSR `mseccfgh', needs `smepmp' extension > .*Warning: invalid CSR `utval' for the privileged spec `1.9.1' > .*Warning: invalid CSR `utval' for the privileged spec `1.9.1' > .*Warning: invalid CSR `fflags', needs `f' extension > diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s > index 128aeb83a04..5590d9f6e87 100644 > --- a/gas/testsuite/gas/riscv/csr.s > +++ b/gas/testsuite/gas/riscv/csr.s > @@ -119,8 +119,6 @@ > # Machine Configuration > csr menvcfg # Added in 1.12 > csr menvcfgh # Added in 1.12 > - csr mseccfg # Added in 1.12 > - csr mseccfgh # Added in 1.12 > > # Machine Memory Protection > csr pmpcfg0 # Added in 1.10 > @@ -397,6 +395,10 @@ > csr vstimecmp > csr vstimecmph > > + # Smepmp extension > + csr mseccfg > + csr mseccfgh > + > # Supported in previous priv spec, but dropped now > > csr ubadaddr # 0x043 in 1.9.1, but the value is utval > since 1.10 > diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h > index e40592159cd..8323119e31a 100644 > --- a/include/opcode/riscv-opc.h > +++ b/include/opcode/riscv-opc.h > @@ -2432,8 +2432,6 @@ > #define CSR_MTVAL2 0x34b > #define CSR_MENVCFG 0x30a > #define CSR_MENVCFGH 0x31a > -#define CSR_MSECCFG 0x747 > -#define CSR_MSECCFGH 0x757 > #define CSR_PMPCFG0 0x3a0 > #define CSR_PMPCFG1 0x3a1 > #define CSR_PMPCFG2 0x3a2 > @@ -2708,6 +2706,9 @@ > #define CSR_STIMECMPH 0x15d > #define CSR_VSTIMECMP 0x24d > #define CSR_VSTIMECMPH 0x25d > +/* Smepmp extension. */ > +#define CSR_MSECCFG 0x747 > +#define CSR_MSECCFGH 0x757 > /* Unprivileged Floating-Point CSR addresses. */ > #define CSR_FFLAGS 0x1 > #define CSR_FRM 0x2 > @@ -3288,8 +3289,6 @@ DECLARE_CSR(mtinst, CSR_MTINST, CSR_CLASS_I, > PRIV_SPEC_CLASS_1P12, PRIV_SPEC_CLA > DECLARE_CSR(mtval2, CSR_MTVAL2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P12, > PRIV_SPEC_CLASS_DRAFT) > DECLARE_CSR(menvcfg, CSR_MENVCFG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P12, > PRIV_SPEC_CLASS_DRAFT) > DECLARE_CSR(menvcfgh, CSR_MENVCFGH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P12, > PRIV_SPEC_CLASS_DRAFT) > -DECLARE_CSR(mseccfg, CSR_MSECCFG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P12, > PRIV_SPEC_CLASS_DRAFT) > -DECLARE_CSR(mseccfgh, CSR_MSECCFGH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P12, > PRIV_SPEC_CLASS_DRAFT) > DECLARE_CSR(pmpcfg0, CSR_PMPCFG0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, > PRIV_SPEC_CLASS_DRAFT) > DECLARE_CSR(pmpcfg1, CSR_PMPCFG1, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, > PRIV_SPEC_CLASS_DRAFT) > DECLARE_CSR(pmpcfg2, CSR_PMPCFG2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, > PRIV_SPEC_CLASS_DRAFT) > @@ -3545,6 +3544,9 @@ DECLARE_CSR(stimecmp, CSR_STIMECMP, CSR_CLASS_SSTC, > PRIV_SPEC_CLASS_NONE, PRIV_S > DECLARE_CSR(stimecmph, CSR_STIMECMPH, CSR_CLASS_SSTC_32, > PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) > DECLARE_CSR(vstimecmp, CSR_VSTIMECMP, CSR_CLASS_SSTC_AND_H, > PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) > DECLARE_CSR(vstimecmph, CSR_VSTIMECMPH, CSR_CLASS_SSTC_AND_H_32, > PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) > +/* Smepmp CSRs. */ > +DECLARE_CSR(mseccfg, CSR_MSECCFG, CSR_CLASS_SMEPMP, PRIV_SPEC_CLASS_NONE, > PRIV_SPEC_CLASS_NONE) > +DECLARE_CSR(mseccfgh, CSR_MSECCFGH, CSR_CLASS_SMEPMP_32, > PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE) > /* Dropped CSRs. */ > DECLARE_CSR(mbase, CSR_MBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, > PRIV_SPEC_CLASS_1P10) > DECLARE_CSR(mbound, CSR_MBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, > PRIV_SPEC_CLASS_1P10) > -- > 2.25.1 > >