Dear community,
we try to get the two FECs on i.MX28 to run. Our hardware setup is that we have two Micrel KSZ8091 PHYs connected with a shared interrupt line. Software-wise we are running a Linux 4.4 kernel.
Our current status is that we
The issue now is that whenever only a cable is plugged to eth0 we can send packets (and they look correct according to wireshark) but cannot receive anyhting.
As soon as we additionally connect a cable to eth1 we can send packets on both interfaces correctly and very randomly receive a valid packet; but most of the time only the RX frame error counter (as seen in ifconfig) goes up for eth0 and eth1.
Please let me know if anyone has also seen a similar behaviour or which further information I can provide? Thanks!
Excerpt from device tree:
mac0: ethernet@800f0000 { phy-mode = "rmii"; phy-handle = <&phy0>; pinctrl-names = "default"; pinctrl-0 = <&mac0_pins_a &mac0_rx_er>; phy-supply = <®_dummy_3v3>; phy-reset-gpios = <&gpio4 13 0>; phy-reset-duration = <100>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; phy0: ethernet-phy@0 { interrupt-parent = <&gpio4>; interrupts = <5 8>; reg = <0>; }; phy1: ethernet-phy@3 { interrupt-parent = <&gpio4>; interrupts = <5 8>; reg = <3>; }; };
};
mac1: ethernet@800f4000 { phy-mode = "rmii"; phy-handle = <&phy1>; pinctrl-names = "default"; pinctrl-0 = <&mac1_pins_a &mac1_rx_er>; phy-supply = <®_dummy_3v3>; status = "okay";};
Sorry - we have found the problem, ENET0_RXEN and ENET1_RXEN are interchanged on the layout.