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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:, ^* Y8 i$ z) T1 T
     问题一:0 |, _. g8 O+ j( e
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?( n0 X2 [( b7 q2 P6 M6 o
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。, ~  t, Q9 Q; p/ V$ s6 ?9 S

3 e9 k- p; v! W" |" w& e# y' L  \9 q8 D4 T% q) w
     问题二:4 z# b, C) v6 D1 f
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
3 E; k$ Q( H$ _8 P举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
9 O6 M8 T0 H& u$ h
% W8 u8 Y9 T8 f( |# E+ r) E- y! j# m/ v, ]: G  \$ R2 R8 A& F* U+ C' c
     问题三:8 {5 u8 l- K7 W. D; T9 u
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?& `1 \: q7 J$ o2 x) q) i
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?9 D& A7 S3 V" U, v) \7 V+ x
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
( v* u9 j5 n1 {$ V: G- [9 @; Q+ M- z6 f7 J# C( W
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。! j& J# n" D  S* z
+ ?& O2 A" D3 G$ P1 S, }) A/ z

9 A) B& q" x% A1 M& a       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。* O0 d) ^9 H# s3 Z1 P+ [
4 m$ b; V) H/ C$ e9 z3 M
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
" j& z: o; k) E/ {
# p& n$ `; ]% j7 q7 }( S       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,6 ]0 H1 q4 Q' I) A8 t$ F2 M
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
3 @! \, ?! I8 z% f. X* S" U
# `; X0 X1 N0 ~5 _) S9 g$ W8 }不知道硬盘firmware里面是怎么存放的,反正是按word来读的。1 s, z+ o1 L1 u' x7 G' Y% Z
& ]3 I  S( O8 K6 [, R" K0 |
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,5 Y6 {9 S5 M- f7 P5 {0 d' q
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"$ g" H3 F  O. p% s. x2 K3 W1 @

7 e- E% x- z: {$ x$ U4 K$ H+ |" m
-->恩,是的, k' Y, {, V1 K2 L" v4 U0 R
* n9 B" R! z8 m8 n+ A) D

7 a1 A) ]  E4 n
- L% v/ I# }. r/ X$ H不知道硬盘firmware里面是怎么存放的,反正是按word来读的。3 i: B$ u) e0 K+ V& d

3 o' I! d% C3 I# o-->恩,谢谢!  y% O6 l) M$ t& c8 k; L9 }

7 h4 T$ b9 p' @7 b7 u" ]: D, _& b+ q" F0 P  V, C+ h
: B+ n; n7 _  J4 ?6 T5 }
另外,ADU读到的什么信息,你认为有错误呢?
6 j! J$ e6 [! W4 {; v3 L3 h0 [1 `3 a/ Q4 N
8 ]& I4 P9 T+ H$ P
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
, ^. j) Z7 ~" @1 v. D* U+ `3 o   spec 有这样的定义
+ @! Z( S9 j3 q
. D* T; M$ X: ^1 ~$ O" ]3 O! Tata6中- y- s) R, U: b/ R! |0 N& S+ l) t
! L) e9 L1 c1 m5 G
第85word:" G) G0 e: I6 q/ N2 g, V, S! B
15 Obsolete                            -------- 0" S2 Y3 f# z$ X0 Q! j: m. X. [& h1 w
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   # k3 f/ N1 F. v- Y* p
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   4 O3 [. r* b* Z+ e3 T7 D
12 1 = WRITE BUFFER command enabled    -------- 1      吻合1 K. C5 H; W5 N$ L. O2 K
11 Obsolete                            -------- 0. [3 K0 O( g7 }0 H  e
10 1 = Host Protected Area feature set enabled- 1      吻合4 S7 `2 n% Y4 x+ |/ x2 K: q) {
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   1 x! L5 k; }& _. z0 D0 c  a/ {
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ( K1 Q/ Q7 t! Y4 Y8 b$ J5 o( v# g: s
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable     R. H, p! z& w! B- I
6 1 = look-ahead enabled               -------- 1      吻合& J0 w6 Z7 a- z* t* W9 ]3 X
5 1 = write cache enabled              -------- 1      吻合+ i4 A3 `1 O1 x
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问' q: E% Y5 K" ]3 \' T, w: X- ?
3 1 = Power Management feature set enabled      1      吻合
8 z4 d3 X$ {/ s$ r- J2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   * G. d* i8 K8 i" t
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   4 Y0 r! x# `  S
0 1 = SMART feature set enabled                    1      吻合
) _; p7 ?# Y7 e: K
0 x( w" X* \0 q4 i7 f那照着这个数据的话,3469H= 0011 0100 0110 1001
  J$ L- C# _# Y3 t- c1 X
& g+ y8 f: c) A0 ^8 m    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
4 ?( O# l) w# Z5 H
6 t8 ]# F7 l1 B( ^4 E/ H. x* j
5 p/ i$ L7 S: ?! o; f6 M
- O8 E! \7 s/ S; a/ C  Z% L* H
! F; M# K9 C# C% i6 I# K% D(*******最新*******); x1 K! h# F% D/ J$ }0 x
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
& _2 T4 h. ^- L     不知道各位大哥怎么理解?1 k2 U9 g& M2 e3 P+ D2 M
, i9 s* E& @. N0 }/ C) t$ }
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 14:02 , Processed in 0.184739 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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