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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值