熊猫
发表于 2010-3-24 08:52:02
谢谢版主,解释得很清楚,我两台2650BU都是超级终端不显示也就是CFE不启动了,最坏的情况了!
请问下,CFE中修改启动哪一个固件的命令是哪一个?另外在CFE下刷固件怎么控制刷到哪里呢?谢谢!
tulwlj
发表于 2010-3-24 13:17:50
看不明白{{XPX11{{
tulwlj
发表于 2010-3-24 13:27:04
{{XPX11{{我也看不明白
熊猫
发表于 2010-3-24 16:36:15
本帖最后由 hotqj 于 2010-4-25 20:33 编辑
难道大家都没看明白吗?我把版主的话整理下吧!
首先要明确国内BCM6358的路由猫与国外D-Link DSl-2740B 、DSL-2650U、USR9113有以下不同:
1.flash 的block size由64KB增加到128KB,这是2650UB等原版固件无法通用的主要原因。
2.flash size由4MB变成16MB。
16M的Flash是128个扇区,每个扇区是128K。16M的Flash是可以保存两个image的,一个是正在使用的,另一个可以算做为备份固件。这个可以在CFE中使用命令修改启动哪一个固件的。而对于16M的Flash,CFE不存在电信等原版固件的AUX参数的情况下,第一个image的启动地址为0xbe20000,也就是从128K处启动,第二个image则是在地址0xbe800000启动,也就是从8M开始启动第二个image,一般最后1-3个扇区是PSI配置文件保存的地方。
如果设备在CFE下用命令“e a”命令清空过,没有任何固件只有CFE,在CFE下刷好固件后,image肯定是从0xbe20000启动,如果刷的是平时说的64K的固件(既D-Link原版固件等),那么启动肯定是不成功的。
16M的Flash如果目前是非ISP原版CFE的话,在CFE下使用“e a”命令清空Flash后,刷了128K的固件,那么一般应该正常成功启动image。启动地址为0xbe20000。如果在这个基础上,在正常的WEB界面升级D-Link等非电信的64K固件时,那么image的写入地址就是0xbe800000,image的启动地址也是0xbe800000,这样肯定不影响成功启动image。如果当前image的启动地址已经为0xbe800000的话,再在正常的WEB界面升级64K固件,那么CFE肯定是正常的,但image的写入地址就是0xbe10000,但一般CFE对于16M的Flash,第一个启动地址只能是0xbe20000,所以CFE就找不到image,启动当然失败,或者有些CFE都干脆都不启动了。
总之,64K和128K封包的固件,刷新成功与失败,基本和Flash的类型和每扇区多大有关系。而且主要是和最前边的几个扇区有关,因为那里主要是放CFE和第一个固件启动的相关Tag,Rootfs,Kernel等信息。
注:关于image启动地址,大家可以在启动的时候注意超级终端,应该有以下语句
Auto run second count down: 0
Booting from latest image (0xbe020000) ...
或者
Auto run second count down: 0
Booting from previous image (0xbe800000) ...
Hotqj补充:
当然16M的Flash芯片并不完全是128K的Flash Block的,,也有其它的,
比如MX29LV128DT这个16M的芯片,是这样组成的:先是64K的Flash Block有255个,然后是8K的Flash Block是8个,加起来正好是16M的。
其它特殊的,我就不一一说明了,,具体啥芯片Flash Block和扇区数不是完全相同。
熊猫
发表于 2010-3-25 08:25:55
顶一下,让更多人看到下!
zhujunsq
发表于 2010-3-25 10:21:53
这个固件64k和128k的封装我终于弄明白了,顶。。。{{XPX12{{
xhh2001
发表于 2010-3-26 00:13:37
说得很清楚了。
值得借鉴
小电鸟
发表于 2010-3-26 09:31:27
那再请问一下,如果已经像我这样刷了一遍原厂的64k的dlink1.14固件的,要刷别的固件怎么办???有好的解决办法吗???{{XPX11{{
小电鸟
发表于 2010-3-26 09:32:30
回复 1# 熊猫
那再请问一下,如果已经像我这样刷了一遍原厂的64k的dlink1.14固件的,要刷别的固件怎么办???有好的解决办法吗???
熊猫
发表于 2010-3-27 14:00:43
小电鸟兄,我想只要不在正常的WEB页面下升级原版固件就可以了,在CFE下刷改过的128K封包的固件应该没有问题!