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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:1 U+ A( g! @6 n: t7 C/ J
     问题一:  O' C. j5 |& ]# @' _  E
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
! F. c; ^, c7 a# M. W- q$ N因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
, \( o/ X( m- N) P; H; ?0 w) }% r: G: S% `
* k1 C- t1 [# N% m" u+ l
     问题二:. W/ a7 V  _. o, o
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
6 U3 r% f* H) F( `# Q7 h举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?7 A! a& `# q* I7 Q' z
- o* V" S' f3 z; Q
5 _+ d2 D+ L! _" K4 ~% \* H6 p
     问题三:. ~- l" p, }( c) c
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?0 }3 i% ^/ s* v8 |+ ]8 `* d
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?+ i2 V0 V) k2 g2 [
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)' Z& w  h/ j8 t6 @# q

9 c& C, Y: I% E7 M- j$ }[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
# N# G3 I. B* ~3 Z) `. i, g- C/ p1 Z# j

- o4 ~* V) ]* j, o% l, Q, _- S       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
0 b' C2 A! w, r- w  E
# j2 @4 J: ^- E- `" I但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)/ V& l6 U7 B( [0 S2 E* [

8 M: Z3 q$ M5 Y$ |& ?5 Y       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
# D  j6 k4 g2 }8 y* s) D% s是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
# U# O3 i$ O; j4 W3 p1 F! r$ U! ]7 r5 B
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。% L) H9 v* N8 e( F7 e
% [, X5 g' g6 \  v' m
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
/ x' Y( N4 [0 x% g( }( U是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"+ O3 M: A2 \9 A7 K/ U, k; g) k" t) M
2 _; T1 ^" b! q. L' M- p/ P
( b) k0 b  Q7 l9 d# b. ~
-->恩,是的
& Q. h  C' a+ H7 ~, K: }4 @; k& |. G  s, ~. |, v! ~
9 I& Q' c; S: T% n5 J
3 V* [# t6 M7 |4 g) G5 |7 n
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
: r% k+ y* R; p8 A5 D
  [: a- j5 D, d-->恩,谢谢!
+ A6 @. C( s- G- I" T% i- T" G) d9 }+ l5 [3 t. |7 m: i

3 C3 B% w$ O2 Y  Z5 J9 c) T# X8 U, S( I9 Z8 y) Z+ \
另外,ADU读到的什么信息,你认为有错误呢? 2 |7 e  K5 Z6 c. X5 R# U
. T/ g5 s) L" C1 A
0 e; _1 c6 R3 L& Z/ d0 s- G
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
% n% O- w5 K" _" B! J2 o   spec 有这样的定义
) z1 l( l$ k* X% O9 |3 X) N 6 K5 W7 a' s3 K4 O7 T3 `2 D
ata6中
6 S0 E$ \, @% f, B- y) V; q( ^6 ^$ K: d5 f, @3 G! v. Q: B
第85word:
  y8 ?4 A- z1 A7 [* G15 Obsolete                            -------- 0
9 T: u! W. f+ O, v* `/ ]) Q- x14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   7 m; o. M0 y/ ], C8 ]+ B
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   : \' T; q  W, K* |( c- S
12 1 = WRITE BUFFER command enabled    -------- 1      吻合, ]6 S) T. A" {: [( P$ H+ b( f2 U  R
11 Obsolete                            -------- 0
: J* u! Z/ f5 I9 Q10 1 = Host Protected Area feature set enabled- 1      吻合/ n: u( Z- a. K4 s9 q( O
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
' y% K5 e. `- p  g0 A8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
0 q9 d3 }" @3 I2 p" p7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   1 i' I9 S+ P5 ~9 C( r: I
6 1 = look-ahead enabled               -------- 1      吻合0 K7 B3 k9 U5 `; J& B) ?, {3 o% W, \
5 1 = write cache enabled              -------- 1      吻合
- W- e3 L* }9 {( c4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
; w; {- s3 d2 `' L5 |/ c3 1 = Power Management feature set enabled      1      吻合
  |! h% T! ^% f7 V  [2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   3 h2 D+ ]& {9 w. e9 P
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   7 t( t2 w% k( L+ T; M' d
0 1 = SMART feature set enabled                    1      吻合( V  w5 t- B7 w2 @. }9 r; @9 Y% q
5 ]  p5 D' r6 t5 N  e
那照着这个数据的话,3469H= 0011 0100 0110 1001+ n' T* @+ t5 {, [5 t* n' m1 W, n* J! H

) d3 {& k. \: M6 Z4 X! I6 u- Q, P3 @    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
2 _" d% A/ p; D1 U, k1 i
% \* s% Q( n0 e* R* n/ U* w9 h0 y/ `& L

( u+ _, Z5 O7 ~7 a5 y; W
6 \3 k4 Y8 [* [# v0 _5 H(*******最新*******)
/ I+ n# E/ W/ c& ]" O     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
" A2 Y. `8 P3 m     不知道各位大哥怎么理解?
$ g! k4 M& k: z. `0 K3 O1 |2 C# O: ^( B9 c& i
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 17:52 , Processed in 0.099569 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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