Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1336784
  • 博文数量: 198
  • 博客积分: 1629
  • 博客等级: 上尉
  • 技术积分: 2743
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-01 15:41
文章分类
文章存档

2023年(6)

2022年(20)

2021年(8)

2020年(3)

2018年(17)

2017年(3)

2016年(3)

2015年(9)

2014年(13)

2013年(17)

2012年(77)

2011年(22)

分类: LINUX

2012-05-04 15:30:37

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主机即可
阅读(2712) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~