📄 nandfls.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345
TTL E:\WM604\PLATFORM\SEUICBSP\SRC\BOOTLOADER\EBOOT\.\nandfls.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |?sg_PXANandFlash@@3UstPXANandFlash@@A| [ DATA ] ; sg_PXANandFlash
00000 AREA |.bss|, NOINIT
|?sg_PXANandFlash@@3UstPXANandFlash@@A| % 0x44 ; sg_PXANandFlash
EXPORT |?NandDeviceReady@@YAXXZ| ; NandDeviceReady
EXPORT |??_C@_1DI@IDMEEOEI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@| [ DATA ] ; `string'
EXPORT |??_C@_1DM@GDFKFKCI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@| [ DATA ] ; `string'
IMPORT |NKDbgPrintfW|
IMPORT |GPIOReadControllerGPLRValue|
; File e:\wm604\platform\seuicbsp\src\bootloader\eboot\nandfls.cpp
00000 AREA |.text| { |?NandDeviceReady@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?NandDeviceReady@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?NandDeviceReady@@YAXXZ| } ; comdat associative
|$T35919| DCD |$L35918|
DCD 0x40002801
00000 AREA |.rdata| { |??_C@_1DM@GDFKFKCI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DM@GDFKFKCI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@| DCB "N"
DCB 0x0, "a", 0x0, "n", 0x0, "d", 0x0, " ", 0x0, "r", 0x0, "e"
DCB 0x0, "a", 0x0, "d", 0x0, "y", 0x0, " ", 0x0, "m", 0x0, "a"
DCB 0x0, "t", 0x0, "c", 0x0, "h", 0x0, " ", 0x0, "m", 0x0, "a"
DCB 0x0, "x", 0x0, " ", 0x0, "t", 0x0, "w", 0x0, "a", 0x0, "i"
DCB 0x0, "t", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DI@IDMEEOEI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@IDMEEOEI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@| DCB "N"
DCB 0x0, "a", 0x0, "n", 0x0, "d", 0x0, " ", 0x0, "r", 0x0, "e"
DCB 0x0, "a", 0x0, "d", 0x0, "y", 0x0, " ", 0x0, "m", 0x0, "a"
DCB 0x0, "t", 0x0, "c", 0x0, "h", 0x0, " ", 0x0, "m", 0x0, "a"
DCB 0x0, "x", 0x0, " ", 0x0, "t", 0x0, "w", 0x0, "b", 0x0, "."
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?NandDeviceReady@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?NandDeviceReady@@YAXXZ| PROC ; NandDeviceReady
; 114 : {
00000 |$L35918|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M35916|
; 115 : DWORD i = 0, j = 0;
; 116 : while(GPIOReadControllerGPLRValue((GPIO_REGS *)sg_PXANandFlash.v_pGPIORegs, NANDRDY))
00004 e59f6090 ldr r6, [pc, #0x90]
00008 e3a05000 mov r5, #0
0000c e3a04000 mov r4, #0
00010 ea000002 b |$L35915|
00014 |$L35575|
; 117 : {
; 118 : if(j > MAX_TWB)
00014 e3540005 cmp r4, #5
00018 8a000006 bhi |$L35908|
; 121 : break;
; 122 : }
; 123 : j++;
0001c e2844001 add r4, r4, #1
00020 |$L35915|
; 117 : {
; 118 : if(j > MAX_TWB)
00020 e5960000 ldr r0, [r6]
00024 e3a01021 mov r1, #0x21
; 121 : break;
; 122 : }
; 123 : j++;
00028 eb000000 bl GPIOReadControllerGPLRValue
0002c e3500000 cmp r0, #0
00030 1afffff7 bne |$L35575|
; 126 : {
; 127 : if(i > MAX_TWAIT)
00034 ea000001 b |$L35907|
00038 |$L35908|
; 119 : {
; 120 : RETAILMSG(1, (TEXT("Nand ready match max twb.\r\n")));
00038 e59f0058 ldr r0, [pc, #0x58]
0003c eb000000 bl NKDbgPrintfW
00040 |$L35907|
; 124 : }
; 125 : while(!GPIOReadControllerGPLRValue((GPIO_REGS *)sg_PXANandFlash.v_pGPIORegs, NANDRDY))
00040 e5960000 ldr r0, [r6]
00044 e3a01021 mov r1, #0x21
00048 eb000000 bl GPIOReadControllerGPLRValue
0004c e3500000 cmp r0, #0
00050 1a00000d bne |$L35903|
00054 e3a04ebb mov r4, #0xBB, 28
00058 e3844008 orr r4, r4, #8
0005c |$L35581|
; 126 : {
; 127 : if(i > MAX_TWAIT)
0005c e1550004 cmp r5, r4
00060 8a000007 bhi |$L35909|
00064 e5960000 ldr r0, [r6]
00068 e3a01021 mov r1, #0x21
; 130 : break;
; 131 : }
; 132 : i++;
0006c e2855001 add r5, r5, #1
00070 eb000000 bl GPIOReadControllerGPLRValue
00074 e3500000 cmp r0, #0
00078 0afffff7 beq |$L35581|
; 133 : }
; 134 : // RETAILMSG(1, (TEXT("Nand ready match max twb %d.\r\n"), j));
; 135 : // RETAILMSG(1, (TEXT("Nand ready match max twait %d.\r\n"), i));
; 136 : }
0007c e8bd4070 ldmia sp!, {r4 - r6, lr}
00080 e12fff1e bx lr
00084 |$L35909|
; 128 : {
; 129 : RETAILMSG(1, (TEXT("Nand ready match max twait.\r\n")));
00084 e59f0008 ldr r0, [pc, #8]
00088 eb000000 bl NKDbgPrintfW
0008c |$L35903|
; 133 : }
; 134 : // RETAILMSG(1, (TEXT("Nand ready match max twb %d.\r\n"), j));
; 135 : // RETAILMSG(1, (TEXT("Nand ready match max twait %d.\r\n"), i));
; 136 : }
0008c e8bd4070 ldmia sp!, {r4 - r6, lr}
00090 e12fff1e bx lr
00094 |$L35921|
00094 00000000 DCD |??_C@_1DM@GDFKFKCI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@|
00098 00000000 DCD |??_C@_1DI@IDMEEOEI@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?5?$AAm?$AAa?$AAt?$AAc?$AAh?$AA?5?$AAm?$AAa?$AAx@|
0009c 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
000a0 |$M35917|
ENDP ; |?NandDeviceReady@@YAXXZ|, NandDeviceReady
EXPORT |Nand_FMD_GetInfo|
00000 AREA |.text| { |Nand_FMD_GetInfo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nand_FMD_GetInfo|, PDATA, SELECTION=5, ASSOC=|.text| { |Nand_FMD_GetInfo| } ; comdat associative
|$T35930| DCD |$L35929|
DCD 0x40000f00
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nand_FMD_GetInfo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nand_FMD_GetInfo| PROC
; 463 : {
00000 |$L35929|
00000 |$M35927|
00000 e1a01000 mov r1, r0
; 464 : pFlashInfo->flashType = sg_PXANandFlash.Info.flashType;
00004 e59f202c ldr r2, [pc, #0x2C]
; 465 : pFlashInfo->dwNumBlocks = sg_PXANandFlash.Info.dwNumBlocks;
; 466 : pFlashInfo->dwBytesPerBlock = sg_PXANandFlash.Info.dwBytesPerBlock;
; 467 : pFlashInfo->wDataBytesPerSector = sg_PXANandFlash.Info.wDataBytesPerSector;
; 468 : pFlashInfo->wSectorsPerBlock = sg_PXANandFlash.Info.wSectorsPerBlock;
; 469 : return(TRUE);
00008 e3a00001 mov r0, #1
0000c e5923010 ldr r3, [r2, #0x10]
00010 e5813000 str r3, [r1]
00014 e5923014 ldr r3, [r2, #0x14]
00018 e5813004 str r3, [r1, #4]
0001c e5923018 ldr r3, [r2, #0x18]
00020 e5813008 str r3, [r1, #8]
00024 e1d231be ldrh r3, [r2, #0x1E]
00028 e1c130be strh r3, [r1, #0xE]
0002c e1d231bc ldrh r3, [r2, #0x1C]
00030 e1c130bc strh r3, [r1, #0xC]
; 470 : }
00034 e12fff1e bx lr
00038 |$L35932|
00038 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
0003c |$M35928|
ENDP ; |Nand_FMD_GetInfo|
EXPORT |?Nand_GPIO_Init@@YAXXZ| ; Nand_GPIO_Init
00000 AREA |.text| { |?Nand_GPIO_Init@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?Nand_GPIO_Init@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Nand_GPIO_Init@@YAXXZ| } ; comdat associative
|$T35938| DCD |$L35937|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Nand_GPIO_Init@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?Nand_GPIO_Init@@YAXXZ| PROC ; Nand_GPIO_Init
; 494 : {
00000 |$L35937|
00000 |$M35935|
; 495 : /*
; 496 : // GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, PWE | GPIO_AF2 | GPIO_OUT);
; 497 : GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, NANDCS1 | GPIO_AF2 | GPIO_OUT);
; 498 : GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, NANDCS2 | GPIO_AF2 | GPIO_OUT);
; 499 :
; 500 : GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, NANDRDY | GPIO_AF0 | GPIO_IN);
; 501 : GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, 18 | GPIO_AF1 | GPIO_IN);
; 502 : GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, 105 | GPIO_AF0 | GPIO_IN);
; 503 : GPIOSetController((XLLP_GPIO_T *)sg_PXANandFlash.v_pGPIORegs, 104 | GPIO_AF0 | GPIO_IN);
; 504 : RETAILMSG(1, (TEXT("@@@@@%X.\r\n"), *(DWORD *)0xa530010c));
; 505 : */
; 506 : }
00000 e12fff1e bx lr
00004 |$M35936|
ENDP ; |?Nand_GPIO_Init@@YAXXZ|, Nand_GPIO_Init
EXPORT |Nand_FMD_PowerUp|
00000 AREA |.text| { |Nand_FMD_PowerUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nand_FMD_PowerUp|, PDATA, SELECTION=5, ASSOC=|.text| { |Nand_FMD_PowerUp| } ; comdat associative
|$T35945| DCD |$L35944|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nand_FMD_PowerUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nand_FMD_PowerUp| PROC
; 513 : {
00000 |$L35944|
00000 |$M35942|
; 514 : return;
; 515 : }
00000 e12fff1e bx lr
00004 |$M35943|
ENDP ; |Nand_FMD_PowerUp|
EXPORT |Nand_FMD_PowerDown|
00000 AREA |.text| { |Nand_FMD_PowerDown| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nand_FMD_PowerDown|, PDATA, SELECTION=5, ASSOC=|.text| { |Nand_FMD_PowerDown| } ; comdat associative
|$T35952| DCD |$L35951|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nand_FMD_PowerDown| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nand_FMD_PowerDown| PROC
; 523 : {
00000 |$L35951|
00000 |$M35949|
; 524 : return;
; 525 : }
00000 e12fff1e bx lr
00004 |$M35950|
ENDP ; |Nand_FMD_PowerDown|
EXPORT |Nand_FMD_Deinit|
00000 AREA |.text| { |Nand_FMD_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nand_FMD_Deinit|, PDATA, SELECTION=5, ASSOC=|.text| { |Nand_FMD_Deinit| } ; comdat associative
|$T35961| DCD |$L35960|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nand_FMD_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nand_FMD_Deinit| PROC
; 532 : {
00000 |$L35960|
00000 |$M35958|
; 533 : return TRUE;
00000 e3a00001 mov r0, #1
; 534 : }
00004 e12fff1e bx lr
00008 |$M35959|
ENDP ; |Nand_FMD_Deinit|
EXPORT |Nand_FMD_OEMIoControl|
00000 AREA |.text| { |Nand_FMD_OEMIoControl| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nand_FMD_OEMIoControl|, PDATA, SELECTION=5, ASSOC=|.text| { |Nand_FMD_OEMIoControl| } ; comdat associative
|$T35970| DCD |$L35969|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nand_FMD_OEMIoControl| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nand_FMD_OEMIoControl| PROC
; 611 : {
00000 |$L35969|
00000 |$M35967|
; 612 : return FALSE;
00000 e3a00000 mov r0, #0
; 613 : }
00004 e12fff1e bx lr
00008 |$M35968|
ENDP ; |Nand_FMD_OEMIoControl|
00000 AREA |.text| { |?NandRdId@@YAHPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?NandRdId@@YAHPAE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?NandRdId@@YAHPAE@Z| } ; comdat associative
|$T35980| DCD |$L35979|
DCD 0x40001901
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -