1 //Original:/proj/frio/dv/testcases/seq/se_oneins_zoff/se_oneins_zoff.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 // Return to Supervisor Code 126 RAISE 15; 127 NOP; 128 129 LD32_LABEL(r0, USER_CODE); 130 RETI = R0; 131 RTI; 132 133 .dw 0xFFFF 134 .dw 0xFFFF 135 .dw 0xFFFF 136 .dw 0xFFFF 137 .dw 0xFFFF 138 .dw 0xFFFF 139 .dw 0xFFFF 140 141 ///////////////////////////////////////////////////////////////////////////// 142 143 144 ///////////////////////////////////////////////////////////////////////////// 145 ///////////////////////// EMU ISR ///////////////////////////// 146 ///////////////////////////////////////////////////////////////////////////// 147 148 EMU_ISR : 149 150 RTE; 151 152 .dw 0xFFFF 153 .dw 0xFFFF 154 .dw 0xFFFF 155 .dw 0xFFFF 156 .dw 0xFFFF 157 .dw 0xFFFF 158 .dw 0xFFFF 159 160 ///////////////////////////////////////////////////////////////////////////// 161 ///////////////////////// NMI ISR ///////////////////////////// 162 ///////////////////////////////////////////////////////////////////////////// 163 164 NMI_ISR : 165 166 RTN; 167 168 .dw 0xFFFF 169 .dw 0xFFFF 170 .dw 0xFFFF 171 .dw 0xFFFF 172 .dw 0xFFFF 173 .dw 0xFFFF 174 .dw 0xFFFF 175 176 ///////////////////////////////////////////////////////////////////////////// 177 ///////////////////////// EXC ISR ///////////////////////////// 178 ///////////////////////////////////////////////////////////////////////////// 179 180 EXC_ISR : 181 182 RTX; 183 184 .dw 0xFFFF 185 .dw 0xFFFF 186 .dw 0xFFFF 187 .dw 0xFFFF 188 .dw 0xFFFF 189 .dw 0xFFFF 190 .dw 0xFFFF 191 192 ///////////////////////////////////////////////////////////////////////////// 193 ///////////////////////// HWE ISR ///////////////////////////// 194 ///////////////////////////////////////////////////////////////////////////// 195 196 HWE_ISR : 197 198 RTI; 199 200 .dw 0xFFFF 201 .dw 0xFFFF 202 .dw 0xFFFF 203 .dw 0xFFFF 204 .dw 0xFFFF 205 .dw 0xFFFF 206 .dw 0xFFFF 207 208 ///////////////////////////////////////////////////////////////////////////// 209 ///////////////////////// TMR ISR ///////////////////////////// 210 ///////////////////////////////////////////////////////////////////////////// 211 212 TMR_ISR : 213 214 RTI; 215 216 .dw 0xFFFF 217 .dw 0xFFFF 218 .dw 0xFFFF 219 .dw 0xFFFF 220 .dw 0xFFFF 221 .dw 0xFFFF 222 .dw 0xFFFF 223 224 ///////////////////////////////////////////////////////////////////////////// 225 ///////////////////////// IGV7 ISR ///////////////////////////// 226 ///////////////////////////////////////////////////////////////////////////// 227 228 IGV7_ISR : 229 230 RTI; 231 232 .dw 0xFFFF 233 .dw 0xFFFF 234 .dw 0xFFFF 235 .dw 0xFFFF 236 .dw 0xFFFF 237 .dw 0xFFFF 238 .dw 0xFFFF 239 240 ///////////////////////////////////////////////////////////////////////////// 241 ///////////////////////// IGV8 ISR ///////////////////////////// 242 ///////////////////////////////////////////////////////////////////////////// 243 244 IGV8_ISR : 245 246 RTI; 247 248 .dw 0xFFFF 249 .dw 0xFFFF 250 .dw 0xFFFF 251 .dw 0xFFFF 252 .dw 0xFFFF 253 .dw 0xFFFF 254 .dw 0xFFFF 255 256 ///////////////////////////////////////////////////////////////////////////// 257 ///////////////////////// IGV9 ISR ///////////////////////////// 258 ///////////////////////////////////////////////////////////////////////////// 259 260 IGV9_ISR : 261 262 RTI; 263 264 .dw 0xFFFF 265 .dw 0xFFFF 266 .dw 0xFFFF 267 .dw 0xFFFF 268 .dw 0xFFFF 269 .dw 0xFFFF 270 .dw 0xFFFF 271 272 ///////////////////////////////////////////////////////////////////////////// 273 ///////////////////////// IGV10 ISR ///////////////////////////// 274 ///////////////////////////////////////////////////////////////////////////// 275 276 IGV10_ISR : 277 278 RTI; 279 280 .dw 0xFFFF 281 .dw 0xFFFF 282 .dw 0xFFFF 283 .dw 0xFFFF 284 .dw 0xFFFF 285 .dw 0xFFFF 286 .dw 0xFFFF 287 288 ///////////////////////////////////////////////////////////////////////////// 289 ///////////////////////// IGV11 ISR ///////////////////////////// 290 ///////////////////////////////////////////////////////////////////////////// 291 292 IGV11_ISR : 293 294 RTI; 295 296 .dw 0xFFFF 297 .dw 0xFFFF 298 .dw 0xFFFF 299 .dw 0xFFFF 300 .dw 0xFFFF 301 .dw 0xFFFF 302 .dw 0xFFFF 303 304 ///////////////////////////////////////////////////////////////////////////// 305 ///////////////////////// IGV12 ISR ///////////////////////////// 306 ///////////////////////////////////////////////////////////////////////////// 307 308 IGV12_ISR : 309 310 RTI; 311 312 .dw 0xFFFF 313 .dw 0xFFFF 314 .dw 0xFFFF 315 .dw 0xFFFF 316 .dw 0xFFFF 317 .dw 0xFFFF 318 .dw 0xFFFF 319 320 ///////////////////////////////////////////////////////////////////////////// 321 ///////////////////////// IGV13 ISR ///////////////////////////// 322 ///////////////////////////////////////////////////////////////////////////// 323 324 IGV13_ISR : 325 326 RTI; 327 328 .dw 0xFFFF 329 .dw 0xFFFF 330 .dw 0xFFFF 331 .dw 0xFFFF 332 .dw 0xFFFF 333 .dw 0xFFFF 334 .dw 0xFFFF 335 336 ///////////////////////////////////////////////////////////////////////////// 337 ///////////////////////// IGV14 ISR ///////////////////////////// 338 ///////////////////////////////////////////////////////////////////////////// 339 340 IGV14_ISR : 341 342 RTI; 343 344 .dw 0xFFFF 345 .dw 0xFFFF 346 .dw 0xFFFF 347 .dw 0xFFFF 348 .dw 0xFFFF 349 .dw 0xFFFF 350 .dw 0xFFFF 351 352 ///////////////////////////////////////////////////////////////////////////// 353 ///////////////////////// IGV15 ISR ///////////////////////////// 354 ///////////////////////////////////////////////////////////////////////////// 355 356 IGV15_ISR : 357 358 RTI; 359 360 .dw 0xFFFF 361 .dw 0xFFFF 362 .dw 0xFFFF 363 .dw 0xFFFF 364 .dw 0xFFFF 365 .dw 0xFFFF 366 .dw 0xFFFF 367 368 ///////////////////////////////////////////////////////////////////////////// 369 ///////////////////////// USER CODE ///////////////////////////// 370 ///////////////////////////////////////////////////////////////////////////// 371 372 373 USER_CODE : 374 375 P0 = 0x5 (Z); 376 P1 = 0xa (Z); 377 378 P2 = 0x0100 (Z); 379 P2.H = 0x00f0; 380 381 ///////////////////////////////////////////////////////////////////////////// 382 // Loop 0 (One instruction Zero-offset) 383 ///////////////////////////////////////////////////////////////////////////// 384 385 R0 = [ P2 ++ ]; 386 LSETUP ( L0T , L0T ) LC0 = P0; 387 L0T:R0 += 5; 388 389 R1 = [ P2 ++ ]; 390 NOP; 391 LSETUP ( L1T , L1T ) LC0 = P0; 392 L1T:R1 += 5; 393 394 R2 = [ P2 ++ ]; 395 NOP; 396 NOP; 397 LSETUP ( L2T , L2T ) LC0 = P0; 398 L2T:R2 += 5; 399 400 R3 = [ P2 ++ ]; 401 NOP; 402 NOP; 403 NOP; 404 LSETUP ( L3T , L3T ) LC0 = P0; 405 L3T:R3 += 5; 406 407 R4 = [ P2 ++ ]; 408 NOP; 409 NOP; 410 NOP; 411 NOP; 412 LSETUP ( L4T , L4T ) LC0 = P0; 413 L4T:R4 += 5; 414 415 416 ///////////////////////////////////////////////////////////////////////////// 417 // Loop 1 (One instruction Zero-offset) 418 ///////////////////////////////////////////////////////////////////////////// 419 420 R0 = [ P2 ++ ]; 421 LSETUP ( M0T , M0T ) LC1 = P0; 422 M0T:R0 += 5; 423 424 R1 = [ P2 ++ ]; 425 NOP; 426 LSETUP ( M1T , M1T ) LC1 = P0; 427 M1T:R1 += 5; 428 429 R2 = [ P2 ++ ]; 430 NOP; 431 NOP; 432 LSETUP ( M2T , M2T ) LC1 = P0; 433 M2T:R2 += 5; 434 435 R3 = [ P2 ++ ]; 436 NOP; 437 NOP; 438 NOP; 439 LSETUP ( M3T , M3T ) LC1 = P0; 440 M3T:R3 += 5; 441 442 R4 = [ P2 ++ ]; 443 NOP; 444 NOP; 445 NOP; 446 NOP; 447 LSETUP ( M4T , M4T ) LC1 = P0; 448 M4T:R4 += 5; 449 450 451 NOP; 452 NOP; 453 NOP; 454 dbg_pass; // Call Endtest Macro 455 456 ///////////////////////////////////////////////////////////////////////////// 457 ///////////////////////// DATA MEMRORY ///////////////////////////// 458 ///////////////////////////////////////////////////////////////////////////// 459 460 .section MEM_0x00F00100,"aw" 461 .dd 0x01010101; 462 .dd 0x02020202; 463 .dd 0x03030303; 464 .dd 0x04040404; 465 .dd 0x05050505; 466 .dd 0x06060606; 467 .dd 0x07070707; 468 .dd 0x08080808; 469 .dd 0x09090909; 470 .dd 0x0a0a0a0a; 471 .dd 0x0b0b0b0b; 472 .dd 0x0c0c0c0c; 473 .dd 0x0d0d0d0d; 474 .dd 0x0e0e0e0e; 475 .dd 0x0f0f0f0f; 476 477 // Define Kernal Stack 478 .section MEM_0x00F00210,"aw" 479 .space (STACKSIZE); 480 KSTACK : 481 482 .space (STACKSIZE); 483 USTACK : 484 485 ///////////////////////////////////////////////////////////////////////////// 486 ///////////////////////// END OF TEST ///////////////////////////// 487 ///////////////////////////////////////////////////////////////////////////// 488