免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4305 | 回复: 10
打印 上一主题 下一主题

[驱动] dm9000 双网卡 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-28 09:11 |只看该作者 |倒序浏览
imx31上挂了两个dm9000,他们就是基地址和中断不同,跑的是linux的系统,我就做了两个驱动,其实是一样的,只是注册驱动的名字不一样,现在单独添加对应的驱动能够调通,但是两个驱动同时加上去的话就只有其中一个能通。这是啥问题啊 ?????????

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
2 [报告]
发表于 2014-03-28 09:51 |只看该作者
用不着两份驱动,直接注册两个设备就行了,可以共用一个驱动

不通先看看ip地址有没有设置对

论坛徽章:
0
3 [报告]
发表于 2014-03-28 11:59 |只看该作者
ip已经设置成不同的网段了,只有其中一个能通,注册两个设备设备名字取不一样吗?

论坛徽章:
1
射手座
日期:2013-11-07 09:19:48
4 [报告]
发表于 2014-03-28 13:23 |只看该作者
无代码,无真相。不要让大伙跟着你瞎猜。
把驱动代码贴出来,把测试过程贴出来。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
5 [报告]
发表于 2014-03-28 13:26 |只看该作者
回复 3# alonglkj


    名字仍然一样,platform_device->id分别设置为0和1就行了,然后设置成各自对应的地址和中断号就行了

论坛徽章:
0
6 [报告]
发表于 2014-03-28 13:57 |只看该作者
一个驱动和两个驱动效果一样,其中一个网卡插上网线就不停的进入中断,就仅仅注册那个不停进入中断的设备的时候不会出现这种一直进入中断的状况
#define DM9000_BASE_ADDRR          MX31_CS1_BASE_ADDR
#define DM9000_IRQQ         IOMUX_TO_IRQ(MX31_PIN_GPIO1_5)

static struct resource dm9000_resources2[] = {
        {
         .start = DM9000_BASE_ADDRR,
         .end = DM9000_BASE_ADDRR + 0x01,
         .flags = IORESOURCE_MEM,
         },
        {
         .start = DM9000_BASE_ADDRR + 0x02,
         .end = DM9000_BASE_ADDRR + 0x03,
         .flags = IORESOURCE_MEM,
         },
        {
         .start = DM9000_IRQQ,
         .end = DM9000_IRQQ,
         .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
         },
}


#define DM9000_BASE_ADDR        MX31_CS0_BASE_ADDR
#define DM9000_IRQ        IOMUX_TO_IRQ(MX31_PIN_GPIO1_0)

static struct resource dm9000_resources[] = {
        {
         .start = DM9000_BASE_ADDR,
         .end = DM9000_BASE_ADDR + 0x01,
         .flags = IORESOURCE_MEM,
         },
        {
         .start = DM9000_BASE_ADDR + 0x02,
         .end = DM9000_BASE_ADDR + 0x03,
         .flags = IORESOURCE_MEM,
         },
        {
         .start = DM9000_IRQ,
         .end = DM9000_IRQ,
         .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
         },
};

这是两个网卡的资源,会不会两个网卡在一起中断有什么冲突啊?用的是imx31的CPU

论坛徽章:
0
7 [报告]
发表于 2014-03-28 14:13 |只看该作者
static void mxc_init_enet(void)
{
        int ret;

        ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0), "dm9000-irq");
        if (ret)
                printk("failed to get dm9000a-irq pin: %d\n", ret);
        else {
                gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0));
                set_irq_type(IOMUX_TO_IRQ(MX31_PIN_GPIO1_0), IRQF_TRIGGER_HIGH);
                platform_device_register(&dm9000_device);
        }
}


static void mxc_init_enet2(void)
{
        int ret;

        ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_5), "dm9000-irq");
        if (ret)
                printk("failed to get dm9000-irq pin: %d\n", ret);
        else {
                gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_5));
                set_irq_type(IOMUX_TO_IRQ(MX31_PIN_GPIO1_5), IRQF_TRIGGER_HIGH);
                platform_device_register(&dm9000_device2);
        }
}

注册两个网卡设备的函数


论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
8 [报告]
发表于 2014-03-28 14:20 |只看该作者
应该没有冲突,在中断里加些log,看看具体是什么东西引起的中断

论坛徽章:
0
9 [报告]
发表于 2014-03-28 14:54 |只看该作者
那为什么只注册一个设备的时候没有问题呢?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
10 [报告]
发表于 2014-03-28 15:09 |只看该作者
所以才叫你加log看啊,就这么光靠嘴说肯定分析不出来啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP