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都可以试试。其他没有想到更好的办法。



MINE 发表于 2010-6-3 00:13:50

本帖最后由 MINE 于 2010-6-3 00:37 编辑

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


如果不行,只有尝试下OE接地 ...
hugebird 发表于 2010-6-3 00:09 http://www.chinaqos.com/images/common/back.gif

之前OE接地后再通电,依然认不出来FLASH,但看了你在另外一个贴子中的留言后,我加了/nompi参数,竟然又认出来了(在设备A上测试成功,设备B暂时没弄)。现在又成功写入CFE并能启动设备了。难道这个/nompi一定要加吗?

1.9h1暂未测试。

hugebird 发表于 2010-6-3 08:33:57

/nompi只和63x8设备有关,用不用对5354没影响,估计还是设备加电时间和执行brjtag的间隔对结果有一定影响。
页: 67 68 69 70 71 72 73 74 75 76 [77] 78 79 80 81 82 83 84 85 86
查看完整版本: Broadcom路由DSL猫用的JTAG工具最新版