CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 4895|回复: 1

A10 混杂模式Promisccous Mode无效

[复制链接]
发表于 2014-1-22 13:38:57 | 显示全部楼层 |阅读模式
我使用的产品:
    我使用的是cubieboard 1 开发板,使用的系统是 Linux cubieboard 3.4.43+ #1 PREEMPT Mon Aug 26 18:15:17 CST 2013.
遇到的问题:
    eth0进入promiscuous mode(混杂模式)后依然不能捕获非本机MAC数据包。比如使用tcpdump命令。
问题分析:
    linux kernel驱动不完整。贵公司工程师屏蔽量关键代码:

/*
*  Set SUNXI_EMAC multicast address
*/
static void
sunxi_emac_hash_table(struct net_device *dev)
{
#if 0
        sunxi_emac_board_info_t *db = netdev_priv(dev);
        struct dev_mc_list *mcptr ;//= dev->mc->list;
        //int mc_cnt = dev->mc_count;
    导致 混杂模式 的寄存器标志位不能够被更改,所以虽然linux上使用了混杂模式的命令,但是硬件寄存器并没有被改变。
我的尝试:
    我曾尝试取消屏蔽代码,但是遇到了一系列问题。比如:

drivers/net/ethernet/allwinner/sunxi_emac.c:816:10: error: ‘RCR_PRMSC’ undeclared (first use in this function) rcr |= RCR_PRMSC;
    这些问题主要是因为头文件中没有定义寄存器的值。为什么没有定义?是硬件不支持?(不太可能,应该是工程师偷懒了吧...哈哈)。我想获取到A10 EMAC的参考手册,以便自己去头文件中定义寄存器,但是没有找到任何有关它的说明,所以我只好将sunxi_emac对比DM9000的驱动,虽然驱动很相近,但是寄存器地址差距很大,我也不能够猜测出我想要的寄存器的地址或可能的值。





回复

使用道具 举报

发表于 2014-5-23 16:54:55 | 显示全部楼层
请问这个混杂模式的问题你是不是解决了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-24 00:17 , Processed in 0.020579 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部