Bug 200999 - ACPI Error Method parse/execution failed HP ZBook 15 G4
Summary: ACPI Error Method parse/execution failed HP ZBook 15 G4
Status: NEEDINFO
Alias: None
Product: ACPI
Classification: Unclassified
Component: BIOS (show other bugs)
Hardware: Intel Linux
: P1 high
Assignee: Erik Schmauss
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-02 21:02 UTC by q x
Modified: 2019-04-15 20:43 UTC (History)
2 users (show)

See Also:
Kernel Version: Linux version 4.15.0-33-generic (buildd@lcy01-amd64-024)
Tree: Mainline
Regression: No


Attachments
ACPI Error Method parse/execution failed HP ZBook 15 G4 (909.57 KB, text/plain)
2018-09-02 21:02 UTC, q x
Details
dmesg output (71.92 KB, text/plain)
2018-09-02 21:04 UTC, q x
Details

Description q x 2018-09-02 21:02:07 UTC
Created attachment 278249 [details]
ACPI Error Method parse/execution failed HP ZBook 15 G4

Very similar to bug reported at 
https://www.spinics.net/lists/linux-acpi/msg82058.html and Bug 195237

Have to set "acpi=off" to boot.  Without it, the machine will stuck with error message like "cpu#1 stuck for 22s".

Attached is acpidump file.


Following is output of dmesg:
Comment 1 q x 2018-09-02 21:04:12 UTC
Created attachment 278251 [details]
dmesg output
Comment 2 q x 2018-09-02 21:09:52 UTC
[    4.284819] ACPI: AC Adapter [AC] (on-line)
[    4.284879] ACPI: Sleep Button [SLPB]
[    4.284910] ACPI: Lid Switch [LID]
[    4.284940] ACPI: Power Button [PWRB]
[    4.285027] ACPI: Power Button [PWRF]
[    4.289403] ACPI: Thermal Zone [CPUZ] (49 C)
[    4.292841] ACPI: Thermal Zone [GFXZ] (39 C)
[    4.295837] ACPI: Thermal Zone [EXTZ] (39 C)
[    4.297857] ACPI: Thermal Zone [LOCZ] (40 C)
[    4.303186] ACPI: Thermal Zone [BATZ] (26 C)
[    4.303213] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x000000005) is beyond end of object (length 0x5) (20170831/exoparg2-430)
[    4.303237] ACPI Error: Method parse/execution failed \_TZ.GETP, AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
[    4.303242] ACPI Error: Method parse/execution failed \_TZ.CHGZ._CRT, AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
[    4.304262] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x000000005) is beyond end of object (length 0x5) (20170831/exoparg2-430)
[    4.304283] ACPI Error: Method parse/execution failed \_TZ.GETP, AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
[    4.304288] ACPI Error: Method parse/execution failed \_TZ.CHGZ._CRT, AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
[    4.307260] ACPI: Thermal Zone [PCHZ] (0 C)
[    4.319867] ACPI: Battery Slot [BAT0] (battery present)
[    5.389024] ACPI Warning: \_SB.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20170831/nsarguments-100)
[    5.389469] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20170831/nsarguments-100)
[    5.660253] ata2.00: ACPI cmd f5/00:00:00:00:00:e0 (SECURITY FREEZE LOCK) filtered out
[    5.683124] ata2.00: ACPI cmd f5/00:00:00:00:00:e0 (SECURITY FREEZE LOCK) filtered out
[    7.150532] ACPI: Video Device [PEGP] (multi-head: yes  rom: yes  post: no)
[    7.167172] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   15.810888] ACPI Error: Needed [Buffer/String/Package], found [Integer] 00000000e3ac8591 (20170831/exresop-593)
[   15.810894] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [Index] (20170831/dswexec-461)
[   15.810917] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPO, AE_AML_OPERAND_TYPE (20170831/psparse-550)
[   15.810923] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV, AE_AML_OPERAND_TYPE (20170831/psparse-550)
[   15.812060] ACPI Error: Needed [Buffer/String/Package], found [Integer] 00000000abf69282 (20170831/exresop-593)
[   15.812065] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [Index] (20170831/dswexec-461)
[   15.812088] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPO, AE_AML_OPERAND_TYPE (20170831/psparse-550)
[   15.812094] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV, AE_AML_OPERAND_TYPE (20170831/psparse-550)
[   15.813167] ACPI Error: Needed [Buffer/String/Package], found [Integer] 000000003a6c1822 (20170831/exresop-593)
[   15.813170] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [Index] (20170831/dswexec-461)
[   15.813191] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPO, AE_AML_OPERAND_TYPE (20170831/psparse-550)
[   15.813197] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV, AE_AML_OPERAND_TYPE (20170831/psparse-550)
[   15.816406] ACPI Error: Attempt to CreateField of length zero (20170831/dsopcode-168)
[   15.816436] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPI, AE_AML_OPERAND_VALUE (20170831/psparse-550)
[   15.816445] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV, AE_AML_OPERAND_VALUE (20170831/psparse-550)
Comment 3 Zhang Rui 2018-12-27 15:25:49 UTC
please attach the acpidump output.
Comment 4 Zhang Rui 2019-03-25 07:46:12 UTC
(In reply to q x from comment #2)
> [    4.303213] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x000000005) is
> beyond end of object (length 0x5) (20170831/exoparg2-430)
> [    4.303237] ACPI Error: Method parse/execution failed \_TZ.GETP,
> AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
> [    4.303242] ACPI Error: Method parse/execution failed \_TZ.CHGZ._CRT,
> AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
> [    4.304262] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x000000005) is
> beyond end of object (length 0x5) (20170831/exoparg2-430)
> [    4.304283] ACPI Error: Method parse/execution failed \_TZ.GETP,
> AE_AML_PACKAGE_LIMIT (20170831/psparse-550)
> [    4.304288] ACPI Error: Method parse/execution failed \_TZ.CHGZ._CRT,
> AE_AML_PACKAGE_LIMIT (20170831/psparse-550)

        Name (TRIP, Package (0x05)
        {
            Package (0x04){}, 
            Package (0x04){}, 
            Package (0x04){}, 
            Package (0x04){}, 
            Package (0x04){}
        })

So TRIP has five elements.

        Method (GETP, 2, Serialized)
        {
            Local0 = Arg1
            If ((Arg1 == One))
            {
                Local3 = DerefOf (CUZO [Arg0])
                If (((Local3 > One) && (Local3 != 0xFF)))
                {
                    Local0 = Zero
                }
            }

            Local2 = DerefOf (DerefOf (TRIP [Arg0]) [Local0])
            Return (Local2)
        }

GETP uses Arg0 as the index of TRIP[].

            Method (_CRT, 0, Serialized)  // _CRT: Critical Temperature
            {
                Return (GETP (0x05, 0x03))
            }

Arg0 is 0x05 which is broken, so this is a BIOS bug.


> [   15.810888] ACPI Error: Needed [Buffer/String/Package], found [Integer]
> 00000000e3ac8591 (20170831/exresop-593)
> [   15.810894] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands
> for [Index] (20170831/dswexec-461)
> [   15.810917] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPO,
> AE_AML_OPERAND_TYPE (20170831/psparse-550)
> [   15.810923] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV,
> AE_AML_OPERAND_TYPE (20170831/psparse-550)
> [   15.812060] ACPI Error: Needed [Buffer/String/Package], found [Integer]
> 00000000abf69282 (20170831/exresop-593)
> [   15.812065] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands
> for [Index] (20170831/dswexec-461)
> [   15.812088] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPO,
> AE_AML_OPERAND_TYPE (20170831/psparse-550)
> [   15.812094] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV,
> AE_AML_OPERAND_TYPE (20170831/psparse-550)
> [   15.813167] ACPI Error: Needed [Buffer/String/Package], found [Integer]
> 000000003a6c1822 (20170831/exresop-593)
> [   15.813170] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands
> for [Index] (20170831/dswexec-461)
> [   15.813191] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPO,
> AE_AML_OPERAND_TYPE (20170831/psparse-550)
> [   15.813197] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV,
> AE_AML_OPERAND_TYPE (20170831/psparse-550)
> [   15.816406] ACPI Error: Attempt to CreateField of length zero
> (20170831/dsopcode-168)
> [   15.816436] ACPI Error: Method parse/execution failed \_SB.WMIV.WVPI,
> AE_AML_OPERAND_VALUE (20170831/psparse-550)
> [   15.816445] ACPI Error: Method parse/execution failed \_SB.WMIV.WMPV,
> AE_AML_OPERAND_VALUE (20170831/psparse-550)

        Method (WVPO, 2, Serialized)
        {
            Local1 = Buffer ((0x08 + Arg0)){}
            ...
        }
I'm not sure if this is the ASL code that causes the error because I have not seen any ASL written like this.

Erik, could you please clarify?
BTW, the acpidump is attached in comment #0.
Comment 5 Erik Schmauss 2019-04-15 20:43:49 UTC
Hey, sorry for the late response. I think the _DSM type mismatch should be resolved in newer kernels. Please try a newer kernel (post 4.17).

@Rui, the ASL code above shouldn't cause an error due to implicit type conversions. The add operator (+) causes Arg0 to be converted to Arg0..

Note You need to log in before you can comment on or make changes to this bug.