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

📄 detection.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 2 页
字号:
  0000c	e58d3000	 str         r3, [sp]

; 144  :     m_BootDeviceType = BOOT_FROM_IDE_ATADISK;

  00010	e59f2070	 ldr         r2, [pc, #0x70]
  00014	e3a03c02	 mov         r3, #2, 24
  00018	e3833001	 orr         r3, r3, #1
  0001c	e5823000	 str         r3, [r2]

; 145  : 
; 146  :         
; 147  :     if(ide_reset())

  00020	eb000000	 bl          ide_reset
  00024	e58d0008	 str         r0, [sp, #8]
  00028	e59d3008	 ldr         r3, [sp, #8]
  0002c	e3530000	 cmp         r3, #0
  00030	0a000002	 beq         |$L38635|

; 148  :     {
; 149  :         // EdbgOutputDebugString("ide_reset failed.\r\n");
; 150  :         return( result );

  00034	e59d3000	 ldr         r3, [sp]
  00038	e58d3004	 str         r3, [sp, #4]
  0003c	ea00000c	 b           |$L38633|
  00040		 |$L38635|

; 151  :     }
; 152  :     EdbgOutputDebugString("ide_reset succeeded.\r\n");

  00040	e59f003c	 ldr         r0, [pc, #0x3C]
  00044	eb000000	 bl          EdbgOutputDebugString

; 153  : 
; 154  :     ide_enable();

  00048	eb000000	 bl          ide_enable

; 155  : 
; 156  :     if (id_drive())

  0004c	eb000000	 bl          id_drive
  00050	e58d000c	 str         r0, [sp, #0xC]
  00054	e59d300c	 ldr         r3, [sp, #0xC]
  00058	e3530000	 cmp         r3, #0
  0005c	0a000002	 beq         |$L38637|

; 157  :     {
; 158  :         // EdbgOutputDebugString("id_drive failed.\r\n");
; 159  :         return( result );

  00060	e59d3000	 ldr         r3, [sp]
  00064	e58d3004	 str         r3, [sp, #4]
  00068	ea000001	 b           |$L38633|
  0006c		 |$L38637|

; 160  :     }
; 161  :     // EdbgOutputDebugString("id_drive succeeded.\r\n");
; 162  : 
; 163  :     return( TRUE );

  0006c	e3a03001	 mov         r3, #1
  00070	e58d3004	 str         r3, [sp, #4]
  00074		 |$L38633|

; 148  :     {
; 149  :         // EdbgOutputDebugString("ide_reset failed.\r\n");
; 150  :         return( result );

  00074	e59d0004	 ldr         r0, [sp, #4]

; 164  : }

  00078	e28dd010	 add         sp, sp, #0x10
  0007c	e49de004	 ldr         lr, [sp], #4
  00080	e12fff1e	 bx          lr
  00084		 |$L38737|
  00084	00000000	 DCD         |??_C@_0BH@ENDOJKGM@ide_reset?5succeeded?4?$AN?6?$AA@|
  00088	00000000	 DCD         |m_BootDeviceType|
  0008c		 |$M38733|

			 ENDP  ; |OEM_IDE_HDDDetect|

	EXPORT	|OEMNE2000Detect|

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

  00000			 AREA	 |.pdata$$OEMNE2000Detect|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMNE2000Detect| } ; comdat associative
|$T38744| DCD	|$L38743|
	DCD	0x40003702
; Function compile flags: /Ods

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

  00000		 |OEMNE2000Detect| PROC

; 216  : {

  00000		 |$L38743|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M38741|

; 217  :     //
; 218  :     // Check to make sure that a card is inserted into the card slot.
; 219  :     //    
; 220  :     if(*GPIO_PFDR & ( GPIOF_PCMCIA_CD1 | GPIOF_PCMCIA_CD2 ) )

  00008	e59f30c8	 ldr         r3, [pc, #0xC8]
  0000c	e5933000	 ldr         r3, [r3]
  00010	e3130006	 tst         r3, #6
  00014	0a000002	 beq         |$L38653|

; 221  :     {
; 222  :         return FALSE;

  00018	e3a03000	 mov         r3, #0
  0001c	e58d3000	 str         r3, [sp]
  00020	ea000027	 b           |$L38651|
  00024		 |$L38653|

; 223  :     }
; 224  : 
; 225  :     //
; 226  :     // Read certain locations in attribute space to see if it is a compact flash 
; 227  :     // cards.
; 228  :     //
; 229  :     PCMCIAParseTuples();

  00024	eb000000	 bl          PCMCIAParseTuples

; 230  : 
; 231  :     //
; 232  :     // Check to see if it is a Socket LPE NE2000 card.
; 233  :     //
; 234  :     if(g_sPcmciaInfo.usManfID == MANFID_SOCKET && 
; 235  :       (g_sPcmciaInfo.ucProdID == PRODID_SOCKET_LPE || 
; 236  :        g_sPcmciaInfo.ucProdID == PRODID_SOCKET_LPE_CF))

  00028	e59f30a4	 ldr         r3, [pc, #0xA4]
  0002c	e1d330b4	 ldrh        r3, [r3, #4]
  00030	e3530f41	 cmp         r3, #0x41, 30
  00034	1a00000e	 bne         |$L38654|
  00038	e59f3094	 ldr         r3, [pc, #0x94]
  0003c	e5d33006	 ldrb        r3, [r3, #6]
  00040	e353000d	 cmp         r3, #0xD
  00044	0a000003	 beq         |$L38655|
  00048	e59f3084	 ldr         r3, [pc, #0x84]
  0004c	e5d33006	 ldrb        r3, [r3, #6]
  00050	e3530075	 cmp         r3, #0x75
  00054	1a000006	 bne         |$L38654|
  00058		 |$L38655|

; 237  :     {
; 238  :         *(volatile unsigned short *)(PCMCIACARD_ATTRIBUTE + 0x3F8) = 0x21;

  00058	e3a03312	 mov         r3, #0x12, 6
  0005c	e3832ffe	 orr         r2, r3, #0xFE, 30
  00060	e3a03021	 mov         r3, #0x21
  00064	e1c230b0	 strh        r3, [r2]

; 239  :         return TRUE;

  00068	e3a03001	 mov         r3, #1
  0006c	e58d3000	 str         r3, [sp]
  00070	ea000013	 b           |$L38651|
  00074		 |$L38654|

; 240  :     }
; 241  : 
; 242  :     //
; 243  :     // Check to see if it is a Corega NE2000 card.
; 244  :     //
; 245  :     if(g_sPcmciaInfo.usManfID == MANFID_COREGA && 
; 246  :        g_sPcmciaInfo.ucProdID == PRODID_COREGA_PCCT )

  00074	e59f3058	 ldr         r3, [pc, #0x58]
  00078	e1d330b4	 ldrh        r3, [r3, #4]
  0007c	e1a02003	 mov         r2, r3
  00080	e3a03903	 mov         r3, #3, 18
  00084	e383300f	 orr         r3, r3, #0xF
  00088	e1520003	 cmp         r2, r3
  0008c	1a00000a	 bne         |$L38657|
  00090	e59f303c	 ldr         r3, [pc, #0x3C]
  00094	e5d33006	 ldrb        r3, [r3, #6]
  00098	e3530000	 cmp         r3, #0
  0009c	1a000006	 bne         |$L38657|

; 247  :     {
; 248  :        *(volatile unsigned short *)(PCMCIACARD_ATTRIBUTE + 0x3F8) = 0x26;

  000a0	e3a03312	 mov         r3, #0x12, 6
  000a4	e3832ffe	 orr         r2, r3, #0xFE, 30
  000a8	e3a03026	 mov         r3, #0x26
  000ac	e1c230b0	 strh        r3, [r2]

; 249  :         return TRUE;

  000b0	e3a03001	 mov         r3, #1
  000b4	e58d3000	 str         r3, [sp]
  000b8	ea000001	 b           |$L38651|
  000bc		 |$L38657|

; 250  :     }
; 251  :     
; 252  :     return FALSE;    

  000bc	e3a03000	 mov         r3, #0
  000c0	e58d3000	 str         r3, [sp]
  000c4		 |$L38651|

; 221  :     {
; 222  :         return FALSE;

  000c4	e59d0000	 ldr         r0, [sp]

; 253  : }

  000c8	e28dd004	 add         sp, sp, #4
  000cc	e49de004	 ldr         lr, [sp], #4
  000d0	e12fff1e	 bx          lr
  000d4		 |$L38746|
  000d4	00000000	 DCD         |g_sPcmciaInfo|
  000d8	80840030	 DCD         0x80840030
  000dc		 |$M38742|

			 ENDP  ; |OEMNE2000Detect|

	EXPORT	|??_C@_0DB@MNAGGIHC@ManfID?5?$DN?50x?$CFx?0?5ProdID?5?$DN?50x?$CFx?0?5uc@| [ DATA ] ; `string'

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

  00000			 AREA	 |.pdata$$PCMCIAParseTuples|, PDATA, SELECTION=5, ASSOC=|.text| { |PCMCIAParseTuples| } ; comdat associative
|$T38752| DCD	|$L38751|
	DCD	0x40005602

  00000			 AREA	 |.rdata| { |??_C@_0DB@MNAGGIHC@ManfID?5?$DN?50x?$CFx?0?5ProdID?5?$DN?50x?$CFx?0?5uc@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DB@MNAGGIHC@ManfID?5?$DN?50x?$CFx?0?5ProdID?5?$DN?50x?$CFx?0?5uc@| DCB "M"
	DCB	"anfID = 0x%x, ProdID = 0x%x, ucFundID = 0x%x ", 0xd, 0xa
	DCB	0x0					; `string'
; Function compile flags: /Ods

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

  00000		 |PCMCIAParseTuples| PROC

; 263  : {

  00000		 |$L38751|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M38749|

; 264  :     volatile unsigned short *pCis = (volatile unsigned short *)PCMCIACARD_ATTRIBUTE;

  00008	e3a03312	 mov         r3, #0x12, 6
  0000c	e58d3000	 str         r3, [sp]

; 265  : 
; 266  :     //
; 267  :     // Return if the PCMCIA has already been parsed.
; 268  :     //
; 269  :     if(g_sPcmciaInfo.bInitialized)

  00010	e59f3138	 ldr         r3, [pc, #0x138]
  00014	e5933000	 ldr         r3, [r3]
  00018	e3530000	 cmp         r3, #0
  0001c	0a000000	 beq         |$L38663|

; 270  :     {
; 271  :         return;

  00020	ea000047	 b           |$L38660|
  00024		 |$L38663|
  00024		 |$L38666|

; 272  :     }
; 273  :         
; 274  :     //
; 275  :     // Search thru all the CIS tuples until find CISTPL_VERS_1
; 276  :     // tuple or reach the end of all tuples
; 277  :     //
; 278  :     while ((*pCis & 0xFF) != CISTPL_END && ((ULONG)pCis < PCMCIACARD_ATTRIBUTE + 0x500))

  00024	e59d3000	 ldr         r3, [sp]
  00028	e1d330b0	 ldrh        r3, [r3]
  0002c	e20330ff	 and         r3, r3, #0xFF
  00030	e35300ff	 cmp         r3, #0xFF
  00034	0a000037	 beq         |$L38667|
  00038	e59d2000	 ldr         r2, [sp]
  0003c	e3a03312	 mov         r3, #0x12, 6
  00040	e3833c05	 orr         r3, r3, #5, 24
  00044	e1520003	 cmp         r2, r3
  00048	2a000032	 bcs         |$L38667|

; 279  :     {
; 280  :         switch (*pCis & 0xFF)

  0004c	e59d3000	 ldr         r3, [sp]
  00050	e1d330b0	 ldrh        r3, [r3]
  00054	e20330ff	 and         r3, r3, #0xFF
  00058	e58d3004	 str         r3, [sp, #4]
  0005c	e59d3004	 ldr         r3, [sp, #4]
  00060	e3530020	 cmp         r3, #0x20
  00064	0a000003	 beq         |$L38672|
  00068	e59d3004	 ldr         r3, [sp, #4]
  0006c	e3530021	 cmp         r3, #0x21
  00070	0a000016	 beq         |$L38673|
  00074	ea00001c	 b           |$L38675|
  00078		 |$L38672|

; 281  :         {
; 282  :             case CISTPL_MANFID:      
; 283  :                 g_sPcmciaInfo.usManfID = (pCis[2] & 0xFF) | ((pCis[3] & 0xFF) << 8);

  00078	e59d3000	 ldr         r3, [sp]
  0007c	e2833004	 add         r3, r3, #4
  00080	e1d330b0	 ldrh        r3, [r3]
  00084	e20320ff	 and         r2, r3, #0xFF
  00088	e59d3000	 ldr         r3, [sp]
  0008c	e2833006	 add         r3, r3, #6
  00090	e1d330b0	 ldrh        r3, [r3]
  00094	e20330ff	 and         r3, r3, #0xFF
  00098	e1a03403	 mov         r3, r3, lsl #8
  0009c	e1823003	 orr         r3, r2, r3
  000a0	e1a02803	 mov         r2, r3, lsl #16
  000a4	e1a02822	 mov         r2, r2, lsr #16
  000a8	e59f30a0	 ldr         r3, [pc, #0xA0]
  000ac	e1c320b4	 strh        r2, [r3, #4]

; 284  :                 g_sPcmciaInfo.ucProdID = pCis[4] & 0xFF;

  000b0	e59d3000	 ldr         r3, [sp]
  000b4	e2833008	 add         r3, r3, #8
  000b8	e1d330b0	 ldrh        r3, [r3]
  000bc	e20330ff	 and         r3, r3, #0xFF
  000c0	e20320ff	 and         r2, r3, #0xFF
  000c4	e59f3084	 ldr         r3, [pc, #0x84]
  000c8	e5c32006	 strb        r2, [r3, #6]

; 285  :                 break;

  000cc	ea000006	 b           |$L38669|
  000d0		 |$L38673|

; 286  :             case CISTPL_FUNCID:      
; 287  :                 g_sPcmciaInfo.ucFuncID = (UCHAR)(pCis[2] & 0xFF);

  000d0	e59d3000	 ldr         r3, [sp]
  000d4	e2833004	 add         r3, r3, #4
  000d8	e1d330b0	 ldrh        r3, [r3]
  000dc	e20330ff	 and         r3, r3, #0xFF
  000e0	e20320ff	 and         r2, r3, #0xFF
  000e4	e59f3064	 ldr         r3, [pc, #0x64]
  000e8	e5c32007	 strb        r2, [r3, #7]
  000ec		 |$L38675|
  000ec		 |$L38669|

; 288  :                 break;
; 289  :             default:
; 290  :                 break;
; 291  :         }
; 292  :         pCis += (*(pCis + 1) & 0xFF) + 2;  

  000ec	e59d3000	 ldr         r3, [sp]
  000f0	e2833002	 add         r3, r3, #2
  000f4	e1d330b0	 ldrh        r3, [r3]
  000f8	e20330ff	 and         r3, r3, #0xFF
  000fc	e2831002	 add         r1, r3, #2
  00100	e3a03002	 mov         r3, #2
  00104	e0020391	 mul         r2, r1, r3
  00108	e59d3000	 ldr         r3, [sp]
  0010c	e0833002	 add         r3, r3, r2
  00110	e58d3000	 str         r3, [sp]

; 293  :     }

  00114	eaffffc2	 b           |$L38666|
  00118		 |$L38667|

; 294  : 
; 295  :     EdbgOutputDebugString
; 296  :     (
; 297  :         "ManfID = 0x%x, ProdID = 0x%x, ucFundID = 0x%x \r\n", 
; 298  :         (unsigned int)g_sPcmciaInfo.usManfID,
; 299  :         (unsigned int) g_sPcmciaInfo.ucProdID,
; 300  :         (unsigned int)g_sPcmciaInfo.ucFuncID
; 301  :     );

  00118	e59f3030	 ldr         r3, [pc, #0x30]
  0011c	e5d33007	 ldrb        r3, [r3, #7]
  00120	e59f2028	 ldr         r2, [pc, #0x28]
  00124	e5d22006	 ldrb        r2, [r2, #6]
  00128	e59f1020	 ldr         r1, [pc, #0x20]
  0012c	e1d110b4	 ldrh        r1, [r1, #4]
  00130	e59f001c	 ldr         r0, [pc, #0x1C]
  00134	eb000000	 bl          EdbgOutputDebugString

; 302  : 
; 303  :     g_sPcmciaInfo.bInitialized = TRUE;

  00138	e59f2010	 ldr         r2, [pc, #0x10]
  0013c	e3a03001	 mov         r3, #1
  00140	e5823000	 str         r3, [r2]
  00144		 |$L38660|

; 304  : }        

  00144	e28dd008	 add         sp, sp, #8
  00148	e49de004	 ldr         lr, [sp], #4
  0014c	e12fff1e	 bx          lr
  00150		 |$L38754|
  00150	00000000	 DCD         |g_sPcmciaInfo|
  00154	00000000	 DCD         |??_C@_0DB@MNAGGIHC@ManfID?5?$DN?50x?$CFx?0?5ProdID?5?$DN?50x?$CFx?0?5uc@|
  00158		 |$M38750|

			 ENDP  ; |PCMCIAParseTuples|

	END

⌨️ 快捷键说明

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