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