|
发表于 2004-6-15 13:05:45| 字数 2,620| - 中国–广东–深圳 中移铁通/富士康科技集团
|
显示全部楼层
|阅读模式
600E虽然经典, 但廉颇老矣, 都想多挖掘一些它的残值, 尤其是升级成FSB100的CPU, 遇到127问题, 这个问题象月经一样准时, 总有人讨论.
下面俺来发表一下拙见
1. 127错误的猜测, 很多人认为是MICRO CODE, 俺不反对, 但不肯定. 因为这种猜想建立在严密的基础上, 但缺少真凭实据.后?硗ㄟ^BIOS代碼分析, 發現這純屬猜測. 127報錯的根本原因是L2 CACHE未能打開
2. FSB支持, 对于BX晶片组, 66/100MHZ是支持的, 超频到133都没问题. 600E配的板载内存, 其实都是10ns晶片, 也即支持PC100. 这是600E能否升级的重要基础, 否则要更换ONBOARD SDRAM就困难了.后?砭谷挥腥苏业椒椒ò袿NBOARD DRAM給DISABLE掉了.
3. 有人尝试用600X的BIOS刷写到600E上, 成功地消除了127问题, 这是一个利好. 问题是带来某些设备不能使用的问题.這個問題到最后發現是一個關鍵問題, 也是本帖引起的最主要的話題
下面, 俺就本本的BIOS架构作一个分析, 希望抛砖引玉, 共同论道.
本本的的BIOS予台式的BIOS不同, 当然是因为它们的电路结构上的区别造成的. 在台式电脑上, 键盘是一个单独的控制器, 而且键盘对系统的关联很弱, 没有什么键盘调LCD亮度的FEATURE等等. 本本的键盘真的只是一个盘子而已, 没有内建的控制器, 而电池管理等是一个复杂的工作, 于是, 习惯上把键盘予电源等杂碎集中用一个MCU(单片机)来控制. 这个单片机的程序, 咱叫它Firmware, 它是本本的第2个BIOS. 我们在升级本本的BIOS的时候, 很多时候把它跟系统BIOS 2者一起升级了.
这2者关系如何呢? 下面再来看看.
我们把600E的电路从逻辑上分为几下几个部分:
1. CPU, Chipset
2. Super I/O, 主要功能有FLOPPY, KEYBOARD, MOUSE, IR, LPT, COM等Legacy Device
3. Onboard PCI Device, 包括VGA, LAN, AUDIO, CARD BUS, 负责分配地址空间及IRQ等
4. GPIO, 主要控制唤醒信号, 还有特殊功能如Speedstep等
5. Option ROM, 包括VGA BIOS, LAN Boot ROM
6. Embedded Controller, 包括锂电充放电, 键盘扫描控制
系统BIOS包括前面5个部分, EC BIOS负责第6个部分.
在这个帖子里, 把600X的BIOS写到600E上来了:
【原创】600E BIOS升级成600X BIOS后的问题
结果出了更多的问题, 如果刷新成别的BIOS, 问题也同样会存在, 只是不同的表现罢了, 下面, 逐一分析一下:
1、8611错误
2、摇杆鼠不动——应该是8611错误造成的
3、第二内存插槽出现错误——128M内存只认64M,第一内存槽正常
4、声卡没有声音。
第1/2个问题, 其实是一个问题, 可能是SUPER I/O不同, 也可能是EC不同, 如果是前者, 则600X的BIOS写到600E上可能是一个失败. 不过, 这种可能性不太大, 同一平台很少换用主要的CHIPSET的. 如果是EC不同引起的, 这个问题好办, 只需要刷新系统BIOS, 而EC的Firmware不作更新就可以了. 当然, 还可能有第3种情况, 即SUPER I/O一样, EC也一样, 如果是这样, 问题会变得麻烦得多, 因为还牵涉到其它原因如时钟啦, GPIO定义啦等等.
第3个问题, 俺暂时作如下猜测. 如果事后验证有所不同, 我们再作变更.
俺设想下图是600E的SDRAM PINOUT, 其中CKE[0]支援ON-Board SDRAM, SKE[4::1]支援2个SOCKET共4个BANK.

假设, 不幸地, 600X上用CKE[5::2]支援外扩SDRAM SOCKET, 而CKE[1::0]为on-board, 或者CKE[3::0]外扩而CKE[5::4]为On-board, 总会有一些不巧妙的事发生.
不过, 俺认为上述推测不太妥当, 事实上, 不同的主板, DIMM的TIMING都可以作一些微调的, 这些微调使得硬体的相容性有所不同, 而这个问题是最常见的.
第4个问题, 俺还不好推测, 如果仅仅是OS下没声音, 而有POST过程中有声音的话, 问题很好解. 由于原帖没有详细说明这个问题, 这个问题还需要对比一下600X予600E的PCI BUS SCAN的结果.


(极速捕风 提供了600X的PCI SCAN结果)
通过对比, 俺不禁有点失望, 因为600X与600E之间的PCI DEVICE差别几乎为0. 可以看的出, 当时600X的设计师仅仅是换了同VENDOR但不同型号的PCI DEVICE. 看起来并不是在OS的DRIVER有问题.
这样的话, 也许它和前面第1个问题的Root Cause是一样的, 俺倒有另外一个设想, 如果这个设想得以实现, 我们可以通过补软体补丁的形式来解决, 虽然有点麻烦, 但总比127问题来得厚道.
还有一点, 大家都关心的, 那就是VGA ADAPTER的问题, 一般来说, VGA BIOS都包在SYSTEM BIOS中, 如果2种主板的ONBOARD VGA不一样, 互换BIOS变得十分困难. 好在600X用到600E的实验结果表明, 这个问题不是那么突出. 从上面的图中可以看出, VIDEO CHIP是同厂牌不同型号而已.
当然, 互换BIOS还跟CARD BUS BRIDGE有一些关系, 如果BIOS VENDOR比较厚道的话, 这个过程对于DIYer则是不要关心的. 事实上, 600X与600E在这方面的差别也不用CARE.
最讨厭的就是GPIO的控制, 南桥或者SUPER I/O晶片有一些PIN可以让主板商自行定义, 同样一只PIN, 在A型号主板上用来控制音量的话, 在B主板上则可能是一个睡眠信号, 或者是一个LED的输出. 但是, 如果2块板子差别不大的话, 只要能正常完成POST过程, 我们可以写一段代码打成补丁放到你的HDD的主引导区, 在BOOT OS之前, 通过这个补丁改变GPIO的状态以获得我们想要的功能, 这个设想可以解决一些实在棘手的问题.
当然, 要实现这一补丁也是非常棘手的事, 呵呵呵~~~
有不少人猜测, 对BIOS作逆向工程, 这倒是合乎情理的, 只是完全没有可行性, 这涉及太多的BIOS内核细节, 不是能公开讨论的问题.
在127問題上, 如果嫁接成功, 這倒是最簡便的方案. 只怕?拇耸袌錾系腗MC2 CPU洛陽紙貴了.
ANYWAY, 咱們先試試, 再一步步深入前進, 直到127消滅為止
最有希望的 |
评分
-
查看全部评分
|