hugebird
发表于 2008-12-1 21:16:12
(weixiao:估计大家都没有仔细看过这些ADSL的源码,我从网上下载了一些,Dlink,USRobtics,NetGear,Belki,这些大部分都从broadcom提供的参考源码修改过来的,这些代码版本很多,在shared目录下有两个重要文件,boardparams.h boardparams. c 这两个文件定义了板子的主要资源,这两个文件分别被3个主要系统所引用,CFE, kernel , CFM(在rootfs里), 这3部分是独立编译的,可以进行随意组合,但是如果boardparms的定义不兼容,那3者的资源就不能正确调用,也就是无法完成我们预期的目的。所以这种组合必须在兼容的版本之间进行组合。
不过可以任意尝试,只要记住针对128K flash加上/128KB 开关,就不会出现CFE 被意外覆盖的危险,如果CFE不兼容,最多是网口不能激活,用JTAG恢复cfe所在的第1扇区就可以。
原帖由 天涯 于 2008-12-1 12:49 发表 https://www.chinadsl.net/images/common/back.gif
每次见到你,我都能长知识,很开心遇到你这样一位热心又肯教人的朋友。
双BIOS,看了你的回贴后,我的理解是找一个CFE能支持尽可能多的ID的刷入,然后刷入一个最常用的固件,再接着按你传授的方法改标识,再刷入一 ...
hugebird
发表于 2008-12-1 21:23:01
RG100AA对flash的使用与2740B这种老设计有比较大的区别,不过TAG是兼容的,你可以用同一个固件进行测试,看看boot地址是不是在两个分区间切换。
因为RG100AA的CFE与其他的不兼容,不好进行组合
天涯
发表于 2008-12-1 21:32:06
情况如下:
1.原有环境:RG100A-AA V1.2版,用BRJTAG备份后,再写入(花了4个小时)结果不成功,如同4楼的情况。
2.用E N 及E A ,I,清除有所信息后,再用F 2.61b243.cfk.bin,重启后,该固件引起设备反复重启,然后清除所有消息后,再用F 刷不带CFE的 2.73版,重启成功。
刚做了一个测试:
按楼上高人的传授,改RG100A V1.1的不带CFE的固件,(TAG.BIN)0X8A处标识,重启设备,进入CFE,修改ID,再重启进入CFE的WEB升级页面,刷入新组合的固件。
刷入结束,重启,然后提示无法引导系统,自动进入CFE界面。C:\rg100av12\rg100av11>brfwmod -comp -o rg1001v1.1-1.bin /m:1 /128k
===============================================================
Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird
===============================================================
Warning!...Source TAG Checksum not match, but build continue...
============decoding Tag information===================
Tag Ver signature = '6'
SIG1(comany info) = 'Broadcom Corporatio'
SIG2(FW version) = 'ver. 2.0'
chip ID = '6358'
board ID = '96358VW2'
FW endianess = Big Endian
=======================================================
->Start packing a new image
->bypass read CFE data to buffer...
->use cfe length 131072 to cal RootFS loading addr
->RootFS will load at 0xBFC20100, length 0x0036D000 Bytes.
->Kernel will load at 0xBFF8D100, length 0x000C39BF Bytes.
->get RootFS+Kernel checksum. CRC32 = 0x390BB661
->get image checksum. CRC32 = 0x390BB661
->get tag checksum. CRC32 = 0x28F34628
->write Tag to new image...
->write buffer to new image...
->Done
*** REQUESTED OPERATION IS COMPLETE, Bye! *** C:\rg100av12\rg100av11>brfwmod -showinfo -i rg1001v1.1-1.bin
===============================================================
Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird
===============================================================
============decoding Tag information===================
Tag Ver signature = '6'
SIG1(comany info) = 'Broadcom Corporatio'
SIG2(FW version) = 'ver. 2.0'
chip ID = '6358'
board ID = '96358VW2'
FW endianess = Big Endian
No CFE in Image
RootFS loading addr = 0xBFC20100
RootFS length = 0x0036D000
Kernel loading addr = 0xBFF8D100
Kernel length = 0x000C39BF
Total Image length= 0x004309BF
=======================================================
*** REQUESTED OPERATION IS COMPLETE, Bye! ***不知道是什么地方出错了。
我等会重启设备再抓个图出来。
启动信息:CFE> b
Press:<enter> to use current value
'-' to go previous parameter
'.' to clear the current value
'x' to exit this command
96358VW2 ------- 0
96358VW ------- 1
96358GWVG ------- 2
96358-502V ------- 3
96358MV2G ------- 4
96358M ------- 5
96358B ------- 6
96358BGWE_OEM1 ------- 7
96359PONG ------- 8
96358VW-8 m------ 9
96358SV ------- 10
96358GW ------- 11
96358VW-10 ------- 12
96358VW-11 ------- 13
96358VW-12 ------- 14
96358VW-13 ------- 15
Board Id (0-15) :110
Number of MAC Addresses (1-32) :12
Base MAC Address :00:1f:a3:11:fd:11
PSI Size (1-64) KBytes :24
Main Thread Number :0
Resetting board...
CFE version 1.0.37-11.3 for BCM96358 (32bit,SP,BE)
Build Date: 涓? 5鏈?28 22:37:40 CST 200x (root@fc6.a鵨com.com)
Copyright (C) 2000-2006 Broadcom Corporation.
Boot Address 0xbe000000
Initializing Arena.
Initializing Devices.
Parallel flash device: name AM29LV320MT, id 0x2201, size 16384KB
CPU type 0x2A010: 300MHz, Bus: 133MHz, Ref: 64MHz
CPU running TP0
Total memory: 33554432 bytes (32MB)
Total memory used by CFE:0x80401000 - 0x805284A0 (1209504)
Initialized Data: 0x8041D840 - 0x8041FCC0 (9344)
BSS Area: 0x8041FCC0 - 0x804264A0 (26592)
Local Heap: 0x804264A0 - 0x805264A0 (1048576)
Stack Area: 0x805264A0 - 0x805284A0 (8192)
Text (code) segment: 0x80401000 - 0x8041D83C (116796)
Boot area (physical): 0x00529000 - 0x00569000
Relocation Factor: I:00000000 - D:00000000
*** Restore to Factory Default Setting ***
*** Break into CFE console ***
Board IP address : 192.168.1.1:ffffff00
Host IP address : 192.168.q.20
Gateway IP address :
Run from flash/host (f/h) : f
Default host run file name : vmlinux
Default host flash file name : 2740b_2.73b246.bin
Boot delay (0-9 seconds) : 2
Boot image (0=latest, 1=previous) : 1
Board Id (0-15) : 96358VW2
Number of MAC Addresses (1-32) : 12
Base MAC Address : 00:1f:a3:11:fd:11
PSI Size (1-64) KBytes : 24
Main Thread Number : 0
web info: Waiting for connection on socket 0.
CFE>
改回96358gw 的ID后,就可以启动了。
*** Press any key to stop auto run (2 seconds) ***
Auto run second count down: 0
Booting from previous image (0xbe800000) ...
Code Address: 0x80010000, Entry Address: 0x80195018
Decompression OK!
Entry at 0x80195018
Closing network.
Starting program at 0x80195018
[ 本帖最后由 天涯 于 2008-12-1 13:56 编辑 ]
天涯
发表于 2008-12-1 21:35:12
OK,我再试一下,刷入两个DLINK 2740B 2.73的固件,看一下启动地址的变化,及试一下能否成功
天涯
发表于 2008-12-1 22:13:38
*** Press any key to stop auto run (2 seconds) ***
Auto run second count down: 0
Booting from previous image (0xbe800000) ...
Code Address: 0x80010000, Entry Address: 0x80195018
Decompression OK!
Entry at 0x80195018
Auto run second count down: 0
Booting fro?latest image (0xbe020000) ...
Code Address: 0x80010000, Entry Address: 0x80195018
Decompression OK!
Entry at 0x80195018
Closing network.
Starting program at 0x80195018
果然是双固件都可以成功启动啊。两个固件存在不同的地址。(两个都是DLINK 2740B 2.73)
hugebird
发表于 2008-12-1 22:23:39
不要用JTAG写入整个固件,只要写入CFE,然后用CFE的web再刷整个固件,在CFE下载fw的时刻,在TTL上注意看固件写入地址,然后ADSL重启的时候看是否载入这个地址的fw,如果不是,那么在CFE中修改一下boot image的位置。
RG100A的CFE与众不同,进CFE清掉bootloader以外的所有内容,CFE会重建flash文件系统,重启后用CFE的web就应该可以恢复原始fw,用组合后的带有0x8a位置标记的固件,应该可以激活双bios,以后就可以在管理界面里升级了。
我手里没这个设备,前几天借了个朋友的,只大概看了看,可能不太完善。 另外这个CFE需要登录的,如果psi清了,默认的用户名密码全是telecomadmin.
原帖由 天涯 于 2008-12-1 13:32 发表 https://www.chinadsl.net/images/common/back.gif
情况如下:
1.原有环境:RG100A-AA V1.2版,用BRJTAG备份后,再写入(花了4个小时)结果不成功,如同4楼的情况。
2.用E N 及E A ,I,清除有所信息后,再用F 2.61b243.cfk.bin,重启后,该固件引起设备反复重 ...
[ 本帖最后由 hugebird 于 2008-12-1 15:27 编辑 ]
hugebird
发表于 2008-12-1 22:27:39
CFE只有一个,如果不用/128K参数重新打包,在be000000写入的时候就会覆盖CFE。所以从RG100A原始固件第1次升级到2740B是正常的,再升级,系统就变砖了,另外一个2.61升级到2.73也是同一个道理,dlink的原版固件需要重新打包
原帖由 天涯 于 2008-12-1 14:13 发表 https://www.chinadsl.net/images/common/back.gif
*** Press any key to stop auto run (2 seconds) ***
Auto run second count down: 0
Booting from previous image (0xbe800000) ...
Code Address: 0x80010000, Entry Address: 0x80195018
Decompression OK!
...
[ 本帖最后由 hugebird 于 2008-12-1 14:32 编辑 ]
天涯
发表于 2008-12-2 01:52:22
刚用双固件法,一次性成功刷入朋友提供的USR9113固件,庆贺一下 :)
各位,晚安,偶去睡了。(shan:
天涯
发表于 2008-12-2 10:02:50
不能修改贴,只好再发个贴子,贴个图上来。
感谢HOTqj, Hugebird !!!
[ 本帖最后由 天涯 于 2008-12-2 02:12 编辑 ]
hotqj
发表于 2008-12-2 19:51:16
你的这个是同时存在9113和2740的固件?
这种,我到是没有测试过.
还请问一下,有关USR9113的1.2的固件,可下载到源码,如果修改原码使Board id 改变为96358GW,不知道是否能正常工作.
还有9113的1.2源码,和固件的发布日期不一样,晚了点,我编译试过后,发现没有无线了.