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源码,和固件的发布日期不一样,晚了点,我编译试过后,发现没有无线了.
页: 1 [2] 3 4
查看完整版本: 有个组合问题请教hotQJ, 见到请进。。。 :)