一开始板子上的flash是8M的,所以分配方式是:uboot 0.5M、kernel 3.5M、rootfs 4M。
uboot启动参数设置的是:
setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:512K(boot),3584K(kernel),4096K(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x42000000 0x80000 0x380000;bootm 0x42000000'
saveenv
启动后提示:Wrong Image Format for bootm command ERROR: can't get kernel image!
由于我已经确认不是uImage的问题,所以一直在找问题所在。
最后发现是因为uboot分配的空间太小了,导致覆盖了kernel的空间,所以读不到image。
最后我设置的参数是:
setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),3584K(kernel),3584K(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x42000000 0x100000 0x380000;bootm 0x42000000'
saveenv
也就是分配1M空间给uboot,kernel和rootfs各3.5M。