Bug 36932

Summary: pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d
Product: ACPI Reporter: Cristian Aravena Romero (caravena)
Component: ACPICA-CoreAssignee: Lv Zheng (lv.zheng)
Status: CLOSED WILL_NOT_FIX    
Severity: normal CC: aaron.lu, alan, archer_ame, bjorn, deepred05, funtoos, jjorge, lenb, mathieu.malaterre, michal, petercjclifton, rei4dan, rheluani, rui.zhang
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.2.5 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg 3.0-rc2
lspci -vvnn
dmidecode_VGN-NS130FE.log
acpidump_VGN-NS130FE.log
dmesg 3.0-rc3
dmesg 2.6.39 no mesge: "pci0000:00: ACPI _OSC request failed (AE_ERROR) ..."
dmesg 3.0-rc4
dmesg for laptop toshiba L670-1JN
kernel boot messages
acpidump
dmesg from L501X
acpidump output from L501X
dmidecode output from L501X
dmesg output
Lenovo G470 aka LENOVO 20078 (laptop) ; Essential IdeaPad

Description Cristian Aravena Romero 2011-06-08 02:12:31 UTC
Created attachment 61192 [details]
dmesg 3.0-rc2

Distro: Ubuntu 11.04 + update
System: Default
Comment 1 Cristian Aravena Romero 2011-06-08 02:13:28 UTC
Created attachment 61202 [details]
lspci -vvnn
Comment 2 Cristian Aravena Romero 2011-06-10 22:09:17 UTC
Created attachment 61522 [details]
dmidecode_VGN-NS130FE.log
Comment 3 Len Brown 2011-06-14 01:20:57 UTC
please attach the output from acpidump

was this message present in earlier kernels, such as 2.6.38
or 2.6.39?
Comment 4 Cristian Aravena Romero 2011-06-14 11:28:24 UTC
Created attachment 62002 [details]
acpidump_VGN-NS130FE.log
Comment 5 Cristian Aravena Romero 2011-06-14 11:30:18 UTC
(In reply to comment #3)

[...]


> was this message present in earlier kernels, such as 2.6.38
> or 2.6.39?

No message "pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d" in kernel's =< 2.6.39
Comment 6 Cristian Aravena Romero 2011-06-14 12:45:54 UTC
Created attachment 62022 [details]
dmesg 3.0-rc3
Comment 7 Cristian Aravena Romero 2011-06-14 12:54:34 UTC
Created attachment 62032 [details]
dmesg 2.6.39 no mesge: "pci0000:00: ACPI _OSC request failed (AE_ERROR) ..."
Comment 8 Cristian Aravena Romero 2011-06-21 18:26:05 UTC
Created attachment 63122 [details]
dmesg 3.0-rc4
Comment 9 Mathieu Malaterre 2011-07-28 07:54:00 UTC
I can also confirm this. This happens on Toshiba Laptop Satellite L670-1JN. Using kernel 3.0.0 from debian/unstable.

Grub option:

$ cat /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"
GRUB_CMDLINE_LINUX="acpi=copy_dsdt"
Comment 10 Mathieu Malaterre 2011-07-28 07:54:32 UTC
Created attachment 66972 [details]
dmesg for laptop toshiba L670-1JN
Comment 11 rei4dan 2011-08-10 19:13:02 UTC
Created attachment 68412 [details]
kernel boot messages

I have the same error message on Dell XPS L502X laptop with Gentoo kernel 3.0.1.
At the beginning of the log it complains also that HEST: Table not found.
Comment 12 rei4dan 2011-08-10 19:15:16 UTC
Created attachment 68422 [details]
acpidump
Comment 13 Carl Michal 2011-08-25 18:43:53 UTC
I see a similar message, and also:

pci_bus 0000:ff: on NUMA node 0
 pci0000:ff: Requesting ACPI _OSC control (0x1d)
 pci0000:ff: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1
d
ACPI _OSC control for PCIe not granted, disabling ASPM

on a dell XPS L501X with Gentoo kernel 3.0

will attach dmesg, acpidump and dmidecode output
Comment 14 Carl Michal 2011-08-25 18:47:14 UTC
Created attachment 70242 [details]
dmesg from L501X
Comment 15 Carl Michal 2011-08-25 18:47:49 UTC
Created attachment 70252 [details]
acpidump output from L501X
Comment 16 Carl Michal 2011-08-25 18:48:48 UTC
Created attachment 70262 [details]
dmidecode output from L501X
Comment 17 Zhang Rui 2012-01-18 05:19:41 UTC
It's great that the kernel bugzilla is back.

Can you please verify if the problem still exists in the latest upstream
kernel? If yes, please attach the dmesg output with the error message.
Comment 18 Carl Michal 2012-01-19 03:15:36 UTC
Created attachment 72120 [details]
dmesg output

With 3.2.1 I still see this:

\_SB_.PCI0:_OSC invalid UUID
_OSC request data:1 8 1f 

and 

\_SB_.PCI0:_OSC invalid UUID
_OSC request data:1 1f 1f 
 pci0000:00: Requesting ACPI _OSC control (0x1d)
\_SB_.PCI0:_OSC invalid UUID
_OSC request data:1 0 1d 
 pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d
ACPI _OSC control for PCIe not granted, disabling ASPM

full dmesg attached
Comment 19 Philippe "RzR" Coval 2012-02-18 19:51:12 UTC
Created attachment 72446 [details]
Lenovo G470 aka LENOVO 20078 (laptop)  ; Essential  IdeaPad

http://rzr.online.fr/q/lenovo
Comment 20 Jose 2012-02-27 08:13:29 UTC
I think I have the same problem on a HP Probook 6450b, kernel 3.2.7 :

[    0.745523]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.746989]  pci0000:00: ACPI _OSC control (0x1d) granted
[    0.754681]  pci0000:ff: Requesting ACPI _OSC control (0x1d)
[    0.754765]  pci0000:ff: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[    0.754877] ACPI _OSC control for PCIe not granted, disabling ASPM

More details in the bug report for my distro : https://bugs.mageia.org/show_bug.cgi?id=4478 (it didn't change since 3.2.5 kernel)
Comment 21 devsk 2012-05-13 04:34:23 UTC
I get this error as well. And I see no progress on this bug in 2 months...:( My shiny new laptop is unusable on Linux. The battery life is like half of what Windows 7 gives me.
Comment 22 Jose 2012-05-13 07:42:50 UTC
(In reply to comment #21)
> My shiny new laptop is unusable on Linux.

Well, this is a big word : I'd just say on latest Linux kernels, as kernel < 2.6.28 is a good battery life friend here.
May I suggest you at least to try a Linux distro that allows the GRUB pcie_aspm=force workaround? At least Mageia 1 without kernel updates works for me : 10W idle with Windows 7 and Linux.
Comment 23 Jose 2012-05-13 07:44:15 UTC
The Status NEEDINFO should not help making this bug report active, but I cannot change it?
Comment 24 devsk 2012-05-13 15:18:58 UTC
pcie_aspm=force was the first thing I tried.
Comment 25 deepred05 2012-08-27 14:55:26 UTC
Same problem also on kernel 3.4.9-gentoo.

The relevant line in dmesg are

[    0.340807]  pci0000:00: Requesting ACPI _OSC control (0x15)
[    0.340814]  pci0000:00: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x15
[    0.340818] ACPI _OSC control for PCIe not granted, disabling ASPM

I do not know if it is relevant for the problem, but in dmesg appear also the following warning about ACPI:

ACPI Warning: Optional field Pm2ControlBlock has zero address or length: 0x0000000000000000/0x1 (20120320/tbfadt-579)

Adding pcie_aspm=force on kernel command line does not solve the problem, since the aspm will be disabled later during the boot (with the message above).
Comment 26 Lv Zheng 2013-04-09 06:50:23 UTC
Hi,

This is a BIOS bug.

I tested and made sure that there isn't any Linux ACPI bugs for this issue.

Decompilation result of _OSC implementation:

            Name (GUID, Buffer (0x10)
            {
                /* 0000 */   0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
                /* 0008 */   0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
            })
            Name (SUPP, 0x00)
            Name (CTRL, 0x00)
            Method (_OSC, 4, Serialized)  // _OSC: Operating System Capabilities
            {
                Store (Arg3, Local0)
                CreateDWordField (Local0, 0x00, CDW1)
                CreateDWordField (Local0, 0x04, CDW2)
                CreateDWordField (Local0, 0x08, CDW3)
                If (LAnd (LEqual (Arg0, GUID), NEXP))
>> Test result shows Arg0 equals to GUID, thus the kernel log should be
>> generated by the NEXP value (=0).
                {
                    Store (CDW2, SUPP)
                    Store (CDW3, CTRL)
                    If (Not (And (CDW1, 0x01)))
                    {
                        If (And (CTRL, 0x02))
                        {
                            NHPG ()
                        }

                        If (And (CTRL, 0x04))
                        {
                            NPME ()
                        }
                    }

                    If (LNotEqual (Arg1, One))
                    {
                        Or (CDW1, 0x08, CDW1)
                    }

                    If (LNotEqual (CDW3, CTRL))
                    {
                        Or (CDW1, 0x10, CDW1)
                    }

                    Store (CTRL, CDW3)
                    Store (CTRL, OSCC)
                    Return (Local0)
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
>> This causes GUID mismatch error reported by ACPICA.
                    Return (Local0)
                }
            }

The problem is the NEXP variable which has never been initialized in any of the DSDT/SSDT codes.
    OperationRegion (GNVS, SystemMemory, 0xB7B0AD90, 0x0100)
    Field (GNVS, AnyAcc, Lock, Preserve)
    {
        ..., 
        Offset (0xE1), 
        OSCC,   8, 
        NEXP,   8, 
>> NEXP is defined inside an 256 bytes system memory region locating at
>> 0xB7B0AD90.  NEXP's address offset is 0xE2.
        ...
    }

I don't know what this region is for.
It might be something like a BIOS/Firmware reserved or the region is controlled by some Windows vendor drivers.  I cannot find any clue from the namespace codes, there isn't any users in the ACPI namespace.

According to the e820 map from your machine, this region is reported by BIOS as usable, thus Linux will use it by initializing it to ZEROs.
 ...
 BIOS-e820: 0000000000100000 - 00000000bba7c000 (usable)
>> This belongs to a usable region.
 ...

The e820 map is reported by the BIOS, thus the issue is caused by your BIOS or there is a vendor driver gap for this issue.
Comment 27 Lv Zheng 2013-04-10 08:47:07 UTC
This is confirmed as a known BIOS issue and thus will be closed without fix.
Thanks for reporting.
Comment 28 Lv Zheng 2015-02-16 07:39:45 UTC
*** Bug 90351 has been marked as a duplicate of this bug. ***