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

📄 diskmain.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 512  : 
; 513  :             if (fIoReadyEnabled) {

  00090	e3550000	 cmp         r5, #0

; 514  :                 dwCycleTime = m_Id.MinimumPIOxferTimeIORDYFlow;

  00094	15d024cc	 ldrneb      r2, [r0, #0x4CC]
  00098	15d034cd	 ldrneb      r3, [r0, #0x4CD]
  0009c	11824403	 orrne       r4, r2, r3, lsl #8

; 515  :             } else {
; 516  :                 dwCycleTime = m_Id.MinimumPIOxferTimeWOFlow;
; 517  :             }
; 518  : 
; 519  :             if (m_Id.AdvancedPIOxferreserved & (1 << 0)) {

  000a0	e5d034c4	 ldrb        r3, [r0, #0x4C4]
  000a4	01a04006	 moveq       r4, r6
  000a8	e3130001	 tst         r3, #1

; 520  :                 dwXferMode |= PIO_MODE3;

  000ac	13811008	 orrne       r1, r1, #8

; 521  :                 dwBestXferMode = 3;

  000b0	13a0e003	 movne       lr, #3

; 522  :                 dwCurrentMode = PIO_MODE3;
; 523  :             }
; 524  : 
; 525  :             if (m_Id.AdvancedPIOxferreserved & (1 << 1)) {

  000b4	e3130002	 tst         r3, #2

; 526  :                 dwXferMode |= PIO_MODE4;

  000b8	13811010	 orrne       r1, r1, #0x10

; 527  :                 dwBestXferMode = 4;

  000bc	13a0e004	 movne       lr, #4
  000c0		 |$L32930|

; 528  :                 dwCurrentMode = PIO_MODE4;
; 529  :             }
; 530  : 
; 531  :             DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities target %d IdentifyData AdvancedPIOModes = 0x%x\r\n"),
; 532  :                          m_dwDevice,
; 533  :                          m_Id.AdvancedPIOxferreserved));
; 534  :         }
; 535  : 
; 536  :         ASSERT (dwCycleTime != UNINITIALIZED_CYCLE_TIME);
; 537  :         ASSERT (dwXferMode);
; 538  :         ASSERT (dwCurrentMode);
; 539  :         
; 540  :         m_dwBestPioCycleTime      = dwCycleTime;
; 541  :         m_dwBestPioMode           = dwBestXferMode;
; 542  : 
; 543  :         //
; 544  :         // figure out all the DMA transfer mode this device supports
; 545  :         //
; 546  :         dwCurrentMode = 0;
; 547  : 
; 548  :         //
; 549  :         // check singleword DMA timing
; 550  :         //
; 551  :         dwCycleTime = UNINITIALIZED_CYCLE_TIME;
; 552  :         dwBestXferMode = UNINITIALIZED_TRANSFER_MODE;
; 553  : 
; 554  :         if (m_Id.SingleDmaModesSupported) {

  000c0	e5d034c0	 ldrb        r3, [r0, #0x4C0]
  000c4	e5804690	 str         r4, [r0, #0x690]
  000c8	e580e6a4	 str         lr, [r0, #0x6A4]
  000cc	e3530000	 cmp         r3, #0
  000d0	e3a0e000	 mov         lr, #0
  000d4	e3e02000	 mvn         r2, #0
  000d8	e3e04000	 mvn         r4, #0
  000dc	0a000016	 beq         |$L32946|

; 555  :             DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData SingleDmaModesSupported = 0x%x\r\n"),                         
; 556  :                          m_dwDevice,
; 557  :                          m_Id.SingleDmaModesSupported));
; 558  : 
; 559  :             DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData SingleWordDMAActive = 0x%x\r\n"),
; 560  :                          m_dwDevice,
; 561  :                          m_Id.SingleDmaTransferActive));
; 562  : 
; 563  :             if (m_Id.SingleDmaModesSupported & (1 << 0)) {

  000e0	e3130001	 tst         r3, #1

; 564  :                 dwCycleTime = SWDMA_MODE0_CYCLE_TIME;

  000e4	13a02d0f	 movne       r2, #0xF, 26

; 565  :                 dwXferMode |= SWDMA_MODE0;

  000e8	13811020	 orrne       r1, r1, #0x20

; 566  :                 dwBestXferMode = 0;

  000ec	13a04000	 movne       r4, #0

; 567  :             }
; 568  :             if (m_Id.SingleDmaModesSupported & (1 << 1)) {

  000f0	e3130002	 tst         r3, #2

; 569  :                 dwCycleTime = SWDMA_MODE1_CYCLE_TIME;

  000f4	13a02e1e	 movne       r2, #0x1E, 28

; 570  :                 dwXferMode |= SWDMA_MODE1;

  000f8	13811040	 orrne       r1, r1, #0x40

; 571  :                 dwBestXferMode = 1;

  000fc	13a04001	 movne       r4, #1

; 572  :             }
; 573  :             if (m_Id.SingleDmaModesSupported & (1 << 2)) {

  00100	e3130004	 tst         r3, #4

; 574  :                 dwCycleTime = SWDMA_MODE2_CYCLE_TIME;
; 575  :                 dwXferMode |= SWDMA_MODE2;
; 576  :                 dwBestXferMode = 2;
; 577  :             }
; 578  : 
; 579  :             if (m_Id.SingleDmaTransferActive) {

  00104	e5d034c1	 ldrb        r3, [r0, #0x4C1]
  00108	13a020f0	 movne       r2, #0xF0
  0010c	13811080	 orrne       r1, r1, #0x80
  00110	13a04002	 movne       r4, #2
  00114	e3530000	 cmp         r3, #0
  00118	0a000007	 beq         |$L32946|

; 580  : 
; 581  :                 if (m_Id.SingleDmaTransferActive & IDD_SWDMA_MODE2_ACTIVE) {

  0011c	e3130004	 tst         r3, #4

; 582  :                     dwCurrentMode = SWDMA_MODE2;

  00120	13a0e080	 movne       lr, #0x80
  00124	1a000004	 bne         |$L32946|

; 583  :                 } else if (m_Id.SingleDmaTransferActive & IDD_SWDMA_MODE1_ACTIVE) {

  00128	e3130002	 tst         r3, #2

; 584  :                     dwCurrentMode = SWDMA_MODE1;

  0012c	13a0e040	 movne       lr, #0x40
  00130	1a000001	 bne         |$L32946|

; 585  :                 }  else if (m_Id.SingleDmaTransferActive & IDD_SWDMA_MODE0_ACTIVE) {

  00134	e3130001	 tst         r3, #1

; 586  :                     dwCurrentMode = SWDMA_MODE0;

  00138	13a0e020	 movne       lr, #0x20
  0013c		 |$L32946|

; 587  :                 }
; 588  :             }
; 589  :         }
; 590  : 
; 591  :         m_dwBestSwDmaCycleTime    = dwCycleTime;
; 592  :         m_dwBestSwDmaMode         = dwBestXferMode;
; 593  : 
; 594  :         //
; 595  :         // check multiword DMA timing
; 596  :         //
; 597  :         dwCycleTime = UNINITIALIZED_CYCLE_TIME;
; 598  :         dwBestXferMode = UNINITIALIZED_TRANSFER_MODE;
; 599  : 
; 600  :         if (m_Id.MultiDmaModesSupported) {

  0013c	e5d034c2	 ldrb        r3, [r0, #0x4C2]
  00140	e58046a8	 str         r4, [r0, #0x6A8]
  00144	e5802694	 str         r2, [r0, #0x694]
  00148	e3530000	 cmp         r3, #0
  0014c	e3e04000	 mvn         r4, #0
  00150	e3e05000	 mvn         r5, #0
  00154	0a000016	 beq         |$L32958|

; 601  :             DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData MultiWordDMASupport = 0x%x\r\n"),                             
; 602  :                          m_dwDevice,
; 603  :                          m_Id.MultiDmaModesSupported));
; 604  :             DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData MultiWordDMAActive = 0x%x\r\n"),                
; 605  :                          m_dwDevice,
; 606  :                          m_Id.SingleDmaTransferActive));
; 607  : 
; 608  :             if (m_Id.MultiDmaModesSupported & (1 << 0)) {

  00158	e3130001	 tst         r3, #1

; 609  :                 dwCycleTime = MWDMA_MODE0_CYCLE_TIME;

  0015c	13a04e1e	 movne       r4, #0x1E, 28

; 610  :                 dwXferMode |= MWDMA_MODE0;

  00160	13811c01	 orrne       r1, r1, #1, 24

; 611  :                 dwBestXferMode = 0;

  00164	13a05000	 movne       r5, #0

; 612  :             }
; 613  : 
; 614  :             if (m_Id.MultiDmaModesSupported & (1 << 1)) {

  00168	e3130002	 tst         r3, #2

; 615  :                 dwCycleTime = MWDMA_MODE1_CYCLE_TIME;

  0016c	13a04096	 movne       r4, #0x96

; 616  :                 dwXferMode |= MWDMA_MODE1;

  00170	13811c02	 orrne       r1, r1, #2, 24

; 617  :                 dwBestXferMode = 1;

  00174	13a05001	 movne       r5, #1

; 618  :             }
; 619  : 
; 620  :             if (m_Id.MultiDmaModesSupported & (1 << 2)) {

  00178	e3130004	 tst         r3, #4

; 621  :                 dwCycleTime = MWDMA_MODE2_CYCLE_TIME;
; 622  :                 dwXferMode |= MWDMA_MODE2;
; 623  :                 dwBestXferMode = 2;
; 624  :             }
; 625  : 
; 626  :             if (m_Id.MultiDmaTransferActive) {

  0017c	e5d034c3	 ldrb        r3, [r0, #0x4C3]
  00180	13a04078	 movne       r4, #0x78
  00184	13811b01	 orrne       r1, r1, #1, 22
  00188	13a05002	 movne       r5, #2
  0018c	e3530000	 cmp         r3, #0
  00190	0a000007	 beq         |$L32958|

; 627  :                 if (m_Id.MultiDmaTransferActive & IDD_MWDMA_MODE2_ACTIVE) {

  00194	e3130004	 tst         r3, #4

; 628  :                     dwCurrentMode = MWDMA_MODE2;

  00198	13a0eb01	 movne       lr, #1, 22
  0019c	1a000004	 bne         |$L32958|

; 629  :                 } else if (m_Id.MultiDmaTransferActive & IDD_MWDMA_MODE1_ACTIVE) {

  001a0	e3130002	 tst         r3, #2

; 630  :                     dwCurrentMode = MWDMA_MODE1;

  001a4	13a0ec02	 movne       lr, #2, 24
  001a8	1a000001	 bne         |$L32958|

; 631  :                 }  else if (m_Id.MultiDmaTransferActive & IDD_MWDMA_MODE0_ACTIVE) {

  001ac	e3130001	 tst         r3, #1

; 632  :                     dwCurrentMode = MWDMA_MODE0;

  001b0	13a0ec01	 movne       lr, #1, 24
  001b4		 |$L32958|

; 633  :                 }
; 634  :             }
; 635  :         }
; 636  : 
; 637  :         if (m_Id.TranslationFieldsValid & (1 << 1)) {

  001b4	e3570000	 cmp         r7, #0
  001b8	0a000008	 beq         |$L32961|

; 638  : 
; 639  :             DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData word 64-70 are valid\r\n"), m_dwDevice));
; 640  : 
; 641  :             if (m_Id.MinimumMultiwordDMATime &&
; 642  :                 m_Id.ManuRecomendedDMATime) {

  001bc	e5d024c6	 ldrb        r2, [r0, #0x4C6]
  001c0	e5d034c7	 ldrb        r3, [r0, #0x4C7]
  001c4	e1923403	 orrs        r3, r2, r3, lsl #8

; 643  :                 DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData MinimumPIOxferTimeWOFlow = 0x%x\r\n"),                                 
; 644  :                              m_dwDevice,
; 645  :                              m_Id.MinimumPIOxferTimeWOFlow));
; 646  :                 DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData ManuRecomendedDMATime = 0x%x\r\n"),
; 647  :                              m_dwDevice,
; 648  :                              m_Id.ManuRecomendedDMATime));
; 649  :                 dwCycleTime = m_Id.MinimumPIOxferTimeIORDYFlow;
; 650  :             }
; 651  :         }
; 652  : 
; 653  :         m_dwBestMwDmaCycleTime = dwCycleTime;
; 654  :         m_dwBestMwDmaMode      = dwBestXferMode;
; 655  : 
; 656  :         //
; 657  :         // figure out the ultra DMA timing the device supports
; 658  :         //
; 659  :         dwCycleTime = UNINITIALIZED_CYCLE_TIME;
; 660  :         dwBestXferMode = UNINITIALIZED_TRANSFER_MODE;
; 661  : 
; 662  :         if (m_Id.TranslationFieldsValid & (1 << 2)) {
; 663  :             if (m_Id.UltraDMASupport) {
; 664  :                 DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData UltraDMASupport = 0x%x\r\n"),                                 
; 665  :                              m_dwDevice,
; 666  :                              m_Id.UltraDMASupport));
; 667  :                 DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilitiestarget %d IdentifyData UltraDMAActive = 0x%x\r\n"),                                 
; 668  :                              m_dwDevice,
; 669  :                              m_Id.UltraDMAActive));
; 670  :                 if (m_Id.UltraDMASupport & (1 << 0)) {
; 671  :                     dwCycleTime = UDMA_MODE0_CYCLE_TIME;
; 672  :                     dwXferMode |= UDMA_MODE0;
; 673  :                     dwBestXferMode = 0;
; 674  :                 }
; 675  :                 if (m_Id.UltraDMASupport & (1 << 1)) {
; 676  :                     dwCycleTime = UDMA_MODE1_CYCLE_TIME;
; 677  :                     dwXferMode |= UDMA_MODE1;
; 678  :                     dwBestXferMode = 1;
; 679  :                 }
; 680  :                 if (m_Id.UltraDMASupport & (1 << 2)) {
; 681  :                     dwCycleTime = UDMA_MODE2_CYCLE_TIME;
; 682  :                     dwXferMode |= UDMA_MODE2;
; 683  :                     dwBestXferMode = 2;
; 684  :                 }
; 685  :                 if (m_Id.UltraDMASupport & (1 << 3)) {
; 686  :                     dwCycleTime = UDMA_MODE3_CYCLE_TIME;
; 687  :                     dwXferMode |= UDMA_MODE3;
; 688  :                     dwBestXferMode = 3;
; 689  :                 }
; 690  :                 if (m_Id.UltraDMASupport & (1 << 4)) {
; 691  :                     dwCycleTime = UDMA_MODE4_CYCLE_TIME;
; 692  :                     dwXferMode |= UDMA_MODE4;
; 693  :                     dwBestXferMode = 4;
; 694  :                 }
; 695  :             }
; 696  : 
; 697  :             if (m_Id.UltraDMAActive) {
; 698  :                 if (m_Id.UltraDMAActive & IDD_UDMA_MODE4_ACTIVE) {
; 699  :                     dwCurrentMode = UDMA_MODE4;
; 700  :                 } else if (m_Id.UltraDMAActive & IDD_UDMA_MODE3_ACTIVE) {
; 701  :                     dwCurrentMode = UDMA_MODE3;
; 702  :                 } else if (m_Id.UltraDMAActive & IDD_UDMA_MODE2_ACTIVE) {
; 703  :                     dwCurrentMode = UDMA_MODE2;
; 704  :                 } else if (m_Id.UltraDMAActive & IDD_UDMA_MODE1_ACTIVE) {
; 705  :                     dwCurrentMode = UDMA_MODE1;
; 706  :                 }  else if (m_Id.UltraDMAActive & IDD_UDMA_MODE0_ACTIVE) {
; 707  :                     dwCurrentMode = UDMA_MODE0;
; 708  :                 }
; 709  :             }
; 710  :         }
; 711  : 
; 712  :         //

⌨️ 快捷键说明

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