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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:7 ^: s; Y6 H4 @$ I
     问题一:5 R6 i: I3 W, E
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
" L9 s# X9 L, B  x% {因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
: q8 \' b) _# c+ Z% f4 T: }3 i; q5 C% L+ j

8 E. l6 W& r1 S7 e# Z* a  [     问题二:
+ F( q7 i$ v9 l  y2 m3 }$ g     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?5 w2 G+ e+ G5 w" @
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
( J- h. c- ~5 }/ i( q9 I3 u1 d8 C4 O( l: Y
: N, ~1 ^/ \9 ~1 p2 c5 ^$ V
     问题三:5 e) X8 ], {& N+ z
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
" h; r; y7 ]8 r$ g: O  g. L' H我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?3 ?% e3 y. S/ K/ ^& @9 w$ C! B
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)2 ?( e* I' f" b4 _4 d! j

7 k3 H% t0 y6 r: C0 s7 c/ Y[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
. g. R' Z/ g* x' X3 t# D
! x9 g* Z; _: W" u* }$ R: q+ D. l# E
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
' K1 B# s1 F% r% X3 G8 z/ M
& W9 p' }: V( d! i但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)7 w" C/ W. v) s( f! u7 q. h  g; C
9 F* t$ Y3 d. _0 R' Z
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,0 y1 V" v8 w, L
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??# R+ x8 q2 G- m! X/ A

+ K: L1 ]1 V8 W7 R' a5 r+ p不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
/ b" p+ e, H7 ^- t" m& O! b2 B2 J! {
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,1 J) T) l5 w" ^% f, V
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??". O! m& c! I: A2 w) h9 K

3 W5 \& e) U7 A  s1 D! i
+ G8 Y6 d% W$ g8 ]-->恩,是的
9 d; g# K) G. x! s" @( ~# u3 H+ A1 m+ C

2 f9 o8 O' n5 D/ M) e& J
5 B- W! I& J8 d+ d1 m3 w+ s不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
9 S# |6 `/ `. l* f0 c
  p7 K- U# A6 W4 \4 ]-->恩,谢谢!
( l" p. u+ j$ U2 X9 ~% ~" r
/ |' Z, T/ n) g, X9 w$ r# G) T- b" F) Q) a) }5 B: C) J, Z2 C( I( w
+ j% [4 S/ B- S
另外,ADU读到的什么信息,你认为有错误呢? & z- r4 Y+ }) m) S, R

. C8 C5 c. V* w0 w
/ O  O. Y* u( p0 \-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
( C; }, [: j7 @3 v2 S4 J   spec 有这样的定义8 E. o- ]0 }2 G, R0 b

$ a! w. ^% D9 |$ t, ~/ ~* Zata6中
8 n" Y8 M) W/ l( q9 [3 X. A) M4 G( `7 h, x  n* D9 }
第85word:
9 m3 D' `4 D1 V2 ^, Q( E* q15 Obsolete                            -------- 03 G+ Y. a; z0 w
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   * P$ g; O9 f$ R2 t
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   $ b+ Y2 \" G, N
12 1 = WRITE BUFFER command enabled    -------- 1      吻合( j. m8 x/ E( Y9 X
11 Obsolete                            -------- 0: Y1 |- [' u+ w1 x
10 1 = Host Protected Area feature set enabled- 1      吻合
6 |" Y. q: S7 r% c6 a- f5 A9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
" ?! O4 }# R6 T& ^' Z' s9 V8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ; o8 L( ^# c/ }1 `* p
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   5 V! I$ c0 J3 T8 p. O5 v0 b
6 1 = look-ahead enabled               -------- 1      吻合' H7 q( m- w, z
5 1 = write cache enabled              -------- 1      吻合. n* I/ t0 d9 c$ ]
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
  |$ @- e0 f+ {, y3 Q2 q9 |$ H4 b& T/ g8 K; ^3 1 = Power Management feature set enabled      1      吻合
2 {+ p3 k" u/ h. q" b3 {7 d8 e2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
0 {5 y5 v% x  N1 @1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   ) Q# U" o2 n+ P+ O; ~; j
0 1 = SMART feature set enabled                    1      吻合/ z7 I* N4 |9 i9 C) z: w+ h& `
/ w6 O: U, H$ t( X3 L$ k: h
那照着这个数据的话,3469H= 0011 0100 0110 1001
6 [6 K8 l9 q7 A# ?8 _9 s; Z
& K. y# {, l* t8 u9 o, n8 A& E    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
7 F3 B: o- z* v( I* \3 h( K2 ]. w2 ^0 B) |" j+ G

( ^3 K5 o0 O1 x! f$ k$ p
# a. T" I% f4 R) F7 k( p
) k& Z* K) v6 R5 Z2 k(*******最新*******)' o# T& a* _3 O7 P8 {
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。. k2 @6 Z2 w* H
     不知道各位大哥怎么理解?
- i5 Z3 N" {" Q! Y* y* X
$ Q- k* p0 |# u9 A" a% ^[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 08:30 , Processed in 0.566925 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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