U-boot支持jssf2分区的实现
默认标准U-boot-1.3.4不支持环境变量mtdparts,也就是不支持分区;因此实现对nandflash分区的支持;修改u-boot代码如下:
1.在At91sam9260ek.h添加
#define CONFIG_JFFS2_NAND1
#define CONFIG_CMD_JFFS2
#define CONFIG_JFFS2_CMDLINE
#define MTDIDS_DEFAULT"nand0=at91_nand"
#define MTDPARTS_DEFAULT "mtdparts=at91_nand:16k@0x0(bootstrap),0x38000@0x4000(u-boot),1792k@256k(kernel),5m@2m(rootfs),4m@7m(home),-(data0)"
2.以上修改编译后可能会出错,还需要修改include\config_cmd_default.h,注释掉falsh的支持
//#define CONFIG_CMD_FLASH/* flinfo, erase, protect*/
通过以上2点修改同时可以解决以下问题:
1) 在没有网络的环境下可以使用U盘等存储介质来更新内核
2) 可以通过网络远程更新内核
3) 支持U-Boot对nor falsh ,nand flash的分区
4) U-Boot下对JFFS2文件系统的支持。
参考文档<U-boot分区及内核更新的实现>