[Bug 300049] [acpi_asus_wmi] Multiple ACPI errors on boot - Asus ProArt and Vivobook / Keyboard in OOBE mode
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 300049] [acpi_asus_wmi] Multiple ACPI errors on boot - Asus ProArt and Vivobook / Keyboard in OOBE mode"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 300049] [acpi_asus_wmi] Multiple ACPI errors on boot - Asus ProArt and Vivobook / Keyboard in OOBE mode"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 25 Oct 2026 19:04:25 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=300049
Bug ID: 300049
Summary: [acpi_asus_wmi] Multiple ACPI errors on boot - Asus
ProArt and Vivobook / Keyboard in OOBE mode
Product: Base System
Version: 15.1-STABLE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: as400@smail.net.pl
1. When booting newer Asus laptops 2023+ there are multiple ACPI errors:
Firmware Error (ACPI): AE_AML_BUFFER_LIMIT, Field [IIA3] at bit offset/length
96/32 exceeds size of target Buffer (96 bits)
The problem is that acpi_asus_wmi driver fails to load correctly. WMI method
invocation buffer size is 3 dwords, whereas
5 are expected by the models I mentioned (Linux asus_wmi does 6, I think for
TUF gaming models). DSDT fragment from ProArt PX13 below:
Method (WMNB, 3, Serialized)
{
CreateDWordField (Arg2, Zero, IIA0)
CreateDWordField (Arg2, 0x04, IIA1)
CreateDWordField (Arg2, 0x08, IIA2)
CreateDWordField (Arg2, 0x0C, IIA3)
CreateDWordField (Arg2, 0x10, IIA4)
Local0 = (Arg1 & 0xFFFFFFFF)
2. New Asus laptop models have this OOBE mode when cold booted. Meaning that
until instructed to stop the keyboard will blink constantly and keyboard
backlight doesn't work. So one has to boot Windows first and then reboot to
FreeBSD. I've taken below code from Linux asus-wmi driver and put it before
keyboard initialization and it works :
> /*
> * Check for OOBE state presence on this machine.
> * If supported by the firmware, write an override state to turn it off.
> */
> sc->oobe_state_available = false;
> if (acpi_wpi_asus_get_devstate(sc, ASUS_WMI_DEVID_OOBE, &val) == 0) {
> if ((val & ASUS_WMI_DSTS_PRESENCE_BIT) != 0) {
> sc->oobe_state_available = true;
> acpi_wpi_asus_set_devstate(sc, ASUS_WMI_DEVID_OOBE, 1, NULL);
> if (bootverbose) {
> device_printf(dev, "Disabled ASUS hardware OOBE state\n");
> }
> }
> }
--
You are receiving this mail because:
You are the assignee for the bug.