图片:
图片:
uImage内核下载至SDRAM 0x30008000,bootm命令可启动SDRAM中内核映像, 写入nand flash内核分区:nand write 0x30008000 0x00060000 0x00200000 ,如图1.设定bootcmd: nand write 0x31000000 0x00060000 0x00200000;bootm 0x31000000 重启板子,校验映像头时,报误,如图2 原因:不会是内核映像太大,读取不全。网上还有个说法,是nand read至SDRAM中的映像已不同于uImage,nand write时没写入crc至oob,而nand read时校验crc有误。 怎样debug一下,确认原因?谁有相关经验。
if (verify) {
puts (" Verifying Checksum ... ");
if (crc32 (0, (uchar *)data, len) != ntohl(hdr->ih_dcrc)) {
printf ("Bad Data CRC\n");
SHOW_BOOT_PROGRESS (-3);
return 1;
}