Real6410移植Linux-2.6.39.1记录(二)

2014-11-24 09:24:36 · 作者: · 浏览: 5
0_nand_sets[] = {


[0] = {


.name = "nand",


.nr_chips = 1,


.nr_partitions = ARRAY_SIZE(real6410_nand_part),


.partitions = real6410_nand_part,


},


};



static struct s3c2410_platform_nand real6410_nand_info = {//读写nand的时钟信息,在S3C6410手册中查找数据


.tacls = 25,


.twrph0 = 55,


.twrph1 = 40,


.nr_sets = ARRAY_SIZE(real6410_nand_sets),


.sets = real6410_nand_sets,


};



3、在real6410_machine_init函数中加入:


//---------------------------------nand驱动初始化注册-----------------------------------------


s3c_nand_set_platdata(&real6410_nand_info);


4、配置内核


$ make menuconfig


device driver->MTD support中选中


MTD partitioning support Command line partition table parsingCaching block device access to MTD devicesNAND Device Supportenable ubi


nand device suppot中选中 NAND Flash support for Samsung S3C SoCs Samsung S3C NAND driver debugSamsung S3C NAND Hardware ECC


此处需要注意:对上面几个选项”shift+/”,发现其是对2410进行配置的,所以需要nand驱动文件夹中的Kconfig,将/drivers/mtd/nand/Konfig修改,把对应选项的2410改成3add_mtd_partitionsSC,原因查看Makefile中的对应选项的config要求。


file systems->misc filesystem-> 中加入cramfsUBI的支持,可以参照real28内核的配置


5、将real6410 28内核中的/drivers/mtd/nand/s3c_nand.c拷贝之39内核的相应文件夹,并修改probe函数#if defined(CONFIG_MTD_NAND_S3C_HWECC)之前的部分,可以将友善38内核的相应部分复制过来。


6、编译cramfs文件系统


$sudo apt-get install cramfsprogs


拷贝REAL6410cramfs系统源码,


$mkcramfs root_mkfs rootfs.cramfs


下载文件系统到开发板


7、修改内核启动参数


setenv bootargs noinitrd root=/dev/mtdblock0 console=ttySAC0 init=/linuxrc video=fb:AT070TN83


8、最后当然要检查一下内核选项,配置好之后编译下载;


9、至此,REAL6410已经能从CRAMFS文件系统启动了!