Re: ACPI Panic on Current, AMD64

From: Timothy Mukaibo <tinkysama_at_mukaibo.com>
Date: Wed, 27 May 2009 21:05:15 +1000
Hello Eygene,

I know the patch won't fix anything :(

Here's the updated dmesg:

acpi0: <Nvidia NVDAACPI> on motherboard
acpi0:  [ITHREAD]
acpi0:  Power Button (fixed)
acpi0:  reservation of 0, a000 (3) failed
acpi0:  reservation of 100000, bfdf0000 (3) failed
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port  0x1008-0x100b on acpi0
acip_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI Host PCI bus> on pcib0
pci_link26:      Index  IRQ  Rtd   Ref  IRQs
     MPASS               0    20      N       1  20 21 22 23
link type is 15
panic: Assertion link->l_prs_template.Type == ACPI_RESOURCE_TYPE_IRQ  
failed at /usr/src/sys/dev/acpica/acpi_pci_link.c:746
cpuid = 0
KDB: enter: panic
[thread pid 0 tid 100000 ]
Stopped at     kdb_enter+0x3d: movq $0,0x677da0(%rip)

Here's acpidump -dt from the machine running a recent 7.2-Stable. I  
can't get this from 8.0-Current because of the crash (right?). I can  
email this as an attachment if that would be easier.

Thanks,
Timothy.

/*
   RSD PTR: OEM=Nvidia, ACPI_Rev=1.0x (0)
	RSDT=0xbfef3010, cksum=152
  */
/*
   RSDT: Length=56, Revision=1, Checksum=90,
	OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
	Creator ID=NVDA, Creator Revision=0x0
	Entries={ 0xbfef3060, 0xbfef9b10, 0xbfef9da0, 0xbfef9df0, 0xbfef9a90 }
  */
/*
   FACP: Length=116, Revision=1, Checksum=190,
	OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
	Creator ID=NVDA, Creator Revision=0x0
  	FACS=0xbfef0000, DSDT=0xbfef30e0
	INT_MODEL=APIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0x142e, ACPI_ENABLE=0xa1, ACPI_DISABLE=0xa0, S4BIOS_REQ=0x0
	PSTATE_CNT=0x0
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1480-0x1480
	PM_TMR_BLK=0x1008-0x100b
	GPE0_BLK=0x1020-0x1027
	GPE1_BLK=0x14a0-0x14af, GPE1_BASE=32
	P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=0
	DAY_ALRM=125, MON_ALRM=126, CENTURY=50
	IAPC_BOOT_ARCH=
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,RESET_REG}
	RESET_REG=0x00000000:0[0] (Memory), RESET_VALUE=0x44
  */
/*
   FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=0
  */
/*
   DSDT: Length=27040, Revision=1, Checksum=241,
	OEMID=NVIDIA, OEM Table ID=AWRDACPI, OEM Revision=0x1000,
	Creator ID=MSFT, Creator Revision=0x3000000
  */
/*
   SSDT: Length=584, Revision=1, Checksum=49,
	OEMID=PTLTD, OEM Table ID=POWERNOW, OEM Revision=0x1,
	Creator ID= LTP, Creator Revision=0x1
  */
/*
   WDRT: Length=71, Revision=1, Checksum=48,
	OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
	Creator ID=NVDA, Creator Revision=0x0
  */
/*
   MCFG: Length=60, Revision=1, Checksum=44,
	OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
	Creator ID=NVDA, Creator Revision=0x0

	Base Address= 0x00000000e0000000
	Segment Group= 0x0000
	Start Bus= 0
	End Bus= 255
  */
/*
   APIC: Length=124, Revision=1, Checksum=85,
	OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
	Creator ID=NVDA, Creator Revision=0x0
	Local APIC ADDR=0xfee00000
	Flags={PC-AT}

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

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

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

	Type=INT Override
	BUS=0
	IRQ=0
	INTR=2
	Flags={Polarity=conforming, Trigger=conforming}

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

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

	Type=INT Override
	BUS=0
	IRQ=15
	INTR=15
	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 20070320
  *
  * Disassembly of /tmp/acpidump.tM8i3U, Wed May 27 18:57:19 2009
  *
  *
  * Original Table Header:
  *     Signature        "DSDT"
  *     Length           0x00006BC4 (27588)
  *     Revision         0x01
  *     OEM ID           "NVIDIA"
  *     OEM Table ID     "AWRDACPI"
  *     OEM Revision     0x00001000 (4096)
  *     Creator ID       "MSFT"
  *     Creator Revision 0x03000000 (50331648)
  */
DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "NVIDIA", "AWRDACPI",  
0x00001000)
{
     Scope (\_PR)
     {
         Processor (\_PR.CPU0, 0x00, 0x00001010, 0x06) {}
         Processor (\_PR.CPU1, 0x01, 0x00000000, 0x00) {}
     }

     Name (\_S0, Package (0x04)
     {
         0x00,
         0x00,
         0x00,
         0x00
     })
     Name (\_S1, Package (0x04)
     {
         0x01,
         0x00,
         0x00,
         0x00
     })
     Name (\_S3, Package (0x04)
     {
         0x05,
         0x00,
         0x00,
         0x00
     })
     Name (\_S4, Package (0x04)
     {
         0x06,
         0x00,
         0x00,
         0x00
     })
     Name (\_S5, Package (0x04)
     {
         0x07,
         0x00,
         0x00,
         0x00
     })
     OperationRegion (\DEBG, SystemIO, 0x80, 0x01)
     Field (\DEBG, ByteAcc, NoLock, Preserve)
     {
         DBG1,   8
     }

     OperationRegion (KBC, SystemIO, 0x64, 0x01)
     Field (KBC, ByteAcc, NoLock, Preserve)
     {
         KCMD,   8
     }

     OperationRegion (KBCD, SystemIO, 0x60, 0x01)
     Field (KBCD, ByteAcc, NoLock, Preserve)
     {
         KDAT,   8
     }

     OperationRegion (EXTM, SystemMemory, 0x000FF830, 0x10)
     Field (EXTM, WordAcc, NoLock, Preserve)
     {
         ROM1,   16,
         RMS1,   16,
         ROM2,   16,
         RMS2,   16,
         ROM3,   16,
         RMS3,   16,
         AMEM,   32
     }

     OperationRegion (\PM1S, SystemIO, 0x1000, 0x02)
     Field (\PM1S, ByteAcc, NoLock, Preserve)
     {
                 Offset (0x01),
         PBTS,   1,
             ,   1,
         RTCS,   1,
             ,   4,
         WAKS,   1
     }

     OperationRegion (ELCR, SystemIO, 0x04D0, 0x02)
     Field (ELCR, ByteAcc, NoLock, Preserve)
     {
         ELC1,   8,
         ELC2,   8
     }

     OperationRegion (\STUS, SystemIO, 0x1400, 0x04)
     Field (\STUS, ByteAcc, NoLock, Preserve)
     {
         G_ST,   32
     }

     OperationRegion (\GPS0, SystemIO, 0x1020, 0x04)
     Field (\GPS0, ByteAcc, NoLock, Preserve)
     {
         GS00,   8,
         GS01,   8,
         GS02,   8,
         GS03,   8
     }

     OperationRegion (\P20S, SystemIO, 0x1020, 0x04)
     Field (\P20S, ByteAcc, NoLock, Preserve)
     {
         P_20,   32
     }

     OperationRegion (\SMIC, SystemIO, 0x142E, 0x01)
     Field (\SMIC, ByteAcc, NoLock, Preserve)
     {
         SCP,    8
     }

     OperationRegion (\GP1, SystemIO, 0x14C0, 0x32)
     Field (\GP1, ByteAcc, NoLock, Preserve)
     {
         GP00,   8,
         GP01,   8,
         GP02,   8,
         GP03,   8,
         GP04,   8,
         GP05,   8,
         GP06,   8,
         GP07,   8,
         GP08,   8,
         GP09,   8,
         GP10,   8,
         GP11,   8,
         GP12,   8,
         GP13,   8,
         GP14,   8,
         GP15,   8,
         GP16,   8,
         GP17,   8,
         GP18,   8,
         GP19,   8,
         GP20,   8,
         GP21,   8,
         GP22,   8,
                 Offset (0x18),
         GP24,   8,
         GP25,   8,
         GP26,   8,
         GP27,   8,
         GP28,   8,
         GP29,   8,
         GP30,   8,
         GP31,   8,
         GP32,   8,
         GP33,   8,
         GP34,   8,
         GP35,   8,
         GP36,   8,
         GP37,   8,
         GP38,   8,
         GP39,   8,
         GP40,   8,
         GP41,   8,
         GP42,   8,
         GP43,   8,
         GP44,   8,
         GP45,   8,
         GP46,   8,
         GP47,   8,
         GP48,   8,
         GP49,   8
     }

     Name (OSFX, 0x01)
     Name (OSFL, 0x01)
     Method (STRC, 2, NotSerialized)
     {
         If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
         {
             Return (0x00)
         }

         Add (SizeOf (Arg0), 0x01, Local0)
         Name (BUF0, Buffer (Local0) {})
         Name (BUF1, Buffer (Local0) {})
         Store (Arg0, BUF0)
         Store (Arg1, BUF1)
         While (Local0)
         {
             Decrement (Local0)
             If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf  
(Index (
                 BUF1, Local0))))
             {
                 Return (Zero)
             }
         }

         Return (One)
     }

     OperationRegion (RTCM, SystemIO, 0x70, 0x02)
     Field (RTCM, ByteAcc, NoLock, Preserve)
     {
         CMIN,   8,
         CMDA,   8
     }

     IndexField (CMIN, CMDA, ByteAcc, NoLock, Preserve)
     {
                 Offset (0x0F),
         SHUT,   8
     }

     OperationRegion (INFO, SystemMemory, 0x000FF840, 0x01)
     Field (INFO, ByteAcc, NoLock, Preserve)
     {
         KBDI,   1,
         RTCW,   1,
         PS2F,   1,
         IRFL,   2,
         DISE,   1,
         SSHU,   1
     }

     OperationRegion (BEEP, SystemIO, 0x61, 0x01)
     Field (BEEP, ByteAcc, NoLock, Preserve)
     {
         S1B,    8
     }

     OperationRegion (CONT, SystemIO, 0x40, 0x04)
     Field (CONT, ByteAcc, NoLock, Preserve)
     {
         CNT0,   8,
         CNT1,   8,
         CNT2,   8,
         CTRL,   8
     }

     Method (SPKR, 1, NotSerialized)
     {
         Store (S1B, Local0)
         Store (0xB6, CTRL)
         Store (0x55, CNT2)
         Store (0x03, CNT2)
         Store (Arg0, Local2)
         While (LGreater (Local2, 0x00))
         {
             Or (S1B, 0x03, S1B)
             Store (0x5FFF, Local3)
             While (LGreater (Local3, 0x00))
             {
                 Decrement (Local3)
             }

             And (S1B, 0xFC, S1B)
             Store (0x0EFF, Local3)
             While (LGreater (Local3, 0x00))
             {
                 Decrement (Local3)
             }

             Decrement (Local2)
         }

         Store (Local0, S1B)
     }

     Scope (\)
     {
         Name (PICF, 0x00)
         Method (_PIC, 1, NotSerialized)
         {
             Store (Arg0, PICF)
         }
     }

     Name (SID4, 0x00)
     Name (SLG0, 0x00)
     Name (SLG1, 0x00)
     Name (SLG2, 0x00)
     Name (SLG3, 0x00)
     Name (SLG4, 0x00)
     Name (SLG5, 0x00)
     Name (SLG6, 0x00)
     Name (SLG7, 0x00)
     Name (SLG8, 0x00)
     Name (SLG9, 0x00)
     Name (SLGA, 0x00)
     Name (SID5, 0x00)
     Name (SSM0, 0x00)
     Name (SSM1, 0x00)
     Name (SSM2, 0x00)
     Name (SSM3, 0x00)
     Name (SSM4, 0x00)
     Name (SUA0, 0x00)
     Name (SUB0, 0x00)
     Name (SX, 0x00)
     Name (SFLG, 0x00)
     Name (SID0, 0x00)
     Name (SID1, 0x00)
     Name (SID2, 0x00)
     Name (SID3, 0x00)
     Method (\_PTS, 1, NotSerialized)
     {
         Store (Arg0, Local0)
         Store (Local0, SX)
         Or (Arg0, 0xF0, Local0)
         Store (Local0, DBG1)
         OSTP ()
         Store (\_SB.PCI0.IDE0.ID20, SID0)
         Store (\_SB.PCI0.IDE0.IDTS, SID1)
         Store (\_SB.PCI0.IDE0.IDTP, SID2)
         Store (\_SB.PCI0.IDE0.ID22, SID3)
         Store (\_SB.PCI0.IDE0.UMSS, SID4)
         Store (\_SB.PCI0.IDE0.UMSP, SID5)
         If (LEqual (Arg0, 0x01)) {}
         If (LEqual (Arg0, 0x03)) {}
         If (LEqual (Arg0, 0x04)) {}
         If (LEqual (Arg0, 0x05))
         {
             If (LNotEqual (OSFL, 0x00))
             {
                 Sleep (0x01F4)
             }
         }
     }

     Method (\_WAK, 1, NotSerialized)
     {
         Store (0xFF, DBG1)
         Store (0x00, SFLG)
         If (LEqual (RTCW, 0x00))
         {
             Notify (\_SB.PWRB, 0x02)
         }

         Notify (\_SB.PCI0.USB0, 0x00)
         If (LGreaterEqual (OSFL, 0x01))
         {
             Store (0x00, \_SB.PCI0.SMB0.SMPM)
         }
     }

     Scope (\_SI)
     {
         Method (_MSG, 1, NotSerialized)
         {
             Store ("==== MSG Working ====", Debug)
         }

         Method (_SST, 1, NotSerialized)
         {
             Store ("==== SST Working ====", Debug)
         }
     }

     Scope (\_GPE)
     {
         Method (_L11, 0, NotSerialized)
         {
             Store (0x02, GS02)
             If (LNotEqual (PEVA, 0xFFFF))
             {
                 If (PESA)
                 {
                     While (PESA)
                     {
                         Store (0x01, PESA)
                     }

                     Notify (\_SB.PCI0.MXR0, 0x02)
                 }
             }

             If (LNotEqual (PEVB, 0xFFFF))
             {
                 If (PESB)
                 {
                     While (PESB)
                     {
                         Store (0x01, PESB)
                     }

                     Notify (\_SB.PCI0.MXR1, 0x02)
                 }
             }

             If (LNotEqual (PEVC, 0xFFFF))
             {
                 If (PESC)
                 {
                     While (PESC)
                     {
                         Store (0x01, PESC)
                     }

                     Notify (\_SB.PCI0.MXR2, 0x02)
                 }
             }

             If (LNotEqual (PEVD, 0xFFFF))
             {
                 If (PESD)
                 {
                     While (PESD)
                     {
                         Store (0x01, PESD)
                     }

                     Notify (\_SB.PCI0.MXR3, 0x02)
                 }
             }

             If (LNotEqual (PEVE, 0xFFFF))
             {
                 If (PESE)
                 {
                     While (PESE)
                     {
                         Store (0x01, PESE)
                     }

                     Notify (\_SB.PCI0.MXR4, 0x02)
                 }
             }

             If (LNotEqual (PEVF, 0xFFFF))
             {
                 If (PESF)
                 {
                     While (PESF)
                     {
                         Store (0x01, PESF)
                     }

                     Notify (\_SB.PCI0.MXR5, 0x02)
                 }
             }
         }

         Method (_L00, 0, NotSerialized)
         {
             Notify (\_SB.PCI0.HUB0, 0x02)
         }

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

         Method (_L0A, 0, NotSerialized)
         {
             Notify (\_SB.PCI0.MAC1, 0x02)
         }

         Method (_L0B, 0, NotSerialized)
         {
             Notify (\_SB.PCI0.MMAC, 0x02)
         }

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

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

         Method (_L10, 0, NotSerialized)
         {
             \_SB.PCI0.PS2W ()
         }

         Method (_L15, 0, NotSerialized)
         {
             Notify (\_SB.PCI0.AZA, 0x02)
         }
     }

     Scope (\_SB)
     {
         Device (MBIO)
         {
             Name (_HID, EisaId ("PNP0C02"))
             Name (_UID, 0x05)
             Name (_CRS, ResourceTemplate ()
             {
                 IO (Decode16,
                     0x1000,             // Range Minimum
                     0x1000,             // Range Maximum
                     0x01,               // Alignment
                     0x80,               // Length
                     )
                 IO (Decode16,
                     0x1080,             // Range Minimum
                     0x1080,             // Range Maximum
                     0x01,               // Alignment
                     0x80,               // Length
                     )
                 IO (Decode16,
                     0x1400,             // Range Minimum
                     0x1400,             // Range Maximum
                     0x01,               // Alignment
                     0x80,               // Length
                     )
                 IO (Decode16,
                     0x1480,             // Range Minimum
                     0x1480,             // Range Maximum
                     0x01,               // Alignment
                     0x80,               // Length
                     )
                 IO (Decode16,
                     0x1800,             // Range Minimum
                     0x1800,             // Range Maximum
                     0x01,               // Alignment
                     0x80,               // Length
                     )
                 IO (Decode16,
                     0x1880,             // Range Minimum
                     0x1880,             // Range Maximum
                     0x01,               // Alignment
                     0x80,               // Length
                     )
             })
         }

         Device (PWRB)
         {
             Name (_HID, EisaId ("PNP0C0C"))
             Method (_STA, 0, NotSerialized)
             {
                 Return (0x0B)
             }
         }

         Device (PCI0)
         {
             Name (_HID, EisaId ("PNP0A08"))
             Name (_CID, 0x030AD041)
             Name (_ADR, 0x00)
             Name (_UID, 0x01)
             Name (_BBN, 0x00)
             Name (PCIA, 0x00)
             Method (_REG, 2, NotSerialized)
             {
                 If (LEqual (Arg0, 0x02))
                 {
                     Store (Arg1, PCIA)
                 }
             }

             Name (NATA, Package (0x01)
             {
                 0x000C0000
             })
             Method (_S3D, 0, NotSerialized)
             {
                 If (LEqual (OSFL, 0x02))
                 {
                     Return (0x02)
                 }
                 Else
                 {
                     Return (0x03)
                 }
             }

             Name (SUPP, 0x00)
             Name (CTRL, 0x00)
             Method (_OSC, 4, NotSerialized)
             {
                 CreateDWordField (Arg3, 0x00, CDW1)
                 If (LEqual (Arg0, Buffer (0x10)
                         {
                             /* 0000 */    0x5B, 0x4D, 0xDB, 0x33,  
0xF7, 0x1F, 0x1C, 0x40,
                             /* 0008 */    0x96, 0x57, 0x74, 0x41,  
0xC0, 0x3D, 0xD7, 0x66
                         }))
                 {
                     Return (Arg3)
                 }
                 Else
                 {
                     Or (CDW1, 0x04, CDW1)
                     Return (Arg3)
                 }
             }

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

             OperationRegion (LDT3, PCI_Config, 0x6C, 0x04)
             Field (LDT3, DWordAcc, NoLock, Preserve)
             {
                 UCFG,   32
             }

             Method (_CRS, 0, NotSerialized)
             {
                 Name (BUF0, ResourceTemplate ()
                 {
                     WordBusNumber (ResourceProducer, MinNotFixed,  
MaxNotFixed, PosDecode,
                         0x0000,             // Granularity
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x0000,             // Translation Offset
                         0x0000,             // Length
                         ,, _Y00)
                     IO (Decode16,
                         0x0CF8,             // Range Minimum
                         0x0CF8,             // Range Maximum
                         0x01,               // Alignment
                         0x08,               // Length
                         )
                     WordIO (ResourceProducer, MinFixed, MaxFixed,  
PosDecode, EntireRange,
                         0x0000,             // Granularity
                         0x0000,             // Range Minimum
                         0x03AF,             // Range Maximum
                         0x0000,             // Translation Offset
                         0x03B0,             // Length
                         ,, , TypeStatic)
                     WordIO (ResourceProducer, MinFixed, MaxFixed,  
PosDecode, EntireRange,
                         0x0000,             // Granularity
                         0x03E0,             // Range Minimum
                         0x0CF7,             // Range Maximum
                         0x0000,             // Translation Offset
                         0x0918,             // Length
                         ,, , TypeStatic)
                     WordIO (ResourceProducer, MinFixed, MaxFixed,  
PosDecode, EntireRange,
                         0x0000,             // Granularity
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x0000,             // Translation Offset
                         0x0000,             // Length
                         ,, _Y01, TypeStatic)
                     WordIO (ResourceProducer, MinFixed, MaxFixed,  
PosDecode, EntireRange,
                         0x0000,             // Granularity
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x0000,             // Translation Offset
                         0x0000,             // Length
                         ,, _Y02, TypeStatic)
                     QWordMemory (ResourceProducer, PosDecode,  
MinFixed, MaxFixed, Cacheable, ReadWrite,
                         0x0000000000000000, // Granularity
                         0x0000000000000000, // Range Minimum
                         0x0000000000000000, // Range Maximum
                         0x0000000000000000, // Translation Offset
                         0x0000000000000000, // Length
                         ,, _Y03, AddressRangeMemory, TypeStatic)
                     QWordMemory (ResourceProducer, PosDecode,  
MinFixed, MaxFixed, Cacheable, ReadWrite,
                         0x0000000000000000, // Granularity
                         0x0000000000000000, // Range Minimum
                         0x0000000000000000, // Range Maximum
                         0x0000000000000000, // Translation Offset
                         0x0000000000000000, // Length
                         ,, _Y04, AddressRangeMemory, TypeStatic)
                     QWordMemory (ResourceProducer, PosDecode,  
MinFixed, MaxFixed, Cacheable, ReadWrite,
                         0x0000000000000000, // Granularity
                         0x0000000000000000, // Range Minimum
                         0x0000000000000000, // Range Maximum
                         0x0000000000000000, // Translation Offset
                         0x0000000000000000, // Length
                         ,, _Y05, AddressRangeMemory, TypeStatic)
                 })
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, B1MN)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y00._MAX, B1MX)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, B1LN)
                 And (\_SB.PCI0.K801.L0EN, 0x03, Local0)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.DL00, 0x03, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         Store (\_SB.PCI0.K801.BNB0, B1MN)
                         Store (\_SB.PCI0.K801.BNL0, B1MX)
                         Subtract (B1MX, B1MN, Local1)
                         Add (0x01, Local1, B1LN)
                     }
                 }

                 And (\_SB.PCI0.K801.L1EN, 0x03, Local0)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.DL01, 0x03, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         Store (\_SB.PCI0.K801.BNB1, B1MN)
                         Store (\_SB.PCI0.K801.BNL1, B1MX)
                         Subtract (B1MX, B1MN, Local1)
                         Add (0x01, Local1, B1LN)
                     }
                 }

                 And (\_SB.PCI0.K801.L2EN, 0x03, Local0)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.DL02, 0x03, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         Store (\_SB.PCI0.K801.BNB2, B1MN)
                         Store (\_SB.PCI0.K801.BNL2, B1MX)
                         Subtract (B1MX, B1MN, Local1)
                         Add (0x01, Local1, B1LN)
                     }
                 }

                 And (\_SB.PCI0.K801.L3EN, 0x03, Local0)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.DL03, 0x03, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         Store (\_SB.PCI0.K801.BNB3, B1MN)
                         Store (\_SB.PCI0.K801.BNL3, B1MX)
                         Subtract (B1MX, B1MN, Local1)
                         Add (0x01, Local1, B1LN)
                     }
                 }

                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y01._MIN, IOMN)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y01._MAX, IOMX)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y01._LEN, IOLN)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y02._MIN, VIMN)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y02._MAX, VIMX)
                 CreateWordField (BUF0, \_SB.PCI0._CRS._Y02._LEN, VILN)
                 And (\_SB.PCI0.K801.IB00, 0x03, Local0)
                 And (\_SB.PCI0.K801.IL00, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     If (LEqual (Local1, 0x00))
                     {
                         And (\_SB.PCI0.K801.IB00, 0x10, Local1)
                         ShiftLeft (\_SB.PCI0.K801.IBV0, 0x0C, IOMN)
                         ShiftLeft (\_SB.PCI0.K801.ILV0, 0x0C, IOMX)
                         Or (IOMX, 0x0FFF, IOMX)
                         Subtract (IOMX, IOMN, IOLN)
                         Increment (IOLN)
                         If (LEqual (Local1, 0x10))
                         {
                             Store (0x03B0, VIMN)
                             Store (0x03DF, VIMX)
                             Store (0x30, VILN)
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.IB01, 0x03, Local0)
                 And (\_SB.PCI0.K801.IL01, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     If (LEqual (Local1, 0x00))
                     {
                         And (\_SB.PCI0.K801.IB01, 0x10, Local1)
                         ShiftLeft (\_SB.PCI0.K801.IBV1, 0x0C, IOMN)
                         ShiftLeft (\_SB.PCI0.K801.ILV1, 0x0C, IOMX)
                         Or (IOMX, 0x0FFF, IOMX)
                         Subtract (IOMX, IOMN, IOLN)
                         Increment (IOLN)
                         If (LEqual (Local1, 0x10))
                         {
                             Store (0x03B0, VIMN)
                             Store (0x03DF, VIMX)
                             Store (0x30, VILN)
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.IB02, 0x03, Local0)
                 And (\_SB.PCI0.K801.IL02, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     If (LEqual (Local1, 0x00))
                     {
                         And (\_SB.PCI0.K801.IB02, 0x10, Local1)
                         ShiftLeft (\_SB.PCI0.K801.IBV2, 0x0C, IOMN)
                         ShiftLeft (\_SB.PCI0.K801.ILV2, 0x0C, IOMX)
                         Or (IOMX, 0x0FFF, IOMX)
                         Subtract (IOMX, IOMN, IOLN)
                         Increment (IOLN)
                         If (LEqual (Local1, 0x10))
                         {
                             Store (0x03B0, VIMN)
                             Store (0x03DF, VIMX)
                             Store (0x30, VILN)
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.IB03, 0x03, Local0)
                 And (\_SB.PCI0.K801.IL03, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     If (LEqual (Local1, 0x00))
                     {
                         And (\_SB.PCI0.K801.IB03, 0x10, Local1)
                         ShiftLeft (\_SB.PCI0.K801.IBV3, 0x0C, IOMN)
                         ShiftLeft (\_SB.PCI0.K801.ILV3, 0x0C, IOMX)
                         Or (IOMX, 0x0FFF, IOMX)
                         Subtract (IOMX, IOMN, IOLN)
                         Increment (IOLN)
                         If (LEqual (Local1, 0x10))
                         {
                             Store (0x03B0, VIMN)
                             Store (0x03DF, VIMX)
                             Store (0x30, VILN)
                         }
                     }
                 }

                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y03._MIN, M0MN)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y03._MAX, M0MX)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y03._LEN, M0LN)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._MIN, M1MN)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._MAX, M1MX)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._LEN, M1LN)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y05._MIN, M2MN)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y05._MAX, M2MX)
                 CreateDWordField (BUF0, \_SB.PCI0._CRS._Y05._LEN, M2LN)
                 And (\_SB.PCI0.K801.MB00, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML00, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML00, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV0, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV0, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV0,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV0,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV0,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV0,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB01, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML01, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML01, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV1, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV1, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV1,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV1,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV1,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV1,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB02, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML02, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML02, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV2, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV2, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV2,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV2,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV2,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV2,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB03, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML03, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML03, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV3, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV3, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV3,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV3,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV3,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV3,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB04, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML04, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML04, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV4, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV4, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV4,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV4,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV4,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV4,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB05, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML05, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML05, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV5, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV5, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV5,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV5,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV5,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV5,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB06, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML06, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML06, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV6, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV6, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV6,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV6,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV6,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV6,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 And (\_SB.PCI0.K801.MB07, 0x03, Local0)
                 And (\_SB.PCI0.K801.ML07, 0x30, Local1)
                 ShiftRight (Local1, 0x04, Local1)
                 If (LEqual (Local0, 0x03))
                 {
                     And (\_SB.PCI0.K801.ML07, 0x80, Local0)
                     If (LEqual (Local0, 0x00))
                     {
                         If (LEqual (Local1, 0x00))
                         {
                             If (LEqual (M0LN, 0x00))
                             {
                                 ShiftLeft (\_SB.PCI0.K801.MBV7, 0x10,  
M0MN)
                                 ShiftLeft (\_SB.PCI0.K801.MLV7, 0x10,  
M0MX)
                                 Or (M0MX, 0xFFFF, M0MX)
                                 Subtract (M0MX, M0MN, M0LN)
                                 Increment (M0LN)
                             }
                             Else
                             {
                                 If (LEqual (M1LN, 0x00))
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV7,  
0x10, M1MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV7,  
0x10, M1MX)
                                     Or (M1MX, 0xFFFF, M1MX)
                                     Subtract (M1MX, M1MN, M1LN)
                                     Increment (M1LN)
                                 }
                                 Else
                                 {
                                     ShiftLeft (\_SB.PCI0.K801.MBV7,  
0x10, M2MN)
                                     ShiftLeft (\_SB.PCI0.K801.MLV7,  
0x10, M2MX)
                                     Or (M2MX, 0xFFFF, M2MX)
                                     Subtract (M2MX, M2MN, M2LN)
                                     Increment (M2LN)
                                 }
                             }
                         }
                     }
                 }

                 Return (BUF0)
             }

             Name (PICM, Package (0x2E)
             {
                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x01,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x02,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x03,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x01,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x02,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x03,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x01,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x02,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x03,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

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

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

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

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

                 Package (0x04)
                 {
                     0x0011FFFF,
                     0x00,
                     \_SB.PCI0.LMC1,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x000EFFFF,
                     0x01,
                     \_SB.PCI0.LAZA,
                     0x00
                 },

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

                 Package (0x04)
                 {
                     0x000DFFFF,
                     0x00,
                     \_SB.PCI0.LSA0,
                     0x00
                 },

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

                 Package (0x04)
                 {
                     0x000DFFFF,
                     0x02,
                     \_SB.PCI0.LSA2,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x00,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x00,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x00,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x00,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x00,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x00,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x00,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x00,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x00,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x00,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x00,
                     \_SB.PCI0.LXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x00,
                     \_SB.PCI0.LXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x00,
                     \_SB.PCI0.LXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x00,
                     \_SB.PCI0.LXV6,
                     0x00
                 }
             })
             Name (APIC, Package (0x2F)
             {
                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x00,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x01,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x02,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0004FFFF,
                     0x03,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x00,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x01,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x02,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0003FFFF,
                     0x03,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x00,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x01,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x02,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x03,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

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

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

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

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

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

                 Package (0x04)
                 {
                     0x0011FFFF,
                     0x00,
                     \_SB.PCI0.AMA1,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x000EFFFF,
                     0x01,
                     \_SB.PCI0.AAZA,
                     0x00
                 },

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

                 Package (0x04)
                 {
                     0x000DFFFF,
                     0x00,
                     \_SB.PCI0.ASA0,
                     0x00
                 },

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

                 Package (0x04)
                 {
                     0x000DFFFF,
                     0x02,
                     \_SB.PCI0.ASA2,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x00,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x01,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x02,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0017FFFF,
                     0x03,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x00,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x01,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x02,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0016FFFF,
                     0x03,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x00,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x01,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x02,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0015FFFF,
                     0x03,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x00,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x01,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x02,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0014FFFF,
                     0x03,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x00,
                     \_SB.PCI0.AXV6,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x01,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x02,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0013FFFF,
                     0x03,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x00,
                     \_SB.PCI0.AXV7,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x01,
                     \_SB.PCI0.AXV8,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x02,
                     \_SB.PCI0.AXV5,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0012FFFF,
                     0x03,
                     \_SB.PCI0.AXV6,
                     0x00
                 }
             })
             Method (_PRT, 0, NotSerialized)
             {
                 If (LNot (PICF))
                 {
                     Return (PICM)
                 }
                 Else
                 {
                     Return (APIC)
                 }
             }

             Device (HUB0)
             {
                 Name (_ADR, 0x000E0000)
                 Method (_STA, 0, NotSerialized)
                 {
                     Return (0x0F)
                 }

                 Name (PICM, Package (0x14)
                 {
                     Package (0x04)
                     {
                         0x000AFFFF,
                         0x00,
                         \_SB.PCI0.LNK3,
                         0x00
                     },

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x00,
                         \_SB.PCI0.LNK3,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x01,
                         \_SB.PCI0.LNK4,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x02,
                         \_SB.PCI0.LNK1,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x03,
                         \_SB.PCI0.LNK2,
                         0x00
                     }
                 })
                 Name (APIC, Package (0x14)
                 {
                     Package (0x04)
                     {
                         0x000AFFFF,
                         0x00,
                         \_SB.PCI0.APC3,
                         0x00
                     },

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x00,
                         \_SB.PCI0.APC3,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x01,
                         \_SB.PCI0.APC4,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x02,
                         \_SB.PCI0.APC1,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0006FFFF,
                         0x03,
                         \_SB.PCI0.APC2,
                         0x00
                     }
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (LNot (PICF))
                     {
                         Return (PICM)
                     }
                     Else
                     {
                         Return (APIC)
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x00,
                     0x05
                 })
             }

             Device (SAT0)
             {
                 Name (_ADR, 0x000D0000)
                 Device (PRI0)
                 {
                     Name (_ADR, 0x00)
                     Name (SPTM, Buffer (0x14)
                     {
                         /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,  
0x00, 0x00, 0x00,
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  
0xFF, 0xFF, 0xFF,
                         /* 0010 */    0x13, 0x00, 0x00, 0x00
                     })
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (SPTM)
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         Store (Arg0, SPTM)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (Buffer (0x07)
                                 {
                                     0x03, 0x46, 0x00, 0x00, 0x00,  
0xA0, 0xEF
                                 }, Local0)
                             Return (Local0)
                         }
                     }
                 }

                 Device (SEC0)
                 {
                     Name (_ADR, 0x01)
                     Name (SSTM, Buffer (0x14)
                     {
                         /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,  
0x00, 0x00, 0x00,
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  
0xFF, 0xFF, 0xFF,
                         /* 0010 */    0x13, 0x00, 0x00, 0x00
                     })
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (SSTM)
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         Store (Arg0, SSTM)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (Buffer (0x07)
                                 {
                                     0x03, 0x46, 0x00, 0x00, 0x00,  
0xA0, 0xEF
                                 }, Local0)
                             Return (Local0)
                         }
                     }
                 }

                 Method (DRMP, 0, NotSerialized)
                 {
                     Return (\_SB.PCI0.NVRB.R_S0)
                 }
             }

             Device (SAT1)
             {
                 Name (_ADR, 0x000D0001)
                 Device (PRI0)
                 {
                     Name (_ADR, 0x00)
                     Name (SPTM, Buffer (0x14)
                     {
                         /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,  
0x00, 0x00, 0x00,
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  
0xFF, 0xFF, 0xFF,
                         /* 0010 */    0x13, 0x00, 0x00, 0x00
                     })
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (SPTM)
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         Store (Arg0, SPTM)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (Buffer (0x07)
                                 {
                                     0x03, 0x46, 0x00, 0x00, 0x00,  
0xA0, 0xEF
                                 }, Local0)
                             Return (Local0)
                         }
                     }
                 }

                 Device (SEC0)
                 {
                     Name (_ADR, 0x01)
                     Name (SSTM, Buffer (0x14)
                     {
                         /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,  
0x00, 0x00, 0x00,
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  
0xFF, 0xFF, 0xFF,
                         /* 0010 */    0x13, 0x00, 0x00, 0x00
                     })
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (SSTM)
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         Store (Arg0, SSTM)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (Buffer (0x07)
                                 {
                                     0x03, 0x46, 0x00, 0x00, 0x00,  
0xA0, 0xEF
                                 }, Local0)
                             Return (Local0)
                         }
                     }
                 }

                 Method (DRMP, 0, NotSerialized)
                 {
                     Return (\_SB.PCI0.NVRB.R_S1)
                 }
             }

             Device (SAT2)
             {
                 Name (_ADR, 0x000D0002)
                 Device (PRI0)
                 {
                     Name (_ADR, 0x00)
                     Name (SPTM, Buffer (0x14)
                     {
                         /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,  
0x00, 0x00, 0x00,
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  
0xFF, 0xFF, 0xFF,
                         /* 0010 */    0x13, 0x00, 0x00, 0x00
                     })
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (SPTM)
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         Store (Arg0, SPTM)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (Buffer (0x07)
                                 {
                                     0x03, 0x46, 0x00, 0x00, 0x00,  
0xA0, 0xEF
                                 }, Local0)
                             Return (Local0)
                         }
                     }
                 }

                 Device (SEC0)
                 {
                     Name (_ADR, 0x01)
                     Name (SSTM, Buffer (0x14)
                     {
                         /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,  
0x00, 0x00, 0x00,
                         /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  
0xFF, 0xFF, 0xFF,
                         /* 0010 */    0x13, 0x00, 0x00, 0x00
                     })
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (SSTM)
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         Store (Arg0, SSTM)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (Buffer (0x07)
                                 {
                                     0x03, 0x46, 0x00, 0x00, 0x00,  
0xA0, 0xEF
                                 }, Local0)
                             Return (Local0)
                         }
                     }
                 }

                 Method (DRMP, 0, NotSerialized)
                 {
                     Return (\_SB.PCI0.NVRB.R_S2)
                 }
             }

             Device (IDE0)
             {
                 Name (_ADR, 0x000C0000)
                 OperationRegion (A090, PCI_Config, 0x50, 0x18)
                 Field (A090, DWordAcc, NoLock, Preserve)
                 {
                     ID20,   16,
                             Offset (0x08),
                     IDTS,   16,
                     IDTP,   16,
                     ID22,   32,
                     UMSS,   16,
                     UMSP,   16
                 }

                 Name (IDEP, Buffer (0x14) {})
                 Name (IDES, Buffer (0x14) {})
                 Method (GTM, 1, NotSerialized)
                 {
                     If (LEqual (Arg0, 0x00))
                     {
                         Store (IDTP, Local0)
                         Store (UMSP, Local1)
                         Store (IDEP, Local2)
                     }
                     Else
                     {
                         Store (IDTS, Local0)
                         Store (UMSS, Local1)
                         Store (IDES, Local2)
                     }

                     CreateDWordField (Local2, 0x00, PIO0)
                     CreateDWordField (Local2, 0x04, DMA0)
                     CreateDWordField (Local2, 0x08, PIO1)
                     CreateDWordField (Local2, 0x0C, DMA1)
                     CreateDWordField (Local2, 0x10, FLAG)
                     Store (0x10, FLAG)
                     And (Local0, 0x0F00, Local3)
                     And (Local0, 0xF000, Local4)
                     ShiftRight (Local3, 0x08, Local3)
                     ShiftRight (Local4, 0x0C, Local4)
                     Add (Local3, Local4, Local3)
                     Multiply (Add (Local3, 0x02), 0x1E, PIO0)
                     If (LLessEqual (PIO0, 0xB4))
                     {
                         Or (FLAG, 0x02, FLAG)
                     }

                     If (And (Local1, 0x4000))
                     {
                         Or (FLAG, 0x01, FLAG)
                         And (Local1, 0x0700, Local3)
                         ShiftRight (Local3, 0x08, Local3)
                         Store (U2T (Local3), DMA0)
                     }
                     Else
                     {
                         Store (PIO0, DMA0)
                     }

                     And (Local0, 0x0F, Local3)
                     And (Local0, 0xF0, Local4)
                     ShiftRight (Local4, 0x04, Local4)
                     Add (Local3, Local4, Local3)
                     Multiply (Add (Local3, 0x02), 0x1E, PIO1)
                     If (LLessEqual (PIO1, 0xB4))
                     {
                         Or (FLAG, 0x08, FLAG)
                     }

                     If (And (Local1, 0x40))
                     {
                         Or (FLAG, 0x04, FLAG)
                         And (Local1, 0x07, Local3)
                         Store (U2T (Local3), DMA1)
                     }
                     Else
                     {
                         Store (PIO1, DMA1)
                     }

                     If (LEqual (Arg0, 0x00))
                     {
                         Store (Local2, IDEP)
                         Return (IDEP)
                     }
                     Else
                     {
                         Store (Local2, IDES)
                         Return (IDES)
                     }
                 }

                 Method (U2T, 1, NotSerialized)
                 {
                     If (LEqual (Arg0, 0x00))
                     {
                         Return (0x3C)
                     }

                     If (LEqual (Arg0, 0x01))
                     {
                         Return (0x5A)
                     }

                     If (LEqual (Arg0, 0x02))
                     {
                         Return (0x78)
                     }

                     If (LEqual (Arg0, 0x03))
                     {
                         Return (0x96)
                     }

                     If (LEqual (Arg0, 0x04))
                     {
                         Return (0x2D)
                     }

                     If (LEqual (Arg0, 0x05))
                     {
                         Return (0x1E)
                     }

                     If (LEqual (Arg0, 0x06))
                     {
                         Return (0x14)
                     }

                     Return (0x0F)
                 }

                 Method (T2U, 1, NotSerialized)
                 {
                     If (LGreater (Arg0, 0x78))
                     {
                         Return (0x03)
                     }

                     If (LGreater (Arg0, 0x5A))
                     {
                         Return (0x02)
                     }

                     If (LGreater (Arg0, 0x3C))
                     {
                         Return (0x01)
                     }

                     If (LGreater (Arg0, 0x2D))
                     {
                         Return (0x00)
                     }

                     If (LGreater (Arg0, 0x1E))
                     {
                         Return (0x04)
                     }

                     If (LGreater (Arg0, 0x14))
                     {
                         Return (0x05)
                     }

                     If (LGreater (Arg0, 0x0F))
                     {
                         Return (0x06)
                     }

                     Return (0x07)
                 }

                 Method (T2D, 1, NotSerialized)
                 {
                     If (LGreater (Arg0, 0x01E0))
                     {
                         Return (0xA8)
                     }

                     If (LGreater (Arg0, 0x0186))
                     {
                         Return (0x77)
                     }

                     If (LGreater (Arg0, 0xF0))
                     {
                         Return (0x47)
                     }

                     If (LGreater (Arg0, 0xB4))
                     {
                         Return (0x33)
                     }

                     If (LGreater (Arg0, 0x96))
                     {
                         Return (0x22)
                     }

                     If (LGreater (Arg0, 0x78))
                     {
                         Return (0x21)
                     }

                     Return (0x20)
                 }

                 Method (STM, 4, NotSerialized)
                 {
                     If (SX)
                     {
                         Store (SID0, ID20)
                         Store (SID1, IDTS)
                         Store (SID2, IDTP)
                         Store (SID3, ID22)
                         Store (SID4, UMSS)
                         Store (SID5, UMSP)
                     }
                     Else
                     {
                         Store (ID20, SID0)
                         Store (IDTS, SID1)
                         Store (IDTP, SID2)
                         Store (ID22, SID3)
                         Store (UMSS, SID4)
                         Store (UMSP, SID5)
                     }

                     Store (0x00, SX)
                     CreateDWordField (Arg0, 0x00, PIO0)
                     CreateDWordField (Arg0, 0x04, DMA0)
                     CreateDWordField (Arg0, 0x08, PIO1)
                     CreateDWordField (Arg0, 0x0C, DMA1)
                     CreateDWordField (Arg0, 0x10, FLAG)
                     If (LEqual (Arg3, 0x00))
                     {
                         Store (SID2, Local0)
                         Store (SID5, Local1)
                     }
                     Else
                     {
                         Store (SID1, Local0)
                         Store (SID4, Local1)
                     }

                     If (LNotEqual (PIO0, 0xFFFFFFFF))
                     {
                         And (Local0, 0xFF, Local0)
                         ShiftLeft (T2D (PIO0), 0x08, Local2)
                         Or (Local0, Local2, Local0)
                     }

                     If (LNotEqual (PIO1, 0xFFFFFFFF))
                     {
                         And (Local0, 0xFF00, Local0)
                         Or (Local0, T2D (PIO1), Local0)
                     }

                     If (And (FLAG, 0x01))
                     {
                         And (Local1, 0xFF, Local1)
                         ShiftLeft (T2U (DMA0), 0x08, Local2)
                         Or (0xC000, Local2, Local2)
                         Or (Local2, Local1, Local1)
                     }
                     Else
                     {
                         If (LNotEqual (DMA0, 0xFFFFFFFF))
                         {
                             And (Local0, 0xFF, Local0)
                             ShiftLeft (T2D (DMA0), 0x08, Local2)
                             Or (Local0, Local2, Local0)
                         }
                     }

                     If (And (FLAG, 0x04))
                     {
                         And (Local1, 0xFF00, Local1)
                         Or (0xC0, T2U (DMA1), Local2)
                         Or (Local2, Local1, Local1)
                     }
                     Else
                     {
                         If (LNotEqual (DMA1, 0xFFFFFFFF))
                         {
                             And (Local0, 0xFF00, Local0)
                             Or (Local0, T2D (DMA1), Local0)
                         }
                     }

                     If (LEqual (Arg3, 0x00))
                     {
                         Store (Local0, IDTP)
                         Store (Local1, UMSP)
                     }
                     Else
                     {
                         Store (Local0, IDTS)
                         Store (Local1, UMSS)
                     }
                 }

                 Method (GTF, 2, NotSerialized)
                 {
                     Store (Buffer (0x07)
                         {
                             0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                         }, Local0)
                     CreateByteField (Local0, 0x01, MODE)
                     CreateByteField (Local0, 0x05, DRIV)
                     Store (Arg1, DRIV)
                     If (LEqual (Arg0, 0x00))
                     {
                         Store (IDEP, Local1)
                     }
                     Else
                     {
                         Store (IDES, Local1)
                     }

                     CreateDWordField (Local1, 0x00, PIO0)
                     CreateDWordField (Local1, 0x04, DMA0)
                     CreateDWordField (Local1, 0x08, PIO1)
                     CreateDWordField (Local1, 0x0C, DMA1)
                     CreateDWordField (Local1, 0x10, FLGX)
                     If (LEqual (Arg1, 0xA0))
                     {
                         Store (PIO0, Local2)
                         Store (DMA0, Local3)
                         And (FLGX, 0x01, FLGX)
                     }
                     Else
                     {
                         Store (PIO1, Local2)
                         Store (DMA1, Local3)
                         And (FLGX, 0x04, FLGX)
                     }

                     Store (FLGX, Local1)
                     If (LGreater (Local2, 0x0186))
                     {
                         Store (0x00, Local2)
                     }
                     Else
                     {
                         If (LGreater (Local2, 0xF0))
                         {
                             Store (0x01, Local2)
                         }
                         Else
                         {
                             If (LGreater (Local2, 0xB4))
                             {
                                 Store (0x02, Local2)
                             }
                             Else
                             {
                                 If (LGreater (Local2, 0x78))
                                 {
                                     Store (0x03, Local2)
                                 }
                                 Else
                                 {
                                     Store (0x04, Local2)
                                 }
                             }
                         }
                     }

                     Or (0x08, Local2, MODE)
                     Store (Local0, Local2)
                     If (FLGX)
                     {
                         If (LGreater (Local3, 0x5A))
                         {
                             Store (0x00, Local3)
                         }
                         Else
                         {
                             If (LGreater (Local3, 0x3C))
                             {
                                 Store (0x01, Local3)
                             }
                             Else
                             {
                                 If (LGreater (Local3, 0x2D))
                                 {
                                     Store (0x02, Local3)
                                 }
                                 Else
                                 {
                                     If (LGreater (Local3, 0x1E))
                                     {
                                         Store (0x03, Local3)
                                     }
                                     Else
                                     {
                                         If (LGreater (Local3, 0x14))
                                         {
                                             Store (0x04, Local3)
                                         }
                                         Else
                                         {
                                             If (LGreater (Local3,  
0x0F))
                                             {
                                                 Store (0x05, Local3)
                                             }
                                             Else
                                             {
                                                 Store (0x06, Local3)
                                             }
                                         }
                                     }
                                 }
                             }
                         }

                         Or (0x40, Local3, MODE)
                     }
                     Else
                     {
                         If (LEqual (Local3, 0xFFFFFFFF))
                         {
                             Return (Local0)
                         }
                         Else
                         {
                             If (LGreater (Local3, 0x96))
                             {
                                 Store (0x00, Local3)
                             }
                             Else
                             {
                                 If (LGreater (Local3, 0x78))
                                 {
                                     Store (0x01, Local3)
                                 }
                                 Else
                                 {
                                     Store (0x02, Local3)
                                 }
                             }

                             Or (0x20, Local3, MODE)
                         }
                     }

                     Concatenate (Local0, Local2, Local1)
                     Return (Local1)
                 }

                 Device (PRI0)
                 {
                     Name (_ADR, 0x00)
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (GTM (0x00))
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         STM (Arg0, Arg1, Arg2, 0x00)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Return (GTF (0x00, 0xA0))
                         }
                     }

                     Device (SLAV)
                     {
                         Name (_ADR, 0x01)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Return (GTF (0x00, 0xB0))
                         }
                     }
                 }

                 Device (SEC0)
                 {
                     Name (_ADR, 0x01)
                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (GTM (0x01))
                     }

                     Method (_STM, 3, NotSerialized)
                     {
                         STM (Arg0, Arg1, Arg2, 0x01)
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Return (GTF (0x01, 0xA0))
                         }
                     }

                     Device (SLAV)
                     {
                         Name (_ADR, 0x01)
                         Method (_GTF, 0, NotSerialized)
                         {
                             Return (GTF (0x01, 0xB0))
                         }
                     }
                 }

                 Method (DRMP, 0, NotSerialized)
                 {
                     Return (\_SB.PCI0.NVRB.R_P0)
                 }
             }

             Device (K800)
             {
                 Name (_BBN, 0x00)
                 Name (_ADR, 0x00180000)
             }

             Device (K801)
             {
                 Name (_BBN, 0x00)
                 Name (_ADR, 0x00180001)
                 OperationRegion (K181, PCI_Config, 0x00, 0xFF)
                 Field (K181, AnyAcc, NoLock, Preserve)
                 {
                             Offset (0x80),
                     MB00,   8,
                     MBV0,   24,
                     ML00,   8,
                     MLV0,   24,
                     MB01,   8,
                     MBV1,   24,
                     ML01,   8,
                     MLV1,   24,
                     MB02,   8,
                     MBV2,   24,
                     ML02,   8,
                     MLV2,   24,
                     MB03,   8,
                     MBV3,   24,
                     ML03,   8,
                     MLV3,   24,
                     MB04,   8,
                     MBV4,   24,
                     ML04,   8,
                     MLV4,   24,
                     MB05,   8,
                     MBV5,   24,
                     ML05,   8,
                     MLV5,   24,
                     MB06,   8,
                     MBV6,   24,
                     ML06,   8,
                     MLV6,   24,
                     MB07,   8,
                     MBV7,   24,
                     ML07,   8,
                     MLV7,   24,
                     IB00,   6,
                         ,   6,
                     IBV0,   13,
                             Offset (0xC4),
                     IL00,   6,
                         ,   6,
                     ILV0,   13,
                             Offset (0xC8),
                     IB01,   6,
                         ,   6,
                     IBV1,   13,
                             Offset (0xCC),
                     IL01,   6,
                         ,   6,
                     ILV1,   13,
                             Offset (0xD0),
                     IB02,   6,
                         ,   6,
                     IBV2,   13,
                             Offset (0xD4),
                     IL02,   6,
                         ,   6,
                     ILV2,   13,
                             Offset (0xD8),
                     IB03,   6,
                         ,   6,
                     IBV3,   13,
                             Offset (0xDC),
                     IL03,   6,
                         ,   6,
                     ILV3,   13,
                             Offset (0xE0),
                     L0EN,   8,
                     DL00,   8,
                     BNB0,   8,
                     BNL0,   8,
                     L1EN,   8,
                     DL01,   8,
                     BNB1,   8,
                     BNL1,   8,
                     L2EN,   8,
                     DL02,   8,
                     BNB2,   8,
                     BNL2,   8,
                     L3EN,   8,
                     DL03,   8,
                     BNB3,   8,
                     BNL3,   8
                 }
             }

             Device (K802)
             {
                 Name (_BBN, 0x00)
                 Name (_ADR, 0x00180002)
             }

             Device (K810)
             {
                 Name (_BBN, 0x00)
                 Name (_ADR, 0x00190000)
             }

             Device (K811)
             {
                 Name (_BBN, 0x00)
                 Name (_ADR, 0x00190001)
                 OperationRegion (K281, PCI_Config, 0x00, 0xFF)
                 Field (K281, AnyAcc, NoLock, Preserve)
                 {
                             Offset (0x80),
                     MB00,   8,
                     MBV0,   24,
                     ML00,   8,
                     MLV0,   24,
                     MB01,   8,
                     MBV1,   24,
                     ML01,   8,
                     MLV1,   24,
                     MB02,   8,
                     MBV2,   24,
                     ML02,   8,
                     MLV2,   24,
                     MB03,   8,
                     MBV3,   24,
                     ML03,   8,
                     MLV3,   24,
                     MB04,   8,
                     MBV4,   24,
                     ML04,   8,
                     MLV4,   24,
                     MB05,   8,
                     MBV5,   24,
                     ML05,   8,
                     MLV5,   24,
                     MB06,   8,
                     MBV6,   24,
                     ML06,   8,
                     MLV6,   24,
                     MB07,   8,
                     MBV7,   24,
                     ML07,   8,
                     MLV7,   24,
                     IB00,   6,
                         ,   6,
                     IBV0,   13,
                             Offset (0xC4),
                     IL00,   6,
                         ,   6,
                     ILV0,   13,
                             Offset (0xC8),
                     IB01,   6,
                         ,   6,
                     IBV1,   13,
                             Offset (0xCC),
                     IL01,   6,
                         ,   6,
                     ILV1,   13,
                             Offset (0xD0),
                     IB02,   6,
                         ,   6,
                     IBV2,   13,
                             Offset (0xD4),
                     IL02,   6,
                         ,   6,
                     ILV2,   13,
                             Offset (0xD8),
                     IB03,   6,
                         ,   6,
                     IBV3,   13,
                             Offset (0xDC),
                     IL03,   6,
                         ,   6,
                     ILV3,   13,
                             Offset (0xE0),
                     L0EN,   8,
                     DL00,   8,
                     BNB0,   8,
                     BNL0,   8,
                     L1EN,   8,
                     DL01,   8,
                     BNB1,   8,
                     BNL1,   8,
                     L2EN,   8,
                     DL02,   8,
                     BNB2,   8,
                     BNL2,   8,
                     L3EN,   8,
                     DL03,   8,
                     BNB3,   8,
                     BNL3,   8
                 }
             }

             Device (K812)
             {
                 Name (_BBN, 0x00)
                 Name (_ADR, 0x00190002)
             }

             Device (MXR0)
             {
                 Name (_ADR, 0x00170000)
                 OperationRegion (PCVA, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.MXR0.PCVA, ByteAcc, NoLock,  
Preserve)
                     {
                         PEVA,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPEA,   1,
                                 Offset (0xA0),
                         RQDA,   16,
                         PESA,   1,
                         PEPA,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (MXR1)
             {
                 Name (_ADR, 0x00160000)
                 OperationRegion (PCVB, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.MXR1.PCVB, ByteAcc, NoLock,  
Preserve)
                     {
                         PEVB,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPEB,   1,
                                 Offset (0xA0),
                         RQDB,   16,
                         PESB,   1,
                         PEPB,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (MXR2)
             {
                 Name (_ADR, 0x00150000)
                 OperationRegion (PCVC, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.MXR2.PCVC, ByteAcc, NoLock,  
Preserve)
                     {
                         PEVC,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPEC,   1,
                                 Offset (0xA0),
                         RQDC,   16,
                         PESC,   1,
                         PEPC,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (MXR3)
             {
                 Name (_ADR, 0x00140000)
                 OperationRegion (PCVD, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.MXR3.PCVD, ByteAcc, NoLock,  
Preserve)
                     {
                         PEVD,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPED,   1,
                                 Offset (0xA0),
                         RQDD,   16,
                         PESD,   1,
                         PEPD,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (MXR4)
             {
                 Name (_ADR, 0x00130000)
                 OperationRegion (PCVE, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.MXR4.PCVE, ByteAcc, NoLock,  
Preserve)
                     {
                         PEVE,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPEE,   1,
                                 Offset (0xA0),
                         RQDE,   16,
                         PESE,   1,
                         PEPE,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (MXR5)
             {
                 Name (_ADR, 0x00120000)
                 OperationRegion (PCVF, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.MXR5.PCVF, ByteAcc, NoLock,  
Preserve)
                     {
                         PEVF,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPEF,   1,
                                 Offset (0xA0),
                         RQDF,   16,
                         PESF,   1,
                         PEPF,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (XVR0)
             {
                 Name (_ADR, 0x00020000)
                 OperationRegion (PCV0, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.XVR0.PCV0, ByteAcc, NoLock,  
Preserve)
                     {
                         PEV0,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPE0,   1,
                                 Offset (0xA0),
                         RQD0,   16,
                         PES0,   1,
                         PEP0,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (XVR1)
             {
                 Name (_ADR, 0x00030000)
                 OperationRegion (PCV1, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.XVR1.PCV1, ByteAcc, NoLock,  
Preserve)
                     {
                         PEV1,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPE1,   1,
                                 Offset (0xA0),
                         RQD1,   16,
                         PES1,   1,
                         PEP1,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (XVR2)
             {
                 Name (_ADR, 0x00040000)
                 OperationRegion (PCV2, PCI_Config, 0x00, 0xFF)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.XVR2.PCV2, ByteAcc, NoLock,  
Preserve)
                     {
                         PEV2,   16,
                                 Offset (0x9C),
                             ,   3,
                         XPE2,   1,
                                 Offset (0xA0),
                         RQD2,   16,
                         PES2,   1,
                         PEP2,   1
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x11,
                     0x05
                 })
             }

             Device (SMB0)
             {
                 Name (_ADR, 0x00090001)
                 OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
                 Field (SMCF, DWordAcc, NoLock, Preserve)
                 {
                     SMPM,   4,
                     SMT1,   28,
                     SMT2,   32,
                     SB1,    32,
                     SB2,    32
                 }

                 Method (SMBB, 0, NotSerialized)
                 {
                     If (PCIA)
                     {
                         And (SB1, 0xFFFE, Local0)
                     }
                     Else
                     {
                         Store (0x1C00, Local0)
                     }

                     Return (Local0)
                 }
             }

             Device (VT86)
             {
                 Name (_ADR, 0x00090000)
                 OperationRegion (PIO0, PCI_Config, 0x04, 0x20)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.VT86.PIO0, ByteAcc, NoLock,  
Preserve)
                     {
                         SMEN,   8,
                                 Offset (0x0C),
                                 Offset (0x0D),
                         SMIO,   8
                     }
                 }

                 OperationRegion (PIRQ, PCI_Config, 0x7C, 0x0C)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.VT86.PIRQ, AnyAcc, NoLock,  
Preserve)
                     {
                         INTA,   4,
                         INTB,   4,
                         INTC,   4,
                         INTD,   4,
                         PCEA,   4,
                         PCEB,   4,
                         PCEC,   4,
                         PCED,   4,
                         SCII,   4,
                         TCOI,   4,
                         SMBI,   4,
                         US2I,   4,
                         P2PI,   4,
                         PMUI,   4,
                         SA1I,   4,
                         SA0I,   4,
                         US0I,   4,
                         MA1I,   4,
                         MA0I,   4,
                         AZAI,   4,
                         ACII,   4,
                         MCII,   4,
                         IDEI,   4,
                         SA2I,   4
                     }
                 }

                 OperationRegion (OCSP, PCI_Config, 0x78, 0x01)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.VT86.OCSP, ByteAcc, NoLock,  
Preserve)
                     {
                         OCSE,   2,
                         OCSA,   3,
                         OCSI,   2
                     }
                 }

                 OperationRegion (PDEV, PCI_Config, 0xE8, 0x04)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.VT86.PDEV, AnyAcc, NoLock,  
Preserve)
                     {
                             ,   12,
                         ACIE,   1
                     }
                 }

                 OperationRegion (LPIO, PCI_Config, 0xA0, 0x18)
                 Scope (\)
                 {
                     Field (\_SB.PCI0.VT86.LPIO, ByteAcc, NoLock,  
Preserve)
                     {
                         UAIO,   8,
                         SNDD,   4,
                         MIDD,   4,
                         MSSD,   4,
                         FDCD,   2,
                                 Offset (0x03),
                         PRIO,   3,
                             ,   1,
                         GEN1,   1,
                         GEN2,   1,
                         GEN3,   1,
                         GEN4,   1,
                         GAM1,   8,
                         GAM2,   8
                     }

                     OperationRegion (RTC2, SystemIO, 0x72, 0x02)
                     Field (RTC2, ByteAcc, NoLock, Preserve)
                     {
                         CM2I,   8,
                         CM2D,   8
                     }

                     IndexField (CM2I, CM2D, ByteAcc, NoLock, Preserve)
                     {
                                 Offset (0xCC),
                         UA1D,   8
                     }

                     Name (UARA, 0x00)
                     Name (UARB, 0x00)
                     Name (UARC, 0x00)
                     Method (DISD, 1, NotSerialized)
                     {
                         If (LEqual (Arg0, 0x00))
                         {
                             Store (UARA, Local0)
                             XOr (Local0, 0xFF, Local0)
                             And (UAIO, Local0, UAIO)
                         }

                         If (LEqual (Arg0, 0x01)) {}
                         If (LEqual (Arg0, 0x10))
                         {
                             Store (UARC, Local0)
                             XOr (Local0, 0xFF, Local0)
                             And (UAIO, Local0, UAIO)
                         }

                         If (LEqual (Arg0, 0x02))
                         {
                             Store (0x00, PRIO)
                         }

                         If (LEqual (Arg0, 0x03))
                         {
                             Store (0x00, FDCD)
                         }

                         If (LEqual (Arg0, 0x04))
                         {
                             Store (0x00, GAM1)
                             Store (0x00, GAM2)
                         }

                         If (LEqual (Arg0, 0x05))
                         {
                             Store (0x00, MIDD)
                         }
                     }

                     Method (CKIO, 2, NotSerialized)
                     {
                         If (LEqual (Arg1, 0x00))
                         {
                             Or (UARA, UARB, Local0)
                             Or (UARC, Local0, Local0)
                             And (UAIO, Local0, UAIO)
                             Store (UARA, Local0)
                             XOr (Local0, 0xFF, Local0)
                             And (UAIO, Local0, UAIO)
                             If (LEqual (Arg0, 0x03F8))
                             {
                                 Store (0x01, Local0)
                             }

                             If (LEqual (Arg0, 0x02F8))
                             {
                                 Store (0x02, Local0)
                             }

                             If (LEqual (Arg0, 0x02E8))
                             {
                                 Store (0x20, Local0)
                             }

                             If (LEqual (Arg0, 0x03E8))
                             {
                                 Store (0x80, Local0)
                             }

                             Or (UAIO, Local0, UAIO)
                             Store (Local0, UARA)
                         }

                         If (LEqual (Arg1, 0x01)) {}
                         If (LEqual (Arg1, 0x10))
                         {
                             Or (UARA, UARB, Local0)
                             Or (UARC, Local0, Local0)
                             And (UAIO, Local0, UAIO)
                             Store (UARC, Local0)
                             XOr (Local0, 0xFF, Local0)
                             And (UAIO, Local0, UAIO)
                             If (LEqual (Arg0, 0x03F8))
                             {
                                 Store (0x01, Local0)
                             }

                             If (LEqual (Arg0, 0x02F8))
                             {
                                 Store (0x02, Local0)
                             }

                             If (LEqual (Arg0, 0x02E8))
                             {
                                 Store (0x20, Local0)
                             }

                             If (LEqual (Arg0, 0x03E8))
                             {
                                 Store (0x80, Local0)
                             }

                             Or (UAIO, Local0, UAIO)
                             Store (Local0, UARC)
                         }

                         If (LEqual (Arg1, 0x02))
                         {
                             If (LEqual (Arg0, 0x0378))
                             {
                                 Store (0x00, PRIO)
                                 Or (PRIO, 0x01, PRIO)
                             }

                             If (LEqual (Arg0, 0x0278))
                             {
                                 Store (0x00, PRIO)
                                 Or (PRIO, 0x02, PRIO)
                             }

                             If (LEqual (Arg0, 0x03BC))
                             {
                                 Store (0x00, PRIO)
                                 Or (PRIO, 0x04, PRIO)
                             }
                         }

                         If (LEqual (Arg1, 0x03))
                         {
                             Or (FDCD, 0x01, FDCD)
                         }

                         If (LEqual (Arg1, 0x04))
                         {
                             Store (0x00, GAM1)
                             Store (0x00, GAM2)
                             If (LEqual (Arg0, 0x0201))
                             {
                                 Or (GAM1, 0x02, GAM1)
                             }

                             If (LEqual (Arg0, 0x0209))
                             {
                                 Or (GAM2, 0x02, GAM2)
                             }
                         }

                         If (LEqual (Arg1, 0x05))
                         {
                             Store (0x00, MIDD)
                             If (LEqual (Arg0, 0x0300))
                             {
                                 Or (MIDD, 0x01, MIDD)
                             }

                             If (LEqual (Arg0, 0x0330))
                             {
                                 Or (MIDD, 0x08, MIDD)
                             }
                         }
                     }

                     Method (SLDM, 2, NotSerialized)
                     {
                     }

                     Method (CLSU, 1, NotSerialized)
                     {
                         CreateWordField (Arg0, 0x02, UARO)
                         If (LEqual (UARO, 0x03F8))
                         {
                             And (UAIO, 0xFE, UAIO)
                         }

                         If (LEqual (UARO, 0x02F8))
                         {
                             And (UAIO, 0xFD, UAIO)
                         }

                         If (LEqual (UARO, 0x02E8))
                         {
                             And (UAIO, 0xBF, UAIO)
                         }

                         If (LEqual (UARO, 0x03E8))
                         {
                             And (UAIO, 0x7F, UAIO)
                         }
                     }
                 }
             }

             Device (USB0)
             {
                 Name (_ADR, 0x000A0000)
                 Method (_S1D, 0, NotSerialized)
                 {
                     Return (0x01)
                 }

                 Method (_S3D, 0, NotSerialized)
                 {
                     If (LEqual (OSFL, 0x02))
                     {
                         Return (0x02)
                     }
                     Else
                     {
                         Return (0x03)
                     }
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x0D,
                     0x03
                 })
             }

             Device (USB2)
             {
                 Name (_ADR, 0x000A0001)
                 OperationRegion (P020, PCI_Config, 0x49, 0x01)
                 Field (P020, AnyAcc, NoLock, Preserve)
                 {
                     U0WK,   1
                 }

                 Method (_PSW, 1, NotSerialized)
                 {
                     If (Arg0)
                     {
                         Store (0x01, U0WK)
                     }
                     Else
                     {
                         Store (0x00, U0WK)
                     }
                 }

                 Method (_S1D, 0, NotSerialized)
                 {
                     Return (0x01)
                 }

                 Method (_S3D, 0, NotSerialized)
                 {
                     Return (0x01)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x05,
                     0x03
                 })
             }

             Device (MMAC)
             {
                 Name (_ADR, 0x00100000)
                 Name (_PRW, Package (0x02)
                 {
                     0x0B,
                     0x05
                 })
             }

             Device (MAC1)
             {
                 Name (_ADR, 0x00110000)
                 Name (_PRW, Package (0x02)
                 {
                     0x0A,
                     0x05
                 })
             }

             Device (AZA)
             {
                 Name (_ADR, 0x000E0001)
                 Name (_PRW, Package (0x02)
                 {
                     0x15,
                     0x05
                 })
             }

             Device (NVRB)
             {
                 Name (_HID, "NVRAIDBUS")
                 OperationRegion (NVRD, SystemMemory, 0x000FFF38, 0x03)
                 Field (NVRD, ByteAcc, NoLock, Preserve)
                 {
                     R_ST,   1,
                         ,   3,
                     R_P0,   4,
                     R_S0,   4,
                     R_S1,   4,
                     R_S2,   4
                 }

                 Name (FNVR, 0xFF)
                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, FNVR)
                 }

                 Method (_STA, 0, NotSerialized)
                 {
                     If (LEqual (R_ST, 0x01))
                     {
                         If (LEqual (FNVR, 0xFF))
                         {
                             Return (0x0F)
                         }
                         Else
                         {
                             Return (0x0D)
                         }
                     }
                     Else
                     {
                         Return (0x00)
                     }
                 }

                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x04D2,             // Range Minimum
                         0x04D2,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                 })
                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (0xFF, FNVR)
                 }
             }

             Name (BUFA, ResourceTemplate ()
             {
                 IRQ (Level, ActiveLow, Shared, )
                     {5,7,9,10,11,14,15}
             })
             Name (BUFB, ResourceTemplate ()
             {
                 IRQ (Level, ActiveLow, Shared, _Y06)
                     {}
             })
             CreateWordField (BUFB, \_SB.PCI0._Y06._INT, IRQV)
             Method (CRS, 1, NotSerialized)
             {
                 If (Arg0)
                 {
                     ShiftLeft (0x01, Arg0, IRQV)
                 }
                 Else
                 {
                     Store (Zero, IRQV)
                 }

                 Return (BUFB)
             }

             Method (SRS, 1, NotSerialized)
             {
                 CreateWordField (Arg0, 0x01, IRQ0)
                 FindSetRightBit (IRQ0, Local0)
                 Decrement (Local0)
                 Return (Local0)
             }

             Method (CRSA, 1, Serialized)
             {
                 Store (0x00, Local0)
                 If (LEqual (Arg0, 0x01))
                 {
                     Store (0x17, Local0)
                 }

                 If (LEqual (Arg0, 0x02))
                 {
                     Store (0x16, Local0)
                 }

                 If (LEqual (Arg0, 0x03))
                 {
                     Store (0x10, Local0)
                 }

                 If (LEqual (Arg0, 0x04))
                 {
                     Store (0x11, Local0)
                 }

                 If (LEqual (Arg0, 0x06))
                 {
                     Store (0x12, Local0)
                 }

                 If (LEqual (Arg0, 0x08))
                 {
                     Store (0x14, Local0)
                 }

                 If (LEqual (Arg0, 0x0C))
                 {
                     Store (0x13, Local0)
                 }

                 If (LEqual (Arg0, 0x0D))
                 {
                     Store (0x15, Local0)
                 }

                 If (LEqual (Local0, 0x00))
                 {
                     Return (CRS (Arg0))
                 }
                 Else
                 {
                     Name (IRZ5, ResourceTemplate ()
                     {
                         Interrupt (ResourceConsumer, Level,  
ActiveLow, Shared, ,, _Y07)
                         {
                             0x00000007,
                         }
                     })
                     CreateWordField (IRZ5, \_SB.PCI0.CRSA._Y07._INT,  
INZ5)
                     Store (Local0, INZ5)
                     Return (IRZ5)
                 }
             }

             Method (SRSA, 1, Serialized)
             {
                 CreateWordField (Arg0, 0x05, INZ6)
                 Store (0x08, Local0)
                 If (LEqual (INZ6, 0x10))
                 {
                     Store (0x03, Local0)
                 }

                 If (LEqual (INZ6, 0x11))
                 {
                     Store (0x04, Local0)
                 }

                 If (LEqual (INZ6, 0x12))
                 {
                     Store (0x06, Local0)
                 }

                 If (LEqual (INZ6, 0x13))
                 {
                     Store (0x0C, Local0)
                 }

                 If (LEqual (INZ6, 0x14))
                 {
                     Store (0x08, Local0)
                 }

                 If (LEqual (INZ6, 0x15))
                 {
                     Store (0x0D, Local0)
                 }

                 If (LEqual (INZ6, 0x16))
                 {
                     Store (0x02, Local0)
                 }

                 If (LEqual (INZ6, 0x17))
                 {
                     Store (0x01, Local0)
                 }

                 Return (Local0)
             }

             Device (LNK1)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x01)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (INTA)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTA)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (INTA))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), INTA)
                 }
             }

             Device (LNK2)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x02)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (INTB)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTB)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (INTB))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), INTB)
                 }
             }

             Device (LNK3)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x03)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (INTC)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTC)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (INTC))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), INTC)
                 }
             }

             Device (LNK4)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x04)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (INTD)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTD)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (INTD))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), INTD)
                 }
             }

             Device (LXV5)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x05)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (PCEA)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCEA)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (PCEA))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), PCEA)
                 }
             }

             Device (LXV6)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x06)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (PCEB)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCEB)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (PCEB))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), PCEB)
                 }
             }

             Device (LXV7)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x07)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (PCEC)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCEC)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (PCEC))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), PCEC)
                 }
             }

             Device (LXV8)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x08)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (PCED)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCED)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (PCED))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), PCED)
                 }
             }

             Device (LUBA)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x11)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (US0I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, US0I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (US0I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), US0I)
                 }
             }

             Device (LMC1)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x12)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (MA1I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, MA1I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (MA1I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), MA1I)
                 }
             }

             Device (LMAC)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x13)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (MA0I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, MA0I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (MA0I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), MA0I)
                 }
             }

             Device (LAZA)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x14)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (AZAI)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, AZAI)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (AZAI))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), AZAI)
                 }
             }

             Device (LSMB)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x0B)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (SMBI)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SMBI)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (SMBI))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), SMBI)
                 }
             }

             Device (LUB2)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x0C)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (US2I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, US2I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (US2I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), US2I)
                 }
             }

             Device (LIDE)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x17)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (IDEI)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, IDEI)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (IDEI))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), IDEI)
                 }
             }

             Device (LSA0)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x10)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (SA0I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SA0I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (SA0I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), SA0I)
                 }
             }

             Device (LSA1)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x0F)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (SA1I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SA1I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (SA1I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), SA1I)
                 }
             }

             Device (LSA2)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x18)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (SA2I)
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFA)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SA2I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS (SA2I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRS (Arg0), SA2I)
                 }
             }

             Name (BUF1, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000010,
                 }
             })
             Name (BUF2, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000011,
                 }
             })
             Name (BUF3, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000012,
                 }
             })
             Name (BUF4, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000013,
                 }
             })
             Name (BUFF, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000014,
                     0x00000015,
                     0x00000016,
                     0x00000017,
                 }
             })
             Name (BUFH, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x0000000B,
                 }
             })
             Name (BUFI, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000017,
                 }
             })
             Name (IRZ1, ResourceTemplate ()
             {
                 Interrupt (ResourceConsumer, Level, ActiveLow,  
Shared, ,, )
                 {
                     0x00000007,
                 }
             })
             Device (APC1)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x65)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (INTA, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF1)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTA)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (INTA))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), INTA)
                 }
             }

             Device (APC2)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x66)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (INTB, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF2)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTB)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (INTB))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), INTB)
                 }
             }

             Device (APC3)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x67)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (INTC, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF3)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTC)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (INTC))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), INTC)
                 }
             }

             Device (APC4)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x68)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (INTD, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF4)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, INTD)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (INTD))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), INTD)
                 }
             }

             Device (AXV5)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x69)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (PCEA, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF1)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCEA)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (PCEA))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), PCEA)
                 }
             }

             Device (AXV6)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x6A)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (PCEB, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF1)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCEB)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (PCEB))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), PCEB)
                 }
             }

             Device (AXV7)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x6B)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (PCEC, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF1)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCEC)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (PCEC))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), PCEC)
                 }
             }

             Device (AXV8)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x6C)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (PCED, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUF1)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, PCED)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (PCED))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), PCED)
                 }
             }

             Device (AUBA)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x75)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (US0I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, US0I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (US0I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), US0I)
                 }
             }

             Device (AMA1)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x76)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (MA1I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, MA1I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (MA1I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), MA1I)
                 }
             }

             Device (AMAC)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x77)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (MA0I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, MA0I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (MA0I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), MA0I)
                 }
             }

             Device (AAZA)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x78)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (AZAI, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, AZAI)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (AZAI))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), AZAI)
                 }
             }

             Device (AACI)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x79)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (ACII, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, ACII)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (ACII))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), ACII)
                 }
             }

             Device (AMCI)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x7A)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (MCII, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, MCII)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (MCII))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), MCII)
                 }
             }

             Device (ASMB)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x6F)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (SMBI, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SMBI)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (SMBI))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), SMBI)
                 }
             }

             Device (AUS2)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x70)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (US2I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, US2I)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (US2I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), US2I)
                 }
             }

             Device (AIDE)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x7B)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (IDEI, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, IDEI)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (IDEI))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), IDEI)
                 }
             }

             Device (ASA0)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x74)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (SA0I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SA0I)
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (SA0I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), SA0I)
                 }
             }

             Device (ASA1)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x73)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (SA1I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SA1I)
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (SA1I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), SA1I)
                 }
             }

             Device (ASA2)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x26)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LAnd (SA1I, PICF))
                     {
                         Return (0x0B)
                     }
                     Else
                     {
                         Return (0x09)
                     }
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, SA2I)
                 }

                 Method (_PRS, 0, NotSerialized)
                 {
                     Return (BUFF)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRSA (SA2I))
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     Store (SRSA (Arg0), SA2I)
                 }
             }

             Scope (\)
             {
                 OperationRegion (\SCPP, SystemIO, 0x142E, 0x01)
                 Field (\SCPP, ByteAcc, NoLock, Preserve)
                 {
                     SMIP,   8
                 }
             }

             Method (\_SB.PCI0._INI, 0, NotSerialized)
             {
                 If (STRC (\_OS, "Microsoft Windows"))
                 {
                     Store (0x56, SMIP)
                 }
                 Else
                 {
                     If (STRC (\_OS, "Microsoft Windows NT"))
                     {
                         If (CondRefOf (\_OSI, Local0))
                         {
                             If (\_OSI ("Windows 2001"))
                             {
                                 Store (0x59, SMIP)
                                 Store (0x00, OSFL)
                                 Store (0x03, OSFX)
                             }
                         }
                         Else
                         {
                             Store (0x58, SMIP)
                             Store (0x00, OSFX)
                             Store (0x00, OSFL)
                         }
                     }
                     Else
                     {
                         Store (0x57, SMIP)
                         Store (0x02, OSFX)
                         Store (0x02, OSFL)
                     }
                 }

                 Name (TEMP, 0x00)
                 Store (UA1D, TEMP)
                 And (TEMP, 0x0F, TEMP)
                 ShiftLeft (0x01, TEMP, UARA)
                 Store (UA1D, TEMP)
                 And (TEMP, 0xF0, TEMP)
                 ShiftRight (TEMP, 0x04, TEMP)
                 ShiftLeft (0x01, TEMP, UARB)
             }

             Scope (\)
             {
                 Method (OSTP, 0, NotSerialized)
                 {
                     If (LEqual (OSFX, 0x01))
                     {
                         Store (0x56, SMIP)
                     }

                     If (LEqual (OSFX, 0x02))
                     {
                         Store (0x57, SMIP)
                     }

                     If (LEqual (OSFX, 0x00))
                     {
                         Store (0x58, SMIP)
                     }

                     If (LEqual (OSFX, 0x03))
                     {
                         Store (0x59, SMIP)
                     }
                 }
             }

             Device (SYSR)
             {
                 Name (_HID, EisaId ("PNP0C02"))
                 Name (_UID, 0x01)
                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0010,             // Range Minimum
                         0x0010,             // Range Maximum
                         0x01,               // Alignment
                         0x10,               // Length
                         )
                     IO (Decode16,
                         0x0022,             // Range Minimum
                         0x0022,             // Range Maximum
                         0x01,               // Alignment
                         0x1E,               // Length
                         )
                     IO (Decode16,
                         0x0044,             // Range Minimum
                         0x0044,             // Range Maximum
                         0x01,               // Alignment
                         0x1C,               // Length
                         )
                     IO (Decode16,
                         0x0062,             // Range Minimum
                         0x0062,             // Range Maximum
                         0x01,               // Alignment
                         0x02,               // Length
                         )
                     IO (Decode16,
                         0x0065,             // Range Minimum
                         0x0065,             // Range Maximum
                         0x01,               // Alignment
                         0x0B,               // Length
                         )
                     IO (Decode16,
                         0x0074,             // Range Minimum
                         0x0074,             // Range Maximum
                         0x01,               // Alignment
                         0x0C,               // Length
                         )
                     IO (Decode16,
                         0x0091,             // Range Minimum
                         0x0091,             // Range Maximum
                         0x01,               // Alignment
                         0x03,               // Length
                         )
                     IO (Decode16,
                         0x00A2,             // Range Minimum
                         0x00A2,             // Range Maximum
                         0x01,               // Alignment
                         0x1E,               // Length
                         )
                     IO (Decode16,
                         0x00E0,             // Range Minimum
                         0x00E0,             // Range Maximum
                         0x01,               // Alignment
                         0x10,               // Length
                         )
                     IO (Decode16,
                         0x04D0,             // Range Minimum
                         0x04D0,             // Range Maximum
                         0x01,               // Alignment
                         0x02,               // Length
                         )
                     IO (Decode16,
                         0x0295,             // Range Minimum
                         0x0295,             // Range Maximum
                         0x01,               // Alignment
                         0x80,               // Length
                         )
                 })
             }

             Device (PIC)
             {
                 Name (_HID, EisaId ("PNP0000"))
                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0020,             // Range Minimum
                         0x0020,             // Range Maximum
                         0x01,               // Alignment
                         0x02,               // Length
                         )
                     IO (Decode16,
                         0x00A0,             // Range Minimum
                         0x00A0,             // Range Maximum
                         0x01,               // Alignment
                         0x02,               // Length
                         )
                     IRQNoFlags ()
                         {2}
                 })
             }

             Device (DMA1)
             {
                 Name (_HID, EisaId ("PNP0200"))
                 Name (_CRS, ResourceTemplate ()
                 {
                     DMA (Compatibility, BusMaster, Transfer8, )
                         {4}
                     IO (Decode16,
                         0x0000,             // Range Minimum
                         0x0000,             // Range Maximum
                         0x01,               // Alignment
                         0x10,               // Length
                         )
                     IO (Decode16,
                         0x0080,             // Range Minimum
                         0x0080,             // Range Maximum
                         0x01,               // Alignment
                         0x11,               // Length
                         )
                     IO (Decode16,
                         0x0094,             // Range Minimum
                         0x0094,             // Range Maximum
                         0x01,               // Alignment
                         0x0C,               // Length
                         )
                     IO (Decode16,
                         0x00C0,             // Range Minimum
                         0x00C0,             // Range Maximum
                         0x01,               // Alignment
                         0x20,               // Length
                         )
                 })
             }

             Device (TMR)
             {
                 Name (_HID, EisaId ("PNP0100"))
                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0040,             // Range Minimum
                         0x0040,             // Range Maximum
                         0x01,               // Alignment
                         0x04,               // Length
                         )
                     IRQNoFlags ()
                         {0}
                 })
             }

             Device (RTC)
             {
                 Name (_HID, EisaId ("PNP0B00"))
                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0070,             // Range Minimum
                         0x0070,             // Range Maximum
                         0x04,               // Alignment
                         0x04,               // Length
                         )
                     IRQNoFlags ()
                         {8}
                 })
             }

             Device (SPKR)
             {
                 Name (_HID, EisaId ("PNP0800"))
                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0061,             // Range Minimum
                         0x0061,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                 })
             }

             Device (COPR)
             {
                 Name (_HID, EisaId ("PNP0C04"))
                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x00F0,             // Range Minimum
                         0x00F0,             // Range Maximum
                         0x01,               // Alignment
                         0x10,               // Length
                         )
                     IRQNoFlags ()
                         {13}
                 })
             }

             Device (OCU1)
             {
                 Method (_INI, 0, NotSerialized)
                 {
                     Store (OCSE, OCEB)
                     If (OCSE)
                     {
                         ShiftLeft (0x01, OCSA, UARC)
                     }
                 }

                 Name (OCEB, 0x02)
                 Name (_HID, EisaId ("PNP0501"))
                 Name (_UID, 0x03)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LNot (OCEB))
                     {
                         Return (0x00)
                     }

                     If (OCSE)
                     {
                         Return (0x0F)
                     }
                     Else
                     {
                         Return (0x0D)
                     }
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (0x00, OCSE)
                     DISD (0x10)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUF1, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             _Y08)
                         IRQNoFlags (_Y09)
                             {}
                     })
                     CreateWordField (BUF1,  
\_SB.PCI0.OCU1._CRS._Y08._MIN, IOLO)
                     CreateWordField (BUF1,  
\_SB.PCI0.OCU1._CRS._Y08._MAX, IORL)
                     CreateWordField (BUF1,  
\_SB.PCI0.OCU1._CRS._Y09._INT, IRQW)
                     Store (0x00, IOLO)
                     Store (0x00, IORL)
                     Store (0x00, IRQW)
                     If (OCSE)
                     {
                         If (LEqual (OCSA, 0x00))
                         {
                             Store (0x03F8, IOLO)
                             Store (0x03F8, IORL)
                         }

                         If (LEqual (OCSA, 0x01))
                         {
                             Store (0x02F8, IOLO)
                             Store (0x02F8, IORL)
                         }

                         If (LEqual (OCSA, 0x02))
                         {
                             Store (0x0220, IOLO)
                             Store (0x0220, IORL)
                         }

                         If (LEqual (OCSA, 0x03))
                         {
                             Store (0x0228, IOLO)
                             Store (0x0228, IORL)
                         }

                         If (LEqual (OCSA, 0x04))
                         {
                             Store (0x0238, IOLO)
                             Store (0x0238, IORL)
                         }

                         If (LEqual (OCSA, 0x05))
                         {
                             Store (0x02E8, IOLO)
                             Store (0x02E8, IORL)
                         }

                         If (LEqual (OCSA, 0x06))
                         {
                             Store (0x0338, IOLO)
                             Store (0x0338, IORL)
                         }

                         If (LEqual (OCSA, 0x07))
                         {
                             Store (0x03E8, IOLO)
                             Store (0x03E8, IORL)
                         }

                         If (LEqual (OCSI, 0x01))
                         {
                             Store (0x08, IRQW)
                         }

                         If (LEqual (OCSI, 0x02))
                         {
                             Store (0x10, IRQW)
                         }
                     }

                     Return (BUF1)
                 }

                 Name (_PRS, ResourceTemplate ()
                 {
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x03F8,             // Range Minimum
                             0x03F8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4}
                     }
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x02F8,             // Range Minimum
                             0x02F8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4}
                     }
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x03E8,             // Range Minimum
                             0x03E8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4}
                     }
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x02E8,             // Range Minimum
                             0x02E8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4}
                     }
                     EndDependentFn ()
                 })
                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x02, IOAD)
                     CreateWordField (Arg0, 0x09, IRQW)
                     If (LEqual (IOAD, 0x03F8))
                     {
                         Store (0x00, OCSA)
                     }

                     If (LEqual (IOAD, 0x02F8))
                     {
                         Store (0x01, OCSA)
                     }

                     If (LEqual (IOAD, 0x0220))
                     {
                         Store (0x02, OCSA)
                     }

                     If (LEqual (IOAD, 0x0228))
                     {
                         Store (0x03, OCSA)
                     }

                     If (LEqual (IOAD, 0x0238))
                     {
                         Store (0x04, OCSA)
                     }

                     If (LEqual (IOAD, 0x02E8))
                     {
                         Store (0x05, OCSA)
                     }

                     If (LEqual (IOAD, 0x0338))
                     {
                         Store (0x06, OCSA)
                     }

                     If (LEqual (IOAD, 0x03E8))
                     {
                         Store (0x07, OCSA)
                     }

                     If (LEqual (IRQW, 0x08))
                     {
                         Store (0x01, OCSI)
                     }

                     If (LEqual (IRQW, 0x10))
                     {
                         Store (0x02, OCSI)
                     }

                     Store (OCEB, OCSE)
                     CKIO (IOAD, 0x10)
                 }
             }

             Scope (\)
             {
                 OperationRegion (WIN1, SystemIO, 0x2E, 0x02)
                 Field (WIN1, ByteAcc, NoLock, Preserve)
                 {
                     INDP,   8,
                     DATA,   8
                 }

                 IndexField (INDP, DATA, ByteAcc, NoLock, Preserve)
                 {
                             Offset (0x02),
                     CFG,    8,
                             Offset (0x07),
                     LDN,    8,
                             Offset (0x20),
                     IDHI,   8,
                     IDLO,   8,
                     POWC,   8,
                             Offset (0x30),
                     ACTR,   8,
                             Offset (0x60),
                     IOAH,   8,
                     IOAL,   8,
                     IO2H,   8,
                     IO2L,   8,
                             Offset (0x70),
                     INTR,   8,
                             Offset (0x72),
                     INT1,   8,
                             Offset (0x74),
                     DMCH,   8,
                             Offset (0xE0),
                     CRE0,   8,
                     CRE1,   8,
                     CRE2,   8,
                     CRE3,   8,
                     CRE4,   8,
                             Offset (0xF0),
                     OPT1,   8,
                     OPT2,   8,
                     OPT3,   8,
                     OPT4,   8,
                     OPT5,   8,
                     OPT6,   8,
                     OPT7,   8,
                     OPT8,   8,
                     OPT9,   8,
                     OPTA,   8
                 }

                 Method (ENFG, 0, NotSerialized)
                 {
                     Store (0x87, INDP)
                     Store (0x87, INDP)
                 }

                 Method (EXFG, 0, NotSerialized)
                 {
                     Store (0xAA, INDP)
                 }
             }

             OperationRegion (COM1, SystemIO, 0x03F8, 0x08)
             Field (COM1, ByteAcc, NoLock, Preserve)
             {
                 P3F8,   8,
                 P3F9,   8,
                 P3FA,   8,
                 P3FB,   8,
                 P3FC,   8,
                 P3FD,   8,
                 P3FE,   8,
                 P3FF,   8
             }

             OperationRegion (COM2, SystemIO, 0x02F8, 0x08)
             Field (COM2, ByteAcc, NoLock, Preserve)
             {
                 P2F8,   8,
                 P2F9,   8,
                 P2FA,   8,
                 P2FB,   8,
                 P2FC,   8,
                 P2FD,   8,
                 P2FE,   8,
                 P2FF,   8
             }

             OperationRegion (COM3, SystemIO, 0x03E8, 0x08)
             Field (COM3, ByteAcc, NoLock, Preserve)
             {
                 P3E8,   8,
                 P3E9,   8,
                 P3EA,   8,
                 P3EB,   8,
                 P3EC,   8,
                 P3ED,   8,
                 P3EE,   8,
                 P3EF,   8
             }

             OperationRegion (COM4, SystemIO, 0x02E8, 0x08)
             Field (COM4, ByteAcc, NoLock, Preserve)
             {
                 P2E8,   8,
                 P2E9,   8,
                 P2EA,   8,
                 P2EB,   8,
                 P2EC,   8,
                 P2ED,   8,
                 P2EE,   8,
                 P2EF,   8
             }

             Method (ICOM, 1, NotSerialized)
             {
                 Store (Arg0, Local0)
                 If (LEqual (Local0, 0x03F8))
                 {
                     Store (P3FD, Local0)
                     Store (P3FD, Local0)
                     Store (0xC3, P3FA)
                     While (LNotEqual (P3FA, 0xC1))
                     {
                         Store (P3FE, Local0)
                     }
                 }
                 Else
                 {
                     If (LEqual (Local0, 0x02F8))
                     {
                         Store (P2FD, Local0)
                         Store (P2FD, Local0)
                         Store (0xC3, P2FA)
                         While (LNotEqual (P2FA, 0xC1))
                         {
                             Store (P2FE, Local0)
                         }
                     }
                     Else
                     {
                         If (LEqual (Local0, 0x03E8))
                         {
                             Store (P3ED, Local0)
                             Store (P3ED, Local0)
                             Store (0xC3, P3EA)
                             While (LNotEqual (P3EA, 0xC1))
                             {
                                 Store (P3EE, Local0)
                             }
                         }
                         Else
                         {
                             If (LEqual (Local0, 0x02E8))
                             {
                                 Store (P2ED, Local0)
                                 Store (P2ED, Local0)
                                 Store (0xC3, P2EA)
                                 While (LNotEqual (P2EA, 0xC1))
                                 {
                                     Store (P2EE, Local0)
                                 }
                             }
                         }
                     }
                 }
             }

             Device (FDC0)
             {
                 Name (_HID, EisaId ("PNP0700"))
                 Method (_STA, 0, NotSerialized)
                 {
                     ENFG ()
                     Store (Zero, LDN)
                     If (ACTR)
                     {
                         EXFG ()
                         Return (0x0F)
                     }
                     Else
                     {
                         If (LOr (IOAH, IOAL))
                         {
                             EXFG ()
                             Return (0x0D)
                         }
                         Else
                         {
                             EXFG ()
                             Return (0x00)
                         }
                     }
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     ENFG ()
                     Store (0x00, LDN)
                     Store (Zero, ACTR)
                     SLDM (DMCH, 0x04)
                     EXFG ()
                     DISD (0x03)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUF0, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x03F0,             // Range Minimum
                             0x03F0,             // Range Maximum
                             0x01,               // Alignment
                             0x06,               // Length
                             _Y0A)
                         IO (Decode16,
                             0x03F7,             // Range Minimum
                             0x03F7,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IRQNoFlags ()
                             {6}
                         DMA (Compatibility, NotBusMaster, Transfer8, )
                             {2}
                     })
                     CreateByteField (BUF0,  
\_SB.PCI0.FDC0._CRS._Y0A._MIN, IOLO)
                     CreateByteField (BUF0, 0x03, IOHI)
                     CreateByteField (BUF0,  
\_SB.PCI0.FDC0._CRS._Y0A._MAX, IORL)
                     CreateByteField (BUF0, 0x05, IORH)
                     ENFG ()
                     EXFG ()
                     Return (BUF0)
                 }

                 Name (_PRS, ResourceTemplate ()
                 {
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x03F0,             // Range Minimum
                             0x03F0,             // Range Maximum
                             0x01,               // Alignment
                             0x06,               // Length
                             )
                         IO (Decode16,
                             0x03F7,             // Range Minimum
                             0x03F7,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IRQNoFlags ()
                             {6}
                         DMA (Compatibility, NotBusMaster, Transfer8, )
                             {2}
                     }
                     EndDependentFn ()
                 })
                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateByteField (Arg0, 0x02, IOLO)
                     CreateByteField (Arg0, 0x03, IOHI)
                     CreateWordField (Arg0, 0x02, IOAD)
                     CreateWordField (Arg0, 0x19, IRQL)
                     CreateByteField (Arg0, 0x1C, DMAV)
                     ENFG ()
                     Store (Zero, LDN)
                     Store (One, ACTR)
                     SLDM (DMCH, DMCH)
                     EXFG ()
                     CKIO (IOAD, 0x03)
                 }
             }

             Device (UAR1)
             {
                 Name (_HID, EisaId ("PNP0501"))
                 Name (_UID, 0x01)
                 Method (_STA, 0, NotSerialized)
                 {
                     ENFG ()
                     Store (0x02, LDN)
                     If (ACTR)
                     {
                         EXFG ()
                         Return (0x0F)
                     }
                     Else
                     {
                         If (LOr (IOAH, IOAL))
                         {
                             EXFG ()
                             Return (0x0D)
                         }
                         Else
                         {
                             EXFG ()
                             Return (0x00)
                         }
                     }

                     EXFG ()
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     ENFG ()
                     Store (0x02, LDN)
                     Store (Zero, ACTR)
                     EXFG ()
                     DISD (0x00)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUF1, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             _Y0B)
                         IRQNoFlags (_Y0C)
                             {}
                     })
                     CreateByteField (BUF1,  
\_SB.PCI0.UAR1._CRS._Y0B._MIN, IOLO)
                     CreateByteField (BUF1, 0x03, IOHI)
                     CreateByteField (BUF1,  
\_SB.PCI0.UAR1._CRS._Y0B._MAX, IORL)
                     CreateByteField (BUF1, 0x05, IORH)
                     CreateWordField (BUF1,  
\_SB.PCI0.UAR1._CRS._Y0C._INT, IRQW)
                     ENFG ()
                     Store (0x02, LDN)
                     Store (IOAL, IOLO)
                     Store (IOAL, IORL)
                     Store (IOAH, IOHI)
                     Store (IOAH, IORH)
                     Store (One, Local0)
                     ShiftLeft (Local0, INTR, IRQW)
                     EXFG ()
                     Return (BUF1)
                 }

                 Name (_PRS, ResourceTemplate ()
                 {
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x03F8,             // Range Minimum
                             0x03F8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4,5,7,9,10,11,12}
                     }
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x02F8,             // Range Minimum
                             0x02F8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4,5,7,9,10,11,12}
                     }
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x03E8,             // Range Minimum
                             0x03E8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4,5,7,9,10,11,12}
                     }
                     StartDependentFnNoPri ()
                     {
                         IO (Decode16,
                             0x02E8,             // Range Minimum
                             0x02E8,             // Range Maximum
                             0x01,               // Alignment
                             0x08,               // Length
                             )
                         IRQNoFlags ()
                             {3,4,5,7,9,10,11,12}
                     }
                     EndDependentFn ()
                 })
                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateByteField (Arg0, 0x02, IOLO)
                     CreateByteField (Arg0, 0x03, IOHI)
                     CreateWordField (Arg0, 0x02, IOAD)
                     CreateWordField (Arg0, 0x09, IRQW)
                     ENFG ()
                     Store (0x02, LDN)
                     Store (One, ACTR)
                     Store (IOLO, IOAL)
                     Store (IOHI, IOAH)
                     FindSetRightBit (IRQW, Local0)
                     Subtract (Local0, 0x01, INTR)
                     EXFG ()
                     CKIO (IOAD, 0x00)
                 }
             }

             OperationRegion (KBCT, SystemIO, 0x60, 0x05)
             Field (KBCT, ByteAcc, NoLock, Preserve)
             {
                 P060,   8,
                         Offset (0x04),
                 P064,   8
             }

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

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUF1, ResourceTemplate ()
                     {
                         IRQNoFlags ()
                             {12}
                     })
                     Name (BUF2, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0060,             // Range Minimum
                             0x0060,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0064,             // Range Minimum
                             0x0064,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IRQNoFlags ()
                             {12}
                     })
                     If (LEqual (KBDI, 0x01))
                     {
                         If (LEqual (OSFL, 0x02))
                         {
                             Return (BUF1)
                         }

                         If (LEqual (OSFL, 0x01))
                         {
                             Return (BUF1)
                         }
                         Else
                         {
                             Return (BUF2)
                         }
                     }
                     Else
                     {
                         Return (BUF1)
                     }
                 }
             }

             Device (PS2K)
             {
                 Name (_HID, EisaId ("PNP0303"))
                 Name (_CID, 0x0B03D041)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LEqual (KBDI, 0x01))
                     {
                         Return (0x00)
                     }
                     Else
                     {
                         Return (0x0F)
                     }
                 }

                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0060,             // Range Minimum
                         0x0060,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                     IO (Decode16,
                         0x0064,             // Range Minimum
                         0x0064,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                     IRQNoFlags ()
                         {1}
                 })
             }

             Device (PSMR)
             {
                 Name (_HID, EisaId ("PNP0C02"))
                 Name (_UID, 0x03)
                 Method (_STA, 0, NotSerialized)
                 {
                     If (LEqual (KBDI, 0x00))
                     {
                         Return (0x00)
                     }

                     If (LEqual (PS2F, 0x00))
                     {
                         If (LEqual (OSFL, 0x02))
                         {
                             Return (0x0F)
                         }

                         If (LEqual (OSFL, 0x01))
                         {
                             Return (0x0F)
                         }

                         Return (0x00)
                     }

                     Return (0x00)
                 }

                 Name (_CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0060,             // Range Minimum
                         0x0060,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                     IO (Decode16,
                         0x0064,             // Range Minimum
                         0x0064,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                 })
             }

             Scope (\)
             {
                 Method (PLED, 1, NotSerialized)
                 {
                     ENFG ()
                     Store (0x07, LDN)
                     Store (0x01, ACTR)
                     And (OPT1, 0xFE, Local0)
                     Store (Local0, OPT1)
                     And (OPT3, 0xFE, Local0)
                     Store (Local0, OPT3)
                     And (OPT2, 0xFE, Local0)
                     Or (Local0, Arg0, OPT2)
                     EXFG ()
                 }
             }

             Scope (\)
             {
                 Method (SLED, 1, NotSerialized)
                 {
                     ENFG ()
                     Store (0x09, LDN)
                     Store (0x04, ACTR)
                     And (OPT5, 0xFD, Local0)
                     Store (Local0, OPT5)
                     And (OPT7, 0xFD, Local0)
                     Store (Local0, OPT7)
                     And (OPT6, 0xFD, Local0)
                     Or (Local0, Arg0, OPT6)
                     EXFG ()
                 }
             }

             Scope (\)
             {
                 Method (SFOF, 0, NotSerialized)
                 {
                     ENFG ()
                     EXFG ()
                 }

                 Method (SFON, 0, NotSerialized)
                 {
                     ENFG ()
                     EXFG ()
                 }
             }

             Method (\_SB.PCI0.UAR1._PRW, 0, NotSerialized)
             {
                 Return (Package (0x02)
                 {
                     0x03,
                     0x05
                 })
             }

             Method (\_SB.PCI0.PS2K._PRW, 0, NotSerialized)
             {
                 Return (Package (0x02)
                 {
                     0x10,
                     0x04
                 })
             }

             Method (\_SB.PCI0.PS2M._PRW, 0, NotSerialized)
             {
                 Return (Package (0x02)
                 {
                     0x10,
                     0x04
                 })
             }

             Method (PS2W, 0, NotSerialized)
             {
                 ENFG ()
                 Store (0x0A, LDN)
                 Store (OPT4, Local0)
                 If (And (Local0, 0x20))
                 {
                     Notify (\_SB.PCI0.PS2M, 0x02)
                 }

                 If (And (Local0, 0x10))
                 {
                     Notify (\_SB.PCI0.PS2K, 0x02)
                 }

                 Store (Local0, OPT4)
                 ENFG ()
             }

             Method (\_SB.PCI0.PS2M._PSW, 1, NotSerialized)
             {
                 ENFG ()
                 Store (0x0A, LDN)
                 If (Arg0)
                 {
                     Or (OPT7, 0x20, OPT7)
                 }
                 Else
                 {
                     And (OPT7, 0xDF, OPT7)
                 }

                 EXFG ()
             }

             Method (\_SB.PCI0.PS2K._PSW, 1, NotSerialized)
             {
                 ENFG ()
                 Store (0x0A, LDN)
                 If (Arg0)
                 {
                     Or (OPT7, 0x10, OPT7)
                 }
                 Else
                 {
                     And (OPT7, 0xEF, OPT7)
                 }

                 EXFG ()
             }
         }

         Device (MEM)
         {
             Name (_HID, EisaId ("PNP0C01"))
             Method (_CRS, 0, NotSerialized)
             {
                 Name (BUF0, ResourceTemplate ()
                 {
                     Memory32Fixed (ReadWrite,
                         0x000F0000,         // Address Base
                         0x00004000,         // Address Length
                         _Y0E)
                     Memory32Fixed (ReadWrite,
                         0x000F4000,         // Address Base
                         0x00004000,         // Address Length
                         _Y0F)
                     Memory32Fixed (ReadWrite,
                         0x000F8000,         // Address Base
                         0x00004000,         // Address Length
                         _Y10)
                     Memory32Fixed (ReadWrite,
                         0x000FC000,         // Address Base
                         0x00004000,         // Address Length
                         _Y11)
                     Memory32Fixed (ReadWrite,
                         0x00000000,         // Address Base
                         0x00010000,         // Address Length
                         _Y0D)
                     Memory32Fixed (ReadWrite,
                         0xFFFF0000,         // Address Base
                         0x00010000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0x00000000,         // Address Base
                         0x000A0000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0x00100000,         // Address Base
                         0x00000000,         // Address Length
                         _Y12)
                     Memory32Fixed (ReadWrite,
                         0xFEC00000,         // Address Base
                         0x00001000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0xFEE00000,         // Address Base
                         0x00100000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0xFEFFF000,         // Address Base
                         0x00001000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0xFFF80000,         // Address Base
                         0x00001000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0xFFF90000,         // Address Base
                         0x00030000,         // Address Length
                         )
                     Memory32Fixed (ReadWrite,
                         0xFFFED000,         // Address Base
                         0x00003000,         // Address Length
                         )
                 })
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._BAS, ACMM)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._BAS, RMA1)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._LEN, RSS1)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._BAS, RMA2)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._LEN, RSS2)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._BAS, RMA3)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._LEN, RSS3)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._BAS, RMA4)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._LEN, RSS4)
                 CreateDWordField (BUF0, \_SB.MEM._CRS._Y12._LEN, EXTM)
                 Subtract (AMEM, 0x00100000, EXTM)
                 If (LNotEqual (ROM1, Zero))
                 {
                     Store (RMA1, RMA2)
                     ShiftLeft (ROM1, 0x08, Local0)
                     Store (Local0, RMA1)
                     ShiftLeft (RMS1, 0x08, Local0)
                     Store (Local0, RSS1)
                     Store (0x8000, RSS2)
                 }

                 If (LNotEqual (ROM2, Zero))
                 {
                     Store (RMA2, RMA3)
                     ShiftLeft (ROM2, 0x08, Local0)
                     Store (Local0, RMA2)
                     ShiftLeft (RMS2, 0x08, Local0)
                     Store (Local0, RSS2)
                     Store (0xC000, RSS3)
                 }

                 If (LNotEqual (ROM3, Zero))
                 {
                     Store (RMA3, RMA4)
                     ShiftLeft (ROM3, 0x08, Local0)
                     Store (Local0, RMA3)
                     ShiftLeft (RMS3, 0x08, Local0)
                     Store (Local0, RSS3)
                     Store (0x00010000, RSS4)
                 }

                 Store (AMEM, ACMM)
                 Return (BUF0)
             }
         }

         Device (\_SB.PCI0.EXPL)
         {
             Name (_HID, EisaId ("PNP0C02"))
             Name (_UID, 0x04)
             Method (_CRS, 0, NotSerialized)
             {
                 Name (BUF0, ResourceTemplate ()
                 {
                     Memory32Fixed (ReadWrite,
                         0xE0000000,         // Address Base
                         0x10000000,         // Address Length
                         )
                 })
                 Return (BUF0)
             }
         }
     }

     OperationRegion (TEMM, SystemMemory, 0x000FF810, 0x0C)
     Field (TEMM, WordAcc, NoLock, Preserve)
     {
         TP1H,   16,
         TP1L,   16,
         TP2H,   16,
         TP2L,   16,
         TRPC,   16,
         SENF,   16
     }

     Name (TVAR, Buffer (0x05)
     {
         0x00, 0x00, 0x00, 0x00, 0x00
     })
     CreateByteField (TVAR, 0x00, PLCY)
     CreateWordField (TVAR, 0x01, CTOS)
     CreateWordField (TVAR, 0x03, CTHY)
     Name (TBUF, Buffer (0x04)
     {
         0x00, 0x00, 0x00, 0x00
     })
     CreateByteField (TBUF, 0x00, DB00)
     CreateByteField (TBUF, 0x01, DB01)
     CreateWordField (TBUF, 0x00, DW00)
     CreateWordField (TBUF, 0x02, DW01)
     CreateDWordField (TBUF, 0x00, DATD)
     OperationRegion (SEN1, SystemIO, 0x0295, 0x02)
     Field (SEN1, ByteAcc, NoLock, Preserve)
     {
         SEI0,   8,
         SED0,   8
     }

     Method (STOS, 3, NotSerialized)
     {
         If (LLess (Arg2, 0x0AAC))
         {
             Subtract (Arg2, 0x0AAC, Local0)
             Divide (Local0, 0x0A, Local0)
         }
         Else
         {
             Subtract (0x0AAC, Arg2, Local0)
             Divide (Local0, 0x0A, Local0)
             Add (Local0, 0x80, Local0)
         }

         WSEN (0x4E, 0x01)
         WSEN (0x53, Local0)
     }

     Method (STHY, 3, NotSerialized)
     {
         If (LLess (Arg2, 0x0AAC))
         {
             Subtract (Arg2, 0x0AAC, Local0)
             Divide (Local0, 0x0A, Local0)
         }
         Else
         {
             Subtract (0x0AAC, Arg2, Local0)
             Divide (Local0, 0x0A, Local0)
             Add (Local0, 0x80, Local0)
         }

         WSEN (0x4E, 0x01)
         WSEN (0x54, Local0)
     }

     Method (RTMP, 0, NotSerialized)
     {
         WSEN (0x4E, 0x01)
         Store (RSEN (0x50), Local0)
         If (LEqual (Local0, 0x7F))
         {
             Return (0x0AAC)
         }

         If (LLess (Local0, 0x80))
         {
             Multiply (Local0, 0x0A, Local0)
             Add (Local0, 0x0AAC, Local0)
         }
         Else
         {
             Subtract (Local0, 0x80, Local0)
             Multiply (Local0, 0x0A, Local0)
             Subtract (0x0AAC, Local0, Local0)
         }

         Return (0x0C3C)
         If (LEqual (SSHU, 0x01))
         {
             Return (0x0C3C)
         }
         Else
         {
             Return (Local0)
         }
     }

     Method (WSEN, 2, NotSerialized)
     {
         Store (Arg0, SEI0)
         Store (Arg1, SED0)
     }

     Method (RSEN, 1, NotSerialized)
     {
         Store (Arg0, SEI0)
         Store (SED0, Local0)
         Return (Local0)
     }

     Method (SFAN, 1, NotSerialized)
     {
         If (LEqual (Arg0, Zero))
         {
             FOFF ()
         }
         Else
         {
             FON ()
         }
     }

     Method (FON, 0, NotSerialized)
     {
         WSEN (0x4E, 0x00)
         WSEN (0x01, 0xFF)
         WSEN (0x03, 0xFF)
     }

     Method (FOFF, 0, NotSerialized)
     {
         WSEN (0x4E, 0x00)
         WSEN (0x01, 0x00)
         WSEN (0x03, 0x00)
     }

     OperationRegion (SM00, SystemIO, \_SB.PCI0.SMB0.SMBB (), 0x06)
     Field (SM00, ByteAcc, NoLock, Preserve)
     {
         CTLR,   8,
         HSTS,   8,
         ADDR,   8,
         CMDR,   8,
         DAT0,   8,
         DAT1,   8
     }

     Method (SWFS, 0, NotSerialized)
     {
         And (HSTS, 0x80, Local0)
         While (LEqual (Local0, Zero))
         {
             Stall (0x01)
             And (HSTS, 0x80, Local0)
         }
     }

     Method (SRBY, 2, NotSerialized)
     {
         Store (Arg0, ADDR)
         Store (Arg1, CMDR)
         Store (0x04, CTLR)
         SWFS ()
     }

     Method (WBYT, 3, NotSerialized)
     {
         Store (Arg0, ADDR)
         Store (Arg1, CMDR)
         Store (Arg2, DAT0)
         Store (0x06, CTLR)
         SWFS ()
     }

     Method (SMWW, 4, NotSerialized)
     {
         Store (Arg0, ADDR)
         Store (Arg1, CMDR)
         Store (Arg2, DAT0)
         Store (Arg3, DAT1)
         Store (0x08, CTLR)
         SWFS ()
     }

     Method (RBYT, 2, NotSerialized)
     {
         Store (Arg0, ADDR)
         Store (Arg1, CMDR)
         Store (0x07, CTLR)
         SWFS ()
         Return (DAT0)
     }

     Method (SMRW, 2, NotSerialized)
     {
         Store (Arg0, ADDR)
         Store (Arg1, CMDR)
         Store (0x09, CTLR)
         SWFS ()
         Store (DAT0, Local0)
         ShiftLeft (DAT1, 0x08, Local1)
         Or (Local0, Local1, Local2)
         Return (Local2)
     }

     Scope (\_TZ)
     {
         Device (FAN)
         {
             Name (_HID, EisaId ("PNP0C0B"))
             Method (_INI, 0, NotSerialized)
             {
                 Store (TP1H, CTOS)
                 Store (TP1L, CTHY)
             }
         }

         ThermalZone (THRM)
         {
             Name (_AL0, Package (0x01)
             {
                 FAN
             })
             Method (_AC0, 0, NotSerialized)
             {
                 If (Or (PLCY, PLCY, Local7))
                 {
                     Return (TP2H)
                 }
                 Else
                 {
                     Return (TP1H)
                 }
             }

             Name (_PSL, Package (0x01)
             {
                 \_PR.CPU0
             })
             Name (_TSP, 0x3C)
             Name (_TC1, 0x04)
             Name (_TC2, 0x03)
             Method (_PSV, 0, NotSerialized)
             {
                 If (Or (PLCY, PLCY, Local7))
                 {
                     Return (TP1H)
                 }
                 Else
                 {
                     Return (TP2H)
                 }
             }

             Method (_CRT, 0, NotSerialized)
             {
                 Return (TRPC)
             }

             Method (_TMP, 0, NotSerialized)
             {
                 And (SENF, 0x01, Local6)
                 If (LEqual (Local6, 0x01))
                 {
                     Return (RTMP ())
                 }
                 Else
                 {
                     Return (0x0B86)
                 }
             }

             Method (_SCP, 1, NotSerialized)
             {
                 If (Arg0)
                 {
                     Store (One, PLCY)
                 }
                 Else
                 {
                     Store (Zero, PLCY)
                 }

                 Notify (\_TZ.THRM, 0x81)
             }

             Method (STMP, 2, NotSerialized)
             {
                 Store (Arg1, DW00)
                 If (Arg0)
                 {
                     STHY (DB00, DB01, DW00)
                 }
                 Else
                 {
                     STOS (DB00, DB01, DW00)
                 }
             }
         }
     }

     Scope (\_PR.CPU0)
     {
         Name (_PCT, Package (0x02)
         {
             ResourceTemplate ()
             {
                 Register (FFixedHW,
                     0x00,               // Bit Width
                     0x00,               // Bit Offset
                     0x0000000000000000, // Address
                     ,)
             },

             ResourceTemplate ()
             {
                 Register (FFixedHW,
                     0x00,               // Bit Width
                     0x00,               // Bit Offset
                     0x0000000000000000, // Address
                     ,)
             }
         })
         Name (_PSS, Package (0x05)
         {
             Package (0x06)
             {
                 0x00000960,
                 0x0000FDE8,
                 0x00000064,
                 0x00000009,
                 0xE8202B10,
                 0x00000310
             },

             Package (0x06)
             {
                 0x00000898,
                 0x0000D680,
                 0x00000064,
                 0x00000009,
                 0xE8202B8E,
                 0x0000038E
             },

             Package (0x06)
             {
                 0x000007D0,
                 0x0000B316,
                 0x00000064,
                 0x00000009,
                 0xE8202C0C,
                 0x0000040C
             },

             Package (0x06)
             {
                 0x00000708,
                 0x0000A12E,
                 0x00000064,
                 0x00000009,
                 0xE8202C0A,
                 0x0000040A
             },

             Package (0x06)
             {
                 0x000003E8,
                 0x000051ED,
                 0x00000064,
                 0x00000009,
                 0xE8202C82,
                 0x00000482
             }
         })
         Name (_PPC, 0x00)
         Name (_PSD, Package (0x01)
         {
             Package (0x05)
             {
                 0x05,
                 0x00,
                 0x00000000,
                 0x000000FD,
                 0x00000002
             }
         })
     }

     Scope (\_PR.CPU1)
     {
         Name (_PCT, Package (0x02)
         {
             ResourceTemplate ()
             {
                 Register (FFixedHW,
                     0x00,               // Bit Width
                     0x00,               // Bit Offset
                     0x0000000000000000, // Address
                     ,)
             },

             ResourceTemplate ()
             {
                 Register (FFixedHW,
                     0x00,               // Bit Width
                     0x00,               // Bit Offset
                     0x0000000000000000, // Address
                     ,)
             }
         })
         Name (_PSS, Package (0x05)
         {
             Package (0x06)
             {
                 0x00000960,
                 0x0000FDE8,
                 0x00000064,
                 0x00000009,
                 0xE8202B10,
                 0x00000310
             },

             Package (0x06)
             {
                 0x00000898,
                 0x0000D680,
                 0x00000064,
                 0x00000009,
                 0xE8202B8E,
                 0x0000038E
             },

             Package (0x06)
             {
                 0x000007D0,
                 0x0000B316,
                 0x00000064,
                 0x00000009,
                 0xE8202C0C,
                 0x0000040C
             },

             Package (0x06)
             {
                 0x00000708,
                 0x0000A12E,
                 0x00000064,
                 0x00000009,
                 0xE8202C0A,
                 0x0000040A
             },

             Package (0x06)
             {
                 0x000003E8,
                 0x000051ED,
                 0x00000064,
                 0x00000009,
                 0xE8202C82,
                 0x00000482
             }
         })
         Name (_PPC, 0x00)
         Name (_PSD, Package (0x01)
         {
             Package (0x05)
             {
                 0x05,
                 0x00,
                 0x00000000,
                 0x000000FD,
                 0x00000002
             }
         })
     }
}


On 27/05/2009, at 8:20 PM, Eygene Ryabinkin wrote:

> Timothy, good day.
>
> Wed, May 27, 2009 at 05:45:02PM +1000, Timothy Mukaibo wrote:
>> db> bt
>> Tracing pid 0 tid 100000 td 0fffffff80bd2ae0
>> kdb_enter() at kdb_enter+0x3d
>> panic() at panic+0x17b
>> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x727
>> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt 
>> +0x1a9
>> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
>> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
>> pci_add_resources() at pci_add_resources+0x147
>> pci_add_children() at pci_add_children+0x10e
>> acpi_pci_attach() at acpi_pci_attach+0xcd
>> device_attach() at device_attach+0x69
>> bus_generic_attach() at bus_generic_attach+0x1a
>> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
>> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1a5
>> device_attach() at device_attach+0x69
>> bus_generic_attach() at bus_generic_attach+0x1a
>> acpi_attach() at acpi_attach+0xa50
>> device_attach() at device_attach+0x69
>> bus_generic_attach() at bus_generic_attach+0x1a
>> device_attach() at device_attach+0x69
>> root_bus_configure() at root_bus_configure+0x28
>> configure() at configure+0xa
>> mi_startup() at mi_startup+0x59
>> btext() at biext+0x2c
>
> OK, will try to look at it more closely.
>
>> I'll try your patch.
>
> Please, note that the patch just adds verbosity, currently it won't  
> heal
> anything.
>
> Still, the output from 'acpidump -dt' might be interesting.
> -- 
> Eygene
Received on Wed May 27 2009 - 09:06:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:48 UTC