中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 08:33
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » sata硬盘接口的问题!
可打印版本  3,385 / 6
第1楼 zhgwbzhd 发表于 2006-09-29 23:40
高级用户 发帖 187 积分 506
sata硬盘接口的问题!
现在的硬盘很多都是sata,原来是ide。
对硬盘读写可通过int13.
现在使用int13对sata和ide硬盘都可以进行读写。这个测试完毕。
但是使用io对硬盘进行读写时。用ide没问题,可以使用1f0进行端口的读写。
可是在使用sata时,就不能写成功。
所以我认为是参数不正确,那位朋友知道的可以指点一下。谢谢。
第2楼 zhgwbzhd 发表于 2006-09-30 03:15
高级用户 发帖 187 积分 506
目前只是解决了把sata硬盘认作是第1硬盘的可以解决了。
第3楼 jasonjason 发表于 2007-03-01 04:15
新手上路 发帖 2 积分 6
急,在dos7.1里如何读取硬盘序列号?在线等待
急,在dos7.1里如何读取硬盘序列号?在线等待
第4楼 netwinxp 发表于 2008-07-01 18:15
高级用户 发帖 366 积分 741
SATA IDE模式仍然映射1F0/170口,这个问题不大。对于SATA AHCI模式你可能需要从PCICFG取得分配到的I/O口基址,然后向取得的I/O口发ATA命令看上面是否挂有硬盘。

[ Last edited by netwinxp on 2008-7-1 at 06:44 PM ]
第5楼 libeili 发表于 2008-08-22 16:11
新手上路 发帖 5 积分 7
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了
第6楼 netwinxp 发表于 2008-09-28 13:46
高级用户 发帖 366 积分 741
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段的内容。
第7楼 Carolwhy 发表于 2009-02-09 10:34
新手上路 发帖 1 积分 2
sata 硬盘 在AHCI 模式下如何读取硬盘
我现在已经可把Ahci base address读取出来了,可是下面应该如何操作ATA命令呢,可以用WINIO的读取内存函数操作吗,还有在AHCI spec中的port control register中没有找到data寄存器阿,如何读书据呢,望高手赐教。非常感谢
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023