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

📄 battif.cod

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

	TTL	E:\WM604\PLATFORM\SEUICBSP\SRC\BOOTLOADER\EBOOT\.\battif.c
	CODE32

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

	EXPORT	|v_pDriverGlobals| [ DATA ]
	EXPORT	|v_pAc97regs| [ DATA ]
	EXPORT	|vp_OSTRegs| [ DATA ]
	EXPORT	|v_pClockRegs| [ DATA ]
	EXPORT	|v_pCodecAddr| [ DATA ]
	EXPORT	|vp_GPIORegs| [ DATA ]

  00000			 AREA	 |.bss|, NOINIT
|v_pDriverGlobals| % 0x4
|v_pAc97regs| %	0x4
|vp_OSTRegs| %	0x4
|v_pClockRegs| % 0x4
|v_pCodecAddr| % 0x4
|vp_GPIORegs| %	0x4

  00000			 AREA	 |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
	DCW	0x0
	DCD	0x4033
	DCB	0x1
	DCB	"AD", 0x0
	DCW	0x1050
	DCW	0x940
	DCD	0x4005
	DCB	0x1
	DCB	"LS", 0x0
	DCW	0x1050
	DCW	0x940
	DCD	0x2078
	DCB	0x1
	DCB	"LS", 0x0
	DCW	0x10ec
	DCW	0x8029
	DCD	0xc0f0
	DCB	0x1
	DCB	"KS", 0x0
	DCW	0x10ec
	DCW	0x8129
	DCD	0x0
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x10ec
	DCW	0x8139
	DCD	0x900b
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x10ec
	DCW	0x8139
	DCD	0xd0c9
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x10ec
	DCW	0x8139
	DCD	0xe04c
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x1186
	DCW	0x1300
	DCD	0x50ba
	DCB	0x4
	DCB	"DL", 0x0
	DCW	0x100b
	DCW	0x20
	DCD	0xa0cc
	DCB	0x5
	DCB	"NG", 0x0
	DCW	0x10b7
	DCW	0x9050
	DCD	0x6008
	DCB	0x6
	DCB	"3C", 0x0
	DCW	0x10b7
	DCW	0x9200
	DCD	0x476
	DCB	0x6
	DCB	"3C", 0x0
	EXPORT	|AllocAcLink|
	EXPORT	|??_C@_1BO@FPLGOPGM@?$AAA?$AAC?$AAL?$AAI?$AAN?$AAK?$AA_?$AAC?$AAO?$AAN?$AAT?$AAR?$AAO?$AAL?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CC@EKAJMGEB@?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CKACLink?5Alloc?5Failed?5?$AN@| [ DATA ] ; `string'
	IMPORT	|EdbgOutputDebugString|
	IMPORT	|OALPAtoVA|
	IMPORT	|Wait|
	IMPORT	|CreateMutexW|

  00018			 AREA	 |.bss|, NOINIT
|hAcLinkControlMutex| % 0x4
; File e:\wm604\platform\seuicbsp\src\bootloader\eboot\battif.c

  00000			 AREA	 |.text| { |AllocAcLink| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$AllocAcLink|, PDATA, SELECTION=5, ASSOC=|.text| { |AllocAcLink| } ; comdat associative
|$T43603| DCD	|$L43602|
	DCD	0x40003e01

  00000			 AREA	 |.rdata| { |??_C@_0CC@EKAJMGEB@?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CKACLink?5Alloc?5Failed?5?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CC@EKAJMGEB@?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CKACLink?5Alloc?5Failed?5?$AN@| DCB "*"
	DCB	"**********ACLink Alloc Failed ", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BO@FPLGOPGM@?$AAA?$AAC?$AAL?$AAI?$AAN?$AAK?$AA_?$AAC?$AAO?$AAN?$AAT?$AAR?$AAO?$AAL?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BO@FPLGOPGM@?$AAA?$AAC?$AAL?$AAI?$AAN?$AAK?$AA_?$AAC?$AAO?$AAN?$AAT?$AAR?$AAO?$AAL?$AA?$AA@| DCB "A"
	DCB	0x0, "C", 0x0, "L", 0x0, "I", 0x0, "N", 0x0, "K", 0x0, "_"
	DCB	0x0, "C", 0x0, "O", 0x0, "N", 0x0, "T", 0x0, "R", 0x0, "O"
	DCB	0x0, "L", 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |AllocAcLink| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |AllocAcLink| PROC

; 56   : {

  00000		 |$L43602|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M43600|

; 57   : 	
; 58   : 	if (v_pAc97regs == NULL) 

  00004	e59f40e8	 ldr         r4, [pc, #0xE8]
  00008	e5943014	 ldr         r3, [r4, #0x14]
  0000c	e3530000	 cmp         r3, #0
  00010	1a000004	 bne         |$L43379|

; 59   : 	{
; 60   : 		v_pAc97regs = (XLLP_AC97_T *)OALPAtoVA(BULVERDE_BASE_REG_PA_AC97, FALSE);

  00014	e3a00101	 mov         r0, #1, 2
  00018	e3800605	 orr         r0, r0, #5, 12
  0001c	e3a01000	 mov         r1, #0
  00020	eb000000	 bl          OALPAtoVA
  00024	e5840014	 str         r0, [r4, #0x14]
  00028		 |$L43379|

; 61   : 	}
; 62   : 
; 63   : 	if(v_pDriverGlobals == NULL)

  00028	e5943018	 ldr         r3, [r4, #0x18]
  0002c	e3530000	 cmp         r3, #0
  00030	1a000003	 bne         |$L43382|

; 64   : 	{
; 65   : 		v_pDriverGlobals = (PDRIVER_GLOBALS)OALPAtoVA(DRIVER_GLOBALS_PHYSICAL_MEMORY_START, FALSE);

  00034	e3a01000	 mov         r1, #0
  00038	e3a0020a	 mov         r0, #0xA, 4
  0003c	eb000000	 bl          OALPAtoVA
  00040	e5840018	 str         r0, [r4, #0x18]
  00044		 |$L43382|

; 66   : 	}
; 67   : 	
; 68   : 	
; 69   : 	if(v_pClockRegs == NULL)

  00044	e594300c	 ldr         r3, [r4, #0xC]
  00048	e3530000	 cmp         r3, #0
  0004c	1a000004	 bne         |$L43385|

; 70   : 	{
; 71   : 		v_pClockRegs = (volatile XLLP_CLKMGR_T *) OALPAtoVA(BULVERDE_BASE_REG_PA_CLKMGR, FALSE);

  00050	e3a00441	 mov         r0, #0x41, 8
  00054	e3800603	 orr         r0, r0, #3, 12
  00058	e3a01000	 mov         r1, #0
  0005c	eb000000	 bl          OALPAtoVA
  00060	e584000c	 str         r0, [r4, #0xC]
  00064		 |$L43385|

; 72   : 	}
; 73   : 
; 74   : 	if(vp_GPIORegs == NULL)

  00064	e5943004	 ldr         r3, [r4, #4]
  00068	e3530000	 cmp         r3, #0
  0006c	1a000004	 bne         |$L43388|

; 75   : 	{
; 76   : 		vp_GPIORegs = (volatile XLLP_GPIO_T *)OALPAtoVA(BULVERDE_BASE_REG_PA_GPIO, FALSE);

  00070	e3a00101	 mov         r0, #1, 2
  00074	e380060e	 orr         r0, r0, #0xE, 12
  00078	e3a01000	 mov         r1, #0
  0007c	eb000000	 bl          OALPAtoVA
  00080	e5840004	 str         r0, [r4, #4]
  00084		 |$L43388|

; 77   : 	}
; 78   : 
; 79   : 	if (vp_OSTRegs == NULL)

  00084	e5943010	 ldr         r3, [r4, #0x10]
  00088	e3530000	 cmp         r3, #0
  0008c	1a000004	 bne         |$L43391|

; 80   :     {
; 81   : 		vp_OSTRegs = (XLLP_OST_T *)OALPAtoVA(BULVERDE_BASE_REG_PA_OST, FALSE);

  00090	e3a00101	 mov         r0, #1, 2
  00094	e380060a	 orr         r0, r0, #0xA, 12
  00098	e3a01000	 mov         r1, #0
  0009c	eb000000	 bl          OALPAtoVA
  000a0	e5840010	 str         r0, [r4, #0x10]
  000a4		 |$L43391|

; 82   : 	}
; 83   : 
; 84   : 	hAcLinkControlMutex = CreateMutex(NULL,FALSE, ACLINK_MUTEX_NAME);

  000a4	e59f2044	 ldr         r2, [pc, #0x44]
  000a8	e3a01000	 mov         r1, #0
  000ac	e3a00000	 mov         r0, #0
  000b0	eb000000	 bl          CreateMutexW
  000b4	e1a03000	 mov         r3, r0

; 85   : 
; 86   : 	Wait(1);  // Minimal wait but guarantees self-init in safe zone.

  000b8	e3a00001	 mov         r0, #1
  000bc	e5843000	 str         r3, [r4]
  000c0	eb000000	 bl          Wait

; 87   : 
; 88   : 	if(v_pAc97regs!=NULL)

  000c4	e5943014	 ldr         r3, [r4, #0x14]
  000c8	e3530000	 cmp         r3, #0

; 89   : 	{
; 90   : 		return(SUCCESS);

  000cc	13a00001	 movne       r0, #1

; 97   : 	}
; 98   : }

  000d0	18bd4010	 ldmneia     sp!, {r4, lr}
  000d4	112fff1e	 bxne        lr

; 91   : 	}
; 92   : 	else
; 93   : 	{
; 94   : 		 EdbgOutputDebugString ("***********ACLink Alloc Failed \r\n");

  000d8	e59f000c	 ldr         r0, [pc, #0xC]
  000dc	eb000000	 bl          EdbgOutputDebugString

; 95   : //		DeAllocAcLink(DevId);
; 96   : 		return(FALSE);

  000e0	e3a00000	 mov         r0, #0

; 97   : 	}
; 98   : }

  000e4	e8bd4010	 ldmia       sp!, {r4, lr}
  000e8	e12fff1e	 bx          lr
  000ec		 |$L43605|
  000ec	00000000	 DCD         |??_C@_0CC@EKAJMGEB@?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CK?$CKACLink?5Alloc?5Failed?5?$AN@|
  000f0	00000000	 DCD         |??_C@_1BO@FPLGOPGM@?$AAA?$AAC?$AAL?$AAI?$AAN?$AAK?$AA_?$AAC?$AAO?$AAN?$AAT?$AAR?$AAO?$AAL?$AA?$AA@|
  000f4	00000000	 DCD         |hAcLinkControlMutex|
  000f8		 |$M43601|

			 ENDP  ; |AllocAcLink|

	EXPORT	|RawAC97Read|
	IMPORT	|XllpAc97Read|

  00000			 AREA	 |.text| { |RawAC97Read| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$RawAC97Read|, PDATA, SELECTION=5, ASSOC=|.text| { |RawAC97Read| } ; comdat associative
|$T43615| DCD	|$L43614|
	DCD	0x40001002
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |RawAC97Read| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |RawAC97Read| PROC

; 124  : {

  00000		 |$L43614|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M43612|

; 125  : 	XllpAc97Read((XLLP_UINT16_T) Offset, (XLLP_UINT16_T *)Data, v_pAc97regs, vp_OSTRegs, 5000, XLLP_AC97_CODEC_PRIMARY);

  00008	e59f202c	 ldr         r2, [pc, #0x2C]
  0000c	e3a0ed4e	 mov         lr, #0x4E, 26
  00010	e38ee008	 orr         lr, lr, #8
  00014	e5923000	 ldr         r3, [r2]
  00018	e5922004	 ldr         r2, [r2, #4]
  0001c	e3a04000	 mov         r4, #0
  00020	e58d4004	 str         r4, [sp, #4]
  00024	e58de000	 str         lr, [sp]
  00028	eb000000	 bl          XllpAc97Read

; 126  : 	return(SUCCESS);

  0002c	e3a00001	 mov         r0, #1

; 127  : }

  00030	e28dd008	 add         sp, sp, #8
  00034	e8bd4010	 ldmia       sp!, {r4, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$L43617|
  0003c	00000000	 DCD         |vp_OSTRegs|
  00040		 |$M43613|

			 ENDP  ; |RawAC97Read|

	EXPORT	|RawAC97Write|
	IMPORT	|XllpAc97Write|

  00000			 AREA	 |.text| { |RawAC97Write| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$RawAC97Write|, PDATA, SELECTION=5, ASSOC=|.text| { |RawAC97Write| } ; comdat associative
|$T43627| DCD	|$L43626|
	DCD	0x40001002
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |RawAC97Write| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |RawAC97Write| PROC

; 130  : {

  00000		 |$L43626|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M43624|

; 131  : 	XllpAc97Write((XLLP_UINT16_T) Offset, (XLLP_UINT16_T) Data, v_pAc97regs, vp_OSTRegs, 5000, XLLP_AC97_CODEC_PRIMARY);

  00008	e59f202c	 ldr         r2, [pc, #0x2C]
  0000c	e3a0ed4e	 mov         lr, #0x4E, 26
  00010	e38ee008	 orr         lr, lr, #8
  00014	e5923000	 ldr         r3, [r2]
  00018	e5922004	 ldr         r2, [r2, #4]
  0001c	e3a04000	 mov         r4, #0
  00020	e58d4004	 str         r4, [sp, #4]
  00024	e58de000	 str         lr, [sp]
  00028	eb000000	 bl          XllpAc97Write

; 132  : 	return(SUCCESS);

  0002c	e3a00001	 mov         r0, #1

; 133  : }

  00030	e28dd008	 add         sp, sp, #8
  00034	e8bd4010	 ldmia       sp!, {r4, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$L43629|
  0003c	00000000	 DCD         |vp_OSTRegs|
  00040		 |$M43625|

			 ENDP  ; |RawAC97Write|

	EXPORT	|Ac97Lock|
	IMPORT	|WaitForSingleObject|

  00000			 AREA	 |.text| { |Ac97Lock| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$Ac97Lock|, PDATA, SELECTION=5, ASSOC=|.text| { |Ac97Lock| } ; comdat associative
|$T43637| DCD	|$L43636|
	DCD	0x40000d01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |Ac97Lock| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |Ac97Lock| PROC

; 145  : {	

  00000		 |$L43636|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M43634|

; 146  : 	DWORD  retval;
; 147  : 	retval = WaitForSingleObject(hAcLinkControlMutex, 3000);

⌨️ 快捷键说明

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