mem1.ms revision 1.1 1 #mach: crisv10 crisv32
2 #sim(crisv10): --hw-device "/rv/trace? true"
3 #sim(crisv32): --hw-device "/rv/trace? true"
4 #output: /rv: WD\n
5 #output: /rv: REG R 0xd0000036\n
6 #output: /rv: := 0x76543210\n
7 #output: /rv: DMA W 0x20020..0x2003f\n
8 #output: /rv: 0x20020: 12 23 34 56\n
9 #output: /rv: 0x20024: 79 8a bd de\n
10 #output: /rv: 0x20028: fb ad ba db\n
11 #output: /rv: 0x2002c: ad 56 78 9a\n
12 #output: /rv: 0x20030: fd e1 23 45\n
13 #output: /rv: 0x20034: 66 54 32 1a\n
14 #output: /rv: 0x20038: ac cb be ed\n
15 #output: /rv: 0x2003c: db ed aa da\n
16 #output: /rv: REG R 0xd0000038\n
17 #output: /rv: := 0x76543211\n
18 #output: /rv: DMA R 0x20000..0x2001f\n
19 #output: /rv: 0x20000: aa 55 12 23\n
20 #output: /rv: 0x20004: 34 56 79 8a\n
21 #output: /rv: 0x20008: bd de fb ad\n
22 #output: /rv: 0x2000c: ba db ad 56\n
23 #output: /rv: 0x20010: 78 9a fd e1\n
24 #output: /rv: 0x20014: 23 45 66 54\n
25 #output: /rv: 0x20018: 32 1a ac cb\n
26 #output: /rv: 0x2001c: be ed db ed\n
27 #output: /rv: IRQ 0x8\n
28 #output: /rv: REG R 0xd0000038\n
29 #output: /rv: := 0x76543212\n
30 #output: pass\n
31
32 # Trivial test of DMA.
33
34 # Locations of IRQ notifiers above depend on when the simulator is
35 # polled; adjustments may be needed (after checking that no poll is
36 # gone due to a bug!)
37
38 #r W,
39 #r r,a8836,76543210
40 #r s,e020,12233456798abddefbadbadbad56789afde123456654321aaccbbeeddbedaada
41 #r r,a8838,76543211
42 #r l,e000,aa5512233456798abddefbadbadbad56789afde123456654321aaccbbeeddbed
43 #r I,8
44 #r r,a8838,76543212
45
46 .include "testutils.inc"
47 start
48 test_h_mem 0x76543210 0xd0000036
49
50 move.d 0x2003f,$r1
51 move.d 0x10000,$r3
52 0:
53 test.b [$r1]
54 bne 1f
55 subq 1,$r3
56 bne 0b
57 nop
58
59 1:
60 test_h_mem 0x56342312 0x20020
61 test_h_mem 0xdebd8a79 0x20024
62 test_h_mem 0xdbbaadfb 0x20028
63 test_h_mem 0x9a7856ad 0x2002c
64 test_h_mem 0x4523e1fd 0x20030
65 test_h_mem 0x1a325466 0x20034
66 test_h_mem 0xedbecbac 0x20038
67 test_h_mem 0xdaaaeddb 0x2003c
68
69 move.d 0x20020,$r0
70 move.d 0x20000,$r1
71 move.w 0x55aa,$r2
72 move.w $r2,[r1+]
73 .rept 8
74 move.d [$r0+],$r2
75 move.d $r2,[$r1+]
76 .endr
77
78 test_h_mem 0x76543211 0xd0000038
79
80 .if ..asm.arch.cris.v32
81 move irqvec1,$ebp
82 .else
83 move irqvec1,$ibr
84 .endif
85 ei
86 move.d 0x100000,$r9
87 0:
88 subq 1,$r9
89 bne 0b
90 nop
91 killme:
92 fail
93
94 irq0x34:
95 test_h_mem 0x76543212 0xd0000038
96 pass
97
98 .fill 65536*2+128,1,0
99
100 singlevec irqvec1,0x34,irq0x34
101