1259698Sdim//Original:/proj/frio/dv/testcases/seq/se_cof/se_cof.dsp 2259698Sdim# mach: bfin 3259698Sdim# sim: --environment operating 4259698Sdim 5259698Sdim#include "test.h" 6259698Sdim.include "testutils.inc" 7259698Sdimstart 8259698Sdim 9259698Sdim///////////////////////////////////////////////////////////////////////////// 10280031Sdim///////////////////////// Include Files ///////////////////////////// 11280031Sdim///////////////////////////////////////////////////////////////////////////// 12259698Sdim 13259698Sdiminclude(std.inc) 14259698Sdiminclude(selfcheck.inc) 15259698Sdiminclude(symtable.inc) 16259698Sdiminclude(mmrs.inc) 17259698Sdim 18259698Sdim///////////////////////////////////////////////////////////////////////////// 19259698Sdim///////////////////////// Defines ///////////////////////////// 20259698Sdim///////////////////////////////////////////////////////////////////////////// 21259698Sdim 22259698Sdim#ifndef USER_CODE_SPACE 23259698Sdim#define USER_CODE_SPACE CODE_ADDR_1 // 24259698Sdim#endif 25259698Sdim#ifndef STACKSIZE 26259698Sdim#define STACKSIZE 0x00000010 27259698Sdim#endif 28276479Sdim#ifndef ITABLE 29259698Sdim#define ITABLE CODE_ADDR_2 // 30259698Sdim#endif 31280031Sdim 32280031Sdim///////////////////////////////////////////////////////////////////////////// 33280031Sdim///////////////////////// RESET ISR ///////////////////////////// 34259698Sdim///////////////////////////////////////////////////////////////////////////// 35259698Sdim 36259698Sdim RST_ISR : 37259698Sdim 38259698Sdim // Initialize Dregs 39276479SdimINIT_R_REGS(0); 40280031Sdim 41259698Sdim // Initialize Pregs 42276479SdimINIT_P_REGS(0); 43259698Sdim 44259698Sdim // Initialize ILBM Registers 45259698SdimINIT_I_REGS(0); 46259698SdimINIT_M_REGS(0); 47259698SdimINIT_L_REGS(0); 48259698SdimINIT_B_REGS(0); 49259698Sdim 50259698Sdim // Initialize the Address of the Checkreg data segment 51259698Sdim // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 52259698SdimCHECK_INIT_DEF(p5); //CHECK_INIT(p5, 0x00BFFFFC); 53259698Sdim 54259698Sdim // Setup User Stack 55259698SdimLD32_LABEL(sp, USTACK); 56259698SdimUSP = SP; 57259698Sdim 58276479Sdim // Setup Kernel Stack 59259698SdimLD32_LABEL(sp, KSTACK); 60259698Sdim 61259698Sdim // Setup Frame Pointer 62276479SdimFP = SP; 63259698Sdim 64259698Sdim // Setup Event Vector Table 65259698SdimLD32(p0, EVT0); 66259698Sdim 67259698SdimLD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 68259698Sdim [ P0 ++ ] = R0; 69259698SdimLD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 70259698Sdim [ P0 ++ ] = R0; 71259698SdimLD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 72259698Sdim [ P0 ++ ] = R0; 73259698SdimLD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 74259698Sdim [ P0 ++ ] = R0; 75259698Sdim [ P0 ++ ] = R0; // IVT4 not used 76259698SdimLD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 77259698Sdim [ P0 ++ ] = R0; 78259698SdimLD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 79259698Sdim [ P0 ++ ] = R0; 80259698SdimLD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 81259698Sdim [ P0 ++ ] = R0; 82259698SdimLD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 83259698Sdim [ P0 ++ ] = R0; 84LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 85 [ P0 ++ ] = R0; 86LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 87 [ P0 ++ ] = R0; 88LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 89 [ P0 ++ ] = R0; 90LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 91 [ P0 ++ ] = R0; 92LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 93 [ P0 ++ ] = R0; 94LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 97 [ P0 ++ ] = R0; 98 99 // Setup the EVT_OVERRIDE MMR 100 R0 = 0; 101LD32(p0, EVT_OVERRIDE); 102 [ P0 ] = R0; 103 104 // Setup Interrupt Mask 105 R0 = -1; 106LD32(p0, IMASK); 107 [ P0 ] = R0; 108 109 // Return to Supervisor Code 110RAISE 15; 111NOP; 112 113LD32_LABEL(r0, USER_CODE); 114RETI = R0; 115RTI; 116 117.dw 0xFFFF 118.dw 0xFFFF 119.dw 0xFFFF 120.dw 0xFFFF 121.dw 0xFFFF 122.dw 0xFFFF 123.dw 0xFFFF 124 125///////////////////////////////////////////////////////////////////////////// 126 127 128///////////////////////////////////////////////////////////////////////////// 129///////////////////////// EMU ISR ///////////////////////////// 130///////////////////////////////////////////////////////////////////////////// 131 132 EMU_ISR : 133 134RTE; 135 136.dw 0xFFFF 137.dw 0xFFFF 138.dw 0xFFFF 139.dw 0xFFFF 140.dw 0xFFFF 141.dw 0xFFFF 142.dw 0xFFFF 143 144///////////////////////////////////////////////////////////////////////////// 145///////////////////////// NMI ISR ///////////////////////////// 146///////////////////////////////////////////////////////////////////////////// 147 148 NMI_ISR : 149 150RTN; 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///////////////////////// EXC ISR ///////////////////////////// 162///////////////////////////////////////////////////////////////////////////// 163 164 EXC_ISR : 165 166RTX; 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///////////////////////// HWE ISR ///////////////////////////// 178///////////////////////////////////////////////////////////////////////////// 179 180 HWE_ISR : 181 182RTI; 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///////////////////////// TMR ISR ///////////////////////////// 194///////////////////////////////////////////////////////////////////////////// 195 196 TMR_ISR : 197 198RTI; 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///////////////////////// IGV7 ISR ///////////////////////////// 210///////////////////////////////////////////////////////////////////////////// 211 212 IGV7_ISR : 213 214RTI; 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///////////////////////// IGV8 ISR ///////////////////////////// 226///////////////////////////////////////////////////////////////////////////// 227 228 IGV8_ISR : 229 230RTI; 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///////////////////////// IGV9 ISR ///////////////////////////// 242///////////////////////////////////////////////////////////////////////////// 243 244 IGV9_ISR : 245 246RTI; 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///////////////////////// IGV10 ISR ///////////////////////////// 258///////////////////////////////////////////////////////////////////////////// 259 260 IGV10_ISR : 261 262RTI; 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///////////////////////// IGV11 ISR ///////////////////////////// 274///////////////////////////////////////////////////////////////////////////// 275 276 IGV11_ISR : 277 278RTI; 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///////////////////////// IGV12 ISR ///////////////////////////// 290///////////////////////////////////////////////////////////////////////////// 291 292 IGV12_ISR : 293 294RTI; 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///////////////////////// IGV13 ISR ///////////////////////////// 306///////////////////////////////////////////////////////////////////////////// 307 308 IGV13_ISR : 309 310RTI; 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///////////////////////// IGV14 ISR ///////////////////////////// 322///////////////////////////////////////////////////////////////////////////// 323 324 IGV14_ISR : 325 326RTI; 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///////////////////////// IGV15 ISR ///////////////////////////// 338///////////////////////////////////////////////////////////////////////////// 339 340 IGV15_ISR : 341 342NOP; 343 //lz(p0) = 0x0004; 344 //h(p0) = 0xffe0; 345LD32(p0, DMEM_CONTROL); 346CSYNC; 347 R0 = [ P0 ]; // MMR load will Stall 348JUMP.S lab1; // Branch in EX1 349 350 351NOP; 352NOP; 353NOP; 354NOP; 355NOP; 356NOP; 357NOP; 358NOP; 359NOP; 360NOP; 361NOP; 362NOP; 363NOP; 364NOP; 365NOP; 366NOP; 367 368lab1: 369 [ -- SP ] = ( R7:3 ); 370IF !CC JUMP 2; // Mispredicted branch; 371NOP; 372JUMP.S lab2; // Branch in EX1 373NOP; 374NOP; 375NOP; 376NOP; 377 378lab2: 379RTI; 380 381.dw 0xFFFF 382.dw 0xFFFF 383.dw 0xFFFF 384.dw 0xFFFF 385.dw 0xFFFF 386.dw 0xFFFF 387.dw 0xFFFF 388 389///////////////////////////////////////////////////////////////////////////// 390///////////////////////// USER CODE ///////////////////////////// 391///////////////////////////////////////////////////////////////////////////// 392 393 394 USER_CODE : 395 396NOP; 397NOP; 398NOP; 399NOP; 400dbg_pass; // Call Endtest Macro 401 402///////////////////////////////////////////////////////////////////////////// 403///////////////////////// DATA MEMRORY ///////////////////////////// 404///////////////////////////////////////////////////////////////////////////// 405 406.section MEM_DATA_ADDR_3 //.data 0x00F00100,"aw" 407.dd 0xdeadbeef; 408.section MEM_(DATA_ADDR_3 + 0x100) //.data 0x00F00200,"aw" 409.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 410.dd 0x02020202; 411.dd 0x03030303; 412.dd 0x04040404; 413 414// Define Kernal Stack 415.data 416 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 417 KSTACK : 418 419 .space (STACKSIZE); 420 USTACK : 421 422///////////////////////////////////////////////////////////////////////////// 423///////////////////////// END OF TEST ///////////////////////////// 424///////////////////////////////////////////////////////////////////////////// 425