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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
! q! @6 H% A! D2 m# Y. `1 U     问题一:/ O* z, l& n  G9 h3 g+ m# W( ]
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?1 m4 d& j& d+ z" D
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。! h  G1 m5 X. a- u9 S& c
* k/ q: x* x; g/ ~7 ], ?. ]

3 ]3 H9 U, V" c4 t     问题二:
- A% {, Z( e3 K; k     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?# X# @8 i8 k; u& F: {' J2 P
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
  p& r9 V- k- d: e( u! `, v5 I$ h& b5 X6 I( A# R
$ f; x1 t+ ~% m
     问题三:
4 u6 ?* f+ w& l  G0 U     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?7 k2 a4 w. ^$ p1 C6 r- C
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
/ R0 J- y  C( p# M  y8 l  @: X) c     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
! w4 G. i9 D& u% @: ?# F& w& A
, l/ b3 S% X  f; J) [# P[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
% b7 b8 k/ y# w1 {$ R. J) m  g+ ~2 m3 w
% S# I8 A4 L7 \3 M
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
7 B9 }+ {5 j/ g7 D2 \; W# U# R: U  e* V- X! d6 T
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)7 f6 ^! j% v: J- w
, U5 [# x* S* J8 k
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,( I! e: G, ~1 Q% S
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??1 r. L$ h0 k3 R% _- ?* [" y
: {# d- F* Y+ C* x4 j0 E! N
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
4 a) D" A" `. S( N1 E% q# O1 n
  g8 I2 d3 d8 U4 c另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,) S+ J; ]' R- c  S4 U7 I
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"3 ?+ m, p/ h# y: ?5 y$ a) S

& j" B. A' \4 I
( x3 [3 ^( V2 M# ?-->恩,是的5 f) x) R. b2 \  O

; j3 o( h0 h5 J; m; H) G' A! [" ]: T8 `7 Y: i

+ b, p  `3 X- r7 b  F# m9 D* Q不知道硬盘firmware里面是怎么存放的,反正是按word来读的。  e3 \- Y4 l) d, r$ n! x" e
2 V! a+ O- H, G5 z( i2 ^  B  F0 y; w
-->恩,谢谢!
0 r$ G* @4 [5 C3 ^" Q! z
3 L' m: s" ~0 V1 |6 G
2 Q" T4 K# w! V7 B6 |$ U, s
3 ]5 {" _7 r9 e+ [8 }$ }另外,ADU读到的什么信息,你认为有错误呢? ) T, k& d6 m4 F  ?' M

0 R& \! F8 q9 p  ?- Y
6 O( k3 l" z3 q3 \1 r" Q5 N% q, n  F-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。+ A5 x, |( v9 ^0 x
   spec 有这样的定义
5 F2 e* S% K8 S0 F  r- h  B 2 ^. ?6 R, _& B+ F2 i
ata6中
+ n7 Y; @) c1 v# P9 p4 f; F/ W8 H/ H
第85word:
' O" k# z* d6 p9 R( s  w! \* T  j/ T* L15 Obsolete                            -------- 0
9 S5 N' `! ]$ x14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
/ n% A3 _; ?; v) X7 L. Y13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
. u7 m4 a5 p5 {) T: W; i" \$ M12 1 = WRITE BUFFER command enabled    -------- 1      吻合
5 y. T3 V$ ]$ g) `# U11 Obsolete                            -------- 0
( M- x0 c* u7 C10 1 = Host Protected Area feature set enabled- 1      吻合
( j  ~, i8 m' q( C% b- a6 E. e9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
) @2 E2 A5 \3 p; j8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   , y; e3 P; k1 j6 q& Y+ f
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ' S3 Y0 F$ j. u6 K
6 1 = look-ahead enabled               -------- 1      吻合
* e# M% p% Z6 I4 Y6 Y, _5 1 = write cache enabled              -------- 1      吻合
5 f5 _0 \7 S. f0 X4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问" U- V3 k' A4 g8 S7 ]) }
3 1 = Power Management feature set enabled      1      吻合: R0 H1 B: _2 a. K
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   + T4 H, E% o- J* z
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
0 M$ c$ Y& N/ J: ?7 R0 1 = SMART feature set enabled                    1      吻合. S. U* x- c5 x8 f& u
- y; c! p' E1 E! i7 K+ _6 `  r4 Y* Y
那照着这个数据的话,3469H= 0011 0100 0110 1001
" X" ?8 H6 K( N- j! A. X- m5 R' x7 b( V, A; p3 A$ F7 o
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!% \+ O# `2 q8 a
2 x$ p  \4 E9 _4 n' w* P
9 Q2 k9 `* E, `- h& _

# Q8 R" `) h6 K
( M. ]+ F* n# @: c; H* J(*******最新*******)
8 F( r* V. W, E& g2 M5 g" x/ R4 o     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
7 Q* X9 N; @7 a8 B% U, p! c     不知道各位大哥怎么理解?9 p4 P! w+ }) H1 e' [
& Z& h+ \" l2 N( \" x* G; N
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-13 19:25 , Processed in 0.081566 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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