> I went all in and did a 100ms delay before returning from the resets of > 3 and 4 you mention. Sure enough, everything worked! It certainly should > be understood and optimized. I added the linux-omap list to this thread > (please let me know if there were others I should've CC'd on any of > these emails). It probably has little to do with the OMAP, it is the Microchip PHY you need more information about. 100ms is a very long time. The data sheet says: Note: For the first 16us after coming out of reset, the RMII interface will run at 2.5 MHz. After this time, it will switch to 25 MHz if auto-negotiation is enabled. I did not find anything else. I would try a deassert time the same as the asset time as a starting point. It could also be that you ask Linux for 100us sleep, and Linux actually gives your 1ms because of the resolution of the timers. But i doubt many application will care about a 1ms delay. Andrew