> I double checked the vendor documentation and according to the data > sheet in this device the MAC detects speed and duplex mode. It uses > PINs, traces clocks … Also according to an application note of the > vendor duplex and speed detection should be enabled in the MAC > registers.
In general, the MAC should not perform MDIO requests on the PHY. The MAC has no access to the mutex which phylib users. So if the MAC directly accesses registers in the PHY, it could do it at the wrong time, when the PHY driver is active. This can be particularly bad when Marvell PHYs are used. They have paged registers. One example is the page with the temperature sensor. This can be selected due to a read on the hwmon device. If the MAC tried to read the speed/duplex which the temperature sensor is selected, it would wrongly read the temperature sensor registers, not the link state. There is no need for the MAC to directly access the PHY. It will get told what the result of auto-neg is. So please turn this off all the time. Andrew