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

读取硬盘 ROM 问题

[复制链接]
发表于 2008-12-18 14:31:34 | 显示全部楼层 |阅读模式
大哥们:
8 S. b! T) Y+ W: }, H     问题一:
0 n! s! y, E# C# {9 g8 V! i+ ?4 ?     在读取IDE 硬盘的 rom信息的时候。从1F0H读回来的数,是不是要交换一下高低字节(word 操作)?
2 s2 ]4 g& g& O( R3 {. \+ ~9 Q因为我发觉在读回来的时候,如果是不交换的话,serial number的ASC码那段,每次都要反一下。$ X- ~: p3 \4 }' q* q; Z7 `  I

( r8 u! M2 r, C
8 N" l: b# o& ]. Z0 \8 W6 {7 \     问题二:
9 `! R) B, m* V. P( F9 q' t     假如上面的问题,确实要反一下,那么是否说明在rom中,格式也是要反了一下呢?$ t! C# C/ r  L& l( h$ I
举个例子:  本来硬盘的serial number是 ST3160215A,那么在rom里存的格式是不是TS130612A5呢?' Y5 g+ [) B  a+ U* U

! o! u1 ?% ?4 v, m  j  l- y, \
     问题三:; c6 C, g7 t7 m* K1 k
     我想在读取ROM以前,首先先判断是否存在 master /slave 盘。用怎么命令,或者用什么方法去做呢?: T/ Y' X: F) Y
我有个想法给1F7H写命令进去,看返回是否有数据来判断。不知道可以否?
, s2 {+ g0 l, q+ z. l4 l5 B; W     (问题是,现在我把IDE接口拔掉,把IDE的CD-ROM接上的时候,读出的rom信息全错。。。。)
4 k" ~2 L4 I/ w  |1 r: @& Z+ f+ h
% f/ x& l6 b! Q! X; l3 Q. S[ 本帖最后由 68023611 于 2008-12-19 18:09 编辑 ]
发表于 2008-12-18 15:16:23 | 显示全部楼层
第一个是的,
回复

使用道具 举报

 楼主| 发表于 2008-12-18 17:13:12 | 显示全部楼层
首先感谢楼上大哥的回答,现在总算吃了可定心丸了。% K1 o$ ^% v5 A* T% a! h& w
, T8 V1 b8 J1 H/ r  T

" R  H- V9 [6 B* A1 }       其次还想因此也提个小问,我现在在模拟ADU.EXE读取IDE 硬盘ROM的信息。可是我发觉,照数据对应ata6 spec后发觉,似乎adu.exe工具显示有错误。9 C: T3 F/ }0 R7 X. X# l
+ f& b: B' N, q1 d' i
但是我又不敢肯定。我想是不是  权威的公司写的查看工具也有时候会出bug的哦?(因为adu在访问 memory的时候,寻址问题就设计的不好。有bug)$ [! ^% S! b' z7 \  Q$ U4 O+ L

0 T4 z' G/ J3 o* o$ X# g5 y       这个网站真的很不错,我刚刚入行,还在学习中。希望各位大哥多指点。希望能有个群的话就更好了。以后版主把每天的聊天记录都可以贴上来了。呵呵
回复

使用道具 举报

发表于 2008-12-18 21:05:04 | 显示全部楼层
弱弱的问一下,你说的读取IDE硬盘ROM的信息,
" k9 x$ _! t+ ?' H3 J+ y2 `. F是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??
1 G0 f7 ^$ `# X- U0 t& L6 f- r7 Q8 m. e  C* q1 h6 _, d
不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
4 Z$ B7 k3 T" i6 q6 n3 n- U, l
! G+ d6 G, T. \另外,ADU读到的什么信息,你认为有错误呢?
回复

使用道具 举报

 楼主| 发表于 2008-12-19 09:49:06 | 显示全部楼层
"你说的读取IDE硬盘ROM的信息,  a1 h! r4 k% H% C, E
是不是用ATA/ATAPI spec中的Identity命令来读的256个word的那个??"2 R3 K- B9 l& J! t
% a3 t9 q! q7 w/ h1 r5 n

. C; e/ {* _; g( N- [0 _; K-->恩,是的0 @3 z( g, B" B  z
! V; H. L* @1 \1 X

) p  U4 {% k9 I/ a( k+ _
! J- T% \1 \# T, }不知道硬盘firmware里面是怎么存放的,反正是按word来读的。
7 L( ~7 b( A' j+ T/ Y7 V. g+ G: ^+ ?! t: n
-->恩,谢谢!5 {9 T! A- Z$ t4 B, x/ I- E, y
+ O. y$ i8 R9 M# E6 a
7 y: z% \+ I% Y0 j
# _( {' t# G5 j8 K+ C3 t. v) ?
另外,ADU读到的什么信息,你认为有错误呢?
% Z7 g( Y& L/ X; B- f  p
7 I& {4 J( C6 i/ w' s% z
% @  l- J5 P4 E, f* r# Y-->比如说,从adu的读回来数据显示 第82word 和第85word分别是 346BH 和 3469H。; n; n1 F$ ^+ s5 H9 O$ \  z
   spec 有这样的定义
5 _. z( A  e1 y
* e+ D/ ?. d. V* G% j4 oata6中4 c# P" W7 i# U# o$ g. I
" r' a4 L+ h  h, R: w
第85word:# ?+ Q6 i9 L# n5 y* L
15 Obsolete                            -------- 0
# y7 o& k8 V6 p6 }& Z14 1 = NOP command enabled             -------- 0      这里应该是disable 可是 adu显示是 enable   
7 V) g, ]7 W  n4 s9 g1 [13 1 = READ BUFFER command enabled     -------- 1      这里应该是enable 可是 adu显示是 may be disable   ( X9 O0 a9 O5 f# _2 b; [
12 1 = WRITE BUFFER command enabled    -------- 1      吻合
) h. N5 @" y. ~1 }% u11 Obsolete                            -------- 0/ p; R( {# D7 z+ S8 x- J" F& A1 H
10 1 = Host Protected Area feature set enabled- 1      吻合: z  g- n& K% c) `( Y! c
9 1 = DEVICE RESET command enabled     -------- 0      这里应该是disable 可是 adu显示是 enable   
6 e% a' m1 {3 b7 o2 }4 u7 U9 _) i8 1 = SERVICE interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   * n7 U0 V5 p7 ~# u6 }
7 1 = release interrupt enabled        -------- 0      这里应该是disable 可是 adu显示是 enable   ) W+ f& x' F& j( O1 V2 y8 x" H9 C7 K
6 1 = look-ahead enabled               -------- 1      吻合
  I6 @$ \: P. N' H5 1 = write cache enabled              -------- 1      吻合
! m1 a! u& Y- r+ {, `3 T4 Shall be cleared to zero             -------- 0      ?  为什么是 0 这里也是我的一个疑问# r, _  N+ s5 S6 S8 e
3 1 = Power Management feature set enabled      1      吻合
: i7 t4 N' Q+ n: C% F2 1 = Removable Media feature set enabled       0      这里应该是disable 可是 adu显示是 enable   
! u* J8 d7 O! c$ P) |( l1 1 = Security Mode feature set enabled         0      这里应该是disable 可是 adu显示是 enable   7 Y, y0 c. V% i
0 1 = SMART feature set enabled                    1      吻合( G5 z9 Z; d) u
" ^# {0 ]7 p, A' P1 k
那照着这个数据的话,3469H= 0011 0100 0110 1001+ X1 E" }9 N7 x; `1 F7 }/ T

; _( |( Q1 @; y: _/ y$ w7 Z( K    小弟可能理解有误,所以静听大哥们指教。我不怕出丑,但希望把出丑的事情或者理解都纠正过来。谢谢!/ |5 @6 B  ?. [, F/ v8 ]

' @7 c8 w( i1 B9 E6 D; {' b0 E; ~" a  r4 H+ Q) Y6 V
; G$ T( h+ E' e8 Y/ P# Q
+ r) U& V9 @7 {
(*******最新*******)
- l1 e/ E. |+ ]3 O( y     后来才发现,当我不接IDE设备的时候,上面的那几个选项居然还是 “ENABLE”,我猜测应该是adu.exe设计本来就没有处理这个事情。
& r4 u. L- ~- o8 c+ ]     不知道各位大哥怎么理解?
6 `( N% M" T: d/ }5 A1 N3 O0 N/ k$ q. L, ]- i, e" {2 U2 s
[ 本帖最后由 68023611 于 2008-12-19 18:10 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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