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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
, z+ M0 Y  \& |$ V' C. C     问题一:
& P4 y5 o, {& s     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
3 ]/ r/ K) D! a! y% p+ z" b因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。7 e  k7 V$ x+ x$ n0 r4 O  O3 {

: X8 i) [) z) t2 s* K  e
% i, V9 X4 y$ U% r     问题二:
7 T! q: @1 N4 a; Y% E) ?/ v     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
; x; `) v9 w6 q6 W举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
( }' m( y  G$ ~$ \1 G) K/ u# q2 r* a& R2 p

& i' |3 B/ _1 ^, A6 i     问题三:
# c( B: Y# S, A  S     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?- K# P8 t& k7 }9 S5 r
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
; `" K5 K7 a( \     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
. G* `2 T% u7 ]' r! n0 F3 v* B0 Y' @+ o3 |1 y* Q1 }
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。& Y2 z# R9 E; g) R/ K4 P

7 X3 p8 b. \( L' a$ G! G. c6 Z% D! s4 }! U6 j/ C3 e
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。" K* q  `' p" J+ q9 x0 ^
" f0 N  U' p$ d" e% J; j' W
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug). Y8 M6 D2 c+ {6 z& j3 x

. t0 ^7 F! G% @! J8 F+ E4 z       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
" h+ R/ c  E2 j' [- p. c- _5 A3 P6 }) _是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
8 a) _. U& P& i) p; ?! B& y5 p. s2 C' ]8 d
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。) h5 Y- R3 j( N/ m3 d# _

8 B5 [6 I" w5 y* J" c$ y2 I另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
) V% k, t* S# v  B7 g是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"5 }, y4 p, a! d5 _. _
5 I2 O4 ]1 V5 Q* k8 R. g& u

2 E  Y2 z7 G8 z, s-->恩,是的
* W% [* A4 Q7 C4 |) G3 v, E, |2 G3 W- q0 }$ w9 ?2 r- r0 ~' H
: x  j! E; x  }2 A  K

1 B  |2 e$ J) n不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
# Q1 w  F# f# R
2 [( R! B7 v, b2 Y& E9 |  R- i* Q4 B-->恩,谢谢!
2 K7 ^* {% Y" [+ m
  @/ d7 J8 p) v
0 d# |/ m; t0 W+ [5 ~! B, Y' m/ c& Z# r7 {7 t; v. m2 K2 P
另外,ADU读到的什么信息,你认为有错误呢?
" ?  w6 T( B! V, q6 t# W
! ^- R" a" j8 J) o# O
$ p# ~& {' i7 e- v: L0 f0 ?-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
. A) o6 R: j/ d! J   spec 有这样的定义; W1 ?$ J1 }& O" t4 a; B8 w
6 y4 e& Q8 Z' g' U
ata6中  W; X! @. m. V

6 N1 }6 l& ^, \" K; Z第85word:
0 v; Y/ P' S: W: _; ]3 {" Z* ~2 R15 Obsolete                            -------- 0
% J: h, w$ c  L& w14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
" n; ]6 u$ v; H: b* Y13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   : L, |! V% K- F" c
12 1 = WRITE BUFFER command enabled    -------- 1      吻合
# B2 D) M9 L, C# t; I7 e2 |11 Obsolete                            -------- 0/ {0 N! y) L1 X: i1 U2 f
10 1 = Host Protected Area feature set enabled- 1      吻合6 F# L# h' ?. h% N9 a
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   * u0 i7 ]7 B5 z4 X; q  ^1 }: s& Y9 Q
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   2 q. l7 j0 U: n! d1 l  r( n. Y0 y
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
* Z* l+ y; c! W1 a+ d6 1 = look-ahead enabled               -------- 1      吻合$ l. y2 ~' ^# R! I1 {" @/ g- G: R% Z- i
5 1 = write cache enabled              -------- 1      吻合1 y2 J4 B# V% q/ y5 [2 u% _
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
; t; N( |( t- B: U3 1 = Power Management feature set enabled      1      吻合
% }' u8 p6 l* `( Q7 E( i, c2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
2 ?* B9 t9 s; q1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable     l# @. e, Q: t: ]6 G, M( D* p" {- g
0 1 = SMART feature set enabled                    1      吻合5 G4 I  ~* G3 a1 n' {
2 v, T+ Y/ L+ t; |/ T, K& b: w6 s
那照着这个数据的话,3469H= 0011 0100 0110 1001
+ d& n& R4 E2 `/ K" S, V/ x/ @! Y4 y
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
4 j! Z  O' G0 @2 e% R5 d
" v( s0 q1 ?: x$ l7 t3 ~& W
8 x. e3 E# `, \* Z/ Q9 i2 j1 ], B5 a

* r4 p  z+ A7 R4 ^& [(*******最新*******)
. o/ T0 v/ f6 U- i% |) X6 w     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。& ?( Y" Q6 W3 W1 q6 q) c6 g
     不知道各位大哥怎么理解?
' K- v8 L  P+ P6 |/ h7 A; `' d2 H  j  k1 O
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-12 06:54 , Processed in 0.031838 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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