读取硬盘 ROM 问题
大哥们:问题一:
在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
问题二:
假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
举个例子:本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
问题三:
我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
(问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ] 第一个是的, 首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
但是我又不敢肯定。我想是不是权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵 弱弱的问一下,你说的读取IDE硬盘ROM的信息,
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
另外,ADU读到的什么信息,你认为有错误呢? "你说的读取IDE硬盘ROM的信息,
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
-->恩,是的
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
-->恩,谢谢!
另外,ADU读到的什么信息,你认为有错误呢?
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
spec 有这样的定义
ata6中
第85word:
15 Obsolete -------- 0
14 1 = NOP command enabled -------- 0 这里应该是disable 可是 adu显示是 enable
13 1 = READ BUFFER command enabled -------- 1 这里应该是enable 可是 adu显示是 may be disable
12 1 = WRITE BUFFER command enabled -------- 1 吻合
11 Obsolete -------- 0
10 1 = Host Protected Area feature set enabled- 1 吻合
9 1 = DEVICE RESET command enabled -------- 0 这里应该是disable 可是 adu显示是 enable
8 1 = SERVICE interrupt enabled -------- 0 这里应该是disable 可是 adu显示是 enable
7 1 = release interrupt enabled -------- 0 这里应该是disable 可是 adu显示是 enable
6 1 = look-ahead enabled -------- 1 吻合
5 1 = write cache enabled -------- 1 吻合
4 Shall be cleared to zero -------- 0 ?为什么是 0 这里也是我的一个疑问
3 1 = Power Management feature set enabled 1 吻合
2 1 = Removable Media feature set enabled 0 这里应该是disable 可是 adu显示是 enable
1 1 = Security Mode feature set enabled 0 这里应该是disable 可是 adu显示是 enable
0 1 = SMART feature set enabled 1 吻合
那照着这个数据的话,3469H= 0011 0100 0110 1001
小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
(*******最新*******)
后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
不知道各位大哥怎么理解?
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
页:
[1]