当你升级BIOS时,"铛",你可能会"幸运地"遇上断电,这时BIOS文件还没有完全写完,此后再开机,屏幕上将没有任何反应,预示你此次升级完全失败。另外升级文件与主板不匹配、升级文件被修改过,也会导致BIOS升级失败。更何况,还有恼人的CIH病毒,也会时时成为BIOS的杀手。
BIOS损坏,对于手中有编程器的用户这也不成为什么问题,因为BIOS升级失败,并非BIOS芯片物理损坏,用编程器把BIOS的firmware重新写入,就可以很容易地修复已损坏的BIOS。编程器是利用EPROM/EEPROM芯片本身在一定电压条件下,可反复写入Firmware的物理特性,将BIOS代码文件重新固化到BIOS芯片中的。市场上可以找到你的编程器种类较多,不过,兼价的编程器一般都只能对某一类型或容量的ROM芯片进行读写,如有些只能对27系列的EPROM芯片读写,也有些编程器只能对28、29系列的EEPROM进行读写操作;还有些编程器只能对1MB以下的ROM芯片进行读写,而另一些能对2MB以上的进行读写。专用的编程器可以操作的芯片种类较多,并且通过软件升级,可以很容易地支持厂家新出品的芯片类型。这些编程器一般是用电缆数据线把编程器和PC机的并口或串口相联,在PC机上,用专用的软件控制ROM芯片的编程和读写操作。另外这类编程器一般都有单独的电源供给,安装、使用稍麻烦,价格一般也较高,作为不常写芯片的DIYer来说,拥有没有必要。
BIOS编程卡是市场上最近新出的一种内置插卡式的编程器。该编程器其实只是一种8bit的标准的ISA卡,它可以插入电脑的任何一个ISA插槽中,在该卡上,有一个DIP32形式的FLASH ROM插座,可以对1~4M的FLASH ROM芯片编程,适用于AMD、INTEL、SST或WINBOND出品的芯片。和其它扩展卡一样,该控制卡需要独占一个I/O地址,以避免和系统内的其它设备发生冲突,为此,该卡上提供了一组DIP开关A2~A8,用以设定该卡的I/O地址,可设定的I/O地址见表1。由于是标准的ISA接口,该卡要占用2K的上位内存,为了避免与其它的扩展卡冲突,该卡提供了6个可选的上位内存地址,用J1~J3设定,相对应的地址范围见表2,默认的上位内存范围为C8000-C87FF,因此,启动机器时,不要启动内存管理程序HIMEM.SYS和EMM386.EXE。由于该内置编程卡只是一个简单的8bit ISA插卡,没有后挡板。为了防止该卡插错方向导致烧毁主板或自身,在卡上标注有正确的安装方向,按箭头指示将卡正确插入主板上任一ISA插槽,设定好I/O地址口和占据的上位地址范围,即完成了硬件安装。
由于现在主板上的EPROM芯片用的已经比较少了,因此,该编程器不支持EPROM,只支持EEPROM芯片。目前主板上常用的EEPROM芯片主要有三类,一类是以Intel的28系列部分芯片和Winbond的29E系列芯片为代表的分块式的EEPROM,其BOOT BLOCK必须VPP=12V、PR#=12V才能编程,从而有效保护BIOS启动区(如果这块信息没丢失,则有的机子升级失败后用ISA显卡仍能显示);第二类是工业上常用的以INTEL为代表的另一类28F系列的芯片,该系列芯片的第1脚要加VPP(+12V)编程电压才能写片。由此可见,以上两类EEPROM芯片是双电压设计的,它可以在+5V的电压下正常读取,但写入时必须提供+12V的电压;第三类是单电压的EEPROM芯片,即我们所称的FLASH ROM芯片,这类芯片为单电压设计芯片,读写都是在单电压下进行的。因此,为了兼容不同类型的芯片,该卡上还有一个跳线,用以设定芯片的编程电压(如28F020需12V的编程电压,29C020则不需要)。
对芯片进行编程时,需要把计算机关闭,把需要编程的芯片插入编程卡上的DIP插座内。插入时要注意ROM芯片的一端有一个半圆形的凹口,在插入ROM芯片时,必须保证这个凹口方向和编程卡上标注的凹口方向一致,否则会导致芯片损坏。另外,还要根据芯片的类型设置好编程电压,才能通电。
编程卡是在程序的控制下对芯片进行操作的,为此,随卡提供了一个ctflash编程操作软件,现在用的是1.6版本,该软件是用在DOS状态下运行的,其格式为:
CTFLASH I/O R/W Filename [/M] [/N:E]
其中参数的含义如下:I/O为卡上设定的I/O地址,用16进制表示,默认的地址口为340h,R/W参数用来设定是读入数据(R)还是写入数据(W),Filename参数是要写入或保存的文件名,要注意的是,CTFLASH只能识别二进制格式的文件,文件的扩展名为Bin,对于Intel的Hex格式或Motorola的Hex-S格式的文件,需要用相应的转换软件转换才能被程序识别。最后一个参数是用来设定软件运行方式的,E参数是用命令行方式,N参数是采用菜单方式。
如:我们敲入命令:CTFLASH 340 R C:BIOS.BIN/E,意思是把编程卡上的ROM中的数据读出来,读出的数据保存在C:盘下的BIOS.BIN文件中,设定的I/O口为340h。
CTFLASH软件是自动识别芯片类型的,表3是1.6版本的CTFLASH支持的芯片的种类。如果软件不能正常运行,说明该芯片的类型程序不能自动识别出来,这时需要加上/M参数,就可以从程序列出的名单中,选择相兼容的芯片,以确保读写操作正常进行。如在菜单中找不到同公司、同型号选项,也可用其它公司同型号的产品代替,但型号必须完全相同,否则也可能性烧毁芯片。选定ROM型号后,在屏幕上会出现该ROM的一些基本数据。如果刚才选择ROM芯片的类型正确,编程器此时就会把该ROM的数据读入电脑的内存中。
当芯片中的数据受损后,我们可以敲入命令:CTFLASH 340 W C:BIOS.BIN,把保存在C:盘下的BIOS.BIN写入芯片中,从而方便地修复芯片。当然我们也可以直接把从网上下载的升级文件直接写入到芯片中,因为下载的扩展名为Bin升级文件,其格式就是二进制格式的。
BIOS编程卡编程卡对系统的要求相当低,我曾把它用在一台286机器上,也可以很好地运行,只是速度稍慢。当然,该编程卡只是一块初级的编程卡,由于价格方面的原因,它有许多缺陷,如:必须在纯DOS界面下操作,操作界面不直观;尽管支持的芯片类型囊括了常见的ROM芯片类型,但仍可能不支持新出的ROM型号(升级操作软件可以解决这个问题);芯片的插拔不方便,要拔下芯片时,需要用专用工具,换用无插拔力的ZIP插座比较好。尽管有以上种种使用不便,但一块只有百元左右的编程卡,我们还能对它要求什么呢?对于经常升级BIOS的用户而言,它还有具有一定的吸收力的。
对于PLCC封装的四方ROM芯片,无法直接在该卡上使用,但我们可以利用一个PLCC-DIP转换插座,通过该转换插座对PLCC封装的芯片操作。关于BIOS编程卡卡的更详细的信息,我把它放在"BIOS专页"上,感兴趣的朋友可以访问bios.533.net。
表1
I/O口地址 | A8 | A7 | A6 |
300...303h | On | - | - |
320...323h | On | - | On |
340...343h | On | On | - |
360...363h | On | On | On |
表2
地址范围 | J1 | J2 | J3 |
C8000...C87FF | Off | On | Off |
CC000...CC7FF | Off | On | On |
D0000...D07FF | On | Off | Off |
D4000...D47FF | On | Off | On |
D8000...D87FF | On | On | Off |
DC000...DC7FF | On | On | On |
表3
厂家 | 芯片种类 |
AMD | Am29F010/002/040;Am28F010(A)/020(A)/040 |
ASD | AE29F010A/020/040;AE29F2008 |
Atmel | AT29C010A/020/040;AT49F001/02/04 |
CSI | CAT28F001BX-T/B;CAT28F010/020 |
Intel | i28F001BX-T/B;i28F010/020 |
Macronix | MX28F1000P;MX28F2000P/T;MX29F002(N)T/B |
Mosel-Vitelic | F/V29C51002T/B |
SST | PH29EE010/020;PH28SF040;PH39SF010/020 |
ST Microlec | M28F256(A)/512;M28F101;M29F002T/NT/B |
Winbond | W29EE011;W29C010/020/040 |
网友评论