Freescale FslFec - acontis/atemsys GitHub Wiki

This page covers the link layer FslFec from NXP, formerly Freescale. The link layer is built into the i.MX6, i.MX7 and i.MX8 SoC families, among others.

The acontis internal name for this link layer is emllFslFec

Toradex Colibri iMX7D

To use the Toradex Colibri iMX7D 1GB SoM, the LDO1 controller must be activated, as the standard Linux Ethernet driver switches it off when it is unloaded. The property regulator-always-on must add to the LDO1 node:

Before:


LDO1 {
    regulator-min-microvolt = <0x1b7740>;
    regulator-max-microvolt = <0x325aa0>;
    regulator-boot-on;
    linux,phandle = <0x56>;
    phandle = <0x56>;
};

After:

  
LDO1 {
    regulator-min-microvolt = <0x1b7740>;
    regulator-max-microvolt = <0x325aa0>;
    regulator-boot-on;
    regulator-always-on;
    linux,phandle = <0x56>;
    phandle = <0x56>;
};

Toradex Verdin iMX8M Plus

Two Ethernet MACs are implemented on the Toradex Verdin iMX8M Plus module. On the one hand the DWMAC-EQOS which is currently not compatible with the Acontis link layers and on the other hand the fsl-fec, which can be used with the link layer emllFslFec.

To run the emllFslFec link layer with the parameter EC_T_LINK_PARMS_FSLFEC::ePhyInterface = ePHY_OSDRIVER the interrupts in the ethernet-phy node must be disabled.


ethernet@30be0000 {
	compatible = "fsl,imx8mm-fec\0fsl,imx8mq-fec\0fsl,imx6sx-fec\0atemsys";
        atemsys-Ident = "FslFec";
        ...
        ethernet-phy@7 {
		compatible = "ethernet-phy-ieee802.3-c22";
		#interrupt-parent = <0x3d>;
		#interrupts = <0x12 0x08>;
};

Variscite VAR-SOM-MX8M-PLUS

The Mdio bus is shared between the dwmac and the fsl-fec. The dwmac is the Mdio master and must assigned to Linux.

Link layer emllFslFec then uses the Linux Mdio driver to communicate with the PHY. To activate this operating mode, the emllFslFec parameter EC_T_LINK_PARMS_FSLFEC::ePhyInterface = ePHY_OSDRIVER must be set.


ethernet@30be0000 {
        compatible = "fsl,imx8mm-fec\0fsl,imx8mq-fec\0fsl,imx6sx-fec\0atemsys";
        atemsys-Ident = "FslFec";
        atemsys-Instance = <0x1>;
        ...
        phy-mode = "rgmii-id";
        phy-handle = <0x48>;
};
⚠️ **GitHub.com Fallback** ⚠️