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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:0 ?, ?& ?- o1 o; X
     问题一:
& b6 [* K. J9 m' ?7 h     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?3 q1 E$ ~2 }8 @9 j* F( g/ W
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
4 y' p' {0 h; e* G$ g1 ~* d# K
, P* M( s% n7 H- D+ n' @- e: [/ a( o9 M5 E8 Z% _( J
     问题二:9 v3 r# @# x1 F5 r2 e. f3 l
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?3 i' j3 t* l3 i
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?: R  A8 V# T' \6 u9 i" [
* f4 u1 q/ j  Z* B, u' Z9 @

' E3 [" C- X1 ]/ E, b/ [     问题三:2 M" I. J- m8 W
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?- I  s) W- p5 }$ o
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?/ D% l" G2 E: w' V$ p! y
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)3 |" s% C' @# }0 S+ N: [
- X& T% j- A0 s1 q( I
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
  D) L; j5 P: s7 f1 n  E
% b& b) u  W3 W( o5 |1 m' |$ f9 i% X1 F
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。- e$ v# ^/ ], S
* B( i5 O* v' @! W$ ^, K8 x
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)* s% j8 i1 R2 I6 f3 d& s7 t, R) z; k* F

0 g! G# Y7 I" D       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,2 q- j7 _5 o$ Y. L  g) n6 F4 ^
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
7 A5 e/ I% u) g* h8 ]* W
4 p# a. u6 Y' m  u) `+ ?4 ?不知道硬盘firmware里面是怎么存放的,反正是按word来读的。  y) X" w" ^" g. S9 ^  r: _

' }# }3 S1 Q% m- ~. [2 _另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
. E$ R# `7 X4 d! Z是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"' a- q% I. t+ F! k4 B4 |2 C

  E2 A$ Z, d# \9 B# ^0 C* a. B* J8 b  w( T4 Z
-->恩,是的
+ M; V. ]8 ]! y5 G6 t
4 k, @% l! N* n2 v. J1 d' O
$ e6 _% w  K2 g0 s# \
1 F5 z; f0 n( S% G/ n不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
) N' o9 _  z% k
" h$ g6 p; r& G( I, g8 @-->恩,谢谢!
* J. M6 R0 n: l# I/ j: [7 n, K# X+ q+ @' t2 E! X9 L- {5 j$ O
- A- m) [$ @6 ^( \
7 ^3 I2 A8 m  L/ I+ f# R
另外,ADU读到的什么信息,你认为有错误呢? + k- r! X6 y7 y2 t0 T) k

8 O6 ]3 Y9 V8 c9 s% N( Q1 b/ R  o9 F8 @+ R" B- m
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
# y& l7 u9 b9 A8 l6 @: f  Y' C   spec 有这样的定义
' W; `# ]1 I" A( K! F 8 N. D3 W5 x0 Z7 v3 }( f) b8 A
ata6中
9 T% N! L, D0 m' N7 m, r  y) \1 ~$ M" t. d, D
第85word:
0 Y' ~% P  R! s' |# \. B2 F1 m15 Obsolete                            -------- 0
! d5 F/ s6 L5 U14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
/ ]) D$ K5 B+ d: p13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   ( P; v4 O: G$ f
12 1 = WRITE BUFFER command enabled    -------- 1      吻合# T& E2 f7 x# Q7 G, U: A  ]. K" S
11 Obsolete                            -------- 0" R" I% o/ H' e% E: S
10 1 = Host Protected Area feature set enabled- 1      吻合% o5 i2 y+ |  w- X; U- l! }* \
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
8 A7 D9 u9 Z$ Q3 f2 o& n8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
" z0 k/ X2 T1 Q. n  ?8 T7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   8 \$ Y8 ?- O& j" g$ r% M
6 1 = look-ahead enabled               -------- 1      吻合
/ s& v. K/ c; i1 c5 {5 1 = write cache enabled              -------- 1      吻合$ }8 T. k0 H: }
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
3 T: \( g2 g# Q- h3 1 = Power Management feature set enabled      1      吻合
, H1 e. J3 w$ d; K* R8 l# U% f8 U% \2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
9 C; l/ V# q0 m3 \8 R( Q1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   - L& V$ w0 a7 W5 u6 v
0 1 = SMART feature set enabled                    1      吻合8 P3 P( V3 ^. \! _4 o7 ^

  `2 s! z/ A0 i' A; t那照着这个数据的话,3469H= 0011 0100 0110 1001
+ E- z" x& t9 U. i. s+ l6 s/ R  d; e* \) D
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
4 g+ x) ^6 v  g+ N+ J6 s$ ^; K% q& B& o; F& d2 N6 M+ \

% V+ x$ W; R% ]* C# D( N* b$ M4 Q% h7 E  D% y% ?0 ^

; G4 f: [" @3 n; _4 ~# ?5 e( I(*******最新*******)
( O# L7 h) U. p2 v$ i     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。5 k# d2 h# D* w5 p6 v; e. }. b
     不知道各位大哥怎么理解?$ Y% H$ C) C& G8 j# D& s1 @1 i

) y1 M/ L% ^1 n3 T2 u[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 19:01 , Processed in 0.083298 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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