Upgrade gives new messages

M. Warner Losh imp at bsdimp.com
Mon Sep 6 10:40:07 PDT 2004


In message: <413C9C0A.3050307 at root.org>
            Nate Lawson <nate at root.org> writes:
: M. Warner Losh wrote:
: >     ACPI-0438: *** Error: Looking up [Z00Q] in namespace, AE_NOT_FOUND
: > SearchNode 0xc2277ae0 StartNode 0xc2277ae0 ReturnNode 0
: >     ACPI-1303: *** Error: Method execution failed [\\_SB_.PCI0.ISA_.SIO_.COM1._STA] (Node 0xc2277ae0), AE_NOT_FOUND
: > 
: > This is for a ASUS Thunder MP system, with the latest BIOS.  Any idea
: > on how to get to the bottom of this?  This is causing SIO_.LPT_._STA
: > and SIO_.COM1._STA methods to fail dozens and dozens of times.
: > Everything else seems to work great with -curret.  I do plan on
: > downgrading to 5.3-BETAn in a few days (since this is my main mail
: > server).
: 
: I don't understand what was upgraded.  Your BIOS?  Or are you saying an 
: update to -current from RELENG_5 triggered this?

I upgraded the machine from 4.10-RC to 6.0-current as of Saturday.
The BIOS has not changed since I got the machine a couple of months
ago.

: Please send output of acpidump -t -d > warner_AsusThunder.asl

OK.

Warner
-------------- next part --------------
/*
  RSD PTR: OEM=PTLTD, ACPI_Rev=1.0x (0)
	RSDT=0x3fff451b, cksum=155
 */
/*
  RSDT: Length=44, Revision=1, Checksum=245,
	OEMID=PTLTD, OEM Table ID=  RSDT, OEM Revision=0x6040000,
	Creator ID= LTP, Creator Revision=0x0
	Entries={ 0x3fff6b2e, 0x3fff6ba2 }
 */
/*
  FACP: Length=116, Revision=1, Checksum=17,
	OEMID=TYAN, OEM Table ID=GUINNESS, OEM Revision=0x6040000,
	Creator ID=PTEC, Creator Revision=0xf4240
 	FACS=0x3fffffc0, DSDT=0x3fff4547
	INT_MODEL=APIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0x802f, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
	PSTATE_CNT=0x0
	PM1a_EVT_BLK=0x8000-0x8003
	PM1a_CNT_BLK=0x8004-0x8005
	PM_TMR_BLK=0x8008-0x800b
	GPE0_BLK=0x8020-0x8023
	P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=0
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	IAPC_BOOT_ARCH=
	Flags={WBINVD,PROC_C1,RTC_S4}
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=0
 */
/*
  DSDT: Length=9703, Revision=1, Checksum=71,
	OEMID=AMD, OEM Table ID=AMDACPI, OEM Revision=0x6040000,
	Creator ID=MSFT, Creator Revision=0x100000d
 */
/*
  APIC: Length=94, Revision=1, Checksum=49,
	OEMID=PTLTD, OEM Table ID=  APIC, OEM Revision=0x6040000,
	Creator ID= LTP, Creator Revision=0x0
	Local APIC ADDR=0xfee00000
	Flags={PC-AT}

	Type=Local APIC
	ACPI CPU=0
	Flags={ENABLED}
	APIC ID=1

	Type=Local APIC
	ACPI CPU=1
	Flags={ENABLED}
	APIC ID=0

	Type=IO APIC
	APIC ID=2
	INT BASE=0
	ADDR=0x00000000fec00000

	Type=INT Override
	BUS=0
	IRQ=0
	INTR=2
	Flags={Polarity=active-hi, Trigger=edge}

	Type=Local NMI
	ACPI CPU=0
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}

	Type=Local NMI
	ACPI CPU=1
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20040527
 *
 * Disassembly of /tmp/acpidump.L1lJU7, Mon Sep  6 11:34:58 2004
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "AMD", "AMDACPI", 100925440)
{
    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0B)
            }
        }

        Device (MEM)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite, 0xFFF80000, 0x00080000)
                    Memory32Fixed (ReadWrite, 0xFFC00000, 0x00380000)
                    Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                    Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
                    Memory32Fixed (ReadWrite, 0x000E0000, 0x00020000)
                })
                CreateDWordField (BUF0, 0x2C, EMEM)
                Subtract (AMEM, 0x00100000, EMEM)
                Return (BUF0)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_PRW, Package (0x02)
            {
                0x08, 
                0x05
            })
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                        0x0000,
                        0x0000,
                        0x00FF,
                        0x0000,
                        0x0100)
                    IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,
                        0x0000,
                        0x0CF7,
                        0x0000,
                        0x0CF8)
                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,
                        0x0D00,
                        0x7FFF,
                        0x0000,
                        0x7300)
                    IO (Decode16, 0x8000, 0x8000, 0x01, 0x80)
                    IO (Decode16, 0x8080, 0x8080, 0x01, 0x80)
                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,
                        0x8100,
                        0xFFFF,
                        0x0000,
                        0xAF00)
                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x00000000,
                        0x000A0000,
                        0x000C7FFF,
                        0x00000000,
                        0x00028000)
                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x00000000,
                        0x00100000,
                        0xFEBFFFFF,
                        0x00000000,
                        0xFEB00000)
                    Memory32Fixed (ReadWrite, 0x000DC000, 0x00004000)
                })
                CreateDWordField (BUF0, 0x66, VMAX)
                CreateDWordField (BUF0, 0x6E, VLEN)
                ShiftLeft (VGA1, 0x09, Local0)
                Add (Local0, 0x000BFFFF, VMAX)
                Add (Local0, 0x00020000, VLEN)
                CreateDWordField (BUF0, 0x7C, TCMM)
                CreateDWordField (BUF0, 0x88, TOMM)
                Store (AMEM, TCMM)
                Subtract (0xFEC00000, TCMM, TOMM)
                Return (BUF0)
            }

            Method (_PRT, 0, NotSerialized)
            {
                If (LNot (PICF))
                {
                    Return (PICM)
                }
                Else
                {
                    Return (APIC)
                }
            }

            Name (PICM, Package (0x1D)
            {
                Package (0x04)
                {
                    0x000DFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000DFFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000FFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0010FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000EFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x03, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x03, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x03, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x03, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x03, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x00, 
                    \_SB.PCI0.ISA.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x01, 
                    \_SB.PCI0.ISA.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x02, 
                    \_SB.PCI0.ISA.LNKC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x03, 
                    \_SB.PCI0.ISA.LNKD, 
                    0x00
                }
            })
            Name (APIC, Package (0x1D)
            {
                Package (0x04)
                {
                    0x000DFFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x000DFFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x000FFFFF, 
                    0x00, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0010FFFF, 
                    0x00, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x000EFFFF, 
                    0x00, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x00, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x01, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x02, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0009FFFF, 
                    0x03, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x00, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x01, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x02, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x03, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x00, 
                    0x00, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x01, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x02, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x000BFFFF, 
                    0x03, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x01, 
                    0x00, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x02, 
                    0x00, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x000CFFFF, 
                    0x03, 
                    0x00, 
                    0x13
                }
            })
            OperationRegion (BIU0, PCI_Config, 0x60, 0x04)
            Field (BIU0, ByteAcc, Lock, Preserve)
            {
                Z000,   8, 
                Z001,   8, 
                Z002,   8, 
                Z003,   8
            }

            OperationRegion (BIU1, PCI_Config, 0x68, 0x04)
            Field (BIU1, ByteAcc, Lock, Preserve)
            {
                Z004,   8, 
                Z005,   8, 
                Z006,   8, 
                Z007,   8
            }

            OperationRegion (CFG0, PCI_Config, 0x08, 0x01)
            Field (CFG0, ByteAcc, Lock, Preserve)
            {
                REV,    8
            }

            Device (AGP)
            {
                Name (_ADR, 0x00010000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (Z008)
                    }
                    Else
                    {
                        Return (Z009)
                    }
                }

                Name (Z008, Package (0x02)
                {
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x00, 
                        \_SB.PCI0.ISA.LNKB, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x01, 
                        \_SB.PCI0.ISA.LNKC, 
                        0x00
                    }
                })
                Name (Z009, Package (0x02)
                {
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x00, 
                        0x00, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x01, 
                        0x00, 
                        0x12
                    }
                })
            }

            Device (IDE1)
            {
                Name (_ADR, 0x00070001)
            }

            Device (VIPM)
            {
                Name (_ADR, 0x00070003)
                OperationRegion (PIRQ, PCI_Config, 0x56, 0x02)
                Field (PIRQ, ByteAcc, Lock, Preserve)
                {
                    PIBA,   8, 
                    PIDC,   8
                }
            }

            Device (USB0)
            {
                Name (_ADR, 0x00070004)
                Name (_PRW, Package (0x02)
                {
                    0x0F, 
                    0x01
                })
            }

            Device (ISA)
            {
                Name (_ADR, 0x00070000)
                OperationRegion (PIRY, PCI_Config, 0x51, 0x06)
                Field (PIRY, ByteAcc, NoLock, Preserve)
                {
                    Z00A,   2, 
                        ,   1, 
                    ECP,    1, 
                    FDC1,   1, 
                    FDC2,   1, 
                    Offset (0x01), 
                    Z00B,   3, 
                    SAEN,   1, 
                    Z00C,   3, 
                    SBEN,   1, 
                    Z00D,   2, 
                    AEN,    1, 
                    Z00E,   1, 
                    Z00F,   2, 
                    MEN,    1, 
                    Offset (0x03), 
                    Z00G,   2, 
                    MSEN,   1, 
                        ,   1, 
                    Z00H,   1, 
                    ASIO,   1, 
                    Offset (0x04), 
                    Z00I,   4, 
                    Z00J,   1, 
                    Offset (0x05), 
                    Z00K,   4, 
                    Z00L,   1, 
                    Offset (0x06)
                }

                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0B)
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
                        IRQ (Edge, ActiveHigh, Exclusive) {2}
                    })
                }

                Device (DMA1)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)
                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
                        DMA (Compatibility, NotBusMaster, Transfer16) {4}
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IRQ (Edge, ActiveHigh, Exclusive) {0}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x06)
                        IRQ (Edge, ActiveHigh, Exclusive) {8}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x10)
                        IRQ (Edge, ActiveHigh, Exclusive) {13}
                    })
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
                        IO (Decode16, 0x0010, 0x0010, 0x01, 0x10)
                        IO (Decode16, 0x0022, 0x0022, 0x01, 0x1E)
                        IO (Decode16, 0x0044, 0x0044, 0x01, 0x1C)
                        IO (Decode16, 0x0062, 0x0062, 0x01, 0x02)
                        IO (Decode16, 0x0065, 0x0065, 0x01, 0x0B)
                        IO (Decode16, 0x0076, 0x0076, 0x01, 0x0A)
                        IO (Decode16, 0x0090, 0x0090, 0x01, 0x10)
                        IO (Decode16, 0x00A2, 0x00A2, 0x01, 0x1E)
                        IO (Decode16, 0x00E0, 0x00E0, 0x01, 0x10)
                    })
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        And (\_SB.PCI0.VIPM.PIBA, 0x0F, Local0)
                        If (LEqual (Local0, 0x00))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUFA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {3,5,10,11}
                        })
                        Return (BUFA)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x01, Local3)
                        And (\_SB.PCI0.VIPM.PIBA, 0x0F, Local1)
                        Store (Local1, Local2)
                        If (LGreater (Local1, 0x07))
                        {
                            Subtract (Local1, 0x08, Local1)
                        }

                        ShiftLeft (Local3, Local1, Local3)
                        Not (Local3, Local3)
                        And (\_SB.PCI0.VIPM.PIBA, 0xF0, \_SB.PCI0.VIPM.PIBA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUFA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateByteField (BUFA, 0x01, IRA1)
                        CreateByteField (BUFA, 0x02, IRA2)
                        Store (0x00, Local3)
                        Store (0x00, Local4)
                        And (\_SB.PCI0.VIPM.PIBA, 0x0F, Local1)
                        If (LNot (LEqual (Local1, 0x00)))
                        {
                            If (LGreater (Local1, 0x07))
                            {
                                Subtract (Local1, 0x08, Local2)
                                ShiftLeft (One, Local2, Local4)
                            }
                            Else
                            {
                                If (LGreater (Local1, 0x00))
                                {
                                    ShiftLeft (One, Local1, Local3)
                                }
                            }

                            Store (Local3, IRA1)
                            Store (Local4, IRA2)
                        }

                        Return (BUFA)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x01, IRA1)
                        CreateByteField (Arg0, 0x02, IRA2)
                        ShiftLeft (IRA2, 0x08, Local0)
                        Or (Local0, IRA1, Local0)
                        Store (0x00, Local1)
                        ShiftRight (Local0, 0x01, Local0)
                        While (LGreater (Local0, 0x00))
                        {
                            Increment (Local1)
                            ShiftRight (Local0, 0x01, Local0)
                        }

                        And (\_SB.PCI0.VIPM.PIBA, 0xF0, \_SB.PCI0.VIPM.PIBA)
                        Or (\_SB.PCI0.VIPM.PIBA, Local1, \_SB.PCI0.VIPM.PIBA)
                    }
                }

                Device (LNKB)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x02)
                    Method (_STA, 0, NotSerialized)
                    {
                        And (\_SB.PCI0.VIPM.PIBA, 0xF0, Local0)
                        If (LEqual (Local0, 0x00))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUFB, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {3,5,10,11}
                        })
                        Return (BUFB)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x01, Local3)
                        And (\_SB.PCI0.VIPM.PIBA, 0xF0, Local1)
                        ShiftRight (Local1, 0x04, Local1)
                        Store (Local1, Local2)
                        If (LGreater (Local1, 0x07))
                        {
                            Subtract (Local1, 0x08, Local1)
                        }

                        ShiftLeft (Local3, Local1, Local3)
                        Not (Local3, Local3)
                        And (\_SB.PCI0.VIPM.PIBA, 0x0F, \_SB.PCI0.VIPM.PIBA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUFB, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateByteField (BUFB, 0x01, IRB1)
                        CreateByteField (BUFB, 0x02, IRB2)
                        Store (0x00, Local3)
                        Store (0x00, Local4)
                        And (\_SB.PCI0.VIPM.PIBA, 0xF0, Local1)
                        ShiftRight (Local1, 0x04, Local1)
                        If (LNot (LEqual (Local1, 0x00)))
                        {
                            If (LGreater (Local1, 0x07))
                            {
                                Subtract (Local1, 0x08, Local2)
                                ShiftLeft (One, Local2, Local4)
                            }
                            Else
                            {
                                If (LGreater (Local1, 0x00))
                                {
                                    ShiftLeft (One, Local1, Local3)
                                }
                            }

                            Store (Local3, IRB1)
                            Store (Local4, IRB2)
                        }

                        Return (BUFB)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x01, IRB1)
                        CreateByteField (Arg0, 0x02, IRB2)
                        ShiftLeft (IRB2, 0x08, Local0)
                        Or (Local0, IRB1, Local0)
                        Store (0x00, Local1)
                        ShiftRight (Local0, 0x01, Local0)
                        While (LGreater (Local0, 0x00))
                        {
                            Increment (Local1)
                            ShiftRight (Local0, 0x01, Local0)
                        }

                        And (\_SB.PCI0.VIPM.PIBA, 0x0F, \_SB.PCI0.VIPM.PIBA)
                        ShiftLeft (Local1, 0x04, Local1)
                        Or (\_SB.PCI0.VIPM.PIBA, Local1, \_SB.PCI0.VIPM.PIBA)
                    }
                }

                Device (LNKC)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x03)
                    Method (_STA, 0, NotSerialized)
                    {
                        And (\_SB.PCI0.VIPM.PIDC, 0x0F, Local0)
                        If (LEqual (Local0, 0x00))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUFA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {3,5,10,11}
                        })
                        Return (BUFA)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x01, Local3)
                        And (\_SB.PCI0.VIPM.PIDC, 0x0F, Local1)
                        Store (Local1, Local2)
                        If (LGreater (Local1, 0x07))
                        {
                            Subtract (Local1, 0x08, Local1)
                        }

                        ShiftLeft (Local3, Local1, Local3)
                        Not (Local3, Local3)
                        And (\_SB.PCI0.VIPM.PIDC, 0xF0, \_SB.PCI0.VIPM.PIDC)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUFA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateByteField (BUFA, 0x01, IRA1)
                        CreateByteField (BUFA, 0x02, IRA2)
                        Store (0x00, Local3)
                        Store (0x00, Local4)
                        And (\_SB.PCI0.VIPM.PIDC, 0x0F, Local1)
                        If (LNot (LEqual (Local1, 0x00)))
                        {
                            If (LGreater (Local1, 0x07))
                            {
                                Subtract (Local1, 0x08, Local2)
                                ShiftLeft (One, Local2, Local4)
                            }
                            Else
                            {
                                If (LGreater (Local1, 0x00))
                                {
                                    ShiftLeft (One, Local1, Local3)
                                }
                            }

                            Store (Local3, IRA1)
                            Store (Local4, IRA2)
                        }

                        Return (BUFA)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x01, IRA1)
                        CreateByteField (Arg0, 0x02, IRA2)
                        ShiftLeft (IRA2, 0x08, Local0)
                        Or (Local0, IRA1, Local0)
                        Store (0x00, Local1)
                        ShiftRight (Local0, 0x01, Local0)
                        While (LGreater (Local0, 0x00))
                        {
                            Increment (Local1)
                            ShiftRight (Local0, 0x01, Local0)
                        }

                        And (\_SB.PCI0.VIPM.PIDC, 0xF0, \_SB.PCI0.VIPM.PIDC)
                        Or (\_SB.PCI0.VIPM.PIDC, Local1, \_SB.PCI0.VIPM.PIDC)
                    }
                }

                Device (LNKD)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Method (_STA, 0, NotSerialized)
                    {
                        And (\_SB.PCI0.VIPM.PIDC, 0xF0, Local0)
                        If (LEqual (Local0, 0x00))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Name (BUFB, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {3,5,10,11}
                        })
                        Return (BUFB)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x01, Local3)
                        And (\_SB.PCI0.VIPM.PIDC, 0xF0, Local1)
                        ShiftRight (Local1, 0x04, Local1)
                        Store (Local1, Local2)
                        If (LGreater (Local1, 0x07))
                        {
                            Subtract (Local1, 0x08, Local1)
                        }

                        ShiftLeft (Local3, Local1, Local3)
                        Not (Local3, Local3)
                        And (\_SB.PCI0.VIPM.PIDC, 0x0F, \_SB.PCI0.VIPM.PIDC)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUFB, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared) {}
                        })
                        CreateByteField (BUFB, 0x01, IRB1)
                        CreateByteField (BUFB, 0x02, IRB2)
                        Store (0x00, Local3)
                        Store (0x00, Local4)
                        And (\_SB.PCI0.VIPM.PIDC, 0xF0, Local1)
                        ShiftRight (Local1, 0x04, Local1)
                        If (LNot (LEqual (Local1, 0x00)))
                        {
                            If (LGreater (Local1, 0x07))
                            {
                                Subtract (Local1, 0x08, Local2)
                                ShiftLeft (One, Local2, Local4)
                            }
                            Else
                            {
                                If (LGreater (Local1, 0x00))
                                {
                                    ShiftLeft (One, Local1, Local3)
                                }
                            }

                            Store (Local3, IRB1)
                            Store (Local4, IRB2)
                        }

                        Return (BUFB)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x01, IRB1)
                        CreateByteField (Arg0, 0x02, IRB2)
                        ShiftLeft (IRB2, 0x08, Local0)
                        Or (Local0, IRB1, Local0)
                        Store (0x00, Local1)
                        ShiftRight (Local0, 0x01, Local0)
                        While (LGreater (Local0, 0x00))
                        {
                            Increment (Local1)
                            ShiftRight (Local0, 0x01, Local0)
                        }

                        And (\_SB.PCI0.VIPM.PIDC, 0x0F, \_SB.PCI0.VIPM.PIDC)
                        ShiftLeft (Local1, 0x04, Local1)
                        Or (\_SB.PCI0.VIPM.PIDC, Local1, \_SB.PCI0.VIPM.PIDC)
                    }
                }

                Device (SIO)
                {
                    Name (_HID, EisaId ("PNP0A05"))
                    OperationRegion (Z00M, SystemIO, 0x80, 0x01)
                    Field (Z00M, ByteAcc, NoLock, Preserve)
                    {
                        Z00N,   8
                    }

                    OperationRegion (SIBP, SystemIO, 0x2E, 0x02)
                    Field (SIBP, ByteAcc, NoLock, Preserve)
                    {
                        BPIO,   8
                    }

                    OperationRegion (SIIO, SystemIO, 0x2E, 0x02)
                    Field (SIIO, ByteAcc, NoLock, Preserve)
                    {
                        INDX,   8, 
                        DATA,   8
                    }

                    OperationRegion (\RTC, SystemIO, 0x70, 0x02)
                    Field (\RTC, ByteAcc, NoLock, Preserve)
                    {
                        RTCI,   8, 
                        RTCD,   8
                    }

                    IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x07), 
                        LDN,    8, 
                        Offset (0x22), 
                        POW,    8, 
                        Offset (0x30), 
                        ACT,    8, 
                        Offset (0x60), 
                        IOBH,   8, 
                        IOBL,   8, 
                        Offset (0x70), 
                        INT,    8, 
                        Offset (0x74), 
                        DMAS,   8, 
                        Offset (0xE0), 
                        Z00O,   8, 
                        Offset (0xE4), 
                        Z00P,   8, 
                        Offset (0xF0), 
                        MODE,   3
                    }

                    Method (CFG, 1, NotSerialized)
                    {
                        Store (0x20, INDX)
                        While (LNot (LEqual (DATA, 0x52)))
                        {
                            Store (0x87, BPIO)
                            Store (0x87, BPIO)
                            Store (0x20, INDX)
                        }

                        Store (Arg0, LDN)
                    }

                    Method (XCFG, 0, NotSerialized)
                    {
                        Store (0xAA, BPIO)
                    }

                    Method (DIS, 1, NotSerialized)
                    {
                        CFG (Arg0)
                        Store (0x00, ACT)
                        XCFG ()
                    }

                    Method (ENA, 1, NotSerialized)
                    {
                        CFG (Arg0)
                        Store (0x01, ACT)
                        XCFG ()
                    }

                    Method (STA, 1, NotSerialized)
                    {
                        CFG (Arg0)
                        If (ACT)
                        {
                            Store (0x0F, Local0)
                        }
                        Else
                        {
                            Store (0x0D, Local0)
                        }

                        XCFG ()
                        Return (Local0)
                    }

                    Method (PS0, 1, NotSerialized)
                    {
                        ENA (Arg0)
                        Return (Zero)
                    }

                    Method (PS3, 1, NotSerialized)
                    {
                        DIS (Arg0)
                        Return (0x03)
                    }

                    Name (TIO, ResourceTemplate ()
                    {
                        IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                    })
                    Method (RIO, 1, NotSerialized)
                    {
                        CreateWordField (TIO, 0x02, IO1N)
                        CreateWordField (TIO, 0x04, IO1X)
                        CreateField (TIO, 0x10, 0x20, OUT)
                        ShiftLeft (IOBH, 0x08, Local0)
                        Add (IOBL, Local0, Local0)
                        Add (Local0, Arg0, Local1)
                        Store (Local1, IO1N)
                        Store (Local1, IO1X)
                        Return (OUT)
                    }

                    Method (WIO1, 1, NotSerialized)
                    {
                        CreateByteField (TIO, 0x02, IOLL)
                        CreateByteField (TIO, 0x03, IOLH)
                        Store (Arg0, TIO)
                        Store (IOLL, IOBL)
                        Store (IOLH, IOBH)
                    }

                    Name (TIRQ, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive) {4}
                    })
                    Method (RIRQ, 0, NotSerialized)
                    {
                        CreateWordField (TIRQ, 0x01, IRQ1)
                        CreateField (TIRQ, 0x00, 0x20, OUT)
                        ShiftLeft (0x01, INT, IRQ1)
                        Return (OUT)
                    }

                    Method (WIRQ, 1, NotSerialized)
                    {
                        CreateWordField (TIRQ, 0x01, IRQ1)
                        Store (Arg0, TIRQ)
                        FindSetRightBit (IRQ1, Local0)
                        Subtract (Local0, 0x01, Local0)
                        Store (Local0, INT)
                    }

                    Name (TDMA, ResourceTemplate ()
                    {
                        DMA (Compatibility, NotBusMaster, Transfer8) {0}
                    })
                    Method (RDMA, 0, NotSerialized)
                    {
                        CreateByteField (TDMA, 0x01, DMAA)
                        CreateField (TDMA, 0x00, 0x18, OUT)
                        Store (DMAS, Local0)
                        ShiftLeft (0x01, Local0, DMAA)
                        Return (OUT)
                    }

                    Method (WDMA, 1, NotSerialized)
                    {
                        CreateByteField (TDMA, 0x01, DMAA)
                        Store (Arg0, TDMA)
                        FindSetRightBit (DMAA, Local0)
                        Subtract (Local0, 0x01, DMAS)
                    }

                    Device (COM1)
                    {
                        Name (_HID, EisaId ("PNP0501"))
                        Name (_UID, 0x01)
                        Name (_PSC, 0x00)
                        Name (RSRC, ResourceTemplate ()
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQ (Edge, ActiveHigh, Exclusive) {4}
                        })
                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            EndDependentFn ()
                        })
                        Method (_CRS, 0, NotSerialized)
                        {
                            CreateField (RSRC, 0x10, 0x20, IO1)
                            CreateField (RSRC, 0x40, 0x20, IRQ1)
                            CFG (0x02)
                            Store (RIO (0x00), IO1)
                            Store (RIRQ (), IRQ1)
                            XCFG ()
                            Return (RSRC)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateField (RSRC, 0x00, 0x40, IO1)
                            CreateWordField (RSRC, 0x02, IOXX)
                            CreateField (RSRC, 0x40, 0x20, IRQ1)
                            CFG (0x02)
                            Store (Arg0, RSRC)
                            WIO1 (IO1)
                            WIRQ (IRQ1)
                            XCFG ()
                            Store (IOXX, Local0)
                            If (LEqual (Local0, 0x03F8))
                            {
                                Store (0x00, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x02F8))
                            {
                                Store (0x01, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x0220))
                            {
                                Store (0x02, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x0228))
                            {
                                Store (0x03, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x0238))
                            {
                                Store (0x04, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x02E8))
                            {
                                Store (0x05, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x0338))
                            {
                                Store (0x06, \_SB.PCI0.ISA.Z00B)
                            }

                            If (LEqual (Local0, 0x03E8))
                            {
                                Store (0x07, \_SB.PCI0.ISA.Z00B)
                            }
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x02)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x02)
                            ENA (0x02)
                            Store (0x00, _PSC)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x02)
                            Store (0x03, _PSC)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Store (Z00Q, Local0)
                            And (Local0, 0x01, Local0)
                            If (LEqual (Local0, 0x01))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                Return (STA (0x02))
                            }
                        }
                    }

                    Device (COM2)
                    {
                        Name (_HID, EisaId ("PNP0501"))
                        Name (_UID, 0x02)
                        Name (_PSC, 0x00)
                        Name (NUM0, 0x01)
                        Name (RSRC, ResourceTemplate ()
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQ (Edge, ActiveHigh, Exclusive) {3}
                        })
                        Method (_CRS, 0, NotSerialized)
                        {
                            CreateField (RSRC, 0x10, 0x20, IO1)
                            CreateField (RSRC, 0x40, 0x20, IRQ1)
                            CFG (0x03)
                            Store (RIO (0x00), IO1)
                            Store (RIRQ (), IRQ1)
                            XCFG ()
                            Return (RSRC)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CFG (0x03)
                            CreateField (RSRC, 0x00, 0x40, IO1)
                            CreateWordField (RSRC, 0x02, IOXX)
                            CreateField (RSRC, 0x40, 0x20, IRQ1)
                            Store (Arg0, RSRC)
                            WIO1 (IO1)
                            WIRQ (IRQ1)
                            XCFG ()
                            Store (IOXX, Local0)
                            If (LEqual (Local0, 0x03F8))
                            {
                                Store (0x00, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x02F8))
                            {
                                Store (0x01, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x0220))
                            {
                                Store (0x02, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x0228))
                            {
                                Store (0x03, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x0238))
                            {
                                Store (0x04, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x02E8))
                            {
                                Store (0x05, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x0338))
                            {
                                Store (0x06, \_SB.PCI0.ISA.Z00C)
                            }

                            If (LEqual (Local0, 0x03E8))
                            {
                                Store (0x07, \_SB.PCI0.ISA.Z00C)
                            }
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x03)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x03)
                            Store (0x00, _PSC)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x03)
                            Store (0x03, _PSC)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Store (Z00Q, Local0)
                            And (Local0, 0x02, Local0)
                            If (LEqual (Local0, 0x02))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                Return (STA (0x03))
                            }
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3,4}
                            }
                            EndDependentFn ()
                        })
                    }

                    Device (LPT)
                    {
                        Name (_PSC, 0x00)
                        Method (ECP, 0, NotSerialized)
                        {
                            CFG (0x01)
                            And (MODE, 0x02, Local0)
                            XCFG ()
                            If (LEqual (Local0, 0x00))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                Return (0x01)
                            }
                        }

                        Method (_HID, 0, NotSerialized)
                        {
                            If (ECP ())
                            {
                                Return (0x0104D041)
                            }
                            Else
                            {
                                Return (0x0004D041)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            If (ECP ())
                            {
                                Return (ECPB)
                            }
                            Else
                            {
                                Return (EPPB)
                            }
                        }

                        Name (ECPT, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQ (Edge, ActiveHigh, Exclusive) {5}
                            DMA (Compatibility, NotBusMaster, Transfer8) {1}
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                        })
                        Name (EPPT, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQ (Edge, ActiveHigh, Exclusive) {7}
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                        })
                        Name (ECPB, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5,7}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                                IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5,7}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                                IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5,7}
                                DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
                                IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x08)
                            }
                            EndDependentFn ()
                        })
                        Name (EPPB, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5,7}
                                IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5,7}
                                IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5,7}
                                IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x08)
                            }
                            EndDependentFn ()
                        })
                        Method (_CRS, 0, NotSerialized)
                        {
                            If (ECP ())
                            {
                                CreateField (ECPT, 0x10, 0x20, IO1)
                                CreateField (ECPT, 0x40, 0x20, IRQ1)
                                CreateField (ECPT, 0x60, 0x18, DMA1)
                                CreateField (ECPT, 0x88, 0x20, IO2)
                                CFG (0x01)
                                Store (RIO (0x00), IO1)
                                Store (RIRQ (), IRQ1)
                                Store (RDMA (), DMA1)
                                Store (RIO (0x0400), IO2)
                                XCFG ()
                                Return (ECPT)
                            }
                            Else
                            {
                                CreateField (EPPT, 0x10, 0x20, IO3)
                                CreateField (EPPT, 0x40, 0x20, IRQ3)
                                CFG (0x01)
                                Store (RIO (0x00), IO3)
                                Store (RIRQ (), IRQ3)
                                XCFG ()
                                Return (EPPT)
                            }
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            If (ECP ())
                            {
                                CreateField (ECPT, 0x00, 0x40, IO1)
                                CreateWordField (ECPT, 0x02, IOXX)
                                CreateField (ECPT, 0x40, 0x20, IRQ1)
                                CreateField (ECPT, 0x60, 0x18, DMA1)
                                Store (Arg0, ECPT)
                                CFG (0x01)
                                WIO1 (IO1)
                                WIRQ (IRQ1)
                                WDMA (DMA1)
                                Store (IOXX, Local0)
                            }
                            Else
                            {
                                CreateField (EPPT, 0x00, 0x40, IO2)
                                CreateWordField (EPPT, 0x02, IOXY)
                                CreateField (EPPT, 0x40, 0x20, IRQ2)
                                Store (Arg0, EPPT)
                                CFG (0x01)
                                WIO1 (IO2)
                                WIRQ (IRQ2)
                                Store (IOXY, Local0)
                            }

                            XCFG ()
                            If (LEqual (Local0, 0x0378))
                            {
                                Store (0x01, \_SB.PCI0.ISA.Z00A)
                            }

                            If (LEqual (Local0, 0x0278))
                            {
                                Store (0x02, \_SB.PCI0.ISA.Z00A)
                            }

                            If (LEqual (Local0, 0x03BC))
                            {
                                Store (0x00, \_SB.PCI0.ISA.Z00A)
                            }
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x01)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x01)
                            ENA (0x01)
                            Store (0x00, _PSC)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x01)
                            Store (0x03, _PSC)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Store (Z00Q, Local0)
                            And (Local0, 0x04, Local0)
                            If (LEqual (Local0, 0x04))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                Return (STA (0x01))
                            }
                        }
                    }

                    Device (FDC0)
                    {
                        Name (_HID, EisaId ("PNP0700"))
                        Name (_PSC, 0x00)
                        Name (RSRC, ResourceTemplate ()
                        {
                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                            IRQ (Edge, ActiveHigh, Exclusive) {6}
                            DMA (Compatibility, NotBusMaster, Transfer8) {2}
                        })
                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                                IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                                IRQ (Edge, ActiveHigh, Exclusive) {6}
                                DMA (Compatibility, NotBusMaster, Transfer8) {2}
                            }
                            StartDependentFn (0x00, 0x01)
                            {
                                IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
                                IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
                                IRQ (Edge, ActiveHigh, Exclusive) {6}
                                DMA (Compatibility, NotBusMaster, Transfer8) {2}
                            }
                            EndDependentFn ()
                        })
                        Method (_CRS, 0, NotSerialized)
                        {
                            CreateField (RSRC, 0x10, 0x20, IO1)
                            CreateField (RSRC, 0x50, 0x20, IO2)
                            CreateWordField (RSRC, 0x0A, IOA)
                            CreateWordField (RSRC, 0x0C, IOB)
                            CreateField (RSRC, 0x80, 0x20, IRQ1)
                            CreateField (RSRC, 0xA0, 0x18, DMA1)
                            CFG (0x00)
                            Store (RIO (0x00), IO1)
                            Store (RIO (0x07), IO2)
                            Store (RIRQ (), IRQ1)
                            Store (RDMA (), DMA1)
                            XCFG ()
                            Return (RSRC)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CFG (0x00)
                            CreateWordField (RSRC, 0x02, IOXX)
                            CreateField (RSRC, 0x00, 0x40, IO1)
                            CreateField (RSRC, 0x80, 0x20, IRQ1)
                            CreateField (RSRC, 0xA0, 0x18, DMA1)
                            Store (Arg0, RSRC)
                            WIO1 (IO1)
                            WIRQ (IRQ1)
                            WDMA (DMA1)
                            XCFG ()
                            Store (IOXX, Local0)
                            If (LEqual (Local0, 0x03F0))
                            {
                                Store (0x01, \_SB.PCI0.ISA.FDC1)
                            }

                            If (LEqual (Local0, 0x0370))
                            {
                                Store (0x01, \_SB.PCI0.ISA.FDC2)
                            }
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x00)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x00)
                            Store (0x03, _PSC)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x00)
                            ENA (0x00)
                            Store (0x00, _PSC)
                        }

                        Method (_STA, 0, NotSerialized)
                        {
                            Return (STA (0x00))
                        }
                    }
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Method (_STA, 0, NotSerialized)
                    {
                        And (FLG0, 0x04, Local0)
                        If (LEqual (Local0, 0x04))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive) {12}
                    })
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                        IRQ (Edge, ActiveHigh, Exclusive) {1}
                    })
                }
            }
        }
    }

    Scope (_TZ)
    {
    }

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

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

    Scope (_PR)
    {
        Processor (CPU0, 0x00, 0x00008010, 0x06) {}
        Processor (CPU1, 0x01, 0x00000000, 0x00) {}
    }

    Scope (_SI)
    {
    }

    Name (_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (_S1, Package (0x04)
    {
        0x01, 
        0x01, 
        0x01, 
        0x01
    })
    Name (_S4, Package (0x04)
    {
        0x06, 
        0x06, 
        0x06, 
        0x06
    })
    Name (_S5, Package (0x04)
    {
        0x07, 
        0x07, 
        0x07, 
        0x07
    })
    Name (PICF, 0x00)
    Method (_PIC, 1, NotSerialized)
    {
        Store (Arg0, PICF)
    }

    OperationRegion (DEBG, SystemIO, 0x80, 0x01)
    Field (DEBG, ByteAcc, Lock, Preserve)
    {
        DBG1,   8
    }

    OperationRegion (EXTM, SystemMemory, 0x000FF83C, 0x04)
    Field (EXTM, WordAcc, Lock, Preserve)
    {
        AMEM,   32
    }

    OperationRegion (VGAM, SystemMemory, 0x000C0002, 0x01)
    Field (VGAM, ByteAcc, Lock, Preserve)
    {
        VGA1,   8
    }

    OperationRegion (GRAM, SystemMemory, 0x0400, 0x0100)
    Field (GRAM, ByteAcc, Lock, Preserve)
    {
        Offset (0x10), 
        FLG0,   8
    }

    OperationRegion (Z00R, SystemIO, 0x8000, 0x02)
    Field (Z00R, ByteAcc, NoLock, Preserve)
    {
        PM00,   8, 
        PM01,   8
    }

    OperationRegion (Z00S, SystemIO, 0x8002, 0x02)
    Field (Z00S, ByteAcc, NoLock, Preserve)
    {
        PM02,   8, 
        PM03,   8
    }

    OperationRegion (Z00T, SystemIO, 0x8004, 0x02)
    Field (Z00T, ByteAcc, NoLock, Preserve)
    {
        PM04,   8, 
        PM05,   8
    }

    OperationRegion (Z00U, SystemIO, 0x8016, 0x02)
    Field (Z00U, ByteAcc, NoLock, Preserve)
    {
        PM16,   8, 
        PM17,   8
    }

    OperationRegion (Z00V, SystemIO, 0x8020, 0x02)
    Field (Z00V, ByteAcc, NoLock, Preserve)
    {
        PM20,   8, 
        PM21,   8
    }

    OperationRegion (Z00W, SystemIO, 0x8022, 0x02)
    Field (Z00W, ByteAcc, NoLock, Preserve)
    {
        PM22,   8, 
        PM23,   8
    }

    OperationRegion (Z00X, SystemIO, 0x8024, 0x01)
    Field (Z00S, ByteAcc, NoLock, Preserve)
    {
        PM24,   8
    }

    OperationRegion (Z00Y, SystemIO, 0x8025, 0x01)
    Field (Z00S, ByteAcc, NoLock, Preserve)
    {
        PM25,   8
    }

    OperationRegion (Z00Z, SystemIO, 0x8026, 0x02)
    Field (Z00Z, ByteAcc, NoLock, Preserve)
    {
        PM26,   8, 
        PM27,   8
    }

    OperationRegion (Z010, SystemIO, 0x8028, 0x02)
    Field (Z010, ByteAcc, NoLock, Preserve)
    {
        PM28,   8, 
        PM29,   8
    }

    OperationRegion (Z011, SystemIO, 0x802A, 0x02)
    Field (Z011, ByteAcc, NoLock, Preserve)
    {
        PM2A,   8, 
        PM2B,   8
    }

    OperationRegion (Z012, SystemIO, 0x802C, 0x02)
    Field (Z012, ByteAcc, NoLock, Preserve)
    {
        PM2C,   8, 
        PM2D,   8
    }

    OperationRegion (Z013, SystemIO, 0x8030, 0x02)
    Field (Z013, ByteAcc, NoLock, Preserve)
    {
        PM30,   8, 
        PM31,   8
    }

    OperationRegion (Z014, SystemIO, 0x8032, 0x02)
    Field (Z014, ByteAcc, NoLock, Preserve)
    {
        PM32,   8, 
        PM33,   8
    }

    OperationRegion (Z015, SystemIO, 0x80A8, 0x02)
    Field (Z015, ByteAcc, NoLock, Preserve)
    {
        PMA8,   8, 
        PMA9,   8
    }

    OperationRegion (Z016, SystemIO, 0x80AC, 0x02)
    Field (Z016, ByteAcc, NoLock, Preserve)
    {
        PMAC,   8, 
        PMAD,   8
    }

    OperationRegion (Z017, SystemIO, 0x80C6, 0x02)
    Field (Z017, ByteAcc, NoLock, Preserve)
    {
        PMC6,   8, 
        PMC7,   8
    }

    OperationRegion (Z018, SystemIO, 0x20, 0x01)
    Field (Z018, ByteAcc, NoLock, Preserve)
    {
        Z019,   8
    }

    OperationRegion (Z01A, SystemIO, 0x21, 0x01)
    Field (Z01A, ByteAcc, NoLock, Preserve)
    {
        Z01B,   8
    }

    OperationRegion (Z01C, SystemIO, 0x8E, 0x01)
    Field (Z01C, ByteAcc, NoLock, Preserve)
    {
        IO8E,   8
    }

    OperationRegion (Z01D, SystemIO, 0xA0, 0x01)
    Field (Z01D, ByteAcc, NoLock, Preserve)
    {
        Z01E,   8
    }

    OperationRegion (Z01F, SystemIO, 0xA1, 0x01)
    Field (Z01F, ByteAcc, NoLock, Preserve)
    {
        Z01G,   8
    }

    Method (_PTS, 1, NotSerialized)
    {
        Or (Arg0, 0xF0, Local0)
        Store (Local0, DBG1)
        Store (0x00, Local0)
        Store (Local0, DBG1)
        Store (PM00, Local0)
        Store (Local0, DBG1)
        Store (0x01, Local0)
        Store (Local0, DBG1)
        Store (PM01, Local0)
        Store (Local0, DBG1)
        Store (0x02, Local0)
        Store (Local0, DBG1)
        Store (PM02, Local0)
        Store (Local0, DBG1)
        Store (0x03, Local0)
        Store (Local0, DBG1)
        Store (PM03, Local0)
        Store (Local0, DBG1)
        Store (0x04, Local0)
        Store (Local0, DBG1)
        Store (PM04, Local0)
        Store (Local0, DBG1)
        Store (0x05, Local0)
        Store (Local0, DBG1)
        Store (PM05, Local0)
        Store (Local0, DBG1)
        Store (0x16, Local0)
        Store (Local0, DBG1)
        Store (PM16, Local0)
        Store (Local0, DBG1)
        Store (0x17, Local0)
        Store (Local0, DBG1)
        Store (PM17, Local0)
        Store (Local0, DBG1)
        Store (0x20, Local0)
        Store (Local0, DBG1)
        Store (PM20, Local0)
        Store (Local0, DBG1)
        Store (0x21, Local0)
        Store (Local0, DBG1)
        Store (PM21, Local0)
        Store (Local0, DBG1)
        Store (0x22, Local0)
        Store (Local0, DBG1)
        Store (PM22, Local0)
        Store (Local0, DBG1)
        Store (0x23, Local0)
        Store (Local0, DBG1)
        Store (PM23, Local0)
        Store (Local0, DBG1)
        Store (0x24, Local0)
        Store (Local0, DBG1)
        Store (PM24, Local0)
        Store (Local0, DBG1)
        Store (0x25, Local0)
        Store (Local0, DBG1)
        Store (PM25, Local0)
        Store (Local0, DBG1)
        Store (0x26, Local0)
        Store (Local0, DBG1)
        Store (PM26, Local0)
        Store (Local0, DBG1)
        Store (0x27, Local0)
        Store (Local0, DBG1)
        Store (PM27, Local0)
        Store (Local0, DBG1)
        Store (0x28, Local0)
        Store (Local0, DBG1)
        Store (PM28, Local0)
        Store (Local0, DBG1)
        Store (0x29, Local0)
        Store (Local0, DBG1)
        Store (PM29, Local0)
        Store (Local0, DBG1)
        Store (0x2A, Local0)
        Store (Local0, DBG1)
        Store (PM2A, Local0)
        Store (Local0, DBG1)
        Store (0x2B, Local0)
        Store (Local0, DBG1)
        Store (PM2B, Local0)
        Store (Local0, DBG1)
        Store (0x2C, Local0)
        Store (Local0, DBG1)
        Store (PM2C, Local0)
        Store (Local0, DBG1)
        Store (0x2D, Local0)
        Store (Local0, DBG1)
        Store (PM2D, Local0)
        Store (Local0, DBG1)
        If (LEqual (Arg0, 0x01))
        {
            Store (PM00, PM00)
            Store (PM20, PM20)
            Store (PM01, PM01)
            Store (PM21, PM21)
            Store (PM24, PM24)
            Store (PM28, PM28)
            Store (PM29, PM29)
            Store (PMC7, Local0)
            Store (Local0, IO8E)
            Store (0x05, PMC7)
        }

        If (LEqual (Arg0, 0x05))
        {
            Store (PM28, PM28)
            Store (PM29, PM29)
            Store (0x27, Local0)
            Store (Local0, DBG1)
            And (PM27, 0xFB, PM27)
            Store (PM27, Local0)
            Store (Local0, DBG1)
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        Or (Arg0, 0xE0, Local0)
        Store (Local0, DBG1)
        If (LEqual (Arg0, 0x01))
        {
            Store (IO8E, Local1)
            Store (Local1, PMC7)
        }

        Notify (\_SB.PWRB, 0x02)
    }
}



More information about the freebsd-acpi mailing list