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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
/ c+ G6 U: d; v, k3 c1 t     问题一:+ ]& c: `+ W8 c5 w! i
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
  q) ^& m6 d' w因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。4 @7 z. r* p5 k  O

6 c% l# ~" c7 R0 k! @" F- \: w) m% X
     问题二:
( S& r$ X  `) a8 l7 K# ~; S5 Q     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
! y2 q1 E- M2 {; |( {! n2 N' P举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?$ S0 b! v* B7 R) @8 N

4 p' q) p  R) d( A' _- H/ @2 g, M2 D7 i  {
     问题三:# A/ d: B$ h9 ~# W1 m0 w6 J
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?, ^, H* ~6 u3 C) p( z# S
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?+ v% t* O* G2 O
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)4 F6 _( ^" L! f; k9 g4 M

! [: Y+ w/ k" a* J) H* s* {3 f[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
, T8 C- G1 u  K1 q* M6 l9 S8 d0 |% I; O5 P! I4 e) P& ~
# Q- E) C! j8 j" N; g" b' E8 \
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。  w) M6 a* H  h' g* D% g

5 I; R7 W; G/ N/ {9 g& `" V但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)2 {$ q/ l: H0 h- Y' p
7 E2 Q& E0 p) U( k) a0 I
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
& x, D  S& i$ a$ P- ]8 x6 f是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??- a8 y- \: X8 ]6 y  G
; D: n. q7 Z, y2 z
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
* ]# F5 u3 ~* m, n0 F) A
. `6 D1 J8 b5 e1 ]( J另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
( Z+ d: Z  t. k* E3 e是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"& a6 p$ g' V  ~

. d1 W2 ^, g9 j5 W! M1 V4 |7 v$ }- R" d. C; x7 Y- Q5 \/ R
-->恩,是的6 T+ |( t& `' K3 d0 _! w) A

. t6 J* S  g# T" h
/ ~; x+ }+ @( M
6 [) d* V. B+ u% I6 d不知道硬盘firmware里面是怎么存放的,反正是按word来读的。( ?' |' [6 Q/ d) p: b: b
& T. \+ O/ V( }/ [7 s
-->恩,谢谢!: g6 \7 ]$ A) i% N, W/ {9 m
& ?- o2 f. t2 c1 T1 r8 Y3 F4 ]
) g# t, ]7 r! z
) j# Q9 @. C, v* I
另外,ADU读到的什么信息,你认为有错误呢?   h7 f$ r. s5 k; k) G. f$ q7 s
" L- j. C. `& A
, E7 \) r- p8 \6 g
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。1 l, u1 s5 ]' A
   spec 有这样的定义
3 ~, `+ ?; A. Y  i / m8 Y. t! Q: n: g
ata6中( i( u  h  l+ r/ L# r5 y! Q
* W/ b* u% P; ^/ G) T
第85word:/ O" U' D6 S, A* q
15 Obsolete                            -------- 0
& b5 g0 M) S+ {+ ~) c, |14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   9 z# Y# z& r' K  X" E
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
: R" D: w- {- W5 x+ z( u( R; P12 1 = WRITE BUFFER command enabled    -------- 1      吻合9 m9 ]8 e" u% K5 H
11 Obsolete                            -------- 0/ \$ [$ l- w3 {7 u
10 1 = Host Protected Area feature set enabled- 1      吻合; |7 D7 ~1 t. c4 z
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
+ o: |( F5 H3 w2 M! o8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   2 G9 h* @( n' d  k
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
2 ?' C  B5 ~# x+ y2 K6 1 = look-ahead enabled               -------- 1      吻合' ]6 p; o+ M( ~2 r! p4 V* ?# @# s
5 1 = write cache enabled              -------- 1      吻合
6 O# s# p$ @* J$ ^4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问* {% i  s) N- i; |
3 1 = Power Management feature set enabled      1      吻合
0 H' d' T& }; S  G1 m2 n" q7 N+ R. O2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   : `5 d6 \) A. B* p% F3 Y
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   4 T/ P3 |6 K2 _6 Y0 p
0 1 = SMART feature set enabled                    1      吻合3 M! o* J  n3 H0 O/ R: d2 o& P' A
, d/ S# E4 D: K
那照着这个数据的话,3469H= 0011 0100 0110 1001
/ |8 b, B0 Q4 K/ g) {1 ]" M: O: i8 K+ C% G- T
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
* {( j, p9 z7 @9 G3 r$ x( n- t
2 o2 X  C# l( D5 I/ C$ c1 x. g7 W  E9 I3 s- E

8 {/ c: ~6 M5 ^8 x  O9 j& j7 h, h6 P% @
(*******最新*******)8 W# @3 b5 k3 N% U# G* E
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。+ `7 B& o4 o- \; v% c0 L
     不知道各位大哥怎么理解?
, f2 Z( P( Y$ q
! _" x( ]" f9 }[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 22:29 , Processed in 0.142859 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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