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" 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 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 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, 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 140WR_MMR_LABEL(DCPLB_ADDR0, data, p0, r0); 141 142 // Enable CPLB's 143WR_MMR(DMEM_CONTROL, 0x0000000f, p0, r0); // ENDM = 1 144 // ENDCPLB = 1 145 // DMC = 11 146 // Sync it! 147CSYNC; 148 149 150 // Return to Supervisor Code 151RAISE 15; 152 153LD32_LABEL(r0, USER_CODE); 154RETI = R0; 155RTI; 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 174RTE; 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 190RTN; 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 206RTX; 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 222RTI; 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 238RTI; 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 254RTI; 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 270RTI; 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 286RTI; 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 302RTI; 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 318RTI; 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 334RTI; 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 350RTI; 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 366RTI; 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 382NOP; 383 P0 = 0x0100 (Z); 384 P0.H = 0x00f0; 385JUMP.S lab1; // Branch in EX1 386 387 388NOP; 389NOP; 390NOP; 391NOP; 392NOP; 393NOP; 394NOP; 395NOP; 396NOP; 397NOP; 398NOP; 399NOP; 400NOP; 401NOP; 402NOP; 403NOP; 404 405lab1: 406 [ -- SP ] = ( R7:3 ); 407 P0 = 0x0200 (Z); 408 P0.H = 0x00f0; 409RTI; 410JUMP.S 8; // Branch in EX1 411NOP; 412NOP; 413NOP; 414 [ -- SP ] = ( R7:4 ); 415 416RTI; 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 433NOP; 434NOP; 435NOP; 436NOP; 437dbg_pass; // Call Endtest Macro 438 439///////////////////////////////////////////////////////////////////////////// 440///////////////////////// DATA MEMRORY ///////////////////////////// 441///////////////////////////////////////////////////////////////////////////// 442 443data: 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