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" 7start 8 9///////////////////////////////////////////////////////////////////////////// 10///////////////////////// Include Files ///////////////////////////// 11///////////////////////////////////////////////////////////////////////////// 12 13include(std.inc) 14include(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 55INIT_R_REGS(0); 56 57 // Initialize Pregs 58INIT_P_REGS(0); 59 60 // Initialize ILBM Registers 61INIT_I_REGS(0); 62INIT_M_REGS(0); 63INIT_L_REGS(0); 64INIT_B_REGS(0); 65 66 // Initialize the Address of the Checkreg data segment 67 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 68CHECK_INIT(p5, 0x00BFFFFC); 69 70 // Setup User Stack 71LD32_LABEL(sp, USTACK); 72USP = SP; 73 74 // Setup Kernel Stack 75LD32_LABEL(sp, KSTACK); 76 77 // Setup Frame Pointer 78FP = SP; 79 80 // Setup Event Vector Table 81LD32(p0, EVT); 82 83LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 84 [ P0 ++ ] = R0; 85LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 86 [ P0 ++ ] = R0; 87LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 88 [ P0 ++ ] = R0; 89LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 90 [ P0 ++ ] = R0; 91 [ P0 ++ ] = R0; // IVT4 not used 92LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 93 [ P0 ++ ] = R0; 94LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 97 [ P0 ++ ] = R0; 98LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 99 [ P0 ++ ] = R0; 100LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 101 [ P0 ++ ] = R0; 102LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 103 [ P0 ++ ] = R0; 104LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 105 [ P0 ++ ] = R0; 106LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 107 [ P0 ++ ] = R0; 108LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 109 [ P0 ++ ] = R0; 110LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 111 [ P0 ++ ] = R0; 112LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 113 [ P0 ++ ] = R0; 114 115 // Setup the EVT_OVERRIDE MMR 116 R0 = 0; 117LD32(p0, EVT_OVERRIDE); 118 [ P0 ] = R0; 119 120 // Setup Interrupt Mask 121 R0 = -1; 122LD32(p0, IMASK); 123 [ P0 ] = R0; 124 125///////////////////////////////////////////////////////////////////////////// 126//////////////////////// CPLB Setup ///////////////////////////////////// 127///////////////////////////////////////////////////////////////////////////// 128 129 // Setup CPLB for Data Memory starting at 0x00F0_0000; 130WR_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 137WR_MMR(DCPLB_ADDR0, 0x00F00000, p0, r0); 138 139 // Enable CPLB's 140WR_MMR(DMEM_CONTROL, 0x0000000f, p0, r0); // ENDM = 1 141 // ENDCPLB = 1 142 // DMC = 11 143 // Sync it! 144CSYNC; 145 146 147 // Return to Supervisor Code 148RAISE 15; 149 150LD32_LABEL(r0, USER_CODE); 151RETI = R0; 152RTI; 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 171RTE; 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 187RTN; 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 203RTX; 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 219RTI; 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 235RTI; 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 251RTI; 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 267RTI; 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 283RTI; 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 299RTI; 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 315RTI; 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 331RTI; 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 347RTI; 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 363RTI; 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 379NOP; 380 P0 = 0x0100 (Z); 381 P0.H = 0x00f0; 382 R0 = [ P0 ++ ]; 383JUMP.S lab1; // Branch in EX1 384 385 386NOP; 387NOP; 388NOP; 389NOP; 390NOP; 391NOP; 392NOP; 393NOP; 394NOP; 395NOP; 396NOP; 397NOP; 398NOP; 399NOP; 400NOP; 401NOP; 402 403lab1: 404 P0 = 0x0200 (Z); 405 P0.H = 0x00f0; 406RTI; 407 R1 = [ P0 ++ ]; 408JUMP.S 8; // Branch in EX1 409NOP; 410NOP; 411NOP; 412 413RTI; 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 430NOP; 431NOP; 432NOP; 433NOP; 434dbg_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