⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 norfls.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 2 页
字号:
; 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 + -