工作需要,在网上查了些资料,与大家分享一下···
我也不是很懂···
“BIOS刷新”并不陌生,因为通过“刷新BIOS”不但可以增加新功能,而且可以解决一些兼容上的问题。但是我们在刷新的过程中,有时会出现一些这样、那样的问题,而使刷新失败。那么是什么原因造成刷新失败呢?其实如果你了解一下BIOS的刷新过程,将解开这些疑问。 要将BIOS文件写入到BIOS芯片中,要涉及到:BIOS文件、BIOS芯片以及BIOS刷新程序。因此我们就从这三方面做一下详细介绍。(主要介绍BIOS芯片,因为了解了BIOS芯片,也就明白了刷新的过程)
BIOS从类型上可分为:AWARD BIOS、AMI BIOS、Phoenix BIOS。三种BIOS各有各的特点(我们这里不详细说明),但是无论是那一类型的BIOS,都是给
系统硬件提供最低层、最直接的驱动。BIOS文件是一个压缩的二进制文件(以AWARD BIOS为例,AMIBIOS的原理与其是一致的,有些地方甚至完全一致。如其两种BIOS文件的BOOT块起始地址,1M文件都从1E000H处开始,2M文件从3E000H处开始),大体可分为三部分,一部分称为SYSTEM BIOS,是系统中最基本的部分,文件名一般为Original.tmp,所有的BIOS都有这一部分,其中包含有基本的BIOS程序、提示信息及指令等;其实这一部分同时也是解压缩程序,在这以后的各模块主要是靠此部分来解压缩的;同时在其中定义了文件的寻址空间。我们用MODBIN程序打开一个BIOS文件时,其临时文件即为SYSTEM BIOS模块,大小为128K(平时,我们修改BIOS中的内容,主要是修改这部分)。第二部分为扩展BIOS程序,是各个厂商自己定制的不同于标准Award BIOS的功能,实际上几乎所有的厂商都会增加这一部分内容;然后是CPU微代码、ACPI等模块,我们可以在这其间加入其它模块(如捷波恢复精灵);第三部分为BOOT BLOCK块,这也是BIOS文件中唯一没有被压缩的模块,因其支持ISA显卡和软驱,因此当BIOS被破坏后,我们可以利用这一部分来启动机器并重新恢复。BIOS文件一般有1M(128KB*8)、2M(256KB*)、4M(512K*8)之分。1Mbit=8*128Kbyte(1Byte=8bit)
BIOS芯片,其实就是BIOS文件的载体。BIOS文件存储在芯片中,通过芯片的外部接口可对芯片中的程序进行擦除和读写。BIOS芯片我们可以理解为一个有多个单元的楼房(芯片的存储单元),每一个单元存储一个二进制代码(0或1)。二进制的BIOS文件,就是这样一一按顺序排列存储在芯片中的。BIOS芯片根据存储原理和工艺,可以分为EPROM、EEPROM、FLASHROM等。EPROM是非易失型存储器
具有掉电不丢失的特性;其存储单元由浮栅型场效应管构成,利用高压使浮栅带电实现对芯片的写入,擦除内部数据靠紫外线消除浮栅上的电荷,使其不带电。EPROM工作电压为5V,在写入时要用专用的编程器,并且写入时必须要加一定的编程电压(VPP=12-24V,随不同的芯片型号而定),EPROM的型号是以27开头(如ATMEL27C020)。
EEPROM是电擦除非易失型存储器,其存储单元也是由浮栅型场效应管构成,写入时,利用高压下的隧道效应,令浮栅带电;擦除时,仍是利用高压下的隧道效应,不过电压极性相反,因此令浮栅不带电。EEPROM工作电压为5V,在写入时,需要加上一定的编程电压(VPP=12V),EERPROM的型号以28开头(如AM28F020)。
FLASH ROM也是电擦除非易失型存储器(快擦写存储芯片),其也是浮栅型场效应管构成,写入时,利用热电子注入,使浮栅带电;擦除时,则利用高压下的隧道效应,使浮栅失去电子。FLASH ROM的工作和刷新电压都是5V,其型号一般为29、39、49开头(如SST 39SF020)。目前主板上的BIOS芯片,基本上都属于FLASH ROM。 BIOS芯片有三种基本操作:读取、擦除、编程。要了解以上操作过程,首先了解一下芯片的结构。芯片(存储器)外部接口(引脚)可分为:数据线、地址线、控制线、电源线(图九)。地址线用来确定数据所在的地址,数据线用来输入和输出数据。控制线包括CE、OE、WE;CE是片选信号,当CE为低电平时,芯片被选中(也就是可以对芯片进行任何操作,对于多BIOS芯片串联使用时,可以用CE来选择要操作的芯片是那一片,如RD2000双BIOS系统即为用CE来切换两个BIOS芯片的,通常主板上为单BIOS芯片,因此CE始终为低电平,也就是一直为选中);OE是输出允许,也是低电平时有效,当OE为低电平时,允许数据输出,也就是可以读取芯片中的内容,当OE是高电平时,输出被禁止,无法读取内容;WE为编程允许,也是低电平有效,当WE为低电平时可以对芯片进行编程(写入),当WE为高电平时不能对芯片进行编程(我们可将此脚接为高电平,那么芯片就无法写入,无敌锁即是将此脚升为高电平,来保护芯片的)。对于EEPROM不需要擦除,可以直接进行编程操作,对于FLASH ROM,需要先擦除芯片内的内容,然后才可以写入新的内容。电原线包括VCC、VPP、PR.。VCC为5V工作电源,VPP为28系列写入时12V电源(29系列此脚为NC,即为空脚),PR则是28系列分块式BIOS,对BOOT BLOCK块进行编写的12V电源。芯片无论是读取、擦除还是编程,都需要各种信号按一定的时序、一定的电平相互配合才能完成,控制信号时序是由编程程序来完成的。完成这段时序的过程,也称为刷新流程(其也是一段程序码,由生产厂家提供,同型号的芯片,虽然生产厂家不同,但是其刷新流程是一致的);不同的芯片,其控制时序也是不同的,因此编程程序也会根据芯片的型号进行相应的控制。
不同芯片,其控制时序不同,编程程序会根据芯片的型号进行相应的控制,刷新程序是如何识别芯片的型号呢?其实,每一种芯片,都有自己的标识,这就是芯片ID(也称为芯片的身份证),由于不同的芯片,有不同的ID,因此刷新程序就是通过读取芯片的ID,来分辨不同的芯片,同时根据其芯片ID来调用不同的刷新流程代码(控制程序),来完成对芯片的编程的。
看到这里,我们已经大致明白了刷新是如何进行的。接着我们继续了解刷新程序是如何对芯片进行刷写的。当我们运行刷新程序时(以AWDFLASH为例),刷新程序启动后,直接检测BIOS ID(此为BIOS文件的ID);此时在程序顶端显示BIOS的ID以及BIOS日期,但芯片类型没有显示(由于此时刷新程序是调入内存中的BIOS映象,并没有对BIOS芯片进行操作)(图十);同时提示让你输入即将刷新的BIOS文件名(在这里强调一下,不少网友询问,下载的BIOS文件扩展名不是bin等规则扩展名,如123等。其实BIOS文件只是一个二进制文件,所以无论什么样的扩展名,只要按其文件的文件名和扩展名完整输入即可),当我们输入BIOS文件的路径及文件名回车后,此时刷新程序检测BIOS芯片的CE脚是否为低电平,如是低电平,则为芯片被选中,接着检测芯片的ID,然后根据BIOS ID在程序的上端(Flash Type)显示对应的BIOS芯片的型号,同时调用其对应的刷新流程代码(这时即可对BIOS芯片进行读写编程了)。如果刷新程序无法读取芯片的ID,由在(Flash Type)显示Unknown Flash,这时我们是无法对BIOS芯片进行读写编程的
(造成的原因可能是BIOS芯片已经损坏,同时如刷新程序无法调入相应的刷新流程代码,则系统会没有任何提示,而退出,这主要是由于刷新程序版本太高或太低的缘故,此时你可更换其它版本的刷新程序)。如果正常系统将继续进行,提示是否保存原BIOS,如按保存,则系统根据上步检测到的BIOS ID,调入其对应芯片的刷新流程代码,检测OE脚是否为低电平,如是低电平,则处理器按芯片的刷新流程通过A0~A17地址线确定芯片存储单元的读出地址,然后再通过D0~D7数据线将指定地址的数据从芯片中读出(一次读取8位二进制代码),并按你输入的文件名,保存为文件。如果我们不保存文件,而直接选择写入,首先,系统要将我们即将写入的BIOS文件与内存中的映象文件进行ID对比(此为BIOS文件ID,这也是为什么我们用普通修改工具无法修改ID的原因),如不一致,则提示The Program Files Part Number doesn't match with your system,如出现这种提示,我们不应强制写入;如一致则处理器按芯片的刷新流程通过A0~A17地址线确定芯片存储单元的写入地址,然后再通过D0~D7数据线将更新的BIOS文件写入到芯片的存储单元中。正常写入后,系统将提示重启或回到操作系统,我们可以自己选择,至此刷新过程完成。 现在我们了解了BIOS芯片的刷新过程,以后在刷新过程中再有什么错误出现,我们就可以清楚知道问题及原因所在了吧!
笔者注:虽然BIOS芯片的控制线CE、OE、WE有高低电平之分,但在正常情况下都是低电平,也就是可以随时对芯片进行编程操作。上面我们所说的,刷新程序编程时对芯片的控制脚进行检测,只是让大家明白刷新程序是依据芯片的刷新流程来进行读、写操作。这就是为什么CIH病毒可以对芯片中的内容进行破坏的原因。不过,我们可以人为的将WE脚拉到高电平,就是先切断31脚(WE)与主板的连接,然后和32脚(VCC)之间焊接一个1K的电阻,这样就将WE升为高电平,不能再对芯片写入。
下面就举两个BIOS升级的例子:
AWARD Plug-and-Play BIOS升级方法
如果是SOLTEK公司的用户,在主板出货光碟上就有写BIOS的程序----Awdflash.exe,其在光碟上的路径为:\Utility\Awdflash.exe(或者可以在我们公司网站程序下载中下载最新版本),AWARD BIOS程序都是以“.bin”为扩展名的文件,SOLTEK公司在公司主页上随时为您提供各款主板最新BIOS程序,直接下载就可以了。具体BIOS刷新操作方法如下:
1、 刷新BIOS前需要先准备一张DOS启动软盘,制作方法有以下几种:
(a). 可以使用Win98系统格式化一张系统磁盘,在WIN98中点击我的
电脑,在3.5软盘上点击鼠标右键,选择格式化,然后选择仅复制系统文件并格式化即可。
(b). 可以在MS-DOS模式下,在DOS提示符下键入format a:/s格式化一张DOS启动软盘。
2、 DOS启动盘制作完成后您可以将BIOS刷新程序Awdflash.exe,BIOS文件*.bin同时复制到刚刚制作的软盘当中(注意要在同一目录)。然后用该软盘启动DOS,如果是用WIN98/ME的启动盘来升级BIOS,注意当屏幕出现Starting Windows 98......时,按下Shift+F5组合键跳过Config.sys文件的执行。因为在升级BIOS时不能有内存管理程序的执行
3、 启动到DOS后进行BIOS刷新,在DOS提示符下执行 A:\>Awdflash *.bin /cc/cd/cp/sn/py确定后就会自动完成BIOS的刷新操作并重新启动。*.bin为BIOS文件名,需要输入您下载的新版本的BIOS文件名,而且要带.bin的后缀才可以。如果需要备份旧版本的BIOS,可以按以下步骤进行:
键入A:\>Awdflash **.bin /cc/cp/cd之后,(请注意BIOS文件名与参数之间需留有一空格)片刻将会出现图一的界面。
----提示文字 “Do You Want To Save BIOS (Y/N)”。意思是问你是否要将主板上的BIOS程序存盘。如果要存盘就键入“Y”将会提示您想存储的BIOS程序文件名,
输入文件名并回车就会存储文件到软盘上键入回车就退出界面回到提示符状态。如果不存盘健入 “N”就可以见到下面的图示,见图三:
----然后会出现“Are you sure to program (Y/N)”提示,意思是你真的想写程序到BIOS吗,键入“Y”就会写程序到BIOS,(此时一段时间绝对不能断电或停机)约过2秒钟新程序就会写完并出现 “1FFFF OK”等信息,到此BIOS就升级完了。按F1键重新启动,按F10退出返回到DOS状态。如键入“N”就不写程序到BIOS。
AMI Plug-and-Play BIOS升级方法
一、DOS命令模式AMI BIOS刷新方法
1. 制作一张DOS启动盘,只含三个最基本的DOS启动文件即可,将AMI BIOS刷新工具和BIOS文件拷贝到这张软盘上,使用此软盘开引导系统,注意不要加载emm386.exe,qemm.exe,himem.sys等内存驻留程序。
2. 在DOS提示符下键入“AMIFLASH *.ROM”,按“ENTER”键继续。
3. 按屏幕提示开始BIOS刷新,当出现“Flash ROM Update Completed –Pass”提示信息时,表示BIOS已刷新成功。
4. 如果要备份BIOS,请在DOS提示符下键入“AMIFLASH .ROM /S*.ROM”,按“ENTER”键继续即可。
5. 重新启动电脑,在开机时按“DEL“键进入CMOS设置,选择“Load Optimal Defaults”后保存退出。
二、 DOS窗口介面AMI BIOS刷新方法(需较新的AMIFLASH版本才支持此功能,如Ver:843版)
1. 制作一张DOS启动盘,只含三个最基本的DOS启动文件即可,将AMI BIOS刷新工具和BIOS文件拷贝到这张软盘上,使用此软盘开引导系统,注意不要加载emm386.exe,qemm.exe,himem.sys等内存驻留程序。
2. 在DOS提示符下键入AMIFLASH,按“ENTER”键继续。
3. 在出现下图介面后按照屏幕提示输入BIOS文件所在的路径及文件名,然后按“Enter”键确认后刷新BIOS,也可以在“Save”栏内保存当前BIOS,输入要保存的路径及BIOS文件名即可。
4. 按方向键移动窗口左边的状态条到下图窗口,可进行BIOS刷新的一些设置。
5. BIOS刷新完成后,可以按方向键移动窗口左边的状态条到下图窗口,按“Enter”键退回到DOS模式下。
注意:某些AMI BIOS在窗口介面下进行备份或刷新动作时可能会出现问题,在此建议您,如果在窗口介面刷新或备份BIOS失败的话请换用命令方式进行。
AMIBIOS开机画面更改方法
1 在纯粹dos环境中把AMIBCP.exe、S85DRS14.rom(AA1.4)、SOLTEK.pcx一起COPY到新建资料夹
2 执行AMIBCP.exe S85DRS14.rom
3 出现选项→选取Edit Bios Modules→按enter键
4 检视有无33 Full Screen Logo项目,若有delete,没有则不需要delete
5 按insert键→键入SOLTEK.pcx→按enter键
6 出现选项→选取Moduleid=33h(PageUp PageDown键),选取Compressed=Yes
7 按esc键→按enter键→按esc键
8 出现选项→选取Save Bios To File→按enter
9 键入新Bios文件名(如test.rom)→按enter
10 按esc键→按enter键→存档完成→跳出编辑画面回到纯dos环境
11 新数据夹出现newBios(如TEST.ROM)
12 把newBios、AMIBios更新程序、Command开机文件COPY到软盘片
13 重新执行BIOS更新程序
14 完成