如下面,发现某片nand flash 在0x000e0000 地址存在一个坏块区,刚好uboot烧写起始地址为0x000c0000,大小为0x32000,那么0x000e0000刚好在其中。
U-Boot > nand bad
Device 0 bad blocks:
000e0000
07120000
07900000
07f80000
07fa0000
07fc0000
07fe0000
串口烧写ubl,uboot正常,但是从nand启动的时候,ubl 就没办法引导uboot了,一直卡在
Starting NAND Copy...
Valid magicnum, 0x55424CBB, found in block 0x00000006.
DONE
Jumping to entry point at 0xC1080000.
如果跳开0x000e0000 这个区域烧写uboot,那么都是正常的。
分析过ubl源码,发现里面是支持ecc校验的,那为什么在引导uboot的时候不能跳过这个坏块?是ubl在ecc校验这块存在缺陷还是其他什么问题?请帮忙解答下,谢谢!