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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
( ]8 Q5 }1 H2 R! v/ X     问题一:
- ^  a) }3 J5 b$ K: j0 {4 E     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?/ u+ Z- O9 O% J
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
5 T+ K+ ]6 v4 Q* `& L4 ]3 z0 n6 U2 p5 Q6 C" q' U3 ?! ]
- E6 G. `1 D9 W& D8 n
     问题二:
* m! U0 y, \$ d     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?( H0 q! [& m6 V$ e+ @
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
* H  v' Z1 A8 G; _
  Z% o" X2 P* o. ~( `: y- ?! n' F7 S' i; w! ]8 g$ O
     问题三:' [# @3 {: M9 R* o
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
- m: V0 S1 M4 Q) O* ~& \我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?1 B2 k( h- S' ~# J+ @3 r( k* d
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
  S1 q8 k# C% h' Q' }) h8 h
1 \1 l% m0 {9 u5 \[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。' z1 O) p7 y8 X

) ^# ?7 D/ ^5 ~* `! }3 {8 x. Z  V4 I4 G# |( W  u
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。& m, k. a" P) c

# y9 G9 n4 h  V% O% {+ \4 a但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
" q2 [2 _9 ^' x$ r* @: s* f# B- P* ~
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,: p  ~6 S  i% N9 a! Q: E$ h
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
/ Y( F6 S' a- E7 y, x: l7 S8 _3 [
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
6 a2 d8 F8 F9 Q8 @5 m3 C8 S6 t4 \* a7 i# b2 g' W1 X1 E- T3 t1 t- J
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
* |( j. z' H* d; L" r# h/ l7 `是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??", s: F" b1 N1 `8 a6 s1 {+ H  w( c
. x! s: Q' }& Q- W
$ }1 G. E' ]6 w& u3 E1 M
-->恩,是的
# U4 K4 X/ i' R/ Z) l1 Z! H
, f5 Q. o7 i6 A, `; Q1 q
7 j' P" P- ~" h. \! B% g4 X& m  q# n4 Z- P; K, ^. k
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
1 @9 b( V  Z8 o6 `, q6 I: e) S, x: j6 f6 i" P% r' ?1 r
-->恩,谢谢!3 b% z& X& ^2 r: u5 Q2 ]- I5 G

1 D' @, F, |  q3 q+ k" Z; \$ Z0 M& z, n4 r

+ u+ M7 q# @. R! g0 i' v另外,ADU读到的什么信息,你认为有错误呢?
0 R- V. l# f8 d  p) S2 s  A9 {/ E* a2 f

( J8 R3 N# _0 ~-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
. S; k6 X. x, T7 X! }) d# J4 C; Q   spec 有这样的定义
+ ~- D1 R1 h. N' i( f* V
0 Z  ^+ l+ l. x. A$ L; U7 {; fata6中
, C  d) f& |5 l  |- X; e6 m/ p; Y" M8 i* R7 b
第85word:; U$ v& d3 E# U
15 Obsolete                            -------- 0; D7 s( t7 Q% y* X  Q/ N. z
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
. n; M2 H2 e& X  Z2 ^13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
+ ~( c& b: }/ A: }. c' O12 1 = WRITE BUFFER command enabled    -------- 1      吻合+ Z& Z5 R; E+ l* Q' Z
11 Obsolete                            -------- 0
5 O( H' v3 J1 @5 Z+ R" P* E% W% T& s10 1 = Host Protected Area feature set enabled- 1      吻合
& Q+ n! v: o' s9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
, e  |! T# h( k/ h) h2 d) P% W0 I8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
$ b2 U5 `. S' u- r( D7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   + B2 X0 S1 h% k
6 1 = look-ahead enabled               -------- 1      吻合
' @' g; o& O0 T; D& d5 1 = write cache enabled              -------- 1      吻合5 }# y# [- L  o. T4 z0 r* u5 c
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
4 F/ C+ k4 H5 E8 ]$ A# v$ f. b3 1 = Power Management feature set enabled      1      吻合' ~$ x0 L/ u, U) m# l
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   % }7 _6 F0 a7 N8 c% u# P
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
* o3 D: |1 z" G0 1 = SMART feature set enabled                    1      吻合
$ Y8 m$ E3 d* D3 y/ n& l0 }- R* t# Z: O2 O8 M# K! Q, m2 y
那照着这个数据的话,3469H= 0011 0100 0110 1001
6 a) J3 b: Y! s9 r
6 P* i3 k) e$ S1 c6 ]# t    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!) ]+ ~! _5 d% S) h" k* X- A2 R
. K( S0 o, _& T6 }& _

4 w$ B$ V3 _  B; U; f2 T, \8 j" L$ O7 b+ U: P& e
6 p# T" C: c% P; Q. f" e
(*******最新*******)
1 i2 v, a: K# I* \     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
9 |2 s+ Y1 ^0 K# ?     不知道各位大哥怎么理解?
  \) ^7 q# d" D. Q; H2 i8 W( u  m) e- `5 G9 A
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-19 19:08 , Processed in 0.117181 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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