📄 cfw_platform.cod
字号:
00060 e5824000 str r4, [r2]
00064 e1a0e00f mov lr, pc
00068 e12fff13 bx r3
; 266 : InitClock();
0006c eb000000 bl InitClock
; 267 :
; 268 : //
; 269 : // Initialize interrupts.
; 270 : //
; 271 : OEMInitInterrupts();
00070 eb000000 bl OEMInitInterrupts
; 272 :
; 273 : OEMPowerManagerInit();
00074 eb000000 bl OEMPowerManagerInit
; 274 : // Only support one core module (0) under CE - interrupts come in on IRQ0.
; 275 : // ARM doesn't use HookInterrupt - OEMInterruptHandler called by kernel
; 276 : // instead.
; 277 :
; 278 : #ifdef DEBUG
; 279 : // dpCurSettings.ulZoneMask = 0xffffffff;
; 280 : lpWriteDebugStringFunc(TEXT("Firmware Init Done.\r\n"));
; 281 : #endif
; 282 :
; 283 : //
; 284 : // Initialize EDBG/KITL if a bootloader started us.
; 285 : //
; 286 : //if (pBootArgs->ucLoaderFlags & LDRFL_USE_EDBG)
; 287 : // InitDebugEther();
; 288 :
; 289 : if((DRIVER_GLOBALS_POINTER)->eth.EbootMagicNum == EBOOT_MAGIC_NUM ||
; 290 : (DRIVER_GLOBALS_POINTER)->eth.EbootMagicNum == PARALLEL_MAGIC_NUM)
00078 e3a0320a mov r3, #0xA, 4
0007c e3833b22 orr r3, r3, #0x22, 22
00080 e5931000 ldr r1, [r3]
00084 e59f205c ldr r2, [pc, #0x5C]
00088 e1510002 cmp r1, r2
0008c 0a000002 beq |$L16584|
00090 e59f304c ldr r3, [pc, #0x4C]
00094 e1510003 cmp r1, r3
00098 1a000000 bne |$L16583|
0009c |$L16584|
; 291 : {
; 292 : InitDebugEther();
0009c eb000000 bl InitDebugEther
000a0 |$L16583|
; 293 : }
; 294 :
; 295 : #ifdef EP93XX_CRUNCH
; 296 : //
; 297 : // Set up the coprocessor environment variables.
; 298 : //
; 299 : cbNKCoProcRegSize = 0xB8;
; 300 : fNKSaveCoProcReg = 1;
; 301 : pOEMSaveCoProcRegister = OEMSaveCoProcRegister;
; 302 : pOEMRestoreCoProcRegister = OEMRestoreCoProcRegister;
; 303 : pOEMInitCoProcRegisterSavedArea = OEMInitCoProcRegisterSavedArea;
; 304 :
; 305 : #endif // EP93XX_CRUNCH
; 306 :
; 307 : pQueryPerformanceCounter =OEMQueryPerformanceCounter;
000a0 e59fe038 ldr lr, [pc, #0x38]
000a4 e59f2030 ldr r2, [pc, #0x30]
; 308 : pQueryPerformanceFrequency =OEMQueryPerformanceFrequency;
000a8 e59f1028 ldr r1, [pc, #0x28]
000ac e59f3020 ldr r3, [pc, #0x20]
; 309 :
; 310 : #if (defined EDB9302A ) || (defined EDB9301_02)
; 311 : pNKEnumExtensionDRAM =OEMEnumExtensionDRAM;
; 312 : #endif
; 313 : // Print out the current clock rates to the debug port.
; 314 : //
; 315 : NKDbgPrintfW
; 316 : (
; 317 : L"Processor = %dMhz, Bus = %dMhz \r\n",
; 318 : (REAL_FCLOCK/1000000),
; 319 : (REAL_HCLOCK/1000000)
; 320 : );
000b0 e59f0018 ldr r0, [pc, #0x18]
000b4 e58e2000 str r2, [lr]
000b8 e5813000 str r3, [r1]
000bc e3a02063 mov r2, #0x63
000c0 e3a010c7 mov r1, #0xC7
000c4 eb000000 bl NKDbgPrintfW
; 321 : }
000c8 e8bd4030 ldmia sp!, {r4, r5, lr}
000cc e12fff1e bx lr
000d0 |$L16642|
000d0 00000000 DCD |??_C@_1EE@IILIFECD@?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AAo?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AAM?$AAh?$AAz?$AA?0?$AA?5?$AAB@|
000d4 00000000 DCD |OEMQueryPerformanceFrequency|
000d8 00000000 DCD |pQueryPerformanceFrequency|
000dc 00000000 DCD |OEMQueryPerformanceCounter|
000e0 00000000 DCD |pQueryPerformanceCounter|
000e4 50415241 DCD 0x50415241
000e8 45424f54 DCD 0x45424f54
000ec 00000000 DCD |??_C@_1BO@NFDEGLPL@?$AAI?$AAn?$AAi?$AAt?$AAC?$AAl?$AAo?$AAc?$AAk?$AA?4?$AA?4?$AA?4?$AA?$AN?$AA?6?$AA?$AA@|
000f0 00000000 DCD |idleconv|
000f4 00000000 DCD |lpWriteDebugStringFunc|
000f8 00000000 DCD |pTOC|
000fc 00000000 DCD |dwNKDrWatsonSize|
00100 |$M16638|
ENDP ; |OEMInit|
EXPORT |??_C@_1CM@CFLELEAM@?$AAO?$AAE?$AAM?$AAG?$AAe?$AAt?$AAE?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AAD?$AAR?$AAA?$AAM?$AA?$AN@| [ DATA ] ; `string'
EXPORT |OEMGetExtensionDRAM|
00000 AREA |.text| { |OEMGetExtensionDRAM| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMGetExtensionDRAM|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMGetExtensionDRAM| } ; comdat associative
|$T16650| DCD |$L16649|
DCD 0x40000b01
00000 AREA |.rdata| { |??_C@_1CM@CFLELEAM@?$AAO?$AAE?$AAM?$AAG?$AAe?$AAt?$AAE?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AAD?$AAR?$AAA?$AAM?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@CFLELEAM@?$AAO?$AAE?$AAM?$AAG?$AAe?$AAt?$AAE?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AAD?$AAR?$AAA?$AAM?$AA?$AN@| DCB "O"
DCB 0x0, "E", 0x0, "M", 0x0, "G", 0x0, "e", 0x0, "t", 0x0, "E"
DCB 0x0, "x", 0x0, "t", 0x0, "e", 0x0, "n", 0x0, "s", 0x0, "i"
DCB 0x0, "o", 0x0, "n", 0x0, "D", 0x0, "R", 0x0, "A", 0x0, "M"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMGetExtensionDRAM| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMGetExtensionDRAM| PROC
; 331 : {
00000 |$L16649|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M16647|
; 332 : BOOL bRet=FALSE;
; 333 :
; 334 : lpWriteDebugStringFunc(TEXT("OEMGetExtensionDRAM\r\n"));
00004 e59f301c ldr r3, [pc, #0x1C]
00008 e59f0014 ldr r0, [pc, #0x14]
0000c e5933000 ldr r3, [r3]
00010 e1a0e00f mov lr, pc
00014 e12fff13 bx r3
; 335 : //Only implemented for EDB9307A as a sample, please double check config.bib before changing
; 336 : //this function.
; 337 :
; 338 : #if (defined EDB9307A )|| (defined EDB9315A)
; 339 :
; 340 : #ifdef IMGFLASH
; 341 : *lpMemStart = (SDRAM_VIRTUAL_MEMORY + 0x2000000);
; 342 : *lpMemLen = 0x2000000;
; 343 : bRet=TRUE;
; 344 : #else
; 345 : //umask these three lines when doing release
; 346 : /*
; 347 : *lpMemStart = (SDRAM_VIRTUAL_MEMORY + 0x1200000);
; 348 : *lpMemLen = 0xE00000;
; 349 : bRet=TRUE;
; 350 : */ #endif
; 351 :
; 352 : #endif
; 353 :
; 354 : return bRet;
00018 e3a00000 mov r0, #0
; 355 : }
0001c e49de004 ldr lr, [sp], #4
00020 e12fff1e bx lr
00024 |$L16652|
00024 00000000 DCD |??_C@_1CM@CFLELEAM@?$AAO?$AAE?$AAM?$AAG?$AAe?$AAt?$AAE?$AAx?$AAt?$AAe?$AAn?$AAs?$AAi?$AAo?$AAn?$AAD?$AAR?$AAA?$AAM?$AA?$AN@|
00028 00000000 DCD |lpWriteDebugStringFunc|
0002c |$M16648|
ENDP ; |OEMGetExtensionDRAM|
EXPORT |OEMTranslateIrq|
00000 AREA |.text| { |OEMTranslateIrq| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMTranslateIrq|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMTranslateIrq| } ; comdat associative
|$T16661| DCD |$L16660|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMTranslateIrq| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMTranslateIrq| PROC
; 431 : {
00000 |$L16660|
00000 |$M16658|
; 432 : return Irq;
; 433 : }
00000 e12fff1e bx lr
00004 |$M16659|
ENDP ; |OEMTranslateIrq|
EXPORT |OEMTranslateSysIntr|
00000 AREA |.text| { |OEMTranslateSysIntr| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMTranslateSysIntr|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMTranslateSysIntr| } ; comdat associative
|$T16671| DCD |$L16670|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMTranslateSysIntr| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMTranslateSysIntr| PROC
; 447 : {
00000 |$L16670|
00000 |$M16668|
; 448 : return SysIntr;
; 449 : }
00000 e12fff1e bx lr
00004 |$M16669|
ENDP ; |OEMTranslateSysIntr|
EXPORT |OEMRequestSysIntr|
00000 AREA |.text| { |OEMRequestSysIntr| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMRequestSysIntr|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMRequestSysIntr| } ; comdat associative
|$T16681| DCD |$L16680|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMRequestSysIntr| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMRequestSysIntr| PROC
; 462 : {
00000 |$L16680|
00000 |$M16678|
; 463 : return Irq;
; 464 : }
00000 e12fff1e bx lr
00004 |$M16679|
ENDP ; |OEMRequestSysIntr|
EXPORT |OEMGetInterrupt|
00000 AREA |.text| { |OEMGetInterrupt| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMGetInterrupt|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMGetInterrupt| } ; comdat associative
|$T16690| DCD |$L16689|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMGetInterrupt| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMGetInterrupt| PROC
; 476 : {
00000 |$L16689|
00000 |$M16687|
; 477 : return FALSE;
00000 e3a00000 mov r0, #0
; 478 : }
00004 e12fff1e bx lr
00008 |$M16688|
ENDP ; |OEMGetInterrupt|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -