找回密码
 注册

QQ登录

只需一步,快速开始

查看: 454594|回复: 1266

Broadcom路由DSL猫用的JTAG工具最新版

    [复制链接]
发表于 2008-2-12 21:10:59 | 显示全部楼层 |阅读模式
熟悉Broadcom路由器的朋友,应该知道HairyDairyMaid WRT54G DeBrick JTAG工具。此次发布的是个Mod版。主要增加了对Big Endian BCM6338,6348等Broadcom DSL芯片的支持,修正了DMA数据访问和字节颠倒的问题,读写时间大大加快。增加对64K tiny CFE的支持。增加了自定义并口的支持。



  1. =============================================
  2. Broadcom EJTAG Debrick Utility v1.0-hugebird
  3. =============================================
  4. ABOUT: This program reads/writes flash memory on the Broadcom MIPS(LE)
  5.         Chip and compatible routers via EJTAG using either DMA Access
  6.         routines or PrAcc routines (slower/more compatible). Processor chips
  7.         supported in this version include the following chips:
  8.             Supported Chips
  9.             ---------------
  10.             Broadcom BCM4702 Rev 1 CPU              
  11.             Broadcom BCM4704 KPBG Rev 9 CPU         
  12.             Broadcom BCM4704 Rev 8 CPU              
  13.             Broadcom BCM4712 Rev 1 CPU              
  14.             Broadcom BCM4712 Rev 2 CPU              
  15.             Broadcom BCM4785 Rev 1 CPU              
  16.             Broadcom BCM5350 Rev 1 CPU              
  17.             Broadcom BCM5352 Rev 1 CPU              
  18.             Broadcom BCM5354 KFBG Rev 1 CPU         
  19.             Broadcom BCM5354 KFBG Rev 2 CPU         
  20.             Broadcom BCM5365 Rev 1 CPU              
  21.             Broadcom BCM5365 Rev 1 CPU              
  22.             Broadcom BCM6345 Rev 1 CPU              
  23.             Broadcom BCM6338 Rev 1 CPU              
  24.             Broadcom BCM6348 Rev 1 CPU              
  25.             Broadcom BCM6358 Rev 1 CPU              
  26.             TI AR7WRD TNETD7300GDU Rev 1 CPU        
  27.             BRECIS MSP2007-CA-A1 CPU               
  28.             TI TNETV1060GDW CPU                     

  29. USAGE: BrJtag [parameter] </noreset> </noemw> </nocwd> </nobreak> </noerase>
  30.                       </notimestamp> </dma> </nodma> <port:XXX> <revendian>
  31.                       <start:XXXXXXXX> </length:XXXXXXXX>
  32.                       </silent> </skipdetect> </instrlen:XX> </fc:XX> /bypass
  33.             Required Parameter
  34.             ------------------
  35.             -backup:cfe
  36.             -backup:tfe
  37.             -backup:nvram
  38.             -backup:kernel
  39.             -backup:wholeflash
  40.             -backup:custom
  41.             -backup:bsp
  42.             -erase:cfe
  43.             -erase:nvram
  44.             -erase:kernel
  45.             -erase:ternel
  46.             -erase:wholeflash
  47.             -erase:custom
  48.             -erase:bsp
  49.             -flash:cfe
  50.             -flash:nvram
  51.             -flash:kernel
  52.             -flash:wholeflash
  53.             -flash:custom
  54.             -flash:bsp
  55.             -probeonly
  56.             Optional Switches
  57.             -----------------
  58.             /noreset ........... prevent Issuing EJTAG CPU reset
  59.             /noemw ............. prevent Enabling Memory Writes
  60.             /nocwd ............. prevent Clearing CPU Watchdog Timer
  61.             /nobreak ........... prevent Issuing Debug Mode JTAGBRK
  62.             /noerase ........... prevent Forced Erase before Flashing
  63.             /notimestamp ....... prevent Timestamping of Backups
  64.             /dma ............... force use of DMA routines
  65.             /nodma ............. force use of PRACC routines (No DMA)
  66.             /window:XXXXXXXX ... custom flash window base (in HEX)
  67.             /start:XXXXXXXX .... custom start location (in HEX)
  68.             /length:XXXXXXXX ... custom length (in HEX)
  69.             /silent ............ prevent scrolling display of data
  70.             /skipdetect ........ skip auto detection of CPU Chip ID
  71.             /instrlen:XX ....... set instruction length manually
  72.             /wiggler ........... use wiggler cable
  73.             /bypass ............ Unlock Bypass command & disable polling
  74.             /revendian.......... reverse chip endianess. (default is little)
  75.             /tinycfe............ enable tiny CFE support
  76.             /port:XXX........... custom parallel port(default XXX is 378)
  77.                                  only use for Windows version
  78.             /fc:XX = Optional (Manual) Flash Chip Selection
  79.             -----------------------------------------------
  80.             /fc:01 ............. MX29LV800BTC 512kx16 TopB  (1MB)        
  81.             /fc:02 ............. MX29LV800BTC 512kx16 BotB  (1MB)        
  82.             /fc:03 ............. AMD 29lv160DB 1Mx16 BotB   (2MB)        
  83.             /fc:04 ............. AMD 29lv160DT 1Mx16 TopB   (2MB)        
  84.             /fc:05 ............. EON EN29LV160A 1Mx16 BotB  (2MB)        
  85.             /fc:06 ............. EON EN29LV160A 1Mx16 TopB  (2MB)        
  86.             /fc:07 ............. MBM29LV160B 1Mx16 BotB     (2MB)        
  87.             /fc:08 ............. MBM29LV160T 1Mx16 TopB     (2MB)        
  88.             /fc:09 ............. MX29LV161B 1Mx16 BotB      (2MB)        
  89.             /fc:10 ............. MX29LV161T 1Mx16 TopB      (2MB)        
  90.             /fc:11 ............. K8D1716UTC  1Mx16 TopB     (2MB)        
  91.             /fc:12 ............. K8D1716UBC  1Mx16 BotB     (2MB)        
  92.             /fc:13 ............. ST M29W160EB 1Mx16 BotB    (2MB)        
  93.             /fc:14 ............. ST M29W160ET 1Mx16 TopB    (2MB)        
  94.             /fc:15 ............. Macronix MX25L160A         (2MB)        
  95.             /fc:16 ............. K8D3216UTC  2Mx16 TopB     (4MB)        
  96.             /fc:17 ............. K8D3216UBC  2Mx16 BotB     (4MB)        
  97.             /fc:18 ............. AMD 29lv320MB 2Mx16 BotB   (4MB)        
  98.             /fc:19 ............. AMD 29lv320MT 2Mx16 TopB   (4MB)        
  99.             /fc:20 ............. AMD 29lv320MT 2Mx16 TopB   (4MB)        
  100.             /fc:21 ............. TC58FVB321 2Mx16 BotB      (4MB)        
  101.             /fc:22 ............. TC58FVT321 2Mx16 TopB      (4MB)        
  102.             /fc:23 ............. AT49BV/LV16X 2Mx16 BotB    (4MB)        
  103.             /fc:24 ............. AT49BV/LV16XT 2Mx16 TopB   (4MB)        
  104.             /fc:25 ............. MBM29DL323BE 2Mx16 BotB    (4MB)        
  105.             /fc:26 ............. MBM29DL323TE 2Mx16 TopB    (4MB)        
  106.             /fc:27 ............. AMD 29lv320DB 2Mx16 BotB   (4MB)        
  107.             /fc:28 ............. AMD 29lv320DT 2Mx16 TopB   (4MB)        
  108.             /fc:29 ............. MBM29LV320BE 2Mx16 BotB    (4MB)        
  109.             /fc:30 ............. MBM29LV320TE 2Mx16 TopB    (4MB)        
  110.             /fc:31 ............. MX29LV320AB 2Mx16 BotB     (4MB)        
  111.             /fc:32 ............. MX29LV320AB 2Mx16 BotB     (4MB)        
  112.             /fc:33 ............. MX29LV320AT 2Mx16 TopB     (4MB)        
  113.             /fc:34 ............. MX29LV320AT 2Mx16 TopB     (4MB)        
  114.             /fc:35 ............. ST 29w320DB 2Mx16 BotB     (4MB)        
  115.             /fc:36 ............. ST 29w320DT 2Mx16 TopB     (4MB)        
  116.             /fc:37 ............. W19B(L)320ST   2Mx16 TopB  (4MB)        
  117.             /fc:38 ............. W19B(L)320SB   2Mx16 BotB  (4MB)        
  118.             /fc:39 ............. M29DW324DT 2Mx16 TopB      (4MB)        
  119.             /fc:40 ............. M29DW324DB 2Mx16 BotB      (4MB)        
  120.             /fc:41 ............. TC58FVM6T2A  4Mx16 TopB    (8MB)        
  121.             /fc:42 ............. TC58FVM6B2A  4Mx16 BopB    (8MB)        
  122.             /fc:43 ............. K8D6316UTM  4Mx16 TopB     (8MB)        
  123.             /fc:44 ............. K8D6316UBM  4Mx16 BotB     (8MB)        
  124.             /fc:45 ............. Intel 28F160B3 1Mx16 BotB  (2MB)        
  125.             /fc:46 ............. Intel 28F160B3 1Mx16 TopB  (2MB)        
  126.             /fc:47 ............. Intel 28F160C3 1Mx16 BotB  (2MB)        
  127.             /fc:48 ............. Intel 28F160C3 1Mx16 TopB  (2MB)        
  128.             /fc:49 ............. Intel 28F320B3 2Mx16 BotB  (4MB)        
  129.             /fc:50 ............. Intel 28F320B3 2Mx16 TopB  (4MB)        
  130.             /fc:51 ............. Intel 28F320C3 2Mx16 BotB  (4MB)        
  131.             /fc:52 ............. Intel 28F320C3 2Mx16 TopB  (4MB)        
  132.             /fc:53 ............. Sharp 28F320BJE 2Mx16 BotB (4MB)        
  133.             /fc:54 ............. Intel 28F640B3 4Mx16 BotB  (8MB)        
  134.             /fc:55 ............. Intel 28F640B3 4Mx16 TopB  (8MB)        
  135.             /fc:56 ............. Intel 28F640C3 4Mx16 BotB  (8MB)        
  136.             /fc:57 ............. Intel 28F640C3 4Mx16 TopB  (8MB)        
  137.             /fc:58 ............. Intel 28F160S3/5 1Mx16     (2MB)        
  138.             /fc:59 ............. Intel 28F320J3 2Mx16       (4MB)        
  139.             /fc:60 ............. Intel 28F320J5 2Mx16       (4MB)        
  140.             /fc:61 ............. Intel 28F320S3/5 2Mx16     (4MB)        
  141.             /fc:62 ............. Intel 28F640J3 4Mx16       (8MB)        
  142.             /fc:63 ............. Intel 28F640J5 4Mx16       (8MB)        
  143.             /fc:64 ............. Intel 28F128J3 8Mx16      (16MB)        
  144.             /fc:65 ............. SST39VF1601 1Mx16 BotB     (2MB)        
  145.             /fc:66 ............. SST39VF1602 1Mx16 TopB     (2MB)        
  146.             /fc:67 ............. SST39VF3201 2Mx16 BotB     (4MB)        
  147.             /fc:68 ............. SST39VF3202 2Mx16 TopB     (4MB)        
  148.             /fc:69 ............. SST39VF320 2Mx16           (4MB)        
  149.             /fc:70 ............. SST39VF6401 4Mx16 BotB     (8MB)        
  150.             /fc:71 ............. SST39VF6402 4Mx16 TopB     (8MB)        
  151.             /fc:72 ............. SST39VF6401B 4Mx16 BotB    (8MB)        
  152.             /fc:73 ............. SST39VF6402B 4Mx16 TopB    (8MB)        
  153.             /fc:74 ............. Spansion S29GL032M BotB    (4MB)        
  154.             /fc:75 ............. Spansion S29GL032M TopB    (4MB)        
  155.             /fc:76 ............. Spansion S29GL064M BotB    (8MB)        
  156.             /fc:77 ............. Spansion S29GL064M TopB    (8MB)        

  157. NOTES: 1) If 'flashing' - the source filename must exist as follows:
  158.            CFE.BIN, NVRAM.BIN, KERNEL.BIN, WHOLEFLASH.BIN or CUSTOM.BIN
  159.            BSP.BIN, CFE.BIN, TERNEL.BIN
  160.         2) If you have difficulty auto-detecting a particular flash part
  161.            you can manually specify your exact part using the /fc:XX option.
  162.         3) If you have difficulty with the older bcm47xx chips or when no CFE
  163.            is currently active/operational you may want to try both the
  164.            /noreset and /nobreak command line options together.  Some bcm47xx
  165.            chips *may* always require both these options to function properly.
  166.         4) When using this utility, usually it is best to type the command line
  167.            out, then plug in the router, and then hit <ENTER> quickly to avoid
  168.            the CPUs watchdog interfering with the EJTAG operations.
  169.         5) /bypass - enables Unlock bypass command for some AMD/Spansion type
  170.            flashes, it also disables polling
  171.         6) When enable 64K tiny CFE option, two option combins can be uesed.
  172.            one, CFE or KERNEL choice and add /tinycfe option.
  173.            another, use TFE and TERNEL to replace CFE and KERNEL ons.
  174. ***************************************************************************
  175. * Flashing the KERNEL or WHOLEFLASH will take a very long time using JTAG *
  176. * via this utility.  You are better off flashing the CFE & NVRAM files    *
  177. * & then using the normal TFTP method to flash the KERNEL via ethernet.   *
  178. ***************************************************************************
复制代码

[ 本帖最后由 hugebird 于 2008-2-12 13:16 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

点评

Thank you very much!  发表于 2012-5-28 20:53
发表于 2010-10-8 21:47:49 | 显示全部楼层
回复 985# wshaofan


    终于知道我的JLINK为啥不能用了,原来是我升到了最新4.20版FW的缘故,降回到4.08版就可以了。
 楼主| 发表于 2009-9-18 22:00:25 | 显示全部楼层
307# hugebird


这两天调试代码,RG100AA遇到JTAG挂住的问题,虽然尝试修改软件,但收效甚微。
不过还是想办法解决了。另外这个帖子里面遇到同样的问题,有兴趣的可以参考一下
https://www.chinadsl.net/viewthread.php?tid=30557

现象是这样,brjtag提示无法进入Debug模式,1.6r -1.7t所有版本都会挂在这里,不能继续,
  1. Halting Processor ... <Processor did NOT enter Debug Mode!> ... Done
复制代码


挂住的原因是:处理器由于flash 启动扇区的混乱代码造成进入非正常状态,无法响应jtag调试中断,所以调试指令无法被响应执行。

解决方法: 在打开modem电源之前,将flash的输出使能OE#引脚接地,再打开电源,
释放OE的短接线,最后执行Brjtag代码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2008-7-13 13:15:19 | 显示全部楼层
附件里的这个版本加入了 Spansion S29GL128N 16MB flash的支持,没有设备测试不知道ID检查是否正确,S29GLxxxN系列的flash采用的是统一扇区架构,S29GL128有128个扇区,每扇区128KB。

如果不能正确检测ID号,可以强制使用/fc:78定制使用新加入的16MB芯片参数。

因为这个新的16MB flash是128KB扇区,而NVRAM只有64KB,所以删除或者写操作NVRAM可能会出现问题,原ejtag代码没有考虑这一点,我一直想改这部分代码,因为没有时间,所以到现在也没去修改。如果有人要清NVRAM,还是用TTL在CFE系统里去擦除吧。

顺便说一下,-probeonly 现在可以显示未知flash芯片的ID号,便于增加新的芯片参数。

[ 本帖最后由 hugebird 于 2008-7-13 05:20 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
liuyuexing 该用户已被删除
发表于 2008-3-19 03:37:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
anqingling 该用户已被删除
发表于 2008-3-23 19:30:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-3-23 19:37:54 | 显示全部楼层
不错的软件,刚好支持我的BCM6358,可惜我没JTAG线。
发表于 2008-3-23 19:50:26 | 显示全部楼层
不知道我的S29GL128N10TF101要用哪个fc参数。
发表于 2008-3-28 08:53:20 | 显示全部楼层
顶,修复的好工具:victory:
发表于 2008-3-28 20:22:08 | 显示全部楼层
:( 不会用。。有教程吗
lengwail 该用户已被删除
发表于 2008-6-30 22:23:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-7-7 13:21:27 | 显示全部楼层
楼主能帮下我吗?我的Flash是S29GL128N10TFI01,,,是个16M的Flash,下边有这个Flash的PDF文件,能不能帮下编译个可以支持这个Flash的版本发给我啊。先谢谢啦。

下图为我的猫的接口,看样子应该是JTAG接口,不过不知道针脚定义和JTAG的线如何做法。帮下啦。
现已经知道,2.4.6.8.10.12为GND其它的就不知道了。

[ 本帖最后由 hotqj 于 2008-7-7 06:08 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2008-7-7 14:46:26 | 显示全部楼层
不会用。。有教程吗
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|宽带技术网 |网站地图

粤公网安备 44152102000001号

GMT+8, 2024-3-19 19:16 , Processed in 0.033854 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表