找回密码
 注册

QQ登录

只需一步,快速开始

楼主: hugebird

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

    [复制链接]
发表于 2010-5-24 08:42:27 | 显示全部楼层
谢谢楼主共享
发表于 2010-5-24 15:02:12 | 显示全部楼层
回复  hugebird


1.9f

测试版,稳定之前源码暂不扩散

- 增加J-link arm 支持
- 进一步优化usb设 ...
hugebird 发表于 2010-5-22 18:49

用J-LINK V8 连接时,S29GL128N认不出来。
 楼主| 发表于 2010-5-24 19:17:35 | 显示全部楼层
用J-LINK V8 连接时,S29GL128N认不出来。
MINE 发表于 2010-5-24 07:02



  可能是modem加电时间与brjtag执行时间间隔没掌握好,大概半秒钟,需要自己去摸索。
usb的接口先执行brjtag,程序会自动暂停,打开猫的电源,短暂停顿马上按回车。

如果始终有问题,把输出贴一下。
发表于 2010-5-24 21:34:15 | 显示全部楼层
THX
mips   usb->jtag 终于看到希望
发表于 2010-5-24 23:18:07 | 显示全部楼层

1.9f的几个问题

本帖最后由 MINE 于 2010-5-24 23:22 编辑
可能是modem加电时间与brjtag执行时间间隔没掌握好,大概半秒钟,需要自己去摸索。
usb的接口先执 ...
hugebird 发表于 2010-5-24 19:17



1、无论是并口数据线还是JLINK,都可以备份,但要加/fc参数。
2、无论是哪种数据线,都认不出S29GL128P。
   以下是用并口数据线时的输出
C:\brjtag>brjtag -probeonly

        ===============================================
         Broadcom EJTAG Debrick Utility v1.9f-hugebird
        ===============================================

Probing bus ... Done

Instruction Length set to 8

CPU assumed running under LITTLE endian

CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 KFBG REV 03 CPU ***

    - EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
    - EJTAG Version ....... : 1 or 2.0
    - EJTAG DMA Support ... : Yes
    - EJTAG Implementation flags: R4k MIPS16 MIPS32

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped

Probing Flash at Address: 0x1FC00000 ...
Detected Chip ID (VenID:DevID = 0000 : 3C06)
*** Unknown or NO Flash Chip Detected ***


*** REQUESTED OPERATION IS COMPLETE ***


3、无论是哪种数据线,都不能运行擦除命令,包括擦除CFE、TFE或WHOLEFLASH。
     以下是用并口数据线时的输出

C:\brjtag>brjtag -erase:cfe /fc:088
        ===============================================
         Broadcom EJTAG Debrick Utility v1.9f-hugebird
        ===============================================

Probing bus ... Done
Instruction Length set to 8
CPU assumed running under LITTLE endian
CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 KFBG REV 03 CPU ***

    - EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
    - EJTAG Version ....... : 1 or 2.0
    - EJTAG DMA Support ... : Yes
    - EJTAG Implementation flags: R4k MIPS16 MIPS32

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped
*** Manually Selected a Spansion S29GL128N/P Uni  (16MB) from AMD/Spansion

    - Flash Chip Window Start .... : 1C000000
    - Flash Chip Window Length ... : 01000000
    - Selected Area Start ........ : 1C000000
    - Selected Area Length ....... : 00040000

*** You Selected to Erase the CFE.BIN ***
=========================
Erasing Routine Started
=========================
Total Blocks to Erase: 2

Erasing block: 1 (addr = 1C000000)...^C
C:\brjtag>
 楼主| 发表于 2010-5-25 00:21:44 | 显示全部楼层
1、无论是并口数据线还是JLINK,都可以备份,但要加/fc参数。
2、无论是哪种数据线,都认不出S29GL1 ...
MINE 发表于 2010-5-24 15:18



5354的路由器啊, little endian部分的代码一直没更新过。但后面直接/fc都不能擦除就有点奇怪了。不知道这个设备是不是-backup也不能完成还是只能做-backup.
一种可能性,这个设备flash硬件是按8bit模式进行访问的,那么目前没有工具可以支持8位模式,尽管CPUID可以读出来,但JTAG只能加/fc参数读出flash,不能写 。因为读出是5354自动完成的,写入是PC控制的。
确认flash是工作在x8还是工作在x16的办法是用万用表在设备加电的时候量pin 53(BYTE)引脚对地电压,圆点上面那排,从左数第4个脚。>2.7V,高电压,说明flash工作在x16模式,brjtag可以支持,如果 <1V, 低电压,说明flash工作在x8 模式,brjtag目前不能支持任何与写操作相关的动作。

x8模式是计划中的功能,如果要支持,软件结构需要大变,短期内恐怕实现不了。

另外方便的话,贴一下这两个命令的log

brjtag -probeonly /verbose
brjtag -probeonly /window:1c000000 /verbose
发表于 2010-5-25 09:38:57 | 显示全部楼层
本帖最后由 MINE 于 2010-5-25 09:40 编辑

1、采用Bcm5354的DI524SU C1版的S29GL128N的BYTE脚加电后低于1V,而且跟pin 54 (VSS)是通着的(这点不解,烦请解释下)。
2、经测量,采用Bcm6358芯片的RG100A的S29GL128P的BYTE脚在加电后确实大于2.7V,Brjtag 1.9f通过J-Link可以正常读出FLASH(没有具体型
号,Found a CFI Compatiable Flash Chip from AMD/Spansion),可以备份,可以擦除,也可以写入。
3、
brjtag -probeonly /verbose 输出log
C:\brjtag>brjtag -probeonly /verbose /cable:3

        ==========================================
         Broadcom EJTAG Debrick Utility v1.9f-hugebird
        ==========================================

Initializing J-Link HW Ver. 8.0
Set I/O speed to 3000 KHz
Detected target Vref = 3.248V

USB TAP device has been initialized. Please confirm VREF signal connected!
Press any key to continue ONCE target board is powered on!

Probing bus ... Done
Instruction Length set to 8
CPU assumed running under LITTLE endian
CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 KFBG REV 03 CPU ***

    - EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
    - EJTAG Version ....... : 1 or 2.0
    - EJTAG DMA Support ... : Yes
    - EJTAG Implementation flags: R4k MIPS16 MIPS32

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped

Probing Flash at Address: 0x1FC00000 ...
Read raw Chip ID (MfrID:DevID = 0000 : 0090)
Detected Chip ID (VenID:DevID = 0000 : 0090)


Read Array Starting from offset [0x0010]
Array[0x10] = 0xB800
Array[0x11] = 0x0098
Array[0x12] = 0x5024


Read Array Starting from offset [0x0010]
Array[0x10] = 0x0010
Array[0x11] = 0x0098
Array[0x12] = 0x5024


Read Array Starting from offset [0x0010]
Array[0x10] = 0x0010
Array[0x11] = 0x012A
Array[0x12] = 0x5024


Read Array Starting from offset [0x0010]
Array[0x10] = 0x0010
Array[0x11] = 0x0098
Array[0x12] = 0x5024
*** Unknown or NO Flash Chip Detected ***


*** REQUESTED OPERATION IS COMPLETE ***

brjtag -probeonly /window:1c000000 /verbose 输出log
C:\brjtag>brjtag -probeonly /window:1c000000 /verbose /cable:3
        ==========================================
         Broadcom EJTAG Debrick Utility v1.9f-hugebird
        ==========================================

Initializing J-Link HW Ver. 8.0
Set I/O speed to 3000 KHz
Detected target Vref = 3.248V

USB TAP device has been initialized. Please confirm VREF signal connected!
Press any key to continue ONCE target board is powered on!

Probing bus ... Done
Instruction Length set to 8
CPU assumed running under LITTLE endian
CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 KFBG REV 03 CPU ***

    - EJTAG IMPCODE ....... : 00000000100000010000100100000100 (00810904)
    - EJTAG Version ....... : 1 or 2.0
    - EJTAG DMA Support ... : Yes
    - EJTAG Implementation flags: R4k MIPS16 MIPS32

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... Done
Loading CPU Configuration Code ... Skipped

Probing Flash at Address: 0x1C000000 ...
Read raw Chip ID (MfrID:DevID = 0000 : 0090)
Detected Chip ID (VenID:DevID = 0000 : 0090)


Read Array Starting from offset [0x0010]
Array[0x10] = 0xB800
Array[0x11] = 0x0098
Array[0x12] = 0x5024


Read Array Starting from offset [0x0010]
Array[0x10] = 0x0010
Array[0x11] = 0x0098
Array[0x12] = 0x5024


Read Array Starting from offset [0x0010]
Array[0x10] = 0x0010
Array[0x11] = 0x012A
Array[0x12] = 0x5024


Read Array Starting from offset [0x0010]
Array[0x10] = 0x0010
Array[0x11] = 0x0098
Array[0x12] = 0x5024
*** Unknown or NO Flash Chip Detected ***


*** REQUESTED OPERATION IS COMPLETE ***

两个个额外的问题(1.9f with J-Link):
A、有时会发现Vref电压为正常的3.3V,有时竟然是47V甚至更高(Vref连接到TTL接口的VCC)。
B、采用Bcm6358芯片的RG100A的S29GL128N,单独使用brjtag -erash:wholeflash /cable:3可以成功全片擦除,但使用brjtag -flash:wholeflash /cable:3时,擦除到block 82时则无法继续,brjtag -flash:wholeflash /cable:3 /L5:1000也不行。
发表于 2010-5-25 10:49:32 | 显示全部楼层
很好很强大
 楼主| 发表于 2010-5-25 13:11:02 | 显示全部楼层
1、采用Bcm5354的DI524SU C1版的S29GL128N的BYTE脚加电后低于1V,而且跟pin 54 (VSS)是通着的(这点不解,烦 ...
MINE 发表于 2010-5-25 01:38


看来就是x8的原因了。mips32处理器的数据位宽是32bit,一次操作可以读写4字节。但32bit操作仅限于内存,flash需要cpu多次读取,拼合成32bit,只是由处理器自动完成的。
flash x16模式就是读写flash的数据线是16bit,要完成32bit,需要连续操作2次才能完成。x8模式数据位宽是8位,完成32bit需要操作4次。因为flash读取和内存相同,所以x8和x16的backup操作对brjtag没有区别。

flash写入需要根据操作位宽对特定地址使用特定命令才能完成,不能象内存写入一样由处理器自动完成。两种位宽写入是不兼容的。flash的位宽设定是由pin53引脚控制,通过测电压可以确定工作状态。注意只能确定工作状态,不能通过设置电压改版工作位宽,因为cpu操作位宽无法设置,另外高8位数据线还要物理引线。


6358全擦以后有部分扇区不能访问是老问题,原因是1fxxxxxx部分地址与默认的寄存器冲突,这部分地址不能被访问,解决办法是加/initcpu选项,或者,先刷了CFE,重加电后再刷wholeflash.

看是否有扇区不能访问,对于amd兼容的flash可以用命令
brjtag -probeonly /showppb

J-link电压检测不准的原因是上一次j-link操作没有正常退出,导致再次操作是命令不能正确执行,插拔一下usb连线就好了。J-link工作的时候,最好不要强行中止,否则J-link里面的处理器容易跑飞,损坏固件,恢复j-link固件是比较麻烦的事情,这一点Ft2232可靠性要比J-link强的多。
发表于 2010-5-25 15:21:36 | 显示全部楼层
本帖最后由 MINE 于 2010-5-25 15:24 编辑
看来就是x8的原因了。mips32处理器的数据位宽是32bit,一次操作可以读写4字节。但32bit操作仅限于内存, ...
hugebird 发表于 2010-5-25 13:11


几个问题:
1、根据我实际的情况,JTAG针脚肯定没错,是不是?
2、即使您的新版本Brjtag开始支持8bit的FLASH,那么把从16bit中备份出来的CFE或TFE等写入8bit的FLASH中,能否成功?
3、期望一下支持8bit FLASH的新版本的大致时间?
4、FLASH的工作位宽由先天的出厂设定,还是由CPU或控制电路等后天因素决定的?
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-5-4 14:49 , Processed in 0.027145 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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