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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:3 s  \8 d4 {3 x
     问题一:
& w8 f. \6 v( [, ~     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?& Q, Q& }1 W  r# }0 e
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
  I# I/ z7 o9 b+ ?, C+ i/ J# d& \. G" m, ]: k. }. y

0 b/ }4 `7 d- i; k3 B; {3 K     问题二:
- G8 c& o" v0 m5 z     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
# K0 d+ n5 M0 N( ?8 x2 A2 T举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
7 L9 h& k* i+ ]: E& n! h6 b# l5 Q% _5 F# b
/ N% ?& r0 S$ K- e+ {
     问题三:+ E; H. {0 G3 a8 ^% n* V- e# P( |
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
: x! N$ Q5 F' ~我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?+ a% ^) ?9 [/ {! @/ A5 [" ~  F
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
& ^+ {0 r9 A( @1 C' p1 ^9 d5 u+ V+ D  f+ X/ l6 Q* P- X9 P  |% [
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
- q4 r6 b8 g  a* ?4 C* X9 k1 y7 O4 ?2 y% V: o

! F3 S7 W, A  G1 ?& h       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
& q, B$ u. b' B1 C$ h; ]
% X( j! r0 [# R9 Z# z' ^但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)1 Z8 T; @- t) j9 S9 c
# l* `& f. V7 e+ b7 e9 m* V( s5 P* t
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
, g2 ]' f% Z. D是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
5 f" {# Y4 t3 B' L# U% d8 j- m+ h) Z4 l3 S/ D1 }  x
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
( ^% f" r5 C9 h: m! R7 t3 U. _- K! V7 d% h% X# |, Q. S
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
7 Z! ?' Q* v& m是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"7 I! g" S) n; A3 Z  F

" |' z) M7 Q& K5 {2 n  }9 X
2 }3 q; g. `3 k- O6 ?-->恩,是的; ]: s: J4 f# ^) y' {  W0 z, O

% v- R8 W% J0 O% i  F5 U$ u' A2 ^
! E( h/ ^4 ?3 N( {* o1 y5 m
$ s: W4 p* a7 K1 g/ G$ X  H不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
% V: s0 @' o2 |9 X  x( U
7 B, H( L% |$ n( m& e-->恩,谢谢!
# H6 L7 @) J' K0 M2 s2 g7 S0 a9 u" B3 z- Y. q: Q) h

4 z8 D$ o1 a  Z8 a6 J9 t6 G
' A6 D# s' N, c; ^- {另外,ADU读到的什么信息,你认为有错误呢? 0 K9 k5 W$ v- R3 O
! o( C7 h. U0 B' ^
6 f0 k8 X# K+ k% U3 y
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
7 M) M% F1 {: e$ f# t7 c5 G   spec 有这样的定义
) N. K5 t/ n* H8 N. v% X, T6 @ & B% y% L6 O) z/ k" A8 v3 D. |, C* G9 s
ata6中
" a7 r  L2 n/ e3 ?+ \; M8 u! J. ?4 K) v
第85word:+ |* T% U5 M2 L6 B& @3 o$ W
15 Obsolete                            -------- 0
* _4 k- ?( Z+ t$ S' f14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
9 X* t$ g6 D+ I. o" C3 v! n2 V7 ]13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
3 @# s. V6 n/ F, C12 1 = WRITE BUFFER command enabled    -------- 1      吻合
# y9 n- B' @! U/ k" b11 Obsolete                            -------- 01 o* r/ M* N, P( u# R8 j
10 1 = Host Protected Area feature set enabled- 1      吻合0 d$ g+ H8 @: B: G' G
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   ; q' q8 F1 h- p+ E+ Y, k6 `
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
6 U/ Q+ a1 }  z7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
7 F& s$ `, a# Q6 1 = look-ahead enabled               -------- 1      吻合9 ?9 H& r9 ~7 m3 o' v, G1 Z
5 1 = write cache enabled              -------- 1      吻合
' i: w$ x+ d& k" ^. P; W4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问. y9 i6 ^0 `  Q: s) X0 S
3 1 = Power Management feature set enabled      1      吻合
- p6 u9 T( u0 M  h* K2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
! C9 e8 Q6 ]( U; Q' c1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   " a" p' p  A! |+ ]( G
0 1 = SMART feature set enabled                    1      吻合
& j7 z8 ^1 s* x: s! B" ~$ K$ B+ [% g4 |7 p8 Z
那照着这个数据的话,3469H= 0011 0100 0110 10013 i5 e7 b+ M4 r: \" J7 I
4 G0 q. u! M1 C
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!& ^: {* E5 m5 s

) ~  L3 j' y8 h( a& i4 G: R
; {9 l0 {* c' h% `
! ?  O3 t, _1 W- W6 c% Q
3 w* J6 s8 \  S: L$ U(*******最新*******): W- X. ?7 P' x7 c$ ^& L
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
0 V+ N% u2 ~" ~& J     不知道各位大哥怎么理解?! Z7 a5 T, Z6 l- [- l! ]

; o/ \1 }5 T4 O1 E3 j3 p[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 07:30 , Processed in 1.272456 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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