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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
; H- }! r. T1 l0 Q% v0 H     问题一:
( y4 b% S% Z' |5 ~- W     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
% e# o, A. c. q) a7 p4 P' e因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。8 `% `6 T, ^3 {6 t4 ~, ?

. p' y5 M% ~% j3 Y* N
# e/ X7 m8 T2 [% W/ b) z' X     问题二:; k3 N7 \1 H# L5 Z" B2 N
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
& \6 c5 [! P* }" R2 g+ U举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?$ b; [, U3 ]0 g, Y* }
, ?. z) G6 K5 a3 m/ s
# X6 S# M; [/ Y. j$ ]- S" X2 j# [9 N0 B
     问题三:
6 B0 {7 `5 I1 X     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
2 x0 y. R2 A% M( C9 _, q我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?) X, E5 \, X# {: s
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)1 Z/ ^0 O+ s, ~* N# u
  H: J+ E7 W& s/ v
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。0 v  K. g% F4 d& R( G8 c% D
, a0 k$ x& R, L  P8 e! I

2 f1 U" z, ?5 j  r       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。; n0 i% F$ a( a+ r

, d  p1 b# F" j9 N: _但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
% @) j  j$ j# Z( `4 J7 ^" d. Y- n& |2 F% H
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,+ D3 B$ S. D, ]! A
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
: J8 t8 H5 T6 l" B4 L+ c6 }
# f. g# J2 l: P! N5 m不知道硬盘firmware里面是怎么存放的,反正是按word来读的。" G; y; y- u; u" I
9 M: [2 {% r$ v1 b
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,% d3 w! D  [, {6 ]3 x
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"3 u* [# ]$ Q/ E' W( e9 l8 C+ |

, a+ E% h, g6 C4 v; ^& v1 h: s, `% e+ d' T0 ^9 f, k
-->恩,是的% }2 b6 x% ?/ O- e$ P" U6 j

' P+ k( w: Y1 n7 h- t: w" g3 X
. f( T7 ]: X* K4 @& P8 u0 i! g# S, q5 q+ t! y4 W7 B
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。+ ]9 S3 x# e9 G5 v" Q

  x: Z1 w$ O0 h-->恩,谢谢!
6 f8 N9 {; w5 i5 s  h# x# l6 @7 D1 p6 n# }0 X( Z! \& U5 D
' [8 }: T; h8 v4 D9 Z0 M. S# ?

$ V: ^" u% i% I. ~4 ], {& J( l: ~5 ~& N另外,ADU读到的什么信息,你认为有错误呢?
' b9 X7 C) g. m% O
! k; \2 S/ p! A; v* M, I9 E( ?+ P  ]0 @
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
, |& x9 }# F$ W( @) }  Y4 b% K" f   spec 有这样的定义
; l, v3 u. f5 H0 n$ R# e5 B , c  A* X5 Q( n5 o! l( [
ata6中; R6 Q9 O; T( j4 t
% K& Q; G3 i8 o- H
第85word:
6 ~% m/ \$ @" M15 Obsolete                            -------- 0
1 x4 F' f3 w# P, Y( E4 [4 r14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   3 ^, |2 d, d+ u, m
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
( q" U% G3 B- F/ e6 i7 R12 1 = WRITE BUFFER command enabled    -------- 1      吻合
- Y/ q/ K+ r! {) R) W11 Obsolete                            -------- 03 o+ ^0 h- E. B$ e: v& @0 Q; z
10 1 = Host Protected Area feature set enabled- 1      吻合2 c2 R' x$ G/ @, J
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
" H: j* _0 Q4 J) T, [9 w1 p8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
% ?1 K: N2 a. K7 Z7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   * |; U/ E8 S. g  h$ f0 ?
6 1 = look-ahead enabled               -------- 1      吻合0 Z4 z1 X0 x' H( }
5 1 = write cache enabled              -------- 1      吻合
) X9 T, u* j2 @5 _4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问  [' v3 \5 \: i) U! a3 c' p  }# h: D
3 1 = Power Management feature set enabled      1      吻合0 i/ v& v% j; B: E3 `1 Z6 x
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   1 d* n+ F! T- E( c  Y
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
; b* ]8 Z+ b: A- c5 g# [0 1 = SMART feature set enabled                    1      吻合
# L& q# Z- ^; g( C9 ~; F) I
& f/ W# e$ K, U3 q/ @那照着这个数据的话,3469H= 0011 0100 0110 1001
6 D! [$ y6 k5 N5 }7 [8 ]7 N
* e/ D! @2 v( [7 \6 D1 w; H& _    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!! L" `9 j4 c5 h) S+ l

& M3 j- H2 v: T$ H
7 N! {& A5 F" ?& [7 K
5 c- d1 {6 ^4 }9 `  m0 D0 F+ t; n% X, @
(*******最新*******)
+ |% v9 |% d; ?( P1 I5 o; b& K     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。) @+ g$ G2 V! i' K. a
     不知道各位大哥怎么理解?
$ Z( b( R( ?3 f+ R8 d: c6 |: [
; t9 ?$ R, X  v$ p1 \* I[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 02:18 , Processed in 0.073012 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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