Pc3000软件使用
5.1.运行软件
运行软件之后,就会读出驱动器的ID号并显示一个菜单用于选择待维修的驱动器的型
号。驱动器系列根据工厂别名(-大多是处理器芯片的名称或型号-)分类。工厂别名和驱动
器型号的对应关系请参看前面第2 节表1。
选择驱动器之后是菜单:
以下为英文菜单的翻译:
标准模式
重读驱动器ID号
载入LDR文件
写内存缓冲
程序运行时禁止Reset
显示SelfScan状态
**********************
*标准模式:对硬盘驱动器进行完全初始化,如果驱动器存在故障(LDR文件不能加载或
尽管能加载但不能引导驱动器固件)将会出现以下错误信息:
Error loading the modules table!
如果DISK(PN=1FH)模块不可读将会出现下面的信息:
Error loading configuration module!
*重读驱动器ID号: 更新“MODEL”行的数据。这可用于硬盘驱动器启动时的诊断。
*载入LDR文件: 当驱动器不能自主初始化。需要恢复固件数据时,推荐使用这一命令。
*写内存缓冲 :这个命令是可选的,与“Work with memory buffer”菜单类似。对于
ATHENA DSP系列驱动器非常有用,因为这种驱动器启动时不但要加载LDR文件,还要从其他驱
动器加载RAM拷贝。
*程序运行时禁止Reset :程序正在运行时禁止Reset,缺省是允许Reset。
*显示SelfScan状态:硬盘驱动器在SelfScan的状态。
5.2. 程序菜单一览
选择*标准模式*后出现下面的菜单:
******************************
逻辑扫描
磁盘固件区操作
磁盘 ID操作
缺陷表操作
驱动器工作区的设置
自检
退出
******************************
5.2.1 逻辑扫描
*逻辑扫描* 利用逻辑参数进行磁盘表面测试。详细介绍参看8.2 节。
5.2.2 磁盘固件区操作
选择此菜单后出现下面的子菜单:
*******************************
内存缓冲区操作(Work with memory buffer)
SA操作(Work with SA)(-SA为service area的简写,按字面理解为服务区,实际上指
固件区-)
载入 LDR 文件
创建 LDR 文件
安全子系统
*******************************
5.2.2.1 内存缓冲区操作
*内存缓冲区操作* 下有子菜单:
************
读内存缓冲区
写内存缓冲区
************
这两个命令分别用于读和写内存缓冲区。当需要使用LDR 文件启动驱动器时这个命令是
必需的。实际上,当使用LDR 文件启动驱动器时一些固件变量没有初始化以阻止对固件区的
写操作。但是这种方法只限于ATHENA DSP 系列的驱动器。由于它的复杂性,我们不认为目前
这种操作方法可以用于其他系列的驱动器,直接载入数据同样有效而且更简单容易。当然,
程序允许你把这种方法用于其他系列的驱动器。你可以尝试使用与我们专家建议不同的方法。
早期版本的程序在载入LDR文件后使用了从内存中而不是固件中载入数据的方法,这种
方法带来了复杂性。在现在版本的程序中这个问题可以通过“测试固件区记录”命令来解决
(参看第7 节)。
5.2.2.2 SA 操作
固件区操作包括以下命令:
***********************
检查磁盘固件组织结构
SA表面检测
读模块
写模块
读模块组
写模块组
SA写测试
修复模块
译码表重建
主轴停转
***********************
*检查磁盘固件组织* 输出固件模块的状况报告。这个命令大概耗时1 分钟。详见第6
节。
*SA 表面检测* 使用UBA 寻址模式测试固件区表面。
*读模块* 将模块拷贝到“MXDSPMOD”或“MXPKRMOD”目录。 模块名的头4 个字
符表示模块所在扇区的UBA 地址的16 进制表示,接下来冒号后面的4 个字符表示模块的长度
的16 进制表示。每个模块有一栏显示的是位置号。位置号和模块功能之间的联系请参看表2。
*写模块* 从“MXDSPMOD”或“MXPKRMOD”目录写入模块。由于模块大多不使用校
验和保护,其中一些的校验和具有不同的算法,因此写模块时不会重新计算校验和。每个模
块有一栏显示位置号。位置号和模块功能之间的联系请参看表2。
*读模块组* 和 *写模块组* 这两个命令是对固件区进行操作的另一种方法。 它允许
同时使用另一个磁头(如果有的话)存取固件数据。模块组文件(*.smb)包括所有模块和空
白空间。这两个命令不是用于修复硬盘;但是有一些故障可能需要它们来排除。
*SA写测试* 载入教正数据并检验向固件区进行写操作的正确性。这个命令用于载入
LDR文件后的附加初始化。使用方法参见第7 节。
*修复模块* 用于重建文件头不正确的模块。使用方法参看第7 节。
*译码表重建* 用于从缺陷表(模块 PN=33H)生成译码表模块。详细描述参看7.3 节。
*主轴停转* 使驱动器进入“睡眠”模式。用于进行热交换(-热插拔-)过程中。
5.2.2.3 载入LDR 文件
LDR-file loading(载入LDR 文件) 下有子菜单:
Load ROM and modules 载入ROM 和模块
Load ROM 载入ROM
Load modules 载入模块
详见第7 节.
5.2.2.4 创建LDR 文件
使用这个命令可以从完好的驱动器中拷贝出LDR 文件(-即LODER 文件,引导程序-)。
此命令只有当从菜单中所选择的驱动器型号与实际连接的驱动器型号相符时才会正确运行。
否则将会出现错误或者创建的文件中包含错误数据而不能被载入。
下图菜单第四项,创建LDR 文件。
5.2.2.5 安全子系统
这个命令包含子菜单:
*********
查看信息 显示当前安全状况和设置密码
清除密码 禁止数据保护
*********
5.2.3 磁盘ID 操作
这个命令可以修改驱动器型号的名字和序列号。这些参数被储存在驱动器固件中的
DISK 模块(PN=1FH)。
5.2.4 缺陷表操作
*缺陷表*命令下有子菜单:
*********************
查看P表
查看G表
将G表缺陷移入P表
清除G表
清除P表和G表
从 Ddfectoscope 导入
添加LBA 方式缺陷
添加驱动器磁道
*********************
*查看P 表* 报告P 表中记录的缺陷
*查看G 表* 报告G 表中记录的缺陷。报告中“LBA(def)”列表示有缺陷扇区的LBA
地址。“LBA(subst)”列表示替代缺陷扇区的位置扇区的LBA 地址。“Candidate”列表示“候
选”缺陷的标记。如果缺陷行在“Candidate”列为“v”标记,那么此缺陷实际上没有被写
进缺陷表中,因此“LBA(subst)”和“LBA(def)”是相同的。完全的G 表的大小显示在“Capacity”
行,不同系列的硬盘有不同的容量,例如,ATHENA DSP 驱动器容量为636 个缺陷。
*将G 表缺陷移入P 表* 将G 表记录的缺陷写入P 表。
*清除G 表* 清除G 表中的缺陷记录。
*清楚P 表和G 表* 清除驱动器上所有的缺陷记录,复位summary 表(模块 PN=33H)。
如果需要保留缺陷信息,可以备份模块 PN=37,18,78,1B,33。
*从Defectoscope 导入* 命令可以将Defectoscope 程序发现的缺陷添加到P 表或G
表。
5.2.5 自检模式
*自检* 命令下有子菜单:
****************
开始自检
停止自检
查看自检状态
****************
*开始自检* 驱动器自测
*停止自检* 停止自测
*查看自检状态* 查看自检进程。详见8.3 节。
6.固件
6.1. 概要
Maxtor 驱动器的固件分为两部分。第一部分微代码存储在处理器芯片内部的掩膜ROM
(-一种半导体-)和扩展Flash ROM 中。第二部分存储在驱动器上的固件区。Maxtor 驱动器
专门划定了一些扇区用于存储固件,并且可以使用“UBA”(Util Block Addressing,不要与
LBA 混淆)寻址方式来访问。
PCB (-印刷电路板-)固件包含两部分:处理器内部的掩膜ROM 和扩展的并行或串行
Flash ROM。之所以这样安排可能是由于处理器中的掩膜ROM 不容易修改(-Flash ROM 可以
容易的修改-)。处理器由扩展的ROM 初始化。如果扩展ROM 失败,固件代码就会从处理器内
部的ROM 启动。有一种情况,处理器内部的代码可能使用的是另一系列的驱动器的代码,例
如,如果CALIPSO 驱动器的扩展ROM 失败后会标识为 N40P。Maxtor 驱动器有一个“安全模
式”跳线,当“安全模式”有效时,只有存储在PCB 上的固件被载入,而用于启动电机的程
序和初始化磁盘上的固件的过程被忽略了。你可以识别PCB 固件的版本。将跳线设置为“安
全模式”然后运行相应程序。在“MODEL”行型号名字后面就会显示出ROM 的版本号。
驱动器初始化操作需要完全复位PCB 固件和磁盘上的固件。如果有某种原因磁盘上的固
件不能运行,可以通过加载LDR 文件来启动驱动器处理器。记住LDR 文件只包括微代码而不
包括驱动器运转所需的数据(缺陷表,校正参数和设置)。PCB 微代码和磁盘固件有不同的版
本。这种差异有助于了解处理器正在运行的是哪个版本。Poker/Ardent 系列驱动器固件包括
两种:一种是正式版,一种是测试版。
通过标签识别Maxtor 驱动器固件的版本是复杂的,因为他们并不遵循严格的版本号规
则,很多不兼容的固件版本拥有相同的识别标签。兼容性问题也可能由存储在固件微代码中
的磁头读/写校正参数不同引起。尽管如此,即使不能保证100%兼容,还是可以通过下面的
规则来确定固件版本:
1.简写 MODEL+HDA+PCB+UNIQUE,例:2B020H1110500。
2.标志字母,由逗号隔开,例:K,M,B,E。
3.在IDE 接口的大写标签,例如A4FBA。
Maxtor 驱动器中的模块分布不包括名字,尽管其中一些模块确实有名字。他们的名字
包含在头里。因此如果不读内容就不可能知道他们的名字。但是可以给他们编号。也就是所
谓的位置码(以下称为PN),可以方便的识别特定模块的功用。参看表2。
每个磁头都有一份固件的拷贝。他们是通过“高级”UBA 寻址方法来复制的。缺省情况
下驱动器可以使用所有的固件拷贝工作,驱动器有这种能力。读和写固件组可以作为一种访
问固件区的方法。
由“检测固件”命令(5.2.2.2)生成的报告包含以下信息:
...........................................................................
........
.一般信息
此部分显示驱动器所属系列,还有用户数据区的最小和最大柱面。
.磁盘配置模块
此部分包括驱动器参数:读/写磁头的数量和他们与前置放大器/连接器芯片的连接情
况。
.区表(Zone table)
驱动器中density zone(磁密度区)的物理位置
.数据模块
包含:
-数据模块数
-PN--模块的位置号码
-模块起始UBA 地址
-模块长度
-可读标记“Rd”,如读成功则标记为“V”,读失败则标记为“-”;
-“ChkSum”标记,校验和正确标记为“V”,错误标记为“-”;
-“Id” 识别字串,以“*”开头表示此模块是一个表格并且用一行来标识这个表
格;如果模块数据正确而且头可识,则以“V”开始;如果数据头错误则以“-”开始后面,
并跟有一行从模块中实际读出的头;
-结论,确定模块状态
.可加载的ROM
包含起始UBA 地址,ROM 版本,标识字符,可读状态和校验和。请注意可靠的ROM 版本
标识也许只有校验和。实践证明ROM 中标记为同一版本的固件实际上是不同版本。如果不同
驱动器上ROM 的校验和相同,则表明这些驱动器使用的是相同的微程序。
.Overlays
包括:
-Overlays 的数量
-Overlays 的起始UBA 地址
-可读标记“Rd”,“V”表示成功“-”表示有一个模块不可读;
-“Id”可识标记,“V”表示标识符匹配,“-”表示不匹配;
-“ChkSum”标记,“V”表示校验和正确,“-”表示错误;
.G 表
G 表状态
.密码
查看驱动器的密码设置
Maxtor 驱动器的表面检测
8.1.固件区的表面检测
固件区状况可以使用:SA表面检测(参见5.2.2.2)命令来检查。检测以UBA寻址方式进
行。新发现的缺陷扇区显示在报告中。只有存储有模块的区域才会进行检测。
8.2.逻辑扫描(Logical scanning)
“逻辑扫描”命令利用逻辑参数对硬盘表面进行测试(5.2.1)。
逻辑参数:
##################################
逻辑参数:
##################################
初始LBA 位置: 0
结束LBA 位置: xxxxxxx
反向扫描: No
次数(Number of passes): 3
执行写测试: No
执行读验证: Yes
将缺陷写入: P 表
##################################
“初始LBA 位置”和“结束LBA 位置”两个参数限定测试范围。
“反向扫描”设定扫描方向。用[Y](Yes)键和[No](NO)或[Space]键切换。前向读数
据通常比反向读数据快。
“次数(Number of passes)”设定扫描次数。设定范围为1 到100。
“执行写测试”和“执行读验证”可以提高测试质量,但是增加耗时。用[Y](Yes)键和
[No](NO)或[Space]键切换。表面测试基于一个算法--已经探测到的缺陷在以后的测试中不
会再被扫描。当磁盘上有很多缺陷时就会大大增加用时--请牢记这一点。
“将缺陷写入P 表或G 表” 用[Space]键切换。
按照以上内容完成表面扫描以后,发现的逻辑缺陷就会以LBA 地址显示在屏幕上。按
[Enter]键把所有的逻辑缺陷转换成物理缺陷显示在屏幕上;再按一次[Enter]键把所有缺陷
写进缺陷表。
8.3.调整缺陷表(Relocation of defects)
程序可以把缺陷写进用户自定义的G 表或工厂定义的P 表。
可以使用“查看P表”(5.2.4)命令来检查P表中的缺陷记录。缺陷记录从pivot表(PN=33H)
提取,而不是从各自的译码表重建缺陷表。这就意味着如果译码表被别的驱动器上的所覆盖,
使用“查看P表”显示的仍然是与覆盖之前相同的列表;因此此时缺陷表就与实际不符。当 模
块PN=33H被覆盖时也会产生同样的矛盾。 尽管如此,PC3000 仍然可以修复缺陷表和pivot表。
有些Maxtor 驱动器在固件区存在缺陷。在这种情况下无法重设缺陷表,因为本软件不能
将固件区的缺陷添加到缺陷表。
可以使用“查看G 表”命令来检查G 表的缺陷记录。
使用“逻辑扫描”命令或者“Defectoscop(探伤器)”程序来搜索缺陷。发现的缺陷可
以写到P 表或G 表。
Maxtor 驱动器允许把这个磁道或者一些磁道作为记录到缺陷表中,也就是说,可以把一
些连续的扇区作为整体添加到缺陷表,以节省缺陷表空间。这一过程由驱动器自动完成。
Maxtor 驱动器自动的把缺陷扇区写进G 表,“缺陷表操作”-->“将G 表记录写入P 表”
命令把缺陷扇区写入P 表,同时清空G 表。这一过程由驱动器自主完成,PC-3000 只是发出
命令,因此如果有出错,那么意味着G 表中的记录无法写入P 表。
8.4.驱动器自检
这个版本的PC-3000 可以运行Maxtor DSP 系列驱动器的工厂自测程序;在Poker 和
Ardent 系列上尚没有实现这一功能。自测程序可以重新生成校正参数,将缺陷扇区写进缺陷
表,将S.M.A.R.T 属性恢复到出厂默认值。
使用“SelfScan”(5.2.5)命令切换到自检模式,之后有一个30 秒的暂停(机箱面板上
的硬盘LED将以2Hz的频率闪烁来指示这一进程)。在30 秒之内可以终止执行这一命令。
当自测进行时机箱面板上的硬盘LED 将以各种频率闪烁。
PC-3000 可以使用“查看SelfScan 状态”命令使软件显示正在进行的自测进程。从显示
屏可以看到:测试数,柱面,等等。但是要注意,当自测正在进行时运行其他程序会使自测
失败。
我们建议可以使用两种方法来查看自测进程,不论驱动器连接在PC 上,或者没有连接到
PC 而使用了单独的电源。
1. 使进程可见步骤
-“自检”-->“开始SelfScan”
-不退出程序也不中断IDE 连接,关闭电源再打开
-运行“查看SelfScan 状态”,然后自测进程就会显示在屏幕上。
2.使用单独电源,不连接到PC 自测步骤
-“自检”-->“开始SelfScan”
-中断驱动器的连接并把它连到单独的电源上
-由于Maxtor 的PCB 上没有LED,你可以如图一所示连接一个LED
我们实验了预先重置缺陷表和不重置缺陷表两种条件下自测完成的成功率,建议在运
行自测之前清除缺陷表。
如果自测成功完成,LED 会以1Hz 的频率闪烁;失败或因故退出测试进程LED 会以更
快的频率闪烁--大约10Hz。如果驱动器在自测进程中挂起,那么会表现为状态长时间没有改
变(例如,半个小时),或LED 没有指示。在这种情况下,LED 会长亮或长灭而不是闪烁。
警告!如果自检因为致命的错误而中止,固件区很可能会损坏(基本模块丢失),因此必须
在开始自测之前备份固件区。
警告!如果通过加载LDR 文件而启动驱动器那么无法进行自测。
警告!自测时硬盘上的所有数据都会被破坏。