linux-2.6.14移植到S3C2440

2014-11-24 08:49:40 来源: 作者: 浏览: 0

Mounted devfs on /dev


Freeing init memory: 92K


Failed to execute /linuxrc. Attempting defaults...


Kernel panic - not syncing: No init found. Try passing init= option to kernel.


这个问题只能先放一下,最后成功挂载nfs。yaffs2格式文件系统的问题以后再深入研究。整理一下最近做过的东西,怕遗忘了。


1.顶层Makefile的修改


ARCH = arm
CROSS_COMPILE = arm-linux-


2.修改时钟频率


linux/arch/arm/mach-s3c2410/mach-smdk2440.c


static void __init smdk2440_map_io(void)
{
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
s3c24xx_init_clocks(12000000);//12M
s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
s3c24xx_set_board(&smdk2440_board);
}


3.修改机器ID


linux/arch/arm/tools/mach-types


s3c2440 ARCH_S3C2440 S3C2440 168


这个值要和uboot中的值对应起来,在uboot的arch/arm/tools/mach-types中有如下定义:


#define MACH_TYPE_S3C2440 168


这两个值一样即可。


4.设置Nand Flash分区


4.1建立Nand Flash分区表


在linux/arch/arm/mach-s3c2410/devs.c中增加


#include
#include
#include


/* NAND parititon */


static struct mtd_partition smdk_default_nand_part[] = {
[0]= {
.name = "Board_uboot",
.offset = 0x00000000,
.size = 0x00080000,
},
[1]= {
.name = "Board_kernel",
.offset= 0x00240000,
.size = 0x00200000,
},
[2]= {
.name = "Board_yaffs2",
.offset= 0x00440000,
.size = 0x0FB40000,
}
};


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: