You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to integrate phy_mii.c into my ethernet device driver. But I see odd initialization behaviour which I don't understand.
As I understand phy_mii.c starts like this:
Call phy_mii_initialize()in POST_KERNEL
In phy_mii_initialize(), advertise all speeds with autonegotiation enabled.
Wait for link is up in update_link_state() which is called by system worker.
When link is up, it starts "auto-negotiate sequence" again.
Because of this behavior, my eth phy links up, down, and re-auto-negotiate at device initialization phase. I can understand that you need to auto-negotiate when link status changed from down to up, but for the initialization, this behaviour seems wrong to me.
Am I missing anything? Does anyone know why it does the way it does?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
I'm trying to integrate
phy_mii.c
into my ethernet device driver. But I see odd initialization behaviour which I don't understand.As I understand
phy_mii.c
starts like this:phy_mii_initialize()
inPOST_KERNEL
phy_mii_initialize()
, advertise all speeds with autonegotiation enabled.update_link_state()
which is called by system worker.Because of this behavior, my eth phy links up, down, and re-auto-negotiate at device initialization phase. I can understand that you need to auto-negotiate when link status changed from down to up, but for the initialization, this behaviour seems wrong to me.
Am I missing anything? Does anyone know why it does the way it does?
Beta Was this translation helpful? Give feedback.
All reactions