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