Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jan 2024 01:42:14 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 276308] acpi_wmi: Error getting Embedded MOF on some hardware
Message-ID:  <bug-276308-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D276308

            Bug ID: 276308
           Summary: acpi_wmi: Error getting Embedded MOF on some hardware
           Product: Base System
           Version: 14.0-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: kennedy.greg@gmail.com
 Attachment #247632 text/plain
         mime type:

Created attachment 247632
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D247632&action=
=3Dedit
acpidump -d -t > DSDT.dsl

Hardware -
Dell Latitude E5420 laptop (2011), latest BIOS (A14), 8gb RAM, Intel Core
i5-2430M CPU
FreeBSD-14.0-RELEASE-p4, AMD64 standard kernel.

Issue -
Getting this error in `dmesg` after boot:

acpi_wmi0: <ACPI-WMI mapping> on acpi0
acpi_wmi0: Embedded MOF found
ACPI: \134_SB.AMW0.WQMO: 1 arguments were passed to a non-method ACPI object
(Buffer) (20221020/nsarguments-361)

Seems to be a problem retrieving the BMOF from ACPI: where the kernel expec=
ts
to find a method to "block query", instead there is a Buffer w/ the data, a=
nd
no query method is present to call.

Reference
https://github.com/freebsd/freebsd-src/blob/main/sys/dev/acpi_support/acpi_=
wmi.c#L280

On Linux, the result is different.  Instead the kernel reports "data block
query control method not found" and gives up.  See
https://github.com/torvalds/linux/blob/master/drivers/platform/x86/wmi.c#L9=
65
but also, the comments are enlightening - "On some Dell laptops, WQxx may n=
ot
be a method at all"

Solution (maybe?) -
Check that the WQxx result from ACPI for this GUID is a method, not a buffe=
r.

If it is a buffer, return the contents directly, instead of attempting to c=
all
the method to get the contents.

Consider also the quirk about "optional" parameters when there is only one
instance for the associated data block.

Attached -
I'm attaching the result of `acpidump -d -t` from the machine.  This doesn't
compile with iasl (because of external references), but it should be everyt=
hing
needed to help diagnose this issue.

My research into this is also on the forums at
https://forums.freebsd.org/threads/acpi-134_sb-amw0-wqmo-1-arguments-were-p=
assed-to-a-non-method-acpi-object-buffer.91904/
if it is any help.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-276308-227>