内核源码:linux2.6.30.4
交叉编译工具:3.4.5
移植linux内核至:TQ2440
工作基础:http://www.cnblogs.com/nufangrensheng/p/3669623.html
Linux内核中已经做好了Nand Flash的驱动,只需要进行适当的修改即可使用。
一、修改内核源码arch/arm/plat-s3c24xx/common-smdk.c文件:
1、修改其中的smdk_default_nand_part[]结构体(大概在109行),将其修改为如下所示:
/* arch/arm/plat-s3c24xx/common-smdk.c */ static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = "EmbedSky_board_uboot", .offset = 0x00000000, .size = 0x00040000, }, [1] = { .name = "EmbedSky_board_kernel", .offset = 0x00200000, .size = 0x00300000, }, [2] = { .name = "EmbedSky_board_yaffs2", .offset = 0x00500000, .size = MTDPART_SIZ_FULL, } };
2、修改其中的smdk_nand_info结构体(大概在140行)将其修改为如下所示:
/* arch/arm/plat-s3c24xx/common-smdk.c */ static struct s3c2410_platform_nand smdk_nand_info = { 141 .tacls = 10, 142 .twrph0 = 25, 143 .twrph1 = 10, 144 .nr_sets = ARRAY_SIZE(smdk_nand_sets), 145 .sets = smdk_nand_sets, 146 };
二、修改内核源码drivers/mtd/nand/s3c2410.c文件的第752行,将原来的内容修改为如下所示:
/* drivers/mtd/nand/s3c2410.c */ chip->ecc.mode = NAND_ECC_NONE; //NAND_ECC_SOFT;
三、Nand Flash驱动配置
执行make menuconfig,进入Device Drivers配置选项:
四、编译、烧写、启动,在启动信息中可以看到如下所示信息,说明Nand Flash移植成功了: