📄 xllp_suspendresume.cod
字号:
000a0 e59f07a4 ldr r0, [pc, #0x7A4]
000a4 e5893000 str r3, [r9]
000a8 e597303c ldr r3, [r7, #0x3C]
000ac e59f9718 ldr r9, [pc, #0x718]
000b0 e5823000 str r3, [r2]
000b4 e597301c ldr r3, [r7, #0x1C]
000b8 e59f270c ldr r2, [pc, #0x70C]
000bc e5893010 str r3, [r9, #0x10]
000c0 e5973014 ldr r3, [r7, #0x14]
000c4 e2822004 add r2, r2, #4
000c8 e5892000 str r2, [r9]
000cc e1a02009 mov r2, r9
000d0 e582300c str r3, [r2, #0xC]
000d4 e597300c ldr r3, [r7, #0xC]
000d8 e5823008 str r3, [r2, #8]
000dc e5973024 ldr r3, [r7, #0x24]
000e0 e5823014 str r3, [r2, #0x14]
000e4 e597302c ldr r3, [r7, #0x2C]
000e8 e5823004 str r3, [r2, #4]
000ec e5973034 ldr r3, [r7, #0x34]
000f0 e5823018 str r3, [r2, #0x18]
000f4 e5973044 ldr r3, [r7, #0x44]
000f8 e5863000 str r3, [r6]
000fc e597204c ldr r2, [r7, #0x4C]
00100 e589301c str r3, [r9, #0x1C]
00104 e59f96bc ldr r9, [pc, #0x6BC]
00108 e2823020 add r3, r2, #0x20
0010c e58e2000 str r2, [lr]
00110 e5893000 str r3, [r9]
00114 e5973048 ldr r3, [r7, #0x48]
00118 e59f2670 ldr r2, [pc, #0x670]
0011c e2833020 add r3, r3, #0x20
00120 e5883000 str r3, [r8]
00124 e5943010 ldr r3, [r4, #0x10]
00128 e5813000 str r3, [r1]
0012c e5943000 ldr r3, [r4]
00130 e5823000 str r3, [r2]
00134 e594301c ldr r3, [r4, #0x1C]
00138 e59f2654 ldr r2, [pc, #0x654]
0013c e5823000 str r3, [r2]
00140 eb000000 bl xllp_LogMessage
; 516 : #else
; 517 : DBGMSG(("Xllp_SuspendResume: BSP_MAINSTONE not defined\r\n"));
; 518 : #endif
; 519 : //for(i=0;i<10;i++)
; 520 : // DBGMSG(("Xllp_SuspendResume: zlh test\r\n"));
; 521 :
; 522 : //OEMWriteDebugString(L"ABCD");
; 523 : //OALMSG(1, ( L"ERROR: OEMInit: failed to initialize interrupts.\r\n"));
; 524 :
; 525 : DBGMSG(("Xllp_SuspendResume: Entry: PCFR==x%08x,OSCC==x%08x,CCSR==x%08x,CCCR==x%08x\r\n",
; 526 : pPWRRegs->PCFR,pCLKRegs->oscc,pCLKRegs->ccsr,pCLKRegs->cccr));
00144 e59f3658 ldr r3, [pc, #0x658]
00148 e5932000 ldr r2, [r3]
0014c e59f3690 ldr r3, [pc, #0x690]
00150 e59f06f0 ldr r0, [pc, #0x6F0]
00154 e592e000 ldr lr, [r2]
00158 e5931000 ldr r1, [r3]
0015c e592300c ldr r3, [r2, #0xC]
00160 e5922008 ldr r2, [r2, #8]
00164 e591101c ldr r1, [r1, #0x1C]
00168 e58de000 str lr, [sp]
0016c eb000000 bl xllp_LogMessage
; 527 :
; 528 : DBGMSG(("Xllp_SuspendResume: Entry: CPSR==x%08x, SPSR=x%08x, SP=x%08x, pBCRegS=x%08x\r\n",
; 529 : entry_CPSR, entry_SPSR, entry_SP, pBCRegS));
00170 e59f3654 ldr r3, [pc, #0x654]
00174 e59f25e0 ldr r2, [pc, #0x5E0]
00178 e59b1000 ldr r1, [r11]
0017c e593e01c ldr lr, [r3, #0x1C]
00180 e5953000 ldr r3, [r5]
00184 e5922000 ldr r2, [r2]
00188 e59f06b4 ldr r0, [pc, #0x6B4]
0018c e58de000 str lr, [sp]
00190 eb000000 bl xllp_LogMessage
; 530 : DBGMSG(("Xllp_SuspendResume: Entry: RCNR=x%08x, RTAR=x%08x, RTSR=x%08x, PICR=x%08x\r\n",
; 531 : pRTCRegs->rcnr, pRTCRegs->rtar, pRTCRegs->rtsr, pRTCRegs->picr));
00194 e59f45d8 ldr r4, [pc, #0x5D8]
00198 e59f06a0 ldr r0, [pc, #0x6A0]
0019c e5941000 ldr r1, [r4]
001a0 e591e034 ldr lr, [r1, #0x34]
001a4 e5913008 ldr r3, [r1, #8]
001a8 e5912004 ldr r2, [r1, #4]
001ac e5911000 ldr r1, [r1]
001b0 e58de000 str lr, [sp]
001b4 eb000000 bl xllp_LogMessage
; 532 : DBGMSG(("Xllp_SuspendResume: Entry: RYAR1=x%08x, RDAR1=x%08x\r\n",
; 533 : pRTCRegs->ryar1, pRTCRegs->rdar1));
001b8 e5943000 ldr r3, [r4]
001bc e59f0678 ldr r0, [pc, #0x678]
001c0 e5932018 ldr r2, [r3, #0x18]
001c4 e593101c ldr r1, [r3, #0x1C]
001c8 eb000000 bl xllp_LogMessage
; 534 :
; 535 : DBGMSG(("Xllp_SuspendResume: Entry: OSCR0=x%08x, OSMR0=x%08x, OIER=x%08x\r\n",
; 536 : pOSTRegs->oscr0, pOSTRegs->osmr0, pOSTRegs->oier));
001cc e59a1000 ldr r1, [r10]
001d0 e59f0660 ldr r0, [pc, #0x660]
001d4 e591301c ldr r3, [r1, #0x1C]
001d8 e5912000 ldr r2, [r1]
001dc e5911010 ldr r1, [r1, #0x10]
001e0 eb000000 bl xllp_LogMessage
; 537 : DBGMSG(("Xllp_SuspendResume: Entry: OSMR0=x%08x, OSMR1=x%08x, OSMR2=x%08x, OSMR3=x%08x\r\n",
; 538 : pOSTRegs->osmr0, pOSTRegs->osmr1, pOSTRegs->osmr2, pOSTRegs->osmr3));
001e4 e59a1000 ldr r1, [r10]
001e8 e59f0644 ldr r0, [pc, #0x644]
001ec e591e00c ldr lr, [r1, #0xC]
001f0 e5913008 ldr r3, [r1, #8]
001f4 e5912004 ldr r2, [r1, #4]
001f8 e5911000 ldr r1, [r1]
001fc e58de000 str lr, [sp]
00200 eb000000 bl xllp_LogMessage
; 539 : DBGMSG(("Xllp_SuspendResume: Entry: OSMR4=x%08x, OSMR5=x%08x, OSMR6=x%08x, OSMR7=x%08x\r\n",
; 540 : pOSTRegs->osmr4, pOSTRegs->osmr5, pOSTRegs->osmr6, pOSTRegs->osmr7));
00204 e59a1000 ldr r1, [r10]
00208 e59f0620 ldr r0, [pc, #0x620]
0020c e591e08c ldr lr, [r1, #0x8C]
00210 e5913088 ldr r3, [r1, #0x88]
00214 e5912084 ldr r2, [r1, #0x84]
00218 e5911080 ldr r1, [r1, #0x80]
0021c e58de000 str lr, [sp]
00220 eb000000 bl xllp_LogMessage
; 541 : DBGMSG(("Xllp_SuspendResume: Entry: OSMR8=x%08x, OSMR9=x%08x, OSMR10=x%08x, OSMR11=x%08x\r\n",
; 542 : pOSTRegs->osmr8, pOSTRegs->osmr9, pOSTRegs->osmr10, pOSTRegs->osmr11));
00224 e59a1000 ldr r1, [r10]
00228 e59f05fc ldr r0, [pc, #0x5FC]
0022c e591e09c ldr lr, [r1, #0x9C]
00230 e5913098 ldr r3, [r1, #0x98]
00234 e5912094 ldr r2, [r1, #0x94]
00238 e5911090 ldr r1, [r1, #0x90]
0023c e58de000 str lr, [sp]
00240 eb000000 bl xllp_LogMessage
; 543 : DBGMSG(("Xllp_SuspendResume: Entry: ResumePhase2Data @ x%08x->x%08x\r\n",
; 544 : pResumePhase2Data, ResumePhase2DataPA));
00244 e5982000 ldr r2, [r8]
00248 e5991000 ldr r1, [r9]
0024c e59f05d4 ldr r0, [pc, #0x5D4]
00250 eb000000 bl xllp_LogMessage
; 545 : DBGMSG(("Xllp_SuspendResume: Entry: ICPR=x%08x, ICMR=x%08x\r\n",
; 546 : pINTCRegs->icpr, pINTCRegs->icmr));
00254 e59f2540 ldr r2, [pc, #0x540]
00258 e59f05c4 ldr r0, [pc, #0x5C4]
0025c e5923000 ldr r3, [r2]
00260 e5932004 ldr r2, [r3, #4]
00264 e5931010 ldr r1, [r3, #0x10]
00268 eb000000 bl xllp_LogMessage
; 547 : #ifdef BSP_MAINSTONE
; 548 : DBGMSG(("Xllp_SuspendResume: Entry: IMER=x%08x, ISCR=x%08x\r\n",
; 549 : pBCRegs->PIMER1, pBCRegs->PSCR1));
0026c e5963000 ldr r3, [r6]
00270 e59f05a8 ldr r0, [pc, #0x5A8]
00274 e59320d0 ldr r2, [r3, #0xD0]
00278 e59310c0 ldr r1, [r3, #0xC0]
0027c eb000000 bl xllp_LogMessage
; 550 : #endif // BSP_MAINSTONE
; 551 :
; 552 : XllpPWRSave(pOSDAddr->pPWRRegs, &PWRSave);
00280 e5971024 ldr r1, [r7, #0x24]
00284 e59f0550 ldr r0, [pc, #0x550]
00288 eb000000 bl PWRCopy
; 553 : XllpGPIOSave(pOSDAddr->pGPIORegs, &GPIOSave);
0028c e5970014 ldr r0, [r7, #0x14]
00290 e59f1510 ldr r1, [pc, #0x510]
00294 eb000000 bl XllpGPIOSave
; 554 : XllpINTCSave(pOSDAddr->pINTCRegs, &INTCSave);
00298 e597101c ldr r1, [r7, #0x1C]
0029c e59f04f4 ldr r0, [pc, #0x4F4]
002a0 eb000000 bl INTCCopy
; 555 : XllpCLKSave(pOSDAddr->pCLKRegs, &CLKSave);
002a4 e597302c ldr r3, [r7, #0x2C]
; 556 :
; 557 : #ifdef BSP_MAINSTONE
; 558 : //XllpBCRSave(pOSDAddr->pBCRegs, &BCRSave);
; 559 : #endif // BSP_MAINSTONE
; 560 :
; 561 : // Save CPU core registers
; 562 : //DBGMSG(("Xllp_SuspendResume: Saving mode specific core registers\r\n"));
; 563 :
; 564 : crsa_sp = &(crsa[DIMENSION(crsa)-1]);
002a8 e59f056c ldr r0, [pc, #0x56C]
002ac e59f14f8 ldr r1, [pc, #0x4F8]
002b0 e5933004 ldr r3, [r3, #4]
002b4 e59f455c ldr r4, [pc, #0x55C]
002b8 e28020fc add r2, r0, #0xFC
002bc e3c3333f bic r3, r3, #0x3F, 6
002c0 e5813004 str r3, [r1, #4]
; 565 : pFIQ_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_FIQ);
002c4 e3a01011 mov r1, #0x11
002c8 e28000fc add r0, r0, #0xFC
002cc e5842000 str r2, [r4]
002d0 eb000000 bl Xllp_SaveMSARMRegs
; 566 : FIQ_words = (crsa_sp - pFIQ_regs);
002d4 e5943000 ldr r3, [r4]
002d8 e1a0e000 mov lr, r0
002dc e59f6530 ldr r6, [pc, #0x530]
002e0 e59f2528 ldr r2, [pc, #0x528]
002e4 e043300e sub r3, r3, lr
002e8 e1a03143 mov r3, r3, asr #2
; 567 : //DBGMSG(("Xllp_SuspendResume: FIQ(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 568 : // XLLP_CPSR_Mode_FIQ, crsa_sp, pFIQ_regs, FIQ_words));
; 569 : crsa_sp = pFIQ_regs;
; 570 :
; 571 : pIRQ_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_IRQ);
002ec e3a01012 mov r1, #0x12
002f0 e5823000 str r3, [r2]
002f4 e586e000 str lr, [r6]
002f8 e584e000 str lr, [r4]
002fc eb000000 bl Xllp_SaveMSARMRegs
; 572 : IRQ_words = (crsa_sp - pIRQ_regs);
00300 e5943000 ldr r3, [r4]
00304 e1a0e000 mov lr, r0
00308 e59f74fc ldr r7, [pc, #0x4FC]
0030c e59f24f4 ldr r2, [pc, #0x4F4]
00310 e043300e sub r3, r3, lr
00314 e1a03143 mov r3, r3, asr #2
; 573 : //DBGMSG(("Xllp_SuspendResume: IRQ(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 574 : // XLLP_CPSR_Mode_IRQ, crsa_sp, pIRQ_regs, IRQ_words));
; 575 : crsa_sp = pIRQ_regs;
; 576 :
; 577 : pUND_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_UND);
00318 e3a0101b mov r1, #0x1B
0031c e5823000 str r3, [r2]
00320 e587e000 str lr, [r7]
00324 e584e000 str lr, [r4]
00328 eb000000 bl Xllp_SaveMSARMRegs
; 578 : UND_words = (crsa_sp - pUND_regs);
0032c e5943000 ldr r3, [r4]
00330 e1a0e000 mov lr, r0
00334 e59f5488 ldr r5, [pc, #0x488]
00338 e59f24c4 ldr r2, [pc, #0x4C4]
0033c e043300e sub r3, r3, lr
00340 e1a03143 mov r3, r3, asr #2
; 579 : //DBGMSG(("Xllp_SuspendResume: UND(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 580 : // XLLP_CPSR_Mode_UND, crsa_sp, pUND_regs, UND_words));
; 581 : crsa_sp = pUND_regs;
; 582 :
; 583 : pABT_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_ABT);
00344 e3a01017 mov r1, #0x17
00348 e5823000 str r3, [r2]
0034c e585e000 str lr, [r5]
00350 e584e000 str lr, [r4]
00354 eb000000 bl Xllp_SaveMSARMRegs
00358 e59f2460 ldr r2, [pc, #0x460]
; 584 : ABT_words = (crsa_sp - pABT_regs);
0035c e5943000 ldr r3, [r4]
00360 e1a0e000 mov lr, r0
00364 e582e000 str lr, [r2]
00368 e59f2490 ldr r2, [pc, #0x490]
0036c e043300e sub r3, r3, lr
00370 e1a03143 mov r3, r3, asr #2
; 585 : //DBGMSG(("Xllp_SuspendResume: ABT(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 586 : // XLLP_CPSR_Mode_ABT, crsa_sp, pABT_regs, ABT_words));
; 587 : crsa_sp = pABT_regs;
; 588 :
; 589 : pSVC_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_SVC);
00374 e3a01013 mov r1, #0x13
00378 e5823000 str r3, [r2]
0037c e584e000 str lr, [r4]
00380 eb000000 bl Xllp_SaveMSARMRegs
; 590 : SVC_words = (crsa_sp - pSVC_regs);
00384 e5943000 ldr r3, [r4]
00388 e1a0e000 mov lr, r0
0038c e59f5428 ldr r5, [pc, #0x428]
00390 e59f2464 ldr r2, [pc, #0x464]
00394 e043300e sub r3, r3, lr
00398 e1a03143 mov r3, r3, asr #2
; 591 : //DBGMSG(("Xllp_SuspendResume: SVC(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 592 : // XLLP_CPSR_Mode_SVC, crsa_sp, pSVC_regs, SVC_words));
; 593 : crsa_sp = pSVC_regs;
; 594 :
; 595 : pSYS_regs = Xllp_SaveMSARMRegs(crsa_sp, XLLP_CPSR_Mode_SYS);
0039c e3a0101f mov r1, #0x1F
003a0 e5823000 str r3, [r2]
003a4 e585e000 str lr, [r5]
003a8 e584e000 str lr, [r4]
003ac eb000000 bl Xllp_SaveMSARMRegs
; 596 : SYS_words = (crsa_sp - pSYS_regs);
003b0 e5943000 ldr r3, [r4]
003b4 e1a01000 mov r1, r0
003b8 e59f2438 ldr r2, [pc, #0x438]
003bc e0433001 sub r3, r3, r1
; 597 : //DBGMSG(("Xllp_SuspendResume: SYS(x%x) saved: x%08x-x%08x, (%d)\r\n",
; 598 : // XLLP_CPSR_Mode_SYS, crsa_sp, pSYS_regs, SYS_words));
; 599 : crsa_sp = pSYS_regs;
; 600 :
; 601 : DBGMSG(("Xllp_SuspendResume: mode specific core registers saved\r\n"));
003c0 e1a03143 mov r3, r3, asr #2
003c4 e59fe3ec ldr lr, [pc, #0x3EC]
003c8 e59f0424 ldr r0, [pc, #0x424]
003cc e5823000 str r3, [r2]
003d0 e58e1000 str r1, [lr]
003d4 e5841000 str r1, [r4]
003d8 eb000000 bl xllp_LogMessage
; 602 : #if 0 // ENABLE_DEBUG_MESSAGES // debug code
; 603 : {
; 604 : int i;
; 605 : unsigned long *p;
; 606 : unsigned long words;
; 607 :
; 608 : p = (unsigned long *)pFIQ_regs;
; 609 : words = FIQ_words;
; 610 : DBGMSG(("Xllp_SuspendResume: FIQ@x%08x (%d)\r\n", p, words));
; 611 : for (i = words-1; i>=0; i--)
; 612 : DBGMSG((" x%08x:x%08x\r\n", &p[i], p[i]));
; 613 :
; 614 : p = (unsigned long *)pIRQ_regs;
; 615 : words = IRQ_words;
; 616 : DBGMSG(("Xllp_SuspendResume: IRQ@x%08x (%d)\r\n", p, words));
; 617 : for (i = words-1; i>=0; i--)
; 618 : DBGMSG((" x%08x:x%08x\r\n", &p[i], p[i]));
; 619 :
; 620 : p = (unsigned long *)pUND_regs;
; 621 : words = UND_words;
; 622 : DBGMSG(("Xllp_SuspendResume: UND@x%08x (%d)\r\n", p, words));
; 623 : for (i = words-1; i>=0; i--)
; 624 : DBGMSG((" x%08x:x%08x\r\n", &p[i], p[i]));
; 625 :
; 626 : p = (unsigned long *)pABT_regs;
; 627 : words = ABT_words;
; 628 : DBGMSG(("Xllp_SuspendResume: ABT@x%08x (%d)\r\n", p, words));
; 629 : for (i = words-1; i>=0; i--)
; 630 : DBGMSG((" x%08x:x%08x\r\n", &p[i], p[i]));
; 631 :
; 632 : p = (unsigned long *)pSVC_regs;
; 633 : wor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -