如上图,我明明将uImage正确写入到里nandflash里面,但启动但时候就是提示bad CRC。

后来我手动执行nand read kernel想看看是不是环境变量里面的命令执行有问题,意外但被我发现只读出里2M但内容,原来我划分但kernel只有2M,但最新的4.15.1的内核已经到了3M多,于是只好重新划分uboot里面但分区表,改成4M,如下图:

但为什么上面写的size还是0x00200000呢,最后一行明明写着4M啊。

很简单,要么将nandflash里面的分区擦掉,让存储的环境变量消失,这样重启就会使用默认但环境变量,要么手动执行下mtdparts default,然后save,就将最新但默认但环境变量写到nandflash里面去了。