OK6410、Linux2.6.36内核移植,DM9000 驱动移植(3)

对照这个结构体  将那些进行修改,注意  by  acanoe   的语句为修改重点。

// add by acanoe 2        &s3c_device_nand, //这一语句为添加nand  设备语句 #ifdef CONFIG_DM9000       &s3c_device_dm9000,       //这一句为添加dm9000 网卡设备驱动语句。    #endif

 

//   &smdk6410_smsc911x,     // <span style="color: rgb(51, 51, 51); font-family: arial, sans-serif; line-height: 18px; ">Canceled</span> by acanoe  这一项一定要注销掉, 后面我会讲为什么。 

//在smdk6410_machine_init() 结构体中加上

//add by acanoe 

s3c_nand_set_platdata(&ok6410_nand_info);  

//add by acanoe

3、copy ./include          copy ./.config                   copy ./arch/arm/plat-samsung/include

这三项都是指: 从飞凌提供的内核将 他们的include 库拷贝的你的内核当中  ,拿来主义。

这样做的有点是你可以只先学习驱动移植 ,和系统移植的方法,而不是其语句的实现。确定也是优点的相对。

在这里极有可能会因为你include  的更新而产生一些写的错误  如在飞凌自定义的   _ts_ 中也就是 触摸屏的去的是他们自己修改的。

可能会因此报错,解决办法,就是Canceled 掉  所有的 有关触摸屏的驱动,都注释掉。

其实到这里,如果内不是要NFS  挂载根文件系统的话,内核移植工作已经完成。

不过这只针对飞凌的开发板来说, 如果你是其他厂家的开发板,在下面的几个知识点,不得不提及一下:

3.1)给内核打上yaffs2 文件系统补丁,在这里尽量选用较新的补丁,因为旧版补丁,在编译的时候会报错,

下载连接?p=yaffs2.git;a=summary,直接点击,点那个2011年6月28号的那个版本,点击最右边的SNAPSHOT下载,这个是目前较新的的YAFFS2的源码了

3.2) 修改机器号,这一步飞凌的开发板并不用操作,因为飞凌的Uboot 和内核都默认使用 smdk6410 ,的ID 来进行参数传递(典型的修改注意)。机器号修改依赖文件目录:

uboot-2011.3机器码路径:

arch/arm/include/asm/mach-types.h

飞凌体统的Uboot为 旧版的Uboot 它的 机器码定义路径为:

include/asm-arm/mach-types.h

其中 smdk6410 的自己码被定义在  include/configs/smdk6410.h  定义为

#define MACH_TYPE 1626

2.6.36.2 内核机器码定义路径为  arch/arm/tools/mach-types

smdky410     MACH_SMDK6410         SMDK6410             1626

以上 U-boot 和 内核 ID 信息 都属于smdk6410 板载 默认信息不用修改。

3.3) 配置内核, make  menuconfig

因为直接copy 飞凌源码的.config 文件到自己的根目录,所以配置起来比较简单。只要注意nand flash  驱动是否被选中即可:

Device Drivers --->

<*> Memory Techology Device (MTD) support  --->

<*> NAND Device Support --->

<*> NAND Flash support for S3C SoC

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyyjyz.html