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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
- W) G, ?# X4 {9 X- b) G! _- @     问题一:6 Z: k& y+ F7 t5 L- Y
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?+ o2 W  k! N  X* A
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。5 Q* K5 h% G4 x# o( f

! R# `- r. W8 j; q% k
/ g7 }# Q' l% z& P7 \     问题二:; n5 V+ j, ~  y- o# }: O
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
% @7 P' a9 ]' ^8 `举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
8 @0 [% E) E; t: `  s' `/ E; ]4 M* l

* Q  O3 k8 f) q9 T     问题三:% v5 g( w. ?+ I. J9 o( X
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?) B' |- ]* u5 r  u# w* M
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?; ?/ l& n! z" A
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)1 B& d! ^# R9 J; m7 X7 V

9 E+ |- |. F" h. o8 Z/ L1 G( d+ t[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
- [$ H7 g: \0 `
( p1 A9 O) g2 z% X& }+ [5 r' P; h
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
" r. t3 z0 F: c3 r+ ~7 b3 g* l+ K4 x7 k2 k
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug). g9 d" i2 n. j, D6 b! q% b' F' j
& j7 w- M) U' {' l/ m
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
2 x$ }+ ]3 N' G5 f是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??& s! P' `8 ?. \( `0 c  s

, t( v' A$ B3 H5 j( d9 q不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
- h! J" a5 A0 _9 j& p8 E  P9 e
) O) c, c* H0 ~* Z9 a( @另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
: X; C+ ^4 V- S$ e( l/ m是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"- f# J9 B5 h2 ]! s5 n

( Y* E9 E; {9 z2 u
( Y: v/ p. |- u  B0 M  f- j6 t% X/ p-->恩,是的
: A& R5 B; ?0 [- I, c) J% j
2 f: y! G$ v; ]; w  O
+ T* j7 x' m  ~: N
  B% D9 K  E( x0 h/ p, \8 H不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
1 }' c* v7 F/ g9 v; }6 d* D; x; m3 V! z+ _( Y- t
-->恩,谢谢!' [' p2 C' d* f$ J1 X( W
! s9 N/ d8 G0 I, J

& P$ P, M2 C- H- m$ Y" C+ U3 f5 Q4 z0 Y* E
另外,ADU读到的什么信息,你认为有错误呢?
% J9 }# Y! _5 F. |# T
8 ]6 Y) z: k- o+ c+ p3 n) l, [  G! s& g9 T
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。  `( {8 Y+ x: P" }# V6 x
   spec 有这样的定义
- [" `# ^4 Y% P: ^
) e1 F* L! L0 b( d# s8 y$ q0 aata6中# O' y3 |/ ^0 o9 p- Y$ R

9 F& v3 _( t- s第85word:
' n" P, R5 b! ^2 S9 k) z15 Obsolete                            -------- 0
% d# |3 y3 F  W14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
" E- j4 g, G% H8 Y, g/ s1 q# c13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable     q/ F) H! n& W/ C/ e5 ?
12 1 = WRITE BUFFER command enabled    -------- 1      吻合. P+ M% I. u5 {  X4 ]3 u; E
11 Obsolete                            -------- 0/ X! L$ k- \! j! s
10 1 = Host Protected Area feature set enabled- 1      吻合1 e- e, R4 X) q) d9 k  Y6 g* J0 L
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
* S3 V. ~: ]3 s+ p. s; k- f# p8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
. w! ?1 d' v, t3 [" E( m% C5 |" G8 N7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
$ h3 i# I/ c  X* P, o- s( C' K2 h6 1 = look-ahead enabled               -------- 1      吻合
, R2 B0 o' ^+ k# E( M5 1 = write cache enabled              -------- 1      吻合
: u* n4 @$ Y+ P* l' Q# _4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
0 M1 j9 i2 s; @8 G3 1 = Power Management feature set enabled      1      吻合8 y+ m! L9 H+ F! c3 @  S
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
1 Z, q3 |: t% u/ H7 a9 S1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   6 E( `1 ]) I8 v$ E' w  z) O# r
0 1 = SMART feature set enabled                    1      吻合
/ X/ \$ B5 R# ^/ T* x' f' v) t- Z; p+ p
那照着这个数据的话,3469H= 0011 0100 0110 1001/ p, n. N) v4 x+ h5 Y- N

5 s8 h/ C& y2 b1 T  D/ A    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!" I5 X5 A4 H7 N" U8 t( r1 |
, z+ x$ Y  U+ y3 ?5 H8 h3 y
8 R+ X# p" f& m, D! r

: o2 ]1 N7 P* D5 b& i* W+ `8 M& O/ _8 A; L
(*******最新*******)
, q+ D5 @; G$ C# Y1 f) a     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。$ g0 \6 ]+ D* x8 ^8 x
     不知道各位大哥怎么理解?9 h" R+ h4 Y5 \6 K) H# j4 x6 S

% s2 ^, ?$ g# M# O1 t[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 14:42 , Processed in 0.083034 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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