I.MX6 网卡能收不能发

/********************************************************************
 *                   I.MX6 网卡能收不能发
 * 说明:
 *     MAC控制器到PHY之间的阻抗差异。
 *
 *                                 2017-4-28 深圳 龙华樟坑村 曾剑锋
 *******************************************************************/

一、参考文档:
    1. Understanding MII Transceiver Status Info
        ftp://ftp.psu.ac.th/pub/scyld/mii-status.html
    2. 关于以太网PAUSE的一点研究
        http://www.latelee.org/programming-under-linux/ethernet-pause-frame-study.html

二、U-Boot设定:
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.selinux=disabled; saveenv; reset;

三、网络设定:
    1. 设定ip:
        ifconfig eth0 10.10.10.10 netmask 255.255.255.0
    2. 主板抓包工具:
        tcpdump -i eth0 host 10.10.10.10 &
        tcpdump -vv -i eth0 host 10.10.10.10 &

四、ethtool工具:
    1. Android 5.1
        [email protected]_6dq:/ # ethtool eth0
        Settings for eth0:
                Supported ports: [ TP MII ]
                Supported link modes:   10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Supported pause frame use: Symmetric
                Supports auto-negotiation: Yes
                Advertised link modes:  10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Advertised pause frame use: Symmetric
                Advertised auto-negotiation: Yes
                Link partner advertised link modes:  100baseT/Half
                Link partner advertised pause frame use: No
                Link partner advertised auto-negotiation: No
                Speed: 100Mb/s
                Duplex: Half
                Port: MII
                PHYAD: 1
                Transceiver: external
                Auto-negotiation: on
                Supports Wake-on: g
                Wake-on: d
                Link detected: yes
        [email protected]_6dq:/ # mtp_open
        libphy: 2188000.ethernet:01 - Link is Down
        libphy: 2188000.ethernet:01 - Link is Up - 1000/Full
        [email protected]_6dq:/ # ethtool eth0
        Settings for eth0:
                Supported ports: [ TP MII ]
                Supported link modes:   10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Supported pause frame use: Symmetric
                Supports auto-negotiation: Yes
                Advertised link modes:  10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Advertised pause frame use: Symmetric
                Advertised auto-negotiation: Yes
                Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                     100baseT/Half 100baseT/Full
                                                     1000baseT/Full
                Link partner advertised pause frame use: Symmetric Receive-only
                Link partner advertised auto-negotiation: Yes
                Speed: 1000Mb/s
                Duplex: Full
                Port: MII
                PHYAD: 1
                Transceiver: external
                Auto-negotiation: on
                Supports Wake-on: g
                Wake-on: d
                Link detected: yes
        [email protected]_6dq:/ #                                                           

    2. Android 4.2
        [email protected]:/data # ./ethtool eth0
        Settings for eth0:
                Supported ports: [ TP MII ]
                Supported link modes:   10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Supported pause frame use: Symmetric
                Supports auto-negotiation: Yes
                Advertised link modes:  10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Advertised pause frame use: Symmetric
                Advertised auto-negotiation: Yes
                Speed: 1000Mb/s
                Duplex: Full
                Port: MII
                PHYAD: 1
                Transceiver: external
                Auto-negotiation: on
                Link detected: yes
        [email protected]:/data # PHY: 1:01 - Link is Down
        PHY: 1:01 - Link is Up - 100/Half

        [email protected]:/data # ./ethtool eth0
        Settings for eth0:
                Supported ports: [ TP MII ]
                Supported link modes:   10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Supported pause frame use: Symmetric
                Supports auto-negotiation: Yes
                Advertised link modes:  10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
                                        1000baseT/Full
                Advertised pause frame use: Symmetric
                Advertised auto-negotiation: Yes
                Speed: 100Mb/s
                Duplex: Half
                Port: MII
                PHYAD: 1
                Transceiver: external
                Auto-negotiation: on
                Link detected: yes

五、AR8031寄存器值:
    address 0x0 = 0x1000 .
    address 0x1 = 0x796d .
    address 0x2 = 0x4d .
    address 0x3 = 0xd074 .
    address 0x4 = 0x15e1 .
    address 0x5 = 0xcde1 .
    address 0x6 = 0xd .
    address 0x7 = 0x2001 .
    address 0x8 = 0x0 .
    address 0x9 = 0x300 .
    address 0xa = 0x3801 .
    address 0xb = 0x0 .
    address 0xc = 0x0 .
    address 0xf = 0xa000 .
    address 0x10 = 0x862 .
    address 0x11 = 0xbc5c .
    address 0x12 = 0x0 .
    address 0x13 = 0x0 .
    address 0x14 = 0x82c .
    address 0x15 = 0x0 .
    address 0x16 = 0x4e8 .
    address 0x17 = 0x0 .
    address 0x18 = 0x3200 .
    address 0x19 = 0x3000 .
    address 0x1a = 0x0 .
    address 0x1b = 0x63e .
    address 0x1c = 0x0 .
    address 0x1f = 0x8100 .

六、引脚重新配置:
    #define MX6DL_ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE  |               \
                    PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |                                   PAD_CTL_DSE_40ohm   | PAD_CTL_HYS)
    #define PAD_CTL_PKE                     (1 << 12)      1 0000 0000 0000
    #define PAD_CTL_PUE                     (1 << 13)     10 0000 0000 0000
    #define PAD_CTL_PUS_100K_UP             (2 << 14)   1000 0000 0000 0000
    #define PAD_CTL_SPEED_MED               (2 << 6)              1000 0000
    #define PAD_CTL_DSE_40ohm               (6 << 3)                11 0000
    #define PAD_CTL_HYS                     (1 << 8)            1 0000 0000
                                                        1011 0001 1011 0000
                                                        b1b0
                                                        00013030

    #define MX6DL_ENET_REF_CLK_PAD_CTRL     (PAD_CTL_PUE |  \
                    PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |                           PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
    #define PAD_CTL_PUE                     (1 << 13)     10 0000 0000 0000
    #define PAD_CTL_PUS_100K_UP             (2 << 14)   1000 0000 0000 0000
    #define PAD_CTL_SPEED_MED               (2 << 6)              1000 0000
    #define PAD_CTL_DSE_40ohm               (6 << 3)                11 0000
    #define PAD_CTL_HYS                     (1 << 8)            1 0000 0000
时间: 2024-10-13 08:40:23

I.MX6 网卡能收不能发的相关文章

Ubuntu使用mutt收、发、回复邮件(mutt+msmtp+fetchmail+procmail

Ubuntu使用mutt收.发.回复邮件(mutt+msmtp+fetchmail+procmail): 说明:Mutt为基于文本的邮件客户端,担当邮件用户代理角色,msmtp的作用是发邮件(包括回复),fetchmail的作用是将邮件保存到本地邮箱,procmail的作用是进行邮件过滤(根据发件人.主题.关键字等对邮件进行排序.分类.整理). 软件安装:$ sudo apt-get install mutt$ sudo apt-get install msmtp$ sudo apt-get i

代码学习-Linux内核网卡收包过程(NAPI)

本文通过学习RealTek8169/8168/8101网卡的驱动代码(drivers/net/r8169.c),梳理一下Linux下网卡的收包过程. 在下水平相当有限,有不当之处,还请大家斧正^_^ 驱动的初始化 如下的rtl8169_init_module函数是此驱动的初始化代码,此函数只干了一件事,就是向内核注册一个pci驱动rtl8169_pci_driver. static int __init rtl8169_init_module(void) { returnpci_register

《 转》Linux 网卡驱动程序对 ethtool 的支持和实现

Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用.对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ifconfig,route,ip,ethtool 等,其中 ethtool 提供了强大的网卡及网卡驱动管理能力,其具体的实现框架和网络驱动程序及网络硬件关系紧密,容易修改和扩展,能够为 Linux 网络开发人员和管理人员提供对网卡硬件,驱动程序和网络协议栈的设置,查看以及及调试等功能. 从典型的以

一次刨根问底的socket收包过程(Linux)

Linux会对一个网络包(packet)的收和发做大量的处理.packet在被发送之前会被存在队列中,而在被接受之后也会存在队列中,共有三个队列:reception(接收),transmission(发送)和Backlog.它们都受到spinlock的保护,是为了保证在并发访问时的一致性.言归正传,接下来看看当一个packet到达NIC(网卡)时,linux都会做些什么工作. 先来看一个图(来自论文 Analysis of Linux UDP Sockets Concurrent Perform

网卡phy9161A

硬件1. 网口网口使用4根信号线:两根发送,两根接收.一对信号线中一根承载0——+2.5V信号电压,而另一根负载的电压是0——-2.5V,因此可产生一个5Vpp的信号差.RJ45中有用的就是4根信号线.网络接口控制器与RJ45间需要用网络隔离变压器连接,网络隔离变压器起信号传输.阻抗匹配.波形修复.杂波抑制以及高电压隔离等作用,以确保系统安全.PHY是物理接口收发器,它实现物理层.PHY在发送数据时,收到MAC过来的数据(对PHY而言,没有帧的概念,都是数据而不管什么地址.数据还是CRC),每4

[原]linux下将网卡设置为混杂模式

设置为混杂模式ifconfig eth2 promisc取消设置ifconfig eth2 -promisc ------------------------------------------ 下面为参考:http://blog.chinaunix.net/uid-23849526-id-146675.html在交换环境下面设为混杂模式网卡也收不到所有的包,因为交换机分割了冲突域.只能收到广播包.附:  网卡一般有四种模式:◆广播方式:该模式下的网卡能够接收网络中的广播信息.◆组播方式:设置在

Linux多网卡绑定(bond)及网络组(team)

Linux多网卡绑定(bond)及网络组(team) ??很多时候,由于生产环境业务的特殊需求,我们需要对服务器的物理网卡实施特殊的配置,从而来满足不同业务场景下对服务器网络的特殊性要求.如高并发的网络IO型业务,需要高速的网络IO,即对网卡的收收发包处理能力及网卡最大带宽速度等性能指标提出了更高的要求:事务处理型的系统,如金融交易系统.电商平台等,对物理网络线路.网卡等物理设备的稳定可靠性提出了更高的要求. ??Linux系统中,可以通过多网卡绑定(bonding)和网络组(team)等技术,

TCP/IP协议原理与应用笔记16:交换机和路由器区别

1.交换机和路由器区别 (1)交换机:     交换机是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备.交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址.现在的交换机分为:二层交换机,三层交换机或是更高层的交换机.三层交换机同样可以有路由的功能,而且比低端路由器的转发速率更快.它的主要特点是:一次路由,多次转发.  (2)路由器:     路由器亦称选径器,是在网络层实现互连

TCP/IP协议原理与应用笔记01:ISO/OSI网络参考模型

1.OSI参考模型 第7层应用层:直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输   第6层表示层:格式化数据,以便为应用程序提供通用接口.这可以包括加密服务   第5层会话层:在两个节点之间建立端连接.此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式   第4层传输层:常规数据递送-面向连接或无连接.包括全双工或半双工.   流控制和错误恢复服务    第3层网络层:本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据