Saturday, August 28, 2010

Soldering Paste caused an unexpected failure


Today I tried to reflash a SIE platform which is one top side with two layers pcb, so all the parts on top sides. I replaced a 64MB instead of 32MB. After that, I can not reflash rootfs image at some blocks and got fail.

My test script file is as:
#!/bin/bash
ROOTFS=openwrt-xburst-qi_lb60-root.ubi
sudo usbboot -f ./usbboot_2gb_nand.cfg  -c "boot"
sudo usbboot -f ./usbboot_2gb_nand.cfg  -c "nerase 16 512 0 0"
sudo usbboot -f ./usbboot_2gb_nand.cfg  -c "nprog 2048 $ROOTFS 0 0 -n"

adam@adam-laptop:~/sie_aw_reflash/sie_fs$ ./program_rootfs.sh
[sudo] password for adam:
usbboot - Ingenic XBurst USB Boot Utility
(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner
This program is Free Software and comes with ABSOLUTELY NO WARRANTY.

Now checking whether all configure args valid: YES
Current device information:
CPU type is Ingenic XBurst Jz4740
Crystal work at 12MHz, the CCLK up to 252MHz and PMH_CLK up to 84MHz
SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode
Nand page per block 128, Nand page size 4096, ECC offset in OOB 12, bad block offset in OOB 0, bad block page 127, use 1 plane mode
 Execute command: boot
 CPU data: Boot4740
 Already booted.
usbboot - Ingenic XBurst USB Boot Utility
(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner
This program is Free Software and comes with ABSOLUTELY NO WARRANTY.

Now checking whether all configure args valid: YES
Current device information:
CPU type is Ingenic XBurst Jz4740
Crystal work at 12MHz, the CCLK up to 252MHz and PMH_CLK up to 84MHz
SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode
Nand page per block 128, Nand page size 4096, ECC offset in OOB 12, bad block offset in OOB 0, bad block page 127, use 1 plane mode
 Execute command: nerase 16 512 0 0
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 16 blk_num 512)......
 Finish! Return: 00 08 01 00 00 00 00 00 (position 528)
 Force erase, no bad block infomation!
usbboot - Ingenic XBurst USB Boot Utility
(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner
This program is Free Software and comes with ABSOLUTELY NO WARRANTY.

Now checking whether all configure args valid: YES
Current device information:
CPU type is Ingenic XBurst Jz4740
Crystal work at 12MHz, the CCLK up to 252MHz and PMH_CLK up to 84MHz
SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode
Nand page per block 128, Nand page size 4096, ECC offset in OOB 12, bad block offset in OOB 0, bad block page 127, use 1 plane mode
 Execute command: nprog 2048 openwrt-xburst-qi_lb60-root.ubi 0 0 -n
 Programing No.0 device, flen 78118912, start page 2048...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 16 blk_num 149)......
 Finish! Return: 80 52 00 00 00 00 00 00 (position 165)
 Force erase, no bad block infomation!
 Size to send 78118912, transfer_size 524288
 Image type : without oob
 It will cause 149 times buffer transfer.
 Writing NAND page 2048 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2048 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2176
 Writing NAND page 2176 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2176 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - FAIL at off 0, wrote 0x55, read 0xff
  off 0 write: 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 00
  off 0 read:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 CPU data: Boot4740
 mark bad block : 17
 Mark bad block at 17
 End at Page: 2304
 Writing NAND page 2304 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2304 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2432
 Writing NAND page 2432 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2432 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2560
 Writing NAND page 2560 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2560 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - FAIL at off 32, wrote 0x0, read 0x2
  off 24 write: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  off 24 read:  00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
 CPU data: Boot4740
 mark bad block : 20
 Mark bad block at 20
 End at Page: 2688
 Writing NAND page 2688 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2688 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - FAIL at off 0, wrote 0x55, read 0xff
  off 0 write: 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 00
  off 0 read:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 CPU data: Boot4740
 mark bad block : 21
 Mark bad block at 21
 End at Page: 2816
 Writing NAND page 2816 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2816 page_num 128)
Error - can't set the address on Ingenic device: -110
Error - can't set data length on Ingenic device: -110
Error - can't set Ingenic device nand ops: -110
Error - can't read bulk data from Ingenic device:-110
Error - can't read bulk data from Ingenic device:-110
 Checking 524288 bytes... Comparing 524288 bytes - FAIL at off 0, wrote 0x55, read 0x35
  off 0 write: 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 00
  off 0 read:  35 18 04 00 74 15 80 04 03 00 80 04 f1 04 bb 02
 End at Page: -297579704
 Skip a old bad block !
 Writing NAND page -297579704 len 524288...
Error - can't retrieve XBurst CPU information: -110
 Device unboot! Boot it first!

The root cause was that I didn't clean soldering paste well with cleaner around SDRAM. Actually this is surprised for me! Since I frequently didn't clean soldering paste after rework or repair while faced over than or equally 4 layers pcba. So this implies another phenomenon. The data bus run along only top side is really dangerous and easily encountered unexpected equivalent impedance caused by other materials mixed with buses.

No comments:

Post a Comment