在自己开发板的配置头文件下面添加如下几条语句就可以用kernel代替你的具体分区表,下面语句没有其他的作用,就是为了方便你不用记那些地址范围,省去了不少事情。
在在arch/arm/lib/board.c 中for(;;) 前面添加run_command("mtdparts default", 0);
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define MTDIDS_DEFAULT "nand0=fl2440-0"
#define MTDPARTS_DEFAULT "mtdparts=fl2440-0:256k(u-boot)," \
"128k(params)," \
"2m(kernel)," \
"-(rootfs)" \
例子如下:
tftp 30000000 uImage
nand erase.part kernel
nand write 30000000 kernel
注意:这里添加mtdparts命令后可以正常使用,(我的u-boot版本没有yaffs2下载功能)但是后面会添加yaffs2下载功能的时候出现了bug,解决办法就是去掉mtdparts命令的支持,具体为什么我没有去研究过,反正我分析源代码没有找出原因。
出现bug的情况如下:
NAND:
U-Boot BUG at mtdcore.c:20