📄 halether.cod
字号:
00090 e59fa1b4 ldr r10, [pc, #0x1B4]
00094 e59f01ac ldr r0, [pc, #0x1AC]
00098 e5823000 str r3, [r2]
0009c e3a03000 mov r3, #0
000a0 e59f719c ldr r7, [pc, #0x19C]
000a4 e59f8194 ldr r8, [pc, #0x194]
000a8 e59f518c ldr r5, [pc, #0x18C]
000ac e59f6184 ldr r6, [pc, #0x184]
000b0 e59fe17c ldr lr, [pc, #0x17C]
000b4 e58a9000 str r9, [r10]
000b8 e59fa170 ldr r10, [pc, #0x170]
000bc e5813000 str r3, [r1]
; 226 :
; 227 :
; 228 : //
; 229 : // CS8950 DMA's to SDRAM. Need to give the library a physical and virtual
; 230 : // address to uncached memory.
; 231 : //
; 232 : bTemp = CS8950DMAInit
; 233 : (
; 234 : CS8950_PHYSICAL_MEMORY,
; 235 : CS8950_VIRTUAL_MEMORY,
; 236 : CS8950_MEMORY_SIZE
; 237 : );
000c0 e59d400c ldr r4, [sp, #0xC]
000c4 e3a03000 mov r3, #0
000c8 e59fb15c ldr r11, [pc, #0x15C]
000cc e5803000 str r3, [r0]
000d0 e3a03017 mov r3, #0x17
000d4 e58a7000 str r7, [r10]
000d8 e5885000 str r5, [r8]
000dc e586e000 str lr, [r6]
000e0 e584300c str r3, [r4, #0xC]
000e4 e3a0120a mov r1, #0xA, 4
000e8 e3a03001 mov r3, #1
000ec e3811801 orr r1, r1, #1, 16
000f0 e3a02803 mov r2, #3, 16
000f4 e3a00801 mov r0, #1, 16
000f8 e58b3000 str r3, [r11]
000fc eb000000 bl CS8950DMAInit
00100 e3500000 cmp r0, #0
; 238 :
; 239 : if(!bTemp)
; 240 : {
; 241 : EdbgOutputDebugString("ERROR: Failed to Initialize CS8950 DMA buffer.\r\n");
00104 059f011c ldreq r0, [pc, #0x11C]
00108 0a000021 beq |$L15793|
; 242 : return FALSE;
; 243 : }
; 244 :
; 245 :
; 246 : //
; 247 : // We need to do this since the board does not have a MAC address.
; 248 : // Lets use the same mac address as eboot.
; 249 : //
; 250 : CS8950WriteEEPROM(0, pDriverGlobals->eth.EdbgAddr.wMAC[0]);
0010c e59f3110 ldr r3, [pc, #0x110]
00110 e3a00000 mov r0, #0
00114 e1d310b0 ldrh r1, [r3]
00118 eb000000 bl CS8950WriteEEPROM
; 251 : CS8950WriteEEPROM(1, pDriverGlobals->eth.EdbgAddr.wMAC[1]);
0011c e59f30fc ldr r3, [pc, #0xFC]
00120 e3a00001 mov r0, #1
00124 e1d310b0 ldrh r1, [r3]
00128 eb000000 bl CS8950WriteEEPROM
; 252 : CS8950WriteEEPROM(2, pDriverGlobals->eth.EdbgAddr.wMAC[2]);
0012c e59f30e8 ldr r3, [pc, #0xE8]
00130 e3a00002 mov r0, #2
00134 e1d310b0 ldrh r1, [r3]
00138 eb000000 bl CS8950WriteEEPROM
; 253 : EdbgOutputDebugString("INFO: EDBG using Internal EP931x controller.\r\n");
0013c e59f00d4 ldr r0, [pc, #0xD4]
00140 eb000000 bl EdbgOutputDebugString
; 262 : return (FALSE);
; 263 : }
; 264 :
; 265 : //
; 266 : // Initialize the ethernet device.
; 267 : //
; 268 : //
; 269 : if (!pfnEDbgInit((BYTE *) pulEthernetBase,1,pAdapter->Addr.wMAC) )
00144 e59f20c8 ldr r2, [pc, #0xC8]
00148 e3a0020b mov r0, #0xB, 4
0014c e3800801 orr r0, r0, #1, 16
00150 e5923000 ldr r3, [r2]
00154 e2842004 add r2, r4, #4
00158 e3a01001 mov r1, #1
0015c e1a0e00f mov lr, pc
00160 e12fff13 bx r3
00164 e3500000 cmp r0, #0
; 270 : {
; 271 : return (FALSE);
00168 0a00000a beq |$L15792|
; 272 : }
; 273 :
; 274 : //
; 275 : // Check the MAC address - this can be invalid if the switches are set wrong.
; 276 : //
; 277 : if ( !pAdapter->Addr.wMAC[0] && !pAdapter->Addr.wMAC[1] && !pAdapter->Addr.wMAC[2] )
0016c e1d430b4 ldrh r3, [r4, #4]
00170 e3530000 cmp r3, #0
00174 1a000009 bne |$L15582|
00178 e1d430b6 ldrh r3, [r4, #6]
0017c e3530000 cmp r3, #0
00180 1a000006 bne |$L15582|
00184 e1d430b8 ldrh r3, [r4, #8]
00188 e3530000 cmp r3, #0
0018c 1a000003 bne |$L15582|
; 278 : {
; 279 : EdbgOutputDebugString
; 280 : (
; 281 : "Invalid Ethernet address read from the debug ethernet controller, check switch settings\n"
; 282 : );
00190 e59f0078 ldr r0, [pc, #0x78]
00194 |$L15793|
00194 eb000000 bl EdbgOutputDebugString
00198 |$L15792|
; 283 : return (FALSE);
00198 e3a00000 mov r0, #0
0019c ea000016 b |$L15554|
001a0 |$L15582|
; 284 : }
; 285 :
; 286 : //
; 287 : // Save out local mac address.
; 288 : //
; 289 : memcpy ((char *)wLocalMAC, pAdapter->Addr.wMAC, sizeof(wLocalMAC));
001a0 e59f5064 ldr r5, [pc, #0x64]
001a4 e5943004 ldr r3, [r4, #4]
; 290 :
; 291 : EdbgOutputDebugString("Debug Ethernet card initialized, MAC Address:%B:%B:%B:%B:%B:%B\r\n",
; 292 : pAdapter->Addr.wMAC[0] & 0x00FF, pAdapter->Addr.wMAC[0] >> 8,
; 293 : pAdapter->Addr.wMAC[1] & 0x00FF, pAdapter->Addr.wMAC[1] >> 8,
; 294 : pAdapter->Addr.wMAC[2] & 0x00FF, pAdapter->Addr.wMAC[2] >> 8 );
001a8 e59f0058 ldr r0, [pc, #0x58]
001ac e5853000 str r3, [r5]
001b0 e1d430b8 ldrh r3, [r4, #8]
001b4 e1c530b4 strh r3, [r5, #4]
001b8 e1d420b8 ldrh r2, [r4, #8]
001bc e1d4e0b6 ldrh lr, [r4, #6]
001c0 e1d440b4 ldrh r4, [r4, #4]
001c4 e1a03422 mov r3, r2, lsr #8
001c8 e20220ff and r2, r2, #0xFF
001cc e1a0142e mov r1, lr, lsr #8
001d0 e58d2004 str r2, [sp, #4]
001d4 e58d3008 str r3, [sp, #8]
001d8 e58d1000 str r1, [sp]
001dc e1a02424 mov r2, r4, lsr #8
001e0 e20e30ff and r3, lr, #0xFF
001e4 e20410ff and r1, r4, #0xFF
001e8 eb000000 bl EdbgOutputDebugString
; 295 :
; 296 : #ifdef IMGSHAREETH
; 297 : VBridgeInit();
001ec eb000000 bl VBridgeInit
; 298 : VBridgeKSetLocalMacAddress((char *)wLocalMAC);
001f0 e1a00005 mov r0, r5
001f4 eb000000 bl VBridgeKSetLocalMacAddress
; 299 : #endif
; 300 :
; 301 :
; 302 :
; 303 : // Enable filtering of broadcast packets (all except ARP packets) to reduce
; 304 : // overhead. We still have to take an interrupt, but the driver can
; 305 : // quickly determine whether a packet may be discarded without having to
; 306 : // copy all the data from the chip. Note that we cannot turn this option
; 307 : // on until DHCP is done processing, since some DHCP servers return
; 308 : // responses in broadcast frames.
; 309 :
; 310 : #ifndef IMGSHAREETH
; 311 : if (pAdapter->Addr.dwIP)
; 312 : pfnEDbgSetOptions(OPT_BROADCAST_FILTERING);
; 313 : #endif
; 314 :
; 315 : DEBUGMSG(1, (TEXT("-OEMEthInit\r\n")));
; 316 :
; 317 : return (TRUE);
001f8 e3a00001 mov r0, #1
001fc |$L15554|
; 318 : }
001fc e28dd010 add sp, sp, #0x10
00200 e8bd4ff0 ldmia sp!, {r4 - r11, lr}
00204 e12fff1e bx lr
00208 |$L15799|
00208 00000000 DCD |??_C@_0EB@OCIBNHJ@Debug?5Ethernet?5card?5initialized?0@|
0020c 00000000 DCD |wLocalMAC|
00210 00000000 DCD |??_C@_0FJ@KCKIBPLK@Invalid?5Ethernet?5address?5read?5fr@|
00214 00000000 DCD |pfnEDbgInit|
00218 00000000 DCD |??_C@_0CP@NBFCGBLJ@INFO?3?5EDBG?5using?5Internal?5EP931x@|
0021c a0008818 DCD 0xa0008818
00220 a0008816 DCD 0xa0008816
00224 a0008814 DCD 0xa0008814
00228 00000000 DCD |??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@|
0022c 00000000 DCD |gulCS8950KitlUsed|
00230 00000000 DCD |pfnEDbgGetFrame|
00234 00000000 DCD |CS8950ReadEEPROM|
00238 00000000 DCD |pfnEDbgReadEEPROM|
0023c 00000000 DCD |CS8950SendFrame|
00240 00000000 DCD |pfnEDbgSendFrame|
00244 00000000 DCD |CS8950GetFrame|
00248 00000000 DCD |pfnMulticastList|
0024c 00000000 DCD |pfnEDbgGetPendingInts|
00250 00000000 DCD |CS8950GetPendingInterrupts|
00254 00000000 DCD |pfnEDbgDisableInts|
00258 00000000 DCD |CS8950DisableInts|
0025c 00000000 DCD |pfnCurrentPacketFilter|
00260 00000000 DCD |pfnEDbgSetOptions|
00264 00000000 DCD |pfnEDbgEnableInts|
00268 00000000 DCD |CS8950EnableInts|
0026c 00000000 DCD |CS8950WriteEEPROM|
00270 00000000 DCD |pfnEDbgWriteEEPROM|
00274 00000000 DCD |CS8950Init|
00278 00000000 DCD |??_C@_0DF@EEJMMMNB@Unsupported?5debug?5Ethernet?5param@|
0027c a0008860 DCD 0xa0008860
00280 a000885c DCD 0xa000885c
00284 a0008858 DCD 0xa0008858
00288 a0008810 DCD 0xa0008810
0028c |$M15795|
ENDP ; |OEMEthInit|
EXPORT |OEMEthEnableInts|
00000 AREA |.text| { |OEMEthEnableInts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthEnableInts|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthEnableInts| } ; comdat associative
|$T15805| DCD |$L15804|
DCD 0x40000901
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthEnableInts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthEnableInts| PROC
; 327 : {
00000 |$L15804|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M15802|
; 328 :
; 329 : if(pfnEDbgEnableInts)
00004 e59f2014 ldr r2, [pc, #0x14]
00008 e5923000 ldr r3, [r2]
0000c e3530000 cmp r3, #0
; 330 : {
; 331 : pfnEDbgEnableInts();
00010 11a0e00f movne lr, pc
00014 112fff13 bxne r3
; 332 : }
; 333 : }
00018 e49de004 ldr lr, [sp], #4
0001c e12fff1e bx lr
00020 |$L15807|
00020 00000000 DCD |pfnEDbgEnableInts|
00024 |$M15803|
ENDP ; |OEMEthEnableInts|
EXPORT |OEMEthDisableInts|
00000 AREA |.text| { |OEMEthDisableInts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthDisableInts|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthDisableInts| } ; comdat associative
|$T15813| DCD |$L15812|
DCD 0x40000901
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthDisableInts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthDisableInts| PROC
; 341 : {
00000 |$L15812|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M15810|
; 342 : if(pfnEDbgDisableInts)
00004 e59f2014 ldr r2, [pc, #0x14]
00008 e5923000 ldr r3, [r2]
0000c e3530000 cmp r3, #0
; 343 : {
; 344 : pfnEDbgDisableInts();
00010 11a0e00f movne lr, pc
00014 112fff13 bxne r3
; 345 : }
; 346 : }
00018 e49de004 ldr lr, [sp], #4
0001c e12fff1e bx lr
00020 |$L15815|
00020 00000000 DCD |pfnEDbgDisableInts|
00024 |$M15811|
ENDP ; |OEMEthDisableInts|
EXPORT |ProcessVMiniSend|
IMPORT |VBridgeKGetOneTxBuffer|
IMPORT |VBridgeKGetOneTxBufferComplete|
00000 AREA |.text| { |ProcessVMiniSend| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ProcessVMiniSend|, PDATA, SELECTION=5, ASSOC=|.text| { |ProcessVMiniSend| } ; comdat associative
|$T15823| DCD |$L15822|
DCD 0x40001802
; Function compile flags: /Ogsy
00000 AREA |.text| { |ProcessVMiniSend| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ProcessVMiniSend| PROC
; 358 : {
00000 |$L15822|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M15820|
; 359 : PBYTE pVMiniData;
; 360 : DWORD dwVMiniDataLength;
; 361 :
; 362 : // pfnCurrentPacketFilter is NULL.
; 363 : // EP93xx has been enabled to receive all of multicast addresses when OEMEthMulticastList() was called.
; 364 : // Therefore, no need to handle the new filter and the new Multicast list.
; 365 : #if 0
; 366 : ////////////////////////////////////////////////////////////////////////////
; 367 : // Handle the filter if we need to..
; 368 : //
; 369 : if (bNewFilter && pfnCurrentPacketFilter)
; 370 : {
; 371 : bNewFilter = FALSE;
; 372 : pfnCurrentPacketFilter(dwFilter);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -