We are using the MIMXRT1062 on a custom board to communicate with the network.
Accordingly configured the ethernet port and registers in the firmware to do so. I had the link up and running until few days ago. And in between was working on some RTOS and mBedTls stuff.
Now if I check, the ethernet port does not work ( data read back from PHY Read fails and shows that the link is down ).
Similarly the " PHY_GetAutoNegotiationStatus " and " PHY_GetLinkStatus " as used in the EVK example do not set the link up.
This is happening even when I am using my base code ( similar to the EVK example ) that I had used to verify ethernet earlier.
Wondering if any of the PHY settings/configurations have been changed ? This is a pretty urgent requirement.
Any help will be much appreciated.
It may be a caching issue depending on your project configuration (ie using external SDRAM). Try disabling/commenting
PHY_AUTONEGO_TIMEOUT_COUNT is set to 100000 in my code.
Stepping through the debugger shows me that the data read from the SMI register ( MMFR ) seems to be different than what is expected - Causing the Auto Nego and Link status to not pass. The ST, OP, Pa, RA amd TA fields are all correct in the MMFR register. Just the DATA looks different than what could make the MDIO_Read to return a correct regValue.
Have you changed the PHY_AUTONEGO_TIMEOUT_COUNT? Mine seems to stop working when I reduce this value from 100000 to 1000. When no ethernet cable is connected on mine it was stalling my application and this value was the holdup. So I need to come up with another solution. But as soon as I increase this value Ethernet works fine again.