热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

移植linux-2.6.14到S3C2410

来源: 作者: 时间:2008-09-01 Tag: 点击:
移植linux2.6.14内核

硬件环境:基于Vmware5.0上的RedHat9.0 ;Windows XP

阳初S3c2410开发板

软件资源:linux2.6.14.1内核 下载地址:

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.1.tar.bz2

交叉工具:(如果不能连接,请用迅雷新建任务下载)

ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

如果已经完成上面的内容就可以开始编译内核了:

以$前缀表示命令

一:安装linux-2.6.14.1.tar.bz2:

$tar jxf linux-2.6.14.1.tar.bz2 –C /usr/src/

安装arm-linux-gcc-3.4.1.tar.bz2:

$tar jxf arm-linux-gcc-3.4.1.tar.bz2 –C /

注意上面的 / 代表根目录

$export PATH=/usr/local/arm/3.4.1/bin:$PATH

输出交叉编译路径

二:对NAND FLASH 分区进行配置

$cd /usr/src/linux-2.6.14.1

$ vi arch/arm/mach-s3c2410/devs.c 添加下面内容

#include<linux/mtd/partitions.h>

#include <linux/mtd/nand.h>

#include <asm/arch/nand.h>

...

#NAND需要的头文件



1.建立Nand Flash分区表

/* 一个Nand Flash总共64MB, 按如下大小进行分区 */

static struct mtd_partition partition_info[] ={

{

name: "vivi",

size: 0x00020000,

offset: 0,

}, {

name: "param",

size: 0x00010000,

offset: 0x00020000,

}, {

name: "kernel",

size: 0x001c0000,

offset: 0x00040000,

}, {

name: "root",

size: 0x03cf8000,

offset: 0x00200000,

mask_flags: MTD_WRITEABLE,

}, {

name: "usr",

size: 0x03a00000,

offset: 0x00600000,

}

};

这里请注意:上面的分区需要跟bootloader分区对应起来

本人bootloader用的是MIZI的VIVI 用命令part show可以看到分区信息;否则出现

kernel panic: VFS: Unable to mount root fs on Unkonw-block (31,2)

诸如此类的错误

2. 加入Nand Flash分区

struct s3c2410_nand_set nandset ={

nr_partitions: 5, /* the number of partitions */

partitions: partition_info, /* partition table */

};

# partition_info是上面的分区信息;nr_partitions: 5 为分区数目

3. 建立Nand Flash芯片支持

struct s3c2410_platform_nand superlpplatform={

tacls:0,

twrph0:30,

twrph1:0,

sets: &nandset,

nr_sets: 1,

};

# tacls, twrph0, twrph1是nand flash的时序控制,

这3个值最后会被设置到NFCONF中

sets: 支持的分区集

nr_set:分区集的个数
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册