第一步 u-boot下:
include/configs/100ask24x0.h里面有一个宏定义
#defineMTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params),"\
"2m(kernel),"\
"-(root)"
把2M改为4M(改好后重新编译uboot),在cmd_jffs2.c里面我们看到把默认的分区信息分配给了mtdparts_default
#ifdefined(MTDPARTS_DEFAULT)
staticconst char *const mtdparts_default = MTDPARTS_DEFAULT;
#else
#warning"MTDPARTS_DEFAULT not defined!"
staticconst 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查看 分区一样改好了
devicenand0 <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
第二步 修改内核:
/arch/arm/plat-s3c24xx/common-smdk.c这个文件中把分区信息修改的和uboot一样
然后就可以使用了
第三步:设置启动参数:
setenvbootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0rootfstype=yaffs2
然后开发版就可以正常启动了。。。