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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
! _, b9 J: Z0 Q4 c     问题一:
2 j* T" B" b, \' N, z9 ]% e     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
( b7 Z# u6 d+ E2 W- L: V因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。+ M0 l1 s: k8 C- c" A5 Z

6 w( k" K1 ]6 U0 M. H. E/ V- s+ y5 D# L. T
     问题二:+ m% o  r4 l$ Q' T' U7 s3 D
     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
4 i; H4 |' X. N' `. _举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?4 _  o7 C1 H- M% }) M4 |; X

% c; F& K. P8 }5 g, Q
9 K! ]( B+ `, ]8 R6 J% b5 @- l     问题三:
2 ]' Q1 ~2 z! `/ ~( N) G, [) r     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
$ G% e, H# }$ w我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
3 L/ X: |2 }! @     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)/ G' [, k& M9 a/ c4 Q

" M  Z, P! ]. M/ K[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。
, X6 i, ?) _, X- O2 Q" C  w0 v, w  I2 e. }
2 p( R' S( I/ c9 m- C! h
       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
+ g+ Y1 K" ?7 x3 I( N4 _2 r; N; q& u, G
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)% L6 z! a. P5 l2 l  b9 w
* G: P9 K" i2 E4 l
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,/ d) F6 L; B; t8 p+ [( |. O0 o
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??  Q  M9 r+ D7 u, v1 c

( u) A! N& \9 N( @+ n& W不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
7 O# U( j. v: _6 b4 i9 B! z' v' t- V5 I' W; C( [4 L' ]+ o# c
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,6 ]" s, i! M6 e) X* F7 P8 o: M4 o3 ^4 F
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"% K, S/ N3 x, B) w

  ^4 z' G9 O' v+ W6 f- X. E8 d- y& k( Y" Q
-->恩,是的
% C& P- t5 ], s- x$ g. L9 e; ~) w) n6 k' n* T; E" X% {9 j1 U. {
- \* d& H2 g7 p

  R! d; C" t9 x  ]( m* F不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
1 B; s' L. O1 H0 _. W) G7 y' I5 e3 X% f+ g! H
-->恩,谢谢!3 y) k- B) Y/ `$ t. x5 I. c, O

  m+ C5 I8 R7 O( u, E4 U  O5 I! x+ b& b* b
9 z. r, N5 N' y, \
另外,ADU读到的什么信息,你认为有错误呢? / X2 N. a. k" R

" c% u+ V$ ^& J6 Y8 L+ I9 q+ B, b- \: ^
9 U$ A( p9 `) M: [4 ^6 W-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。2 ]" K# c1 f1 ^2 z
   spec 有这样的定义8 b" g! b) o& a/ P

9 W) ^( ]. Z( I. j/ p( Qata6中
( @; c2 E9 y& T3 c. i: m8 e5 h8 r. L: G1 d- `! R$ V
第85word:+ O7 B! Q7 h+ v' _' T" o
15 Obsolete                            -------- 0
) J4 C1 I3 s6 W" ?14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
+ m% ^' l9 \  |% O13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   * x2 W, T6 y& l# c
12 1 = WRITE BUFFER command enabled    -------- 1      吻合
# ?" |+ p! @/ Q! [( v9 s11 Obsolete                            -------- 09 z& I5 A( [0 |9 S$ u% ^- _
10 1 = Host Protected Area feature set enabled- 1      吻合
$ Y& P# S& L7 q9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
1 F2 e" ~8 C/ k$ T% W' K8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   : k  b. ]: R+ D/ L+ z- |1 ], |, h
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   3 T* c) W# N: o/ k8 U* E8 I9 A! J' _8 b
6 1 = look-ahead enabled               -------- 1      吻合
8 _. [) s1 |  X5 1 = write cache enabled              -------- 1      吻合' C8 ~) U+ }* W- P, K% i: @/ F" L
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
# l0 K; s7 }* s: W' e5 Z3 1 = Power Management feature set enabled      1      吻合
) X/ X. j3 d- H( u2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
& L9 R( h8 u: P# d1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   1 ~& ?3 H3 D/ V6 r* _* t/ @
0 1 = SMART feature set enabled                    1      吻合/ o/ _" r! ]$ |6 \
8 }. k5 t; {( M& @+ Y
那照着这个数据的话,3469H= 0011 0100 0110 1001
; ]9 l* y; q; _3 C
. H( ~  b; r: l2 w, Z' [, V1 a    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
6 |0 ?3 W5 ~0 S( l5 w! B) w& K. v% O" y! F9 m& B

" M+ u5 O/ c% i+ P4 f3 v4 L; Z5 u" j' @

/ W  M. `1 ^, h' e(*******最新*******)
! J8 q. u# \6 O# q     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。+ C, u7 g, \! m& n8 A5 e7 A8 p
     不知道各位大哥怎么理解?% x" u, U' Q1 ]% e

  ^1 C: ^$ U! [+ ^1 M3 h[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 20:29 , Processed in 0.188309 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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