@@ -89,71 +89,9 @@ enum {
8989};
9090/* clang-format on */
9191
92- #define MISA_SUPER (1 << ('S' - 'A'))
93- #define MISA_USER (1 << ('U' - 'A'))
94- #define MISA_I (1 << ('I' - 'A'))
95- #define MISA_M (1 << ('M' - 'A'))
96- #define MISA_A (1 << ('A' - 'A'))
97- #define MISA_F (1 << ('F' - 'A'))
98- #define MISA_C (1 << ('C' - 'A'))
99-
100- /* The mstatus register keeps track of and controls the hart’s current operating
101- * state */
102- #define MSTATUS_SIE_SHIFT 1
103- #define MSTATUS_MIE_SHIFT 3
104- #define MSTATUS_SPIE_SHIFT 5
105- #define MSTATUS_UBE_SHIFT 6
106- #define MSTATUS_MPIE_SHIFT 7
107- #define MSTATUS_SPP_SHIFT 8
108- #define MSTATUS_MPP_SHIFT 11
109- #define MSTATUS_MPRV_SHIFT 17
110- #define MSTATUS_SUM_SHIFT 18
111- #define MSTATUS_MXR_SHIFT 18
112- #define MSTATUS_TVM_SHIFT 20
113- #define MSTATUS_TW_SHIFT 21
114- #define MSTATUS_TSR_SHIFT 22
115- #define MSTATUS_SIE (1 << MSTATUS_SIE_SHIFT)
116- #define MSTATUS_MIE (1 << MSTATUS_MIE_SHIFT)
117- #define MSTATUS_SPIE (1 << MSTATUS_SPIE_SHIFT)
118- #define MSTATUS_UBE (1 << MSTATUS_UBE_SHIFT)
119- #define MSTATUS_MPIE (1 << MSTATUS_MPIE_SHIFT)
120- #define MSTATUS_SPP (1 << MSTATUS_SPP_SHIFT)
121- #define MSTATUS_MPP (3 << MSTATUS_MPP_SHIFT)
122- #define MSTATUS_MPRV (1 << MSTATUS_MPRV_SHIFT)
123- #define MSTATUS_SUM (1 << MSTATUS_SUM_SHIFT)
124- #define MSTATUS_MXR (1 << MSTATUS_MXR_SHIFT)
125- #define MSTATUS_TVM (1 << MSTATUS_TVM_SHIFT)
126- #define MSTATUS_TW (1 << MSTATUS_TW_SHIFT)
127- #define MSTATUS_TSR (1 << MSTATUS_TSR_SHIFT)
128-
129- /* A restricted view of mstatus */
130- #define SSTATUS_SIE_SHIFT 1
131- #define SSTATUS_SPIE_SHIFT 5
132- #define SSTATUS_UBE_SHIFT 6
133- #define SSTATUS_SPP_SHIFT 8
134- #define SSTATUS_SUM_SHIFT 18
135- #define SSTATUS_MXR_SHIFT 19
136- #define SSTATUS_SIE (1 << SSTATUS_SIE_SHIFT)
137- #define SSTATUS_SPIE (1 << SSTATUS_SPIE_SHIFT)
138- #define SSTATUS_UBE (1 << SSTATUS_UBE_SHIFT)
139- #define SSTATUS_SPP (1 << SSTATUS_SPP_SHIFT)
140- #define SSTATUS_SUM (1 << SSTATUS_SUM_SHIFT)
141- #define SSTATUS_MXR (1 << SSTATUS_MXR_SHIFT)
142-
143- #define SIP_SSIP_SHIFT 1
144- #define SIP_STIP_SHIFT 5
145- #define SIP_SEIP_SHIFT 9
146- #define SIP_SSIP (1 << SIP_SSIP_SHIFT)
147- #define SIP_STIP (1 << SIP_STIP_SHIFT)
148- #define SIP_SEIP (1 << SIP_SEIP_SHIFT)
149-
15092#define RV_PG_SHIFT 12
15193#define RV_PG_SIZE (1 << RV_PG_SHIFT)
15294
153- #define RV_PRIV_U_MODE 0
154- #define RV_PRIV_S_MODE 1
155- #define RV_PRIV_M_MODE 3
156-
15795typedef uint32_t pte_t ;
15896#define PTE_V (1U)
15997#define PTE_R (1U << 1)
@@ -175,56 +113,19 @@ enum SV32_PTE_PERM {
175113 RESRV_PAGE1 = 0b0101 ,
176114 RESRV_PAGE2 = 0b1101 ,
177115};
178- #define RV_INT_STI_SHIFT 5
179- #define RV_INT_STI (1 << RV_INT_STI_SHIFT)
180116
181- /*
182- * SBI functions must return a pair of values:
183- *
184- * struct sbiret {
185- * long error;
186- * long value;
187- * };
188- *
189- * The error and value field will be set to register a0 and a1 respectively
190- * after the SBI function return. The error field indicate whether the
191- * SBI call is success or not. SBI_SUCCESS indicates success and
192- * SBI_ERR_NOT_SUPPORTED indicates not supported failure. The value field is
193- * the information based on the extension ID(EID) and SBI function ID(FID).
194- *
195- * SBI reference: https://github.com/riscv-non-isa/riscv-sbi-doc
196- *
197- */
198- #define SBI_SUCCESS 0
199- #define SBI_ERR_NOT_SUPPORTED -2
117+ #define MISA_SUPER (1 << ('S' - 'A'))
118+ #define MISA_USER (1 << ('U' - 'A'))
119+ #define MISA_I (1 << ('I' - 'A'))
120+ #define MISA_M (1 << ('M' - 'A'))
121+ #define MISA_A (1 << ('A' - 'A'))
122+ #define MISA_F (1 << ('F' - 'A'))
123+ #define MISA_C (1 << ('C' - 'A'))
200124
201125/*
202- * All of the functions in the base extension must be supported by
203- * all SBI implementations.
126+ * The mstatus register keeps track of and controls the hart’s
127+ * current operating state
204128 */
205- #define SBI_EID_BASE 0x10
206- #define SBI_BASE_GET_SBI_SPEC_VERSION 0
207- #define SBI_BASE_GET_SBI_IMPL_ID 1
208- #define SBI_BASE_GET_SBI_IMPL_VERSION 2
209- #define SBI_BASE_PROBE_EXTENSION 3
210- #define SBI_BASE_GET_MVENDORID 4
211- #define SBI_BASE_GET_MARCHID 5
212- #define SBI_BASE_GET_MIMPID 6
213-
214- /* Make supervisor to schedule the clock for next timer event. */
215- #define SBI_EID_TIMER 0x54494D45
216- #define SBI_TIMER_SET_TIMER 0
217-
218- /* Allows the supervisor to request system-level reboot or shutdown. */
219- #define SBI_EID_RST 0x53525354
220- #define SBI_RST_SYSTEM_RESET 0
221-
222- #define RV_MVENDORID 0x12345678
223- #define RV_MARCHID ((1ULL << 31) | 1)
224- #define RV_MIMPID 1
225-
226- /* The mstatus register keeps track of and controls the hart’s current operating
227- * state */
228129#define MSTATUS_SIE_SHIFT 1
229130#define MSTATUS_MIE_SHIFT 3
230131#define MSTATUS_SPIE_SHIFT 5
@@ -265,7 +166,6 @@ enum SV32_PTE_PERM {
265166#define SSTATUS_SPP (1 << SSTATUS_SPP_SHIFT)
266167#define SSTATUS_SUM (1 << SSTATUS_SUM_SHIFT)
267168#define SSTATUS_MXR (1 << SSTATUS_MXR_SHIFT)
268-
269169#define SIP_SSIP_SHIFT 1
270170#define SIP_STIP_SHIFT 5
271171#define SIP_SEIP_SHIFT 9
@@ -278,6 +178,13 @@ enum SV32_PTE_PERM {
278178#define RV_PRIV_M_MODE 3
279179#define RV_PRIV_IS_U_OR_S_MODE () (rv->priv_mode <= RV_PRIV_S_MODE)
280180
181+ #define RV_MVENDORID 0x12345678
182+ #define RV_MARCHID ((1ULL << 31) | 1)
183+ #define RV_MIMPID 1
184+
185+ #define RV_INT_STI_SHIFT 5
186+ #define RV_INT_STI (1 << RV_INT_STI_SHIFT)
187+
281188/* clang-format off */
282189enum TRAP_CODE {
283190#if !RV32_HAS (EXT_C )
@@ -344,7 +251,6 @@ enum TRAP_CODE {
344251 * the information based on the extension ID(EID) and SBI function ID(FID).
345252 *
346253 * SBI reference: https://github.com/riscv-non-isa/riscv-sbi-doc
347- *
348254 */
349255#define SBI_SUCCESS 0
350256#define SBI_ERR_NOT_SUPPORTED -2
@@ -370,10 +276,6 @@ enum TRAP_CODE {
370276#define SBI_EID_RST 0x53525354
371277#define SBI_RST_SYSTEM_RESET 0
372278
373- #define RV_MVENDORID 0x12345678
374- #define RV_MARCHID ((1ULL << 31) | 1)
375- #define RV_MIMPID 1
376-
377279#define BLOCK_MAP_CAPACITY_BITS 10
378280
379281/* forward declaration for internal structure */
0 commit comments