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