zoukankan      html  css  js  c++  java
  • S3C6410驱动IDE硬盘(转载)

    S3C6410提供两种方式驱动IDE硬盘,PIO模式和UDMA模式,两种模式分别使用不同的接口线。硬件接口如下图

    硬件接口

     http://p.blog.csdn.net/images/p_blog_csdn_net/guetcw/EntryImages/20091015/444.jpg

    2.5寸以下的IDE硬盘接口大都是3.3V可以直接和6410的IO连接不需要电平转换。

    PIO模式使用Xm0这组总线,UDMA模式使用Xhi这组总线,两组总线不能同时候接到IDE硬盘,只能选择一种,将另一组的串联电阻去掉。
    在注册表中添加如下信息
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\6410_CF]
     "Prefix"="IDE"
     "Dll"="s3c6410_cf_atapi.dll"
     "Order"=dword:15
     "Class"=dword:01
     "SubClass"=dword:01
     "ConfigEntry"="GenericConfig"  ; PCI configuration entry point ;;maybe not required
     "Legacy"=dword:01    ; legacy, use Irq for primary and Irq+1 for secondary ;;maybe not required
     "Irq"=dword:54     ; CFCon Virtual IRQ = 84 (0x54), Physical IRQ = 46
     "SysIntr"=dword:00    ; SysIntr not specified
     "DMAAlignment"=dword:04   ; default DMA alignment
     "SoftResetTimeout"=dword:5   ; ATA/ATAPI spec defines 31s ceiling; this is too long
     "StatusPollCycles"=dword:100  ; Status register DRQ/BSY polling; 256 poll cycles
     "StatusPollsPerCycle"=dword:20  ; Status register DRQ/BSY polling; 32 polls per cycle
     "StatusPollCyclePause"=dword:05  ; Status register DRQ/BSY polling; 5 milliseconds between poll cycles
     "IoBase"=multi_sz:"0x70300000","0x70300000"
     "IoLen"=multi_sz:"0x1998","0x1998"
     "RegisterStride"=dword:4   ; Ref. Board ATA register stride; register block is word-contiguous
     "InterfaceType"=dword:0   ; Internal
     "DeviceControlOffset"=dword:20
     "AlternateStatusOffset"=dword:20
     "DeviceId"=dword:00
     "SpawnFunction"="CreateRomi"  ; Reference Board specific instantiation function

    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\6410_CF\Device0]
     "Prefix"="DSK"
     "Dll"="s3c6410_cf_atapi.dll"
     "Order"=dword:16
     "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
      "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
     "InterruptDriven"=dword:00   ; en(1) dis(0)able interrupt driven I/O
     "DMA"=dword:00     ; disable DMA. DMA is not supported
     "DoubleBufferSize"=dword:10000  ; 128 sector (65536 byte) double buffer
     "DrqDataBlockSize"=dword:200  ; 1 sector (512 byte) DRQ data block
     "WriteCache"=dword:01    ; enable on-disk write cache
     "LookAhead"=dword:01    ; enable on-disk look-ahead
     "DeviceId"=dword:00    ; device 0, i.e., primary master
     "TransferMode"=dword:ff   ; use mode 0;
     "EnablePDMA"=dword:1    ; 0 = PIO, 1 = PDMA. We recommend PDMA mode.
     "EnableUDMA"=dword:1    ; 0 = PIO, 1 = UDMA. We recommend UDMA mode.
     "IndirectMode"=dword:1   ; 0 = Direct, 1 = Indirect. (To use UDMA, It should be '0'. UDMA is only working on DIRECT MODE.)

    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\6410_CF]
     "Name"="ATA Type Storage"
     "Folder"="ATADisk"

    "IndirectMode"=dword:1 这里选择控制模式,0为PIO模式,1为UDMA模式。添加后编译BSP包下的DRIVERS\CF_ATAPI。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guetcw/archive/2009/10/15/4674339.aspx 牛人陈大猫博客,还有PC100地址映射与启动、MLC与SLC区别等文章

  • 相关阅读:
    Linux(CentOS6.5)下编译安装Nginx官方最新稳定版(nginx-1.10.0)
    Linux(CentOS6.5)修改系统市区被中国标准时间(北京时间)
    Linux(以CentOS6.5示例)下安装Oracle官方最新版JDK(JDK1.8)
    Linux发行版 CentOS6.5下删除分区操作
    Linux发行版 CentOS6.5下的分区操作
    Linux发行版 CentOS6.5 禁用防火墙步骤
    [置顶] drools规则引擎因为内存泄露导致的内存溢出
    架构师必读经典
    Google Chart API学习(二)
    Google Chart API学习(一)
  • 原文地址:https://www.cnblogs.com/xfdarm/p/1818808.html
Copyright © 2011-2022 走看看