1.修改配置文件include/configs/devkit8600.h,添加
/* lc add for ubi */
#define CONFIG_CMD_UBI#define CONFIG_CMD_UBIFS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_RBTREE
#define CONFIG_LZO
#define MTDIDS_DEFAULT "nand0=nand0"
#define MTDPARTS_DEFAULT "mtdparts=nand0:0x80000(spl),0x200000(u-boot),0x500000(kernel),0x19000000(rootfs),-(reserved)"
#define MTD_ACTIVE_PART "nand0,3"
/* lc add for ubi end */
2.出现错误
build.c:50:2: error: #error Malloc area too small for UBI, increase CONFIG_SYS_MALLOC_LEN to >= 512k
修改include/configs/devkit8600.h
//#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (32 * 1024))
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (512 * 1024))
3.出现错误
arm-none-linux-gnueabi-ld:/contec/liuchang/am335x/uboot_ok1/spl/u-boot-spl.lds:1: ignoring invalid character `#' in expression
arm-none-linux-gnueabi-ld:/contec/liuchang/am335x/uboot_ok1/spl/u-boot-spl.lds:1: syntax error
修改include/configs/devkit8600.h
把//#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (32 * 1024)) 删除,
否则生成的spl/u-boot-spl.lds 包含这一行
4.在ubi write 时 出现错误
Cannot start volume update
因為CONFIG_SYS_MALLOC_LEN 设置的太小,修改
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (512 * 1024))
为
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (1024 * 1024))