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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
$ d7 H1 [) A/ F. [9 o     问题一:/ m- Z! O; b, b, W1 H$ i
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?+ p  x/ _; y: T9 b& q- t: n
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
4 y# M* @1 V1 k1 z& O; R# \3 }0 q3 Y) v4 d: h$ H) g

, U6 |( c" N( n% n4 o! l2 T     问题二:: H9 V% B8 N" W2 A( _
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
$ S* D1 C5 x5 _! d; ?( c举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?; y6 J% |2 _; i, B9 F! c- D. l

& h8 g+ b9 C" J; S3 w: e& ^+ _+ t. R' t6 `8 f1 I& h
     问题三:
4 u0 g3 A9 y2 Z5 o     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?0 W: k/ T: b. B  {2 s4 l( h
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
  {, l) s! [3 s     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)4 I0 ?& j2 H* l$ w& q
3 o$ [0 n# ?$ v' v' F
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。& ]+ E, ?5 l* D. _

4 ^  X# _& P4 h' R- g4 E
4 ?8 Z8 j1 X/ c5 `6 i       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
* Q5 M' @3 z: k' H# c) o
; j+ w# ~5 r7 x$ }# |但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
2 g* X5 Z) X/ d; s; _" `! J& q
+ a  _8 b$ w# g3 K       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
, @7 q7 o( T% ]6 {- s" @% ]8 m是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??9 A2 n5 r" F5 K& e

* i- i9 ]8 O/ E! I不知道硬盘firmware里面是怎么存放的,反正是按word来读的。7 k2 S4 P/ j1 |- x: M
! ]0 X. l$ c3 \5 t, A1 Q+ ?
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,& T+ t$ _# k% p# X/ L1 [: M
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"! I& ~5 b" m( t* }  ~! z

6 C7 b6 ^: X# a/ W9 A
; \/ x6 C8 R: E) |  b0 F0 r# B-->恩,是的0 z0 j5 C3 E5 X* U6 X

. L) l; w) I/ P* S+ p8 F8 u  ?" ~, ?0 Z1 }+ B; `, h

& K+ ~; q+ s1 Z: b( t, X0 I不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
" h  u) X6 P9 k( y0 J6 g4 n* b( @, n7 Q# x9 p6 ^  q; X! J
-->恩,谢谢!1 w( ]" L" P: D4 Y4 T6 c0 {5 Y
+ a' o) o4 X; Z/ k# O) o% `, U

1 \( u! C7 ?$ X% ?1 ~5 a4 i2 P" o; G* o$ @
另外,ADU读到的什么信息,你认为有错误呢? 1 s9 d5 V2 p2 B) R1 E: \$ i
8 ]/ Q' I: }: U' i6 C, d6 B
. g0 @2 T9 |! i0 T
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。/ z0 o' ], J; A) v3 Z, I: ]
   spec 有这样的定义  k! {" r# K6 E! l

/ ]2 C7 t1 f! E& b: O( \% bata6中+ O' L( u3 M+ i( `

2 W- B3 r# q3 N第85word:
* r" Y& [$ I; |) P: ~$ P15 Obsolete                            -------- 0% C5 F  m: O, F) O) W1 f
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   ( [; E: M( B4 p2 i8 c$ m' s2 T) i
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
$ N. j% ~7 w& U8 l3 a- b12 1 = WRITE BUFFER command enabled    -------- 1      吻合/ V6 G8 S( `5 |! G
11 Obsolete                            -------- 0
; y: e$ x1 o2 w' S10 1 = Host Protected Area feature set enabled- 1      吻合; j, v$ B1 I& H; W
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable     l+ d5 Q  B9 d9 W, |5 b
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   7 e- C- g9 P1 W6 v( j
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
4 R" M# u' h9 o1 F1 k' r6 1 = look-ahead enabled               -------- 1      吻合) F8 ]5 u; M2 T" ]7 s
5 1 = write cache enabled              -------- 1      吻合2 J3 \: ?" g0 Y" i( |
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
; }  G) ?0 `* h7 x+ \- Y, x3 1 = Power Management feature set enabled      1      吻合9 D: v1 Z9 T: L: C
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
5 c2 N, L: b- _$ ?: I5 W1 [1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
: G- o$ p3 Y( g3 P  A0 E0 1 = SMART feature set enabled                    1      吻合8 F, |& }5 r3 K/ y9 \+ {8 ?
7 [8 p0 M( M4 x* u6 W8 F  B' \' i$ H
那照着这个数据的话,3469H= 0011 0100 0110 1001
9 u2 E" U# V; L9 G' Y; _7 S
: U) v! h1 F, `1 f4 ]    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
& L5 D" B" d8 a# ]3 p" }0 r* w- @* U, g4 F4 Z/ I( T

% t) S. ~( q; G' q) `8 D/ q/ Q/ m  H& k( f- j& d; d

& N# |  A3 R( s5 u* j+ f/ _(*******最新*******)8 Z0 H3 C8 E( U) j- H
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。: h% p, h2 T% ]
     不知道各位大哥怎么理解?
# y! [" G. X/ X2 X
" b! ^, h7 g4 z[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 12:15 , Processed in 0.108597 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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