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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:0 L/ l, S+ t8 ?& }5 N9 {/ L* a! F* y
     问题一:
7 e1 i5 E+ C  I7 ]7 j6 m% b: E     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
. m: F" @. g( i- F因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
) k7 m6 [* b6 v8 ]
+ T4 p  J1 J. I$ ?1 C8 f4 S8 N7 T
4 I4 Q% r0 J0 O. z) r     问题二:  c( }/ T) g5 @6 X% ?
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
& Z" U/ l& s/ \7 @( V6 J举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?4 _7 G* A# @+ \; F- D1 K2 o

$ y" w" ?) S! `! M3 L, c8 ^' ~" }- F# [' D
     问题三:
/ E  E2 T+ G- {     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?# Z9 |( F5 \; t% F- z) t
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
4 I2 Z0 P& [0 A- F( O/ w     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)5 U/ R* w, m8 p( e( f0 {5 W7 @/ b9 ]

' _( Q) |$ @3 l6 y6 A[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
' d% B! ]" E; W* _8 |+ u" ?7 L2 ]3 s: T- m( ]2 F9 m

2 d! C* @8 i+ V  U% b: R       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。% s( t' U* P" v- v: o! ]
3 I" J) R+ G4 e
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
7 I( G5 Q' f; N( u5 f& N, j# i+ p% F+ k. m1 @
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
. Y/ F+ E) P# K- c7 |1 h/ N是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
9 L9 `6 \) a4 `' t. y5 z+ p; a8 d( t4 \" c1 W- o4 U$ s! k) _
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。3 T. f" U1 a, H

: C# r+ M* c( q) ~4 S6 A另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,7 h$ f+ j: _" B, \3 r$ L" m3 S1 b
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
. y1 c7 t% P- ~& ^9 h3 y
% u3 E, m3 f! `) Z! l8 I
  Y6 \. Z# G+ x-->恩,是的  r2 g- S* N1 f$ S

6 f" I9 ~8 |/ I* ^) u( {! W) |# D
! F$ B; k4 A7 V  K0 d9 |
$ Q: ~( j6 m$ E+ `, u) _* e5 K不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
% z3 Z* y+ k; I0 C4 W& z5 M& r& Y( Z6 X7 t. d* D
-->恩,谢谢!
$ l3 a) f  s& ?9 h" c* O) [: q7 p7 Z+ y* _" c$ ^

2 i& v2 H9 Z1 K5 b' e7 j% M7 x
另外,ADU读到的什么信息,你认为有错误呢?
5 C8 u8 d1 v  I  c9 q8 p2 e# c) c3 J1 F) z8 y6 O

" w4 E+ S; X9 u0 z! G$ @& X-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。. z2 K, V4 h0 ~: k$ u4 c) q
   spec 有这样的定义
0 j: i" _5 ~+ T2 Q+ F ! B, g. s% p4 \/ ?
ata6中
& C; F9 e( H# g% z
5 W) l' B5 Q5 b$ ]) b' e第85word:
) m! h; l( z: I9 y% _15 Obsolete                            -------- 0; |) s; Z# Q6 i! T- k2 U) c0 K
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   ; P5 U: @4 ?" j: U* p9 k
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
) b$ S4 v+ v3 q4 L12 1 = WRITE BUFFER command enabled    -------- 1      吻合3 {3 Q% w2 A( Y4 j9 w7 M# e2 S
11 Obsolete                            -------- 0; G' E1 n/ V& q9 p
10 1 = Host Protected Area feature set enabled- 1      吻合- Y' c& H- @2 P7 S' D2 o
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   2 k/ L4 @$ l4 W) Y, ?
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
) f5 V4 G+ F9 y' \7 a7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   - w% w7 o0 o% c1 ^7 e; j% B; T. g2 i, r
6 1 = look-ahead enabled               -------- 1      吻合
$ p5 l6 ]" e# d- G2 V0 A/ N9 R5 1 = write cache enabled              -------- 1      吻合
0 O$ O, @- m; {  Q- ?4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
+ h+ D8 G* p. U! N: U0 }) C" a3 1 = Power Management feature set enabled      1      吻合# |8 w1 f  [  o% ^; n& }8 `
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   ) c0 }- B7 x7 d! Y2 L3 Z% D' M
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
2 l0 M5 l9 l. B- w7 A0 U  Y0 1 = SMART feature set enabled                    1      吻合
+ U8 A! X* d- `/ @/ s* A3 i( X+ G$ o' D. g
那照着这个数据的话,3469H= 0011 0100 0110 1001
, p, k+ B/ d  F, |
, t/ X: m4 f+ P# u8 T    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
! o4 D- u8 f) y; {
/ s+ g, g+ c0 t- ?1 |( X" l  p  Z  A+ s- Q$ t" n+ ?! @4 E2 ^
5 a! V! G, V) b' Y% x% C& H

9 z3 h  I: E" q8 y/ G9 O& s(*******最新*******)
6 H$ h! L9 p: M1 r/ c     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
; S1 Y& _$ ]  Y- ^     不知道各位大哥怎么理解?
1 e1 c& t& J: C4 |) F1 d/ |- c' R$ T" q' B8 z1 @6 y0 ?( c( ~
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-5 01:22 , Processed in 0.163735 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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