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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
8 D# S9 ^7 g2 b  w2 f     问题一:
4 A2 w, |: |5 a% i     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?1 h/ M& q% b9 p5 u5 _
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。! x) a! c% {( d; [9 W! u: ^" _! `

& A6 q- u1 V2 N! o& z
9 `1 p! i) a) B& T" J     问题二:
* @+ S6 G8 Z  f( O6 y$ V- f     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
. B7 c( E6 [3 f7 w" b8 e9 W举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
0 Q1 W" ~9 s2 N. W" p$ N, V
% Y7 e, d5 `# C0 P9 G1 ?' V" F' f" j0 `6 I# p) I3 ]# R9 n- d; ~
     问题三:
2 g. C6 y1 M' n# X0 }3 p     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
9 l2 _) N0 Y6 o4 {我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?' z6 S$ E/ q! F5 y
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)" X$ N% k+ P% u$ t" `" ?. ~
2 T5 y6 l$ r. C7 E8 O6 v* z% @
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。8 [, z; g1 q. r; l
1 ^4 G( h: ?2 R! q3 \: N
0 j# b- o% b# B# P" Z3 O* X
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
9 y9 {  T: H* {
) M, E6 O  l- _但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
/ @5 Z; ?# w. d$ F8 i* b' d# ~6 Z$ I/ D  x+ j8 e  a
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,$ Y" f$ q3 b6 p8 ^1 S6 Y
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
& B+ Z4 |0 `( _% U
3 U$ h0 y# g- l, n5 d不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
2 j* @: d- K, z( j# i1 Q' [1 z8 e8 k" |
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
5 r5 R# D6 W" v& b: m9 Q是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"% c' n5 |, C" `- K; e

! \$ T0 G) q. D9 Z' j- ~: E% X* D$ v5 @: X0 Q4 u
-->恩,是的
8 Y: z- ]/ d1 B$ C( }: l8 n( X
! c" X0 `9 k# M; o) t+ o) k8 D0 [0 Q* ^: t0 O) M

7 C6 T; L9 j# R. d( i不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
" S2 i4 e% p" r! F2 N4 M% K$ i/ t' a* W' z; L
-->恩,谢谢!
9 j2 I# n( ]. W
/ K8 i) ?. c, {
& Y) R7 M; [% T. I" p& J+ v( U% K
( P, Z. K1 x1 R/ ]+ \另外,ADU读到的什么信息,你认为有错误呢?
: S$ O! J; ^2 E$ Z! x. ^
: B6 x' E& y: G8 x4 n1 Y" A% g# y: `1 K8 o. ^8 V9 _) {
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
  a! L- q% j3 P   spec 有这样的定义
6 U  Y2 t2 G2 ?! ~* H$ Q
$ I. E7 d7 p( V* B" s; x& d% F( Z1 ^ata6中* y& Q: d6 W: c9 Y
( y+ M. I  C5 U" `6 e9 U6 O1 K
第85word:
5 m$ X) S7 E5 y- p. @" v15 Obsolete                            -------- 0
% r8 o$ j( E6 e) T14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
8 b) \$ G3 e3 `  x( z* |: y; C13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
1 M% M% q' z% K) |( c12 1 = WRITE BUFFER command enabled    -------- 1      吻合
+ R$ ^6 e6 F' P8 S11 Obsolete                            -------- 0) |" Y7 D7 K% n6 T9 m& b8 Z# D: {) [
10 1 = Host Protected Area feature set enabled- 1      吻合
9 h, l5 ^) E8 U* s6 x! Z9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   4 m1 H; k" z; f5 G
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
- M' Q/ T2 V& I5 l4 {8 s% Z7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   6 a8 W2 e3 {1 i. _6 \. B7 Y
6 1 = look-ahead enabled               -------- 1      吻合2 Y6 z" _- M8 M/ j3 Q2 W6 L, ~
5 1 = write cache enabled              -------- 1      吻合, W: c+ U' X6 \* v! [1 Q6 Z. R
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
4 R( r2 S8 m5 h( F4 g9 F' v3 1 = Power Management feature set enabled      1      吻合
6 l. m6 c7 y& q4 t2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   7 y, ~; q% _! a  J; y8 H) E
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   * d, e( U* }/ W# q- T) ~1 L
0 1 = SMART feature set enabled                    1      吻合
+ k( g1 d6 Y, E' q3 J9 f" [$ U+ L/ W9 }) A/ v  C& t
那照着这个数据的话,3469H= 0011 0100 0110 1001" W" h  C% F1 q+ \

" ?8 `4 A2 ~3 s" r8 @6 ]    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
5 Y9 s2 W; j4 P
* b1 L! ~# y% {5 C3 S" I* D8 w7 ]; Y4 z, S7 |

- a9 w$ a: R  v" `
) f- s* Y# ]0 k# l(*******最新*******)
1 k0 T6 e9 d  _  y     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。0 b6 o5 _" n7 \
     不知道各位大哥怎么理解?6 D5 \/ e* ]( Z

. s# J. ]7 b# i' K7 y( a[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 18:32 , Processed in 0.019140 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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