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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:8 F7 t# \  H* i5 ]
     问题一:
3 h( v. v$ j( M     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?1 \! B2 C$ B7 ]
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。6 h5 S# {% g* f* E: p6 \' S" c0 d

: T/ Z% [1 A( ?, I  D8 b
/ u! F1 T8 H4 v$ u8 n2 I3 u6 W     问题二:3 N3 R+ A. T$ N# j3 B9 Q
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?; w# X' G. C- k6 g
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?
- Z- n" D5 z& V4 P+ V. L* ~  j" y& k

  |6 x1 ?  `( S+ v) X- t  d3 \3 ?     问题三:* f" T0 f2 j$ h+ ?2 ^$ t
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
$ }+ o2 J# h3 @$ `9 {1 n9 I我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
* T3 q3 V$ b1 H) Z$ B# k6 k& ~. D     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)' y4 X6 Q5 h: ~

# r& j1 L+ `/ z1 ~9 f[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。1 |: b! q! t3 y

" U7 o2 J$ _/ f  a+ F1 B; m/ ~( q" S* r4 M4 ]
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。# v' U" l2 g6 a. m

3 d! t3 @3 t# w# ?% x但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)" V  U9 w. O( m! }. K
7 H0 Z& P6 K. Q! S0 v8 _) B
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
- p2 V( D3 ~- p" U是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??, a3 }0 d9 m  g

8 I( {+ y7 K2 ?! P) G# G' L, ^, @不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
( p3 N/ X1 r9 j+ ?0 R
$ t. C) f4 R' v' U3 ^2 W5 j7 d" l另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
, C* R0 ^4 z& L! d是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
  g/ z; b- B: C5 [2 _: K  R/ R4 g& c) W( P* d
& H9 _( P+ v9 ?; N& V9 `
-->恩,是的3 ^) Y, m' n& J+ J2 v0 m

' Q. b; o) d: G) H) c1 I2 h- i0 x# f5 e& C/ Q; L! `
8 M( m( [/ Q5 ^
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。$ m/ ]/ Q- s1 K9 n$ j: \# @+ n* b- x0 f

" I8 d5 Q4 @( }4 H2 `0 B-->恩,谢谢!/ P" h; V6 ?9 L6 [  s: T  ~# _

/ d- D" x# k* p! j7 G
; N4 m3 ~" f% b/ N. F: \5 `3 J! P( g) h6 f' y" B! K" [
另外,ADU读到的什么信息,你认为有错误呢? 5 s* F/ u: @7 c2 T4 u- |# U

& x+ R: Q8 V4 j" C& K/ K* |, P" p7 \/ f" o% K0 U/ Q
-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。9 ^# h3 k) N+ G; J0 j) [
   spec 有这样的定义
' c4 l6 i. m# e$ l( i( A( U 7 j6 ~, A  A# j9 ~
ata6中
$ d- X+ M- D% @9 J  e5 Y" d& v# B2 ?0 b0 }8 C
第85word:
) Z) t* g9 C. T; Q$ w15 Obsolete                            -------- 0- J& D* D4 j( n/ J6 Y
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   $ @% I; y+ v1 P% N: U
13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
6 |9 @8 M9 N" J6 n3 F5 V5 I12 1 = WRITE BUFFER command enabled    -------- 1      吻合
6 O; P; \% \- k: ?) z11 Obsolete                            -------- 0
. u# c& p2 f) \1 n& P* }2 s6 ?10 1 = Host Protected Area feature set enabled- 1      吻合: s/ K, v% U0 [$ j* L$ Z! E
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
, k9 T; w) ?  D" F1 ]0 y% S9 U8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   4 ~( y7 `. B2 i% C3 A
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   7 e# S) r2 x1 }0 M. }0 l
6 1 = look-ahead enabled               -------- 1      吻合. j3 _0 ?6 Y  t
5 1 = write cache enabled              -------- 1      吻合' {  t& \0 q9 I( h" F0 X
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问- o0 c% A  J0 a6 s8 h. |# o
3 1 = Power Management feature set enabled      1      吻合7 H7 M4 e4 z5 {9 @
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
% E1 `2 Z! f  k1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   ; F( l7 r. M( @9 X+ V
0 1 = SMART feature set enabled                    1      吻合
; i) {& k' T: B0 R8 T( m* l6 C) s6 {. D; P
那照着这个数据的话,3469H= 0011 0100 0110 10013 J7 w+ Z5 [5 b* [7 k* s
; T0 `. B8 w( t! Q2 b- Z
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
$ b* b; @0 z* i6 F0 n8 `. K
/ D% \! I( h+ J" N! I1 A/ v" I! t0 l4 ^9 g. K  q$ t

! l5 t) n1 x! L! a3 n
+ J7 R# `. i( Q+ y" K" [(*******最新*******): {9 g% R# y+ Q2 J( Q8 }
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
' X( `" F0 l, Y( k# D" O     不知道各位大哥怎么理解?7 F+ i& {% r+ B, a& Y
: W/ \4 M# P  |; t/ i& X
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-21 22:16 , Processed in 0.040709 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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