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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:. g8 |6 I" x9 E( `' o! Z/ X: T; W
     问题一:5 Z  o" F: `$ e6 n, d! j' r
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
$ {. Y2 P) @4 l4 t6 a' J' M. M因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。1 P( A0 D7 I4 F7 M' `8 G
$ N4 O' J+ `# J1 ^/ ~; e! T7 ~
7 L6 x: r$ G2 `" V( J4 J  Q
     问题二:
1 A  n7 K+ M2 g" S9 i) l  }     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
5 i# @; Q4 Q; L: |# e; @' O举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?( J  S  Z# K" c" U

& I6 @$ s2 O5 K5 A( s
1 Z; ?4 n) q6 f' g) k+ O4 Y     问题三:+ q6 s/ X# r& p' V8 \
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
4 |# r7 |: t' V$ l0 _* ?我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?- r8 f7 Z) a7 y0 S9 H* C
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。): l) ]# b- O% z) S; E: D8 a

; {9 {  F+ H2 d0 O5 W[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
! ?5 x+ k2 v7 V. M# X# o6 C
& c5 w' a: A% D/ T% `) \5 E
. v- ]  M8 P- G% x5 d       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
# t, ?* C6 O8 W( @
1 _6 S& _- r" {3 a但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
0 C* G# J% X9 i+ y9 M2 M2 J( C9 A  T$ e/ p9 F
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,& ?. E" o1 j/ x, l7 e+ t
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??  y! T% |: O& W+ s5 P
$ ^3 V# I8 @8 J% Z
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。* U  e+ v5 ?6 d# `) F

7 d! n! Q" ], S* b! y( d" F4 T0 d另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
: _9 H8 b! K) X$ G是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
/ M2 c; o7 G8 U9 s
+ J" b5 N; c% ]. L- T4 P1 d" y5 c  q  @3 o2 U/ H0 H  j
-->恩,是的6 J; N3 n8 b! y' F; p9 P# p  P2 B; Z

9 w& b5 _. ?- o: O& C) t
/ l$ W! g3 K7 }" B8 q! U; j' `" ~+ y) b
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
6 I* `# S2 x1 z/ A6 ^4 [4 f& W& I# _" K
-->恩,谢谢!
% w& ^% s# A3 d7 N+ X; F% J" }: W0 B7 E3 @8 `; K' _" L
3 X- k! J( M- \+ U5 ^
7 `" _) J+ v( Y3 r# V6 o9 }! y
另外,ADU读到的什么信息,你认为有错误呢?
' e$ G  a. p) f. X4 |' T/ \" p/ ~
1 \. u0 {  `7 g1 P9 E
& j: ?5 ?* e" y' J-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。/ m4 e9 R/ F6 K6 a5 P" W# t
   spec 有这样的定义( N. @; H+ h4 _  D+ L4 X

, T' I& t8 @  x/ |" Vata6中
( Z  ^. v0 n8 b( O5 M6 ]# }5 T0 _: M8 G$ d: u. H2 {
第85word:
& s2 }7 L  U+ n% y' _$ c# T15 Obsolete                            -------- 04 \$ f5 n: V+ l& a5 _4 w8 w5 h
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
+ i! P/ z$ B# u, }  h' S. Y$ h% v$ `13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
+ D5 G7 E/ ]! x12 1 = WRITE BUFFER command enabled    -------- 1      吻合
6 _  S& ?" M: t0 d/ Q11 Obsolete                            -------- 01 r2 H5 J0 f3 f
10 1 = Host Protected Area feature set enabled- 1      吻合
3 ?' e4 l7 E6 t( c1 F" @$ S9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   , N9 Q; A) L! O: a# Z. \
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
  z0 ?+ X+ v9 [$ T7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
; ?6 A) c# ~4 R9 ^3 w7 y6 1 = look-ahead enabled               -------- 1      吻合5 _: @( s* j4 P. `: {  y
5 1 = write cache enabled              -------- 1      吻合0 ]2 d7 x; `$ d, W, G
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
! F; [9 b7 E; C7 d8 x$ ~3 1 = Power Management feature set enabled      1      吻合
! ?$ l; b. E( F, ^$ l8 V2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
, K6 c: _! r7 T+ r$ f! ?, T" e: r( r# |5 O1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
+ ^2 I4 n8 l, ?0 1 = SMART feature set enabled                    1      吻合* W$ s/ S! ^3 l- z$ _4 U
/ J' _& L& y- B" G, b+ z+ J) \* c
那照着这个数据的话,3469H= 0011 0100 0110 1001/ r/ }0 X8 R! R

3 ]* q, g9 Y& |: `% N0 I7 P    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!' X+ e% R( ~7 O3 @9 o' P

5 ], V2 m/ t/ y5 d( p% U2 u# V# q

" s  K% G2 n/ a5 a7 \! K+ Z- J
" V& g3 E+ X- S; K1 f5 j/ D(*******最新*******)
; _/ T# z' p- I. o     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。' O3 l1 {9 N0 m9 M4 p
     不知道各位大哥怎么理解?
6 f6 n& ]0 r4 `: ]: a1 G+ z3 c' d) N- G6 C7 d
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 16:58 , Processed in 0.150996 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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