1//Original:/proj/frio/dv/testcases/seq/se_popkill/se_popkill.dsp
2// Description: Kill pops to sysregs in WB
3# mach: bfin
4# sim: --environment operating
5
6#include "test.h"
7.include "testutils.inc"
8start
9
10/////////////////////////////////////////////////////////////////////////////
11///////////////////////// Include Files         /////////////////////////////
12/////////////////////////////////////////////////////////////////////////////
13
14include(std.inc)
15include(selfcheck.inc)
16include(symtable.inc)
17
18/////////////////////////////////////////////////////////////////////////////
19///////////////////////// Defines               /////////////////////////////
20/////////////////////////////////////////////////////////////////////////////
21
22#ifndef USER_CODE_SPACE
23#define USER_CODE_SPACE  CODE_ADDR_RST_1   //
24#endif
25#ifndef STACKSIZE
26#define STACKSIZE        0x00000010
27#endif
28#ifndef ITABLE
29#define ITABLE  CODE_ADDR_RST_2   //
30#endif
31#ifndef EVT
32#define EVT              0xFFE02000
33#endif
34#ifndef EVT_OVERRIDE
35#define EVT_OVERRIDE     0xFFE02100
36#endif
37#ifndef IMASK
38#define IMASK            0xFFE02104
39#endif
40#ifndef DMEM_CONTROL
41#define DMEM_CONTROL     0xFFE00004
42#endif
43#ifndef DCPLB_ADDR0
44#define DCPLB_ADDR0      0xFFE00100
45#endif
46#ifndef DCPLB_DATA0
47#define DCPLB_DATA0      0xFFE00200
48#endif
49
50/////////////////////////////////////////////////////////////////////////////
51///////////////////////// RESET ISR             /////////////////////////////
52/////////////////////////////////////////////////////////////////////////////
53
54 RST_ISR :
55
56    // Initialize Dregs
57INIT_R_REGS(0);
58
59    // Initialize Pregs
60INIT_P_REGS(0);
61
62    // Initialize ILBM Registers
63INIT_I_REGS(0);
64INIT_M_REGS(0);
65INIT_L_REGS(0);
66INIT_B_REGS(0);
67
68    // Initialize the Address of the Checkreg data segment
69    // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
70CHECK_INIT_DEF(p5); //CHECK_INIT(p5,   0x00BFFFFC);
71
72    // Setup User Stack
73LD32_LABEL(sp, USTACK);
74USP = SP;
75
76    // Setup Kernel Stack
77LD32_LABEL(sp, KSTACK);
78
79    // Setup Frame Pointer
80FP = SP;
81
82    // Setup Event Vector Table
83LD32(p0, EVT);
84
85LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
86    [ P0 ++ ] = R0;
87LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
88    [ P0 ++ ] = R0;
89LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
90    [ P0 ++ ] = R0;
91LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
92    [ P0 ++ ] = R0;
93    [ P0 ++ ] = R0;                // IVT4 not used
94LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
95    [ P0 ++ ] = R0;
96LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
97    [ P0 ++ ] = R0;
98LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
99    [ P0 ++ ] = R0;
100LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
101    [ P0 ++ ] = R0;
102LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
103    [ P0 ++ ] = R0;
104LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
105    [ P0 ++ ] = R0;
106LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
107    [ P0 ++ ] = R0;
108LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
109    [ P0 ++ ] = R0;
110LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
111    [ P0 ++ ] = R0;
112LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
113    [ P0 ++ ] = R0;
114LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
115    [ P0 ++ ] = R0;
116
117    // Setup the EVT_OVERRIDE MMR
118    R0 = 0;
119LD32(p0, EVT_OVERRIDE);
120    [ P0 ] = R0;
121
122    // Setup Interrupt Mask
123    R0 = -1;
124LD32(p0, IMASK);
125    [ P0 ] = R0;
126
127/////////////////////////////////////////////////////////////////////////////
128//////////////////////// CPLB Setup     /////////////////////////////////////
129/////////////////////////////////////////////////////////////////////////////
130
131    // Setup CPLB for Data Memory starting at 0x00F0_0000;
132WR_MMR(DCPLB_DATA0,     DATA_ADDR_1, p0, r0);
133   //WR_MMR(DCPLB_DATA0,     0x00031005, p0, r0);    // Page Size    = 4MB
134                                                    // CPLB_L1_CHLB = 1
135                                                    // CPLB_USER_RD = 1
136                                                    // CPLB_VALID   = 1
137                                                    //
138
139    // Setup CPLB Address to point to 0x00F0_0000
140WR_MMR(DCPLB_ADDR0,     DATA_ADDR_2, p0, r0);
141    //WR_MMR(DCPLB_ADDR0,     0x00F00000, p0, r0);
142
143    // Enable CPLB's
144WR_MMR(DMEM_CONTROL,    DATA_ADDR_3, p0, r0);
145    //WR_MMR(DMEM_CONTROL,    0x0000000f, p0, r0);    // ENDM    = 1
146                                                    // ENDCPLB = 1
147                                                    // DMC     = 11
148    // Sync it!
149CSYNC;
150
151
152    // Return to Supervisor Code
153RAISE 15;
154
155LD32_LABEL(r0, USER_CODE);
156RETI = R0;
157RTI;
158
159.dw 0xFFFF
160.dw 0xFFFF
161.dw 0xFFFF
162.dw 0xFFFF
163.dw 0xFFFF
164.dw 0xFFFF
165.dw 0xFFFF
166
167/////////////////////////////////////////////////////////////////////////////
168
169
170/////////////////////////////////////////////////////////////////////////////
171///////////////////////// EMU ISR               /////////////////////////////
172/////////////////////////////////////////////////////////////////////////////
173
174 EMU_ISR :
175
176RTE;
177
178.dw 0xFFFF
179.dw 0xFFFF
180.dw 0xFFFF
181.dw 0xFFFF
182.dw 0xFFFF
183.dw 0xFFFF
184.dw 0xFFFF
185
186/////////////////////////////////////////////////////////////////////////////
187///////////////////////// NMI ISR               /////////////////////////////
188/////////////////////////////////////////////////////////////////////////////
189
190 NMI_ISR :
191
192RTN;
193
194.dw 0xFFFF
195.dw 0xFFFF
196.dw 0xFFFF
197.dw 0xFFFF
198.dw 0xFFFF
199.dw 0xFFFF
200.dw 0xFFFF
201
202/////////////////////////////////////////////////////////////////////////////
203///////////////////////// EXC ISR               /////////////////////////////
204/////////////////////////////////////////////////////////////////////////////
205
206 EXC_ISR :
207
208    R3 = SEQSTAT;
209    R4 = RETX;
210    R4 += 8;
211RETX = R4;
212RTX;
213
214.dw 0xFFFF
215.dw 0xFFFF
216.dw 0xFFFF
217.dw 0xFFFF
218.dw 0xFFFF
219.dw 0xFFFF
220.dw 0xFFFF
221
222/////////////////////////////////////////////////////////////////////////////
223///////////////////////// HWE ISR               /////////////////////////////
224/////////////////////////////////////////////////////////////////////////////
225
226 HWE_ISR :
227
228RTI;
229
230.dw 0xFFFF
231.dw 0xFFFF
232.dw 0xFFFF
233.dw 0xFFFF
234.dw 0xFFFF
235.dw 0xFFFF
236.dw 0xFFFF
237
238/////////////////////////////////////////////////////////////////////////////
239///////////////////////// TMR ISR               /////////////////////////////
240/////////////////////////////////////////////////////////////////////////////
241
242 TMR_ISR :
243
244RTI;
245
246.dw 0xFFFF
247.dw 0xFFFF
248.dw 0xFFFF
249.dw 0xFFFF
250.dw 0xFFFF
251.dw 0xFFFF
252.dw 0xFFFF
253
254/////////////////////////////////////////////////////////////////////////////
255///////////////////////// IGV7 ISR              /////////////////////////////
256/////////////////////////////////////////////////////////////////////////////
257
258 IGV7_ISR :
259
260RTI;
261
262.dw 0xFFFF
263.dw 0xFFFF
264.dw 0xFFFF
265.dw 0xFFFF
266.dw 0xFFFF
267.dw 0xFFFF
268.dw 0xFFFF
269
270/////////////////////////////////////////////////////////////////////////////
271///////////////////////// IGV8 ISR              /////////////////////////////
272/////////////////////////////////////////////////////////////////////////////
273
274 IGV8_ISR :
275
276RTI;
277
278.dw 0xFFFF
279.dw 0xFFFF
280.dw 0xFFFF
281.dw 0xFFFF
282.dw 0xFFFF
283.dw 0xFFFF
284.dw 0xFFFF
285
286/////////////////////////////////////////////////////////////////////////////
287///////////////////////// IGV9 ISR              /////////////////////////////
288/////////////////////////////////////////////////////////////////////////////
289
290 IGV9_ISR :
291
292RTI;
293
294.dw 0xFFFF
295.dw 0xFFFF
296.dw 0xFFFF
297.dw 0xFFFF
298.dw 0xFFFF
299.dw 0xFFFF
300.dw 0xFFFF
301
302/////////////////////////////////////////////////////////////////////////////
303///////////////////////// IGV10 ISR             /////////////////////////////
304/////////////////////////////////////////////////////////////////////////////
305
306 IGV10_ISR :
307
308RTI;
309
310.dw 0xFFFF
311.dw 0xFFFF
312.dw 0xFFFF
313.dw 0xFFFF
314.dw 0xFFFF
315.dw 0xFFFF
316.dw 0xFFFF
317
318/////////////////////////////////////////////////////////////////////////////
319///////////////////////// IGV11 ISR             /////////////////////////////
320/////////////////////////////////////////////////////////////////////////////
321
322 IGV11_ISR :
323
324RTI;
325
326.dw 0xFFFF
327.dw 0xFFFF
328.dw 0xFFFF
329.dw 0xFFFF
330.dw 0xFFFF
331.dw 0xFFFF
332.dw 0xFFFF
333
334/////////////////////////////////////////////////////////////////////////////
335///////////////////////// IGV12 ISR             /////////////////////////////
336/////////////////////////////////////////////////////////////////////////////
337
338 IGV12_ISR :
339
340RTI;
341
342.dw 0xFFFF
343.dw 0xFFFF
344.dw 0xFFFF
345.dw 0xFFFF
346.dw 0xFFFF
347.dw 0xFFFF
348.dw 0xFFFF
349
350/////////////////////////////////////////////////////////////////////////////
351///////////////////////// IGV13 ISR             /////////////////////////////
352/////////////////////////////////////////////////////////////////////////////
353
354 IGV13_ISR :
355
356RTI;
357
358.dw 0xFFFF
359.dw 0xFFFF
360.dw 0xFFFF
361.dw 0xFFFF
362.dw 0xFFFF
363.dw 0xFFFF
364.dw 0xFFFF
365
366/////////////////////////////////////////////////////////////////////////////
367///////////////////////// IGV14 ISR             /////////////////////////////
368/////////////////////////////////////////////////////////////////////////////
369
370 IGV14_ISR :
371
372RTI;
373
374.dw 0xFFFF
375.dw 0xFFFF
376.dw 0xFFFF
377.dw 0xFFFF
378.dw 0xFFFF
379.dw 0xFFFF
380.dw 0xFFFF
381
382/////////////////////////////////////////////////////////////////////////////
383///////////////////////// IGV15 ISR             /////////////////////////////
384/////////////////////////////////////////////////////////////////////////////
385
386 IGV15_ISR :
387
388NOP;
389ASTAT = R7;
390RETS = R7;
391LC0 = R7;
392LB0 = R7;
393LT0 = R7;
394LC1 = R7;
395LB1 = R7;
396LT1 = R7;
397CYCLES = R7;
398CYCLES2 = R7;
399SYSCFG = R7;
400RETN = R7;
401RETX = R7;
402RETE = R7;
403NOP;
404NOP;
405NOP;
406NOP;
407NOP;
408NOP;
409NOP;
410NOP;
411EXCPT 1;
412ASTAT = [ SP ++ ];
413NOP;
414NOP;
415NOP;
416NOP;
417EXCPT 2;
418RETS = [ SP ++ ];
419NOP;
420NOP;
421NOP;
422NOP;
423EXCPT 3;
424LC0 = [ SP ++ ];
425NOP;
426NOP;
427NOP;
428NOP;
429EXCPT 4;
430LT0 = [ SP ++ ];
431NOP;
432NOP;
433NOP;
434NOP;
435EXCPT 5;
436LB0 = [ SP ++ ];
437NOP;
438NOP;
439NOP;
440NOP;
441EXCPT 6;
442LC1 = [ SP ++ ];
443NOP;
444NOP;
445NOP;
446NOP;
447EXCPT 7;
448LB1 = [ SP ++ ];
449NOP;
450NOP;
451NOP;
452NOP;
453EXCPT 8;
454LT1 = [ SP ++ ];
455NOP;
456NOP;
457NOP;
458NOP;
459EXCPT 9;
460CYCLES = [ SP ++ ];
461NOP;
462NOP;
463NOP;
464NOP;
465EXCPT 10;
466CYCLES2 = [ SP ++ ];
467NOP;
468NOP;
469NOP;
470NOP;
471EXCPT 11;
472SYSCFG = [ SP ++ ];
473NOP;
474NOP;
475NOP;
476NOP;
477EXCPT 12;
478RETI = [ SP ++ ];
479NOP;
480NOP;
481NOP;
482NOP;
483EXCPT 13;
484RETX = [ SP ++ ];
485NOP;
486NOP;
487NOP;
488NOP;
489EXCPT 14;
490RETN = [ SP ++ ];
491NOP;
492NOP;
493NOP;
494NOP;
495EXCPT 15;
496RETE = [ SP ++ ];
497NOP;
498NOP;
499NOP;
500NOP;
501
502NOP;
503NOP;
504NOP;
505NOP;
506
507
508RTI;
509
510.dw 0xFFFF
511.dw 0xFFFF
512.dw 0xFFFF
513.dw 0xFFFF
514.dw 0xFFFF
515.dw 0xFFFF
516.dw 0xFFFF
517
518/////////////////////////////////////////////////////////////////////////////
519///////////////////////// USER CODE             /////////////////////////////
520/////////////////////////////////////////////////////////////////////////////
521
522
523 USER_CODE :
524
525NOP;
526NOP;
527NOP;
528NOP;
529dbg_pass;        // Call Endtest Macro
530
531/////////////////////////////////////////////////////////////////////////////
532///////////////////////// DATA MEMRORY          /////////////////////////////
533/////////////////////////////////////////////////////////////////////////////
534
535// Define Kernal Stack
536.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
537    .space (STACKSIZE);
538     KSTACK :
539
540    .space (STACKSIZE);
541     USTACK :
542
543.section MEM_DATA_ADDR_2 //.data 0x00F00100,"aw"
544.dd 0xdeadbeef;
545.dd 0xdeadbeef;
546.dd 0xdeadbeef;
547.dd 0xdeadbeef;
548.dd 0xdeadbeef;
549.dd 0xdeadbeef;
550.dd 0xdeadbeef;
551.dd 0xdeadbeef;
552.dd 0xdeadbeef;
553.dd 0xdeadbeef;
554.dd 0xdeadbeef;
555.dd 0xdeadbeef;
556.dd 0xdeadbeef;
557.dd 0xdeadbeef;
558.dd 0xdeadbeef;
559.dd 0xdeadbeef;
560.dd 0xdeadbeef;
561.dd 0xdeadbeef;
562.dd 0xdeadbeef;
563
564/////////////////////////////////////////////////////////////////////////////
565///////////////////////// END OF TEST           /////////////////////////////
566/////////////////////////////////////////////////////////////////////////////
567