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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
# d$ Y# C8 d4 q+ ?1 s+ S: Z     问题一:
  q8 r9 g; X5 n% O0 @( T     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
  H. z  z0 l" T+ p( J6 o" v- {因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
8 w* P* \6 U: a" C( ?3 V- O% z9 ?) Y/ n3 t/ O9 M5 i& a" ^
0 U2 `# c8 v" M1 \% p# y
     问题二:
% B2 S: E# D4 F) t     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?# t  v( J* i! U- u: `+ p* K- [
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
! ?4 o! M& ~& d/ p
9 p+ e8 C, v$ w- R3 O! V! e: w* H, {3 Q
     问题三:- \* \5 f; ]; j$ l" Z
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
5 \7 d. s4 i& e+ C( k- Z: C( p我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?2 x; s' T6 g3 }
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。); v$ I4 [: S# M6 {

$ B4 }7 G4 n+ n0 x2 {. G[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。/ W% O0 P# p4 j: m0 ]! V

- t$ q% W4 M. W" E
" C9 ^# u1 T: a  v4 t. \2 G       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。/ Z% {6 v& _; h- D
& C( \" w4 Q) l
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug). g% o- Y. l# H. O  F# ^

1 L  a. s* {" {: v; f( K( d' ^' t       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
; P6 V1 R5 c& u, ^是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
5 E/ K; ~1 H/ b: C3 X% F6 s2 Z4 I8 f0 F9 B
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
! M4 h0 b3 e- _8 L$ j
  s6 x' a' F$ P% z& [另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,9 U7 G7 h* k- a3 A3 s
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
4 A1 X! n# Z, H8 o7 o$ d. e6 M
9 p- Z6 s! w  f
- @  _' V0 T6 \% r+ |( k-->恩,是的8 j5 f' X. K: ]# _7 \4 D" O; B' Y* R* q
/ a' e& o4 ~5 Q1 Z' T; U
- q3 N* z8 S+ d2 M5 f, G
2 x8 _& \8 g& p5 j  c  q
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
+ y& `* r: F8 s& i& u1 e
& w9 }2 s: Z) Z* _7 L  D-->恩,谢谢!
9 e3 N6 R) g& ]- L4 ?" j  b" m* b/ p7 Z( a

- e, a& e# _1 w; R! x( _& s, q3 q9 V2 L
另外,ADU读到的什么信息,你认为有错误呢? ( q( V8 q' V+ T
9 ^# f/ f8 N; ]7 O" J
& O( c. ^3 t% r2 k5 l8 T" T
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。" Y; m" v% b' ?2 ]! v+ {! O
   spec 有这样的定义
; }" r* t- N1 y: w4 n: p  P
! a/ P6 s3 e- P. kata6中# g+ z* c2 k- ?7 o- w) l
' j  a% Y! n; h* o/ O: J, u) k
第85word:
$ C2 h  J1 ?; w( L8 ?+ b15 Obsolete                            -------- 01 {% h% ^7 q% m( f
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   8 i' n6 q3 C* o/ [9 v6 m
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   4 L" M+ C) }* _% c  ~
12 1 = WRITE BUFFER command enabled    -------- 1      吻合! H% b2 Z( N9 R+ {$ d2 E& d
11 Obsolete                            -------- 0
/ n0 |# U$ K. e6 ~10 1 = Host Protected Area feature set enabled- 1      吻合6 C" f* ?- g9 ?9 e
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
' @! O. ^! q/ w5 U8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
. M1 {9 L' Q* |2 ^  o7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
" N  S9 w3 k8 V. d+ z0 E6 1 = look-ahead enabled               -------- 1      吻合
& q9 v! }* |5 S& X7 D5 1 = write cache enabled              -------- 1      吻合
  ^; t) A# S) s! y% |  Z. U* I. d4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问3 G5 Y2 u; `! l: X% N& e9 u# }. V; j
3 1 = Power Management feature set enabled      1      吻合
+ }, H7 Q! s, m* A9 Q2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   ( J& ]! S* j* w- E% z% o+ ?5 X0 t
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   - t& |# u- h2 ]- Y1 Z- o- K& X
0 1 = SMART feature set enabled                    1      吻合
7 H+ {) F; ~+ A( X* h5 I& }/ ?' E! h: @
那照着这个数据的话,3469H= 0011 0100 0110 1001: J* x+ }) w! F+ f% M
0 S: C% _- S4 K# E- h, m
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!( T! _9 v( P4 _0 `, g! [6 w

) f) @) m7 X% _& U$ d6 t5 d
) E+ s! W' B8 U6 \2 z! w
, q2 j* S  y' c" W. \! ~7 p# Q7 R; P0 I* k4 G& X
(*******最新*******)
6 H: }, `# O. y% U     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
' j6 {7 ^# N, X/ S     不知道各位大哥怎么理解?
5 c+ b) ^5 _6 G' ]( J8 R7 I; Y& W  P1 `' [
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-21 13:19 , Processed in 7.376381 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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