Statistics
| Branch: | Revision:

root / tests / tcg / xtensa / test_timer.S @ c09015dd

History | View | Annotate | Download (3.2 kB)

1
.include "macros.inc"
2

    
3
test_suite timer
4

    
5
test ccount
6
    rsr     a3, ccount
7
    rsr     a4, ccount
8
    sub     a3, a4, a3
9
    assert  eqi, a3, 1
10
test_end
11

    
12
test ccompare
13
    movi    a2, 0
14
    wsr     a2, intenable
15
    rsr     a2, interrupt
16
    wsr     a2, intclear
17
    movi    a2, 0
18
    wsr     a2, ccompare1
19
    wsr     a2, ccompare2
20

    
21
    movi    a3, 20
22
    rsr     a2, ccount
23
    addi    a2, a2, 20
24
    wsr     a2, ccompare0
25
    rsr     a2, interrupt
26
    assert  eqi, a2, 0
27
    loop    a3, 1f
28
    rsr     a3, interrupt
29
    bnez    a3, 2f
30
1:
31
    test_fail
32
2:
33
test_end
34

    
35
test ccompare0_interrupt
36
    set_vector kernel, 2f
37
    movi    a2, 0
38
    wsr     a2, intenable
39
    rsr     a2, interrupt
40
    wsr     a2, intclear
41
    movi    a2, 0
42
    wsr     a2, ccompare1
43
    wsr     a2, ccompare2
44

    
45
    movi    a3, 20
46
    rsr     a2, ccount
47
    addi    a2, a2, 20
48
    wsr     a2, ccompare0
49
    rsync
50
    rsr     a2, interrupt
51
    assert  eqi, a2, 0
52

    
53
    movi    a2, 0x40
54
    wsr     a2, intenable
55
    rsil    a2, 0
56
    loop    a3, 1f
57
    nop
58
1:
59
    test_fail
60
2:
61
    rsr     a2, exccause
62
    assert  eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
63
test_end
64

    
65
test ccompare1_interrupt
66
    set_vector level3, 2f
67
    movi    a2, 0
68
    wsr     a2, intenable
69
    rsr     a2, interrupt
70
    wsr     a2, intclear
71
    movi    a2, 0
72
    wsr     a2, ccompare0
73
    wsr     a2, ccompare2
74

    
75
    movi    a3, 20
76
    rsr     a2, ccount
77
    addi    a2, a2, 20
78
    wsr     a2, ccompare1
79
    rsync
80
    rsr     a2, interrupt
81
    assert  eqi, a2, 0
82
    movi    a2, 0x400
83
    wsr     a2, intenable
84
    rsil    a2, 2
85
    loop    a3, 1f
86
    nop
87
1:
88
    test_fail
89
2:
90
test_end
91

    
92
test ccompare2_interrupt
93
    set_vector level5, 2f
94
    movi    a2, 0
95
    wsr     a2, intenable
96
    rsr     a2, interrupt
97
    wsr     a2, intclear
98
    movi    a2, 0
99
    wsr     a2, ccompare0
100
    wsr     a2, ccompare1
101

    
102
    movi    a3, 20
103
    rsr     a2, ccount
104
    addi    a2, a2, 20
105
    wsr     a2, ccompare2
106
    rsync
107
    rsr     a2, interrupt
108
    assert  eqi, a2, 0
109
    movi    a2, 0x2000
110
    wsr     a2, intenable
111
    rsil    a2, 4
112
    loop    a3, 1f
113
    nop
114
1:
115
    test_fail
116
2:
117
test_end
118

    
119
test ccompare_interrupt_masked
120
    set_vector kernel, 2f
121
    movi    a2, 0
122
    wsr     a2, intenable
123
    rsr     a2, interrupt
124
    wsr     a2, intclear
125
    movi    a2, 0
126
    wsr     a2, ccompare2
127

    
128
    movi    a3, 40
129
    rsr     a2, ccount
130
    addi    a2, a2, 20
131
    wsr     a2, ccompare1
132
    addi    a2, a2, 20
133
    wsr     a2, ccompare0
134
    rsync
135
    rsr     a2, interrupt
136
    assert  eqi, a2, 0
137

    
138
    movi    a2, 0x40
139
    wsr     a2, intenable
140
    rsil    a2, 0
141
    loop    a3, 1f
142
    nop
143
1:
144
    test_fail
145
2:
146
    rsr     a2, exccause
147
    assert  eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
148
test_end
149

    
150
test ccompare_interrupt_masked_waiti
151
    set_vector kernel, 2f
152
    movi    a2, 0
153
    wsr     a2, intenable
154
    rsr     a2, interrupt
155
    wsr     a2, intclear
156
    movi    a2, 0
157
    wsr     a2, ccompare2
158

    
159
    movi    a3, 40
160
    rsr     a2, ccount
161
    addi    a2, a2, 20
162
    wsr     a2, ccompare1
163
    addi    a2, a2, 20
164
    wsr     a2, ccompare0
165
    rsync
166
    rsr     a2, interrupt
167
    assert  eqi, a2, 0
168

    
169
    movi    a2, 0x40
170
    wsr     a2, intenable
171
    waiti   0
172
    test_fail
173
2:
174
    rsr     a2, exccause
175
    assert  eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
176
test_end
177

    
178
test_suite_end