https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238411

--- Comment #16 from Abraham122x <abra...@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.
_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to