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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
* [& v2 U  z7 ?) a: |     问题一:- K% n/ G# k+ e/ ?& ^) }
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
( L) \+ F, C3 W' ~5 L因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。: }- b* M1 K8 g9 y
! k5 G, n$ j( h) C

" O/ T: J; M: d8 G8 u! ?2 ~  C8 W2 W     问题二:
+ T: m+ k( g% I5 H     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
! O7 }- U+ a# o举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?. p% ?1 `. [) `1 H
( [9 ~" V9 O6 c& r* U" w6 b" K
/ q$ ]+ v9 V  ^+ u
     问题三:
! Z5 Y, T0 w. l5 E     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?6 D1 K% q4 p  A* Z
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?& k% Y  F6 G) U  P. p. m+ C
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)  S+ _- Z  }+ c" J
- g- }5 H. X! h( ]( e1 C4 I
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。& E, s6 q% U! w/ R% _" U
2 I& O; o. a# C
3 Z& {' O! S. h3 W8 g
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。2 B! w4 g; k2 E3 [1 d

/ ?# U" n/ Y9 Y: u但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)0 i9 D$ J5 v* h; T* O

6 ], v# C0 |) s7 x, U! j+ B  p       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,3 P  f) b! [- {" z, A% c; z
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??! o+ q) J# [3 H% h
7 v3 d, ]5 Q* d/ O
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
, t  c. O1 o  \) v1 |
9 D# c# s2 k! S9 z另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,! d. `# i5 ~& F  a: s8 G1 M
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"* b, K& @3 {7 ~. h4 C) T' z

/ U- R- x7 I) u# F: y% M3 u/ b* f7 j6 k, I; f: p
-->恩,是的. \7 m2 L" [/ _: J. S5 w
: S3 U1 r4 |8 K6 H& ]: w; d' @
' g- }6 H, G# S- ?9 O7 \
. G' d8 X- V4 F! z' G
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
- y4 V5 U6 J/ m* Y. ~
! }* c, q: A6 I* ]: m( ]-->恩,谢谢!, ^( x! \7 ~# t( x6 w+ J
# Q; P" a1 F$ J. w
) A5 J% k& D8 l! J* [
: F2 ]& S  y3 C5 Q6 j0 w
另外,ADU读到的什么信息,你认为有错误呢?
: Z+ N$ j" ^! j& q& f9 B
0 x+ f2 C4 |7 S5 H- V: P. t9 W) h/ I
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。$ @* D) d; s8 F/ f7 ^/ S' C6 D: ~5 C& L
   spec 有这样的定义* M- T+ m7 V& k

: `3 V- ^/ n5 {. n7 b- J+ Yata6中# S. e9 k% e% Z6 o

/ w, V4 A2 I; V' h第85word:/ X4 n- E' b4 r3 m4 N
15 Obsolete                            -------- 0$ E0 V% h4 V: t1 Q  w7 P$ F
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
6 F1 K" h8 D& Y8 {; x0 R3 h13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   : P& Q. i2 }  w4 T1 A: z
12 1 = WRITE BUFFER command enabled    -------- 1      吻合* z7 d* t3 Q4 x( i1 ?
11 Obsolete                            -------- 0
# f6 M) [, i* B% _7 j4 x10 1 = Host Protected Area feature set enabled- 1      吻合& y% V* K7 [9 |0 u
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   2 j+ p% z7 D/ h% @! D
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   " ^* [3 W9 ?: A* C8 S) W* {
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   % {5 V2 p# |5 c" a
6 1 = look-ahead enabled               -------- 1      吻合9 i% @# V: M) G  Y
5 1 = write cache enabled              -------- 1      吻合1 ]. X& ^2 C0 [3 s. S, n4 }, I5 J/ ~
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问9 F2 x1 p5 \# O+ }5 U9 m
3 1 = Power Management feature set enabled      1      吻合
& h7 D4 P' s% a$ ?# O$ D/ e4 o5 Q2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   ' h, ~: ~: B' |% M7 i1 C+ ~$ G
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
; s6 W7 x& S$ a! j* w  b0 1 = SMART feature set enabled                    1      吻合: L( F1 ~% M6 X( z

9 L( t+ T5 i7 h9 F7 U那照着这个数据的话,3469H= 0011 0100 0110 1001
0 m9 M  K0 d0 q1 d- M! f: }* _! I) c2 k/ M
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
. |( E% k# a9 _# W9 A5 i! {/ t. r# |! f* M' X  p

7 F8 F( S" |4 t" g: q$ g. A: |( d. R) e5 R
8 Q1 _  ]( r1 f8 B0 @
(*******最新*******)+ n- N! N5 y- W' ?; ]) I
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
! s6 N' K: `2 O) V( ]     不知道各位大哥怎么理解?3 m5 o( Y9 |, r! L, b( f! d. o

" m( ]3 Y) \3 ~1 L7 F: e[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 19:08 , Processed in 0.024061 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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