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

📄 intel_28f160.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	E:\WM604\PLATFORM\SEUICBSP\SRC\BOOTLOADER\EBOOT\.\intel_28f160.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "


  00000			 AREA	 |.bss|, NOINIT
|s_bXIPMode| %	0x4

  00000			 AREA	 |.data|, DATA
|g_EraseBlockInfo| DCD 0x20
	DCD	0x10000
; File e:\wm604\platform\seuicbsp\src\bootloader\eboot\intel_28f160.cpp

  00000			 AREA	 |.text| { |?intel_IssueCmd@@YAXPAU_INTEL_FLS_INFO_@@G@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?intel_IssueCmd@@YAXPAU_INTEL_FLS_INFO_@@G@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?intel_IssueCmd@@YAXPAU_INTEL_FLS_INFO_@@G@Z| } ; comdat associative
|$T30053| DCD	|$L30052|
	DCD	0x40000300
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?intel_IssueCmd@@YAXPAU_INTEL_FLS_INFO_@@G@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?intel_IssueCmd@@YAXPAU_INTEL_FLS_INFO_@@G@Z| PROC ; intel_IssueCmd

; 98   : {

  00000		 |$L30052|
  00000		 |$M30050|

; 99   : 	*((volatile WORD*)(pSTFlsInfo->dwBaseAddr)) = wCmd;

  00000	e5903000	 ldr         r3, [r0]
  00004	e1c310b0	 strh        r1, [r3]

; 100  : }

  00008	e12fff1e	 bx          lr
  0000c		 |$M30051|

			 ENDP  ; |?intel_IssueCmd@@YAXPAU_INTEL_FLS_INFO_@@G@Z|, intel_IssueCmd


  00000			 AREA	 |.text| { |?intel_ReadWord@@YAGPAU_INTEL_FLS_INFO_@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?intel_ReadWord@@YAGPAU_INTEL_FLS_INFO_@@K@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?intel_ReadWord@@YAGPAU_INTEL_FLS_INFO_@@K@Z| } ; comdat associative
|$T30064| DCD	|$L30063|
	DCD	0x40000300
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?intel_ReadWord@@YAGPAU_INTEL_FLS_INFO_@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?intel_ReadWord@@YAGPAU_INTEL_FLS_INFO_@@K@Z| PROC ; intel_ReadWord

; 103  : {

  00000		 |$L30063|
  00000		 |$M30061|

; 104  : 	return *(volatile WORD*)(pSTFlsInfo->dwBaseAddr + dwOffset);

  00000	e5903000	 ldr         r3, [r0]
  00004	e19300b1	 ldrh        r0, [r3, +r1]

; 105  : }

  00008	e12fff1e	 bx          lr
  0000c		 |$M30062|

			 ENDP  ; |?intel_ReadWord@@YAGPAU_INTEL_FLS_INFO_@@K@Z|, intel_ReadWord


  00000			 AREA	 |.text| { |?intel_WriteWord@@YAXPAU_INTEL_FLS_INFO_@@KG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?intel_WriteWord@@YAXPAU_INTEL_FLS_INFO_@@KG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?intel_WriteWord@@YAXPAU_INTEL_FLS_INFO_@@KG@Z| } ; comdat associative
|$T30074| DCD	|$L30073|
	DCD	0x40000300
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?intel_WriteWord@@YAXPAU_INTEL_FLS_INFO_@@KG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?intel_WriteWord@@YAXPAU_INTEL_FLS_INFO_@@KG@Z| PROC ; intel_WriteWord

; 108  : {

  00000		 |$L30073|
  00000		 |$M30071|

; 109  : 	*((volatile WORD*)(pSTFlsInfo->dwBaseAddr+dwOffset)) = wData;

  00000	e5903000	 ldr         r3, [r0]
  00004	e18320b1	 strh        r2, [r3, +r1]

; 110  : }

  00008	e12fff1e	 bx          lr
  0000c		 |$M30072|

			 ENDP  ; |?intel_WriteWord@@YAXPAU_INTEL_FLS_INFO_@@KG@Z|, intel_WriteWord


  00000			 AREA	 |.text| { |?intel_WaitComplete@@YAHPAU_INTEL_FLS_INFO_@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?intel_WaitComplete@@YAHPAU_INTEL_FLS_INFO_@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?intel_WaitComplete@@YAHPAU_INTEL_FLS_INFO_@@@Z| } ; comdat associative
|$T30097| DCD	|$L30096|
	DCD	0x40001301
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?intel_WaitComplete@@YAHPAU_INTEL_FLS_INFO_@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?intel_WaitComplete@@YAHPAU_INTEL_FLS_INFO_@@@Z| PROC ; intel_WaitComplete

; 113  : {

  00000		 |$L30096|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M30094|
  00004	e1a01000	 mov         r1, r0

; 114  : 	WORD status = 0;
; 115  : 	BOOL ret = TRUE;

  00008	e5912000	 ldr         r2, [r1]
  0000c	e3a00001	 mov         r0, #1
  00010	e3a0e070	 mov         lr, #0x70
  00014		 |$L29745|

; 116  : 
; 117  : 	do 
; 118  : 	{
; 119  : 		intel_IssueCmd(pSTFlsInfo, CMD_READSTATUS);

  00014	e1c2e0b0	 strh        lr, [r2]

; 120  : 		status = intel_ReadWord(pSTFlsInfo, 0);

  00018	e5912000	 ldr         r2, [r1]
  0001c	e1d230b0	 ldrh        r3, [r2]

; 121  : 	} while (!(status & 0x80));

  00020	e3130080	 tst         r3, #0x80
  00024	0afffffa	 beq         |$L29745|

; 122  : 
; 123  : 	// error in program or erase?
; 124  : 	if (status & 0x20 || status & 0x10)

  00028	e3130020	 tst         r3, #0x20
  0002c	1a000001	 bne         |$L29749|
  00030	e3130010	 tst         r3, #0x10
  00034	0a000000	 beq         |$L29748|
  00038		 |$L29749|

; 125  : 		ret = FALSE;

  00038	e3a00000	 mov         r0, #0
  0003c		 |$L29748|

; 126  : 		
; 127  : 	intel_IssueCmd(pSTFlsInfo, CMD_CLEARSTATUS);

  0003c	e3a03050	 mov         r3, #0x50
  00040	e1c230b0	 strh        r3, [r2]

; 128  : 	
; 129  : 	return ret;
; 130  : }

  00044	e49de004	 ldr         lr, [sp], #4
  00048	e12fff1e	 bx          lr
  0004c		 |$M30095|

			 ENDP  ; |?intel_WaitComplete@@YAHPAU_INTEL_FLS_INFO_@@@Z|, intel_WaitComplete

	EXPORT	|??_C@_1DE@DAEPDGKI@?$AAL?$AAo?$AAc?$AAk?$AA?1?$AAu?$AAn?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr@| [ DATA ] ; `string'
	IMPORT	|NKDbgPrintfW|

  00004			 AREA	 |.bss|, NOINIT
|g_FlashInfo| %	0x1c

  00000			 AREA	 |.text| { |?SetBlockLockStatusEx@@YAHKH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?SetBlockLockStatusEx@@YAHKH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetBlockLockStatusEx@@YAHKH@Z| } ; comdat associative
|$T30158| DCD	|$L30157|
	DCD	0x40002901

  00000			 AREA	 |.rdata| { |??_C@_1DE@DAEPDGKI@?$AAL?$AAo?$AAc?$AAk?$AA?1?$AAu?$AAn?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DE@DAEPDGKI@?$AAL?$AAo?$AAc?$AAk?$AA?1?$AAu?$AAn?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr@| DCB "L"
	DCB	0x0, "o", 0x0, "c", 0x0, "k", 0x0, "/", 0x0, "u", 0x0, "n"
	DCB	0x0, "L", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "B"
	DCB	0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "e"
	DCB	0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, 0xd, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?SetBlockLockStatusEx@@YAHKH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?SetBlockLockStatusEx@@YAHKH@Z| PROC	; SetBlockLockStatusEx

; 133  : {

  00000		 |$L30157|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M30155|
  00004	e3510000	 cmp         r1, #0
  00008	e1a02000	 mov         r2, r0

; 134  : 	intel_IssueCmd(&g_FlashInfo, CMD_CLEARSTATUS);

  0000c	e59f408c	 ldr         r4, [pc, #0x8C]
  00010	e3a05050	 mov         r5, #0x50

; 135  : 	intel_IssueCmd(&g_FlashInfo, CMD_UNLOCK);

  00014	e3a01060	 mov         r1, #0x60
  00018	e5943000	 ldr         r3, [r4]

; 136  : 	
; 137  : 	if (bLock)

  0001c	e3a00001	 mov         r0, #1

; 138  : 		intel_WriteWord(&g_FlashInfo, BlockAddr, 0x01);
; 139  : 	else
; 140  : 		intel_WriteWord(&g_FlashInfo, BlockAddr, CMD_CONFIRM);
; 141  : 		
; 142  : 	if(!intel_WaitComplete(&g_FlashInfo))

  00020	e3a0e070	 mov         lr, #0x70
  00024	e1c350b0	 strh        r5, [r3]
  00028	e5943000	 ldr         r3, [r4]
  0002c	e1c310b0	 strh        r1, [r3]
  00030	e5943000	 ldr         r3, [r4]
  00034	03a010d0	 moveq       r1, #0xD0
  00038	118300b2	 strneh      r0, [r3, +r2]
  0003c	018310b2	 streqh      r1, [r3, +r2]
  00040	e5942000	 ldr         r2, [r4]
  00044	e3a01001	 mov         r1, #1
  00048		 |$L30129|
  00048	e1c2e0b0	 strh        lr, [r2]
  0004c	e5942000	 ldr         r2, [r4]
  00050	e1d230b0	 ldrh        r3, [r2]
  00054	e3130080	 tst         r3, #0x80
  00058	0afffffa	 beq         |$L30129|
  0005c	e3130020	 tst         r3, #0x20
  00060	1a000001	 bne         |$L30133|
  00064	e3130010	 tst         r3, #0x10
  00068	0a000000	 beq         |$L30132|
  0006c		 |$L30133|
  0006c	e3a01000	 mov         r1, #0
  00070		 |$L30132|
  00070	e1c250b0	 strh        r5, [r2]
  00074	e3510000	 cmp         r1, #0
  00078	1a000002	 bne         |$L29756|

; 143  : 	{
; 144  : 		RETAILMSG(1, (TEXT("Lock/unLock Block error\r\n")));

  0007c	e59f0018	 ldr         r0, [pc, #0x18]
  00080	eb000000	 bl          NKDbgPrintfW
  00084	e3a00000	 mov         r0, #0
  00088		 |$L29756|

; 145  : 		intel_IssueCmd(&g_FlashInfo, CMD_READARRAY);			
; 146  : 		return FALSE;
; 147  : 	}
; 148  : 	
; 149  : 	intel_IssueCmd(&g_FlashInfo, CMD_READARRAY);

  00088	e5943000	 ldr         r3, [r4]
  0008c	e3a020ff	 mov         r2, #0xFF

; 150  : 	return TRUE;	

  00090	e1c320b0	 strh        r2, [r3]

; 151  : }

  00094	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00098	e12fff1e	 bx          lr
  0009c		 |$L30160|
  0009c	00000000	 DCD         |??_C@_1DE@DAEPDGKI@?$AAL?$AAo?$AAc?$AAk?$AA?1?$AAu?$AAn?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr@|
  000a0	00000000	 DCD         |g_FlashInfo|
  000a4		 |$M30156|

			 ENDP  ; |?SetBlockLockStatusEx@@YAHKH@Z|, SetBlockLockStatusEx


  00000			 AREA	 |.text| { |?SetBlockLockStatus@@YAHKKH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?SetBlockLockStatus@@YAHKKH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetBlockLockStatus@@YAHKKH@Z| } ; comdat associative
|$T30182| DCD	|$L30181|
	DCD	0x40003a01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?SetBlockLockStatus@@YAHKKH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?SetBlockLockStatus@@YAHKKH@Z| PROC	; SetBlockLockStatus

; 154  : {

  00000		 |$L30181|
  00000	e92d4ff0	 stmdb       sp!, {r4 - r11, lr}
  00004		 |$M30179|
  00004	e1a09002	 mov         r9, r2
  00008	e1b07001	 movs        r7, r1
  0000c	e1a05000	 mov         r5, r0

; 155  : 	DWORD i;
; 156  : 
; 157  : 	while (NumBlocks--)

  00010	0a00002d	 beq         |$L30171|
  00014	e3a0ab22	 mov         r10, #0x22, 22
  00018	e3a0bb22	 mov         r11, #0x22, 22
  0001c	e59f80c0	 ldr         r8, [pc, #0xC0]
  00020	e38aa0c3	 orr         r10, r10, #0xC3
  00024	e38bb0c2	 orr         r11, r11, #0xC2
  00028		 |$L29765|
  00028	e2477001	 sub         r7, r7, #1

; 158  : 	{
; 159  : 		if (blockID == 0 && g_FlashInfo.flashType == FLASH_F160C3BCES)

  0002c	e3550000	 cmp         r5, #0
  00030	1a00000c	 bne         |$L29767|
  00034	e5983018	 ldr         r3, [r8, #0x18]
  00038	e153000a	 cmp         r3, r10
  0003c	1a00001a	 bne         |$L29773|

; 160  : 		{			
; 161  : 			for (i = 0; i < 8; i++)

  00040	e3a04000	 mov         r4, #0
  00044		 |$L29768|

; 162  : 			{
; 163  : 				if (!SetBlockLockStatusEx(i * SMALL_BLOCK_SIZE, bLock))

  00044	e1a01009	 mov         r1, r9
  00048	e1a00004	 mov         r0, r4
  0004c	eb000000	 bl          |?SetBlockLockStatusEx@@YAHKH@Z|
  00050	e3500000	 cmp         r0, #0
  00054	0a00001f	 beq         |$L30168|
  00058	e2844a02	 add         r4, r4, #2, 20
  0005c	e3540801	 cmp         r4, #1, 16
  00060	3afffff7	 bcc         |$L29768|

; 164  : 					return FALSE;
; 165  : 			}
; 166  : 		}
; 167  : 		else if (blockID == 31 && g_FlashInfo.flashType == FLASH_F160C3TDA4137360)

  00064	ea000015	 b           |$L29779|
  00068		 |$L29767|
  00068	e355001f	 cmp         r5, #0x1F
  0006c	1a00000e	 bne         |$L29773|
  00070	e5983018	 ldr         r3, [r8, #0x18]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -