当前位置:  技术问答>linux和unix

S3C2440 访问IDE硬盘,为何读回的数据都是0?

    来源: 互联网  发布时间:2016-02-15

    本文导语:  平台:S32440,linux 2.6.22, 硬盘连线: CPU的 nGCS1/nGCS2 - 硬盘CS0/CS1 CPU的 Addr3~1     - 硬盘DA2~0     在linux内核中调试硬盘未成功,转到U-Boot下使一个个地操作寄存器。 发现如下问题: 1. 设置硬盘的跳线,作...

平台:S32440,linux 2.6.22,
硬盘连线:
CPU的 nGCS1/nGCS2 - 硬盘CS0/CS1
CPU的 Addr3~1     - 硬盘DA2~0
   

在linux内核中调试硬盘未成功,转到U-Boot下使一个个地操作寄存器。
发现如下问题:
1. 设置硬盘的跳线,作为从盘
2. 直接读取硬盘的Device/Head寄存器(linux中称为IDE_SELECT_REG),值为0x68
3. 往硬盘的Device/Head寄存器中写入0xa0,再回读,值为0x68
4. 往硬盘的Device/Head寄存器中写入0xb0,再回读,值为0x00
这证明硬盘是可以被选中的,但是为什么它的值为0?正确的应该是0xb0。

我又做了一个实验:
1. 设置硬盘的跳线,作为主盘
2. 直接读取硬盘的Device/Head寄存器,值为0x00
3. 往硬盘的Device/Head寄存器中写入0xa0,再回读,值为0x00
4. 往硬盘的Device/Head寄存器中写入0xb0,再回读,值为0x00

我每根信号线都量过了,连接没问题。
请问,为什么读回的值是0呢?
我只有一个万用表,不能进行太复杂的测试。

|
据LZ描述,估计是硬件上问题吧,也就是说从硬件上不支持这种大硬盘,可能大容量硬盘采用了一些其它的技术,而你的板子上没有相应的处理,你试一试相同牌子厂商最近生产的低容量硬盘(这种方式来排除是不是因为新技术的运用而导致不支持),你再试一试其它牌子的大容量硬盘(排除偶然因素)

最后你可以从这些硬盘的各种技术参数入手来进行问题定位.一般说来,硬盘的兼容性很好,因为其规格主要受ATA66/100/133等限制,其它方面都差不了多少,还有就是你要在内核硬盘驱动中找到你用大容量硬盘时,是在什么地方出现不能识别(用printk来输出信息看什么地方出现了问题),这样或许更容易定位问题

|
应该是硬件问题!

|
在内核中确定你的硬盘的型号和厂家是对应的或者兼容的..

|
"日立120G的就不行,80G的三星3.5英寸的也"
去他网站上看看有没有linux驱动的支持,另外就是换高版本的内核,如现在的2.6.22.x的版本试试

|
没弄过这些..你上面的问题好像ATA100只是40g跟80g的区别..如果再试1个40g的也可以的话,还是怀疑接线问题,猜测40脚40芯的线刚刚够40g的数据访问..而80脚40芯的线是通过总线切换访问高40g的..

40脚40芯这些都不懂..帮不到你..

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • s3c2440 u-boot地址问题
  • 请问s3c2440的a/d输入电压值范围是多少啊?谢谢
  • 有用S3C2440搞过3G的吗?
  • S3C2440接NRF24L01无线模块Linux驱动
  • s3c2440 PS/2键盘的驱动文件在哪儿啊?
  • s3c2440的虚拟地址和实际地址是如何转化的
  • 我在S3C2440上配置RT3070时遇到 unknown symbol in module
  • s3c2440移植双网卡遇到的问题
  • 为什么我用S3C2440去控制18B20,reset总是不成功,温度出来不是00就是ff
  • ARM s3c2440串口硬件流控
  • s3c2440与fpga,framebuffer
  • 自己搞不定了,向大家请教s3c2440的RTC驱动
  • u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定,小散100
  • S3C2440开发板上EINT11/GPG3对应的硬件中断号是多少??
  • s3c2440触摸屏驱动


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3