Linux 2.6.30内核移植到S3C2440

开发环境:主机:Window XP SP2;linux:VMware7.01+Ubuntu9.10;目标板:扬创utu2440-F开发板

交叉编译器:arm-linux-3.4.1

一、说明:

本CS8900网卡驱动移植是基于之前内核版本的,实际上是从扬创开发板附送光盘上拷贝下来的CS8900源文件移植而来。

移植好的CS8900网卡驱动在扬创ubu2440-F开发板上已验证通过。

二、移植要点:

CS8900网卡驱动移植到基于linux2.6.30内核版本的S3C2440中,主要关注其中几点:

1. 基于旧的CS8900网卡驱动;

2. CS8900网卡驱动的BSP信息构造;

2. 头文件的变化;

3. linux2.6.30的struct net_device有变化,主要是没有了priv这个成员变量;

本文要用到的相关文件在Linux公社的1号FTP服务器里,下载地址:

FTP地址:ftp://www.linuxidc.com

用户名:

密码:

在 2011年LinuxIDC.com\6月\Linux 2.6.30内核移植到S3C2440——CS8900网卡移植

下载方法见

三、移植步骤:

1. 在drivers/net/arm/ 目录下添加 cs8900.c,cs8900.h两个文件。

如果是你自己重新移植的话,这两文件可从Linux公社FTP上下载;如果使用本人移植好的驱动(可以省略一些步骤)。

2. 修改drivers/net/arm/目录下的Kconfig文件,在最后添加如下内容:

config ARM_CS8900         tristate "CS8900 support"         depends on ARM || BLACKFIN || MIPS         help           support for cs8900 chipset based Ethernet cards , if you  have a network card of this type  

3. 修改drivers/net/arm/Makefile文件,添加:
obj-$(CONFIG_ARM_CS8900) += cs8900.o

4. 编译配置内核,进入配置菜单,添加CS8900驱动到内核:
# make menuconfig

Device Drivers  --->

[*] Network device support  --->

[*]   Ethernet (10 or 100Mbit)  --->

<*>   CS8900 support

5.  添加BSP关于CS8900网卡驱动信息:

如果是移植到2410,则打开arch/arm/mach-s3c2410/mach-smdk2410.c文件;如果是移植到2440,则打开arch/arm/mach-s3c2440/mach-smdk2440.c。本人使用自己创建的BSP文件,即arch/arm/mach-s3c2440/mach-reille2440.c,在static struct map_desc smdk2410_iodesc[] __initdata (对2410而言)或static struct map_desc smdk2440_iodesc[] __initdata(对2440而言)最后添加:

,{             // support cs8900|added by guoyirong 2011.06.04               .virtual     = vSMDK2410_ETH_IO,        // virtural addr that will be remapped               .pfn          = __phys_to_pfn(S3C2410_CS3 + (1<<24)),               .length      = SZ_1M,               .type          = MT_DEVICE,      }  

6. 修改arch/arm/mach-s3c2410/include/mach/map.h文件,在最后添加:

/* CS8900 */    #define pSMDK2410_ETH_IO     __phys_to_pfn(0x19000000)    #define vSMDK2410_ETH_IO     0xE0000000    #define SMDK2410_ETH_IRQ     IRQ_EINT9  

7. 编译内核:

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

转载注明出处:https://www.heiqu.com/wwfjys.html