::::: 宽带技术论坛 :::::'s Archiver

hugebird 发表于 2008-2-17 01:18

发布一个Broadcom芯片ADSL固件的修改方法和工具

请大家下载18楼的1.5版

hugebird 发表于 2008-2-17 11:10

自从去年第一次使用Broadcom芯片的ADSL,一年已来感觉这一系列的设备非常耐玩。最突出的特点是它们采用Linux系统,很多大厂免费提供源码,有能力的用户可以增加自己的代码支持更多的功能。 w0@*yB u2Y7lh
G*`pU6},g8A:H
Broadcom ADSL最常见芯片包括 6338,6348,6358,以及比较老的6345. 6338 是市场的主力,标准配置2MB Flash
2I8^ K XHk9Q 和8MB的SDRAM。 6348面向中端市场,标准配置4MB Flash和16MB的SDRAM,一般加无线网卡作为无线路由一体机使用,6348支持USB1.0,加载驱动以后可以支持外置硬盘。6358面向高端市场,产品比较少见。
Ix#S.?o.yF *pu4X"lu*zb
大多数厂家采用Broadcom的参考设计,仅根据网络端口的不同需求做简单的修改,再加上自己的软件。相同芯片的4O9K5k~(c
ADSL设备,最大的不同在于网络接口,有的使用芯片内置的以太网PHY。有的采用外接以太网交换芯片支持多个端口。ADSL主芯片和外接交换芯片有多种连接方式,造成了固件不能通用。网络接口的定义在厂家提供的源码boardparms.c中。即使硬件设计一样不同厂家的设备,固件由于有标识保护不能互刷。
/X(R$u+pWEMf.S
;DDw+G"B0S 最近有空分析厂家提供的源码,基本搞清楚了固件的结构,下面提供的这个工具BrFWmod,可以对大部分标准BCM6xxx
W:j$oY'RE F9ka%{H ADSL设备的固件进行拆分和组合。可以对某些固件加上特定文件标识,用于其它厂家的设备。比如我们有A厂出的
2^*F4EKc }1@h&Dy 设备,原厂的固件功能有缺陷,我们得到消息B厂的固件功能完善,但由于B固件与A设备不匹配,无法直接刷在A设备上
-Bs+r%`1p!W#jqiN ,除非采用JTAG一类的特殊设备。现在我们用BrFWmod,从A厂的原厂固件中提取标识,然后把标识组合在B固件上,得9]F+m7cSv/L B$O;_*U5}
到了在A设备上可以直接刷新的新固件。5bbI*h$q]X

3OI/|!Uo:\ 固件的定义可以从任何源码的BcmTag.h中找到,通常分成4个部分,第一部分是256字节的文件头TAG,里面定义了,厂
|]A0L5}d 家,型号,附件版本,并对后面的3个部分提供文件长度的索引和校验和,保证固件的完整性,第2部分是CFE,该部
9xR8dnw1X 分相当与电脑中的bios,又称为Boot Loader,启动引导,CFE中提供对设备网络的简单支持,可以在固件核心部分崩溃
o3T d,gg 的时候,提供TFTP等恢复手段。CFE还提供对硬件基本参数的设置。第3部分是Root File System,根文件qIUi N[r&He-i
系统,类似于光盘的ISO文件,提供Linux系统所需的的文件系统,BrFWmod Linux版本可以把这部分进一部分解
8Lp%| TCs8e7U 成独立的文件,加入自己的工具以后还可以重新组合。BrFWmod Windows版本不支持对rootFS的分解。最后一部分是 X8lDG+Z,K-F2i9t$[\7Y
Kernel系统核心,即Linux系统的Kernel。0y~e ?C5hK4l

g DHJ1j t3o:r 下面介绍BrFWmod的使用方法,需要注意的是,有些厂商使用的文件头有自己的扩展,所以这个工具不能保证成功修改。这个工具目的是提供给那些自己有恢复手段(比如JTAG),并且有足够知识的高级用户的特殊应用。3pM7q6J@&a8MX7Qo

0p'}QtS]|zD"j7R o [size=6][color=red]请注意刷新非原厂固件对您的设备是非常危险的,一旦固件有误,那么您的设备有可能损坏。任何危险操作前请三思而后行。由于您的错误理解和错误使用本工具所造成的损失,本人概不负责。[/color][/size]6[h*u3TC1{a
_6y O|} `D
[[i] 本帖最后由 hugebird 于 2008-2-17 03:24 编辑 [/i]]

hugebird 发表于 2008-2-17 11:11

BrFWmod的使用方法
@3e!P"?}d ===============================================================
+\bwWhGy8A Broadcom Chip ADSL FW Image De/Compress Utility v1.0-hugebird
XA1U%I6Mw ===============================================================
C(QT@r ABOUT: This program decomp/comp the firmware image of a Broadcom chip
[fL|2lQ         based DSL MODEM.3I K(It0lqP(h9jBk
            ---------------
V!r~ Xw2oM USAGE: BrFwmod -decomp <-i inputfile> </m:X> </notag> </cfe> </rfs> </knl> 0H.h} T;R5v AJ2U
        BrFwmod -comp <-o outputfile> </m:X> </cfe> </r> ^,i }.uS
        BrFwmod -showinfo <-i inputfile>  
XZ|bHk             处理命令 t)Q~7XT Lr'tp,L
            ------------------o;\"]b-y"P@(SF4Y
            -decomp ........... 将一个固件分解成模块Y4T;@rgBz
            -comp ............. 将模块打包成一个新的固件Kc/n-oL7Ne
            -showinfo ......... 显示一个固件的头信息
oHwxqh(E             -i inputfile ...... 指定一个输入文件(默认Image.bin)3h+S"\C Nf|N?%O
            -o outputfile  .... 指定一个输入文件(默认Image.XXXX_XXXX.bin)*D'A W;Om5Z1\%_1{V
            开关选项p@%s4qb+Te$c:@2xe
            -----------------E7\*o @3GI
            /cfe ........... ... 处理CFE部分UoX'ul@$A
            /notag ............. 不解压缩文件头部分TAG.BIN
"C)c~/P Ub             /128K .............. 采用128KB作为Flash芯片的块大小,用于计算模块加载地址。f6a E)Z'fS/OT
            /rfs ............... 分解时,处理Root FS部分xC2wy+e3J6I c
            /knl ............... 分解时,处理Kernel部分
"BLpRP5w)r:A V@8E             /m:X ............... 使用预定义的方法处理
9H8gc |N/H               :1 ............... tag.bin , rootfs.bin, kernl.bin(默认打包方法)
(\ {AHEN               :2 ............... tag.bin, cfe.bin, rootfs.bin, kernl(默认分解方法)
A^)a!ug%f!x*kw~*F               :3 ............... tag.bin, cfe.bin
mEc+\gzWq               :4 ............... tag.bin
E1g(r8y?0O K_             /r ................. 解压缩RootFS, windows版不支持该操作y8^_[_(q|
            -----------------------------------------------------------------

hugebird 发表于 2008-2-17 11:14

下面以[url=http://www.chinadsl.net/bbs/viewthread.php?tid=21564&extra=page%3D1]http://www.chinadsl.net/bbs/viewthread.php?tid=21564&extra=page%3D1[/url] 连接中的这个文件作为例子
p#F-gD(B9`q [code]>brfwmod -showinfo -i bcm96338Ezch_cfe_fs_kernel[/code]
1q`&{Y0R,v)S1a ===============================================================
1L3a2v5TT^D:^ Broadcom Chip ADSL FW Image De/Compress Utility v1.0-hugebird
c!CcW[eK ===============================================================
rV z)Z m+nh AM4f =====decoding the image information=============================#E.k St3g}
Tag Ver signature = '6'
c/I*U"`X*x2h^.n"C SIG1(comany info) = 'ZXDSL831CIIE09'4AtZ-C"|};h
SIG2(FW version) = 'ver. 2.0'
q4Zn'pg(j.D y'I/` chip ID  = '6338'uad8NU
board ID  = '96338E'
Y:s(e$y1l{sZ+t FW endianess  = Big Endian
E7}'YZ{Rt*|5R&P CFE loading address = 0xBFC00000}}"a%ZB
CFE length  = 0x0000F688
$X)ECVr}X-lP~ RootFS loading address = 0xBFC10100 {]3R4C6}!L$F.@:R
RootFS length  = 0x00162000
d;v;DYh"M-Uby Kernel loading address = 0xBFD72100
WUxD3R_ Kernel length  = 0x00075C1F%xK wh}snd
Total Image length = 0x001E72A7*A Lb8{nsI9D
=====Finish decoding the information=============================
u)kxG3J9UWqA M g],UR_
*** REQUESTED OPERATION IS COMPLETE, Bye! ***[Y4@`,[$R

hC B(Y(sZ 可以看到该固件是针对6338,SIG1就是设备的标识,接下来我把这个固件分解/~3x@ TN*c)b]
[code]>brfwmod -decomp -i bcm96338Ezch_cfe_fs_kernel /m:2[/code]
MJv"yxT5Ff
o+z{)u d ===============================================================~;gM8I#J4uuT-a;R
Broadcom Chip ADSL FW Image De/Compress Utility v1.0-hugebird
P B5S^emx*e ===============================================================
'W&g6\5l0FGEF =====decoding the image information=============================
hz*`6S"H.@d ...
g!L-E'fj(V =====Finish decoding the information=============================
h2]/q rws2b-El -->Read image to buffer successful, 1995431 Bytes!
3~rNK)C |d/~lb -->Start to decompress the image ... Go`;D5I'?2i
-->write TAG.BIN ...Done!
iOT br-u Lq DJR -->write CFE.BIN ...Done!0zt#K2~M
-->write ROOTFS.BIN ...Done!C1~}fd7cJ(y
-->write KERNL.BIN ...Done!
E.k&~*\7d B"R -->Done
s6UO+w(z doa *** REQUESTED OPERATION IS COMPLETE, Bye! ***
q] C e;Lo[
&?f`+s Zf ^ 查看目录可以看到四个文件:后面的时间戳和您操作的时间相关%dS/l7BR K
TAG.BIN.20080216_2255
]*v0k3a:y;JJP CFE.BIN.20080216_2255 Ca/y(y$n
ROOTFS.BIN.20080216_2255jha? E
KERNL.BIN.20080216_2255;ss.eZ$Q)x}!Vp
我们可以改名字
:f+a'{'{,H6@ TAG.BIN, CFE.BIN, ROOTFS.BIN, KERNL.BIN`^1flo%J[8o
然后我们重新组合一个不含CFE的固件 mynewfirm.bin)n/izdP)DDL$H
[code]>brfwmod -comp -o mynewfirm.bin /m:1[/code]
i@`E1U_
o1z;ASmHy ===============================================================
6R ~rA6IVd"J#IA Broadcom Chip ADSL FW Image De/Compress Utility v1.0-hugebird
&bH)[:BV'R iN5s ===============================================================
gm&hQ~)D8Wt%m =====decoding the image information=============================
"UP*f/iTIG+i e Tag Ver signature = '6'G s[ g1_fU R6e s
SIG1(comany info) = 'ZXDSL831CIIE09'T.B/F1cT!p
SIG2(FW version) = 'ver. 2.0'
mJ_D5_7K chip ID  = '6338'
f+f/w,kT\\oj board ID  = '96338E'.b$[&} QE f8IG
FW endianess  = Big Endian/`;a'Rk'j TYQ.p
=====Finish decoding the information============================={'M9AK.PHIMs
)_PS+@'nE
-->Prepare pack a new image
3r+v A!f`S&bH -->bypass read CFE.BIN to buffer...#Q;J.~PiGP
-->read ROOTFS.BIN to buffer...
{5CI had2h8IY   --->use cfe length 65536 to cal RootFS loading addr].H+vf2@[
  --->Root FS will load at 0xBFC10100, length 0x00162000 Bytes. Done!'^}T#@!J ].JL(?Pl
-->read KERNL.BIN to buffer..."i ^EXVh
  --->Kernel will load at 0xBFD72100, length 0x00075C1F Bytes. Done!
)D#hq7Z+D.j -->get image checksum. CRC32 = 30829322
;u _z K-@W{Y -->get tag checksum. CRC32 = 17672550%R NHfgS2i|-y)uI
-->write Tag to new image...
b8c,Vo^,e&^a9\K -->write buffer to new image... er'G&rYUe
-->DoneY,BYND
*** REQUESTED OPERATION IS COMPLETE, Bye! ***
(wLO_J'm)c
(~c]B9_]/_ T&K 重新显示一下新固件的信息TXo ?6P/{(}
[code]>brfwmod -showinfo -i mynewfirm.bin[/code]
?aK4jm"u(zW|dJ ===============================================================+FWB(H1K0kG
Broadcom Chip ADSL FW Image De/Compress Utility v1.0-hugebird1A]-[C9iVlW&p]
===============================================================^NFz#X d8G9``
=====decoding the image information============================= l*G,tc9H
Tag Ver signature = '6'
Cv i[5H B SIG1(comany info) = 'ZXDSL831CIIE09'-A^!YeJ\"B
SIG2(FW version) = 'ver. 2.0' V.k3kXr_M7i
chip ID  = '6338'bi+K)ku2xB4N+js
board ID  = '96338E'
s7t`Y4v;B Ze FW endianess  = Big Endian
V4w[~H iI No CFE in Image G8Ke;H3oNQ
RootFS loading address = 0xBFC10100 ]?%g\ \
RootFS length  = 0x00162000^;I$is1|AR)HC%H
Kernel loading address = 0xBFD72100
t:o o(udc(\z Kernel length  = 0x00075C1F
.r#|6m6la V4T Total Image length = 0x001D7C1F
F/m&o|?9@ e =====Finish decoding the information=============================
{-@%\z'hM0K3sfy *** REQUESTED OPERATION IS COMPLETE, Bye! ***

hugebird 发表于 2008-2-17 11:17

接下来帖一下BcmTAG.H. 这个文件是从U.S Robotics 9108源码中摘出来的,供参考
H@s C1N-}
sCy}+U [code]
"f3i!gD S(Z7V /*
O*S,k*Q ww3jX(V <:copyright-gpl
)l(h6]!S1I xi Copyright 2002 Broadcom Corp. All Rights Reserved. ?n[2q$O*lB?:Ig
yn^Y:wzj `
This program is free software; you can distribute it and/or modify it ?Ls8x:hu8G"X
under the terms of the GNU General Public License (Version 2) as $y;S&F8l?7ZU T M
published by the Free Software Foundation.
dYV;^5U0dD -cQ"D1~ ?U]0}-fM X
This program is distributed in the hope it will be useful, but WITHOUT
%yK1a Tg)B8g N5A ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #C"dj!ym,E[
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License .jodS-i&IX|"{\b4A
for more details. Uj*I?7Za

)Z}~$z6Y|0@2w You should have received a copy of the GNU General Public License along qo?*^S:s
with this program; if not, write to the Free Software Foundation, Inc.,
p y Be S4f~0@\ 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
,bQ5X Oze :>]AH5FvD c
*/
!H0hR;S-t/Nm //**************************************************************************************
D2y*h5wl1S7C // File Name  : bcmTag.hT"[^pSO;K i Ew%u
//.UT5w Uw/^4lX3y
// Description: add tag with validation system to the firmware image file to be uploaded
l6RFs{C\0Hy%Y //              via http^;DV)B/o-?Yk
//
k_%H?}ii] Y // Created    : 02/28/2002  seanl C~._ @u
//**************************************************************************************
yJS^K-U1{+p #ifndef _BCMTAG_H_vT m"JF8a Xi
#define _BCMTAG_H_
I"W)fX'tc d7R{.R m 0q.FZ;JSbxQ7{M$@d
#define BCM_SIG_1   "U.S. Robotics"T'THE._wd
#define BCM_SIG_2   "ver. 304L0113"          // was "firmware version 2.0" now it is split 6 char out for chip id.
J u7K e }hS:C:s #define BCM_TAG_VER         "6"YP,ZVM4} \/P(y
#define BCM_TAG_VER_LAST    "26"
sba~lG // file tag (head) structure all is in clear text except validationTokens (crc, md5, sha1, etc). Total: 128 unsigned chars
8~'R1XlhH #define TAG_LEN         256
JS&x[^ #define TAG_VER_LEN     4Z!RK6\mW#Jc c-^qM
#define SIG_LEN         20uHQL2x,\?:l
#define SIG_LEN_2       14   // Original second SIG = 20 is now devided into 14 for SIG_LEN_2 and 6 for CHIP_ID
@DGdt t%J #define CHIP_ID_LEN  6
yB4kqLZ8O #define IMAGE_LEN       10l"]f U~L!I A W`/[
#define ADDRESS_LEN     12
(~[|3w9{#VC!R]tz #define FLAG_LEN        2/u,o x(JXVriQ
#define TOKEN_LEN       20
})|5z"RI X+vA6u #define BOARD_ID_LEN    16
!w4k oo;fq9E #define RESERVED_LEN    (TAG_LEN - TAG_VER_LEN - SIG_LEN - SIG_LEN_2 - CHIP_ID_LEN - BOARD_ID_LEN - \(KgQ&t'A4U$n8J8o ~4O
                        (4*IMAGE_LEN) - (3*ADDRESS_LEN) - (3*FLAG_LEN) - (2*TOKEN_LEN))0M!s E|0@\

Q!IU%Z!h1r0|4o // TAG for downloadable image (kernel plus file system)
H.U,cU/G5z3J6hQ typedef struct _FILE_TAG
*YOl(Lf {
YB e t.MKe}9O     unsigned char tagVersion[TAG_VER_LEN];       // tag version.  Will be 2 here.
'^x'Q$a}{6k-E     unsigned char signiture_1[SIG_LEN];          // text line for company info
,Os2^*W1M` _ ^     unsigned char signiture_2[SIG_LEN_2];        // additional info (can be version number)y Tt y9S"hw)P
    unsigned char chipId[CHIP_ID_LEN];    // chip id Y$~-f$`U(`0~i
    unsigned char boardId[BOARD_ID_LEN];         // board id2fm(F8g I AG p(L1_'[
    unsigned char bigEndian[FLAG_LEN];           // if = 1 - big, = 0 - little endia of the host
@;|4m1\)r1\0l xz     unsigned char totalImageLen[IMAGE_LEN];      // the sum of all the following length)Eq T+f3c4]t2M5Rx|
    unsigned char cfeAddress[ADDRESS_LEN];       // if non zero, cfe starting addressN&w#ajZ-m6F/V\v
    unsigned char cfeLen[IMAGE_LEN];             // if non zero, cfe size in clear ASCII text.4yU1Y??Q
    unsigned char rootfsAddress[ADDRESS_LEN];    // if non zero, filesystem starting address
[5A/Q"kR     unsigned char rootfsLen[IMAGE_LEN];          // if non zero, filesystem size in clear ASCII text.
({&R;~+`0w5UQ3z4M     unsigned char kernelAddress[ADDRESS_LEN];    // if non zero, kernel starting addressmQ:V8D9kH? h+q&}6R
    unsigned char kernelLen[IMAGE_LEN];          // if non zero, kernel size in clear ASCII text.
h2_jS$uwg lM     unsigned char imageSequence[FLAG_LEN * 2];   // incrments everytime an image is flashed&Q ]5O`8A_4^z
    unsigned char reserved[RESERVED_LEN];        // reserved for later use$T:B@|oo
    unsigned char imageValidationToken[TOKEN_LEN];// image validation token - can be crc, md5, sha;  for
W#{'Z9T,}-g }Q                                                  // now will be 4 unsigned char crc
6GB(b ky Y0z     unsigned char tagValidationToken[TOKEN_LEN]; // validation token for tag(from signiture_1 to end of // mageValidationToken)3LXPK[ F&g;G
} FILE_TAG, *PFILE_TAG;
g%Gs t.M q #define CRC32_INIT_VALUE 0xffffffff /* Initial CRC32 checksum value */
O:q.Y%M5BR-|3s5m;h,j #define CRC_LEN 4
#^$Z;y ?.T!`I W // only included if for bcmTag.exe program
+\ qp8DK)Xf // #ifdef BCMTAG_EXE_USE
Q2e2}Rp}:X!~ static unsigned long Crc32_table[256] = {8Dt] B ` e5R*_
    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,Ego)r$w*B7\X
    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
\"NmgJPY lt     0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,YK;n8^0{ [ K
    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,,b7i?'xk uN W8}
    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,o%@ O!o+`Rk:U-D
    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,F,Q.CRdp Ca,EL:H
    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
E-s IB:g0wG     0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
'YA,D6htr     0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,qjl2kHG]
    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,gSwtpYPQ
    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,Ck Wa2~0[ l-z)L/b
    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
m#@w%RSv Vn-c |     0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
^@F \+c2n S0T     0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
ONw x l-i;V e#Z     0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,}szq``
    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,^5Tj2uw sn ? J
    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,YA.Z_x(E
    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
8To4xpuc;f     0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,*k6E$] F3F.B
    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, |#vq)~4w{,l
    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,u j;rU+d+B8X u
    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,Y8p-El&P V
    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
e b G2X%jNR@     0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
z |*s(|2Z4^B;m!kW     0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
G4~Fj4kg X+t S     0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,.a o5TmQq6HV
    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
0b&~?*Q;Nw u     0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
r} BTcO+~ l     0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,M'o4^1b0n+q:J,pA
    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,;Z x8|hafhN
    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
M u6p_)P0N6w1^l f'i     0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,+?E? bWS%z
    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,*mt'O5m PeU
    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,7boV MFBj2Rq{2[
    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,Y+ArVW(eK
    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
M5?3G-}~? `I     0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,!N!t$IkIA\
    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,1dxt2r7p2mE
    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,+A;l[!wg,kc
    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,+wj'YDN_
    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,_ \S.jL7VR
    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, qH#?T%G\6B$uv
    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, {#V;IS:Zmt;j)L Q
    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
0y5Q"jfd'G._     0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
*n t{w-tV1j6G     0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
}-j!G-d E     0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
1I6edj GGaf#S     0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
0n'[#~,SK.W     0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
g_8a)x8cf ]5{     0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, C+s!\Hj2b[(pE
    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
bO` ~:T X     0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
coL_Zd w     0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,*h].h&BB!|
    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
m|%bzfRr0G,L}1J     0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
]@#s r!I` K9qf(C     0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
3I!E}7FT     0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,9kz)~;_1OFjX n
    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
^*Kf9HV SMGv~     0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,jDB8s"FX^
    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
g1WSH9JX/n     0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
6P5o.H$j9E)v y IU     0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,"s/}D5w4t \Y6W'hp*}
    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,Mk] }mG
    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D wf6mIT&H5V[{
};xx$u hA!s7r G
// #endif // BCMTAG_USE
PC+V%T"O w4sfZ
PB[&T3`k0ix #endif // _BCMTAG_H_sX0IKn9|!Z$n2r
[/code]

hugebird 发表于 2008-2-17 11:21

工具的源码过些时候发布在这个贴子里。目前Linux下的RootFS解压缩功能尚为完成。

hugebird 发表于 2008-2-17 11:23

[quote]原帖由 [i]hugebird[/i] 于 2008-2-16 17:18 发表 [url=http://www.chinadsl.net/bbs/redirect.php?goto=findpost&pid=126485&ptid=21742][img]http://www.chinadsl.net/bbs/images/common/back.gif[/img][/url]5Y}9OX"w8Q [8Y?%b
[/quote]
#EJ*_*tm 9M g`6a0Cx;A
工具包里面还有一个计算模块CRC32校验和的工具
ry RC/^S/e+` ^(e[&b4O'}yQN'Rw
使用方法)h4ZJY~;q iI2k-Vt(N
[code] #vlg1a+}7O
>calbcrc  <input name>(] h7F Y }-Y[S
[/code]

chenclc27 发表于 2008-2-17 11:28

有一定的难度,不是每个人都能做的

hugebird 发表于 2008-2-17 11:28

一些厂家源码的链接'^JMF(Zm

#wt/@J gO.A USRm-h-L,C'x
[url=http://www.usr.com/support/s-gpl-code.asp]http://www.usr.com/support/s-gpl-code.asp[/url]
Q5J@?p'\ \@re Y0ETj.Y,H,H
NetGear2WJexeT
#gP6K4b.v#@3g!H
[url=http://kbserver.netgear.com/kb_web_files/open_src.asp]http://kbserver.netgear.com/kb_web_files/open_src.asp[/url]
H/k \D/~Z m2xQ^ AL ;Z'M {~E1r
BelKin6r5Sqe~Kwpq
[url=http://www.belkin.com/support/gpl.asp]http://www.belkin.com/support/gpl.asp[/url]

hugebird 发表于 2008-2-18 17:15

hugebird 发表于 2008-2-18 17:21

上面的是1.1更新版,修正了打包不含CFE的镜像时,计算rootfs加载地址的bug。/t?|U5q6[3wN,LL
加入两个开关: /128K, /cfeblk:X
Q%D9XP.B4[[)s'y{ XU J.q Yd yo.a
/128K    设置Flash的块大小为128KB, 默认情况下为64KB,Dv6J a E!g
/cfeblk:X  设置在打包不含有CFE的镜像时CFE占用的块数。CFEsize = Flash block size x CFE block count.8r T4JPmPJi
                如果flash块大小为64KB,CFE占用了1块(Tiny CFE 大小是64KB)那么CFE长度是64K x 1块 =65536字节。
ZW q2Wn6R%j                如果CFE长度为256KB,块大小为64K ,可用参数 /cfeblk:4
!S#XlP*`pI5u{ ;N/N~!?J:zgQ
===============================================================
ph;OO-Z ?H hJz0g Broadcom Chip ADSL FW Image De/Compress Utility v1.1-hugebird ?9lsU4~'X0Ck.w}|0UR
===============================================================
d E3w vea ABOUT: This program decomp/comp the firmware image of a Broadcom chip
T$D&Fl@CW(q         based DSL MODEM.+NxXHB5B W
            ---------------
#P7H\D1CW+JT USAGE: BrFwmod -decomp <-i inputfile> </m:X> </notag> </cfe> </rfs> </knl>
ve?-G!zWw9T}         BrFwmod -comp <-o outputfile> </m:X> </cfe> </r> </cfeblk:X> </128K> t)o~ b%PUsl0FB
        BrFwmod -showinfo <-i inputfile>  
,z:m _'vAJO'H)F;s jp             Required Parameter
!h;?-_"O-FP             ------------------
s_h*rUr,kJ             -decomp ........... decompress Image file into sub filesr^4b {9w@V
            -comp ............. compress /|9kZ8q/]o8eDL!{
            -showinfo ......... show a Image file infomation
rt)o#E'w u             -i inputfile ...... custom input file(Image.bin by default)
a ^;x%`*uy             -o outputfile  .... custom output file(Image_Time.bin by default){ \L{EgF
            Optional Switches
z`Nz u[mI#s;V             -----------------qL N k5u d4NW
            /cfe ........... ... decomp/recomp including CFE
)V!Tq$\&N IM9[#N             /notag ............. don't decomp image tag
4y#b*P)E%i7Y(O XqeLq             /128K .............. use 128K to cal root fs loading addr0U)zc+Akgq
            /rfs ............... decomp including root filesystem
!u:? F"\Ej/[             /knl ............... decomp including kernel imageAi;q'raah,` b
            /m:X ............... use method [X] to deal with the ImageoLc3`]d
              :1 ............... tag+rootfs+kernel(default for comp)
EG$we9Tjn               :2 ............... tag+cfe+rootfs+kernel(default for decomp).KI Hd"xh2e{6F+|
              :3 ............... tag+cfeI2K7xW(l9H+F
              :4 ............... tag only
/IM c)`r^             /cfeblk:X .......... if not comp cfe in new image. this use to
|O.Apr                                  cal CFE length X * [flash block size]9Q_g+w6H!s\z!~
            /r ................. Linux only:decomp/comp root filesystem image
m&a+U7p2e Ms1zf0L             -----------------------------------------------------------------

hugebird 发表于 2008-2-19 23:30

请大家用1.2版的,这个已经完全测试

请大家用这个版本的,这个我在自己的上海贝尔500 S6307MPx上测试通过了,1.2版的可以识别Dynalink 3.02版的Tag格式。我一直用的Dynalink 1335 2.20版的固件,去年为此写过一个教程。这次做这个工具实际是在研究源码的时候顺便写的,最初的目的是不使用JTAG线完成不同厂家固件的互刷。"V(S!Q@({p1L8E
L Fm_x"]7jL
我用1.2版做了这样的实验。 实验前 ADSL上跑的是Dynalink 的固件。需要准备TTL转RS232串口线一根,一般即使板子再简化,这个接口还是保留的。贝尔的固件(B.bin), Dynalink的固件(D.bin), JTAG线备用。我前两天发布的brJtag工具备用。
[k6dS zr
9SCZ Qy6iC 1. 从D.bin中提取TAG.BIN
?N|0k T&c3^ brfwmod -decomp -i D.bin /m:4
6r.Uld&o 提取后改名字为tag.bin:m2n$S`Hh
2. 从B.bin中提取 CFE, RootFS, Kernel$hN9FUDpS7re4W
brfwmod -decomp -i B.bin /notag
p1~bk\K*KCi5D 提取后改名字 @IQg:J$b i!FyV
3. 将上面4个文件合并成一个有Dynalink TAG, 的贝尔固件。2Aa;?? v&{g+O
brfwmod -comp -o myfirm.bin /m:2(R.BDQ3N.Y
4.通过WEB页面升级这个新固件。-uA}&U!y7x
5.通过串口观察新固件的启动信息,由于CFE NVRAM中Board_id不对应,CFE进入等待输入Board id状态。z*zDdc4v`&l
选择96338E后,固件启动正常。于是完成了从dynalink 到贝尔固件的升级。]$H3vq(k%|I2[
uP8{7a1E+G
[[i] 本帖最后由 hugebird 于 2008-2-19 15:45 编辑 [/i]]

hugebird 发表于 2008-2-20 00:15

接下来实验从贝尔固件再回到Dynalink固件
2h)Q6SQNd Y{ #u4rc:L'h&~
1. 从B.bin中提取TAG.BINy&mu r@i r
brfwmod -decomp -i B.bin /m:4-m#z#U{xS
提取后改名字为tag.bin:Yk3SvxL7x(C%c P
2. 从D.bin中提取 CFE, RootFS, Kernel
o Z8vM\5DuR brfwmod -decomp -i D.bin /notagu#j4^wO
提取后改名字
}l5I5K1N1V 3. 将上面4个文件合并成一个有贝尔信息的Dynalink固件。
1nj@1S2X*Z2L!|Z brfwmod -comp -o myfirm2.bin /m:25B#zD0|'yY&rex
4.通过WEB页面升级这个新固件。I-B }"x@!lets.hDC3Y
5.通过串口观察新固件的启动信息,由于CFE NVRAM中Board_id不对应,CFE进入等待输入Board id状态。
`ktZ`:v 选择RTA1320后,固件再次启动。但固件认为Kernel Image损坏。通过JTAG导出flash的信息,和myfirm2.bin比较,确实在rootfs地址区域中与4个字节不匹配,怀疑贝尔的固件刷新代码存在问题。因为贝尔的固件是从网上找的,不能确认工作情况如何。M ^7AG)s*mb
`B)EU;~}s
以上的实验说明通过修改TAG确实可以实现不同厂家的固件互刷,但也说明,[size=6][color=red]这种操作风险极大,不建议没有条件的朋友操作。[/color][/size]这一工具只是希望摆脱使用JTAG的缓慢和不便,至此目的已经达到。

mad2000s 发表于 2008-2-20 11:27

up

:handshake :)

hugebird 发表于 2008-2-21 00:31

最后一次更新

hugebird 发表于 2008-2-21 00:52

[quote]原帖由 [i]hugebird[/i] 于 2008-2-20 16:31 发表 [url=http://www.chinadsl.net/bbs/redirect.php?goto=findpost&pid=126937&ptid=21742][img]http://www.chinadsl.net/bbs/images/common/back.gif[/img][/url]
!\Txl^"IE [/quote]
b4Yd}t5S;C
'Q[-[4bK`+v \ [size=6][color=blue]最后一次更新,[/color][/size]CFE中加入了定制的NVRAM块,这样boardID和MAC地址可以在重新打包固件的时候生成,不用再通过TTL转232电缆设置了。 NVRAM中BoardID 采用与目标固件TAG中的BoardID 相同,比如我们做一个从贝尔到Dynalink的转换固件,那么目标固件是Dynalink,所以NVRAM中的BoardID应该与Dynalink原始固件TAG里的BoardID对应即可,使用的时候通过命令行知道ID即可。如果命令行不指定,BoardID与TAG.BIN中的对应。MAC地址在1.3版中可以手动设置,如果不设置那么就采用贝尔的地址,后4个地址随机产生。默认情况下CFE中会自动生成一个默认的NVRAM设置,如果不想要,用/nonvram开关即可直接拷贝CFE.BIN中的内容。
!w/b;\R6F Y8Q iR&k.Qs0i;[cPJ)q/s
昨天的测试,现在加了默认NVRAM设置以后,从Dynalink 到贝尔直接刷新就可以正常工作。从贝尔到Dynalink 仍然提示核心文件坏了,这个固件是Dynalink的CFE要检测保存的TAG造成的,再这种情况下CFE是正常工作的,而且不需要通过串口设置硬件参数,如果ping通192.168.1.1,那么可以通过CFE的WEB升级页面直接加载Dyanlink的原始固件就可以,或者为了保险,自己用Dyanlink原版固件重新打包一个去掉CFE的固件上载也可以。都测试通过了。
'uK,sZMxv"]$g2G!~6H
;fMn1@h,I)h 这应该是最后一次更新,因为提供了源码,有需要的可以自己改一下就行了。

hugebird 发表于 2008-2-21 01:03

举个例子5~%X5X*ZK \3SO {U
1. 打包含CFE的文件, 设置MAC地址和boardID
9m~O Vg(l pq)[ >brfwmod -comp -o newfirm-cfe.bin /m:2 /macaddr:001122334455 /nvboardid:96338E
|yn:ySD8{l @;{ SP0QhR$R
2.打包不含CFE的文件
:P.JD1vCe3? >brfwmod -comp -o newfirm-nocfe.bin /m:1

hugebird 发表于 2008-2-21 22:28

1.5版,修正了一个crc校验的错误

修正了TAG中rfs+kernel 辅助CRC校验的计算bug, 现在RTA到贝尔刷新提示镜像错误的问题解决了。
Wg7_3agY4x-z 不过随之而来又出现了不同固件配置文件格式不同的问题,固件刷新时,原来的配置文件并未被清除,2HsN`%e-G-BR
新固件有可能不兼容,如果系统复位开关不起作用,无法恢复默认设置,系统就无法正常工作。
'dV-RW)G/F:J 解决办法只有用jtag线做erase nvram操作
d:bOp U
^3}jD U(m}{ [[i] 本帖最后由 hugebird 于 2008-2-21 14:36 编辑 [/i]]

hugebird 发表于 2008-2-22 12:40

擦除系统配置NVRAM不用JTAG线也可以,但需要串口TTL线。需要在加电时,监控串行控制台的输出,在CFE提示按空格键进入CFE时,按空格键使CFE中断正常启动流程进入CFE命令行,这是输入"E"执行擦除命令,当提示时,选“p”擦除永久保存内容,就行了。
o!P*p EiLsI&] 复位按钮有的CFE不能支持

hugebird 发表于 2008-2-23 15:11

该工具到此更新完毕,最后说明几点关于BCM ADSL firware的信息。
9PDM*Bf(|h_ 1.ADSL的CFE一般要求小于64KB,而WLAN Router则是256K。)s0Y.AM+};b
2.固件的刷新和识别主要看256Bytes TAG数据结构中的Board ID信息, 只要BoardID信息一致,不同厂家的固件就可以互刷。另外通过比较CRC32来保证固件的完整性。
(v6o!HN$V5\]-x 3. 即使固件刷新完毕,并不意味固件就能使用,还有2点限制。1是板子Enet配置信息,由2楼所述的外围网络的设计区别是限制固件互刷的主要原因。第2个限制是不同板子的固件,对保存在永久存储空间PSI中的系统配置文件有不同的的处理要求,比如管理员名字和密码的加密方式等等,在新固件首次启动时会出现不可预料的状况,解决的办法是通过TTL串口线,在CFE控制台中清除PSI中保存的信息。q2_Sm.P:j
4. 96xxx ADSL 设备的PSI一般为24Kbytes, 位于Flash memory的最后面。F,l V0Xu{ f
5. 如果boardID相同,为了保险起见,可以重新打包一个不含CFE的固件,保证CFE能够正常驱动网络,这样就可以不用Jtag线对设备进行回复。TTL串口线是必备工具
%g u6iY oq!w 's}hhR
[[i] 本帖最后由 hugebird 于 2008-2-23 07:14 编辑 [/i]]

MINE 发表于 2008-2-23 15:26

很有技术含量的帖子,当天我去搞个BCM芯片的猫,用楼主的方法来试试。

jackjdl 发表于 2008-2-24 17:19

:victory: 好东西帮顶!!!

kingstarx 发表于 2008-3-10 20:23

我的831 TW(同维)代工的,用你发的软件把Dynalink的固件合并后,刷新后成死猫了。怎么处理啊,谢谢

hugebird 发表于 2008-3-15 10:21

[quote]原帖由 [i]kingstarx[/i] 于 2008-3-10 12:23 发表 [url=http://www.chinadsl.net/bbs/redirect.php?goto=findpost&pid=129865&ptid=21742][img]http://www.chinadsl.net/bbs/images/common/back.gif[/img][/url] Pa*gf5c^%dde+[
我的831 TW(同维)代工的,用你发的软件把Dynalink的固件合并后,刷新后成死猫了。怎么处理啊,谢谢 [/quote]
6s Y+\)Y)Th6Y y-pX[Z.na D,I$M#h

:` v(@iB*~q:I*W@&i9m 恢复时需要用TTL-232线,和JTAG线,首先需要在板子上找到这两个通讯口,首先用TTL线接入,如果CFE可以启动,并且能够正确驱动网口的话,可以用CFE的WEB界面,重新刷新正确固件即可、;e(PA5li6emn7g)Nr
一般可以试一下在CFE中修改板子的类型,一般可以找到正确驱动网卡的型号。 用TTL线的目的就是尽量避免使用JTAG线。
W:l6U3OZ`&o s [,a7wR N7Fv2W
如果CFE无法启动的话,那么只有用JTAG线,关于用JTAG线的使用,请参考教程区的例子,并使用我改的那个JTAG工具。i.A;V'R~#|9{

7`W*e+L]5s@ 现在有的简化了的板子,JTAG没有引出,那只有把flash rom芯片拆下来用编程器刷新。
j gu{*_w#g
Br.v z9C@-oN 所以用这个工具要特别小心,不是所有的都能成功, 一定要确认两个固件是相同特征的。否则绝对要失败。-U4Io h"P#cE
Q`9D4t ty|3{
如果没有恢复工具,不建议使用这个工具

hugebird 发表于 2008-3-15 10:27

[size=7][color=red]请大家下载18楼的1.5版,由于论坛不支持修改帖子,1楼的那个最早的版本无法删除。[/color][/size]
\3Ihf0]wc 6n [g#H K t%A

f H%Z \Y;L3Z.[ [size=5][color=blue]再提醒下载这个工具的朋友, 如果没有必要的恢复工具,最好不要尝试这个工具,因为刷新以后很可能板子没有正确配置,设备将不能正常工作。[/color][/size][size=5][color=blue]另外板子上没有JTAG口的,最好不要尝试刷新。[/color][/size]

virus101 发表于 2008-3-15 15:15

lz关注一下e8套餐中的 大亚db120-wg 吧,配置很强悍,6358芯片,带2个usb host,32m rom,16m ram,网上有菜鸟正在低价甩卖呢,弄个来塞格openwrt看行不行。现在网上已经有一种6358芯片猫的全套源代码了,全套芯片和db120-wg 相同,不过是法文。

hcym 发表于 2008-3-31 10:23

收藏
7IU-k$?1Bb B~mr_ Dk
难度太大了
Q?W)X6jG
8R)KZr zT4cf :lol

peipei 发表于 2008-4-1 17:32

手上有个中型的831,外形和dynalink的rta1320一样,刷了dynalink最新的固件3.30j,后来发现tp-link的8810+也是一样的芯片,因为8810的猫可防电信的网络尖兵,所以想用8810的固件刷到中兴831上。但是用8810+的固件升级时提示tag不对,后来看到楼主的贴,就试着吧dynalink的tag合并到8810+里,不知是不是8810的固件不含CFE的问题,刷新之后猫就挂掉了。
*pI)~\1E@ 这是中兴猫里原带的dynalink的固件
s:C2Q&PimSX C:\rom>brfwmod -showinfo -i rta.binQ ~~-?"D-@#Z
@Qz3hN4mWDQ
===============================================================iQ6i1R6}tVi|
Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird EV!Pa8f0R
===============================================================lWn"T |g2] AV

;Xg D+zR1UI ============decoding Tag information===================
1X$rq XBw     Tag Ver signature   = '6'#~n B W}
    SIG1(comany info)   = '                    '%z&mUp X/}O(C
    SIG2(FW version)    = '                    '
Fn'H ~u,y#ib     chip ID             = '      '
je9bR [:j     board ID            = 'RTA1320'J+BHf8?)P;_
    FW endianess        = Big Endiann:f,wqbB4m4q#bVf
    CFE loading address = 0xBFC00000N#c'sW VE1h
    CFE length          = 0x0000F2E85G/p @8ok:?[0Grw
    RootFS loading addr = 0xBFC10100
.Y]mM(`it     RootFS length       = 0x00134000
+T8w%r3l:fLE I     Kernel loading addr = 0xBFD44100
s%w+m3^_qCOC9V     Kernel length       = 0x00077197
[9[oHS,Y     Total Image length  = 0x001BA47F
h(Q-l-mA:f2e =======================================================
8i C| k \
O o!dejfH7Z1E oR'eNL*H
%P/NJ J4QYJT+pR
*** REQUESTED OPERATION IS COMPLETE, Bye! ***
|CTW9l$g -}K.H/?(vD
这是tp-link 8810的固件
t:fh["xf C:\rom>brfwmod -showinfo -i rta.bin
J-a mK.h^ i$A +E W'x1?!m A#u#W(k{
===============================================================Wb1\+gbo8w&e Wp|
Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird5soe GlsSS9t
===============================================================-m%c&zK@1P"}
B2v"dUH K8v/z
============decoding Tag information===================
])xM;}H A9O!_d     Tag Ver signature   = '6',iXn)c&M/{E~ tR\
    SIG1(comany info)   = '                    '
_B/ZP-n+G P.uC     SIG2(FW version)    = '                    'z#D`Q#Z;?U
    chip ID             = '      'RDKD;vh:H
    board ID            = 'RTA1320'aR)O-UNt0?/b*?&U
    FW endianess        = Big Endian
'U&u+q(E V)|Gb7H     CFE loading address = 0xBFC00000
(q#`hg8?[#Wx(|F     CFE length          = 0x0000F2E8
^a$f(Q BTM     RootFS loading addr = 0xBFC10100\ Qe#X__-l5y
    RootFS length       = 0x00134000
z9a8s@ryR     Kernel loading addr = 0xBFD44100 Q4e`k){&a$J
    Kernel length       = 0x00077197
1Jk7T+Q(H^!rHw     Total Image length  = 0x001BA47F
C)V$U4T x:S =======================================================
n'n%NIr"`|
4Et;Kdr
^h%B#r6M\"n3G
pad&qM5{SX] e*e *** REQUESTED OPERATION IS COMPLETE, Bye! ***.~(b!`4irG2{
oVit(}@
这是合并后的固件
|D&D*MS Microsoft Windows XP [版本 5.1.2600].K'o:r!l&F&l
(C) 版权所有 1985-2001 Microsoft Corp.
+blB*K#NpRuay $c8j KL0xd*W
C:\Documents and Settings\Administrator>cd\
/WLn8q mt
lzI6QI i/| C:\>cd romk vUlZ v#I6X/q
]h?:e#Ww6Z2Xy~k
C:\rom>brfwmod -showinfo -i rta.bin.X8`^{ M3|H;z

8lY:I.d2d9S9q.d ===============================================================
B4f&[3B#N(`;H7t,e Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird
G M8\S+pZG ===============================================================
Hn1Yq4ioA
}Kf[~ ============decoding Tag information=================== SWYi}V,O
    Tag Ver signature   = '6'y-O b0eE b W(IH
    SIG1(comany info)   = '                    'R3vL[C },CSa
    SIG2(FW version)    = '                    '
f1`pqadT~ALe2E+~D     chip ID             = '      'VO SL1f lR%K ?1W#Q B
    board ID            = 'RTA1320'
$rwwe9uD;S     FW endianess        = Big Endian\ }@#PAy
    CFE loading address = 0xBFC00000
G D8D0U^Q+H l"J0E     CFE length          = 0x0000F2E8+Bz:n P*pn0Dp S
    RootFS loading addr = 0xBFC10100
q,z zbUu"w     RootFS length       = 0x00134000:k:|t_%A%C"i
    Kernel loading addr = 0xBFD44100 R~@B{
    Kernel length       = 0x00077197@8n%l#mQ mN
    Total Image length  = 0x001BA47F
h cQ:H!B6EX =======================================================z,M8b,\s m
5O g _ RGBbk
5r3J?U%K K|

1Q:}q8E8Q Ti+RL,^.l *** REQUESTED OPERATION IS COMPLETE, Bye! ***
P2c#I(]&@ %o6TR;hhj`
KW)j.Mx,zzw3F#n|
楼主帮研究一下,我还有两个831的猫,还想试试

peipei 发表于 2008-4-1 17:39

上面有错,重新发
{ U;r2L mE`,g 手上有个中型的831,外形和dynalink的rta1320一样,刷了dynalink最新的固件3.30j,后来发现tp-link的8810+也是一样的芯片,因为8810的猫可防电信的网络尖兵,所以想用8810的固件刷到中兴831上。但是用8810+的固件升级时提示tag不对,后来看到楼主的贴,就试着吧dynalink的tag合并到8810+里,不知是不是8810的固件不含CFE的问题,刷新之后猫就挂掉了。%DQr0Y~~
这是中兴猫里原带的dynalink的固件
O!qAY&t:B*j C:\rom>brfwmod -showinfo -i rta.bin#wBA;| l/kpx*Z
3L9s7?-E1V Ahpn
===============================================================W-w;_"@uF+D
Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird
8W8G/oi6hd0fB ===============================================================G!b zeYL:U
&lL RhY_-D-P
============decoding Tag information===================
2q)\#~Z$fQk     Tag Ver signature   = '6'
u^]M8HJU     SIG1(comany info)   = '                    '
4[H\'\v l     SIG2(FW version)    = '                    '2KO^ dzRpkW
    chip ID             = '      '
y(P2u*i(Cqy'NV     board ID            = 'RTA1320' O4@oB4^4WA#N
    FW endianess        = Big Endian
`j_ImsO R     CFE loading address = 0xBFC000000GI0aU&G+l:a.b
    CFE length          = 0x0000F2E8
-] D!C_ C(`8Gy2g q     RootFS loading addr = 0xBFC10100
`!f1mbr8O.k/pk     RootFS length       = 0x001340006C?tP;e H
    Kernel loading addr = 0xBFD44100I`1cf @M nS/E l(q
    Kernel length       = 0x00077197
e7J/N PsM U     Total Image length  = 0x001BA47F6ZAM7] sKLLJ
=======================================================
] | r+Ty5s[U*qq
u:XKr7KK/_"?y#d L 'h6s6VT*p g

9Q7LV? A0O?9? *** REQUESTED OPERATION IS COMPLETE, Bye! *** Y&pI+[ ^ r0fSEJ

~1RU3VE
+uc9q fF0|uU V x"`1`xDu
wI,C%t'`c:n)kQ
这是tp-link 8810的固件
!m'`3[9Z2Rs7A*I{ C:\rom>brfwmod -showinfo -i tp.binN/q _3Dz~P+{@

Wb P { bDG ===============================================================
$Yx O%@d+ZB RHBAN Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird8|aZ&nYA3NF
===============================================================
}/g*M`#J'lo
H"Z.}`S ============decoding Tag information===================iR"y*Z[;x
    Tag Ver signature   = '6'
_A gY1ylA     SIG1(comany info)   = 'Broadcom Corporatio'(A6j;r W.V#o
    SIG2(FW version)    = 'ver. 2.0'
o5C%_.`,R(@1e"Yb     chip ID             = '6338'Q\1C.EIKz7}
    board ID            = '96338L-2M-8M'
9c2B {e/U I(@1H Fs     FW endianess        = Big EndianjE9fTf0F6XS
    No CFE in Imagec$Vf9vnn by g
    RootFS loading addr = 0xBFC10100
'Hf t-{9}7jB     RootFS length       = 0x00136000
4b(r)jSR{     Kernel loading addr = 0xBFD46100
V:XZ&t"E~ d     Kernel length       = 0x00074F2D
C*V/c1q/n \     Total Image length  = 0x001AAF2D
)_!\(X4q3r:Q =======================================================
PVl+{5fm@&vv e:K8w!aiR%s-k

9b YmP @ S Sq5o A(xf,r}
*** REQUESTED OPERATION IS COMPLETE, Bye! ***
iI],GmU ;flCP O:o]Y
N~} v yK*Y%Oj

BT9{.I0{;~!Re 这是合并后的固件
rj_~@"e C:\rom>brfwmod -showinfo -i new.bin
Jo5g]'_wO2`V[ {/K.|cc
===============================================================
Zbcp7Px oG,b Broadcom Chip ADSL FW Image De/Compress Utility v1.5-hugebird
9c ]G0W"z_ ===============================================================G&F(?_!S!e:O)~
OI)L1O!~ jH
============decoding Tag information===================B zoo9GA;j
    Tag Ver signature   = '6'4b{,K A~$_D r
    SIG1(comany info)   = '                    '4o g"I&Ef8w`A
    SIG2(FW version)    = '                    '
2^?%r|+x2n     chip ID             = '      '
I$BQz)vN,?4r)s     board ID            = 'RTA1320'
-oi ?0?2v)G'M     FW endianess        = Big Endian
1e{;E~,y U4C x     No CFE in Image
t"F"Js1Vy u(d     RootFS loading addr = 0xBFC10100-Y_MV4?!@ Q F!U`R)I
    RootFS length       = 0x00136000
-\B*s/f#[9m*D     Kernel loading addr = 0xBFD46100EW2re8DQ|
    Kernel length       = 0x00074F2D
3c~^KL&m^     Total Image length  = 0x001AAF2D
A`ky)T| X"q\ =======================================================8^?v+I(cAw

@W0mBO
$m[Y+r/e`d
Cypu;R.W6DF *** REQUESTED OPERATION IS COMPLETE, Bye! ***f`XU&N6H1gW
yv"^*J-w\rQ
楼主帮研究一下,我还有两个831的猫

hugebird 发表于 2008-4-2 21:22

RTA1320用外部的交换芯片,兼容的设备外面有4个网络接口,96338L-2M-8M使用96338芯片本身的以太网芯片,设备只有一个网口,这两种设备因为以太网驱动不同,是不能互换固件的,RTA1320对应的是96338E,oe2? fIjx
如果CFE没有被刷掉可以用TTL线进入CFE,通过CFE的web刷新界面刷回原版的固件。
n/@F2aM1C]^ CFE如果被覆盖,可以在CFE里面试一下是否能把板子的ID换成96338E,重启进CFE后就可以从web刷新恢复。 若是CFE也缩水了,那只有用jtag一条路恢复

页: [1] 2 3

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.