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

📄 halkitl.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 2 页
字号:
	DCD	0x40008202

  00000			 AREA	 |.rdata| { |??_C@_0M@DGOFCCLK@?9InitEther?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0M@DGOFCCLK@?9InitEther?6?$AA@| DCB "-InitEther", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CL@DKAABFIJ@Unable?5to?5initialize?5KITL?5Ether?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CL@DKAABFIJ@Unable?5to?5initialize?5KITL?5Ether?5@| DCB "Unable t"
	DCB	"o initialize KITL Ether transport", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BL@IEMDAFJI@Device?5?$CFs?0?5IP?5?$CFs?0?5Port?5?$CFd?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BL@IEMDAFJI@Device?5?$CFs?0?5IP?5?$CFs?0?5Port?5?$CFd?6?$AA@| DCB "D"
	DCB	"evice %s, IP %s, Port %d", 0xa, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BH@NKNBMIAN@Using?5device?5name?3?5?$CFs?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BH@NKNBMIAN@Using?5device?5name?3?5?$CFs?6?$AA@| DCB "Using devic"
	DCB	"e name: %s", 0xa, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_0M@NJNIIHFK@?$CLInitEther?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0M@NJNIIHFK@?$CLInitEther?6?$AA@| DCB "+InitEther", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

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

  00000		 |InitEther| PROC

; 153  : {

  00000		 |$L15651|
  00000	e92d4ff0	 stmdb       sp!, {r4 - r11, lr}
  00004	e24dd020	 sub         sp, sp, #0x20
  00008		 |$M15649|
  00008	e1a0a000	 mov         r10, r0

; 154  :     EDBG_ADAPTER adp;
; 155  :     DWORD dwDHCPLeaseTime;
; 156  :     DWORD dwSubnetMask;
; 157  : 
; 158  :     KITLOutputDebugString ("+InitEther\n");

  0000c	e59f01f0	 ldr         r0, [pc, #0x1F0]
  00010	eb000000	 bl          EdbgOutputDebugString

; 159  : 
; 160  :     memset (&adp, 0, sizeof(adp));

  00014	e3a02018	 mov         r2, #0x18
  00018	e3a01000	 mov         r1, #0
  0001c	e28d0008	 add         r0, sp, #8
  00020	eb000000	 bl          memset

; 161  :     memset (pKitl, 0, sizeof (KITLTRANSPORT));

  00024	e3a0203c	 mov         r2, #0x3C
  00028	e3a01000	 mov         r1, #0
  0002c	e1a0000a	 mov         r0, r10
  00030	eb000000	 bl          memset

; 162  : 
; 163  :     // use existing code for ether initialization
; 164  :     if (!OEMEthInit (&adp))

  00034	e28d0008	 add         r0, sp, #8
  00038	eb000000	 bl          OEMEthInit
  0003c	e3500000	 cmp         r0, #0

; 165  :         return FALSE;

  00040	0a00003f	 beq         |$L15648|

; 166  : 
; 167  :     // we are going to completely ignore the info in bootargs and the adaptor info
; 168  :     // returned from OEMEthInit, except MAC address. Just to prove that KITL will connect standalone
; 169  : 
; 170  :     // get the MAC address
; 171  :     MyAddr.wMAC[0] = adp.Addr.wMAC[0];

  00044	e59f41b4	 ldr         r4, [pc, #0x1B4]
  00048	e1dd30bc	 ldrh        r3, [sp, #0xC]

; 172  :     MyAddr.wMAC[1] = adp.Addr.wMAC[1];

  0004c	e1dd20be	 ldrh        r2, [sp, #0xE]

; 173  :     MyAddr.wMAC[2] = adp.Addr.wMAC[2];

  00050	e1dd11b0	 ldrh        r1, [sp, #0x10]
  00054	e1c430b4	 strh        r3, [r4, #4]

; 174  :     
; 175  :     if((DRIVER_GLOBALS_POINTER)->eth.EbootMagicNum == EBOOT_MAGIC_NUM )

  00058	e3a0320a	 mov         r3, #0xA, 4
  0005c	e3833b22	 orr         r3, r3, #0x22, 22
  00060	e1c420b6	 strh        r2, [r4, #6]
  00064	e1c410b8	 strh        r1, [r4, #8]
  00068	e5932000	 ldr         r2, [r3]
  0006c	e59f3188	 ldr         r3, [pc, #0x188]
  00070	e1520003	 cmp         r2, r3
  00074	1a000009	 bne         |$L15505|

; 176  :     {
; 177  :         memcpy
; 178  :         (
; 179  :             pKitl->szName, 
; 180  :             (DRIVER_GLOBALS_POINTER)->eth.strEdbgName, 
; 181  :             EDBG_MAX_DEV_NAMELEN
; 182  :         );

  00078	e59f2178	 ldr         r2, [pc, #0x178]
  0007c	e5923000	 ldr         r3, [r2]
  00080	e58a3004	 str         r3, [r10, #4]
  00084	e5923004	 ldr         r3, [r2, #4]
  00088	e58a3008	 str         r3, [r10, #8]
  0008c	e5923008	 ldr         r3, [r2, #8]
  00090	e58a300c	 str         r3, [r10, #0xC]
  00094	e592300c	 ldr         r3, [r2, #0xC]
  00098	e58a3010	 str         r3, [r10, #0x10]

; 183  :     }
; 184  :     else

  0009c	ea000002	 b           |$L15507|
  000a0		 |$L15505|

; 185  :     {
; 186  :         CreateDeviceName(&MyAddr, pKitl->szName);

  000a0	e28a1004	 add         r1, r10, #4
  000a4	e1a00004	 mov         r0, r4
  000a8	eb000000	 bl          CreateDeviceName
  000ac		 |$L15507|

; 187  :     }
; 188  :     KITLOutputDebugString ("Using device name: %s\n", pKitl->szName);

  000ac	e59f0140	 ldr         r0, [pc, #0x140]
  000b0	e28a1004	 add         r1, r10, #4
  000b4	eb000000	 bl          EdbgOutputDebugString

; 189  : 
; 190  :     // If we haven't been given an IP address from our loader (or if we're not using static IP), get an IP address
; 191  :     // from a DHCP server.
; 192  :     if (adp.Addr.dwIP)

  000b8	e59d0008	 ldr         r0, [sp, #8]
  000bc	e3500000	 cmp         r0, #0

; 193  :     {
; 194  :         // Static IP or we got the IP from our bootloader...
; 195  :         MyAddr.dwIP     = adp.Addr.dwIP;
; 196  :         dwSubnetMask    = 0;    // Don't care about subnet mask...
; 197  :         dwDHCPLeaseTime = adp.DHCPLeaseTime;

  000c0	159d3018	 ldrne       r3, [sp, #0x18]
  000c4	13a02000	 movne       r2, #0
  000c8	15840000	 strne       r0, [r4]
  000cc	158d3000	 strne       r3, [sp]
  000d0	158d2004	 strne       r2, [sp, #4]
  000d4	1a000006	 bne         |$L15511|

; 198  :     }
; 199  :     else
; 200  :     {
; 201  :         // Get a DHCP address...
; 202  :         if (!EbootGetDHCPAddr (&MyAddr, &dwSubnetMask, &dwDHCPLeaseTime))

  000d8	e28d2000	 add         r2, sp, #0
  000dc	e28d1004	 add         r1, sp, #4
  000e0	e1a00004	 mov         r0, r4
  000e4	eb000000	 bl          EbootGetDHCPAddr
  000e8	e3500000	 cmp         r0, #0

; 203  :             return FALSE;

  000ec	0a000014	 beq         |$L15648|
  000f0	e5940000	 ldr         r0, [r4]
  000f4		 |$L15511|

; 204  :     }
; 205  : 
; 206  :     MyAddr.wPort = htons (EDBG_SVC_PORT);

  000f4	e3a03cd5	 mov         r3, #0xD5, 24
  000f8	e3833003	 orr         r3, r3, #3

; 207  :     KITLOutputDebugString ("Device %s, IP %s, Port %d\n", pKitl->szName, inet_ntoa (MyAddr.dwIP), htons (MyAddr.wPort));

  000fc	e1c430ba	 strh        r3, [r4, #0xA]
  00100	eb000000	 bl          inet_ntoa
  00104	e1d410ba	 ldrh        r1, [r4, #0xA]
  00108	e1a02000	 mov         r2, r0
  0010c	e59f00dc	 ldr         r0, [pc, #0xDC]
  00110	e1a03401	 mov         r3, r1, lsl #8
  00114	e1a03803	 mov         r3, r3, lsl #16
  00118	e1a03823	 mov         r3, r3, lsr #16
  0011c	e1833421	 orr         r3, r3, r1, lsr #8
  00120	e28a1004	 add         r1, r10, #4
  00124	eb000000	 bl          EdbgOutputDebugString

; 208  : 
; 209  :     // initialize KITL Ethernet transport layer
; 210  :     if (!KitlEtherInit (&MyAddr, dwDHCPLeaseTime)) {

  00128	e59d1000	 ldr         r1, [sp]
  0012c	e1a00004	 mov         r0, r4
  00130	eb000000	 bl          KitlEtherInit
  00134	e3500000	 cmp         r0, #0
  00138	1a000003	 bne         |$L15521|

; 211  :         KITLOutputDebugString ("Unable to initialize KITL Ether transport\n");

  0013c	e59f00a8	 ldr         r0, [pc, #0xA8]
  00140	eb000000	 bl          EdbgOutputDebugString
  00144		 |$L15648|

; 212  :         return FALSE;

  00144	e3a00000	 mov         r0, #0
  00148	ea00001c	 b           |$L15497|
  0014c		 |$L15521|

; 213  :     }
; 214  :     
; 215  :     // fill in the blanks in KITLTRANSPORT structure.
; 216  :     pKitl->FrmHdrSize = KitlEtherGetFrameHdrSize ();

  0014c	eb000000	 bl          KitlEtherGetFrameHdrSize

; 217  :     pKitl->Interrupt = (UCHAR) adp.SysIntrVal;
; 218  :     pKitl->dwPhysBuffer = EDBG_VIRTUAL_MEMORY;
; 219  :     pKitl->dwPhysBufLen = EDBG_MEMORY_SIZE;	// 128K of buffer available
; 220  :     pKitl->dwBootFlags = 0;
; 221  :     pKitl->WindowSize = EDBG_WINDOW_SIZE;
; 222  :     pKitl->pfnDecode = KitlEtherDecodeUDP;
; 223  :     pKitl->pfnEncode = KitlEtherEncodeUDP;
; 224  :     pKitl->pfnSend = EthSendFrame;
; 225  :     pKitl->pfnRecv = OEMEthGetFrame;
; 226  :     pKitl->pfnEnableInt = KitlEthEnableInts;
; 227  :     pKitl->pfnSetHostCfg = SetHostCfg;
; 228  :     pKitl->pfnGetDevCfg = GetDevCfg;
; 229  : 
; 230  :     KITLOutputDebugString ("-InitEther\n");

  00150	e3a0e008	 mov         lr, #8
  00154	e3a03102	 mov         r3, #2, 2
  00158	e59d1014	 ldr         r1, [sp, #0x14]
  0015c	e59f4084	 ldr         r4, [pc, #0x84]
  00160	e59f507c	 ldr         r5, [pc, #0x7C]
  00164	e59f6074	 ldr         r6, [pc, #0x74]
  00168	e59f706c	 ldr         r7, [pc, #0x6C]
  0016c	e59f8064	 ldr         r8, [pc, #0x64]
  00170	e59f905c	 ldr         r9, [pc, #0x5C]
  00174	e5cae015	 strb        lr, [r10, #0x15]
  00178	e59fe050	 ldr         lr, [pc, #0x50]
  0017c	e3833701	 orr         r3, r3, #1, 14
  00180	e1a02000	 mov         r2, r0
  00184	e59f0040	 ldr         r0, [pc, #0x40]
  00188	e58a3018	 str         r3, [r10, #0x18]
  0018c	e3a0b702	 mov         r11, #2, 14
  00190	e3a03000	 mov         r3, #0
  00194	e28ac020	 add         r12, r10, #0x20
  00198	e88c4010	 stmia       r12, {r4, lr}
  0019c	e5ca2016	 strb        r2, [r10, #0x16]
  001a0	e5ca1014	 strb        r1, [r10, #0x14]
  001a4	e58ab01c	 str         r11, [r10, #0x1C]
  001a8	e58a3000	 str         r3, [r10]
  001ac	e28ac028	 add         r12, r10, #0x28
  001b0	e88c02e0	 stmia       r12, {r5 - r7, r9}
  001b4	e58a8038	 str         r8, [r10, #0x38]
  001b8	eb000000	 bl          EdbgOutputDebugString

; 231  : 
; 232  :     return TRUE;

  001bc	e3a00001	 mov         r0, #1
  001c0		 |$L15497|

; 233  : }

  001c0	e28dd020	 add         sp, sp, #0x20
  001c4	e8bd4ff0	 ldmia       sp!, {r4 - r11, lr}
  001c8	e12fff1e	 bx          lr
  001cc		 |$L15654|
  001cc	00000000	 DCD         |??_C@_0M@DGOFCCLK@?9InitEther?6?$AA@|
  001d0	00000000	 DCD         |KitlEtherDecodeUDP|
  001d4	00000000	 DCD         |GetDevCfg|
  001d8	00000000	 DCD         |SetHostCfg|
  001dc	00000000	 DCD         |KitlEthEnableInts|
  001e0	00000000	 DCD         |OEMEthGetFrame|
  001e4	00000000	 DCD         |EthSendFrame|
  001e8	00000000	 DCD         |KitlEtherEncodeUDP|
  001ec	00000000	 DCD         |??_C@_0CL@DKAABFIJ@Unable?5to?5initialize?5KITL?5Ether?5@|
  001f0	00000000	 DCD         |??_C@_0BL@IEMDAFJI@Device?5?$CFs?0?5IP?5?$CFs?0?5Port?5?$CFd?6?$AA@|
  001f4	00000000	 DCD         |??_C@_0BH@NKNBMIAN@Using?5device?5name?3?5?$CFs?6?$AA@|
  001f8	a0008864	 DCD         0xa0008864
  001fc	45424f54	 DCD         0x45424f54
  00200	00000000	 DCD         |MyAddr|
  00204	00000000	 DCD         |??_C@_0M@NJNIIHFK@?$CLInitEther?6?$AA@|
  00208		 |$M15650|

			 ENDP  ; |InitEther|

	EXPORT	|OEMKitlInit|
	EXPORT	|??_C@_0O@JAADGFMP@?$CLOEMKitlInit?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0O@GIMBCOHJ@?9OEMKitlInit?6?$AA@| [ DATA ] ; `string'
	IMPORT	|OEMInitDebugSerial|

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

  00000			 AREA	 |.pdata$$OEMKitlInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMKitlInit| } ; comdat associative
|$T15666| DCD	|$L15665|
	DCD	0x40003a01

  00000			 AREA	 |.rdata| { |??_C@_0O@GIMBCOHJ@?9OEMKitlInit?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0O@GIMBCOHJ@?9OEMKitlInit?6?$AA@| DCB "-OEMKitlInit", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0O@JAADGFMP@?$CLOEMKitlInit?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0O@JAADGFMP@?$CLOEMKitlInit?6?$AA@| DCB "+OEMKitlInit", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

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

  00000		 |OEMKitlInit| PROC

; 246  : {

  00000		 |$L15665|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M15663|
  00004	e1a05000	 mov         r5, r0

; 247  :     BOOL    bReturn = FALSE;
; 248  :     
; 249  : 
; 250  :     OEMInitDebugSerial();

  00008	eb000000	 bl          OEMInitDebugSerial

; 251  :     KITLOutputDebugString ("+OEMKitlInit\n");

  0000c	e59f00d0	 ldr         r0, [pc, #0xD0]
  00010	eb000000	 bl          EdbgOutputDebugString

; 252  : 
; 253  :     //
; 254  :     // Try to find a transport available
; 255  :     // In our case we need to find out which transport was used to download.
; 256  :     //
; 257  :     if(pDriverGlobals->eth.EbootMagicNum == PARALLEL_MAGIC_NUM)

  00014	e3a0320a	 mov         r3, #0xA, 4
  00018	e3833b22	 orr         r3, r3, #0x22, 22
  0001c	e5931000	 ldr         r1, [r3]
  00020	e59f20b8	 ldr         r2, [pc, #0xB8]
  00024	e1510002	 cmp         r1, r2
  00028	1a000002	 bne         |$L15531|

; 258  :     {
; 259  :         bReturn = InitParallelSerial(pKitl);

  0002c	e1a00005	 mov         r0, r5
  00030	eb000000	 bl          InitParallelSerial

; 260  :     }
; 261  :     else if (pDriverGlobals->eth.EbootMagicNum == EBOOT_MAGIC_NUM) 

  00034	ea00001b	 b           |$L15661|
  00038		 |$L15531|
  00038	e59f309c	 ldr         r3, [pc, #0x9C]
  0003c	e1510003	 cmp         r1, r3

; 262  :     {
; 263  :         bActiveKitl = TRUE;

  00040	059f307c	 ldreq       r3, [pc, #0x7C]
  00044	03a02001	 moveq       r2, #1

; 264  :         bReturn = InitEther (pKitl);

  00048	05832000	 streq       r2, [r3]
  0004c	0a000013	 beq         |$L15662|

; 265  :     }
; 266  :     else
; 267  :     {
; 268  :         pDriverGlobals->eth.EdbgHardwareType = EDBG_ADAPTER_CS8950;

  00050	e59f3080	 ldr         r3, [pc, #0x80]

; 269  :         pDriverGlobals->eth.EdbgAddr.wMAC[0] = 0x2400; 

  00054	e59f2078	 ldr         r2, [pc, #0x78]
  00058	e3a01012	 mov         r1, #0x12

; 270  :         pDriverGlobals->eth.EdbgAddr.wMAC[1] = 0x1020;

  0005c	e59f406c	 ldr         r4, [pc, #0x6C]
  00060	e5831000	 str         r1, [r3]

; 271  :         pDriverGlobals->eth.EdbgAddr.wMAC[2] = 0x3412;

  00064	e59f1060	 ldr         r1, [pc, #0x60]
  00068	e3a0ea01	 mov         lr, #1, 20
  0006c	e3a03b0d	 mov         r3, #0xD, 22
  00070	e3a00b09	 mov         r0, #9, 22
  00074	e38ee020	 orr         lr, lr, #0x20
  00078	e3833012	 orr         r3, r3, #0x12
  0007c	e1c200b0	 strh        r0, [r2]

; 272  :         pDriverGlobals->eth.EdbgAddr.dwIP    = 0;

  00080	e59f2040	 ldr         r2, [pc, #0x40]

; 273  : 
; 274  :         bActiveKitl = TRUE;

  00084	e1c4e0b0	 strh        lr, [r4]
  00088	e1c130b0	 strh        r3, [r1]
  0008c	e59f0030	 ldr         r0, [pc, #0x30]
  00090	e3a03000	 mov         r3, #0
  00094	e5823000	 str         r3, [r2]
  00098	e3a03001	 mov         r3, #1
  0009c	e5803000	 str         r3, [r0]
  000a0		 |$L15662|

; 275  :         bReturn = InitEther (pKitl);

  000a0	e1a00005	 mov         r0, r5
  000a4	eb000000	 bl          InitEther
  000a8		 |$L15661|
  000a8	e1a04000	 mov         r4, r0

; 276  :     }
; 277  : 
; 278  : 
; 279  :     KITLOutputDebugString ("-OEMKitlInit\n");

  000ac	e59f000c	 ldr         r0, [pc, #0xC]
  000b0	eb000000	 bl          EdbgOutputDebugString

; 280  :     return bReturn;

  000b4	e1a00004	 mov         r0, r4

; 281  : }

  000b8	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000bc	e12fff1e	 bx          lr
  000c0		 |$L15668|
  000c0	00000000	 DCD         |??_C@_0O@GIMBCOHJ@?9OEMKitlInit?6?$AA@|
  000c4	00000000	 DCD         |bActiveKitl|
  000c8	a0008810	 DCD         0xa0008810
  000cc	a0008818	 DCD         0xa0008818
  000d0	a0008816	 DCD         0xa0008816
  000d4	a0008814	 DCD         0xa0008814
  000d8	a0008860	 DCD         0xa0008860
  000dc	45424f54	 DCD         0x45424f54
  000e0	50415241	 DCD         0x50415241
  000e4	00000000	 DCD         |??_C@_0O@JAADGFMP@?$CLOEMKitlInit?6?$AA@|
  000e8		 |$M15664|

			 ENDP  ; |OEMKitlInit|

	END

⌨️ 快捷键说明

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