Hi togehter,
I encountered an issue when enabling the KSZ9893 switch in U-Boot (IMX6dl). After a cold reset and entering U-Boot, the TDAR bit is never cleared by the FEC after it has been set to “1” to indicate that there is data to be transmitted.
However, if the system first boots into Linux and then re-enters U-Boot via a warm reset (using reboot), the issue does not occur.
I compared all FEC and KSZ9893 registers between cold reset and warm reset scenarios and found them to be identical. I also compared the clock and PLL configurations in both cases (including ANALOG_PLL_528, ANALOG_PFD_528, CBCMR, CBCD R, and CCGR1), and they are exactly the same.
Is it possible that some initialization or configuration step performed during the warm reset path is missing during the cold reset, which could result in the TDAR bit not being cleared in the cold reset case?
Thanks a lot in advance