移植网卡出现的问题

移植网卡出现的问题

ID:13842036

大小:38.00 KB

页数:7页

时间:2018-07-24

移植网卡出现的问题_第1页
移植网卡出现的问题_第2页
移植网卡出现的问题_第3页
移植网卡出现的问题_第4页
移植网卡出现的问题_第5页
资源描述:

《移植网卡出现的问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、转自:http://loveuzz.blogchina.com/1955634.html硬件环境:SBC-2410X开发板(CPU:S3C2410X)内核版本:2.6.11.1运行环境:Debian2.6.8交叉编译环境:gcc-3.3.4-glibc-2.3.3第一部分 网卡CS8900A驱动程序的移植一、从网上将Linux内核源代码下载到本机上,并将其解压:#tarjxflinux-2.6.11.1.tar.bz2二、打开内核顶层目录中的Makefile文件,这个文件中需要修改的内容包括以下两个方面

2、。(1)指定目标平台。 移植前:       ARCH?=$(SUBARCH) 移植后: ARCH           :=arm(2)指定交叉编译器。 移植前: CROSS_COMPILE ?= 移植后: CROSS_COMPILE  :=/opt/crosstool/arm-s3c2410-linux-gnu/gcc-3.3.4-glibc-2.3.3/bin/arm-s3c2410-linux-gnu-注:这里假设编译器就放在本机的那个目录下。三、添加驱动程序源代码,这涉及到以下几个方面。(1)、

3、从网上下载了cs8900.c和cs8900.h两个针对2.6.7的内核的驱动程序源代码,将其放在drivers/net/arm/目录下面。#cpcs8900.c ./drivers/net/arm/#cpcs8900.h ./drivers/net/arm/并在cs8900_probe()函数中,memset(&priv,0,sizeof(cs8900_t));函数之后添加如下两条语句:__raw_writel(0x2211d110,S3C2410_BWSCON);__raw_writel(0x1f7c

4、,S3C2410_BANKCON3);注:其原因在"第二部分"解释。(2)、修改drivers/net/arm/目录下的Kconfig文件,在最后添加如下内容:ConfigARM_CS8900  tristate"CS8900support" dependsonNET_ETHERNET&&ARM&&ARCH_SMDK2410 help  SupportforCS8900AchipsetbasedEthernetcards.Ifyouhaveanetwork(Ethernet)cardofthistype

5、,sayYandreadthe Ethernet-HOWTO,availablefrom aswellas.  Tocompilethisdriverasamodule,chooseMhereandread. Themodulewillbe  calledcs8900.o.注:内核系统配置文件由2.4版本的config.in变成了2.6版本Kconfig文件,在这个文件里面添加如上内容,则在运行makemenuconfig或者makexconfig命令的时候就会出现:       []  CS8900s

6、upport 这一选项。(3)、修改drivers/net/arm/目录下的Makefile文件,在最后添加如下内容:obj-$(CONFIG_ARM_CS8900)   +=cs8900.o注:2.6版本内核的Makefile文件也与2.4版本的有所不同。添加以上语句,就会使内核在编译的时候根据配置将cs8900A的驱动程序以模块或静态的方式编译到内核当中。(4)、在/arch/arm/mach-s3c2410/mach-smdk2410.c文件中,找到smdk2410_iodesc[]结构数组,添加

7、如下如下内容:{vSMDK2410_ETH_IO,0x19000000,SZ_1M,MT_DEVICE}修改之后变成了: staticstructmap_descsmdk2410_iodesc[]__initdata={      /*nothinghereyet*/       /*MaptheethernetcontrollerCS8900A*/       {vSMDK2410_ETH_IO,0x19000000,SZ_1M,MT_DEVICE}}; 注:由于在驱动程序的开发的时候,在驱动程序当中

8、所用到的跟设备有关的地址都是虚拟地址,也就是说驱动程序操作的都是虚拟地址,那么要使驱动程序对设备的操作反映到设备上去,就得将设备的物理地址映射到正确的虚拟地址上去,从而保证驱动程序对虚拟地址的操作也就是对相应的物理地址操作。以上添加的语句就是为了将网卡的物理地址(0x19000000)映射到vSMDK2410_ETH_IO所指向的虚拟地址上去,上面的结构还定义了网卡虚拟地址所占用的区间,也就是从vSMDK2410_ETH_IO开始的SZ_1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。