提交 f46f7a30 编写于 作者: Z Zihao Yu

riscv64,csr: add more CSRs

上级 7747578e
...@@ -4,8 +4,14 @@ ...@@ -4,8 +4,14 @@
#include "common.h" #include "common.h"
#define CSRS(f) \ #define CSRS(f) \
f(mstatus , 0x300) f(mtvec , 0x305) f(mepc , 0x341) f(mcause , 0x342) \ f(mstatus , 0x300) f(medeleg , 0x302) f(mideleg , 0x303) \
f(mie , 0x304) f(mhartid , 0xf14) f(satp , 0x180) f(mie , 0x304) f(mtvec , 0x305) \
f(mscratch , 0x340) f(mepc , 0x341) f(mcause , 0x342) \
f(mhartid , 0xf14) \
f(sstatus , 0x100) \
f(sie , 0x104) f(stvec , 0x105) \
f(sscratch , 0x140) f(sepc , 0x141) \
f(satp , 0x180)
#define CSR_STRUCT_START(name) \ #define CSR_STRUCT_START(name) \
typedef union { \ typedef union { \
...@@ -30,12 +36,6 @@ CSR_STRUCT_START(mstatus) ...@@ -30,12 +36,6 @@ CSR_STRUCT_START(mstatus)
uint64_t mpp : 2; uint64_t mpp : 2;
CSR_STRUCT_END(mstatus) CSR_STRUCT_END(mstatus)
CSR_STRUCT_START(satp)
uint64_t ppn :44;
uint64_t asid:16;
uint64_t mode: 4;
CSR_STRUCT_END(satp)
CSR_STRUCT_START(mtvec) CSR_STRUCT_START(mtvec)
CSR_STRUCT_END(mtvec) CSR_STRUCT_END(mtvec)
...@@ -45,9 +45,18 @@ CSR_STRUCT_END(mcause) ...@@ -45,9 +45,18 @@ CSR_STRUCT_END(mcause)
CSR_STRUCT_START(mepc) CSR_STRUCT_START(mepc)
CSR_STRUCT_END(mepc) CSR_STRUCT_END(mepc)
CSR_STRUCT_START(medeleg)
CSR_STRUCT_END(medeleg)
CSR_STRUCT_START(mideleg)
CSR_STRUCT_END(mideleg)
CSR_STRUCT_START(mhartid) CSR_STRUCT_START(mhartid)
CSR_STRUCT_END(mhartid) CSR_STRUCT_END(mhartid)
CSR_STRUCT_START(mscratch)
CSR_STRUCT_END(mscratch)
CSR_STRUCT_START(mie) CSR_STRUCT_START(mie)
uint64_t usie : 1; uint64_t usie : 1;
uint64_t ssie : 1; uint64_t ssie : 1;
...@@ -63,6 +72,44 @@ CSR_STRUCT_START(mie) ...@@ -63,6 +72,44 @@ CSR_STRUCT_START(mie)
uint64_t meie : 1; uint64_t meie : 1;
CSR_STRUCT_END(mie) CSR_STRUCT_END(mie)
CSR_STRUCT_START(sstatus)
uint64_t uie : 1;
uint64_t sie : 1;
uint64_t pad0: 2;
uint64_t upie: 1;
uint64_t spie: 1;
uint64_t pad1: 2;
uint64_t spp : 1;
uint64_t pad2: 4;
CSR_STRUCT_END(sstatus)
CSR_STRUCT_START(stvec)
CSR_STRUCT_END(stvec)
CSR_STRUCT_START(sie)
uint64_t usie : 1;
uint64_t ssie : 1;
uint64_t pad0 : 2;
uint64_t utie : 1;
uint64_t stie : 1;
uint64_t pad1 : 2;
uint64_t ueie : 1;
uint64_t seie : 1;
uint64_t pad2 : 2;
CSR_STRUCT_END(sie)
CSR_STRUCT_START(satp)
uint64_t ppn :44;
uint64_t asid:16;
uint64_t mode: 4;
CSR_STRUCT_END(satp)
CSR_STRUCT_START(sepc)
CSR_STRUCT_END(sepc)
CSR_STRUCT_START(sscratch)
CSR_STRUCT_END(sscratch)
#define CSRS_DECL(name, val) extern concat(name, _t)* const name; #define CSRS_DECL(name, val) extern concat(name, _t)* const name;
MAP(CSRS, CSRS_DECL) MAP(CSRS, CSRS_DECL)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册