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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:& w# r; {5 ]4 D6 d2 r* @8 G; }
     问题一:
6 v7 b3 T7 w$ G# |     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
  K1 F" P5 V. s2 T$ e( L因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。+ e  w: r# b  P" C, K

8 ]' N& b/ Z3 @8 [. }% s* U% G/ A* r& Z' P% ]- Y8 N
     问题二:
0 [* q" U2 P$ V2 P     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?  Z6 @  u# G, L
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?5 h1 p' U& h6 F6 Y1 J  H& r  ]
% q3 \! l8 y* Z; V

" s, x# s8 y6 a( r; @$ B     问题三:2 _. P5 w$ v+ d* B. z
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
7 [" D: A" S  n2 g* x# h我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?2 G3 |! ^" n: i6 `' R1 z# b
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)9 U) s; m& a5 M( Y& v

+ O3 w$ t: g( X0 f- b$ e/ j[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。8 N1 `% k$ n: N  B- q

; Y0 f% r' n5 P; z* \. `5 L
# ?3 g" g% R' F  d( \) ~3 h" |/ r       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。6 I$ T. A! q2 M5 y

/ x- h$ h  r1 s8 \0 @" A/ K1 `但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
( o+ L4 W! E: @$ f. e- P; g' y- U6 O( A
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
" r4 u* P6 G. ~  S% x9 V* k; x( ]! d是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??# d* {$ e5 o7 \5 B
  ^5 l9 O! u& Z1 {, j* M6 ^
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
, D! x6 m+ S0 v0 {- M# Y# S* `- g# k, `* P% \; l' u, a8 m/ ?  o
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,5 ~, O& L8 g8 c# j% j) v& l
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
3 b) _& H" u! s, j, J# Z9 e
1 r8 d; j6 `* `) u1 A5 z. E( O/ s* ]
-->恩,是的  u; }9 R6 u* x9 r
: g6 q0 X+ Z* J( X' j* R
; V0 ^2 W  x" D% _6 ]

- s$ {! s: f  m4 r不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
: ^5 d, A6 i+ I) z* _* W; i7 E& U$ S5 b0 v( G& b6 x
-->恩,谢谢!) E: P; m+ \8 S  K" B& h

9 T: J; H- i- l5 |5 Q
6 B$ |3 b3 P+ N1 c2 u4 [# k0 U3 k6 k+ E* |7 o
另外,ADU读到的什么信息,你认为有错误呢? 9 ~9 O+ y5 G3 W% Y( i
' R$ x; a- v. F; V

0 ~' c# K) J2 o' |+ `  g4 F! z5 H-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
, _8 @* N, C3 K! h  u/ y- b   spec 有这样的定义
  T+ o+ _  S& o/ J ! v" ^& i! o9 E7 r' I. y
ata6中
5 D$ I5 A) H5 p1 J* e  d; ]$ G( }4 `/ C
, u" t4 e( M: ^9 }4 Z$ V6 _第85word:
( u! \8 ?4 g$ _2 R  ^& I15 Obsolete                            -------- 0
; r% p. e7 e- l+ p14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   & _6 c! P, p8 g9 ~
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
) X. m% x$ w& z% }( B- I! {+ ~. M1 ~12 1 = WRITE BUFFER command enabled    -------- 1      吻合
4 x! R/ z2 t# h. n; C11 Obsolete                            -------- 0
  _1 {# K* G) l+ b* {10 1 = Host Protected Area feature set enabled- 1      吻合+ F, U5 S; W- l! q5 h
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   & N, Z* V! ^9 j! \7 x- N" S
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
  \( B* P; o5 b6 D; W3 B7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   $ X& F  W0 j6 `
6 1 = look-ahead enabled               -------- 1      吻合
& v' U& a" y% o& e5 1 = write cache enabled              -------- 1      吻合
0 ]" o2 H/ {' W3 v4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问4 w: S# k, G% z" J0 j6 r
3 1 = Power Management feature set enabled      1      吻合. V& Z8 j8 L. F! y0 j: t
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
* ]9 z% {6 ]. ?. ~1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
9 a7 J) X: V( ~0 Z0 q0 k0 1 = SMART feature set enabled                    1      吻合) Q; d( m% \9 P: j2 V6 H7 K/ ?
  P& @. l& B+ @% g; Z& ^
那照着这个数据的话,3469H= 0011 0100 0110 1001; I( u& ?1 }* ^: V! j% s9 m0 T' q0 {

3 x% a/ f* L  d: U    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
# G( [% D% b4 M" A" n
: ?: ?4 r6 l4 D- d. ]+ J9 ]8 x4 i& ~* i
! d  I* W& A( T; o+ q7 A/ T/ I

$ Y. `$ @/ \( p2 Y(*******最新*******)
4 I6 N, R7 {9 h4 H+ K, ^     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。0 |# ^8 G  [/ l# M
     不知道各位大哥怎么理解?
: v% f) q( E8 |% [# G2 T# T9 F- t2 @
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 01:01 , Processed in 0.025610 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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