Board logo

标题: sata硬盘接口的问题! [打印本页]

作者: zhgwbzhd     时间: 2006-9-29 23:40    标题: sata硬盘接口的问题!

现在的硬盘很多都是sata,原来是ide。
对硬盘读写可通过int13.
现在使用int13对sata和ide硬盘都可以进行读写。这个测试完毕。
但是使用io对硬盘进行读写时。用ide没问题,可以使用1f0进行端口的读写。
可是在使用sata时,就不能写成功。
所以我认为是参数不正确,那位朋友知道的可以指点一下。谢谢。
作者: zhgwbzhd     时间: 2006-9-30 03:15
目前只是解决了把sata硬盘认作是第1硬盘的可以解决了。
作者: jasonjason     时间: 2007-3-1 04:15    标题: 急,在dos7.1里如何读取硬盘序列号?在线等待

急,在dos7.1里如何读取硬盘序列号?在线等待
作者: netwinxp     时间: 2008-7-1 18:15
SATA IDE模式仍然映射1F0/170口,这个问题不大。对于SATA AHCI模式你可能需要从PCICFG取得分配到的I/O口基址,然后向取得的I/O口发ATA命令看上面是否挂有硬盘。

[ Last edited by netwinxp on 2008-7-1 at 06:44 PM ]
作者: libeili     时间: 2008-8-22 16:11


  Quote:
Originally posted by netwinxp at 2008-7-1 06:15 PM:
SATA IDE模式仍然映射1F0/170口,这个问题不大。对于SATA AHCI模式你可能需要从PCICFG取得分配到的I/O口基址,然后向取得的I/O口发ATA命令看上面是否挂有硬 ...

同意此种说法,但是AHCI只是intel公司的一个协议,如果主板支持AHCI的话,可以通过AHCI来访问sata硬盘,具体的端口访问以及fis表及command表的设置需要参考AHCI spec,如果是其它公司的就要看相应spec了
作者: netwinxp     时间: 2008-9-28 13:46


  Quote:
Originally posted by libeili at 2008-8-22 16:11:
同意此种说法,但是AHCI只是intel公司的一个协议,如果主板支持AHCI的话,可以通过AHCI来访问sata硬盘,具体的端口访问以及fis表及command表的设置需要参考AHCI spec,如果是其它公司的就要看相应spec了

硬盘控制器只不过是用来向硬盘发送ATA命令的芯片,一般的ATA读写命令兼容所有的EIDE、PATA、SATA硬盘控制器和硬盘,仅仅用PIO读写而不使用的NCQ的话就不需要用SATA专用的ATA命令。通过PIO模式读写硬盘主要要解决两个问题:
1、IO口基址,不同的Port或Channel对应的口不同。
2、设备选择,大多数PATA、EIDE每个Channel对应两个设备(也有单通道的,只支持一个设备),所以要在ATA包填写DEV段的内容。
作者: Carolwhy     时间: 2009-2-9 10:34    标题: sata 硬盘 在AHCI 模式下如何读取硬盘

我现在已经可把Ahci base address读取出来了,可是下面应该如何操作ATA命令呢,可以用WINIO的读取内存函数操作吗,还有在AHCI spec中的port control register中没有找到data寄存器阿,如何读书据呢,望高手赐教。非常感谢