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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:- ~2 n+ {0 G- a1 N1 ^
     问题一:- F# v9 K& g9 D/ {5 E
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
8 v/ P8 X- k" n7 x1 q* A: V因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
7 S' e$ B. _8 G2 A7 k
" [+ J* _5 R) u' j$ k$ V# \/ x3 F# a& b
     问题二:% Z, g0 K! B7 e9 k# z; A- S% J2 I$ a
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
- V2 q1 {0 k3 h9 `举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?0 ~$ A2 l, H. }! T  }
1 C9 i! I6 }# I
8 S: I5 R6 V  g! x; @
     问题三:
. ?9 `# D6 V( Y9 F) ~5 Q     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?  d7 r/ ?& G: b" u4 N/ r
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?% j' O  s7 i$ M* B+ E
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)6 x2 q  Z# l  G* M4 c: f, Y
1 {) z1 M! V( l; y# l
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
1 I$ \& L5 W/ X! S" j( Y" U( }5 k
4 ]9 i1 ?, d$ _
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
. }/ L0 B/ y& J- ]/ O0 b7 u* i" L% w- Q- V
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)2 }1 Q  S& X* }4 k0 I
$ O; h! Q) B5 S4 T8 j' A
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,/ t3 F, D/ K. z% N8 k7 N
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
4 ]. ?1 C0 Z; ~  Z
6 ]" ]) U# I6 D- |不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
  J' Z+ i! U( L7 A( U; L1 l, r' `6 t0 Y& Y+ f. f+ j, z
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
7 c; l( y& C3 w% Y是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"9 |0 N- k0 R; b. |; ^
$ ~$ w' a/ q( y$ n6 K  F# E, \
: A7 y7 O  d8 v, x0 D9 B: G  O0 J9 ~
-->恩,是的8 u6 V9 S/ {/ x- C

3 U, `- ^& `, N4 M  z; q! I
" _3 W7 `# [5 h: j( Z$ R
- f- G5 M$ u9 U: h不知道硬盘firmware里面是怎么存放的,反正是按word来读的。, c5 K# B3 {9 ]$ y
, e. x5 v4 h$ o* P6 [
-->恩,谢谢!
& w+ a! n( {/ ~" x; ]2 q, d* I7 X, u

7 T) b* Y# }2 f, |/ |* Q  N; ~" Q% [1 Q
另外,ADU读到的什么信息,你认为有错误呢? $ t7 K8 D) P; Z4 s! `! S$ V

9 s4 z% j0 E8 l7 A" l, l' `9 [) H2 L# N; Z- d/ f" z9 T( S4 I$ _, n
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
7 \: z; n1 b1 F- x) V2 r( _2 v   spec 有这样的定义
: @: S; G% n: M( {# J, ~7 f! u / {; F" D& f" i4 D
ata6中
4 V/ c( J) z1 ?/ k% g
+ Z1 v8 M7 e# _7 j6 x3 m* I. s第85word:4 [' h# E5 l$ a4 Z
15 Obsolete                            -------- 03 `  X( g$ R  u' |% ]$ |3 l: \
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   . t0 C7 ~: B1 I! J2 k, X7 s: i8 s) T
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
0 g" g/ G, h" W# Q  f6 E& `3 O12 1 = WRITE BUFFER command enabled    -------- 1      吻合
# ^+ e: p+ I7 {. Z7 X11 Obsolete                            -------- 0
" K4 M! V8 h7 ]+ l( g10 1 = Host Protected Area feature set enabled- 1      吻合! m+ T6 k8 y9 J% I3 w" ^8 K
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   * |/ V+ s' t, w: B  Z+ B% R  p
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
& p& q- H4 b0 h3 s+ O7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
/ U5 G- F* L! m( l- @: C6 1 = look-ahead enabled               -------- 1      吻合
5 [8 Z0 ?: d( P7 z5 1 = write cache enabled              -------- 1      吻合& P* [& r, b  `
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问' @7 N  R4 U# J; m4 ]
3 1 = Power Management feature set enabled      1      吻合
0 i! o$ M  f. b5 I2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
& m5 h$ R. L& x+ A% _1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
, w% @" F5 l; F4 d0 1 = SMART feature set enabled                    1      吻合
, O, z" u" p$ e! J6 k+ J' p
! D4 {( \1 H& W$ I; w那照着这个数据的话,3469H= 0011 0100 0110 1001
4 m1 O( j- Z8 P/ D
0 @$ h) p- W+ v* K) m    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!  k- B2 Y" ?! ?! K

0 V7 h# B6 I. R5 v6 t
& q& o$ Q+ I% \5 w7 G/ X: ^' y; D
! d5 p) D* x7 m7 O( }
8 x! S9 n# ^! u* g8 c(*******最新*******)
; s. h2 E* N& k9 b     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。, H) J0 m* @1 f
     不知道各位大哥怎么理解?- k$ L: ?; x8 T; ?% [& y# [

3 L, Q8 A/ }1 D9 M! ][ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 06:45 , Processed in 0.217948 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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