[Bug 295443] [Regression] Intel em(4) WOL broken due to ACPI _OSC failure (HP EliteDesk 800 G2)

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 20 May 2026 11:23:04 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295443

            Bug ID: 295443
           Summary: [Regression] Intel em(4) WOL broken due to ACPI _OSC
                    failure (HP EliteDesk 800 G2)
           Product: Base System
           Version: 14.3-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: phil.incogn@gmail.com

Hi,

I am experiencing a complete loss of Wake-on-LAN (WOL) functionality on the
integrated Intel NIC since upgrading to a FreeBSD 14-based system. I am
currently running OPNsense 26.1.8_5 on FreeBSD 14.3-RELEASE-p12. WOL was
working perfectly back on FreeBSD 13 (OPNsense 24.7).

Hardware: HP EliteDesk 800 G2
NIC: Intel Corporation 82567LM-3 Gigabit Network Connection (driven by em0)

Symptom: 
At shutdown (S5 state), the em0 NIC completely loses power (link LEDs turn
off). Running `ifconfig em0` before shutting down shows that WOL_MAGIC is
properly armed. 

Root cause (dmesg logs):
During boot, the kernel reports a critical ACPI failure during PCI host bridge
initialization:

pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
Firmware Error (ACPI): \_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI
requires 4 (20221020/nsarguments-311)
Firmware Error (ACPI): Failure creating named object [\_SB.PCI0._OSC.CAPD],
AE_ALREADY_EXISTS (20221020/dsfield-352)
ACPI Error: AE_ALREADY_EXISTS, CreateBufferField failure
(20221020/dswload2-639)
ACPI Error: Aborting method \_SB.PCI0._OSC due to previous error
(AE_ALREADY_EXISTS) (20221020/psparse-689)
pcib0: _OSC failed: AE_ALREADY_EXISTS

It seems that the stricter ACPI parser or changes in how the em(4) driver
interacts with ACPI power management in FreeBSD 14+ prevents the system from
properly negotiating PCI control with the HP BIOS. Because the _OSC method
aborts, the driver/kernel fails to keep the NIC armed for PME when
transitioning to S5.

Is there any known loader tunable to force the em driver to ignore this ACPI
failure at shutdown, or could a kernel quirk be introduced to handle this
specific HP BIOS firmware non-compliance?

Related OPNsense ticket: https://github.com/opnsense/src/issues/278

Thank you.

Best regards

-- 
You are receiving this mail because:
You are the assignee for the bug.