📄 battif.cod
字号:
; 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 + -