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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:1 i/ D' k3 [3 s. K0 w) p# @: l
     问题一:& w+ j8 m# w9 z- w7 V: ~) j1 f6 c- L
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
* D$ ], K9 W, \& |& s因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。/ V! M+ V; M4 m& A, V

; ?* o6 {9 ]$ B5 D" w) u! H$ d" x# c& \" i
     问题二:
" Y3 Q9 c& s" i1 a+ c. g     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
& H4 b) L9 F* K4 I, `( ^3 d举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?! N" Q/ F) a2 |: K$ {1 J& X; \
6 V8 I" ]" B' b9 U" b& X* T$ s7 F

* [) l' U( Z. s- h( J* q; f2 V     问题三:- D- x6 S* A8 K/ O0 M% }# o
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
2 @* R  H9 \% s  r2 B4 `我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
9 p$ R' e+ S2 x6 m5 ~     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)- B+ Z+ V" ]" B( B, p. p! ?& |
! b8 [2 d( W( `7 K7 s7 |3 C4 i2 h
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
8 i( Z4 O0 E1 X- I' t% \3 P, X( l3 K  f; T# O) ~/ j
& W" o/ J6 k* h( t. w: K" z5 U; I' R
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
: O, a3 d7 {1 s
! }( u7 X% {. t% X) t但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)) y5 W/ O2 S8 Q  P" b8 k4 V, ]
- S! r$ V2 i# C- C7 `
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
4 n$ s( b7 P) ]! Z是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
$ z9 Q) X% b+ r+ a- g/ z. a; K4 B2 ^% a; |* f# a
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。2 \$ d8 ~% W: A0 v+ W" G, _3 s
* E' h3 @% ^$ ^6 Y: s4 ~* j. w
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,! A1 L: R5 \$ K6 v0 }
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"3 b( O0 U- V$ Y! i

. d) X: T% u/ S+ i) b) t+ J
/ }4 j5 n+ @" Q, S* }-->恩,是的. i- s; j( \  y) d: J9 m( y: l
# s& A& |: S& ]& _$ t6 B; C

* C/ b1 L  r7 }( z+ H# d7 }
7 `# L( i4 Z4 K  X, c6 t. ^不知道硬盘firmware里面是怎么存放的,反正是按word来读的。7 v9 M) }2 ?4 _, E/ ]( d) O5 ^

/ [  {) R2 x5 W4 H2 d; J-->恩,谢谢!
6 r% T8 R* {6 N4 p  `" {0 ?/ V7 H' |9 u8 K& F  R
) X5 M8 j" O6 M/ e; k

  r0 s6 h/ }- R9 b9 P8 h$ G另外,ADU读到的什么信息,你认为有错误呢? , p2 v# f9 p. d7 V

* y6 U& M4 M) G( W* [- i# Q  Q
# }% `7 b2 a& T& w; p; K-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。1 C, U$ {- L$ p7 }
   spec 有这样的定义
+ l+ h/ j+ b+ @! V3 [, Y # v3 y% u7 l9 N8 Y
ata6中
+ ~, u2 |2 M& d) G. m8 q, `' r
0 w0 f; J- O* C, a$ K1 B第85word:
) i, R( q3 F4 c1 e# I3 F15 Obsolete                            -------- 0* O' L+ F6 H+ _& B
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   * i5 o4 ?( Y( {; v3 V( E
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
0 H! y' K8 `8 i( S/ c* ?) K5 i12 1 = WRITE BUFFER command enabled    -------- 1      吻合! H' u4 M& y# j% o. v9 U( A( @
11 Obsolete                            -------- 0# `% E. L) I6 y. J1 X0 w: C+ L
10 1 = Host Protected Area feature set enabled- 1      吻合8 X/ j: r  I( J) V8 H/ T
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   , s! h5 U: a( c+ [
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
/ R" R9 _3 p% A# f3 [7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   & X9 O, ?7 _' j
6 1 = look-ahead enabled               -------- 1      吻合2 B2 [) J3 O6 P# c- R7 X
5 1 = write cache enabled              -------- 1      吻合
8 r# D& R8 e$ a) M$ |4 C4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
' H3 d" e" s+ V3 1 = Power Management feature set enabled      1      吻合) s/ O1 b9 c- c$ X& Y" l- j6 B* P
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   , X3 d! h! Q* Y% ]
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
( M0 X7 l& Q. X0 1 = SMART feature set enabled                    1      吻合2 q) |& g: T- q; u" f9 I
8 G' R( l" z. S& I5 ~1 K
那照着这个数据的话,3469H= 0011 0100 0110 1001
3 j- J/ \9 ~# h! R: z; y0 E, m1 K4 _0 d- }. V! T! B) W
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!" |0 G4 O" E  X/ b
2 ]$ ~6 m# e! {3 z2 k6 s3 o
0 s2 v0 ?0 K/ b2 {$ r: S/ A
7 I8 Y; [0 u1 h0 ^$ n5 ]

: _1 F: V/ A, V& d  C4 T(*******最新*******)
8 Y: y$ e  J# x) F- L8 x     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。( V6 w9 S) ?+ j  ~, ]
     不知道各位大哥怎么理解?
$ n$ B6 z2 U1 E5 i: K
8 j' d0 @4 M7 N* x' M% @[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 08:33 , Processed in 0.073146 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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