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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:6 Q0 {: g7 Q# j/ H. Z5 O
     问题一:# _+ L# Z" O$ z' }: Z0 M
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?5 }$ e7 J  ~( }$ O6 B/ R
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。: t& B- K& r+ g

- `% F5 ]4 e, U5 ?8 [9 e6 p% q
3 {, I, `0 G8 Y; _; M2 w7 i     问题二:( z; M8 ^( p" ]5 j% x
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?2 x0 b  {; O* ]5 ]( a! u$ S' S
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
' P( f- ?" o- `; h6 w; m  p. A5 [
: R3 K7 i1 a$ B$ y2 `; X4 [$ ?# M4 f( |0 Z
     问题三:
5 V, e# U1 J% B. c9 n     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?7 c6 @) b' A, a- g& p& C  h
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?  |' ]+ b! }) C" m4 b. V
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)7 ^3 o( X3 x% D
; O. O/ G, J% [" t% N9 Z6 a% L; Q
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
1 b6 K2 k7 _7 C+ n9 E: z4 Q8 o! W# t" P8 E' Y
. {$ c9 J! R" f) Q7 q1 u
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。6 }6 s, p& i% d- p) k9 T+ l
* a4 v8 e0 y- j. `6 ]5 J
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)9 N; m: I, Q& J4 s" M2 ^
9 ?9 @  ?& Z9 `( E4 H  o0 z
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
: b9 @- I- _7 e. f. x. c是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
2 L( }/ H9 e9 b" j/ Y  z- [/ A8 Q% \
" j8 Z. q4 O; \1 ~不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
- J; v. q  g0 O# ^) q" C2 t3 j. `  M/ P' T! S7 Q. I
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,& m9 U0 ]& M( `
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
) r' Y5 H6 m$ n- x4 B% ^+ f$ I* O* p6 M) {. Z
, T2 ^& \& y: A" b0 e: M9 i* `# G- [
-->恩,是的
3 W' ^1 B7 ]* h! R
6 S# ]+ d; g; X0 f# k$ D# O! g4 Y; p# }1 x: H4 ~

3 h3 v# s3 f1 U! I不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
( z4 ]5 V; Y; J5 U9 ?. t
' p/ Q+ Q2 }" u2 O-->恩,谢谢!
  h  u! Z1 u" `" w3 ~% Y( j9 p  r! k6 @( o7 Y6 J! Z- A

! z# y- L5 ^7 }+ y- D6 O% M: \2 M, {
另外,ADU读到的什么信息,你认为有错误呢?
% W/ C$ k0 g, W6 b0 F# b6 }0 I
* e" o5 x4 P) [* w
' Z7 |: w% x5 u; ]/ O-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。( B& W* L7 [; Z$ L% ^! n0 G
   spec 有这样的定义5 x+ ]; U- c6 I- w3 {; G

4 O; l! n! G' H- gata6中4 R2 t' Y8 a. Y4 C+ I) i
7 s$ G3 Z1 g. @$ p  l
第85word:0 N7 i, Y7 e+ T
15 Obsolete                            -------- 0" A) P  ~* L8 X# \7 V: p4 z
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   # Q) q1 _- w" U. I9 C+ o
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   4 h; q6 {& V; n$ z
12 1 = WRITE BUFFER command enabled    -------- 1      吻合+ J1 ]" Y6 a9 ?) Y& H  D0 V
11 Obsolete                            -------- 04 j1 Z7 C. ~9 C  E1 B/ P  }* ~- y
10 1 = Host Protected Area feature set enabled- 1      吻合
+ e5 f* k1 ]3 c$ {) I9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
7 p% S) }/ x( y. ~9 \1 f- L8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ( i4 `) T" |* e1 j
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
. U7 V! e8 Q; [) y$ e3 r/ v6 1 = look-ahead enabled               -------- 1      吻合7 P2 h% b) {& i% R9 Q5 c
5 1 = write cache enabled              -------- 1      吻合
& v3 G$ h' u& z; ~& _4 h: P# b& X4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
! C. R6 E$ a8 v. ?' T8 j8 e& u3 1 = Power Management feature set enabled      1      吻合
- v3 L; L+ {7 g% b" F2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
' _$ O) v! \6 h7 T5 o1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
5 O3 c' r. I2 M' ~0 1 = SMART feature set enabled                    1      吻合& Z( P) G3 [  a2 c
: _) Y. a( }+ H( q" T! F* }! g
那照着这个数据的话,3469H= 0011 0100 0110 1001
/ z4 V3 O- @; B8 Q+ J# e: ~  u' T8 D: W" H
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!1 d) Z( W" {. W. Y
0 P% S5 I/ B0 V1 X1 T
; x* ?3 Y5 {+ S; B% |/ K2 L7 \( I
/ {/ s7 r) R8 Z& L6 N# t
, L- X- U& ^% j2 K$ t6 r
(*******最新*******)
9 s0 c6 ^, S1 f6 c' m     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
4 O4 m, f' \9 G0 c     不知道各位大哥怎么理解?" N) H, f) {- m! A
7 p. U! b% [) L5 H! h
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 08:34 , Processed in 0.447597 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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