linux驱动之--linux2.6.14.1 移植进去8900网卡驱动

为了搭建nfs系统,...所以 必须在内核移植好网卡驱动. 我靠.照下面做,一次能成功.

我的主板是友善之臂 2410. 环境是 vmware+ubuntu

 

LINUX2.6.14CS8900的移植(Fs2410

 


1.

(文件在我的下载版有)

拷贝文件cs8900.c cs8900.h linux2.6.14.1/drivers/net



进入目录
cs8900

cp cs8900.c ../linux-2.6.14.1/drivers/net/

cp cs8900.h ../linux-2.6.14.1/drivers/net/

2.
修改
Kconfig

vi ../linux-2.6.14.1/drivers/net/Kconfig

找到


config NET_ETHERNET

       bool "Ethernet (10 or 100Mbit)"


加入以下内容

config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help

3.
修改Makefile文件

vi ../linux-2.6.14.1/drivers/net/Makefile

找到 obj-$(CONFIG_CS89x0) += cs89x0.o

加入以下内容


obj-$(CONFIG_ARM_CS8900) +=cs8900.o

4.
加入cs8900在内存中的位置

linux-2.6.14.1/include/asm-arm/arch-s3c2410 中创建regs-cs8900.h ,其内容如下

#ifndef _INCLUDE_REGS_CS8900_H

#define _INCLUDE_REGS_CS8900_H

i nclude <linux/config.h>

#define pSMDK2410_ETH_IO    0x19000000

#define vSMDK2410_ETH_IO 0xE0000000 #define SMDK2410_ETH_IRQ IRQ_EINT9 #endif // _INCLUDE_REGS_CS8900_H pSMDK2410_ETH_IO
的具体地址要参考你的实验板,我的试验板是由nGCS3A24口组合控制芯片的IO读写或内存读写,在我的开发板上是IO读写。虚拟地址参考了系统板自 带内核中设定的地址,没有改动。看网上有人说虚拟地址可以随便设只要不冲突就行,具体是否可行,没有试过,如果有人试过,告述我一声,大家一块学习。呵 ...中断源也要看你的试验板连了哪跟中断口。5 加入cs8900虚拟地址到物理地址的转换

   vi linux-2.6.14.1/arch/arm/mach-s3c2410/mach-smdk2410.c

加入头文件

i nclude <asm/arch/regs-cs8900.h>

加入地址转换信息, 找到smdk2410_iodesc[]结构数组,加入


{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE},
到这里,cs8900的移植就完工了。修改内核选中cs8900make就可以了。

注意在make zImage

如果出现在cs8900.c中找不到*/*/smdk2410.h

将其替换成#include <config/arch/smdk2410.h>

会出进提示vSMDK2410_ETH_IO 没有定义.cs8900.c中加入以下代码.

///
#ifndef _INCLUDE_REGS_CS8900_H

#define _INCLUDE_REGS_CS8900_H

#include <linux/config.h>

#define pSMDK2410_ETH_IO      0x19000000

#define vSMDK2410_ETH_IO    0xE0000000  

#define SMDK2410_ETH_IRQ    IRQ_EINT9  
#endif

/

保存

 

-------------------END------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值