1//Original:/proj/frio/dv/testcases/seq/se_popkill/se_popkill.dsp 2// Description: Kill pops to sysregs in WB 3# mach: bfin 4# sim: --environment operating 5 6#include "test.h" 7.include "testutils.inc" 8start 9 10///////////////////////////////////////////////////////////////////////////// 11///////////////////////// Include Files ///////////////////////////// 12///////////////////////////////////////////////////////////////////////////// 13 14include(std.inc) 15include(selfcheck.inc) 16include(symtable.inc) 17 18///////////////////////////////////////////////////////////////////////////// 19///////////////////////// Defines ///////////////////////////// 20///////////////////////////////////////////////////////////////////////////// 21 22#ifndef USER_CODE_SPACE 23#define USER_CODE_SPACE CODE_ADDR_RST_1 // 24#endif 25#ifndef STACKSIZE 26#define STACKSIZE 0x00000010 27#endif 28#ifndef ITABLE 29#define ITABLE CODE_ADDR_RST_2 // 30#endif 31#ifndef EVT 32#define EVT 0xFFE02000 33#endif 34#ifndef EVT_OVERRIDE 35#define EVT_OVERRIDE 0xFFE02100 36#endif 37#ifndef IMASK 38#define IMASK 0xFFE02104 39#endif 40#ifndef DMEM_CONTROL 41#define DMEM_CONTROL 0xFFE00004 42#endif 43#ifndef DCPLB_ADDR0 44#define DCPLB_ADDR0 0xFFE00100 45#endif 46#ifndef DCPLB_DATA0 47#define DCPLB_DATA0 0xFFE00200 48#endif 49 50///////////////////////////////////////////////////////////////////////////// 51///////////////////////// RESET ISR ///////////////////////////// 52///////////////////////////////////////////////////////////////////////////// 53 54 RST_ISR : 55 56 // Initialize Dregs 57INIT_R_REGS(0); 58 59 // Initialize Pregs 60INIT_P_REGS(0); 61 62 // Initialize ILBM Registers 63INIT_I_REGS(0); 64INIT_M_REGS(0); 65INIT_L_REGS(0); 66INIT_B_REGS(0); 67 68 // Initialize the Address of the Checkreg data segment 69 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 70CHECK_INIT_DEF(p5); //CHECK_INIT(p5, 0x00BFFFFC); 71 72 // Setup User Stack 73LD32_LABEL(sp, USTACK); 74USP = SP; 75 76 // Setup Kernel Stack 77LD32_LABEL(sp, KSTACK); 78 79 // Setup Frame Pointer 80FP = SP; 81 82 // Setup Event Vector Table 83LD32(p0, EVT); 84 85LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 86 [ P0 ++ ] = R0; 87LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 88 [ P0 ++ ] = R0; 89LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 90 [ P0 ++ ] = R0; 91LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 92 [ P0 ++ ] = R0; 93 [ P0 ++ ] = R0; // IVT4 not used 94LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 97 [ P0 ++ ] = R0; 98LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 99 [ P0 ++ ] = R0; 100LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 101 [ P0 ++ ] = R0; 102LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 103 [ P0 ++ ] = R0; 104LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 105 [ P0 ++ ] = R0; 106LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 107 [ P0 ++ ] = R0; 108LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 109 [ P0 ++ ] = R0; 110LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 111 [ P0 ++ ] = R0; 112LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 113 [ P0 ++ ] = R0; 114LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 115 [ P0 ++ ] = R0; 116 117 // Setup the EVT_OVERRIDE MMR 118 R0 = 0; 119LD32(p0, EVT_OVERRIDE); 120 [ P0 ] = R0; 121 122 // Setup Interrupt Mask 123 R0 = -1; 124LD32(p0, IMASK); 125 [ P0 ] = R0; 126 127///////////////////////////////////////////////////////////////////////////// 128//////////////////////// CPLB Setup ///////////////////////////////////// 129///////////////////////////////////////////////////////////////////////////// 130 131 // Setup CPLB for Data Memory starting at 0x00F0_0000; 132WR_MMR(DCPLB_DATA0, DATA_ADDR_1, p0, r0); 133 //WR_MMR(DCPLB_DATA0, 0x00031005, p0, r0); // Page Size = 4MB 134 // CPLB_L1_CHLB = 1 135 // CPLB_USER_RD = 1 136 // CPLB_VALID = 1 137 // 138 139 // Setup CPLB Address to point to 0x00F0_0000 140WR_MMR(DCPLB_ADDR0, DATA_ADDR_2, p0, r0); 141 //WR_MMR(DCPLB_ADDR0, 0x00F00000, p0, r0); 142 143 // Enable CPLB's 144WR_MMR(DMEM_CONTROL, DATA_ADDR_3, p0, r0); 145 //WR_MMR(DMEM_CONTROL, 0x0000000f, p0, r0); // ENDM = 1 146 // ENDCPLB = 1 147 // DMC = 11 148 // Sync it! 149CSYNC; 150 151 152 // Return to Supervisor Code 153RAISE 15; 154 155LD32_LABEL(r0, USER_CODE); 156RETI = R0; 157RTI; 158 159.dw 0xFFFF 160.dw 0xFFFF 161.dw 0xFFFF 162.dw 0xFFFF 163.dw 0xFFFF 164.dw 0xFFFF 165.dw 0xFFFF 166 167///////////////////////////////////////////////////////////////////////////// 168 169 170///////////////////////////////////////////////////////////////////////////// 171///////////////////////// EMU ISR ///////////////////////////// 172///////////////////////////////////////////////////////////////////////////// 173 174 EMU_ISR : 175 176RTE; 177 178.dw 0xFFFF 179.dw 0xFFFF 180.dw 0xFFFF 181.dw 0xFFFF 182.dw 0xFFFF 183.dw 0xFFFF 184.dw 0xFFFF 185 186///////////////////////////////////////////////////////////////////////////// 187///////////////////////// NMI ISR ///////////////////////////// 188///////////////////////////////////////////////////////////////////////////// 189 190 NMI_ISR : 191 192RTN; 193 194.dw 0xFFFF 195.dw 0xFFFF 196.dw 0xFFFF 197.dw 0xFFFF 198.dw 0xFFFF 199.dw 0xFFFF 200.dw 0xFFFF 201 202///////////////////////////////////////////////////////////////////////////// 203///////////////////////// EXC ISR ///////////////////////////// 204///////////////////////////////////////////////////////////////////////////// 205 206 EXC_ISR : 207 208 R3 = SEQSTAT; 209 R4 = RETX; 210 R4 += 8; 211RETX = R4; 212RTX; 213 214.dw 0xFFFF 215.dw 0xFFFF 216.dw 0xFFFF 217.dw 0xFFFF 218.dw 0xFFFF 219.dw 0xFFFF 220.dw 0xFFFF 221 222///////////////////////////////////////////////////////////////////////////// 223///////////////////////// HWE ISR ///////////////////////////// 224///////////////////////////////////////////////////////////////////////////// 225 226 HWE_ISR : 227 228RTI; 229 230.dw 0xFFFF 231.dw 0xFFFF 232.dw 0xFFFF 233.dw 0xFFFF 234.dw 0xFFFF 235.dw 0xFFFF 236.dw 0xFFFF 237 238///////////////////////////////////////////////////////////////////////////// 239///////////////////////// TMR ISR ///////////////////////////// 240///////////////////////////////////////////////////////////////////////////// 241 242 TMR_ISR : 243 244RTI; 245 246.dw 0xFFFF 247.dw 0xFFFF 248.dw 0xFFFF 249.dw 0xFFFF 250.dw 0xFFFF 251.dw 0xFFFF 252.dw 0xFFFF 253 254///////////////////////////////////////////////////////////////////////////// 255///////////////////////// IGV7 ISR ///////////////////////////// 256///////////////////////////////////////////////////////////////////////////// 257 258 IGV7_ISR : 259 260RTI; 261 262.dw 0xFFFF 263.dw 0xFFFF 264.dw 0xFFFF 265.dw 0xFFFF 266.dw 0xFFFF 267.dw 0xFFFF 268.dw 0xFFFF 269 270///////////////////////////////////////////////////////////////////////////// 271///////////////////////// IGV8 ISR ///////////////////////////// 272///////////////////////////////////////////////////////////////////////////// 273 274 IGV8_ISR : 275 276RTI; 277 278.dw 0xFFFF 279.dw 0xFFFF 280.dw 0xFFFF 281.dw 0xFFFF 282.dw 0xFFFF 283.dw 0xFFFF 284.dw 0xFFFF 285 286///////////////////////////////////////////////////////////////////////////// 287///////////////////////// IGV9 ISR ///////////////////////////// 288///////////////////////////////////////////////////////////////////////////// 289 290 IGV9_ISR : 291 292RTI; 293 294.dw 0xFFFF 295.dw 0xFFFF 296.dw 0xFFFF 297.dw 0xFFFF 298.dw 0xFFFF 299.dw 0xFFFF 300.dw 0xFFFF 301 302///////////////////////////////////////////////////////////////////////////// 303///////////////////////// IGV10 ISR ///////////////////////////// 304///////////////////////////////////////////////////////////////////////////// 305 306 IGV10_ISR : 307 308RTI; 309 310.dw 0xFFFF 311.dw 0xFFFF 312.dw 0xFFFF 313.dw 0xFFFF 314.dw 0xFFFF 315.dw 0xFFFF 316.dw 0xFFFF 317 318///////////////////////////////////////////////////////////////////////////// 319///////////////////////// IGV11 ISR ///////////////////////////// 320///////////////////////////////////////////////////////////////////////////// 321 322 IGV11_ISR : 323 324RTI; 325 326.dw 0xFFFF 327.dw 0xFFFF 328.dw 0xFFFF 329.dw 0xFFFF 330.dw 0xFFFF 331.dw 0xFFFF 332.dw 0xFFFF 333 334///////////////////////////////////////////////////////////////////////////// 335///////////////////////// IGV12 ISR ///////////////////////////// 336///////////////////////////////////////////////////////////////////////////// 337 338 IGV12_ISR : 339 340RTI; 341 342.dw 0xFFFF 343.dw 0xFFFF 344.dw 0xFFFF 345.dw 0xFFFF 346.dw 0xFFFF 347.dw 0xFFFF 348.dw 0xFFFF 349 350///////////////////////////////////////////////////////////////////////////// 351///////////////////////// IGV13 ISR ///////////////////////////// 352///////////////////////////////////////////////////////////////////////////// 353 354 IGV13_ISR : 355 356RTI; 357 358.dw 0xFFFF 359.dw 0xFFFF 360.dw 0xFFFF 361.dw 0xFFFF 362.dw 0xFFFF 363.dw 0xFFFF 364.dw 0xFFFF 365 366///////////////////////////////////////////////////////////////////////////// 367///////////////////////// IGV14 ISR ///////////////////////////// 368///////////////////////////////////////////////////////////////////////////// 369 370 IGV14_ISR : 371 372RTI; 373 374.dw 0xFFFF 375.dw 0xFFFF 376.dw 0xFFFF 377.dw 0xFFFF 378.dw 0xFFFF 379.dw 0xFFFF 380.dw 0xFFFF 381 382///////////////////////////////////////////////////////////////////////////// 383///////////////////////// IGV15 ISR ///////////////////////////// 384///////////////////////////////////////////////////////////////////////////// 385 386 IGV15_ISR : 387 388NOP; 389ASTAT = R7; 390RETS = R7; 391LC0 = R7; 392LB0 = R7; 393LT0 = R7; 394LC1 = R7; 395LB1 = R7; 396LT1 = R7; 397CYCLES = R7; 398CYCLES2 = R7; 399SYSCFG = R7; 400RETN = R7; 401RETX = R7; 402RETE = R7; 403NOP; 404NOP; 405NOP; 406NOP; 407NOP; 408NOP; 409NOP; 410NOP; 411EXCPT 1; 412ASTAT = [ SP ++ ]; 413NOP; 414NOP; 415NOP; 416NOP; 417EXCPT 2; 418RETS = [ SP ++ ]; 419NOP; 420NOP; 421NOP; 422NOP; 423EXCPT 3; 424LC0 = [ SP ++ ]; 425NOP; 426NOP; 427NOP; 428NOP; 429EXCPT 4; 430LT0 = [ SP ++ ]; 431NOP; 432NOP; 433NOP; 434NOP; 435EXCPT 5; 436LB0 = [ SP ++ ]; 437NOP; 438NOP; 439NOP; 440NOP; 441EXCPT 6; 442LC1 = [ SP ++ ]; 443NOP; 444NOP; 445NOP; 446NOP; 447EXCPT 7; 448LB1 = [ SP ++ ]; 449NOP; 450NOP; 451NOP; 452NOP; 453EXCPT 8; 454LT1 = [ SP ++ ]; 455NOP; 456NOP; 457NOP; 458NOP; 459EXCPT 9; 460CYCLES = [ SP ++ ]; 461NOP; 462NOP; 463NOP; 464NOP; 465EXCPT 10; 466CYCLES2 = [ SP ++ ]; 467NOP; 468NOP; 469NOP; 470NOP; 471EXCPT 11; 472SYSCFG = [ SP ++ ]; 473NOP; 474NOP; 475NOP; 476NOP; 477EXCPT 12; 478RETI = [ SP ++ ]; 479NOP; 480NOP; 481NOP; 482NOP; 483EXCPT 13; 484RETX = [ SP ++ ]; 485NOP; 486NOP; 487NOP; 488NOP; 489EXCPT 14; 490RETN = [ SP ++ ]; 491NOP; 492NOP; 493NOP; 494NOP; 495EXCPT 15; 496RETE = [ SP ++ ]; 497NOP; 498NOP; 499NOP; 500NOP; 501 502NOP; 503NOP; 504NOP; 505NOP; 506 507 508RTI; 509 510.dw 0xFFFF 511.dw 0xFFFF 512.dw 0xFFFF 513.dw 0xFFFF 514.dw 0xFFFF 515.dw 0xFFFF 516.dw 0xFFFF 517 518///////////////////////////////////////////////////////////////////////////// 519///////////////////////// USER CODE ///////////////////////////// 520///////////////////////////////////////////////////////////////////////////// 521 522 523 USER_CODE : 524 525NOP; 526NOP; 527NOP; 528NOP; 529dbg_pass; // Call Endtest Macro 530 531///////////////////////////////////////////////////////////////////////////// 532///////////////////////// DATA MEMRORY ///////////////////////////// 533///////////////////////////////////////////////////////////////////////////// 534 535// Define Kernal Stack 536.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw" 537 .space (STACKSIZE); 538 KSTACK : 539 540 .space (STACKSIZE); 541 USTACK : 542 543.section MEM_DATA_ADDR_2 //.data 0x00F00100,"aw" 544.dd 0xdeadbeef; 545.dd 0xdeadbeef; 546.dd 0xdeadbeef; 547.dd 0xdeadbeef; 548.dd 0xdeadbeef; 549.dd 0xdeadbeef; 550.dd 0xdeadbeef; 551.dd 0xdeadbeef; 552.dd 0xdeadbeef; 553.dd 0xdeadbeef; 554.dd 0xdeadbeef; 555.dd 0xdeadbeef; 556.dd 0xdeadbeef; 557.dd 0xdeadbeef; 558.dd 0xdeadbeef; 559.dd 0xdeadbeef; 560.dd 0xdeadbeef; 561.dd 0xdeadbeef; 562.dd 0xdeadbeef; 563 564///////////////////////////////////////////////////////////////////////////// 565///////////////////////// END OF TEST ///////////////////////////// 566///////////////////////////////////////////////////////////////////////////// 567