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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:9 `: S$ l: i- v9 `0 ?
     问题一:
' q- m$ V; k+ l. t- S     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?8 h7 A5 }* v% v7 h7 S% E0 J: y
因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。
" ~; H/ @0 U) K8 F  q. t- e4 g- i; q
5 c6 N6 A9 z; \+ F* {, s/ A$ ~
. a% v9 L3 ?9 w# T( Y9 U     问题二:
( w: ^% P" e- k! B# r& @% [     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?7 D, ^' L% R* _+ l: U
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?" c) R6 H1 ?# f- X

7 M! V. ?, i+ g$ r6 I) R  d; p# W" k, Z' h% I8 q
     问题三:
  [, W) l4 X, x+ n6 Z3 y% K8 [* Y7 `     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?! H3 W( R& z/ }+ t4 n# m
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
/ w2 R5 k! l+ U4 w7 j2 D# G$ S     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
. a1 v- e9 L# q" L  e
5 |( h  J+ e- w  r7 j[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。9 s$ V. A; e, s! ]; `; r" T

/ W4 e/ s6 H9 Q) h: V* B2 s
% V, {$ B% ~( H/ O$ U0 M/ \4 D% {       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。
- J$ x/ v+ m% Y$ j0 J9 U3 ?9 h
0 i% j7 {" K: o( s! L8 A9 \但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)
8 ?) _7 Z, C: A7 X& C$ i1 `
9 y* j* o3 C4 x) p       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
; B2 c/ l2 ?- g; r是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??8 s6 R8 z2 ?# h( H
+ \( h1 B6 D) Q0 ]
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
6 w0 g) A! O6 ~' u) P# ?! f) o4 _2 s! ^. x! |
另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,- {! x9 p) k. ^2 H
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"
; B, w; W# U1 T* I7 {& r: D
9 p! n* G- T1 D. E
' V% W- N4 z6 h" Y) b9 E-->恩,是的
4 s. q% G& p$ R0 a, ^: }2 a: q( j6 ?1 E4 U/ F- R
8 M" y$ d1 J. i. u# }
0 I& _  ~% o7 C
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
+ M1 p$ j' z# v3 {% l# x+ i" m9 t! Y9 S0 r0 l2 `1 T
-->恩,谢谢!3 z$ e* D; m/ |

/ r- X, R( V+ _( M5 k- _  f' [
9 k1 V/ C3 {5 |7 L
. g3 _6 E! e# a! c另外,ADU读到的什么信息,你认为有错误呢?
9 B; f9 [4 k& J" ~% g1 C0 _; k, S  y
7 A, m: `6 ?' s, r7 Z- }+ h
! C" ]- e& i' O-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。
' h. G1 n( V0 ]" t9 I, t0 d% z   spec 有这样的定义
) X& Q6 H1 x' Y0 }# U - Z0 H+ q$ E7 f, i* z! ?* u
ata6中
& H/ U2 n% N6 B
5 ~$ l' B1 S7 {' S第85word:
: R+ i, ^1 q+ J15 Obsolete                            -------- 0  f' o; X$ D  R- c) Y' f
14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
6 F' x% d" y' l$ Z13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   1 A9 X: v  n1 s- f' a
12 1 = WRITE BUFFER command enabled    -------- 1      吻合. C& t7 u8 V3 y5 ^6 Q; Q) A' |
11 Obsolete                            -------- 0
& Z* z# u( i# K4 y" ~$ Z* D( [3 L3 k10 1 = Host Protected Area feature set enabled- 1      吻合+ h' T0 |) J' e/ Z! e9 n- r" C
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
  K2 u; [/ @. k) x1 j1 a8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   . T& l$ g  `6 A& I
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   : R) F# X. a6 [# [4 h
6 1 = look-ahead enabled               -------- 1      吻合9 N0 I: K- w, P. r2 \1 \
5 1 = write cache enabled              -------- 1      吻合
6 d9 I& o6 ^' f4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问
; l6 Y6 ?# \' }9 U0 \6 P3 1 = Power Management feature set enabled      1      吻合; r! ?! b* c' W" V
2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   $ l5 I$ v! q0 v. }% Z
1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable     L& V7 m9 B' {9 a/ I: U
0 1 = SMART feature set enabled                    1      吻合: f: S6 v2 P9 y7 J: c

$ h0 E/ {/ y6 A# r7 Q) Q那照着这个数据的话,3469H= 0011 0100 0110 1001
! M1 x/ a& l& v/ |7 Z8 ~0 ?, \# D0 a( y* L
    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!
% R) {9 g% |5 k0 r; p$ s! Y! B
4 |0 E7 w0 H) [8 o' ~9 \' Y- H5 ]3 p5 d# U
, T& l8 d" j9 ]' p- V2 v0 I
5 J% D: C5 }& y  g) M, h- f4 _; p/ w% K
(*******最新*******)/ ]& R  U; ?3 x+ G0 `. a
     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。: N6 z4 ?7 @& x/ L# W0 A+ D/ s4 ^
     不知道各位大哥怎么理解?, ?: \: a: e; v
% P1 Y2 g& `# `( z' U
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-19 21:02 , Processed in 0.053359 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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