linux2.6.30.4内核移植(2)——Nand Flash驱动移植

内核源码: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配置选项:

image

image

image

image

image

image

image

四、编译、烧写、启动,在启动信息中可以看到如下所示信息,说明Nand Flash移植成功了:

image

原文地址:https://www.cnblogs.com/nufangrensheng/p/3670112.html