[Bug 238411] igb(4): Wake on Lan not working with Intel I210
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Apr 25 23:03:21 UTC 2021
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238411
--- Comment #16 from Abraham122x <abraham at gmx.at> ---
Let's ask differently in reference to the non-modified FreeBSD drivers.
Regardless if I set "ifconfig igb0 wol" or not, I cannot enable the WOL feature
on my NICS. So for me it's not clear with which functionality from OS
perspective I can influence the field "adapter->wol".
My only workaround I found is to change the variable directly in the source
code of the driver and overrule it.
What I see from my theoretical analysis, the variables are stored in ROM at
shutdown -> method "em_enable_phy_wakeup":
E1000_WRITE_REG(hw, E1000_WUC, E1000_WUC_PHY_WAKE | E1000_WUC_PME_EN |
E1000_WUC_APME);
E1000_WRITE_REG(hw, E1000_WUFC, adapter->wol);
At startup the register is read again:
apme_mask = E1000_WUC_APME;
eeprom_data = E1000_READ_REG(&adapter->hw, E1000_WUC);
if (eeprom_data & apme_mask)
adapter->wol = (E1000_WUFC_MAG | E1000_WUFC_MC);
As the variable "adapter->wol" at startup seems to be zero, it means that the
flag E1000_WUC_APME is not set, although it was written at shutdown.
So seen from my hardware perspective, the ROM settings are not properly
recognized at startup, hence "adapter->wol" is always zero. The variable cannot
be influenced by anything known to me.
Is my analysis correct? Did I miss something?
P.S: I have an E1000_DEV_ID_I210_COPPER_FLASHLESS installed.
--
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.
More information about the freebsd-net
mailing list