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

📄 intel_28f160.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00074	e153000b	 cmp         r3, r11
  00078	1a00000b	 bne         |$L29773|

; 168  : 		{
; 169  : 			for (i = 0; i < 8; i++)

  0007c	e3a04000	 mov         r4, #0
  00080	e3a0681f	 mov         r6, #0x1F, 16
  00084		 |$L29774|

; 170  : 			{
; 171  : 				if (!SetBlockLockStatusEx(
; 172  : 					COMMON_BLOCK_SIZE * 31 + i * SMALL_BLOCK_SIZE,
; 173  : 					bLock))

  00084	e1a01009	 mov         r1, r9
  00088	e1a00006	 mov         r0, r6
  0008c	eb000000	 bl          |?SetBlockLockStatusEx@@YAHKH@Z|
  00090	e3500000	 cmp         r0, #0
  00094	0a00000f	 beq         |$L30168|
  00098	e2844001	 add         r4, r4, #1
  0009c	e3540008	 cmp         r4, #8
  000a0	e2866a02	 add         r6, r6, #2, 20
  000a4	3afffff6	 bcc         |$L29774|

; 174  : 					
; 175  : 					return FALSE;
; 176  : 			}
; 177  : 		}
; 178  : 		else

  000a8	ea000004	 b           |$L29779|
  000ac		 |$L29773|

; 179  : 		{
; 180  : 			if (!SetBlockLockStatusEx(blockID * COMMON_BLOCK_SIZE, bLock))	

  000ac	e1a01009	 mov         r1, r9
  000b0	e1a00805	 mov         r0, r5, lsl #16
  000b4	eb000000	 bl          |?SetBlockLockStatusEx@@YAHKH@Z|
  000b8	e3500000	 cmp         r0, #0
  000bc	0a000005	 beq         |$L30168|
  000c0		 |$L29779|

; 182  : 		}
; 183  : 		
; 184  : 		blockID++;	

  000c0	e2855001	 add         r5, r5, #1
  000c4	e3570000	 cmp         r7, #0
  000c8	1affffd6	 bne         |$L29765|
  000cc		 |$L30171|

; 185  : 	}	
; 186  : 	
; 187  : 	return TRUE;

  000cc	e3a00001	 mov         r0, #1

; 188  : }

  000d0	e8bd4ff0	 ldmia       sp!, {r4 - r11, lr}
  000d4	e12fff1e	 bx          lr
  000d8		 |$L30168|

; 181  : 				return FALSE;

  000d8	e3a00000	 mov         r0, #0

; 188  : }

  000dc	e8bd4ff0	 ldmia       sp!, {r4 - r11, lr}
  000e0	e12fff1e	 bx          lr
  000e4		 |$L30184|
  000e4	00000000	 DCD         |g_FlashInfo|
  000e8		 |$M30180|

			 ENDP  ; |?SetBlockLockStatus@@YAHKKH@Z|, SetBlockLockStatus

	EXPORT	|?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z| ; Intel_Nor_FMD_Init
	EXPORT	|??_C@_1FG@IADLLEKH@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAB?$AAa?$AAd?$AA?5?$AAm?$AAa@| [ DATA ] ; `string'
	EXPORT	|??_C@_1FE@OFPFNKOJ@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BH@OLEDPNMH@FLASH_F160C3TDA4137360?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BB@BOEHEHMK@FLASH_F160C3BCES?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EI@LMKEIDPI@?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5@| [ DATA ] ; `string'

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

  00000			 AREA	 |.pdata$$?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z| } ; comdat associative
|$T30218| DCD	|$L30217|
	DCD	0x40003d01

  00000			 AREA	 |.rdata| { |??_C@_1EI@LMKEIDPI@?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EI@LMKEIDPI@?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5@| DCB "I"
	DCB	0x0, "n", 0x0, "t", 0x0, "e", 0x0, "l", 0x0, " ", 0x0, "N"
	DCB	0x0, "o", 0x0, "r", 0x0, "_", 0x0, "F", 0x0, "M", 0x0, "D"
	DCB	0x0, "_", 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, ":"
	DCB	0x0, " ", 0x0, "F", 0x0, "l", 0x0, "a", 0x0, "s", 0x0, "h"
	DCB	0x0, " ", 0x0, "T", 0x0, "y", 0x0, "p", 0x0, "e", 0x0, " "
	DCB	0x0, "%", 0x0, "s", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BB@BOEHEHMK@FLASH_F160C3BCES?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BB@BOEHEHMK@FLASH_F160C3BCES?$AA@| DCB "FLASH_F160C3BCES", 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BH@OLEDPNMH@FLASH_F160C3TDA4137360?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BH@OLEDPNMH@FLASH_F160C3TDA4137360?$AA@| DCB "FLASH_F160C3TDA4137"
	DCB	"360", 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1FE@OFPFNKOJ@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FE@OFPFNKOJ@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw@| DCB "N"
	DCB	0x0, "o", 0x0, "r", 0x0, "_", 0x0, "F", 0x0, "M", 0x0, "D"
	DCB	0x0, "_", 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, ":"
	DCB	0x0, " ", 0x0, "U", 0x0, "n", 0x0, "k", 0x0, "n", 0x0, "o"
	DCB	0x0, "w", 0x0, "n", 0x0, " ", 0x0, "d", 0x0, "e", 0x0, "v"
	DCB	0x0, "i", 0x0, "c", 0x0, "e", 0x0, " ", 0x0, "c", 0x0, "o"
	DCB	0x0, "d", 0x0, "e", 0x0, " ", 0x0, "0", 0x0, "x", 0x0, "%"
	DCB	0x0, "x", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1FG@IADLLEKH@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAB?$AAa?$AAd?$AA?5?$AAm?$AAa@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FG@IADLLEKH@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAB?$AAa?$AAd?$AA?5?$AAm?$AAa@| DCB "N"
	DCB	0x0, "o", 0x0, "r", 0x0, "_", 0x0, "F", 0x0, "M", 0x0, "D"
	DCB	0x0, "_", 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, ":"
	DCB	0x0, " ", 0x0, "B", 0x0, "a", 0x0, "d", 0x0, " ", 0x0, "m"
	DCB	0x0, "a", 0x0, "n", 0x0, "u", 0x0, "f", 0x0, "a", 0x0, "c"
	DCB	0x0, "t", 0x0, "u", 0x0, "r", 0x0, "e", 0x0, "r", 0x0, "c"
	DCB	0x0, "o", 0x0, "d", 0x0, "e", 0x0, " ", 0x0, "0", 0x0, "x"
	DCB	0x0, "%", 0x0, "x", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Ogsy

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

  00000		 |?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z| PROC ; Intel_Nor_FMD_Init

; 196  : {

  00000		 |$L30217|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M30215|

; 197  : 	WORD wMfgCode;
; 198  : 	WORD wDevCode;
; 199  : 
; 200  : 	g_FlashInfo.dwBaseAddr = pRegIn->MemBase.Reg[0];

  00004	e59f50e4	 ldr         r5, [pc, #0xE4]
  00008	e5913310	 ldr         r3, [r1, #0x310]

; 201  : 	//RETAILMSG(1, (TEXT("Intel_Nor_FMD_Init: dwBaseAddr 0x%x.\r\n"), g_FlashInfo.dwBaseAddr ));
; 202  : 	
; 203  : 	// read manufacture id and device id
; 204  : 	intel_IssueCmd(&g_FlashInfo, CMD_READIDENT);

  0000c	e3a02090	 mov         r2, #0x90
  00010	e5853000	 str         r3, [r5]
  00014	e1c320b0	 strh        r2, [r3]

; 205  : 	wMfgCode = intel_ReadWord(&g_FlashInfo, MFG_CODE_OFF);

  00018	e5953000	 ldr         r3, [r5]
  0001c	e1d310b0	 ldrh        r1, [r3]

; 206  : 	wDevCode = intel_ReadWord(&g_FlashInfo, DEV_CODE_OFF);

  00020	e1d320b2	 ldrh        r2, [r3, #2]

; 207  : 
; 208  : 	if (MFG_CODE != wMfgCode)

  00024	e3510089	 cmp         r1, #0x89

; 209  : 	{
; 210  : 		RETAILMSG(1, (TEXT("Nor_FMD_Init: Bad manufacturercode 0x%x.\r\n"), wMfgCode));

  00028	159f00bc	 ldrne       r0, [pc, #0xBC]
  0002c	1a000009	 bne         |$L30214|

; 211  : 		return NULL;
; 212  : 	}
; 213  : 
; 214  : 	if (wDevCode != FLASH_F160C3TDA4137360 && wDevCode != FLASH_F160C3BCES)

  00030	e3a01b22	 mov         r1, #0x22, 22
  00034	e38110c2	 orr         r1, r1, #0xC2
  00038	e1520001	 cmp         r2, r1
  0003c	0a000009	 beq         |$L29789|
  00040	e3a03b22	 mov         r3, #0x22, 22
  00044	e38330c3	 orr         r3, r3, #0xC3
  00048	e1520003	 cmp         r2, r3
  0004c	0a000005	 beq         |$L29789|

; 215  : 	{
; 216  : 		RETAILMSG(1, (_T("Nor_FMD_Init: Unknown device code 0x%x.\r\n"), wDevCode));

  00050	e59f0090	 ldr         r0, [pc, #0x90]
  00054	e1a01002	 mov         r1, r2
  00058		 |$L30214|
  00058	eb000000	 bl          NKDbgPrintfW

; 217  : 		return NULL;

  0005c	e3a00000	 mov         r0, #0

; 236  : }

  00060	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00064	e12fff1e	 bx          lr
  00068		 |$L29789|

; 218  : 	}
; 219  : 	
; 220  : 	g_FlashInfo.flashType = wDevCode;
; 221  : 	RETAILMSG(1, (_T("Intel Nor_FMD_Init: Flash Type %s\r\n"),
; 222  : 		(g_FlashInfo.flashType == FLASH_F160C3TDA4137360)?
; 223  : 		"FLASH_F160C3TDA4137360" : "FLASH_F160C3BCES"));

  00068	e1520001	 cmp         r2, r1
  0006c	059f1070	 ldreq       r1, [pc, #0x70]
  00070	159f1068	 ldrne       r1, [pc, #0x68]
  00074	e59f0060	 ldr         r0, [pc, #0x60]
  00078	e5852018	 str         r2, [r5, #0x18]
  0007c	eb000000	 bl          NKDbgPrintfW

; 224  : 
; 225  : 	// reset the chip
; 226  : 	intel_IssueCmd(&g_FlashInfo, CMD_READARRAY);

  00080	e5953000	 ldr         r3, [r5]

; 227  : 
; 228  : 	g_FlashInfo.pErsBlkRegion = g_EraseBlockInfo;

  00084	e59f104c	 ldr         r1, [pc, #0x4C]
  00088	e3a020ff	 mov         r2, #0xFF
  0008c	e1c320b0	 strh        r2, [r3]

; 229  : 	g_FlashInfo.bBusWidth = 2;
; 230  : 	g_FlashInfo.dwBlkNum = g_FlashInfo.pErsBlkRegion[0].dwBlkNum;
; 231  : 	g_FlashInfo.dwBlkSize = g_FlashInfo.pErsBlkRegion[0].dwBlkSize;

  00090	e5914004	 ldr         r4, [r1, #4]

; 232  : 	g_FlashInfo.wUnusedBytesPerBlock = (USHORT)(g_FlashInfo.dwBlkSize % (SECTOR_SIZE + sizeof (SectorInfo)) );

  00094	e59f3038	 ldr         r3, [pc, #0x38]
  00098	e5912000	 ldr         r2, [r1]
  0009c	e3a00002	 mov         r0, #2
  000a0	e083e394	 umull       lr, r3, r4, r3
  000a4	e5851008	 str         r1, [r5, #8]
  000a8	e5c50004	 strb        r0, [r5, #4]
  000ac	e585200c	 str         r2, [r5, #0xC]
  000b0	e1a024a3	 mov         r2, r3, lsr #9
  000b4	e0823302	 add         r3, r2, r2, lsl #6
  000b8	e0443183	 sub         r3, r4, r3, lsl #3
  000bc	e5854010	 str         r4, [r5, #0x10]
  000c0	e1c531b4	 strh        r3, [r5, #0x14]

; 233  : 	g_FlashInfo.wSectorsPerBlock = (USHORT)(g_FlashInfo.dwBlkSize / (SECTOR_SIZE + sizeof (SectorInfo)));

  000c4	e1c521b6	 strh        r2, [r5, #0x16]

; 234  : 
; 235  : 	return (PVOID)g_FlashInfo.dwBaseAddr;

  000c8	e5950000	 ldr         r0, [r5]

; 236  : }

  000cc	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000d0	e12fff1e	 bx          lr
  000d4		 |$L30220|
  000d4	fc0fc0fd	 DCD         0xfc0fc0fd
  000d8	00000000	 DCD         |g_EraseBlockInfo|
  000dc	00000000	 DCD         |??_C@_1EI@LMKEIDPI@?$AAI?$AAn?$AAt?$AAe?$AAl?$AA?5?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5@|
  000e0	00000000	 DCD         |??_C@_0BB@BOEHEHMK@FLASH_F160C3BCES?$AA@|
  000e4	00000000	 DCD         |??_C@_0BH@OLEDPNMH@FLASH_F160C3TDA4137360?$AA@|
  000e8	00000000	 DCD         |??_C@_1FE@OFPFNKOJ@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw@|
  000ec	00000000	 DCD         |??_C@_1FG@IADLLEKH@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAB?$AAa?$AAd?$AA?5?$AAm?$AAa@|
  000f0	00000000	 DCD         |g_FlashInfo|
  000f4		 |$M30216|

			 ENDP  ; |?Intel_Nor_FMD_Init@@YAPAXPBGPAU_PCI_REG_INFO@@1@Z|, Intel_Nor_FMD_Init

	EXPORT	|?Intel_Nor_FMD_Deinit@@YAHPAX@Z|	; Intel_Nor_FMD_Deinit

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

  00000			 AREA	 |.pdata$$?Intel_Nor_FMD_Deinit@@YAHPAX@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Intel_Nor_FMD_Deinit@@YAHPAX@Z| } ; comdat associative
|$T30228| DCD	|$L30227|
	DCD	0x40000200
; Function compile flags: /Ogsy

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

  00000		 |?Intel_Nor_FMD_Deinit@@YAHPAX@Z| PROC	; Intel_Nor_FMD_Deinit

; 245  : {

  00000		 |$L30227|
  00000		 |$M30225|

; 246  : 	return  TRUE;

  00000	e3a00001	 mov         r0, #1

; 247  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M30226|

			 ENDP  ; |?Intel_Nor_FMD_Deinit@@YAHPAX@Z|, Intel_Nor_FMD_Deinit

	EXPORT	|?Intel_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z| ; Intel_Nor_FMD_GetInfo

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

  00000			 AREA	 |.pdata$$?Intel_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Intel_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z| } ; comdat associative
|$T30238| DCD	|$L30237|
	DCD	0x40001101
; Function compile flags: /Ogsy

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

  00000		 |?Intel_Nor_FMD_GetInfo@@YAHPAU_FlashInfo@@@Z| PROC ; Intel_Nor_FMD_GetInfo

; 261  : {

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

; 262  : 	pFlashInfo->flashType = NOR;
; 263  : 	pFlashInfo->dwNumBlocks = g_FlashInfo.dwBlkNum;

  00008	e59f2030	 ldr         r2, [pc, #0x30]
  0000c	e3a03001	 mov         r3, #1
  00010	e5813000	 str         r3, [r1]
  00014	e592300c	 ldr         r3, [r2, #0xC]

; 264  : 	pFlashInfo->dwBytesPerBlock = g_FlashInfo.dwBlkSize;
; 265  : 	pFlashInfo->wDataBytesPerSector = SECTOR_SIZE;

  00018	e3a0ec02	 mov         lr, #2, 24

; 266  : 	pFlashInfo->wSectorsPerBlock = g_FlashInfo.wSectorsPerBlock;  
; 267  : 
; 268  : 	return(TRUE);

  0001c	e3a00001	 mov         r0, #1
  00020	e5813004	 str         r3, [r1, #4]
  00024	e5923010	 ldr         r3, [r2, #0x10]
  00028	e1c1e0be	 strh        lr, [r1, #0xE]
  0002c	e5813008	 str         r3, [r1, #8]
  00030	e1d231b6	 ldrh        r3, [r2, #0x16]
  00034	e1c130bc	 strh        r3, [r1, #0xC]

; 269  : }

  00038	e49de004	 ldr         lr, [sp], #4
  0003c	e12fff1e	 bx          lr
  00040		 |$L30240|
  00040	00000000	 DCD         |g_FlashInfo|

⌨️ 快捷键说明

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