ROM编程器工具使用说明

 

 

 

本文档来源于MRT固件实验室

更多信息请访问我们的网站 http://www.mrtlab.com

 

 

 

 

 

 

 

 

 

 

 

MRT提供的ROM编程器工具可以对硬盘的ROM芯片进行读取和编程操作,并且不仅仅限于硬盘,凡是符合SPI接口的ROM芯片,包括电脑主板BIOS芯片,都可以使用MRT编程器工具进行刷写,可以用于硬盘ROM刷坏,或者主板BIOS刷坏等情况的修复。ROM编程器工具作为MRT工具附件的一部分,帮助用户节省了单独购买编程器的费用。

ROM编程器工具支持所有符合SPI通信接口规范的FLASH芯片,目前市面上大多数硬盘的ROM芯片、主板的BIOS芯片、各种PCI扩展卡的Option ROM芯片、以及各种电子数码产品的ROM芯片,大多数采用的芯片都是符合SPI接口规范的,因此均可用MRT编程器工具进行刷写。要识别符合SPI接口的芯片很容易,它们一般是有8个引脚,因此很容易分辨出来。

 

硬件连接:

要使用ROM编程器工具,首先需要正确连接好硬件。ROM编程器工具需要配合MRT编程器座附件方可使用。

编程器座附件如图所示:

 

要编程的ROM芯片就用镊子放入箭头所指的位置。注意,ROM芯片放入时是有方向的,ROM芯片的缺口处应该与编程器座上面图示的缺口处一致,否则就是放反了。编程器座上面有电源指示灯(绿色),数据读写灯和短路保护警告灯。使用时通过观察这些指示灯,可以了解编程器当前的状态。

编程器座还需要与MRT硬件卡连接起来才能使用。将附件中的连接线的一端连接到编程器座的插口,连接线的另一端连接到MRT硬件卡上对应的插口,然后将MRT硬件卡插入主机的PCIE插槽,就可以使用了。

注意:连接MRT硬件卡和编程器座的连接线使用的是小插口而不是连接USB终端串口的那种大插口,请不要混用。

 

编程器座与MRT硬件卡的连接示意图如下:

 

连接示意图2

 

连接好后,将MRT硬件卡插入主机PCIE插槽,即可开始使用。

 

软件使用说明:

启动MRT主程序,ROM编程器工具在“常规通用功能”分类下面,如图所示:

 

 

点击进入后,会首先进入芯片型号选择对话框:

 

 

选择一个型号,然后点击确定即可进入。如果面板上没有列出您的芯片型号,可以选择“其它通用芯片”进入。

 

进入后,看到如图信息,即表示编程器工具已经初始化完毕。下面是编程器工具的界面。

 

编程器工具的界面与其它工厂模块的界面和操作方式是类似的,因此可以参考其它模块的操作技巧。在左上角的主工具栏上面有电源开关,可以通过它打开或者关闭编程器座上面的电源。电源打开时,编程器座上面的电源指示灯会亮起。

 

设置通信速率:

在开始使用前,可以先设置SPI接口的通信速率,通信速率决定了读写ROM芯片时的速度。在菜单中点击 配置 -> 通信速率 可以打开通信速率设置对话框。

 

通信速率对话框如图所示:

 

通过拖动拉杆条可以改变速率,左边最快,右边最慢,设置完毕通信速率后,点击“确定”按钮即可生效。

 

参数设置:

点击菜单的 配置 -> 参数设置 可以打开参数设置对话框,如图所示:

 

对于等待超时时间的设置,是指当读写ROM芯片时,如果没有响应,等待多长时间会超时退出。一般保持默认值3000毫秒即可。这个设置还会影响到“暂停任务”功能。点击主工具条上的“暂停任务”按钮可以暂停当前执行的任务,比如ROM芯片的读写。当用户再点击一次该按钮即可恢复该任务的执行。用户暂停任务的时间不能超过这里设置的等待超时时间,否则在恢复任务的时候就会因为超时而退出。

 

读取芯片:

要将ROM芯片里面的内容读取出来,并保存到文件,请使用“读取芯片”功能。在主菜单选择“工具 -> 读取芯片”即可。

 

在第一次进入时会出现“新建文件夹”对话框,如图所示:

 

这个对话框跟其它工厂模块的该对话框作用是一致的。有时候,我们希望建立一个工作目录,将这段时间读写的所有ROM芯片的数据保存到同一个文件夹,这就是建立工作目录的作用。在“新建文件夹”对话框中输入您想建立的工作文件夹名称(默认用日期作为名称),然后点击确定,这样,工作文件夹就建立了,后面备份的所有ROM数据默认都会存放在工作文件夹中。

注意:要打开当前的工作文件夹,请在主菜单中选择“工具 -> 打开当前工作文件夹”。

在读取芯片时,建立工作文件夹后,会随之弹出芯片大小选择对话框,如图所示:

 

这个对话框的作用是让用户选择要读取的芯片范围。默认是从起始字节0处开始读取,用户也可以改成从后面的某个偏移量开始去读。默认的芯片大小是512KB,也就是读取524288字节。用户需要选择当前操作的ROM芯片的实际容量。如果读取的大小超过了芯片的实际容量,编程器工具会循环读取,也就是超过部分读取到的数据就是芯片最前面地址的数据。如果用户不清楚当前芯片的实际容量,可以选择不同的容量多读几次试试,如果发现从什么地方数据开始循环了,那么这之前的大小就是芯片的实际容量。

确定芯片大小后,会弹出“另存为”对话框,默认是保存在当前工作路径。用户键入一个文件名然后确定,就会开始读取ROM芯片,读取的数据最后会保存到用户指定的文件中。

 

写入芯片:

要刷写ROM芯片,请选择主菜单的“工具 -> 写入芯片”。用户选择一个文件后,即可开始写入。用户选择的文件中的数据会被原样写入到ROM芯片中,写入的起始地址是ROM芯片的第0字节偏移,写入的大小就是用户选择的文件的大小。注意:写入操作会首先擦除整个芯片,无论写入的文件是多大,ROM芯片原来的数据都会全部丢失。

 

芯片扇区擦除:

如果只想擦除芯片指定部分的数据,而不是擦除整个芯片,可以使用扇区擦除功能,它只会将指定扇区的数据擦除。选择主菜单的“工具 -> 芯片扇区擦除”即可打开。如图所示:

 

用户需要填写要擦除的起始扇区号和要连续擦除的扇区数。注意这里的单位是扇区而不再是字节。不同芯片规定的扇区大小和扇区擦除指令是不一样的,所以这里的“每扇区字节数”和“扇区擦除指令码”也需要用户填写,不过我们准备了默认值,在型号中选择一个型号,就会填写对应的扇区字节数和指令码的默认值,不过如果是对话框中没有列出的型号,那么就需要用户参阅该芯片的手册自行填写,或者使用默认值试试。注意,这里的 起始扇区号 × 每扇区字节数 = 起始的字节偏移,要擦除的扇区数 × 每扇区字节数 = 要擦除的字节数。用此公式可以计算要擦除的扇区地址。

 

芯片整体擦除:

用于擦除芯片的所有数据,擦除后芯片所有数据变成FF,可以写入新的数据。一般来说,写入操作只能将数据位1变成0,而擦除操作正好相反,是将0变成1。所以要写入新数据,必须先将要写入的地方都擦除为FF(即二进制位全1),如果写入前没有执行擦除操作,那么根据原始数据位的情况,新写入的数据可能就会缺位,这是因为写入操作只能将1变成0,已经是0的位无法变成1,需要先借助擦除操作来实现。如果用户需要写入部分数据,而不想破坏其它区域的数据,可以借助“扇区擦除”和“芯片数据查看器”两个工具来实现。“芯片数据查看器”提供了不擦除而直接写入的这个选项。

 

芯片数据查看器:

在菜单栏选择“工具 -> 芯片数据查看器”可以打开该工具。该工具会将芯片的数据读出并直接显示在十六进制编辑器中,而不是保存到文件中。用户可以在十六进制编辑器中查看和编辑数据,编辑完毕后,可以直接写入芯片。

下面是芯片数据查看器的图示:

 

 

该工具在打开时需要用户填写读取的起始地址,在写入时,也会写入到用户先前输入的起始地址中去。写入时,用户可以选择写入前擦除或者不擦除芯片,选择不擦除时,芯片原始的数据将可能被保留,并与新写入的数据混合在一起。用户可以选择工具栏上的“保存到文件”按钮,将十六进制编辑器中当前的数据保存到文件,也可以从文件中载入数据到十六进制编辑器,然后,再写入芯片。

 

其它说明:

用户可以中途更换ROM芯片,更换芯片前应关闭编程器座的电源,更换完毕后再重新打开电源。中途更换ROM芯片不需要退出程序,更换完毕后即刻生效。

在进行ROM芯片的写入或者擦除操作时,请一定不要中途关闭电源,否则可能导致芯片损坏。并且,在进行写入或擦除操作时,编程器座上一定要正确连接好ROM芯片,如果连接不正确或者没有连接ROM芯片,刷写时可能会导致ROM芯片或者MRT硬件卡的损坏。