1.修改u-boot下的include/configs/100ask24x0.h文件
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params)," \
"2m(kernel)," \
"-(root)"
把2M改为4M(改好后重新编译uboot)
在cmd_jffs2.c里面我们看到把默认的分区信息分配给了mtdparts_default
#if defined(MTDPARTS_DEFAULT)
static const char *const mtdparts_default = MTDPARTS_DEFAULT;
#else
#warning "MTDPARTS_DEFAULT not defined!"
static const char *const mtdparts_default = NULL;
#endif
然后在cmd_jffs2.c的函数int do_jffs2_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])中把mtdparts_default
给了环境变量
setenv("mtdparts", (char *)mtdparts_default);
因此我们可以在uboot的中设置命令
mtdparts default,然后利用
mtd查看分区
device nand0 <nandflash0>, # parts = 4
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00400000 0x00060000 0
3: root 0x0fba0000 0x00460000 0
2.修改内核
/arch/arm/plat-s3c24xx/common-smdk.c
此文件中,将分区信息修改至与uboot一致即可
3.设置启动参数:
setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 rootfstype=yaffs2
然后重启开发板,就可以正常启动了