本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7242620
一、修改arch/arm/mach-s3c64xx/mach-th6410.c文件
1)注册platform设备(nand)。
在static struct platform_device *th6410_devices[]__initdata中加入:
注:关于nandflash平台设备更多知识在arch/arm/plat-samsung/dev-nand.c和arch/arm/plat-samsung/include/plat/nand.h以及arch/arm/plat-samsung/include/plat/regs-nand.hdev-nand.c:定义了nand平台设备、nand平台设备所需资源、平台的一些数据信息等。nand.h:定义了芯片本身相关的信息、bsp对nandflash的一些时序设置信息等。regs-nand.h:CPU中NANDFLASH各种寄存器的定义。
2)添加分区、时序等
3)向内核注册信息。
在static void __init th6410_machine_init(void)函数中,添加如下代码:
二、修改s3c_nand.c文件
其实该文件开源的百度即有。可以查看已修好的s3c_nand.c文件。
1)修改drivers/mtd/nand/目录下的KconfigKconfig:添加下面部分
2) 修改Makfile告知内核编译s3c_nand.c
Makefile:添加下面部分
改好后保存退出
三、 当然drivers/mtd/nand/s3c_nand_mlc.fo
也要拷贝过来,这是友善没有开源的一个驱动之一,所以不用研究了,拷过来就是了。
四、修改drivers/mtd/nand/nand_base.c文件
直接将drivers/mtd/nand/nand_base.c拷过来覆盖就可以了。
五、编译内核
然后再
1)make menuconfig
Device Drivers--->
<*> Memory Technology Device(MTD) support --->
[*]MTD partitioning support
[*] Command line partition table parsing
<*>Direct char device access to MTD devices
<*>Caching block device access to MTD devices
<*>NAND Device Support --->
< > NAND Flash support forSamsung S3C SoCs 去掉不要选
<*> NAND Flash support for S3C SoC
[*] S3C NAND Hardware ECC
2)make zImage
编译信息说明nand分区成功。
Creating 3 MTD partitions on "NAND 2GiB 3,3V 8-bit":
0x000000000000-0x000000400000 : "Bootloader"
0x000000400000-0x000000c00000 : "Kernel"
0x000000c00000-0x000080000000 : "File System"
编译信息见下文!!
本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7242620
分享到:
相关推荐
QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区
QT6410移植linux-2.6.39 笔记(一)-搭建开发板环境
移植linux2.6.39到mini2440,tftp启动,挂载nfs文件系统,内有使用busybox制作根文件系统的过程。
QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(1)
QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(2)
找了好久才找到的,国内还没有有下载 linux vmware patch linux ubuntu 11.04 11.10 vmware linux-2.6.39 and linux-3.0.1 patch vmware补丁
O0 编译,使用eclipse 调试,源代码分析书籍 《ARM Linux内核源码剖析.pdf》分析启动代码 2.6.30
安装sourceinsight_4.0.86.0-setup以及使用全部所需文件,按照步骤来,本人亲测。
linux2.6.39的dm9000驱动
linux2.6.39 yaffs2 驱动
linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...
解决linux内核版本2.6.39下安装vmware后无法编译模块的问题
U_Boot及Linux2_6在S3C2440A平台上的移植方法.
linux-2.6.39内核源码的补丁,和大家分享
linux2.6版内核,有一定的学习价值,大多数开发板基于此版本进行系统移植,因为官网下载的太慢也不好找,所以传上来供有需要的朋友下载。
linux-2.6.39.tar.gz源代码,Linux移植学习,Linux嵌入式学习
支持版本: v2.6.12 ········ ······ ··· v2.6.38 v2.6.39 v3.0.1 v3.0.11 v3.0.51 v3.1.1 v3.2.1 v3.2.51 v3.3.1 v3.4.1 v3.4.11 v3.4.51 v3.4.111 v3.5.1 v3.6.1 v3.7.1 v3.8.1 v3.8.11 v3.9.1 v...
TYPE_MICRO2440,之前的Linux内核中有MICRO2440的机器码,值为2680,但是最近的内核,比如Linux-2.6.39中并没有这个值,虽然我自己是在Micro2440开发板上移植,但机器码还是使用MACH_TYPE_MINI2440,其值为1999。...
iproute2 的2.6版本! 用于linux下的源码包
由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行...