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

📄 ether.cod

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

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

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


  00000			 AREA	 |.data|, DATA
	 COMMON	|pfnEDbgInit|, 0x4

	 COMMON	|pfnEDbgGetFrame|, 0x4

	 COMMON	|pfnEDbgSendFrame|, 0x4

	 COMMON	|pfnEDbgEnableInts|, 0x4

	 COMMON	|pfnEDbgDisableInts|, 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	|Wait|
	IMPORT	|OALPAtoVA|
; File e:\wm604\platform\seuicbsp\src\bootloader\eboot\ether.c

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

  00000			 AREA	 |.pdata$$Wait|, PDATA, SELECTION=5, ASSOC=|.text| { |Wait| } ; comdat associative
|$T42031| DCD	|$L42030|
	DCD	0x40001201
; Function compile flags: /Ogsy

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

  00000		 |Wait|	 PROC

; 77   : {

  00000		 |$L42030|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M42028|
  00004	e1a04000	 mov         r4, r0

; 78   :     volatile UINT32 *TimerOSCRAddress= (volatile UINT32 *) OALPAtoVA((BULVERDE_BASE_REG_PA_OST + OSCR_OFFSET), FALSE);

  00008	e59f0034	 ldr         r0, [pc, #0x34]
  0000c	e3a01000	 mov         r1, #0
  00010	eb000000	 bl          OALPAtoVA

; 79   :     UINT32 Value, Time;
; 80   : 
; 81   :     Time   = *TimerOSCRAddress;

  00014	e5902000	 ldr         r2, [r0]

; 82   :     Value = Time + (microSeconds * 4);

  00018	e0821104	 add         r1, r2, r4, lsl #2

; 83   :     if (Value < Time)

  0001c	e1510002	 cmp         r1, r2
  00020	2a000002	 bcs         |$L41835|
  00024		 |$L41832|

; 84   :     {  // test for wrap.
; 85   :         while (Time < *TimerOSCRAddress);

  00024	e5903000	 ldr         r3, [r0]
  00028	e1520003	 cmp         r2, r3
  0002c	3afffffc	 bcc         |$L41832|
  00030		 |$L41835|

; 86   :     }
; 87   :     while (*TimerOSCRAddress <= Value);

  00030	e5903000	 ldr         r3, [r0]
  00034	e1530001	 cmp         r3, r1
  00038	9afffffc	 bls         |$L41835|

; 88   : 
; 89   : }

  0003c	e8bd4010	 ldmia       sp!, {r4, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$L42033|
  00044	40a00010	 DCD         0x40a00010
  00048		 |$M42029|

			 ENDP  ; |Wait|

	EXPORT	|msWait|

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

  00000			 AREA	 |.pdata$$msWait|, PDATA, SELECTION=5, ASSOC=|.text| { |msWait| } ; comdat associative
|$T42040| DCD	|$L42039|
	DCD	0x40000601
; Function compile flags: /Ogsy

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

  00000		 |msWait| PROC

; 93   : {

  00000		 |$L42039|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M42037|

; 94   :     Wait(msVal*1000);

  00004	e3a02ffa	 mov         r2, #0xFA, 30
  00008	e0000092	 mul         r0, r2, r0
  0000c	eb000000	 bl          Wait

; 95   : }

  00010	e49de004	 ldr         lr, [sp], #4
  00014	e12fff1e	 bx          lr
  00018		 |$M42038|

			 ENDP  ; |msWait|

	EXPORT	|OALStall|

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

  00000			 AREA	 |.pdata$$OALStall|, PDATA, SELECTION=5, ASSOC=|.text| { |OALStall| } ; comdat associative
|$T42048| DCD	|$L42047|
	DCD	0x40000401
; Function compile flags: /Ogsy

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

  00000		 |OALStall| PROC

; 99   : {

  00000		 |$L42047|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M42045|

; 100  :     Wait(microSeconds);

  00004	eb000000	 bl          Wait

; 101  : }

  00008	e49de004	 ldr         lr, [sp], #4
  0000c	e12fff1e	 bx          lr
  00010		 |$M42046|

			 ENDP  ; |OALStall|

	EXPORT	|LocatePCMCIACard|
	EXPORT	|??_C@_0DO@BCOPPBDF@INFO?3?5Performing?5PCMCIA?5NIC?5init@| [ DATA ] ; `string'
	IMPORT	|EdbgOutputDebugString|

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

  00000			 AREA	 |.pdata$$LocatePCMCIACard|, PDATA, SELECTION=5, ASSOC=|.text| { |LocatePCMCIACard| } ; comdat associative
|$T42078| DCD	|$L42077|
	DCD	0x40004501

  00000			 AREA	 |.rdata| { |??_C@_0DO@BCOPPBDF@INFO?3?5Performing?5PCMCIA?5NIC?5init@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DO@BCOPPBDF@INFO?3?5Performing?5PCMCIA?5NIC?5init@| DCB "INFO: Pe"
	DCB	"rforming PCMCIA NIC initialization.  Please wait...", 0xd
	DCB	0xa, 0x0				; `string'
; Function compile flags: /Ogsy

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

  00000		 |LocatePCMCIACard| PROC

; 105  : {

  00000		 |$L42077|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M42075|
  00004	e1a05000	 mov         r5, r0

; 106  :     UINT32 SlotVoltage = PCMCIA_VCC3V_VPP0V;
; 107  :     volatile UINT32 *pSRCR = NULL;
; 108  :     volatile MAINSTONEII_BLR_REGS *pBLRegs = (volatile MAINSTONEII_BLR_REGS *) OALPAtoVA(MAINSTONEII_BASE_REG_PA_FPGA, FALSE);

  00008	e3a01000	 mov         r1, #0
  0000c	e3a00302	 mov         r0, #2, 6
  00010	eb000000	 bl          OALPAtoVA
  00014	e1a04000	 mov         r4, r0

; 109  :     volatile BULVERDE_MEMCTRL_REG *pMEMCTRLRegs = (volatile BULVERDE_MEMCTRL_REG *) OALPAtoVA(BULVERDE_BASE_REG_PA_MEMC, FALSE);

  00018	e3a00312	 mov         r0, #0x12, 6
  0001c	e3a01000	 mov         r1, #0
  00020	eb000000	 bl          OALPAtoVA
  00024	e1a06000	 mov         r6, r0

; 110  : 
; 111  :     switch (EthDevice)

  00028	e3550000	 cmp         r5, #0
  0002c	0a000003	 beq         |$L41862|
  00030	e3550001	 cmp         r5, #1
  00034	1a000032	 bne         |$L41868|

; 115  :         break;
; 116  :     case ETH_DEVICE_PCMCIA1:       
; 117  :         pSRCR = (volatile UINT32 *)&(pBLRegs->pcmcia1_srcr);

  00038	e28440e4	 add         r4, r4, #0xE4

; 118  :         break;

  0003c	ea000000	 b           |$L41859|
  00040		 |$L41862|

; 112  :     {
; 113  :     case ETH_DEVICE_PCMCIA0:
; 114  :         pSRCR = (volatile UINT32 *)&(pBLRegs->pcmcia0_srcr);

  00040	e28440e0	 add         r4, r4, #0xE0
  00044		 |$L41859|

; 119  :     default:
; 120  :         break;
; 121  :     }
; 122  : 
; 123  :     if (!pSRCR)

  00044	e3540000	 cmp         r4, #0

; 124  :     {
; 125  :         return(FALSE);

  00048	0a00002d	 beq         |$L41868|

; 126  :     }
; 127  : 
; 128  :     // Initialize the PCMCIA interface if a card is detected.
; 129  :     //
; 130  :     if (!((*pSRCR & CARD_DETECT) == CARD_DETECT))

  0004c	e5943000	 ldr         r3, [r4]
  00050	e2033020	 and         r3, r3, #0x20
  00054	e3530020	 cmp         r3, #0x20
  00058	0a000029	 beq         |$L41868|

; 131  :     {
; 132  :         EdbgOutputDebugString("INFO: Performing PCMCIA NIC initialization.  Please wait...\r\n");

  0005c	e59f00ac	 ldr         r0, [pc, #0xAC]
  00060	eb000000	 bl          EdbgOutputDebugString

; 133  : 
; 134  :         // Configure the MAX1602EE power supply based on the voltage requirement of the card.
; 135  :         //
; 136  :         if (((*pSRCR & VS1) == VS1) && ((*pSRCR & VS2) == VS2))

  00064	e5943000	 ldr         r3, [r4]

; 137  :         {
; 138  :             // 5 volt card detected.
; 139  :             //
; 140  :             SlotVoltage = PCMCIA_VCC5V_VPP0V;
; 141  :         }
; 142  :         else
; 143  :         {
; 144  :             // 3.3 volt card detected.
; 145  :             //
; 146  :             SlotVoltage = PCMCIA_VCC3V_VPP0V;
; 147  :         }
; 148  : 
; 149  :         *pSRCR &= ~(PCMCIA_POWER | PCMCIA_RESET);
; 150  :         msWait(50);

  00068	e3a00cc3	 mov         r0, #0xC3, 24
  0006c	e3800050	 orr         r0, r0, #0x50
  00070	e2033040	 and         r3, r3, #0x40
  00074	e3530040	 cmp         r3, #0x40
  00078	05943000	 ldreq       r3, [r4]
  0007c	02033080	 andeq       r3, r3, #0x80
  00080	03530080	 cmpeq       r3, #0x80
  00084	e5943000	 ldr         r3, [r4]
  00088	03a05004	 moveq       r5, #4
  0008c	13a05008	 movne       r5, #8
  00090	e3c3301f	 bic         r3, r3, #0x1F
  00094	e5843000	 str         r3, [r4]
  00098	eb000000	 bl          Wait

; 151  : 
; 152  :         *pSRCR |= SlotVoltage;

  0009c	e5943000	 ldr         r3, [r4]

; 153  :         msWait(50);

  000a0	e3a00cc3	 mov         r0, #0xC3, 24
  000a4	e3800050	 orr         r0, r0, #0x50
  000a8	e1833005	 orr         r3, r3, r5
  000ac	e5843000	 str         r3, [r4]
  000b0	eb000000	 bl          Wait

; 154  : 
; 155  :         *pSRCR |= PCMCIA_RESET;

  000b4	e5943000	 ldr         r3, [r4]

; 156  :         msWait(50);

  000b8	e3a00cc3	 mov         r0, #0xC3, 24
  000bc	e3800050	 orr         r0, r0, #0x50
  000c0	e3833010	 orr         r3, r3, #0x10
  000c4	e5843000	 str         r3, [r4]
  000c8	eb000000	 bl          Wait

; 157  : 
; 158  :         *pSRCR &= ~PCMCIA_RESET;

  000cc	e5943000	 ldr         r3, [r4]

; 159  :         msWait(50);

  000d0	e3a00cc3	 mov         r0, #0xC3, 24
  000d4	e3800050	 orr         r0, r0, #0x50
  000d8	e3c33010	 bic         r3, r3, #0x10
  000dc	e5843000	 str         r3, [r4]
  000e0	eb000000	 bl          Wait

; 160  : 
; 161  :         pMEMCTRLRegs->mecr = 0x3;          
; 162  :         msWait(50);         

  000e4	e3a00cc3	 mov         r0, #0xC3, 24
  000e8	e3a03003	 mov         r3, #3
  000ec	e3800050	 orr         r0, r0, #0x50
  000f0	e5863014	 str         r3, [r6, #0x14]
  000f4	eb000000	 bl          Wait

; 163  : 
; 164  :         return (TRUE);

⌨️ 快捷键说明

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