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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:2 Q6 @' ]/ _+ f* g
     问题一:3 c. S+ v/ `. _. Y* _1 i5 W
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
3 W' D- J$ m$ P因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。/ l: Y, q  e1 h+ V

* t% B; t9 U! O; @5 @- r. F; h
3 y* O* h% _  f- G8 x     问题二:
1 A" |; L: O9 x8 s5 h) N7 o     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
9 v, c% c' n) T8 ]7 v0 ~+ @$ z+ x5 D举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?' B1 I, p: @, n0 U& i& g
" ^4 m, t4 z9 S: V9 g1 _# R1 a# g
: Y1 T& v& @0 l" c' @
     问题三:7 @6 v  I/ N$ _% K! Z& |
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
  H5 Z% R' z* [我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
5 f! z" @! G. Z9 b7 x+ @     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)! ~4 |; B! Q! P" v2 B
7 s  C" h5 \% u/ D1 i: H
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
/ ]( |4 }6 ~. i7 K0 y, h: m, L4 J

$ ^! o9 N# Z% O* q% v5 y# ]       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
% R5 r9 r4 s) u( n4 ]4 s6 W2 p& F2 l% d7 ?: f, v
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)1 [* V6 |: i4 E6 P

5 f8 Q; D7 Q6 }% L6 Z6 E       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,5 y( X) F1 n6 y7 N3 d  C
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
- ]8 I* M+ H% |; e7 O
6 J8 v! N! a, e0 X不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
) H" d% N$ Y" R7 J
2 A9 @8 p6 n0 a) u( k' ~7 q1 f另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,% c: N3 E! h, C, Z
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
% O6 f: y% N- E& h+ w; \7 q; Y2 _" e, K: q( K

5 Y( u2 M2 d& @) Y; ~' J. t-->恩,是的# J8 f0 r& s: k* G7 E$ S
$ v/ E/ E/ `/ z% c6 Q" Z9 m
  r  }. |4 V4 g1 h
# k9 `. S) z& K$ y0 M
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。+ W2 v' ^% ?8 w/ ]# X

! y! i1 s# ]% K7 F9 @) c-->恩,谢谢!, d0 r$ y  r& ]# ~1 O+ y" u6 K

. k1 R. U; N& m2 A# S# h* X7 U$ R0 Y- r0 o- t

9 L2 \, w/ d4 U6 Y! M* B另外,ADU读到的什么信息,你认为有错误呢? ; J, Z/ I- q) e. W+ i, V  T
  ]4 e( V/ U+ j. Y$ ]  }

. l. f7 ~  V! k-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。9 H7 x* E8 U% G: V& |
   spec 有这样的定义& {# t8 ]! Y4 E8 x# D( z

( q$ N! b  V/ C) Bata6中) m" }+ @; Z# ~: E* d& x' w

7 \* R7 y/ h+ t! D# K第85word:
" [! Q9 o( Z$ W; T15 Obsolete                            -------- 0- [, i8 m% C5 x4 q
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   ; ^* r& ]6 D) P& w; Q' i
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   0 u! q2 ?0 ?) t) p+ S- f6 ^2 o4 \* ?
12 1 = WRITE BUFFER command enabled    -------- 1      吻合# ^" M7 f! C7 W$ a3 c
11 Obsolete                            -------- 0
4 f+ Z, z- [' ^2 r' W+ l; J# T, N3 U10 1 = Host Protected Area feature set enabled- 1      吻合
! C5 H7 V) d: Y5 l2 g2 K# A$ l9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   / Z5 Q. T: L- ~4 I3 G% G0 n
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   2 K; h! b8 Q) I8 Z+ `
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   & g/ q0 m+ [( v+ T' e5 O6 J  t
6 1 = look-ahead enabled               -------- 1      吻合
0 c2 a: I7 G- s0 ]1 e7 V5 1 = write cache enabled              -------- 1      吻合& Z/ @* r+ A4 a2 U
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问& J( |, R' s# |
3 1 = Power Management feature set enabled      1      吻合& g/ x  g' z) u; d# {
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
' X/ y% U1 x8 m: L. q9 v5 x0 S1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   8 @! \/ ?, u6 t2 }4 a3 A0 Z& Q' U
0 1 = SMART feature set enabled                    1      吻合
- f% r2 C4 Z0 ^# n  K( [  s/ d: b, u5 @4 A5 s9 n* _( v4 m
那照着这个数据的话,3469H= 0011 0100 0110 1001; _/ U2 l! o4 ?/ w8 a& c) e- B

4 N3 |, j( l7 t$ v' {    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!; t% e' ]- W) e" S/ H' p7 K# i

( n- u0 f+ h) Q9 ~' g
# r. p3 L" d, C" L
  W$ c3 W! @& B5 o8 M# }
! v; f8 o# _) p/ K& T. D- d(*******最新*******)
4 {& |! i3 k; Q0 x1 f$ R8 ~( v8 o# f     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。2 \# c2 h5 Z5 H; V8 A% Z2 W
     不知道各位大哥怎么理解?
3 v: h: i9 g/ p( t4 P
5 X: N9 J! n% O[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 10:47 , Processed in 0.024338 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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