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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:( p5 {: p) C! _* T1 u
     问题一:* m. U# N3 `' x( F% y
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
* ^5 Z" R+ T% R; r# c) d因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。. Q9 H, ?) {2 E: C  v
7 }3 ^; R/ R3 {8 R# o
& R% a  V, H, }1 `% a- p
     问题二:) |( J4 k8 U( U5 |! N' d
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
0 H5 j1 u, ?+ O4 P! [3 p4 d举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?/ C" D$ G6 C- \% F+ J0 d7 {; W

; Z- c: ^+ p; l* Q- N# U
- N- Z9 d! p- D/ ]# g/ Z- ]     问题三:
9 |  D! [/ J0 B' H  }! H) K     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
4 j' w' _/ |* O+ a! n3 x) p我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?7 I" ^8 N8 p3 T& ~
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
$ ~5 V- H. `5 {3 [9 \
. X4 P9 P" w  u3 v  B; h[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。7 Z4 P& q1 i7 _3 S7 X! P9 I
6 `: l! M0 }  [# t3 z. ~

  _& W: D! w" e  z6 p) A* [2 l, ]       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
% j" E# x1 [3 G# M( j2 r  H# S+ {2 n
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)% Q& F) y6 y0 F* Q
# i( e3 I: M+ ]3 I4 r
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,* t! Q4 G) M; t
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
$ E$ _8 l! m) O1 _( _0 ~  }5 N6 ]% f0 p* Y. T8 X" ~# \
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
* {" L. Z% h+ O# q; t
# T0 h, \' k2 U4 Q另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
" O) M  Z" B; f! g8 C是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
4 }2 y$ `- Z" |$ e' Z! ^- c/ j! A' M! C1 L1 ~+ [; z

2 v* d. \. d7 `, ~% X-->恩,是的
4 `- W& C& `( p; m! n1 D' y2 {- x5 {, K9 N1 a$ J& g9 G8 T

* m  R+ S/ t6 H7 b+ ?3 b
, {2 _1 e: {* @0 G7 q% D3 h不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
) t$ v* U" x0 S% `' Q- R
0 a+ |/ l; U9 r+ t; x5 N/ U-->恩,谢谢!
: w! \6 B0 |: a% l" Y! u5 D3 \5 A
' B" @' ~( ]+ i" |; @1 ~; U
. F5 o0 x/ Y7 \1 @& w
: g- D# O, a+ l/ k  ^8 \' Z; Y另外,ADU读到的什么信息,你认为有错误呢?
" y. n- l5 k2 m4 X+ ?8 N! E& f, \. }: E+ s
( I! s& B! m1 P- a/ e1 E1 n
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
; I% u/ ^$ O& s4 H% n   spec 有这样的定义
# M+ B2 {$ r0 B
4 M6 P6 [# Z( C/ pata6中% t6 g5 {0 X8 k- h
& q5 n! f0 F1 f$ i' j
第85word:0 p6 O: j2 Q( }6 B
15 Obsolete                            -------- 0
( I4 w& A" ^& N) x* `& L14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   8 @! V0 v- _2 [+ h" G
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   / `7 @5 i# l- U( v6 _4 c4 s5 s6 g" \
12 1 = WRITE BUFFER command enabled    -------- 1      吻合  z, \9 Y4 f: M/ O0 z
11 Obsolete                            -------- 0
+ Q; t6 o1 s- F& I1 F: p/ V- \* c# y10 1 = Host Protected Area feature set enabled- 1      吻合
, c+ T2 n: M4 Z: j, [3 h9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   ' Z1 x+ \- d4 W  R
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   + d/ l$ z8 }9 f! I* E: V) @
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   , A8 K7 ~& ~4 }! P
6 1 = look-ahead enabled               -------- 1      吻合% z" T/ }- \$ y% @4 }; i/ M, h
5 1 = write cache enabled              -------- 1      吻合
" h; p+ W( v0 ?3 h% J* T7 {8 p4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问0 E$ n+ h7 G( o, ^- A% G' B
3 1 = Power Management feature set enabled      1      吻合- m; O+ |' F; k5 t( O/ l
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
5 S$ P: T+ {3 j* k, w; Y% m4 @1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   : t' K0 m' m8 {8 }# D! W$ @# D
0 1 = SMART feature set enabled                    1      吻合! s4 [  h/ H9 n

$ \& q0 w+ L, S' ]+ \; U5 r3 ~) I那照着这个数据的话,3469H= 0011 0100 0110 10012 h. N' e; j9 X2 r

* b3 D* ?! ]5 i    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
# r1 R- e2 y; W' n* v/ C; Y
) T0 c! I! `" V8 b* R* g3 O! E+ z. L4 V1 ~, c/ G1 F) X

' f# H  `3 q5 V1 b: d, l, C, m* m: Z: S
(*******最新*******)
" u$ ^# U/ Q; o     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
! W# u* b" Z/ n- |5 P     不知道各位大哥怎么理解?
9 {7 [3 H, |" f1 ]" l6 o4 E  z
, f2 t, u) `- l' c  N" v* y- u[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 03:38 , Processed in 0.134045 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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