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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:! \6 n( c  V( f; A; I- ~+ Q
     问题一:
  j0 a! w2 P9 U2 x; S# X     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
; v( s; w& B9 v7 m% P6 i, e0 r因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
( S+ J3 z4 Q8 L" `2 y: o0 p& d0 H* K* A' U- N) n2 e5 A

8 o0 M9 c, V) g! _2 I, J     问题二:- L8 H/ n+ Y% ~* ~/ l
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
3 ?6 o4 R  J# ^9 c/ u- U举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
* v. {! Z, U+ c5 D) d
7 _2 `0 {/ V4 L: s
& ?/ j; O5 `8 {9 |! W     问题三:
* E, Z' K& [2 L1 U9 d! O- m, J     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
9 c8 w5 Z* R4 Z! m. v* k  ^; Y我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?4 b8 X0 @% B) y
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)9 y8 B& u5 b1 F& Q
! g$ ^  q0 J" c7 U. w8 g8 h$ V
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
+ \: z- d* u7 d* v
4 p) L/ r% [; T2 p& }0 o0 c6 T+ Y2 k# X% b: E7 u* ^2 o, v
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。% S1 i, F7 Z" A9 o( j; o
2 b/ N! P" ]9 q9 v. p1 P
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
0 n# i3 i, |! e; [( V$ u8 |2 @3 H) p6 \7 J; r3 N
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
: i+ u8 z6 c% i. s# O& e是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??0 t; x6 u. w' J1 Y, h8 T9 e

  t, S# f5 }- q不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
6 K* `3 h+ c( S
' U% [8 L$ m' X9 N' A另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,! h4 N9 D  U5 J1 G/ V( x9 d$ ?5 }& `
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"+ l1 D: x: c6 W2 @' l' S( L, s6 h9 ?5 c

6 X/ s2 Q/ w7 k1 C( J; S
( n. c8 U2 I1 K6 d& W2 @0 l-->恩,是的
; f3 d+ O5 @6 k2 H6 G7 j# G0 {6 I8 {* }$ |
7 d6 L& U1 I9 Z5 o; b
/ f! z9 ]& b* V% n5 |, k, \
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。, Q! y( _5 u9 D0 `

$ ]$ o$ O+ k# N2 w-->恩,谢谢!9 A- Y" M7 C0 w

6 I& w: g& A% Q
; A, y2 A& P/ A$ A9 V9 r% X( L" j& U, k  k
另外,ADU读到的什么信息,你认为有错误呢?
$ i/ J# l! r5 l
- ]: ]& s6 k6 @8 m" B1 ~/ q5 y( H  y9 \  d% i8 F
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。) h% s$ z! B3 v' R) ~' V4 a& r
   spec 有这样的定义7 v; B: ]% m0 }: Y2 E; R

* M$ g$ t" _6 {ata6中
8 d4 W8 Z5 r- d- X9 w$ F, d% K3 C* k1 e1 Z
第85word:) t  H, I) u' m2 c$ M3 ~
15 Obsolete                            -------- 0# w5 ?/ @2 ?6 x" x5 K5 Q; I
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   * k2 w; ?4 g2 u) b4 _' t  I
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   % s7 {* ~; k: b  F! x
12 1 = WRITE BUFFER command enabled    -------- 1      吻合5 P6 U: l! h1 s( _, _" Q  y
11 Obsolete                            -------- 0
) w" C; D! h4 l( _  f10 1 = Host Protected Area feature set enabled- 1      吻合
* ?/ L7 j  y& e; R9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
2 e' I2 o& O: t8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
$ h+ M( ^' G  N1 h2 `* r/ f0 z7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
: K8 ^3 Z" _% J2 o( w# M  |5 I) K6 1 = look-ahead enabled               -------- 1      吻合* Y; Q8 z/ V  x! ~/ }( ~
5 1 = write cache enabled              -------- 1      吻合
8 g" z! N3 `3 z9 b4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
+ ~9 W0 p6 V; X$ H4 O5 C$ v# C/ [' l3 1 = Power Management feature set enabled      1      吻合
: v9 m+ k: v) k8 e- K9 Y; U2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
/ M  Q* g& a; D1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   ' R$ C$ c8 U* ~' x# [7 r
0 1 = SMART feature set enabled                    1      吻合/ t' h4 W6 [2 R6 f( _
7 p# b- p5 x3 N  f3 O5 J6 m. X
那照着这个数据的话,3469H= 0011 0100 0110 1001
5 x5 J- a; S4 P1 {8 _8 D0 `: N9 ^; m6 i9 ]
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
+ a( r) t" ^2 ~5 v  [( U
8 `" H$ X$ L+ W' \+ z( v- E' }& l0 ]  U

# ]( e3 i. ~1 q9 ^3 W' _
6 ]9 C/ o- s/ V2 _& z! b4 g: n(*******最新*******)) S7 H% p' C6 O' c) H6 s
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。8 |( m/ `" W0 k0 _# K8 e
     不知道各位大哥怎么理解?
+ @" g0 C2 n( B) h' `# [8 }/ D: n, X6 J! _* J; s+ F+ g" ]
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 18:37 , Processed in 0.022266 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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