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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
! L1 x7 L7 q1 P, }2 r$ r0 f  o     问题一:9 B5 e8 \. f  z- T) g2 l7 a
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?- I) N! _) V2 S8 q
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。) g( Q1 W. F$ n. A, x" y" Z6 q4 N

- E7 J) ^5 o3 E. X: i4 G6 Q3 ?2 ]; {, F4 R, I/ B4 W) M. z" m
     问题二:: M+ M/ {4 Y' ?  X1 W
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?  d+ ~3 O" e, f7 |
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
9 e9 a! d( q: `; L& a% W% F$ l% Z, }3 X

4 S2 o7 \# P4 {     问题三:
$ T  U# ?% j7 |6 @5 _     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
( P, K) }7 ?- J6 ~, K% r& n我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?- B6 P2 n( R1 y: ?- P
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
0 E! V- P8 c& u) W- r, W
; @* F# W6 r6 F$ R; N% q7 U[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
  U8 f, u$ M1 F* D, g  A! x5 _$ m7 Z! L. s0 r3 h  C; Y

$ u- T2 H% A& S% q" {* h       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。: k- ?, |5 Z7 j& Z, m
. r8 i( }7 X5 _& `4 r+ k
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)9 ^8 i# V0 P/ f" W6 Q) I
5 t7 z4 N) K7 X. |
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,4 d% I8 c# n4 e
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
# m- ], }- b+ Q1 r' B  n, A/ g
& R: P0 I* b) c! Q3 J不知道硬盘firmware里面是怎么存放的,反正是按word来读的。" @6 K% x$ T" D

+ r3 @" g  C; F5 H另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
1 P  }$ G0 ?) s' B) B0 v是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"" ?6 t" |3 [; M& A* M
' G3 f" f$ x* M* f+ ~  R3 Q

. B3 x, X6 E+ Y" Y$ A( V' D, k1 j-->恩,是的
3 h3 Z1 q0 w' s3 k4 {, U  T" a& ~, q* o

4 N8 \+ A' l. O/ u  z$ P  ?* f+ H$ p( c5 Y. J. N, W. i9 u
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
. |: g6 v; |$ }# h3 W  g* ^2 T% q( z- Y' ?
-->恩,谢谢!
2 J' q1 S9 u+ i0 b  t, u6 ^$ k: A. h' s
3 I$ x* E" Z, @0 E  Z& M
& I/ @9 e% {+ h* B! t5 Y6 k6 P- C
另外,ADU读到的什么信息,你认为有错误呢?
& l. \& d7 T+ [$ p, l; T, p# j- ^" F4 {3 o7 j

. X  v# w' m* P: a-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。' N. q2 ~, J: f% N+ V
   spec 有这样的定义  d2 b8 i9 {& D

3 o& ^2 Q7 U4 a) D: X/ C) B# Fata6中" }0 R; d. d7 r6 j; o! a0 z

: `! N6 Y2 S7 E' @* n% T第85word:  _4 v$ s3 r' H% C  G
15 Obsolete                            -------- 0) j! E' W# a9 s  q
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
( I4 a  Y6 ]) x+ H+ g13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
6 J, Y: u. d2 `5 |& Y& Q- ]% i12 1 = WRITE BUFFER command enabled    -------- 1      吻合
9 u3 C! l1 a& V11 Obsolete                            -------- 0
+ j$ \0 ~* h! z( h/ m/ a10 1 = Host Protected Area feature set enabled- 1      吻合  s/ v# x8 q: X. }/ c
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable     E7 s* t$ G5 z1 k" J4 H
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   5 k6 f$ ~2 y0 r2 H2 n% o
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
( M  b2 ^, ]+ ~& R$ ?0 v6 1 = look-ahead enabled               -------- 1      吻合5 x! @! U3 w7 I) o1 W4 a1 b) L8 ^$ Q
5 1 = write cache enabled              -------- 1      吻合
' M! ^8 G5 l& W1 g* V2 i- C$ @4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问7 k: e, x4 ?; B
3 1 = Power Management feature set enabled      1      吻合
( y* U: X0 x' T9 O% Y+ i$ k$ T9 E2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   8 b1 n5 N) z! d2 x6 B2 h+ @. S. K
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
. f  V% n( s0 c+ d0 1 = SMART feature set enabled                    1      吻合
' G; f7 I3 V0 c# k% \. p
# c) y' k! d  E4 y7 l% z1 T那照着这个数据的话,3469H= 0011 0100 0110 1001
7 w. F  u! ^6 \. q* K
: Z1 g* E& b% `6 m    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
, x' l7 Z7 w+ l1 g8 v: Z/ b! ^
/ ^) {6 b& |+ m( h) x2 m6 K; A7 q# n+ D' c4 ?& f/ \) C; h- [

' e& j2 \9 F" U6 j3 b$ V
! b1 c7 c3 B; X/ ?6 A$ g8 a(*******最新*******)) V0 Q+ a. b3 t; u8 k
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。6 R9 I0 k: }0 @0 I
     不知道各位大哥怎么理解?2 a2 V1 K$ w2 I8 {' U$ Z$ o

' v4 D4 `3 i# e[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 06:11 , Processed in 0.020089 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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