DM9000是10/100M自适应的总线型网卡,Linux中对其支持已经非常完善,不同开发板之间移植、修改主要集中在总线的选择及中断选择上
1、修改arch/arm/mach-pxa/mach-pxa320.c文件,增加以下信息
#include
static struct resource pxa_dm9k_resource[] =
{
[0] = {
.start = PXA_CS3, //网卡连接在CS3总线上(此处跟据不同开发板进行修改)
.end = PXA + 3,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = PXA + 4, //同上
.end = PXA + 4 + 3,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = IRQ_EINT7, //根据硬件外部中断管脚修改此数字
.end = IRQ_EINT7,
.flags = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,
}
};
static struct dm9000_plat_data pxa_dm9k_platdata =
{
.flags = DM9000_PLATF_16BITONLY,
};
struct platform_device pxa_device_dm9k =
{
.name = "dm9000",
.id = 0,
.num_resources = ARRAY_SIZE(pxa_dm9k_resource),
.resource = s3c_dm9k_resource,
.dev =
{
.platform_data= &pxa_dm9k_platdata,
}
};
static void __init sbs_pxa_init_dm9k(void)
{
platform_device_register(&dm9k_device);
}
2、修改drivers/net/dm9000.c源码:
在头文件区增加头文件:
#include
大约1365行左右增加以下代码:
static int __devinit dm9000_probe(structplatform_device *pdev)
{
//add here 函数开始处
}
3、修改make menuconfig配置选项:
Devices Drivers --->
Network device support--->
Ethernet (10 or 100) --->
[*]DM9000support
(4)DM9000maxinum debug level
//仅保留这两个选项,其余的全部去掉
4、重新编译内核,烧入开发板中即可
5、第一次使用的开发板需使用ifconfig eth0 hw ether 12:34:56:78:32:65 设置mac地址
(MAC地址可以随便设置)
使用ifconfig eth0 192.168.220.*设置开发板IP
使用ping命令ping主机即可
阅读(2782) | 评论(0) | 转发(0) |