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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:6 ?5 a* m3 f: L: W! \! F
     问题一:
8 S( a/ r- }4 T0 ^7 ]& v6 u     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?# h; x7 Y) {5 l6 H# Y  N
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
2 U- D4 n' Z9 p2 _  l: r5 ?3 r8 H7 F

; a% `( G" m# h) e: q     问题二:
8 c7 i! b- g6 A  D$ ~- C  C     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?; N6 e+ I: }! c/ l
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?9 ?% X* p, }, P. J

& b: _+ s( \; G. v2 v6 Q& G: J! ~0 ^
     问题三:0 C. Y7 Z2 [& _( G
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
. `, @8 D* [$ G( l2 v- |我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
3 z8 \3 U6 e4 G# i. Z( K     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
" h1 q5 |" V% w: G
' ]3 \) J- d/ D' ^2 v7 S[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。' v5 f3 K7 u2 @) z( [- }
2 \2 m' M1 ?; W" A; ^7 K" N8 d' ], A

0 I* ?4 o  c3 ?/ Z2 D       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
( d. S' O* |/ L8 n# {/ D' E  `% {4 w1 G' i# D# w+ ~
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
5 s' r  d0 q, F" o
1 p5 ^) [- r5 `4 @" R5 b0 ]       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
. O' f. W+ }8 |. K, w/ S4 i是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??% S' N* {. n, j# o+ I. d

$ c8 C; h) o( G# e- Q7 p# M/ U8 ~' s不知道硬盘firmware里面是怎么存放的,反正是按word来读的。9 z1 p3 u+ `2 ?1 @, b
( S5 j! l; ?, ?6 ^' V& c) P
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
8 W6 R) p2 L0 m6 \5 q是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"- P7 U& f7 R# l3 O8 p8 ^

! Q, M+ B+ s5 M# A/ w# n+ u
3 ~' X7 W: [# [; q9 m, q-->恩,是的+ p/ @8 J6 K1 q2 D, Y0 a

% W+ x) O& N; ~9 V4 w! |! [# ^# o3 q% E( _  c

- ^* C0 s! }* _# E3 b/ n& c不知道硬盘firmware里面是怎么存放的,反正是按word来读的。( e* m* m. c: V/ c0 L% v
  @6 n0 V# ]" l; A. O( y
-->恩,谢谢!3 K' l7 N7 a" }) x

- P1 G8 L0 V; f7 q. w6 i# s" ~, v+ {3 r( O$ F
5 O. I$ k& ]5 s: {9 Y; Q! M. r
另外,ADU读到的什么信息,你认为有错误呢? 9 Q9 o6 {2 q- |0 E( q& O7 i8 N

2 @6 U- R/ E9 V/ j# ?0 R
. {! b1 p6 x) h7 f- m* N, Y/ V-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。$ Z4 |/ e, R( f$ C5 Q0 ?# H
   spec 有这样的定义; G4 _# T/ M& G( @: o5 T8 Y, p
9 L) J. s6 Q8 k- j
ata6中
# z0 j; J( M& ]9 U: b' s. _% u' p7 s+ I
第85word:
/ M7 g$ ^: X/ l! d4 @15 Obsolete                            -------- 0/ [- O7 V1 s3 i! s, I
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
+ e6 c9 x# f1 k: y5 B13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   ! p6 p. o5 H, E  t4 g* N  N9 ]
12 1 = WRITE BUFFER command enabled    -------- 1      吻合7 J2 I$ r9 A9 x* q& f
11 Obsolete                            -------- 0
; M2 P: R4 q4 Z  G10 1 = Host Protected Area feature set enabled- 1      吻合
1 U; _* y  p, r0 z9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   ( _* h3 \7 D" E
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   1 F5 c4 v' t) Q% m! J! D
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   * W# C# P% b. M: l
6 1 = look-ahead enabled               -------- 1      吻合
5 h9 _  }6 N; \% l# D6 t6 s5 1 = write cache enabled              -------- 1      吻合
4 K& M$ H" [* |; L; ^4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
! T0 N; `- K/ d! y" _/ h3 1 = Power Management feature set enabled      1      吻合
/ f9 ]: M* {3 o6 I! H2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   " W9 c, j. J6 U5 F' S8 R
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   ' d& Y* @3 B) b' x& t
0 1 = SMART feature set enabled                    1      吻合0 |$ T4 k/ [7 H! p7 i( }
' f. D3 J9 O4 N: Q$ x
那照着这个数据的话,3469H= 0011 0100 0110 1001
& o+ M  B' G, A' u# b
! p  m% q3 R2 p$ T    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
$ h, g4 o. Y, |4 s) @1 w% R+ m0 s& }" z1 C, u
# g2 ~9 v) j- s* S

2 P0 ^1 m5 F0 b5 p) |4 E* i# Y6 }9 J- A
(*******最新*******)
( ?5 Q. E- ?. o  k+ f( |9 M: C     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。. K6 a9 k9 Q$ u! @* [4 W" U  W
     不知道各位大哥怎么理解?
+ X( X6 Z0 h- ^9 n6 k6 q" n" B! ]* }7 n; F0 j
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 21:43 , Processed in 0.036627 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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