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

📄 nandfls.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\.\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 + -