diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-10 16:01:13 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-09-04 07:27:14 +0000 |
| commit | c004384343bece0b984cfe3520ec077ef2483e1f (patch) | |
| tree | b009592fe39722128a2ddbe61fbed1f151f6295f /source/API/SBThreadPlan.cpp | |
| parent | 5d3e31df7c4fc0e53168bac717bed5f94dab7068 (diff) | |
ixgbe: Correct Wake-on-LAN configuration
Wake-on-LAN capability was inferred from NVM bits on every MAC even
though 82599 support is board and sometimes port specific. Private
sysctls formed a second policy interface, and the driver neither
coordinated the controller wake source with PCI PME nor reliably
rebuilt address filters erased by the stop-time reset.
Use the standard ifconfig wake capabilities. Derive support from the
82599 board and port matrix or the X540-and-newer NVM capability.
Require D3hot PME support, and use the NVM APME bit only to select the
initial magic-packet policy after initializing the LAN function number.
Snapshot requested filters before the terminal stop so shared reset and
PHY code sees the active wake policy. After reset, restore RAR0, the
multicast table, receive filtering, and the optical laser before arming
WUFC, WUC, and PCI PME. Remove device wake sources before clearing PCI
PME on detach, resume, and when wake is disabled. Clear autonomous APM
so ifconfig remains authoritative.
Treat X550EM low-power-link-up failure as best effort and allow shutdown
to continue after a wake-programming error.
The 82599, X540, X550, and E610 datasheets document the standard ACPI
wake filters used here; the E610 ACPI path includes magic-packet wake.
Validated on a dual-port E610. Both ports completed three direct-D3
cycles covering wake disabled and magic-packet wake armed. A system S3
cycle woke through ix0 with WUS 0x00000002 (magic packet). Link and
traffic recovered after each transition.
Note that many add-in cards in this family do not support WoL; LOM and
OCP cards are more likely. The E610 as tested does.
MFC after: 2 weeks
Sponsored by: Dirk-Willem van Gulik from Web Weaving (E610 hardware)
Sponsored by: BBOX.io
Diffstat (limited to 'source/API/SBThreadPlan.cpp')
0 files changed, 0 insertions, 0 deletions
