📄 norfls.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345
TTL E:\WM604\PLATFORM\SEUICBSP\SRC\BOOTLOADER\EBOOT\.\norfls.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |??_C@_0BK@NBNJGJKM@Check?5if?5Intel?5Flash?4?4?4?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1DE@NJGKJALB@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh@| [ DATA ] ; `string'
EXPORT |??_C@_1DA@MKIKGFAN@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?4?$AA?4@| [ DATA ] ; `string'
EXPORT |??_C@_1EI@KIGCCMLI@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1EE@DLKBLCKF@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr?$AA?5?$AAS@| [ DATA ] ; `string'
EXPORT |Nor_FMD_Init|
IMPORT |NKDbgPrintfW|
IMPORT |?Spansion_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z| ; Spansion_Nor_FMD_Init
IMPORT |?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z| ; Intel_Nor_FMD_Init
IMPORT |EdbgOutputDebugString|
00000 AREA |.bss|, NOINIT
|NorFlashType| % 0x4
; File e:\wm604\platform\seuicbsp\src\bootloader\eboot\norfls.cpp
00000 AREA |.text| { |Nor_FMD_Init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nor_FMD_Init|, PDATA, SELECTION=5, ASSOC=|.text| { |Nor_FMD_Init| } ; comdat associative
|$T34436| DCD |$L34435|
DCD 0x40002a01
00000 AREA |.rdata| { |??_C@_1EE@DLKBLCKF@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr?$AA?5?$AAS@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EE@DLKBLCKF@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr?$AA?5?$AAS@| DCB "D"
DCB 0x0, "e", 0x0, "t", 0x0, "e", 0x0, "c", 0x0, "t", 0x0, " "
DCB 0x0, "S", 0x0, "p", 0x0, "a", 0x0, "n", 0x0, "s", 0x0, "i"
DCB 0x0, "o", 0x0, "n", 0x0, " ", 0x0, "o", 0x0, "r", 0x0, " "
DCB 0x0, "S", 0x0, "S", 0x0, "T", 0x0, " ", 0x0, "F", 0x0, "l"
DCB 0x0, "a", 0x0, "s", 0x0, "h", 0x0, ".", 0x0, ".", 0x0, "."
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EI@KIGCCMLI@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EI@KIGCCMLI@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr@| DCB "C"
DCB 0x0, "h", 0x0, "e", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "i"
DCB 0x0, "f", 0x0, " ", 0x0, "S", 0x0, "p", 0x0, "a", 0x0, "n"
DCB 0x0, "s", 0x0, "i", 0x0, "o", 0x0, "n", 0x0, " ", 0x0, "o"
DCB 0x0, "r", 0x0, " ", 0x0, "S", 0x0, "S", 0x0, "T", 0x0, " "
DCB 0x0, "F", 0x0, "l", 0x0, "a", 0x0, "s", 0x0, "h", 0x0, "."
DCB 0x0, ".", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DA@MKIKGFAN@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?4?$AA?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DA@MKIKGFAN@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?4?$AA?4@| DCB "D"
DCB 0x0, "e", 0x0, "t", 0x0, "e", 0x0, "c", 0x0, "t", 0x0, " "
DCB 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e", 0x0, "l", 0x0, " "
DCB 0x0, "F", 0x0, "l", 0x0, "a", 0x0, "s", 0x0, "h", 0x0, "."
DCB 0x0, ".", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BK@NBNJGJKM@Check?5if?5Intel?5Flash?4?4?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BK@NBNJGJKM@Check?5if?5Intel?5Flash?4?4?4?$AN?6?$AA@| DCB "Check "
DCB "if Intel Flash...", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DE@NJGKJALB@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DE@NJGKJALB@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh@| DCB "C"
DCB 0x0, "h", 0x0, "e", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "i"
DCB 0x0, "f", 0x0, " ", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e"
DCB 0x0, "l", 0x0, " ", 0x0, "F", 0x0, "l", 0x0, "a", 0x0, "s"
DCB 0x0, "h", 0x0, ".", 0x0, ".", 0x0, ".", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nor_FMD_Init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nor_FMD_Init| PROC
; 51 : {
00000 |$L34435|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M34433|
00004 e1a05002 mov r5, r2
00008 e1a06001 mov r6, r1
0000c e1a07000 mov r7, r0
; 52 : PVOID pFlashAddr = NULL;
; 53 :
; 54 : // 检查是否是Intel Flash类型
; 55 : EdbgOutputDebugString("Check if Intel Flash...\r\n");
00010 e59f008c ldr r0, [pc, #0x8C]
00014 eb000000 bl EdbgOutputDebugString
; 56 : RETAILMSG(1, (TEXT("Check if Intel Flash...\r\n")));
00018 e59f0080 ldr r0, [pc, #0x80]
0001c eb000000 bl NKDbgPrintfW
; 57 : pFlashAddr = Intel_Nor_FMD_Init(lpActiveReg, pRegIn, pRegOut);
00020 e1a02005 mov r2, r5
00024 e1a01006 mov r1, r6
00028 e1a00007 mov r0, r7
0002c eb000000 bl |?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z|
00030 e1b04000 movs r4, r0
; 58 : if(pFlashAddr)
00034 0a000005 beq |$L34275|
; 59 : {
; 60 : //EdbgOutputDebugString("Detect Intel Flash...\r\n");
; 61 : RETAILMSG(1, (TEXT("Detect Intel Flash...\r\n")));
00038 e59f005c ldr r0, [pc, #0x5C]
0003c eb000000 bl NKDbgPrintfW
; 62 : NorFlashType = INTEL_NOR_FLASH;
00040 e3a02000 mov r2, #0
00044 |$L34432|
00044 e59f304c ldr r3, [pc, #0x4C]
; 63 : return pFlashAddr;
00048 e5832000 str r2, [r3]
0004c ea00000c b |$L34280|
00050 |$L34275|
; 64 : }
; 65 :
; 66 : // 检查是否是Spansion Flash类型
; 67 : RETAILMSG(1, (TEXT("Check if Spansion or SST Flash...\r\n")));
00050 e59f003c ldr r0, [pc, #0x3C]
00054 eb000000 bl NKDbgPrintfW
; 68 : pFlashAddr = Spansion_Nor_FMD_Init(lpActiveReg, pRegIn, pRegOut);
00058 e1a02005 mov r2, r5
0005c e1a01006 mov r1, r6
00060 e1a00007 mov r0, r7
00064 eb000000 bl |?Spansion_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z|
00068 e1b04000 movs r4, r0
; 69 : if(pFlashAddr)
0006c 0a000003 beq |$L34278|
; 70 : {
; 71 : RETAILMSG(1, (TEXT("Detect Spansion or SST Flash...\r\n")));
00070 e59f0018 ldr r0, [pc, #0x18]
00074 eb000000 bl NKDbgPrintfW
; 72 : NorFlashType = SPANSION_NOR_FLASH;
00078 e3a02001 mov r2, #1
; 73 : return pFlashAddr;
0007c eafffff0 b |$L34432|
00080 |$L34278|
; 74 : }
; 75 : else
; 76 : return NULL;
00080 e3a04000 mov r4, #0
00084 |$L34280|
; 63 : return pFlashAddr;
00084 e1a00004 mov r0, r4
; 77 : }
00088 e8bd40f0 ldmia sp!, {r4 - r7, lr}
0008c e12fff1e bx lr
00090 |$L34438|
00090 00000000 DCD |??_C@_1EE@DLKBLCKF@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr?$AA?5?$AAS@|
00094 00000000 DCD |??_C@_1EI@KIGCCMLI@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAS?$AAp?$AAa?$AAn?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAo?$AAr@|
00098 00000000 DCD |NorFlashType|
0009c 00000000 DCD |??_C@_1DA@MKIKGFAN@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?4?$AA?4@|
000a0 00000000 DCD |??_C@_1DE@NJGKJALB@?$AAC?$AAh?$AAe?$AAc?$AAk?$AA?5?$AAi?$AAf?$AA?5?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAF?$AAl?$AAa?$AAs?$AAh@|
000a4 00000000 DCD |??_C@_0BK@NBNJGJKM@Check?5if?5Intel?5Flash?4?4?4?$AN?6?$AA@|
000a8 |$M34434|
ENDP ; |Nor_FMD_Init|
EXPORT |Nor_FMD_Deinit|
00000 AREA |.text| { |Nor_FMD_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nor_FMD_Deinit|, PDATA, SELECTION=5, ASSOC=|.text| { |Nor_FMD_Deinit| } ; comdat associative
|$T34446| DCD |$L34445|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nor_FMD_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nor_FMD_Deinit| PROC
; 86 : {
00000 |$L34445|
00000 |$M34443|
; 87 : return TRUE;
00000 e3a00001 mov r0, #1
; 88 : }
00004 e12fff1e bx lr
00008 |$M34444|
ENDP ; |Nor_FMD_Deinit|
EXPORT |Nor_FMD_GetInfo|
IMPORT |?Spansion_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z| ; Spansion_Nor_FMD_GetInfo
IMPORT |?Intel_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z| ; Intel_Nor_FMD_GetInfo
00000 AREA |.text| { |Nor_FMD_GetInfo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nor_FMD_GetInfo|, PDATA, SELECTION=5, ASSOC=|.text| { |Nor_FMD_GetInfo| } ; comdat associative
|$T34456| DCD |$L34455|
DCD 0x40001101
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nor_FMD_GetInfo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nor_FMD_GetInfo| PROC
; 102 : {
00000 |$L34455|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M34453|
; 103 : if(NorFlashType == INTEL_NOR_FLASH)
00004 e59f3034 ldr r3, [pc, #0x34]
00008 e5933000 ldr r3, [r3]
0000c e3530000 cmp r3, #0
00010 1a000002 bne |$L34287|
; 104 : return Intel_Nor_FMD_GetInfo(pFlashInfo);
00014 eb000000 bl |?Intel_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z|
; 109 : }
00018 e49de004 ldr lr, [sp], #4
0001c e12fff1e bx lr
00020 |$L34287|
; 105 : else if(NorFlashType == SPANSION_NOR_FLASH)
00020 e3530001 cmp r3, #1
00024 1a000002 bne |$L34289|
; 106 : return Spansion_Nor_FMD_GetInfo(pFlashInfo);
00028 eb000000 bl |?Spansion_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z|
; 109 : }
0002c e49de004 ldr lr, [sp], #4
00030 e12fff1e bx lr
00034 |$L34289|
; 107 : else
; 108 : return FALSE;
00034 e3a00000 mov r0, #0
; 109 : }
00038 e49de004 ldr lr, [sp], #4
0003c e12fff1e bx lr
00040 |$L34458|
00040 00000000 DCD |NorFlashType|
00044 |$M34454|
ENDP ; |Nor_FMD_GetInfo|
EXPORT |Nor_FMD_ReadSector|
IMPORT |?Spansion_Nor_FMD_ReadSector@@YAHKPAEPAU_SectorInfo@@K@Z| ; Spansion_Nor_FMD_ReadSector
IMPORT |?Intel_Nor_FMD_ReadSector@@YAHKPAEPAU_SectorInfo@@K@Z| ; Intel_Nor_FMD_ReadSector
00000 AREA |.text| { |Nor_FMD_ReadSector| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nor_FMD_ReadSector|, PDATA, SELECTION=5, ASSOC=|.text| { |Nor_FMD_ReadSector| } ; comdat associative
|$T34470| DCD |$L34469|
DCD 0x40001101
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nor_FMD_ReadSector| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nor_FMD_ReadSector| PROC
; 127 : {
00000 |$L34469|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M34467|
; 128 : if(NorFlashType == INTEL_NOR_FLASH)
00004 e59fe034 ldr lr, [pc, #0x34]
00008 e59ee000 ldr lr, [lr]
0000c e35e0000 cmp lr, #0
00010 1a000002 bne |$L34297|
; 129 : return Intel_Nor_FMD_ReadSector(startSectorAddr, pSectorBuff, pSectorInfoBuff, dwNumSectors);
00014 eb000000 bl |?Intel_Nor_FMD_ReadSector@@YAHKPAEPAU_SectorInfo@@K@Z|
; 134 :
; 135 : }
00018 e49de004 ldr lr, [sp], #4
0001c e12fff1e bx lr
00020 |$L34297|
; 130 : else if(NorFlashType == SPANSION_NOR_FLASH)
00020 e35e0001 cmp lr, #1
00024 1a000002 bne |$L34299|
; 131 : return Spansion_Nor_FMD_ReadSector(startSectorAddr, pSectorBuff, pSectorInfoBuff, dwNumSectors);
00028 eb000000 bl |?Spansion_Nor_FMD_ReadSector@@YAHKPAEPAU_SectorInfo@@K@Z|
; 134 :
; 135 : }
0002c e49de004 ldr lr, [sp], #4
00030 e12fff1e bx lr
00034 |$L34299|
; 132 : else
; 133 : return FALSE;
00034 e3a00000 mov r0, #0
; 134 :
; 135 : }
00038 e49de004 ldr lr, [sp], #4
0003c e12fff1e bx lr
00040 |$L34472|
00040 00000000 DCD |NorFlashType|
00044 |$M34468|
ENDP ; |Nor_FMD_ReadSector|
EXPORT |Nor_FMD_WriteSector|
IMPORT |?Spansion_Nor_FMD_WriteSector@@YAHKPAEPAU_SectorInfo@@K@Z| ; Spansion_Nor_FMD_WriteSector
IMPORT |?Intel_Nor_FMD_WriteSector@@YAHKPAEPAU_SectorInfo@@K@Z| ; Intel_Nor_FMD_WriteSector
00000 AREA |.text| { |Nor_FMD_WriteSector| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nor_FMD_WriteSector|, PDATA, SELECTION=5, ASSOC=|.text| { |Nor_FMD_WriteSector| } ; comdat associative
|$T34484| DCD |$L34483|
DCD 0x40001101
; Function compile flags: /Ogsy
00000 AREA |.text| { |Nor_FMD_WriteSector| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |Nor_FMD_WriteSector| PROC
; 151 : {
00000 |$L34483|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M34481|
; 152 : if(NorFlashType == INTEL_NOR_FLASH)
00004 e59fe034 ldr lr, [pc, #0x34]
00008 e59ee000 ldr lr, [lr]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -