hotqj
发表于 2008-12-7 18:06:11
好奇怪的问题。
要是说原版固件这个有提示,还可以说过去。因为原版固件要用到127Block那里做PSI配置保存。
但其它的固件,应该不用的吧,或者,你说说看,你刷后出现这个问题时,固件的启动地址是多少。用2740的20000地址启动来试,这样,应该是用不到127Block的。
天涯
发表于 2008-12-7 18:35:38
刚试了第一种方法:FLASH中已经有CFE及两个位置都刷入了2.73的固件。
检测情况如下:附件
天涯
发表于 2008-12-7 18:38:16
原帖由 hotqj 于 2008-12-7 10:06 发表 https://www.chinadsl.net/images/common/back.gif
好奇怪的问题。
要是说原版固件这个有提示,还可以说过去。因为原版固件要用到127Block那里做PSI配置保存。
但其它的固件,应该不用的吧,或者,你说说看,你刷后出现这个问题时,固件的启动地址是多少。用2740的2 ...
无论是200000还是800000,都会出现这样的情况。RG100的V1。1固件和USR9113的固件都出现一样的情况。这回真是让人百思不得其解了。
hotqj
发表于 2008-12-7 18:47:47
原帖由 天涯 于 2008-12-7 18:35 发表 https://www.chinadsl.net/images/common/back.gif
刚试了第一种方法:FLASH中已经有CFE及两个位置都刷入了2.73的固件。
检测情况如下:附件
Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... DMA Read Addr = ff300000 Set ADDR ERROR
DMA Write Addr = ff300000 Set ADDR ERROR
Done
Halting Processor ... <Processor Entered Debug Mode!> ... Done
Clearing Watchdog ... DMA Write Addr = b8000080 Set ADDR ERROR
Done
Initialize EBI ... Skipped
这里是第二次没断电时,提示的错误,看样子是和DMA有关,还有无法清除Watchdog。。。
你可以这样尝试一下,试试加上/nodma参数,看看是不是源程序里DMA相关的代码出错,或者是有问题。
天涯
发表于 2008-12-7 19:39:46
原帖由 hotqj 于 2008-12-7 10:47 发表 https://www.chinadsl.net/images/common/back.gif
这里是第二次没断电时,提示的错误,看样子是和DMA有关,还有无法清除Watchdog。。。
你可以这样尝试一下,试试加上/nodma参数,看看是不是源程序里DMA相关的代码出错,或者是有问题。
如果你的设备没有盖上的话,你帮试一下,看是不是接着两次检测,你的也会有这样的情况,我另一台正在联网使用中。
hugebird
发表于 2008-12-7 19:50:52
127是最后一个扇区如果系统从0开始计数。 所有的固件都是用最后一个扇区保持设置。
用brjtag -probeonly 看一下最后一个扇区的PPB是否等于1,排除写保护的因素。
可以用jtag擦除NVRAM区(最后2个扇区大小256KB)
brjtag - erase:nvram 这个操作之后最后两个扇区读出来应该全是FFFF.
用brjtag -backup:nvram把擦除的最后l两个扇区读出来,查一下到底是不是全FFFF, 如果有不为FFFF的说明flash坏了, 用ultraedit的搜索功能,分别搜十六进制的0~E,找到不为F的地方
用ultraedit生成一个262144字节的全0文件,命名为NVRAM.bin
brjtag -flash:nvram 把最后两个扇区写全0, 并用bjrtag -backup:nvram 把刚写入的读出来,还是用ultraedit 分别搜索搜十六进制的1~F,找到不为0的地方
如果flash有坏区的话,在CFE里面把PSI的大小从24K,改成152K,也就是把配置文件保存在倒数第2个扇区,或许还可以用。
原帖由 天涯 于 2008-12-7 09:41 发表 https://www.chinadsl.net/images/common/back.gif
刚才把全部可以刷并可以启动的固件都试了一遍,RG100A,2.73,9113都试了,都无法保存配置。基本上都和这个类似的提示:Error writing flash sector 127.Flash write error.Verify failed
我恨死这个127,固件也 ...
天涯
发表于 2008-12-7 20:39:36
我立马做一个106楼的方法,看一下结果如何。
天涯
发表于 2008-12-7 21:03:15
清除后备份出来,查:全为FF;构造全为0的,写入
刚才写到50%,死在那里了,我想可能第127坏了。
正好50%,一点不多,一点不少,
再上一次电,再写一次全0的NVRAM,看还会不会在50%死掉。
另外: PSI SIZE (1-64)KBYTES: 这里没有办法输入152K 啊
天涯
发表于 2008-12-7 21:15:10
D:\brjtag15>brjtag -flash:custom /window:1f000000 /start:1ffe0000 /length:20000
==============================================
Broadcom EJTAG Debrick Utility v1.5-hugebird
==============================================
Probing bus ... Done
Instruction Length set to 5
CPU running under BIG endian
CPU Chip ID: 00000110001101011000000101111111 (0635817F)
*** Found a Broadcom BCM6358 Rev 1 CPU chip ***
- EJTAG IMPCODE ....... : 00000000100000011000100100000100 (00818904)
- 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
Initialize EBI ... Skipped
Probing Flash at (Probe Address: 0x1f000000) ...
Match Flash Chip (VenID:DevID = 017e : 2101)
*** Found a Spansion S29GL128N/P Uni(16MB) Flash Chip ***
- Flash Chip Window Start .... : 1f000000
- Flash Chip Window Length ... : 01000000
- Selected Area Start ........ : 1ffe0000
- Selected Area Length ....... : 00020000
*** You Selected to Flash the CUSTOM.BIN ***
=========================
Flashing Routine Started
=========================
Total Blocks to Erase: 1
Erasing block: 128 (addr = 1ffe0000)...Done
Loading CUSTOM.BIN to Flash Memory...
死在这个地方不动了,看样子可能FLASH出问题了,或者是这个FLASH芯片没有焊好。明天得找朋友看一下。
天涯
发表于 2008-12-8 22:34:53
这回彻底没有招了,FLASH芯片的第128扇区坏了,今天让朋友帮吹下来,搞得非常干净再焊回去,结果,第128还是写不进去。一写就死。这下子真是没有救了,好不容易解锁,以为可以有得玩了,谁知道还会出现这样的结果。没有招了,郁闷啊!
有没有办法欺骗系统,让它认为是8M的FLASH?