Ne2000兼容的网卡移植
1.首先修改arch/arm文件夹下的Kconfig文件的ISA项如下:
config ISA
bool 'gggggg ISA support'
default y
help
Find out whether you have ISA slots on your motherboard. ISA is the name of a bus system, i.e. the way the CPU talks to the other stuff inside your box. Other bus systems are PCI, EISA, MicroChannel (MCA) or VESA. ISA is an older system, now being displaced by PCI; newer boards don't support it. If you have ISA, say Y, otherwise N.
只有这样在内核配置菜单
Network device support->
Ethernet(10or100Mbit)->
下才会出现other ISA cards选项。你才可以选上NE2000/NE1000 support。要不然找不到可不要怪我。
linux内核中NE2000设备驱动程序是drivers/net/ne.c和8390.c两个文件。你可以参考我的文件贴图修改。其中ne_defethaddr定义了网卡的MAC地址。需要修改的主要有你的网卡地址,就是你接在哪个个bank上了,你使用的外部中断是哪一个。然后就是设置中断方式,等等。你自己看吧。我实在记不清了( 悔恨当初没记下来呀)。 总结一下:
移植过程中需要注意的几个问题:
1、确定网卡的基地址、中断无误 2、注意网卡的数据总线宽度,地址是否连续,如果不连续,如何映射 3、注意网卡的中断的模式和处理对应的外部中断是不是一致 4、对于IO和RAM统一编址的处理器,注意缓冲区范围的设置 5、注意ARMv3和ARMv4等一些和处理器结构相关的底层函数库带来的问题 6、用抓包软件(sniffer)可以帮助分析定位问题所在
|