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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:3 X8 H( i$ A. `  H8 K6 A: J
     问题一:
9 w0 U7 R0 N, O9 f& C0 }     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
' K) j" \! O9 }; V因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
8 q3 T8 N- k! `* Y2 {8 G- J! Y! Y3 O6 P2 H5 u4 P
( e" ?. z0 ^# w# N
     问题二:
: B+ ]) I4 r: {: ~6 W8 N     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?. W+ B6 Z' v9 f7 i/ ~7 \
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?' i% f' g4 g6 u0 f; k1 d7 c

. w2 P! O% ?1 `. y
3 z; g1 _1 S% ^' G' _6 o     问题三:7 p8 \2 h' [# |
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?' t2 |5 ^/ K* ^6 i
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
( F" X9 L; p- d6 W3 w7 d     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)' r+ i; m! _! `; S

1 a' G2 I" O  i" m- @2 U[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
% }' M, a; N. ^) X# p- q* g0 F+ I, U& G* P8 x( {/ `
' D2 K1 I; K! r6 I5 C; u
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
& e% q% x0 C5 N2 |% u+ E5 ?" W1 m/ R/ G, ^/ w- d4 w
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)/ _4 X/ }( q" ?: P

0 I( d$ }6 P, l# y/ Y- H/ a$ W       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
# V. x. p& t- c. O是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??2 j% g8 O9 |  q% s: v' a9 ~
! k& [& m4 [6 ^% b0 Q) \' \
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。4 c8 l+ D6 q& C0 i6 {

5 m0 u& A  D" r+ N另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
# u& L9 s" O2 a+ R" s是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"+ R0 `! G5 R9 j
* t1 m) n, \' Q" g" B* V5 ?8 M8 h8 P

, m) R$ C. q, t: K; V-->恩,是的9 e; v. w' h6 ~2 O: _+ k" [
' U  g. e9 Z: ^! x
; N1 h! M/ j8 O/ ?
, ?+ x" P, g' d, p8 S5 R+ c
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。9 N5 ]9 L9 t8 ?& P

, T7 M2 Q) ^, _& |+ W-->恩,谢谢!
. [% k" E1 W% D, x/ d$ }
* x( `* U4 v# ?0 w- e* e
1 t$ V1 W6 h1 S( @# u( f# K1 r' \# L4 x. ]$ U3 Z- [  `
另外,ADU读到的什么信息,你认为有错误呢? 7 h6 T0 x$ R' _+ n3 K# y; m5 _

; h! T5 i4 n$ g7 N$ @% v: ?8 R
9 q* z& q  N0 u1 J. O' s4 n-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
" K% b8 `' \" O6 k7 d1 T   spec 有这样的定义
& i, A, I" x8 ?& A/ t" }
8 r+ o6 l; A4 J. S7 z- N# sata6中3 g0 I5 _+ |- I& Z  M+ i4 B  K
3 y' z% s* x$ U& H" M
第85word:
5 p$ t* R. Q5 u15 Obsolete                            -------- 0
- t" u7 S7 E$ K! E) `8 {$ T6 p, ^14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   " V$ m" Y1 d# ]/ M! @7 j
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
- U: ?  C" B( q, J  ~12 1 = WRITE BUFFER command enabled    -------- 1      吻合. \' w2 ~: B; g/ G: C7 q9 l( W
11 Obsolete                            -------- 0
. V2 X- Y' X2 y' m10 1 = Host Protected Area feature set enabled- 1      吻合
1 w% U* w" ~5 l  c* ~0 z+ @1 q9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   # ]8 t) Z. `: v2 b; N: x- I
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ( ~- P2 W2 y/ Z8 q# j8 \! z. N/ Y
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
6 R6 a' r+ S5 r$ o6 u6 1 = look-ahead enabled               -------- 1      吻合
3 s' B' C/ m4 U* S5 1 = write cache enabled              -------- 1      吻合
) c8 G' d5 r* ^* u4 x9 _  y4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问! D, {7 R1 Y3 i6 i5 A; y$ |
3 1 = Power Management feature set enabled      1      吻合
' G7 ]) b9 x# A3 ]; K( L2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
$ D* `" i) c; E1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable     G8 M, }1 F# u: _! t( Z% |* q4 k1 {
0 1 = SMART feature set enabled                    1      吻合
# h. y4 i/ _$ X* f+ \) C& x& X4 [7 T4 `9 _0 U) ^& t  Q7 P
那照着这个数据的话,3469H= 0011 0100 0110 1001- A0 V) }- K' s% F+ |; K% Q

9 S( F# M; T- h( H5 j% O    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!- l8 M7 o) J! U7 F+ b

' f: @9 n& h7 ^  L) F% e; W+ i- x: ^7 E8 d. C* [/ e( r, ~" i

: R$ @7 }  n7 |8 C, x) P( i9 ]- Y% W; ]# p7 y) [5 j, A. o
(*******最新*******)+ j* u0 M  b! ]
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
% _5 [3 l9 T3 Y; k: v8 q     不知道各位大哥怎么理解?5 z+ w: Z( K; U' E) g

, m, K! F) C0 @[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 15:21 , Processed in 0.067853 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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