linux-2.6.35内核移植—Nand flash驱动的添加(分区)

 

【实验目的】

       本实验通过在上个实验的基础上做Nand flash的移植,Nand flash在s3c2410的默认配置中是已经选上的,只是他的分区需要根据我们的实际情况来配置。从而进一步完善系统的结果,并掌握Nand flash的移植方法

【实验环境】

1、  Ubuntu 10.10发行版

2、  u-boot-2010.03

3、  FS2410平台

4、  交叉编译器 arm-none-linux-gnueabi-gcc-4.3.2

【实验步骤】

       在linux-2.6.35.2的内核中已经包含了s3c2410的nand flash控制器的驱动,但是需要我们正确配置后才能正常工作。

1、 修改分区信息,建立分区表

在arch/arm/plat-s3c24xx/common-smdk.c中有nand flash的分区信息如下,我们需要在这个基础上进行修改。

修改后为:

static struct mtd_partition smdk_default_nand_part[ ] = {

[0] = {

        .name      = "bootloader u-boot-2010.03",

        .offset     = 0,

        .size = SZ_1M,

},

[1] = {

        .name      = "kernel linux-2.6.35",

        .offset = SZ_1M,

        .size = SZ_4M,

},

[2] = {

        .name      = "rootfs busybox-1.17.3",

        .offset = SZ_1M * 5,

        .size = SZ_8M,

},

[3] = {

        .name      = "usrfs",

        .offset     = SZ_1M * 13,

        .size = SZ_1M * 51,

},

};

2、 配置内核

Device Drivers  --->

        <*> Memory Technology Device (MTD) support  --->

               <*>   NAND Device Support  --->

                      <*>   NAND Flash support for Samsung S3C SoCs

这些选项在这个内核里已经选上了,这里列出来让大家知道添加flash驱动涉及到的内容!

3、 编译内核

$ make  zImage

4、 拷贝内核镜像到tftpboot下并重新启动开发板

$ cp  arch/arm/boot/zImage  /tftpboot

注意:这是在线调试 也可以直接下到目标板上去执行

5、 启动系统,查看系统信息

# cat  /proc/mtd

              dev:    size   erasesize  name

 

              mtd0: 00100000 00004000 "bootloader u-boot-2010.03"

 

              mtd1: 00400000 00004000 "kernel linux-2.5.35"

 

              mtd2: 00800000 00004000 "rootfs buysbox-1.17.3"

 

              mtd3: 03300000 00004000 "usrfs"

你可能感兴趣的:(工作,struct,ubuntu,Flash,编译器,2010)