Home | History | Annotate | Line # | Download | only in bfin
      1 //Original:/proj/frio/dv/testcases/seq/se_brtarget_stall/se_brtarget_stall.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        0x00000020
     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,     0x0003109d, p0, r0);    // Page Size    = 4MB
    131                                                     // CPLB_L1_CHLB = 1
    132                                                     // CPLB_DIRTY   = 1
    133                                                     // CPLB_USER_RD = 1
    134                                                     // CPLB_USER_WR = 1
    135                                                     // CPLB_SUPV_WR = 1
    136                                                     // CPLB_VALID   = 1
    137                                                     //
    138 
    139     // Setup CPLB Address to point to 0x00F0_0000
    140 WR_MMR_LABEL(DCPLB_ADDR0,     data, p0, r0);
    141 
    142     // Enable CPLB's
    143 WR_MMR(DMEM_CONTROL,    0x0000000f, p0, r0);    // ENDM    = 1
    144                                                     // ENDCPLB = 1
    145                                                     // DMC     = 11
    146     // Sync it!
    147 CSYNC;
    148 
    149 
    150     // Return to Supervisor Code
    151 RAISE 15;
    152 
    153 LD32_LABEL(r0, USER_CODE);
    154 RETI = R0;
    155 RTI;
    156 
    157 .dw 0xFFFF
    158 .dw 0xFFFF
    159 .dw 0xFFFF
    160 .dw 0xFFFF
    161 .dw 0xFFFF
    162 .dw 0xFFFF
    163 .dw 0xFFFF
    164 
    165 /////////////////////////////////////////////////////////////////////////////
    166 
    167 
    168 /////////////////////////////////////////////////////////////////////////////
    169 ///////////////////////// EMU ISR               /////////////////////////////
    170 /////////////////////////////////////////////////////////////////////////////
    171 
    172  EMU_ISR :
    173 
    174 RTE;
    175 
    176 .dw 0xFFFF
    177 .dw 0xFFFF
    178 .dw 0xFFFF
    179 .dw 0xFFFF
    180 .dw 0xFFFF
    181 .dw 0xFFFF
    182 .dw 0xFFFF
    183 
    184 /////////////////////////////////////////////////////////////////////////////
    185 ///////////////////////// NMI ISR               /////////////////////////////
    186 /////////////////////////////////////////////////////////////////////////////
    187 
    188  NMI_ISR :
    189 
    190 RTN;
    191 
    192 .dw 0xFFFF
    193 .dw 0xFFFF
    194 .dw 0xFFFF
    195 .dw 0xFFFF
    196 .dw 0xFFFF
    197 .dw 0xFFFF
    198 .dw 0xFFFF
    199 
    200 /////////////////////////////////////////////////////////////////////////////
    201 ///////////////////////// EXC ISR               /////////////////////////////
    202 /////////////////////////////////////////////////////////////////////////////
    203 
    204  EXC_ISR :
    205 
    206 RTX;
    207 
    208 .dw 0xFFFF
    209 .dw 0xFFFF
    210 .dw 0xFFFF
    211 .dw 0xFFFF
    212 .dw 0xFFFF
    213 .dw 0xFFFF
    214 .dw 0xFFFF
    215 
    216 /////////////////////////////////////////////////////////////////////////////
    217 ///////////////////////// HWE ISR               /////////////////////////////
    218 /////////////////////////////////////////////////////////////////////////////
    219 
    220  HWE_ISR :
    221 
    222 RTI;
    223 
    224 .dw 0xFFFF
    225 .dw 0xFFFF
    226 .dw 0xFFFF
    227 .dw 0xFFFF
    228 .dw 0xFFFF
    229 .dw 0xFFFF
    230 .dw 0xFFFF
    231 
    232 /////////////////////////////////////////////////////////////////////////////
    233 ///////////////////////// TMR ISR               /////////////////////////////
    234 /////////////////////////////////////////////////////////////////////////////
    235 
    236  TMR_ISR :
    237 
    238 RTI;
    239 
    240 .dw 0xFFFF
    241 .dw 0xFFFF
    242 .dw 0xFFFF
    243 .dw 0xFFFF
    244 .dw 0xFFFF
    245 .dw 0xFFFF
    246 .dw 0xFFFF
    247 
    248 /////////////////////////////////////////////////////////////////////////////
    249 ///////////////////////// IGV7 ISR              /////////////////////////////
    250 /////////////////////////////////////////////////////////////////////////////
    251 
    252  IGV7_ISR :
    253 
    254 RTI;
    255 
    256 .dw 0xFFFF
    257 .dw 0xFFFF
    258 .dw 0xFFFF
    259 .dw 0xFFFF
    260 .dw 0xFFFF
    261 .dw 0xFFFF
    262 .dw 0xFFFF
    263 
    264 /////////////////////////////////////////////////////////////////////////////
    265 ///////////////////////// IGV8 ISR              /////////////////////////////
    266 /////////////////////////////////////////////////////////////////////////////
    267 
    268  IGV8_ISR :
    269 
    270 RTI;
    271 
    272 .dw 0xFFFF
    273 .dw 0xFFFF
    274 .dw 0xFFFF
    275 .dw 0xFFFF
    276 .dw 0xFFFF
    277 .dw 0xFFFF
    278 .dw 0xFFFF
    279 
    280 /////////////////////////////////////////////////////////////////////////////
    281 ///////////////////////// IGV9 ISR              /////////////////////////////
    282 /////////////////////////////////////////////////////////////////////////////
    283 
    284  IGV9_ISR :
    285 
    286 RTI;
    287 
    288 .dw 0xFFFF
    289 .dw 0xFFFF
    290 .dw 0xFFFF
    291 .dw 0xFFFF
    292 .dw 0xFFFF
    293 .dw 0xFFFF
    294 .dw 0xFFFF
    295 
    296 /////////////////////////////////////////////////////////////////////////////
    297 ///////////////////////// IGV10 ISR             /////////////////////////////
    298 /////////////////////////////////////////////////////////////////////////////
    299 
    300  IGV10_ISR :
    301 
    302 RTI;
    303 
    304 .dw 0xFFFF
    305 .dw 0xFFFF
    306 .dw 0xFFFF
    307 .dw 0xFFFF
    308 .dw 0xFFFF
    309 .dw 0xFFFF
    310 .dw 0xFFFF
    311 
    312 /////////////////////////////////////////////////////////////////////////////
    313 ///////////////////////// IGV11 ISR             /////////////////////////////
    314 /////////////////////////////////////////////////////////////////////////////
    315 
    316  IGV11_ISR :
    317 
    318 RTI;
    319 
    320 .dw 0xFFFF
    321 .dw 0xFFFF
    322 .dw 0xFFFF
    323 .dw 0xFFFF
    324 .dw 0xFFFF
    325 .dw 0xFFFF
    326 .dw 0xFFFF
    327 
    328 /////////////////////////////////////////////////////////////////////////////
    329 ///////////////////////// IGV12 ISR             /////////////////////////////
    330 /////////////////////////////////////////////////////////////////////////////
    331 
    332  IGV12_ISR :
    333 
    334 RTI;
    335 
    336 .dw 0xFFFF
    337 .dw 0xFFFF
    338 .dw 0xFFFF
    339 .dw 0xFFFF
    340 .dw 0xFFFF
    341 .dw 0xFFFF
    342 .dw 0xFFFF
    343 
    344 /////////////////////////////////////////////////////////////////////////////
    345 ///////////////////////// IGV13 ISR             /////////////////////////////
    346 /////////////////////////////////////////////////////////////////////////////
    347 
    348  IGV13_ISR :
    349 
    350 RTI;
    351 
    352 .dw 0xFFFF
    353 .dw 0xFFFF
    354 .dw 0xFFFF
    355 .dw 0xFFFF
    356 .dw 0xFFFF
    357 .dw 0xFFFF
    358 .dw 0xFFFF
    359 
    360 /////////////////////////////////////////////////////////////////////////////
    361 ///////////////////////// IGV14 ISR             /////////////////////////////
    362 /////////////////////////////////////////////////////////////////////////////
    363 
    364  IGV14_ISR :
    365 
    366 RTI;
    367 
    368 .dw 0xFFFF
    369 .dw 0xFFFF
    370 .dw 0xFFFF
    371 .dw 0xFFFF
    372 .dw 0xFFFF
    373 .dw 0xFFFF
    374 .dw 0xFFFF
    375 
    376 /////////////////////////////////////////////////////////////////////////////
    377 ///////////////////////// IGV15 ISR             /////////////////////////////
    378 /////////////////////////////////////////////////////////////////////////////
    379 
    380  IGV15_ISR :
    381 
    382 NOP;
    383     P0 = 0x0100 (Z);
    384     P0.H = 0x00f0;
    385 JUMP.S lab1; // Branch in EX1
    386 
    387 
    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 NOP;
    403 NOP;
    404 
    405 lab1:
    406     [ -- SP ] = ( R7:3 );
    407     P0 = 0x0200 (Z);
    408     P0.H = 0x00f0;
    409 RTI;
    410 JUMP.S 8; // Branch in EX1
    411 NOP;
    412 NOP;
    413 NOP;
    414     [ -- SP ] = ( R7:4 );
    415 
    416 RTI;
    417 
    418 .dw 0xFFFF
    419 .dw 0xFFFF
    420 .dw 0xFFFF
    421 .dw 0xFFFF
    422 .dw 0xFFFF
    423 .dw 0xFFFF
    424 .dw 0xFFFF
    425 
    426 /////////////////////////////////////////////////////////////////////////////
    427 ///////////////////////// USER CODE             /////////////////////////////
    428 /////////////////////////////////////////////////////////////////////////////
    429 
    430 
    431  USER_CODE :
    432 
    433 NOP;
    434 NOP;
    435 NOP;
    436 NOP;
    437 dbg_pass;        // Call Endtest Macro
    438 
    439 /////////////////////////////////////////////////////////////////////////////
    440 ///////////////////////// DATA MEMRORY          /////////////////////////////
    441 /////////////////////////////////////////////////////////////////////////////
    442 
    443 data:
    444 .section MEM_0x00F00100,"aw"
    445 .dd 0xdeadbeef;
    446 .section MEM_0x00F00200,"aw"
    447 .dd 0x01010101;
    448 .dd 0x02020202;
    449 .dd 0x03030303;
    450 .dd 0x04040404;
    451 
    452 // Define Kernal Stack
    453 .data
    454     .space (STACKSIZE);
    455      KSTACK :
    456 
    457     .space (STACKSIZE);
    458      USTACK :
    459 
    460 /////////////////////////////////////////////////////////////////////////////
    461 ///////////////////////// END OF TEST           /////////////////////////////
    462 /////////////////////////////////////////////////////////////////////////////
    463