748fe973b2dfbb062d2323f40bd5ea59781cc59b
1 #ifndef _ENV_PHYSICAL_SINGLE_CORE_TIMER_H
2 #define _ENV_PHYSICAL_SINGLE_CORE_TIMER_H
6 //-----------------------------------------------------------------------
8 //-----------------------------------------------------------------------
10 #define RVTEST_RV64U \
12 #define RVTEST_RV64UF \
16 #define RVTEST_FP_ENABLE \
24 #define RVTEST_VEC_ENABLE \
31 #define RVTEST_CODE_BEGIN \
38 mfpcr a0, cr10; 1: bnez a0, 1b; \
39 ENABLE_TIMER_INTERRUPT \
41 //-----------------------------------------------------------------------
43 //-----------------------------------------------------------------------
45 #define RVTEST_CODE_END \
48 //-----------------------------------------------------------------------
50 //-----------------------------------------------------------------------
66 //-----------------------------------------------------------------------
68 //-----------------------------------------------------------------------
70 #define RVTEST_DATA_BEGIN \
73 .dword 0xdeadbeefcafebabe; \
74 .dword 0xdeadbeefcafebabe; \
75 .dword 0xdeadbeefcafebabe; \
76 .dword 0xdeadbeefcafebabe; \
77 .dword 0xdeadbeefcafebabe; \
78 .dword 0xdeadbeefcafebabe; \
79 .dword 0xdeadbeefcafebabe; \
80 .dword 0xdeadbeefcafebabe; \
81 .dword 0xdeadbeefcafebabe; \
82 .dword 0xdeadbeefcafebabe; \
83 .dword 0xdeadbeefcafebabe; \
84 .dword 0xdeadbeefcafebabe; \
85 .dword 0xdeadbeefcafebabe; \
86 .dword 0xdeadbeefcafebabe; \
87 .dword 0xdeadbeefcafebabe; \
88 .dword 0xdeadbeefcafebabe; \
89 .dword 0xdeadbeefcafebabe; \
90 .dword 0xdeadbeefcafebabe; \
91 .dword 0xdeadbeefcafebabe; \
92 .dword 0xdeadbeefcafebabe; \
93 .dword 0xdeadbeefcafebabe; \
94 .dword 0xdeadbeefcafebabe; \
95 .dword 0xdeadbeefcafebabe; \
96 .dword 0xdeadbeefcafebabe; \
98 .dword 0xdeadbeefcafebabe; \
99 .dword 0xdeadbeefcafebabe; \
100 .dword 0xdeadbeefcafebabe; \
101 .dword 0xdeadbeefcafebabe; \
102 .dword 0xdeadbeefcafebabe; \
103 .dword 0xdeadbeefcafebabe; \
104 .dword 0xdeadbeefcafebabe; \
105 .dword 0xdeadbeefcafebabe; \
106 .dword 0xdeadbeefcafebabe; \
107 .dword 0xdeadbeefcafebabe; \
108 .dword 0xdeadbeefcafebabe; \
109 .dword 0xdeadbeefcafebabe; \
110 .dword 0xdeadbeefcafebabe; \
111 .dword 0xdeadbeefcafebabe; \
112 .dword 0xdeadbeefcafebabe; \
113 .dword 0xdeadbeefcafebabe; \
114 .dword 0xdeadbeefcafebabe; \
115 .dword 0xdeadbeefcafebabe; \
116 .dword 0xdeadbeefcafebabe; \
117 .dword 0xdeadbeefcafebabe; \
118 .dword 0xdeadbeefcafebabe; \
119 .dword 0xdeadbeefcafebabe; \
120 .dword 0xdeadbeefcafebabe; \
121 .dword 0xdeadbeefcafebabe; \
122 .dword 0xdeadbeefcafebabe; \
123 .dword 0xdeadbeefcafebabe; \
124 .dword 0xdeadbeefcafebabe; \
125 .dword 0xdeadbeefcafebabe; \
126 .dword 0xdeadbeefcafebabe; \
127 .dword 0xdeadbeefcafebabe; \
128 .dword 0xdeadbeefcafebabe; \
129 .dword 0xdeadbeefcafebabe; \
131 #define RVTEST_DATA_END
133 //#define RVTEST_DATA_BEGIN .align 4; .global begin_signature; begin_signature:
134 //#define RVTEST_DATA_END .align 4; .global end_signature; end_signature:
136 //-----------------------------------------------------------------------
138 //-----------------------------------------------------------------------
140 #define ENABLE_TIMER_INTERRUPT \
141 mtpcr x0,ASM_CR(PCR_CLR_IPI);\
142 mfpcr a0,ASM_CR(PCR_SR); \
143 li a1, SR_ET|SR_IM; \
145 mtpcr a0,ASM_CR(PCR_SR); \
147 mtpcr a0,ASM_CR(PCR_EVEC); \
148 mtpcr x0,ASM_CR(PCR_COUNT); \
150 mtpcr a0,ASM_CR(PCR_COMPARE);\
152 #define XCPT_HANDLER \
154 mtpcr a0,ASM_CR(PCR_K0); \
155 mtpcr a1,ASM_CR(PCR_K1); \
163 mfpcr s1,ASM_CR(PCR_VECBANK);\
164 mfpcr s0,ASM_CR(PCR_VECCFG); \
167 mtpcr s1,ASM_CR(PCR_VECBANK);\
186 beq a5,x0,_vcmd_skip; \
217 beq a5,x0,_done_skip; \
227 mfpcr a0,ASM_CR(PCR_COUNT); \
229 mtpcr a0,ASM_CR(PCR_COMPARE);\
230 mfpcr a0,ASM_CR(PCR_K0); \
231 mfpcr a1,ASM_CR(PCR_K1); \