ConnectCore i.MX6UL SBC: trouble disabling one of the ethernet ports


I am trying to disable fec2 in the Device Tree.

If I disable fec1 but keep fec2 enabled in the device tree, everything works fine:
&fec1 {status = “disabled”;};
&fec2 {status = “okay”;};
An ifconfig -a returns only eth1 and no eth0, as expected. And I can manually change the IP address of eth1.

If I do the opposite, then I can no longer talk to eth0.
&fec1 {status = “okay”;};
&fec2 {status = “disabled”;};
An ifconfig -a returns only eth0 and no eth1, as expected.
root@ccimx6ulsbc:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:40:9D:98:B6:86
inet addr: Bcast: Mask:

But I can no longer acces eth0 to change its IP address:
root@ccimx6ulsbc:~# ifconfig eth0
ifconfig: SIOCSIFFLAGS: No such device

Any thoughts are welcome.


The problem was in file imx6ul-ccimx6ulsbc.dtsi:

  • fec2 includes node mdio
  • if fec2 is disabled, so is node mdio
  • so I had to move node mdio into fec1

The file actually explains that in the following comment:
* The MDIO bus is shared between ENET1 and ENET2. If you only want
* to enable ENET1, this node must be moved to fec1 node, and the
* pinctrl-0 of fec1 must contain the IOMUX for the MDIO bus on ENET1
* (pintrl_enet1_mdio).