zhaodll 发表于 2014-12-5 16:11:31

学习另类维修BIOS


           另类维修BIOS
  有天,朋友来电话,告诉他单位的小局域网因为频繁停电损坏了三块主板,向我求救。于是我马上出动,到达现场后,采用替换法检查,发现主板的BIOS出现了问题无法正常开机。用热插拔法修复无效,断定是BIOS 芯片物理损坏。
  朋友使用的主板是品牌机整合主板,CPU是P120(够老的),主板BIOS 芯片为Intel的P28F002BX芯片,是2Mbit的芯片。用编程器测试,发现三片芯片均有不同程度的损坏,已不能使用。由于这种芯片现在早已找不到了,因此只能采用手头上现有的Winbond的29C020代用。用编程器把好芯片的数据读出,然后分别写到三片AT29C020中。没想到,当把写好的芯片插到主板上后,通电开机却没有反应,修复没有成功。
  28F002BX是Intel推出的第一代可擦除BIOS芯片,它的内部数据结构是分块的(如图所示)。其中的BOOT BLOCK块是存储BIOS基本启动信息的,它支持ISA形式的显卡,当BIOS升级失败后,可以从BOOT BLOCK启动并修复BIOS,这种设计思路被BIOS刷新程序采用并一直延续到今。在擦除时,28F001是以Byte为最小修改单位的;在写入数据时,芯片上要加上一定的编程电压,并且BOOT BLOCK块内数据的擦除要加上特定的删除电压。
  29C020是Flash ROM(快闪ROM),属于单电压芯片。Flash ROM和EEPROM芯片最大的区别是,在删除数据时,不需加特定的编程电压。另外,Flash ROM在删除资料时,并非以Byte为基本单位,而是以Sector(又称Block)为最小单位。Sector的大小随厂商的不同而有所不同,只有在写入时,才以Byte为最小单位写入。
  以往主板上用的还有27系列的芯片。27系列的芯片属于EPROM,其内的资料是用EPROM擦除器(EPROM Eraser)发出的紫外线照射来擦除的,并且要用专用的编程器才可以把资料重新再写入,往芯片中写内容时也必须要加一定的编程电压。
  在主板上,BIOS芯片平时只处于读数据的状态,从原理上分析,27、28、29系列的芯片是可以代用的,如果不考虑升级的因素,三者是兼容的。因此我怀疑,问题可能是属于主板太老,不支持按页刷新的芯片,亦即老主板与新型芯片“门不当,户不对”。找来一片28F020(也是老古董啦,现在市面上基本已找不到了),在编程器上刷入程序,插到主板上,开机恢复正常,证实了自己的猜测。为了进一步证实上述分析的正确性,用一片27C020写入程序,插入主板上BIOS插座后,通电开机,机器也能正常工作,由此说明此主板的确不支持新式的芯片。
  尽管从理论上讲,27、28、29系列的芯片是可以代用的。但实际应用中要注意,有些主板可能由于设计方面的原因,对有些类型的芯片可能不能很好地支持,若遇到这种情况,可以找不同类型的芯片多试几次。
页: [1]
查看完整版本: 学习另类维修BIOS