You are here: Digi Embedded Yocto > System development > Linux v3.14 Board Support Package > Devices and interfaces > Ethernet

Ethernet

The Fast Ethernet Controller (FEC) driver performs the full set of IEEE 802.3/Ethernet CSMA/CD media access control and channel interface functions. The FEC requires an external interface adapter and transceiver function to complete the interface to the Ethernet media. It supports half- or full-duplex operation on 10Mbps, 100Mbps, and 1000Mbps Ethernet networks.

The FEC driver supports the following features:

You can access the network adapter through the ifconfig command. The driver auto-probes the external adapter (PHY device).

Kernel configuration

You can manage Ethernet driver support through the kernel configuration option FEC Ethernet controller (CONFIG_FEC). This option is enabled as built-in on the default ConnectCore 6 SBC kernel configuration file.

Platform driver mapping

The Ethernet driver for the ConnectCore 6 system-on-module is located at drivers/net/ethernet/freescale/fec_main.c.

Device tree bindings and customization

The i.MX6 Ethernet interface device tree binding is documented at Documentation/devicetree/bindings/net/fsl-fec.txt.

The FEC interface is defined in the i.MX6 CPU, ConnectCore 6 system-on-module, and ConnectCore 6 SBC device tree files.

Definition of the FEC

Common i.MX6 device tree
fec: ethernet@02188000 {
    compatible = "fsl,imx6q-fec";
    reg = <0x02188000 0x4000>;
    interrupts-extended =
            <&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
            <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clks IMX6QDL_CLK_ENET>,
             <&clks IMX6QDL_CLK_ENET>,
             <&clks IMX6QDL_CLK_ENET_REF>;
    clock-names = "ipg", "ahb", "ptp";
    status = "disabled";
};

IOMUX configuration

ConnectCore 6 system-on-module device tree
enet {
        pinctrl_enet: enet {
            fsl,pins = <
                MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
                MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
                MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
                MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
                MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
                MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
                MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
                MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
                MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
                MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
                MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
                MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
                MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
                MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
                MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28     0x1b0b0
                MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25    0x1b0b0
            >;
    };
};

Ethernet enabling and PHY parameters

ConnectCore 6 SBC device tree
&fec {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_enet>;
    phy-mode = "rgmii";
    phy-reset-gpios = <&gpio1 25 2>;
    phy-reset-duration = <10>;
    phy-reset-wait = <1>;
    phy-supply = <&ldo4>;
    status = "okay";
};

MAC address

The MAC address of the i.MX6 Ethernet interface is programmed at the U-Boot environment (variable ethaddr) on the ConnectCore 6 eMMC. It is also printed on the module label.

U-Boot writes the MAC address in the ethaddr environment variable into the DeviceTree fec node under the local-mac-address property.

Known issues

Ethernet user space usage

In the Linux system, the Ethernet interface is known as ethX where X is a number, starting at 0, that indicates the interface index.

The Ethernet (FEC) driver exposes device data through the sysfs at /sys/class/net/ethX.

You can configure the Ethernet settings (IP, netmask, and so on) using the configuration file /etc/network/interfaces. You can manually configure and bring the interface up/down using the ifconfig program.

 

© 2017 Digi International Inc. All rights reserved.
Ethernet updated on 24 April 2017 11:48:26 PM