master
s 136 lines 2.36 KB
Raw
1 #include "macros.inc"
2
3 test_suite phys_mem
4
5 #if XCHAL_HAVE_PTP_MMU
6
7 .purgem test_init
8
9 .macro test_init
10 movi a2, 0xc0000003 /* PPN */
11 movi a3, 0xc0000004 /* VPN */
12 wdtlb a2, a3
13 witlb a2, a3
14 movi a2, 0xc0000000
15 wsr a2, ptevaddr
16 #if XCHAL_HAVE_SPANNING_WAY
17 movi a2, 0xc0000000 | XCHAL_SPANNING_WAY
18 idtlb a2
19 iitlb a2
20 movi a2, 0x20000000 | XCHAL_SPANNING_WAY
21 idtlb a2
22 iitlb a2
23 #endif
24 .endm
25
26 test inst_fetch_get_pte_no_phys
27 set_vector kernel, 2f
28
29 movi a2, 0x20000000
30 jx a2
31 2:
32 movi a2, 0x20000000
33 rsr a3, excvaddr
34 assert eq, a2, a3
35 rsr a3, epc1
36 assert eq, a2, a3
37 rsr a3, exccause
38 movi a2, 16
39 assert eq, a2, a3
40 test_end
41
42 test read_get_pte_no_phys
43 set_vector kernel, 2f
44
45 movi a2, 0x20000000
46 1:
47 l32i a3, a2, 0
48 test_fail
49 2:
50 movi a2, 0x20000000
51 rsr a3, excvaddr
52 assert eq, a2, a3
53 movi a2, 1b
54 rsr a3, epc1
55 assert eq, a2, a3
56 rsr a3, exccause
57 movi a2, 24
58 assert eq, a2, a3
59 test_end
60
61 test write_get_pte_no_phys
62 set_vector kernel, 2f
63
64 movi a2, 0x20000000
65 1:
66 s32i a3, a2, 0
67 test_fail
68 2:
69 movi a2, 0x20000000
70 rsr a3, excvaddr
71 assert eq, a2, a3
72 movi a2, 1b
73 rsr a3, epc1
74 assert eq, a2, a3
75 rsr a3, exccause
76 movi a2, 24
77 assert eq, a2, a3
78 test_end
79
80 #endif
81
82 test inst_fetch_no_phys
83 set_vector kernel, 2f
84
85 movi a2, 0xc0000000
86 jx a2
87 2:
88 movi a2, 0xc0000000
89 rsr a3, excvaddr
90 assert eq, a2, a3
91 rsr a3, epc1
92 assert eq, a2, a3
93 rsr a3, exccause
94 movi a2, 14
95 assert eq, a2, a3
96 test_end
97
98 test read_no_phys
99 set_vector kernel, 2f
100
101 movi a2, 0xc0000000
102 1:
103 l32i a3, a2, 0
104 test_fail
105 2:
106 movi a2, 0xc0000000
107 rsr a3, excvaddr
108 assert eq, a2, a3
109 movi a2, 1b
110 rsr a3, epc1
111 assert eq, a2, a3
112 rsr a3, exccause
113 movi a2, 15
114 assert eq, a2, a3
115 test_end
116
117 test write_no_phys
118 set_vector kernel, 2f
119
120 movi a2, 0xc0000000
121 1:
122 s32i a3, a2, 0
123 test_fail
124 2:
125 movi a2, 0xc0000000
126 rsr a3, excvaddr
127 assert eq, a2, a3
128 movi a2, 1b
129 rsr a3, epc1
130 assert eq, a2, a3
131 rsr a3, exccause
132 movi a2, 15
133 assert eq, a2, a3
134 test_end
135
136 test_suite_end