Skip to contentSkip to conversation

ACPI dsdt.dsl Compilation Parse Error

DISCUSSION Andy 2 participants 2 messages Jan 30, 2006 – Jan 31, 2006 ACPI

lore
Share & tools
lore

Andy

author
#0 lore raw

I'm trying to debug ACPI on an emachines 2220, D845GVSR motherboard, SR84510B.44T.009.PO3 system BIOS running Suse 9.3 Pro' Linux.

When I attempt to recompile the dsdt.dsl file I get a Parse error,

Suse:~ # iasl -tc dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20050309 [Mar 19 20 05]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0

dsdt.dsl  3531:     If (SS1)
Error    1037 -      ^ syntax error, unexpected PARSEOP_IF

ASL Input:  dsdt.dsl - 3797 lines, 118111 bytes, 1730 keywords Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations Suse:~ #

I'm unfamiliar with this error and am uncertain how to go about fixing it. If anyone has any advice I'd really appreciate it. Relevant code below.

Thanks.

If (SS1)
    {
        Name (\_SB.PCI0._S1D, 0x02)
        Name (\_SB.PCI0.P0P1._S1D, 0x02)
        Name (\_SB.PCI0.USB0._S1D, 0x02)
        Name (\_SB.PCI0.USB1._S1D, 0x02)
        Name (\_SB.PCI0.USB2._S1D, 0x02)
        Name (\_SB.PCI0.USB3._S1D, 0x02)
        Name (\_SB.PCI0.AC97._S1D, 0x02)
    }

    If (SS3)
    {
        Name (\_SB.PCI0._S3D, 0x02)
        Name (\_SB.PCI0.P0P1._S3D, 0x02)
        Name (\_SB.PCI0.USB0._S3D, 0x02)
        Name (\_SB.PCI0.USB1._S3D, 0x02)
        Name (\_SB.PCI0.USB2._S3D, 0x02)
        Name (\_SB.PCI0.USB3._S3D, 0x02)
        Name (\_SB.PCI0.AC97._S3D, 0x02)
    }

    If (SS4)
    {
        Name (\_SB.PCI0._S4D, 0x02)
        Name (\_SB.PCI0.P0P1._S4D, 0x02)
        Name (\_SB.PCI0.AC97._S4D, 0x02)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        PTS (Arg0)
        Store (0x00, Index (WAKP, 0x00))
        Store (0x00, Index (WAKP, 0x01))
    }

    OperationRegion (RNTR, SystemIO, 0x06C0, 0x10) Field (RNTR, ByteAcc, NoLock, WriteAsZeros) {
        PMST,   1,
        Offset (0x01)
    }

    Field (RNTR, ByteAcc, NoLock, Preserve)
    {
        Offset (0x04),
        PMEE,   1,
        Offset (0x05)
    }

    Field (RNTR, ByteAcc, NoLock, WriteAsZeros)
    {
        Offset (0x0A),
        EVST,   8
    }

    Field (RNTR, ByteAcc, NoLock, Preserve)
    {
        Offset (0x0E),
            ,   2,
        RI1E,   1,
        KBDE,   1,
        MSEE,   1,
        Offset (0x0F)
    }

    OperationRegion (\_SB.PCI0.SBRG.PMC3, PCI_Config, 0xA4, 0x01) Field (\_SB.PCI0.SBRG.PMC3, ByteAcc, NoLock, Preserve) {
        AFG3,   1
    }

    Method (\_SB.PCI0.SBRG.SIOS, 1, NotSerialized) {
        If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x03))) {
            Store (0xFF, EVST)
            Store (0x01, KBDE)
            Store (0x01, MSEE)
            Store (0x01, PMST)
            Store (0x01, PMEE)
        }

        If (LEqual (Arg0, 0x01))
        {
            ENFG ()
            Store (SDID, Local0)
            If (LEqual (Local0, 0xF0))
            {
                Store (LDMO, LDN)
                Store (0x00, ACTR)
                Store (LDKB, LDN)
                Store (0x00, ACTR)
            }
            Else
            {
                Store (0x06, LDN)
                Store (0x60, OPT0)
            }

            EXFG ()
        }

        If (LEqual (Arg0, 0x05))
        {
            If (LEqual (LAST, 0x02))
            {
                Store (0x00, AFG3)
            }
            Else
            {
                Store (0x01, AFG3)
            }
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        WAK (Arg0)
        Store (0x01, SLPS)
        Store (0x01, SLPE)
        If (DerefOf (Index (WAKP, 0x00)))
        {
            Store (0x00, Index (WAKP, 0x01))
        }
        Else
        {
            Store (Arg0, Index (WAKP, 0x01))
        }

        Return (WAKP)
    }

    Method (\_SB.PCI0.SBRG.SIOW, 1, NotSerialized) {
        If (LEqual (Arg0, 0x01))
        {
            ENFG ()
            Store (SDID, Local0)
            If (LEqual (Local0, 0xF0))
            {
                Store (LDKB, LDN)
                Store (0x01, ACTR)
                Store (LDMO, LDN)
                Store (0x01, ACTR)
            }
            Else
            {
                Store (0x06, LDN)
                Store (0x00, OPT0)
            }

            EXFG ()
        }

        Store (0x00, PMEE)
        Store (0x00, RI1E)
    }

    Method (\_SB.PCI0.SBRG.SIOH, 0, NotSerialized) {
        Noop
    }

    Method (\_SB.PCI0.SBRG.UAR1._PRW, 0, NotSerialized) {
        Return (Package (0x02)
        {
            0x1D,
            0x04
        })
    }

    Method (\_SB.PCI0.SBRG.UAR1._PSW, 1, NotSerialized) {
        Store (Arg0, RI1E)
    }

    OperationRegion (CBK2, SystemIO, 0x72, 0x02)
    Field (CBK2, ByteAcc, NoLock, Preserve)
    {
        IND,    8,
        DAT,    8
    }

    IndexField (IND, DAT, ByteAcc, NoLock, Preserve) {
        Offset (0xB5),
        LAST,   2,
        Offset (0xD9),
        DRVI,   8,
        Offset (0xFE),
            ,   6,
        OSYS,   1,
        PSWP,   1
    }

    OperationRegion (SBIO, SystemIO, 0x0430, 0x08) Field (SBIO, ByteAcc, NoLock, Preserve) {
        SKIP,   4,
        SLPE,   1
    }

    Field (SBIO, ByteAcc, NoLock, WriteAsZeros)
    {
        Offset (0x04),
        NONE,   4,
        SLPS,   1
    }

    Scope (\_GPE)
    {
        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.P0P1, 0x02)
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L1D, 0, NotSerialized)
        {
            \_SB.PCI0.SBRG.SIOH ()
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB1, 0x02)
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB3, 0x02)
            Notify (\_SB.SLPB, 0x02)
        }

        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.AC97, 0x02)
            Notify (\_SB.SLPB, 0x02)
        }
    }

    Device (\_SB.SLPB)
    {
        Name (_HID, EisaId ("PNP0C0E"))
        Name (_UID, 0x1D)
        Name (_STA, 0x0B)
        Method (_PRW, 0, NotSerialized)
        {
            Return (GPRW (0x1D, 0x05))
        }
    }

    Name (\_S0, Package (0x04)
    {
        0x00,
        0x00,
        0x00,
        0x00
    })
    If (SS1)
    {
        Name (\_S1, Package (0x04)
        {
            0x01,
            0x00,
            0x00,
            0x00
        })
    }

-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#1 lore raw
Quoted 11 lines · Andy

I'm trying to debug ACPI on an emachines 2220, D845GVSR motherboard, SR84510B.44T.009.PO3 system BIOS running Suse 9.3 Pro' Linux.

When I attempt to recompile the dsdt.dsl file I get a Parse error,

Suse:~ # iasl -tc dsdt.dsl

Intel ACPI Component Architecture ASL Optimizing Compiler / AML Disassembler version 20050309 [Mar 19 20 05] Copyright (C) 2000 - 2005 Intel Corporation Supports ACPI Specification Revision 3.0

dsdt.dsl 3531: If (SS1) Error 1037 - ^ syntax error, unexpected PARSEOP_IF

ASL Input: dsdt.dsl - 3797 lines, 118111 bytes, 1730 keywords Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations Suse:~ #

iasl barks on 'if' statements in global scope. In your case you can safely remove this 'if' (but leave everything inside braces), just because it's evaluated to true (you don't disable S1 sleep in BIOS, do you?).

Regards,
Alex.