minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5444回复:9

BIOS排错十法之比较法

楼主#
更多 发布于:2004-01-15 20:20
二、 比较法
一天刚上班就收到客服部门的投诉邮件,说客户反应我公司的主板兼容性差,质量不如XX公司(我们的行业对手)。心里颇不是滋味,就上门去了解具体情况。一客户买了一块PCI SCSI控制卡,插在我司的主板上则该卡所接硬盘上安装的某个windows 应用软件就不能正常运行,但该卡插在别的主板上就一切OK。而且这里说的别的主板正是行业对手同芯片的主板。做为一个公司的BUG工程师,只有认同此乃BUG并开始努力解之。因为不熟悉此客户应用软件内部机制,又是在运行期间,BIOS本身的运行不见任何异常,真有无从下手的感觉。心里还就是不服,行业对手能够没有此BUG?于是向客户拷来他的BIOS,烧入我司主板,千真成确没有发现故障。于是,想起了比较法。
所谓比较法,就是两个具有可比性的系统,一个已知没有故障,一个已知有故障,通过种种现状、参数的比较,找到故障系统的原因,并排除之。记住,前提是具有可比性,比如使用相同芯片的两个主板。
使用比较法也需要推荐一个工具,(咦,不会是做广告吧),此工具仍网上可下载到的AMI公司的ru.exe,它适用于dos/windows98,windows2000版叫做se.exe。虽然,Award公司也有类似功能的工具软件,但在比较法中,该软件的file->save(F2)功能特别受用。该功能可以将某个PCI设备配置空间、系统所有PCI设备配置空间、你正查看的某段I/O、MEM、SIO、CMOS等等的内容保存至一个文件中。同时,它的另一个功能file->compare (F8)又可以从一个文件中读取其内容与正在查看的内容进行比较,区别显示相同与不同的单元。
介绍完上面ru.exe的两个功能,比较法的具体使用也就相当明了了。就是,将你所怀疑可能会引起故障的一些寄存器、I/O、MEM值从好的系统读取并保存到文件上,拿到故障系统中进行比较,如果有不同,则修改故障系统的值为好系统中对应值。如此逐个比较修改,你很可能幸运的发现故障消失了。(据说概率有70%之高)这是说很可能,是因为不是每个故障都可以修改设备的静态配置就能解决的,有些还是其它原因,还得用后面要介绍的其它排错方法。它的难点是难以找到一个可比较的BIOS。
也有同几点需要在使用比较法给予提醒的:
1、 尽量让硬件平台完全相同。这样,可减少一些不必的干扰。因为,一旦硬件发现改变,自然一些寄存器需要设置不同的值的。如不同的内存条,北桥的很多相关寄存器必须设置不同值。
2、 在修改故障系统的寄存器之前,务必熟读其datasheet,明白修改后可能造成的后果,不要烧了板来找我赔。
3、 经验不同的BIOS工程师所需要比较的工作量不同,一些有经验的工程师很容易知道该比较那些寄存器。给新手提个醒,除了PCI设备配置空间,Super I/O寄存器外别忘了Power Manage I/O寄存器,GPIO控制寄存器等,SiS芯片组还有APC寄存器。
4、 相同的硬件不一定所有寄存器设置相同,有一些寄存器不同的BIOS有不同的值是正常的,如PIRQ就可以因不同厂家的BIOS而不现,还有像Power Manage I/O、GPIO的基地址等。

后面还有:
三、 陷进法
四、 手动法
五、 现场法
六、 Errata法
七、 改道法
八、 保留位试探法
九、 程序法
十、 补丁法

      哇,饿得不行了,先写这么多了。
少了e,就少了全部
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-15 20:26
多年经验发现,比较法特别适用于内存、PCI设备不兼容等故障。另外比较法还可以扩展到相同厂家不同版本芯片间进行比较。
少了e,就少了全部
DavidWang_jimei
驱动牛犊
驱动牛犊
  • 注册日期2003-09-13
  • 最后登录2005-07-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-16 11:00
To:minisoft
请问,阁下是在作AMI的BIOS吧,对RU.exe这么熟悉?
ru.exe在BIOS In Side那本书里有附送,但是网上很少有看到这个软件。
另外,阁下介绍的方法确实很有用处,感谢分享经验。
changjt
驱动牛犊
驱动牛犊
  • 注册日期2002-12-09
  • 最后登录2010-01-27
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-17 00:44
好文章,顶起来,期待后续经验的分享
minisoft以前好像还做过Phoenix的,RU确实是好工具,功能强大,还是正版呢:P不过它的保存功能好像仅限寄存器参数配置,不能把我想要的某段I/O或MEM保存成文件吧?
共享一份RU的manual,这可是BIOS In Side里没有的,给大家补全了吧
附件名称/大小 下载次数 最后更新
2004-01-17_RU.doc (60KB)  58
DavidWang_jimei
驱动牛犊
驱动牛犊
  • 注册日期2003-09-13
  • 最后登录2005-07-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-07 13:32
好文章,顶起来,期待后续经验的分享
minisoft以前好像还做过Phoenix的,RU确实是好工具,功能强大,还是正版呢:P不过它的保存功能好像仅限寄存器参数配置,不能把我想要的某段I/O或MEM保存成文件吧?
共享一份RU的manual,这可是BIOS In Side里没有的,给大家补全了吧

ru可以用来保存memory和IO的值。
changjt
驱动牛犊
驱动牛犊
  • 注册日期2002-12-09
  • 最后登录2010-01-27
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-08 21:45
哦,我又试了一下,原来选那个Register File就可以保存了,这下省了不少事,多谢多谢!
2Bpencil
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2008-10-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-08-20 22:12
多谢提供ru manual
buaawr
驱动牛犊
驱动牛犊
  • 注册日期2004-05-11
  • 最后登录2008-10-16
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望30点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-09-25 16:51
当年,我们的作业是:用汇编写一个RU。我只完成PCI config space功能就坚持不下去了。嘿嘿
exqtr
驱动牛犊
驱动牛犊
  • 注册日期2007-06-05
  • 最后登录2008-12-13
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望51点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-12-13 22:51
3qu
fish_2008
驱动牛犊
驱动牛犊
  • 注册日期2008-10-27
  • 最后登录2009-04-07
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-03-20 10:38
谢谢各位前辈,特别是changjt前辈,还上传了ru的使用手册,我从事BIOS的工作,但经验很少,很多寄存器的用法都不知道,还望前辈们多多指教!
游客

返回顶部