passionapple 发表于 2008-12-19 18:20:17

求救关于SATA设备reset方法

小弟最近遇到一个问题,一些SATA光驱在热启后不能让光盘托盘缩回去(热启前将托盘打开),一些光驱可以,冷启也可以。通过研究发现,正常的光驱是通过SATA端口的DISABLE,再ENABLE来完成托盘缩进去的动作,可是不正常的光驱执行上述流程后没有动作,故想通过SATA的RESET 命令来完成该动作,苦于对SATA协议不熟,请各位大哥讲解下,小弟在此谢过。(ICH7)

david 发表于 2008-12-22 10:18:46

既然冷启是OK的, 那你在热启过程中发出 PCI Reset , 执行冷启过程即可!

passionapple 发表于 2008-12-22 10:56:12

回复 2# 的帖子

SATA口没有RST信号,且我对CF9进行操作,也会发出PCI RESET信号,但是依然不行!

david 发表于 2008-12-22 11:05:21

那你说的冷启可以,是什么样的冷启方式?请具体点!

如果不可以,应该是你的还是没有真正的执行相同的冷启过程, 因为热启会跳过很多检测和初始化过程, 你应该再次确认一下, 是不是没有真正的执行完整的冷启动, 比如说, 如果你按了H/W的 Reset, 是可以的, 但你发 PCI Reset是不行的, 那你应该仔细找一下这两个方式的差异!

passionapple 发表于 2008-12-22 11:45:54

回复 4# 的帖子

谢谢你的提示,我正在找冷启和热启的区别。就是向CF9写0A,0E可以,写02,06不行,也就是说要掉电下!

phx 发表于 2008-12-22 15:33:54

回复 1# 的帖子

不同的光驱,RESET的方式可能会不一样的.
有些光驱, 只要上电, 就会RESET.(即冷启动, 光盘托盘会缩回去, 而热启, 光驱一直有电,是不可能 reset的)
而有些光驱是靠数据线中一个PIN来reset的..

passionapple 发表于 2008-12-22 16:49:49

回复 4# 的帖子

据研究发现,冷启和热启的区别并不是由于执行代码差异带来的,只是由于冷启会掉电,让光驱重新上电导致复位。

passionapple 发表于 2008-12-23 16:15:18

回复 7# 的帖子

谢谢大家的帮助,这个问题已经解了!
是通过向SATA设备发送RESET命令解的!

凉风有讯 发表于 2009-6-25 23:44:22

回复 8# passionapple 的帖子

是通过该SATA的配置寄存器来发RESET命令吗?

Phydias 发表于 2009-6-26 22:36:31

自力更生, 丰衣足食

这个问题就是SATA CONTROLLER向SATA PORT发RESET CMD实现而已, 你找到了, 哈哈, 成功就好, 干杯!

开发NOTEBOOK不容易吧? 哈哈
页: [1]
查看完整版本: 求救关于SATA设备reset方法