argeoo 发表于 2010-6-1 16:55:00

回复 1# hugebird


    下载来备用,刷刷其他芯片看看

MINE 发表于 2010-6-1 19:42:44

回复MINE


几点疑问
1.写入是用哪个版本完成的?
2./initcpu 如果不能很快完成,说明cpu已经挂住 ...
hugebird 发表于 2010-6-1 12:54 https://www.chinadsl.net/images/common/back.gif

1、现在用1.9h在并口线加wx8前提下,可以对CFE进行写操作,写完后立即读取CFE比对,文件完全一样,而且现在也没有字节偏位问题了,应该是成功了。
2、在以前未加/initcpu时,无论使用哪个版本(包括1.9h)均认不出FLASH,写入也不成功(写进去后读出来的是空的文件,前几楼附件中有)。
3、现在CFE已经成功写入,设备也能启动(超级终端中有显示,并且可以升级固件)。在此情况下 -probeonly /wx8 /initcpu输出如下(依然卡住)

C:\>brjtag -probeonly /wx8 /initcpu
      ===============================================
         Broadcom EJTAG Debrick Utility v1.9h-hugebird
      ===============================================
Probing bus ... Done
Detected IR Length is 8
CPU assumed running under LITTLE endian
CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 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 ...

如果不加/initcpu,则可以找出FLASH。
C:\>brjtag -probeonly /wx8
      ===============================================
         Broadcom EJTAG Debrick Utility v1.9h-hugebird
      ===============================================
Probing bus ... Done
Detected IR Length is 8
CPU assumed running under LITTLE endian
CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 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 = 017E : 2101)
*** Found a CFI Compatiable Flash Chip from AMD/Spansion

*** REQUESTED OPERATION IS COMPLETE ***

4、现在能写入的版本是1.9h,并且是在自动认出了FLASH后,而且在没用/initcpu之前,1.9h也认不出FLASH,说明你之前说的地址偏移的原因是极有可能的,而通过我几次/initcpu,现在可以直接认出FLASH了。
5、如果加/nodma,耗时太长,有点来不及,暂时未测试。如果需要请详细说一下,我在晚上睡觉前测试。
6、我清楚得记得之前有一次我用1.9x版本(具体哪个版本不记得了)加/fc:088对这台设备进行过全片擦除,log显示擦除成功之类的。但今天在用1.9f认出FLASH并写入其它设备的CFE后(写入CFE后立即备份出来比较,证明确实写进去了),设备正常启动,但固件竟然还是电信定制的,这说明我之前看到的擦除wholeflash又是个假象?另外这个设备之前刷固件时就出现过同样的情况:用tftp方式写DD固件时,超级终端窗口显示Done之类的,但设备随后自动重启又还是原来的固件,写固件老是不成功。写之前之后清除nvram都试过了,不行。不知道这个问题你有什么看法。

sccdlf 发表于 2010-6-2 20:39:36

brjtagbrjtag

hugebird 发表于 2010-6-2 22:04:58

回复 763# MINE

我估计过程是这样的,
第1次用1.9g,在没有清flash之前,因为设备有cfe做初始化,所以是可以查到flash型号的。

当首次用1.9g进行flash:cfe操作,cfe扇区被擦除,但写入不正确,再开机,设备不能初始化,
一切对flash的操作都无效,所以后面写入,擦除等等实际都是不成功的,但因为备份出来的都是空,所以误认为是操作成功了,原固件仍然保持在flash里面。因为不能正确初始化,flash不能被检测到。

当某次cfe被写入以后,再开电,写入的cfe虽然有1字便宜,但不影响初始化,所以flash可以被检测到了。

由于有位置便宜的cfe做初始化,又由于/initcpu的初始化命令不能再次对设备初始化,所以只要加这个参数,每次必然会挂在那里。

flash这时候可以用1.9h进行写人.可以检测的,但不能加/initcpu参数。

因为前面全片擦除命令是无效的,所以原始固件还在设备中,一旦cfe被正确写入,引导也就不是问题了。

不能写入其他固件的最大可能我猜测是这个其他固件不符合cfe认为的正确格式。虽然进入到升级流程,但因为数据不符合格式,最终还是无法正确升级

MINE 发表于 2010-6-2 22:18:10

本帖最后由 MINE 于 2010-6-2 22:32 编辑

回复MINE

我估计过程是这样的,
第1次用1.9g,在没有清flash之前,因为设备有cfe做初始化,所以是可 ...
hugebird 发表于 2010-6-2 22:04 https://www.chinadsl.net/images/common/back.gif

1、设备A在多次写入擦除后,现在用1.9h试了不下于30次,始终认不出FLASH(S29GL128N) ,强行加/fc:088后写入再立即备份出来,备份出的CFE“几乎”是全空的(似乎有文件头)。
2、后换设备B(硬件上与A几乎完全相同)来进行测试,95%以上可以直接认出FLASH(S29GL128P) ,偶尔不能认出,重新开关一下设备似乎又可以。已经在设备B上测试反复写入或备份过近20次CFE,都成功。但就在刚才,写入一个网友编译的CFE后,设备不能启动,而且目前已经认不出FLASH来,无论如何都不行,包括不加/wx8参数。
3、【接问题2】既然在设备B上认不出FLASH,我就想尝试一下把WHLOEFLASH整个清空一下,但执行brjtag -erase:wholeflash /fc:088 /wx8后,无法完成——停在block 2。我突发奇想,去掉/wx8参数,竟然清空“成功”,而且速度很快(未加/bypass)。 你可能会问设备B的FLASH是否是8位的,我很负责的说,在问题2中我提到反复成功写入20多次CFE的过程中,都是加了/wx8参数的。

hugebird 发表于 2010-6-2 23:07:17

本帖最后由 hugebird 于 2010-6-2 15:09 编辑

回复 766# MINE

1.如果认不出flash,最大的可能是cfe不能初始化,最好加/initcpu参数。必须要确认设备能进入debug模式,如果进入不了这个模式,建议考虑OE接地方式加电。 用/window参数找到可操作的地址,/fc参数基本不需要用,因为flash不能自动检测,说明flash无法正常写入命令,/fc操作得到的数据是不可信的。 1.8以后的版本/fc的作用已经和以前不同了。

2.可以多次正确识别的原因是这个设备cfe是好的,一旦坏掉就会出现无法识别flash的问题。估计53xx系列的芯片和63xx系列的一样,必须每次加电才能保证正确的操作。不能进入debug模式,很多操作是不能正常完成的。

3.一旦cfe坏掉,flash部分地址就是不可操作的,erase命令自然无法进行。 全片擦除为什么不用, -probeonly /erasechip.

所有恢复设备的关键就是要找的一个可以操作flash的地址,通过这个地址可以检测到flash id,通过这个地址可以进行全片擦除,去掉无效bootloader的影响。
/wx8只是按照8位进行操作,有些操作比如擦除,对地址不敏感,按16操作时也是可以的。

MINE 发表于 2010-6-2 23:17:48

回复 767# hugebird



我现在是不是应该这样操作?


C:\>brjtag -probeonly /erasechip /wx8 /initcpu
      ===============================================
         Broadcom EJTAG Debrick Utility v1.9h-hugebird
      ===============================================
Probing bus ... Done
Detected IR Length is 8
CPU assumed running under LITTLE endian
CPU Chip ID: 00110101001101010100000101111111 (3535417F)
*** Found a Broadcom manufactured BCM5354 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 ...


但还是一直处于Loading CPU Configuration Code ... 状态。

jonesleedg 发表于 2010-6-2 23:34:36

支持!支持!

chinaliya 发表于 2010-6-2 23:58:09

hugebird 发表于 2010-6-3 00:09:15

回复hugebird



我现在是不是应该这样操作?


但还是一直处于Loading CPU Configuration Code...
MINE 发表于 2010-6-2 15:17 https://www.chinadsl.net/images/common/back.gif


操作没问题,关键是初始化代码不能正确执行,修改了下,或许能行,


如果不行,只有尝试下OE接地启动法,还有就是手工检测不同地址,找到可以用
brjtag -probeonly /wx8 /erasechip /window:1c000000

OE接地时,两个版本的/initcpu都可以试试。其他没有想到更好的办法。



页: 67 68 69 70 71 72 73 74 75 76 [77] 78 79 80 81 82 83 84 85 86
查看完整版本: Broadcom路由DSL猫用的JTAG工具最新版