This is an old revision of the document!


Network interface

i.MX6UL contains Dual-Megabit Ethernet Controller. Below you can see how this peripheral is configured for the liteboard.

Liteboard is using external LAN8720A 10BASE-T/100BASE-TX transceiver connected with liteSOM via RMII™ interface.

Following signals are required to connect liteSOM with LAN8720A via RMII™:

  • ETH_TXD0/1 - transit data,
  • ETH_TXEN - transmit strobe,
  • ETH_RXD0/1 - receive data,
  • ETH_RXERR - receive error (optional),
  • ETH_CSR_DV - carrier sense,
  • ETH_REFCLK - reference clock.

In addition LAN8720A and liteSOM are connected via SMI signals:

  • ETH_MDIO - SMI data input/output,
  • ETH_MDC - SMI clock.
fec1: ethernet@02188000 {
    compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
    reg = <0x02188000 0x4000>;
    interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
	        <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clks IMX6UL_CLK_ENET>,
	     <&clks IMX6UL_CLK_ENET_AHB>,
	     <&clks IMX6UL_CLK_ENET_PTP>,
	     <&clks IMX6UL_CLK_ENET_REF>,
	     <&clks IMX6UL_CLK_ENET_REF>;
    clock-names = "ipg", "ahb", "ptp",
	          "enet_clk_ref", "enet_out";
    fsl,num-tx-queues=<1>;
    fsl,num-rx-queues=<1>;
    status = "disabled";
};

Basic configuration for i.MX6UL Fast Ethernet Controller is defined in imx6ul.dtsi file.

Documentation for this device-tree node you can find in fsl-fec.txt file.

&fec1 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_enet1>;
    phy-mode = "rmii";
    phy-handle = <&ethphy0>;
    status = "okay";

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

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

&iomuxc {
    pinctrl_enet1: enet1grp {
    	fsl,pins = <
    	    MX6UL_PAD_GPIO1_IO07__ENET1_MDC          0x1b0b0
    	    MX6UL_PAD_GPIO1_IO06__ENET1_MDIO         0x1b0b0
    	    MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN       0x1b0b0
    	    MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER       0x1b0b0
    	    MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00  0x1b0b0
    	    MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01  0x1b0b0
    	    MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN       0x1b0b0
    	    MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00  0x1b0b0
    	    MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01  0x1b0b0
    	    MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1   0x4001b031
    	>;
    };
};

PHY configuration for the liteboard is defined in imx6ul-liteboard.dts file.

To enable i.MX6UL Fast Ethernet Controller please build kernel with enabled CONFIG_FEC option.

-> Device Drivers
  -> Network device support
    -> Ethernet driver support
      -> Freescale device
        -> FEC ethernet controller (of ColdFire and some i.MX CPUs)

Default Buildroot configuration for the liteboard is using DHCP to configure internet connection. This behavior can be changed via BR2_SYSTEM_DHCP configuration item.

Current network status you can verify by ifconfig eth0 command

eth0      Link encap:Ethernet  HWaddr 9E:EE:5F:94:B8:D3  
          inet addr:10.42.0.133  Bcast:10.42.0.255  Mask:255.255.255.0
          inet6 addr: fe80::9cee:5fff:fe94:b8d3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5906 (5.7 KiB)  TX bytes:1654 (1.6 KiB)

or ip address show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 9e:ee:5f:94:b8:d3 brd ff:ff:ff:ff:ff:ff
    inet 10.42.0.133/24 brd 10.42.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::9cee:5fff:fe94:b8d3/64 scope link 
       valid_lft forever preferred_lft forever
  • litesom/devicetree/eth.1494960611.txt.gz
  • Last modified: 2017/05/16 18:50
  • by filug