linux网卡驱动移植

内核版本:Linux2.6.28.7   中断引脚是IRQ_EINT7 具体的  自己看原理图
/*******************************/
#include <mach/regs-gpio.h>   //by bai
#include <mach/irqs.h>       //用到writel和ioremap类的头文件
#include <mach/hardware.h>
/*******************************/


unsigned char ne_def_eth_mac_addr[]={0x00,0x12,0x34,0x56,0x80,0x49}; //定义的mac地址


/* ------------------------------------------------------------------------ */
    static void *bwscon;
    static void *gpfcon;
    static void *extint0;
    static void *intmsk;
    #define BWSCON           (0x48000000)//总线宽度和等待控制寄存器
    #define GPFCON           (0x56000050)//配置io口为中断引脚
    #define EXTINT0          (0x56000088)//外部中断控制寄存器 0 上升沿触发还是下降沿触发
    #define INTMSK           (0x4A000008)//决定屏蔽哪个中断源。被屏蔽的中断源将不会服务  0 = 中断服务可用  1 = 屏蔽中断服务

bwscon=ioremap_nocache(BWSCON,0x0000004);//决定 SRAM 是否对 Bank 4 使用 UB/LB   0 = 未使用 UB/LB(引脚对应 nWBE[3:0]) 1 = 
使用 UB/LB(引脚对应 nBE[3:0])决定 Bank 4 的WAIT 状态   0 = WAIT 禁止  1 = WAIT 使能 

gpfcon=ioremap_nocache(GPFCON,0x0000004);
extint0=ioremap_nocache(EXTINT0,0x0000004);
intmsk=ioremap_nocache(INTMSK,0x0000004);
              
writel(readl(bwscon)|0xc0000,bwscon);
writel( (readl(gpfcon) & ~(0x3 << 14)) | (0x2 << 14), gpfcon); //配置成中断引脚
writel( readl(gpfcon) | (0x1 << 7), gpfcon); // Disable pull-up
writel( (readl(extint0) & ~(0xf << 28)) | (0x4 << 28), extint0); //rising edge
writel( (readl(intmsk))  & ~0x80, intmsk);    
/* ------------------------------------------------------------------------ */


//ndev->dev_addr[i] = ior(db, i+DM9000_PAR);   // by bai

ndev->dev_addr[i] = ne_def_eth_mac_addr[i];

总结:不管你用什么内核版本的网卡驱动程序,自己移植网卡驱动的时候主要配置两项,
一:设置mac地址,基地址或者中断引脚,配置成中断,基本的模式就是这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值