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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
4 A9 r# J' ], n( f/ p     问题一:/ g, Q$ e$ h& m! Q+ o
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
  G8 ~( ]2 g$ B4 R5 J0 F# G7 V, O因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
3 A8 Z. ]6 }" i  H5 q4 M- ^. ~- Q& H/ u' a6 {7 @+ Y' E

( T4 O- B2 X. P     问题二:
, a0 t9 G8 `  l: P# ^9 V- u     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?( f! y- x: r; U4 I; @
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
* y& C/ D5 ^; Y1 m7 |6 {( u/ Y2 k2 {7 E3 o( D

: M' P( [3 l! H4 U0 H" ~4 y     问题三:
$ U. e4 \( m; \' c1 ]2 B9 g     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
* \7 M, d$ B- {  u% R我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?+ \% Q% `" r$ g$ p# ^/ Y
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
6 a8 R/ M$ I" P/ Q( ?+ f# M: N' N
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。9 l7 g( V/ F& F7 C
8 H' Q7 b& O5 h( m: \7 Z" S
% P$ g9 q* N; q" e6 e
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。. o5 M! J7 E. Q6 L

! M, p! r' P# u8 g' ~但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug). h$ [' c- T" F2 I; b2 Q* g8 y7 T

4 }: k" w. E2 u# D$ z8 n       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
7 ]7 R( k4 Y6 D是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??- Q4 V* Q% C, T$ A9 j

1 B  ^3 y+ Y2 t) D: R# p& A% U不知道硬盘firmware里面是怎么存放的,反正是按word来读的。; ^9 l) f4 [- O: H6 x
; J4 y, s6 W/ c; B, f9 ]1 \! O
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,- R* C1 ?  c! b; h. a' s; Y! C7 V
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"0 ?+ I! }2 @8 P
$ O& {4 s' n6 y* v3 l! Y. n* b
5 I; v) \& y# a  j2 N# }+ t
-->恩,是的0 W: w) r7 {( @5 n, \* i- ]$ \8 k
* u+ a2 O" A' `: @- f% d6 m

9 ]4 O* x; s7 ]" C6 }9 g2 H
. M& ~# d& {' J! @" U不知道硬盘firmware里面是怎么存放的,反正是按word来读的。1 F1 d4 \7 d+ q0 o  b' m6 h

! \& E9 v8 ~# X" Y6 S6 a-->恩,谢谢!
7 A4 P9 ^+ j: s! z  n! X: z
* f+ k, Q  e) ?, n' I6 F' p" V
* m7 t) p( `0 z* e/ N- U$ l4 m
' \& ~/ [; Y& z/ T另外,ADU读到的什么信息,你认为有错误呢?
$ K# }6 p' l( q# n
2 y9 W" R# {+ Z4 J& z) i2 b5 r. L1 P6 j3 e3 p
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
1 X2 a/ N$ U5 i% b3 K9 j   spec 有这样的定义
. e( g4 m! k6 Z7 [
" D4 p; J: _, x; L! iata6中" ]7 W5 j" y4 s! u' H8 U
: h# p. C) {+ f2 N& G/ q/ y
第85word:6 H7 e" u! I  g8 s: f, {3 E
15 Obsolete                            -------- 0
8 J, I* F2 z8 U2 q6 C14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   / g! T% _+ e' l" m1 G$ E6 O
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   2 d5 `! b9 E/ j; i6 ~
12 1 = WRITE BUFFER command enabled    -------- 1      吻合
$ X" ~- f# l. o  a2 V6 ?11 Obsolete                            -------- 0; A7 F* z1 ^  J. [3 Q! ]+ u
10 1 = Host Protected Area feature set enabled- 1      吻合
* b5 A- N, g2 ^4 }* z4 j: t9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   9 ?" X/ H" S! k2 d
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ' U  y( o, {- {
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ( b5 j2 B5 }* T+ ^! D& n7 d
6 1 = look-ahead enabled               -------- 1      吻合2 G" j& k7 H7 M- h' a
5 1 = write cache enabled              -------- 1      吻合' u' |7 C) t" U  l: X
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
) \) E3 c3 M) J  I4 H9 f3 1 = Power Management feature set enabled      1      吻合' F. h0 z6 t2 h
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   # r# w+ G$ k; N( n! M
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   3 B" Q6 o: f' |5 V9 l
0 1 = SMART feature set enabled                    1      吻合
, {2 z- N' J+ V' Y/ O  a" P, k
# ^/ s0 A4 l. P# _5 g那照着这个数据的话,3469H= 0011 0100 0110 10017 |" b* `2 j: @+ e# B9 j
) I, M( l8 U* c4 t6 u' x
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
# s' y2 g4 y9 k8 N( e2 O3 }9 D" x: T! Q" O& h5 }

/ b; |5 D3 o# T" l* s
/ i2 Z+ H3 {: }0 Y+ t1 o: Y' U" Q( H) g
(*******最新*******)
  A' g" ~0 S5 c! K6 {8 U2 r     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
  r" F. }  d7 X; P2 j1 T. K     不知道各位大哥怎么理解?2 s. g4 M% S8 O, R! {1 \; C- Z% a  ?, W

2 r0 r4 b) L  I6 \[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 05:37 , Processed in 0.240964 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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