7.10 ROM数据结构
MPF-AT和MPG属系驱动器的ROM固件数据结构与以前的属系不同,它们使用了32位的CPU(而以前的属系使用的是16位的CPU)。ROM固件结构见表7-12。
表7-12 ROM固件结构
一个ROM固件头示例如图7-23所示。
图7-23 ROM固件头示例
可载入的固件部分(即所谓的overlay)有相似的数据头,它位于磁盘固件区的3Dh模块,初始化时被载入驱动器的RAM,基本条件是要求overlay的版本与ROM的版本绝对完全匹配。overlay中不包含适配数据,依据版本不同,长度也有所不同。最后32字节包含关键字“(C) FUJITSU”(见表7-9)。
在ROM中有一个很重要的字节—— Mutex字节,位于相对ROM起始位置的偏移2Bh处,由8位组成,各个位的含义如下。
D7:ROM中存在适配数据的标记,不过该位没有任何影响,纯粹是信息位。
D6、D5:用于加载固件数据的磁头表。
D4:未知,通常为0。
D3:未知,通常为0。
D2:未知,通常为0。
D1、D0:驱动器磁盘数的二进制描述。
如果修复驱动器时从数据库重写了ROM,要注意D6、D5、D1及D0位的值,其余的或者为0,或者没有作用。例如,使用磁头0并且固件包含适配数据的单盘MPG3102AT驱动器,读取的Mutex字节应为“10100001 = A1h”;如果是同型号的驱动器,但使用1磁头,那么Mutex字节应该是“11000001 = C1h”。若是MPG3204AT驱动器且包含适配数据,那么Mutex字节为“A1h”;若是MPG3307AT驱动器但没有适配数据,Mutex字节为“02h”。
D6、D5位含义如下。
D6, D5 = 0 0:双磁头驱动器(也可能有两个盘片,看D1、D0为的描述而定)。
D6, D5 = 0 1:使用0磁头的单磁头驱动器。
D6, D5 = 1 0:使用1磁头的单磁头驱动器。
D1、D0位含义如下。
D1, D0 = 0 1:单盘片驱动器。
D1, D0 = 1 0:双盘片驱动器。
如果D6位和D5位都为0,则假设固件数据由0磁头加载。例如,值为01h(81h)和21h(A1h)在MPG3102AT属系中是相似的。