Kernel Bug Tracker – Bug 14753
ACPI Errors: Index beyond end of object, parse/execution failed, _BCM failed - Asus Notebook X5DIJ-SX101L
Last modified: 2010-02-06 16:52:29 UTC
Created attachment 24058 [details]
Most recent kernel where this bug did not occur: 126.96.36.199 stock from Arch Linux
Distribution: Arch Linux
Hardware Environment: Asus Notebook X5DIJ-SX101L
Software Environment: n/a
Since installing the new kernel there a many ACPI Errors in dmesg:
ACPI Exception: AE_AML_BUFFER_LIMIT, Index (000000064) is beyond end of object (20090903/exoparg2-445)
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.SBRG.EC0_.STBR] (Node ffff88007d81d120), AE_AML_BUFFER_LIMIT
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.VGA_.LCDD._BCM] (Node ffff88007d8373a0), AE_AML_BUFFER_LIMIT
ACPI Error: Evaluating _BCM failed (20090903/video-528)
I didn't notice any problems yet, maybe graphics in X are a bit slower but the biggest problem for me is the spam in dmesg. I found a bugreport (#9558) with ACPI errors that looks similar to mine except the part in square brackets. I have read about using a custom DSDT but the final solution in the other bugreport was a patch for Sizeof operator.
Thanks for your support.
Steps to reproduce: Install Arch Linux and kernel 2.6.32, type dmesg in a terminal.
please attach the acpidump output.
Created attachment 24076 [details]
please try boot option acpi_osi="!Windows 2009" and see if it helps.
there is a bug with whitespaces in boot parameter variables and for this reason i get an error "bad variable name" while booting with the given parameter. i tried it with a "#" in front of the parameter like described in the bug report
but i don't know if the parameter is accepted or ignored and i get the same ACPI Errors in dmesg. i also tried it with an empty "acpi_osi=" to disable all strings and herewith the ACPI errors are gone.
is it good practice to disable all strings? if so, i'm lucky. :)
Created attachment 24091 [details]
dmesg # acpi_osi="!Windows 2009"
Created attachment 24092 [details]
(In reply to comment #4)
> there is a bug with whitespaces in boot parameter variables and for this reason
> i get an error "bad variable name" while booting with the given parameter. i
> tried it with a "#" in front of the parameter like described in the bug report
> but i don't know if the parameter is accepted or ignored and i get the same
> ACPI Errors in dmesg.
I never saw this kind of problems before.
Please make sure you are using boot parameter acpi_osi="!Windows 2009"
don't forget the quotation marks.
> i also tried it with an empty "acpi_osi=" to disable all
> strings and herewith the ACPI errors are gone.
> is it good practice to disable all strings? if so, i'm lucky. :)
yes, it does the similar thing that I want to test, but more aggressive.
so I think I have root caused this problem.
here is the AML code of the _BCM method:
Method (_BCM, 1, NotSerialized)
If (LGreaterEqual (OSFG, OSVT))
If (LNotEqual (OSFG, OSW7))
Store (One, BCMD)
Store (GCBL (Arg0), Local0)
Subtract (0x0F, Local0, LBTN)
DBGR (0x0B, Zero, Zero, Arg0)
Store (Arg0, LBTN)
Note that Arg0 is a percentage value that reported by _BCL.
If the laptop is not running in Windows7, the AML code will convert this percentage value to an index value in GCBL, and store it to LBTN.
But if the laptop OSFG equals OSW7, LBTN is set to a percentage value as well, and the AML code uses this percentage value (0x64 in this case) as an index.
that's why the ACPICA error messages are printed out.
please attach the dmidecode output and I'll generate a dmi patch to disable the win7 capability of Linux for you.
i know that the quotes are missing in the kernelline at the beginning of the dmesg log, but i did not forget it and they are in my grub-config. i was testing it again and it's really a (maybe arch linux specific) bug.
i also tried the number sign workaround with "# acpi_osi=" and i don't get any acpi errors, which means that the number sign workaround should work and it should work with
linux [...] # acpi_osi="!Windows 2009"
but herewith i still get the ACPI errors.
Created attachment 24119 [details]
Created attachment 24126 [details]
patch: disable _OSI(Windows 2009) for Asus K50IJ
please apply this patch, and reboot w/0 any acpi_osi boot option.
does the problem still exist this time?
Created attachment 24131 [details]
dmesg patched kernel
no acpi errors anymore with the patched kernel and X feels much smoother, but thats probably caused by the self compiled kernel.
thanks a lot! :)
patch is sent to linux-acpi mail list.
Mark it as resolved, lenb will close it after the patch hit upstream kernel.
here is the upstream version of the patch:
Do you have a Windows7 partition on this box
where you can test the brightness functionality?
If Rui is right, then Windows7 will break on this box.
Author: Zhang Rui <email@example.com>
Date: Mon Dec 21 16:13:15 2009 +0800
ACPI: disable _OSI(Windows 2009) on Asus K50IJ
applied to the acpi tree
No, i don't have a Windows 7 partition and neither want to buy nor to install Windows on my well configured lovely notebook. There was a BIOS update to "Add Win 7 Support" (version 212), but mine is newer (213) and with Linux the Fn-Keys to adjust brightness are working great. I don't know if this information helps in any way.
I have updated the kernel to 2.32.1 and later 2.32.2 with the patch applied and didn't notice any problems yet.
... 188.8.131.52 and 184.108.40.206. Sorry.
patch referenced in comment #16 shipped in Linux-2.6.33-rc2
I have an Asus U50A laptop that's having the same problem. Just want to add
that booting with grub2, the acpi_osi="!Windows 2009" fix works but need to
be specified as
in /boot/grub/grub.cfg, or
GRUB_CMDLINE_LINUX="vga=0x305 acpi_osi='\"!Windows 2009\"'"
in /etc/default/grub for debian/update-grub.