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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:) o6 T7 }$ V0 A- P  }
     问题一:( J# z! }+ [3 |0 L' L
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
  U( @" b& Z& l" V; K. C2 X: J因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。5 @8 ~# ]6 I& R" J( B+ ~

! S8 R, U1 Q# X# q1 J* R
, ]8 K) N- S9 m  V1 M( G     问题二:
' T* [( l# r& w2 z: n0 n     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?' D; H/ a: `% F7 m; r$ J6 S
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?0 |( i  y2 j" ?$ b6 |; e7 s9 K

. h$ i2 H. j  u0 ~$ i
# i. U9 W8 k; M- o/ W3 Q8 ~( x! K     问题三:
8 A) k4 J: q: T: z- L: v     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
9 H" r7 D5 r4 B; a) a9 u2 P我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?, v* v# N) m9 i, q+ @: e9 s
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。). p% B5 e9 ~+ ]; k
' k6 k3 J8 j% C
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
9 Y: K$ h9 @- W4 D- w9 x# E7 w* F6 {* r1 T$ B4 B3 C* X
0 e4 o( g. N0 L. D3 l( i5 B
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
' n) ^" o+ r! `5 p: k+ L7 ~  n& `( ^4 Z+ M
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)( n) n( ?- c) z& z( I
& L0 U( G: T( m
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
6 i) e6 o& N# w8 a! ^% X' t' i8 w是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
) A; r8 K& F4 F. K7 \! r& R7 M! O2 I! P# j9 h! X
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。' U5 Y# {6 S, G
3 h: O8 R7 r/ a
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
) t( F7 g$ e9 t! c) H) S- y是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"% [5 m6 T+ j& F$ I- [
/ C) G/ g) C# y( r2 J. [; b. d/ x7 c
5 h3 c2 L) u. y; ~6 E
-->恩,是的
6 I8 U; v$ G& `/ I% ]. g. p' E) g; H5 @, ?5 n
) w+ O" e4 r! E3 W0 l: ]
6 N1 N+ Z, N8 J
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。% Y9 ^0 ?! b5 _% g
& H, W' U- b, z9 I
-->恩,谢谢!/ S7 y( R. N8 y0 g

; B! Z! @, }* M" Y4 g6 x3 S1 f
1 b! A/ c% ~9 d) p* f
& T  n1 u# d, I% o+ {7 d! s6 H+ `; G另外,ADU读到的什么信息,你认为有错误呢? - X" f( P0 `  l1 a
! J/ m% P& k- e! \9 J

3 O4 a1 d$ g8 i-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。/ \8 C2 o( H! M1 R: b: ]  k( q
   spec 有这样的定义
* e& g6 b  i4 B1 p 6 o1 p0 @1 z4 ]  b0 u
ata6中
0 r/ N+ c, f* c, o4 ?, ?7 p* t. Y% G* u) \$ [
第85word:
( j; S- t* |' D' ?) P15 Obsolete                            -------- 0
  F7 Y) c# J1 f5 p- m14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   0 [( ]* B( y& V: \3 X
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
9 a  u  r$ k) W! `: ?" U12 1 = WRITE BUFFER command enabled    -------- 1      吻合. v4 E' E* T* m0 R% L8 m8 S
11 Obsolete                            -------- 0
$ J2 U2 K+ _) t  T10 1 = Host Protected Area feature set enabled- 1      吻合
5 K7 a5 ^0 b5 D6 F- p: B9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   1 T. y- b! B2 T( a9 h6 {: q0 E& @
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   5 j# V; ~& d" j6 P; a) H# k* V+ |
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
+ P, j) A# o5 J# }2 R7 F; e  W$ u6 1 = look-ahead enabled               -------- 1      吻合
4 w2 U6 _/ r7 N" c! l/ A2 f& B5 1 = write cache enabled              -------- 1      吻合
) e" S7 M& m+ e( g& L4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问7 \$ `9 R  K8 T7 k& v) V: R; T
3 1 = Power Management feature set enabled      1      吻合
6 q  B# e+ X0 D- [" i2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
( b8 q- z$ z3 z; }1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   ' {) Q  U( ]! w% {+ }! l
0 1 = SMART feature set enabled                    1      吻合- H& u9 I1 i) v8 _: B: A

1 `5 K! [: e# k# U5 _那照着这个数据的话,3469H= 0011 0100 0110 1001
0 g6 C+ u3 ~. {2 Q2 R. N% S6 ~6 J+ ~6 |! ]! m
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!9 |9 E+ m" V' i, k, b) K

+ l% `) O* e: A/ \
' @5 ?& f) w# I: X# T3 x6 {6 `
$ g% x  e3 T6 w0 s) ~1 F# U. M' p/ ~
(*******最新*******)3 H0 N) v" z# o2 {8 A, B% {4 [+ g$ r
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
0 V- Y# {% T. S$ N/ M8 Q1 q6 V     不知道各位大哥怎么理解?" D7 z1 A# v; ?. @' O( p" x
" J& q0 o. Y9 ?; _. @( i
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-25 03:39 , Processed in 0.087512 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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