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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
2 U" `9 w% A8 ?; r7 f2 O     问题一:. B7 N* I/ ?# S9 |+ M
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
7 O1 w* R* M  h1 o6 f" Q  n因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。. p: n( Z9 L$ x2 I; P4 g( Q
, |: _4 Z3 h2 w

% i. e; L# I9 x- W- e% X. W     问题二:8 w+ m7 [# {! H
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?2 `; m- m; B" H# U1 j
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
* O$ v% v8 `5 r9 N, W- s' b# A  f3 Y2 H  {$ Y  B

( o7 J# x! M: K1 g, p+ E4 L+ j, x, m     问题三:  q, W0 I- C0 G( b7 {& f, D3 h$ K
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?/ b- y8 f- ^3 T
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?5 B* r9 c; j: I. e; Q6 e% C9 y4 U
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
" Z% k" _- C$ N1 J" Z$ o' A
( P5 v1 w2 N0 _: G% ^[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。& M8 @4 ^" q2 K$ W
( p1 ?' ^5 N4 Y( x: [! I

; z+ |4 h( t& b" H       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
% v+ b0 _* }, C/ \) i
9 H/ \( X$ t) B6 ^5 x0 I1 c但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
) o! u' D" |. m4 P( _$ @( D3 W
' a) u7 ~( }0 I; G  E& W. }       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
* u. Z  I0 A% y4 `: F- i% ^是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
+ ]9 f1 M3 W+ b, E/ |/ Y) ]/ l) A  f6 E* Z
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。, z( \! z9 m1 e0 ~0 s

" R1 K$ f  p5 R5 a- V; i& ?& V另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
4 O0 {$ _( }* K% `/ x$ o, G2 c是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"  ^2 M/ @: `) ^# m% _# |$ t% {8 S

# d9 X; \# M6 f. d- S) o1 ?
: M, V# {9 J# J$ O9 [$ C-->恩,是的
. W* @% v' Z" U) f1 c( M0 j  \! ]% P5 E' {, y9 N9 Z8 l0 R& D

7 e( F  z! x2 o' S3 q# Y; W( a, v% {+ a
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。  g- X: [5 s1 P
; m8 t1 D, t! \. q- Z2 y0 |; K
-->恩,谢谢!
$ g' Y3 F9 c* |. q* j7 i/ ]) v0 Z9 K9 u- D9 _: R* f. R- F

, A/ n( z' |+ p% ?& c: E" \! {: }; J  P8 ]( g, {! V
另外,ADU读到的什么信息,你认为有错误呢? 0 P9 z- k" ^$ p5 }
* L( F: [1 K. z% K5 t4 r5 ^! H! I
4 j5 l  e# @4 i. ?9 c: j5 o
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。. s# {& d/ e( R/ D
   spec 有这样的定义7 d+ |1 n- x8 I! y

% P9 Z4 D8 }4 W+ Uata6中
% I/ W" j! o, _3 J3 j: t. S6 N0 p1 p. W
第85word:
& x7 g  Y  k) k: Q" W" Z  W15 Obsolete                            -------- 05 L  J$ k. i) r0 X% d
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
/ q+ H( l  ~6 [  E13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
3 f, S# N! d% p* g12 1 = WRITE BUFFER command enabled    -------- 1      吻合( x! U! v9 s+ d* ~, S2 E$ V. u* U7 Q
11 Obsolete                            -------- 0* [$ D( D! S# O8 E2 u
10 1 = Host Protected Area feature set enabled- 1      吻合* b1 _: w9 ]2 d  m
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
: ?# I0 A: K; }: A8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ( v& ^, A  G) M# n- P4 y
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   6 Q" H) C7 w. X* S- Z+ Y8 N. [/ m
6 1 = look-ahead enabled               -------- 1      吻合
# S' D8 j" `0 v( p" K6 z9 V- R! i5 1 = write cache enabled              -------- 1      吻合
/ r' ]* _8 t3 o# J, m4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问6 W" x( C1 l! W
3 1 = Power Management feature set enabled      1      吻合& h. v) \& T0 \/ r
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
, D6 b' F% c5 X" \4 s1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
  D3 _/ ?$ r5 b0 1 = SMART feature set enabled                    1      吻合+ {5 r/ H  t' R

# \  r5 S; ^2 W6 N. G4 ^那照着这个数据的话,3469H= 0011 0100 0110 1001
% e) z: ]$ p, S! H' e2 Y6 g, y7 |) t$ a( r4 E
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
/ E) O0 T# t" h! Z- I
* n0 b1 B% R! p
$ ^/ K# K* ?# ~  A3 D9 W) f3 ~  ^
# L3 `' H0 Q* X$ j5 _
- }2 ^) I1 r- v4 [3 X- A(*******最新*******)9 F$ Q* D+ _5 d
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。8 R5 R! C- _$ a7 Z/ v' @1 y2 D
     不知道各位大哥怎么理解?# j4 |1 E5 z0 J% ?# p5 o1 o
1 p  @% I) V) `. F2 n/ k! j
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-16 07:34 , Processed in 0.137237 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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