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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:! f6 b8 O4 e2 j0 J4 r2 a
     问题一:
. Q) Q1 e$ r* S4 q4 Y% a* a     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?9 P  B1 F3 y- Y( Q+ m* K
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
0 j1 d; X+ `. n0 n( T  s7 i( L$ [0 s3 _
/ L9 g$ g- `! o5 }: d% u8 o
     问题二:
3 }# ~4 V5 k0 E! ^# S9 M$ N' F     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
% |# v% E; d6 m* H举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?1 F; c9 X" S. l" d) y1 h3 v
  ]0 q7 j& |8 @6 {- @2 A
& s2 E. S/ C" {7 c- h" ^' {3 D6 u
     问题三:
8 E( U, s& @' X/ V8 v     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
+ w8 p/ u. U; W$ E# o我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
" f+ q; j6 m! C     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)" B8 l: o* R8 W( ^# n* @6 D" i( V2 @% [
) A# I( g; ?2 b7 r  Z+ T
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
6 B) N2 M) }' R: Y% T' c5 O0 Q7 U( v
9 t  i' }6 _# Q" Q5 Z/ s7 f
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。* {! P% F# B  x3 k6 l. p: R  v

* q- \  m5 B/ t, _! W但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)2 f1 J% Y7 s( X3 Q# F1 O

, X6 q2 \- y% ]: a6 Q       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
+ R% F0 w  O% G- B% l5 }是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??5 B+ X- v' F3 G  n4 B

+ ~7 y  k! L6 s2 h9 c不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
" q/ K$ y8 C# z5 b
5 e7 f7 K" W1 Q, P9 S0 a: F另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,: f$ A- u' @5 G6 s" K' u7 b
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"8 Z. U1 |$ J  r5 A" k- h

* A, j( R. E7 ]) U- y" e
3 p# @! ~; f; B( h) X-->恩,是的
; [% g. m) T) P
' I6 G$ Y. S0 L" _" S2 Z- z) R- ^" m

. X3 O% ~: d$ z+ g: G( \4 K4 y不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
' V' m# y, [8 w  S0 O9 c9 q3 t6 Z9 w8 H
-->恩,谢谢!
! u+ O/ |2 v. Z. f. w# t+ z: h8 N) u. R2 }; L( |
+ P9 d4 K, w( h0 O6 }8 h
2 x' B: x7 h( @2 E( \% V: f
另外,ADU读到的什么信息,你认为有错误呢? - y: \* q- x+ [4 N
6 Q) Q# m% Z6 X8 H4 F- I0 a& Z; q
% f$ ]' l0 S2 \% r" G" T
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
, M# G' a; _: P- A; N* g6 J- C   spec 有这样的定义
  ?" H$ F! S- u4 T4 ^: F& S + @6 }; M5 r" `4 @$ E# ~
ata6中
  X0 R7 @0 E- s* m/ a/ F, Z- I
, D0 S0 V+ b( g6 t第85word:8 ]2 Y) \$ f8 `
15 Obsolete                            -------- 0
4 V+ j8 y4 J, w6 J14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   - R/ i# U$ E5 e
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   9 k) T3 P) o+ V$ r$ c  \1 ?+ a
12 1 = WRITE BUFFER command enabled    -------- 1      吻合: [/ |5 ?, ?- ~1 T! ]" [& d
11 Obsolete                            -------- 0( h7 q7 |4 c( J0 w7 x+ e  ?3 l4 e
10 1 = Host Protected Area feature set enabled- 1      吻合
4 N8 V1 R) A8 x1 W+ \- A8 J3 X9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   : t6 I) ?  y% e4 w9 e5 [4 _; V% P
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   6 u8 P0 Y# ~& c3 p5 A
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   , U( r# g5 k5 q+ [* G4 g% y
6 1 = look-ahead enabled               -------- 1      吻合
) E+ a: u4 m) n1 Q: c' x5 1 = write cache enabled              -------- 1      吻合$ U+ k7 D& c5 K: i6 i0 C0 r
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
$ @# ~+ P4 g; }$ @7 ?3 1 = Power Management feature set enabled      1      吻合' C, l* R6 j* w
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
& t+ y' {) K6 |2 ~1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   0 W6 K3 p% n- O& U8 z
0 1 = SMART feature set enabled                    1      吻合
+ Q6 n0 ~/ _( d. G0 K) R3 z( u; Q$ a. ?. v2 d
那照着这个数据的话,3469H= 0011 0100 0110 1001
& z# t) v, Q4 E  T2 O
) X( c$ w* \1 [% k3 V, J/ o    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!7 ]! s5 r7 U. g* ^$ A) c- s" D. J

" y8 E4 r$ Q5 V+ B
1 p: I$ V' g/ _& t
7 C3 K5 ^3 k6 T4 N0 Z* p" D& Z5 v* O, [( a$ g1 D
(*******最新*******)+ P  V5 ]; B6 c  L! E* Y
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
2 n* t# X3 s" R7 ~+ b# d     不知道各位大哥怎么理解?" _6 l0 c( j. a& l

) Q( P- C) q+ n' K  [  m' A8 s' _[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 15:55 , Processed in 0.184890 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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