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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
- K. e; `* n, X  B: p% T& T) x     问题一:2 m& B0 m  A  v# d, Q
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
! X! `7 g: N5 W. X( v因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。7 I1 T/ c+ ~3 H
! Q5 H* d1 b6 p% Z* m9 e! W, j
$ T$ \/ j0 P# }# E
     问题二:
% U! E; z0 g: \1 M9 `     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
1 L  Y) u2 t! i1 @7 d举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
) m+ f; n5 f) R5 i2 t* A* M
& C/ V# M: U+ h+ ^- h6 q2 _" r' X
: ]: q; I% o" E3 X$ Y     问题三:. {$ |+ c3 F+ k* n
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?) f; ?5 H" p5 l! f& E
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?) I$ e' _2 {6 v
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)" h$ j4 c1 t6 N6 _8 @4 C
! i+ }& {0 a4 {# y/ X9 x
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
$ e1 P7 G4 v- n. U% v
5 i: P2 w( j: b3 s% _, q
$ _+ F! m7 P7 E- Z9 I& n       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。) D% F  v3 Y1 q( P
# g. C8 ^( {) _- U
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)0 z" h3 E2 b8 d$ o( x9 K
2 K& e6 N1 S9 I
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
, s! c4 _' M  n8 \& a1 j: _是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??% A( w4 l& O# V9 v4 p" D
( f  n3 k9 B9 P( d' U2 x* l* R
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
" a- Y- r; i+ W' {
) U0 E0 h  l, M! ?8 ~3 a! S+ L另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,1 P, w! h/ v; @8 L6 n& c* b7 n
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
; u$ I- ]  r" n' W: C6 }* {/ x" r' J- w. k4 d3 g4 L4 t5 {
/ j0 ~/ Y5 M4 I7 o5 Q
-->恩,是的- x; W7 p+ U+ z( S% ]. t$ r8 I

! @6 L- K/ W( }- g, d# Q3 l" x4 s* Y, l

/ A4 x; Y( p3 p. k) H( K/ Z不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
. v7 M/ `7 j9 q; k" b+ ~3 c: s9 i' t* x3 Z4 ]9 i" A# S5 _3 ~
-->恩,谢谢!
" q$ J* ?2 Z5 P% @9 ~# R( P) q* Z; Y! R+ A7 K0 e
) r0 I4 T2 j- _8 b

) Q5 C5 U% P! }, {6 n0 q# J  l另外,ADU读到的什么信息,你认为有错误呢?
+ V4 J# Z4 C" X% t7 z' p. {( s, k7 N0 a$ D( m2 X

. x" ^- o4 w# y9 i-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
- i/ P2 [$ |/ g   spec 有这样的定义
- A* K) ^; `8 [; Q, G' c& w8 X' L 5 v2 L* y5 o5 N1 X7 M: i  q7 {2 U3 S9 b* b
ata6中: F3 f) ]4 v3 r; D1 `( u( E2 y
$ E0 `0 _9 ?$ B# W
第85word:
3 _$ F' y$ j* G" P0 o( ]15 Obsolete                            -------- 0
/ b1 G" s9 n1 c1 b; t14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
, J" \9 N  `4 Y13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   7 N9 ^9 \$ I8 C# L) ^
12 1 = WRITE BUFFER command enabled    -------- 1      吻合7 I5 v+ J4 ?: E, |
11 Obsolete                            -------- 0- J% {$ R9 x  P+ X
10 1 = Host Protected Area feature set enabled- 1      吻合4 D* a0 G4 s6 y5 m' l$ O
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
2 Z+ @( d- O5 F# t' r0 I& m6 @8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ' M: S% s( G% P2 \
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
3 V6 o9 N; Q7 P. v! N6 1 = look-ahead enabled               -------- 1      吻合
- [7 H# V5 L5 W0 L5 1 = write cache enabled              -------- 1      吻合
& V9 u0 G( m& t# o, i4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
! a; f% e+ W* q4 K: c$ Q3 1 = Power Management feature set enabled      1      吻合6 W) X9 I+ c; W5 b& N
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   : q4 X$ I8 a8 Z9 k' d2 i) J
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
; G$ v3 |/ `! W- Q0 1 = SMART feature set enabled                    1      吻合, k/ k2 u# z; Q- g. q' O8 m9 D
1 L* S2 J; I1 J3 b2 \
那照着这个数据的话,3469H= 0011 0100 0110 1001! t$ R4 k: j+ \* c) h" w- v2 x6 v
6 h6 m7 z' |. u8 a) D$ y2 W. r
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!* b! R& l" H6 l2 b

8 g3 N: H" t; Y/ L2 q
' F1 Y. k& N; r! J3 Q0 _0 w# l+ X% e0 L

" @' O/ m' |- E. E9 Q(*******最新*******)$ T& ]5 Y$ ^2 n- m
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
; G- u6 h* p/ y     不知道各位大哥怎么理解?! H8 ]5 x/ j" k/ k4 o1 {1 s- w
5 Z* i& T! w; W8 {  t0 n  f
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 17:38 , Processed in 0.080957 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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