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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:) k2 I2 ?* \7 E" J: J( Y& Z
     问题一:$ S9 }1 P/ t# q7 ]1 C) X! q
     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?- O  a+ X) _+ G' p0 d+ r
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。* O3 w( F1 H& j  w5 T6 u

  V9 e6 I5 \( X' ~" ~* \* g# ?
+ {6 s2 G5 _( z1 N" J( r) V% a) F     问题二:
  a3 l3 t, T$ N& g     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?
" h. i! K6 N5 l) l( y举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?5 P3 t2 l4 |( ~" L6 N5 X

! ]0 c) `7 h: i* D6 E0 H9 h" H$ |; a/ `: ~# ^8 {
     问题三:; R- t: e+ W7 c# v$ t/ p# D# q
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?
2 |1 Y1 c: ~* A2 |我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?9 [1 ]# v  z# s, G! m% D8 b/ h
     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。); |$ e3 P$ t' j  f8 A
% H* X7 X6 m  c4 f
[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。% p0 f8 V9 V- V: e

+ T0 X) V! _3 q( q3 t
4 s- {" J: ^3 s2 r6 ]* Y: B       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
4 S/ a! n/ h8 Q" g0 o8 U
. M/ ^( ]* c' K' x- Y+ k但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
& m6 o7 K' v1 ?7 F4 U: C; W" d, A4 M4 U: V8 @2 t+ S- r5 a( M
       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
) i! W% k: s) x: n是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
; o1 S0 b/ T/ x* D2 ^8 f; }' C- ^( n: x# @+ \
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。0 h; r# [( D( V* ^/ w
: y9 U: G' V2 o
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,
" S- N) m8 e" Q$ \. c+ k是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"& |# B8 \# i7 R" l: }) ?
! K; _1 R; R+ J/ g

  w4 t6 v2 J8 w-->恩,是的1 Q0 _6 _. o8 m. z+ z7 X

6 h9 {2 V) B1 [) x5 d+ d4 Z8 r; z+ |% y9 X( W' e- \5 \

1 O9 B6 X; y! p) A$ \0 ^4 [% j不知道硬盘firmware里面是怎么存放的,反正是按word来读的。1 d5 Y$ n+ d+ O
8 E: V: U. v# F; s
-->恩,谢谢!
- X4 _: _: s! O1 V) n2 e! g
" }5 `/ t6 l% _8 S: L, w5 H4 b% b9 N- {# a: T! ~$ k1 r
4 P4 o& o! f% M; T* k* J- h% X
另外,ADU读到的什么信息,你认为有错误呢?   Y1 H5 S! x$ W) C  b( o
9 r2 A8 `& F4 a% M- u2 u

  y$ v* C  `- W% ~8 F/ C-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
  B# A+ j7 e5 y" I. c" v( @) q   spec 有这样的定义
# F& U4 k9 b# `$ J
. a5 s2 N% C' ?4 J" p, k# kata6中4 |+ L$ l* D5 ?  N; B2 A

, U6 ?# S- s/ _, T* K  `+ s第85word:
( x- J" J$ t, b8 ?1 ?15 Obsolete                            -------- 0
  z% c) Q7 q; U# \4 Q14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
4 C) K/ e8 `( l% s4 N13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   
0 f" X) W' N! `+ ~5 @12 1 = WRITE BUFFER command enabled    -------- 1      吻合
7 n" j* d2 Q4 [3 n! l- s# S6 L11 Obsolete                            -------- 0% S# a; t( x& [, Q& ~/ h/ y. D9 Y
10 1 = Host Protected Area feature set enabled- 1      吻合
+ \6 O( R. e4 U4 M) ?: X, V- ]9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   * t* N" e; }, G8 W+ T0 O/ T+ \, }
8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
5 Y2 w1 L, _4 O" M7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   
% e. H4 F( X( K$ Z0 h% b" d6 1 = look-ahead enabled               -------- 1      吻合
7 @* L, c& p$ K$ P5 1 = write cache enabled              -------- 1      吻合: z% W% u1 @+ l; `
4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
0 [# i( E7 M- m' |3 1 = Power Management feature set enabled      1      吻合$ E: i3 r: p; a0 V5 ]# F) r9 f6 x
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
4 O# P& P; |- f1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable     e# z( ]9 V9 u9 v! a4 c
0 1 = SMART feature set enabled                    1      吻合
  H; l6 ]# x- V& d- P! Z# _5 J2 z( ?5 x: v+ S. J+ x
那照着这个数据的话,3469H= 0011 0100 0110 1001* q, c1 D$ o, [9 v$ [
9 _* |; p3 ?" ~# s4 b* U, w
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!! h1 B) M6 W/ F- Y  ?9 c
  s: L3 a; m# C( h- e. `
$ T: v) r- v, v
$ O/ f& @4 h% _- z  l5 [3 [

" J+ R1 S! C, V( E6 o. I# t5 j(*******最新*******)% n" s: C/ f+ h! ?, b" r
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
+ `% g! Y/ a  S     不知道各位大哥怎么理解?+ I# Y6 K; u: p' R: H

9 K  I. [3 J# _* v! W[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 02:16 , Processed in 0.075659 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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