找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 10280|回复: 4

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
7 Q2 u( q  {+ i+ S. k( q- v% z* U     问题一:
+ \8 ]" o: J; G! v6 F     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?9 h9 N) Y1 r8 x7 g/ K" Y% v3 K/ W
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。3 p" T9 E0 V3 ^$ C! C% Y+ ?
3 w4 _- P" k4 |
/ @. ~" J4 M7 [* J1 R
     问题二:
- j; I. b+ ?: O+ Z     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
& T+ ~& e# h1 i5 z$ F举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
. g2 ]4 {1 X9 N1 o8 v' x1 v* w) s5 v' t3 r" T. c1 I

5 Z6 t& G! x2 d- R2 A' Z$ P# S6 r     问题三:8 O1 {( W* x/ H* j
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
1 e; W& o9 L# r, l我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?5 c6 L  L4 J+ _8 ]/ H  f
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)( ~: q' e0 R/ u1 D, O" ?
1 y" K3 I$ i( n4 N" d
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。& @9 d, J9 ~3 ~- k& k1 g

0 j8 @7 P/ v5 C1 E# b( ?8 K; Y8 a4 ~5 A" X
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。& P7 }: V0 f# B& X. O% Z; O

# l3 N  W9 U4 x; [: T但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
8 [* ?, a2 K; V9 `2 i: }5 [) a" o2 F* R' y6 b" C
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
7 h8 h2 v9 U: ?( _8 l; @是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
# L, {5 F  B& p6 F& j9 G3 E+ e3 k1 f
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
8 g6 _0 a+ `. g
* p1 q0 O0 g: Y8 t, ^) [0 C另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
6 Z& Z' f# n0 i8 x0 O. Q是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"2 q& N# w( y. z' `% Y
3 L& l) S' \/ s7 q
' v" t0 n. G# K5 F- `- R1 e/ J
-->恩,是的
$ Q: [2 t9 `/ N6 X% W0 q; L' c
+ t  Z/ J! b! l, J0 P5 j- a- f& W( n/ q5 y; k0 {+ @7 o

  \( w( s+ W8 }: U" }1 B1 o2 Y不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
  D, q& ?& S" P4 _
5 d9 p. Z. A6 c4 I, j-->恩,谢谢!; V3 V' N4 d( q6 F# P, q) g& J

( ~, b2 R8 p) P& S; ^' N
5 z* E, N! A8 n7 i* x. [+ c6 ^) c
另外,ADU读到的什么信息,你认为有错误呢? + e5 ~* a( r7 q* d( z
7 r/ `8 ], z. y7 i3 {# i+ i
0 o: P) D! p& x
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。6 _6 L6 `7 W. L5 e3 m+ N3 G4 q
   spec 有这样的定义
. s! I) P% P: ]
% e: y5 H4 N/ k& f) L1 ~ata6中2 C$ ~) z; l) f' A% v
4 U2 b  q* k8 D- R4 C8 W0 w0 I: j
第85word:/ F' |: r/ o9 \2 T/ w8 T1 @
15 Obsolete                            -------- 0& U$ z9 F# R# s' G- P( v4 o6 x
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
  m8 D7 J9 c8 v2 C13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   2 n* [5 U( I) d
12 1 = WRITE BUFFER command enabled    -------- 1      吻合
6 L: I  C! O* x: g5 s/ Q11 Obsolete                            -------- 0% H. z# }( i0 t( E0 a: i) O+ E0 E, s+ r( A
10 1 = Host Protected Area feature set enabled- 1      吻合# @0 @* A  {  \! h# V. q& ]
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   ( H. z# K4 R! m! x
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
0 D: ~: O: z  O6 M, r7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
( w% ~& ^/ ^0 Y. g7 J2 I6 1 = look-ahead enabled               -------- 1      吻合
  b& [1 |! L+ P5 1 = write cache enabled              -------- 1      吻合
, {) P" w. d0 I( d4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问$ V9 v. F) @" L, |
3 1 = Power Management feature set enabled      1      吻合: K! M% L7 m$ [6 i! @& a9 F
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
& w9 E1 |) [* a* y# T" Z1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
" G1 v. Z1 h0 o6 z: p6 ~' J8 R" h: C0 1 = SMART feature set enabled                    1      吻合, i, |" R% m* e) p2 Y3 h
! b) L' G. E# k2 O$ c- q# A. W
那照着这个数据的话,3469H= 0011 0100 0110 1001; F; o: O: x. z; Y) Z% ^, E
$ K0 x! N/ s+ j2 B
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
: B" a( ?  n7 a* {) `& a: n, r# J5 {: Y, x, \( P

) I- L9 r3 u( }' B  G1 {! k9 h- b/ a

$ Y6 Q6 Z) M! e0 E2 P( I(*******最新*******)
) a4 X% ?2 w9 ?2 {$ G2 D  T     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
+ N( j3 s( {2 f+ s     不知道各位大哥怎么理解?
7 w& e4 N  D5 v5 {
2 }9 S; g% B' U& ?8 Y[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2025-4-29 05:05 , Processed in 0.034363 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表