AnsweredAssumed Answered

i.MX6D ethernet communication fail

Question asked by Jonathan Poulin on Feb 8, 2017
Latest reply on Feb 8, 2017 by igorpadykov

Hi,

I'm working to update the OS of our costum i.MX6D board. I have a working OS build from Yocto Dizzy (linux-imx_3.10.17). I now try to update to Yocto krogoth with linux-fsl-imx_4.1-1.0.x and u-boot-fslc_2016.07.

 

The ethernet card (FEC) work correctly in u-boot but not in linux. The driver is loaded correctly.

 

fec 2188000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=2188000.ethernet:00, irq=-1)
fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx

 

The interface is correctly mount statically.

eth0      Link encap:Ethernet  HWaddr 00:1D:E9:00:94:D6
          inet addr:192.168.0.11  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:2 dropped:0 overruns:0 frame:2
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:252 (252.0 B)

 

But I can't see anything going on the network with wireshark. Also, I see that the received packets are in CRC error.

 ~# ethtool -S eth0
NIC statistics:
     tx_dropped: 0
     tx_packets: 6
     tx_broadcast: 6
     tx_multicast: 0
     tx_crc_errors: 0
     tx_undersize: 0
     tx_oversize: 0
     tx_fragment: 0
     tx_jabber: 0
     tx_collision: 0
     tx_64byte: 6
     tx_65to127byte: 0
     tx_128to255byte: 0
     tx_256to511byte: 0
     tx_512to1023byte: 0
     tx_1024to2047byte: 0
     tx_GTE2048byte: 0
     tx_octets: 384
     IEEE_tx_drop: 0
     IEEE_tx_frame_ok: 6
     IEEE_tx_1col: 0
     IEEE_tx_mcol: 0
     IEEE_tx_def: 0
     IEEE_tx_lcol: 0
     IEEE_tx_excol: 0
     IEEE_tx_macerr: 0
     IEEE_tx_cserr: 0
     IEEE_tx_sqe: 0
     IEEE_tx_fdxfc: 0
     IEEE_tx_octets_ok: 384
     rx_packets: 236
     rx_broadcast: 0
     rx_multicast: 0
     rx_crc_errors: 220
     rx_undersize: 0
     rx_oversize: 0
     rx_fragment: 16
     rx_jabber: 0
     rx_64byte: 0
     rx_65to127byte: 197
     rx_128to255byte: 18
     rx_256to511byte: 5
     rx_512to1023byte: 0
     rx_1024to2047byte: 0
     rx_GTE2048byte: 0
     rx_octets: 26079
     IEEE_rx_drop: 0
     IEEE_rx_frame_ok: 0
     IEEE_rx_crc: 220
     IEEE_rx_align: 212
     IEEE_rx_macerr: 0
     IEEE_rx_fdxfc: 0
     IEEE_rx_octets_ok: 0

 

My i.MX6 is connect directly on an LAN9303 switch by the RMII bus. Here is my dts ethernet node:

 

#include "imx6q.dtsi"

...

&fec {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_enet_axion>;
    phy-handle = <&ethphy0>;
    phy-mode = "rmii";
    phy-reset-gpios = <&gpio1 23 0>; /* GPIO1_23 */
    phy-reset-duration = <10>;
    status = "okay";

 

    mdio {
        #address-cells = <1>;
        #size-cells = <0>;

 

        ethphy0: ethernet-phy@0 {
            reg = <0>;
        };


        ethphy1: ethernet-phy@1 {
            reg = <1>;
        };

 

        ethphy2: ethernet-phy@2 {
            reg = <2>;
        };
   };

};

 

 

Someone have an idea of what is going on or what can I look ?

thanks

Outcomes