I have a question regarding the ENET behavior on the i.MX283 processor.
We are running the i.MX283 on a custom PCB based on the i.MX28 EVK Board, Rev. D. running Linux kernel version 2.6.35.
The big change between the EVK board and our application is that we are only using one PHY chip, but it is the same PHY as on the EVK (Microchip LAN8720A on ENET0). One change that has been made from the EVK board schematic is that the PHY chip address has been changed to 0x1 via pull-up, while the PHY is still connected to the ENET0 pins of the i.MX283. The ENET1 pins are floating.
The problem we are seeing is that at unexpected times the Ethernet controller will indicate an active link on PHY 0, and then indicate the the link is down. This will happen when nothing has been connected to the single Ethernet port and there should be no active links. Also, there should not be a PHY 0, since our only hardware is addressed to 1.
The exact messages shown are "PHY: 0.0 - Link is Up - 10/Half", from Phy_print_status in phy.c, which is called from Fec_enet_adjust_link in fec.c. Also, "PHY: 0:00 - Link is Down" is printed some time after, with no external connection, disconnection being made.
Also, when connecting to a network via the single Ethernet port, you get the expected message "PHY: 0.1 - Link is UP - 10/Half" indicating that PHY 0x1 is indeed connected as expected. Also, we have used the Ethernet successfully on this hardware design (tftp etc).
We can see both eth0 and eth1, and it seems that PHY 1 will indicate as active on either, depending on which is active. I see that there is a 3-port switch internal to the i.MX that connects to both MAC and PHY layers internally but am not clear on how it operates.
Any clues on why this is happening or how to debug or resolve the issue? I suspect a hardware issue is part of the problem, especially since out of a handful of boards, only one appears to be doing this regularly. However we are having trouble getting to the root cause of the issue, and its intermittent nature makes it hard to debug or evaluate.
Thanks for the help!