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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:& {- }% b2 _5 u; q! c
     问题一:
8 M5 J3 n( J7 F6 K" k5 f; Z     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
* |# t; q; `) ~; \+ [因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
: Y+ I; s+ J! t/ E1 q% c# w4 s" l8 C5 S. T7 K7 b# U  y
! {. o% c  h- l( O8 k" L
     问题二:7 s3 e$ Z8 B. v* M/ i
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?$ W5 q: T" X% X" i( K
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?: h- j) r3 S8 i- [3 j) b

# z- D/ y$ b8 v( X4 P" ^7 Q8 y- m# z9 a9 ~& U( [
     问题三:
3 `/ \" r) t; m6 \. {) k. j* J     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?, d3 u0 r" O4 G$ L
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
, r  k2 j. d: I4 S     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
$ v6 c/ n5 ~6 ~
+ P6 h1 @9 ^5 j[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。# F/ ^: }. m- ?2 {& A+ U4 |

/ W+ W# O4 A- F/ j1 }# W6 S
) g- W- |% s' @       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。$ }8 G' n: ~* Z. b
4 N0 D5 K9 h5 K
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
% w+ v/ q4 q6 s5 I( R% m& I$ j6 Z" w6 Y3 V
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
$ k. L- |& ^3 k! W* V是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
! K. {* u6 T5 C: \5 @+ F$ O0 P" D) L4 r' y- U7 k
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。6 c; `+ H. n& m

( G4 o7 U7 Y& \6 v: V% y' J另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
4 r5 }3 s8 s- f* G是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"2 Z: c8 k/ I5 x, {
2 |. |+ l. j0 |+ C8 Q
' G! B) c0 }7 Z! J- }' o: y
-->恩,是的( U+ S+ ]7 q4 {; E  b0 |

, [- d  d. D( k2 Q8 s3 F' R% \  F/ O# V% h% s% t* ~" r! G) v
1 I5 |( g, M& [. x
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
! l, D- B9 L5 X
8 w8 t; P  J. F3 X! |-->恩,谢谢!
2 M' t+ a+ P/ d1 D( h  i7 r/ t; v, c9 i$ _. z+ `

# H8 h2 T: ], g4 G; y0 f/ I, T0 ]5 k
另外,ADU读到的什么信息,你认为有错误呢? 5 M: E& l' k) R

5 V3 b, T4 Y' d0 a; Z: ^/ X+ k: \$ k" C. c% ^5 ?/ q& I
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
  j& ]) U; ?  B8 j   spec 有这样的定义
- T8 b% f$ }# {& ]: E
% P5 M2 `! x. {% z" \ata6中' P$ n. T" ^. j' ?3 V. m

& o0 S; f7 p. f  o1 I# d第85word:/ F( [& t! |6 ^; k7 M4 q1 g
15 Obsolete                            -------- 0
0 u9 k; U9 q2 a- \7 ~" Q) M14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
; p  A: m* K4 s13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   # W8 |. c5 F9 i0 ^' L6 c) f  O% k! N
12 1 = WRITE BUFFER command enabled    -------- 1      吻合
! V( ~+ i* R5 o3 o# q* g11 Obsolete                            -------- 0$ V  |5 I; `$ f3 F
10 1 = Host Protected Area feature set enabled- 1      吻合
8 F$ B! t& s& ?+ L; e) S9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
" x. k/ b5 \# W- u% v3 k8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
. G  F6 C& r: U. z1 A  f: f7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
( E/ p9 _& \% z) p3 p* Z6 1 = look-ahead enabled               -------- 1      吻合  g$ G7 @' p6 e5 D' P, Y9 ^6 O  L) f
5 1 = write cache enabled              -------- 1      吻合5 j1 j1 t0 a5 i# n/ `
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问, c& v4 c! n2 y/ y8 x2 ?- ^
3 1 = Power Management feature set enabled      1      吻合; D1 a& U6 {. h5 L$ q3 p: [1 P
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   7 J+ K# f* j% e0 x+ V
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   
5 ~' ^  S: m) f$ B4 ]4 n0 1 = SMART feature set enabled                    1      吻合5 R% R- W; q- c
+ ^+ X# p2 Y$ ^. W
那照着这个数据的话,3469H= 0011 0100 0110 10011 C" ?! s; E! ^0 V7 v3 O
' L  n% ?3 e. A9 p4 p
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
8 J9 U  W1 P" J( G5 _; X5 C; y& m8 E$ B  V/ h

# x0 y3 U) q3 u8 U, F
7 I7 O8 P% h3 f  J& m6 I! G0 E  y/ O3 y. |' X# k3 q8 j
(*******最新*******)
5 T6 S" o- t) O7 ~. ~     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。1 L! V. I. [0 I
     不知道各位大哥怎么理解?
1 L2 p) Y6 m( E' W$ ^# a9 @- W  X. S) k  o- `, u! O5 L2 {
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 22:45 , Processed in 0.055872 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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