NE2000兼容网卡移植(AX88796)
Ø
定义网卡
I/O
地址
在S3C2410平台关于内存地址映射的头文件中增加对网卡的支持。
#vi $KERNEL/include/asm-arm/arch-s3c2410/map.h
添加代码:
#define pAX88796_BASE (0x10000000) //physical base address
#define vAX88796_BASE (0xd1000000) //virtual base address
#define AX88796_BASE (vAX88796_BASE + 0x200) //bank2 base address
Ø
地址映射
将之前定义的网卡物理I/O地址和虚拟I/O地址间的映射关系注册到平台初始化文件中。
#vi $KERNEL/arch/arm/mach-s3c2410/mach-smdk2410.c
修改:
static struct map_desc smdk2410_iodesc[] __initdata = {
//添加如下映射关系
//{
虚拟地址, 物理地址, 地址空间大小, 设备类型}
{vAX88796_BASE, pAX88796_BASE, SZ_1M, MT_DEVICE},
};
Ø
修改
NE2000
驱动文件
(基于Uptech 2410-s平台,其使用的是NE2000兼容的AX88796芯片)
#vi $KERNEL/drivers/net/ne.c
添加头文件:
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/arch/irqs.h>
#include <asm/arch/regs-mem.h>
#include <asm/arch/regs-gpio.h>
#include <asm/arch/map.h>
修改驱动:
//根据开发板上网卡和S3C2410的连接,确定外部中断
#define IRQ_NE2000 IRQ_EINT2