Jump to content
3 posts in this topic

Recommended Posts

Hello,

 

just bought the DWA-547 wireless adapter and got it working in Windows 7. However it is not recognized in OS X 10.6.2 (system profiler, airport utility) I can find it though in lspci, that should be a good starter, right? Does it mean that my DSDT is alright in terms of pci connectivity? I searched this forum and found some solutions but none of them are working for me- disabling Azalia codec in BIOS, I'm already running a 32 bit kernel and AtherosFix.kext-nothing brought the cure. Here's my DSDT and my lspci output, thanks for hints!:

 

Last login: Fri Apr 9 09:16:26 on console

H*******:~ p*****$ lspci

00:00.0 Host bridge: Intel Corporation Clarksfield/Lynnfield DMI (rev 11)

00:03.0 PCI bridge: Intel Corporation Clarksfield/Lynnfield PCI Express Root Port 1 (rev 11)

00:08.0 System peripheral: Intel Corporation Clarksfield/Lynnfield System Management Registers (rev 11)

00:08.1 System peripheral: Intel Corporation Clarksfield/Lynnfield Semaphore and Scratchpad Registers (rev 11)

00:08.2 System peripheral: Intel Corporation Clarksfield/Lynnfield System Control and Status Registers (rev 11)

00:08.3 System peripheral: Intel Corporation Clarksfield/Lynnfield Miscellaneous Registers (rev 11)

00:10.0 System peripheral: Intel Corporation QPI Link (rev 11)

00:10.1 System peripheral: Intel Corporation QPI Routing and Protocol Registers (rev 11)

00:1a.0 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1a.1 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1a.2 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1a.7 USB Controller: Intel Corporation Ibex Peak USB2 Enhanced Host Controller (rev 05)

00:1b.0 Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 05)

00:1c.0 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 1 (rev 05)

00:1c.6 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 7 (rev 05)

00:1d.0 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1d.1 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1d.2 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1d.3 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 05)

00:1d.7 USB Controller: Intel Corporation Ibex Peak USB2 Enhanced Host Controller (rev 05)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5)

00:1f.0 ISA bridge: Intel Corporation Ibex Peak LPC Interface Controller (rev 05)

00:1f.2 SATA controller: Intel Corporation Ibex Peak 6 port SATA AHCI Controller (rev 05)

00:1f.3 SMBus: Intel Corporation Ibex Peak SMBus Controller (rev 05)

01:00.0 VGA compatible controller: ATI Technologies Inc RV790 [Radeon HD 4800 Series]

01:00.1 Audio device: ATI Technologies Inc HD48x0 audio

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

04:02.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)

04:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)

 

* Intel ACPI Component Architecture
* AML Disassembler version 20090730
*
* Disassembly of ./dsdt.aml, Fri Apr  9 10:10:26 2010
*
*
* Original Table Header:
*     Signature        "DSDT"
*     Length           0x000061D0 (25040)
*     Revision         0x01 **** ACPI 1.0, no 64-bit math support
*     Checksum         0xDE
*     OEM ID           "GBT   "
*     OEM Table ID     "GBTUACPI"
*     OEM Revision     0x00001000 (4096)
*     Compiler ID      "INTL"
*     Compiler Version 0x20090730 (537462576)
*/
DefinitionBlock ("./dsdt.aml", "DSDT", 1, "GBT   ", "GBTUACPI", 0x00001000)
{
   Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
       Processor (CPU4, 0x04, 0x00000410, 0x06) {}
       Processor (CPU5, 0x05, 0x00000410, 0x06) {}
       Processor (CPU6, 0x06, 0x00000410, 0x06) {}
       Processor (CPU7, 0x07, 0x00000410, 0x06) {}
   }

   Scope (_PR.CPU0)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (Package (0x0D)
           {
               Package (0x06)
               {
                   0x0A65, 
                   0x00017318, 
                   0x0A, 
                   0x0A, 
                   0x15, 
                   0x15
               }, 

               Package (0x06)
               {
                   0x0A64, 
                   0x00017318, 
                   0x0A, 
                   0x0A, 
                   0x14, 
                   0x14
               }, 

               Package (0x06)
               {
                   0x09DF, 
                   0x000130B0, 
                   0x0A, 
                   0x0A, 
                   0x13, 
                   0x13
               }, 

               Package (0x06)
               {
                   0x095A, 
                   0x00011170, 
                   0x0A, 
                   0x0A, 
                   0x12, 
                   0x12
               }, 

               Package (0x06)
               {
                   0x08D5, 
                   0xDEA8, 
                   0x0A, 
                   0x0A, 
                   0x11, 
                   0x11
               }, 

               Package (0x06)
               {
                   0x0850, 
                   0xC738, 
                   0x0A, 
                   0x0A, 
                   0x10, 
                   0x10
               }, 

               Package (0x06)
               {
                   0x07CB, 
                   0xA028, 
                   0x0A, 
                   0x0A, 
                   0x0F, 
                   0x0F
               }, 

               Package (0x06)
               {
                   0x0746, 
                   0x8CA0, 
                   0x0A, 
                   0x0A, 
                   0x0E, 
                   0x0E
               }, 

               Package (0x06)
               {
                   0x06C1, 
                   0x6D60, 
                   0x0A, 
                   0x0A, 
                   0x0D, 
                   0x0D
               }, 

               Package (0x06)
               {
                   0x063C, 
                   0x61A8, 
                   0x0A, 
                   0x0A, 
                   0x0C, 
                   0x0C
               }, 

               Package (0x06)
               {
                   0x05B7, 
                   0x4A38, 
                   0x0A, 
                   0x0A, 
                   0x0B, 
                   0x0B
               }, 

               Package (0x06)
               {
                   0x0532, 
                   0x4268, 
                   0x0A, 
                   0x0A, 
                   0x0A, 
                   0x0A
               }, 

               Package (0x06)
               {
                   0x04AD, 
                   0x32C8, 
                   0x0A, 
                   0x0A, 
                   0x09, 
                   0x09
               }
           })
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (Package (0x05)
           {
               0x05, 
               Zero, 
               Zero, 
               0xFC, 
               0x04
           })
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x02)
           {
               One, 
               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x01,               // Bit Width
                           0x02,               // Bit Offset
                           0x0000000000000000, // Address
                           0x01,               // Access Size
                           )
                   }, 

                   One, 
                   0x9D, 
                   0x03E8
               }
           })
       }
   }

   Scope (_PR.CPU1)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (^^CPU0._PSS ())
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (^^CPU0._PSD ())
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x01,               // Bit Width
                           0x02,               // Bit Offset
                           0x0000000000000000, // Address
                           ,)
                   }, 

                   One, 
                   Zero, 
                   0x03E8
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000414, // Address
                           ,)
                   }, 

                   0x02, 
                   One, 
                   0x01F4
               }, 

               Package (0x04)
               {
                   ResourceTemplate ()
                   {
                       Register (FFixedHW, 
                           0x08,               // Bit Width
                           0x00,               // Bit Offset
                           0x0000000000000415, // Address
                           ,)
                   }, 

                   0x03, 
                   0x55, 
                   0xFA
               }
           })
       }
   }

   Scope (_PR.CPU2)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (^^CPU0._PSS ())
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (^^CPU0._PSD ())
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (^^CPU1._CST ())
       }
   }

   Scope (_PR.CPU3)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (^^CPU0._PSS ())
       }

       Method (_PSD, 0, NotSerialized)
       {
           Return (^^CPU0._PSD ())
       }

       Method (_CST, 0, NotSerialized)
       {
           Return (^^CPU1._CST ())
       }
   }

   Name (_S0, Package (0x04)
   {
       Zero, 
       Zero, 
       Zero, 
       Zero
   })
   Name (SS1, Package (0x04)
   {
       One, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S3, Package (0x04)
   {
       0x05, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S4, Package (0x04)
   {
       0x06, 
       Zero, 
       Zero, 
       Zero
   })
   Name (_S5, Package (0x04)
   {
       0x07, 
       Zero, 
       Zero, 
       Zero
   })
   Name (FLAG, Zero)
   Name (STAT, Zero)
   OperationRegion (SMOD, SystemMemory, 0x000FF840, One)
   Field (SMOD, ByteAcc, NoLock, Preserve)
   {
           ,   7, 
       SUSF,   1
   }

   OperationRegion (DEBG, SystemIO, 0x80, One)
   Field (DEBG, ByteAcc, NoLock, Preserve)
   {
       DBG1,   8
   }

   OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
   Field (RCRB, DWordAcc, Lock, Preserve)
   {
               Offset (0x3404), 
           ,   7, 
       HPTF,   1
   }

   OperationRegion (ELKM, SystemMemory, 0x000FFFEA, One)
   Field (ELKM, ByteAcc, NoLock, Preserve)
   {
           ,   1, 
           ,   1, 
       ELSO,   1, 
           ,   1, 
           ,   1, 
           ,   1, 
           ,   1
   }

   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 (SMIC, SystemIO, 0xB2, One)
   Field (SMIC, ByteAcc, NoLock, Preserve)
   {
       SCP,    8
   }

   OperationRegion (GP2C, SystemIO, 0x042C, 0x02)
   Field (GP2C, ByteAcc, NoLock, Preserve)
   {
       G2C1,   8, 
       G2C2,   8
   }

   OperationRegion (APMP, SystemIO, 0xB2, 0x02)
   Field (APMP, ByteAcc, NoLock, Preserve)
   {
       APMC,   8, 
       APMD,   8
   }

   OperationRegion (AGPS, SystemIO, 0x0438, 0x04)
   Field (AGPS, ByteAcc, NoLock, Preserve)
   {
       GPSE,   16, 
       GPSS,   16
   }

   OperationRegion (GPCN, SystemIO, 0x0442, One)
   Field (GPCN, ByteAcc, NoLock, Preserve)
   {
           ,   1, 
       SWGC,   1, 
               Offset (0x01)
   }

   Name (OSFX, One)
   Name (OSFL, One)
   Method (STRC, 2, NotSerialized)
   {
       If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
       {
           Return (Zero)
       }

       Add (SizeOf (Arg0), One, 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 (INFO, SystemMemory, 0x000FF840, One)
   Field (INFO, ByteAcc, NoLock, Preserve)
   {
       KBDI,   1, 
       RTCW,   1, 
       PS2F,   1, 
       IRFL,   2, 
       DISE,   1, 
       SSHU,   1
   }

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

   Method (_PTS, 1, NotSerialized)
   {
       Or (Arg0, 0xF0, Local0)
       Store (Local0, DBG1)
       OSTP ()
       If (LEqual (Arg0, One)) {}
       If (LEqual (Arg0, 0x03)) {}
       If (LEqual (Arg0, 0x05))
       {
           Store (0x99, SMIP)
       }

       If (LEqual (Arg0, 0x04))
       {
           If (LNot (PICF))
           {
               Sleep (0x64)
           }
       }
   }

   Method (DTGP, 5, NotSerialized)
   {
       If (LEqual (Arg0, Buffer (0x10)
               {
                   /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                   /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
               }))
       {
           If (LEqual (Arg1, One))
           {
               If (LEqual (Arg2, Zero))
               {
                   Store (Buffer (One)
                       {
                           0x03
                       }, Arg4)
                   Return (One)
               }

               If (LEqual (Arg2, One))
               {
                   Return (One)
               }
           }
       }

       Store (Buffer (One)
           {
               0x00
           }, Arg4)
       Return (Zero)
   }

   Device (BUS0)
   {
       Name (_CID, "smbus")
       Name (_ADR, Zero)
       Device (DVL0)
       {
           Name (_ADR, 0x57)
           Name (_CID, "diagsvault")
           Method (_DSM, 4, NotSerialized)
           {
               Store (Package (0x03)
                   {
                       "address", 
                       0x57, 
                       Buffer (One)
                       {
                           0x00
                       }
                   }, Local0)
               DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
               Return (Local0)
           }
       }
   }

   Method (_WAK, 1, NotSerialized)
   {
       Store (0xFF, DBG1)
       If (LEqual (Arg0, 0x04))
       {
           If (LEqual (OSFL, Zero))
           {
               If (LEqual (OSFX, 0x03))
               {
                   Store (0x59, SMIP)
               }
               Else
               {
                   Store (0x58, SMIP)
               }
           }

           If (LEqual (OSFL, One))
           {
               Store (0x56, SMIP)
           }

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

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

       If (LEqual (Arg0, One)) {}
       If (OSFL)
       {
           Notify (\_SB.PWRB, 0x02)
       }
       Else
       {
           If (LEqual (RTCW, Zero))
           {
               Notify (\_SB.PWRB, 0x02)
           }
       }

       Notify (\_SB.PCI0.UHC1, Zero)
       Notify (\_SB.PCI0.UHC2, Zero)
       Notify (\_SB.PCI0.UHC3, Zero)
       Notify (\_SB.PCI0.UHC4, Zero)
       Notify (\_SB.PCI0.US31, Zero)
       Notify (\_SB.PCI0.UHC5, Zero)
       Notify (\_SB.PCI0.UHC6, Zero)
       Return (Package (0x02)
       {
           Zero, 
           Zero
       })
   }

   Scope (_SI)
   {
       Method (_MSG, 1, NotSerialized)
       {
           Store (Zero, Local0)
       }

       Method (_SST, 1, NotSerialized)
       {
           Store (Zero, Local0)
       }
   }

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

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

       Method (_L04, 0, NotSerialized)
       {
           Notify (\_SB.PCI0.UHC2, 0x02)
           Notify (\_SB.PWRB, 0x02)
       }

       Method (_L0C, 0, NotSerialized)
       {
           Notify (\_SB.PCI0.UHC3, 0x02)
           Notify (\_SB.PWRB, 0x02)
       }

       Method (_L0E, 0, NotSerialized)
       {
           Notify (\_SB.PCI0.UHC4, 0x02)
           Notify (\_SB.PWRB, 0x02)
       }

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

       Method (_L20, 0, NotSerialized)
       {
           Notify (\_SB.PCI0.UHC5, 0x02)
           Notify (\_SB.PWRB, 0x02)
       }

       Method (_L25, 0, NotSerialized)
       {
           Notify (\_SB.PCI0.UHC6, 0x02)
           Notify (\_SB.PWRB, 0x02)
       }

       Method (_L0D, 0, NotSerialized)
       {
           If (\_SB.PCI0.EHC1.PMES)
           {
               Store (One, \_SB.PCI0.EHC1.PMES)
               Notify (\_SB.PCI0.EHC1, 0x02)
               Notify (\_SB.PWRB, 0x02)
           }

           If (\_SB.PCI0.EHC2.PMES)
           {
               Store (One, \_SB.PCI0.EHC2.PMES)
               Notify (\_SB.PCI0.EHC2, 0x02)
               Notify (\_SB.PWRB, 0x02)
           }

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

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

       Method (_L09, 0, NotSerialized)
       {
           Notify (\_SB.PCI0.PEX0, 0x02)
           Notify (\_SB.PCI0.PEX1, 0x02)
           Notify (\_SB.PCI0.PEX2, 0x02)
           Notify (\_SB.PCI0.PEX3, 0x02)
           Notify (\_SB.PCI0.PEX4, 0x02)
           Notify (\_SB.PCI0.PEX5, 0x02)
           Notify (\_SB.PCI0.PEX6, 0x02)
           Notify (\_SB.PCI0.PEX7, 0x02)
       }
   }

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

       Device (PCI0)
       {
           Name (_HID, EisaId ("PNP0A03"))
           Name (_ADR, Zero)
           Name (_UID, One)
           Name (_BBN, Zero)
           Method (_S3D, 0, NotSerialized)
           {
               If (LEqual (OSFL, 0x02))
               {
                   Return (0x02)
               }
               Else
               {
                   Return (0x03)
               }
           }

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

           Method (_CRS, 0, NotSerialized)
           {
               Name (BUF0, ResourceTemplate ()
               {
                   WordBusNumber (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode,
                       0x0000,             // Granularity
                       0x0000,             // Range Minimum
                       0x003F,             // Range Maximum
                       0x0000,             // Translation Offset
                       0x0040,             // Length
                       ,, )
                   IO (Decode16,
                       0x0CF8,             // Range Minimum
                       0x0CF8,             // Range Maximum
                       0x01,               // Alignment
                       0x08,               // Length
                       )
                   WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                       0x0000,             // Granularity
                       0x0000,             // Range Minimum
                       0x0CF7,             // Range Maximum
                       0x0000,             // Translation Offset
                       0x0CF8,             // Length
                       ,, , TypeStatic)
                   WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                       0x0000,             // Granularity
                       0x0D00,             // Range Minimum
                       0xFFFF,             // Range Maximum
                       0x0000,             // Translation Offset
                       0xF300,             // Length
                       ,, , TypeStatic)
                   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                       0x00000000,         // Granularity
                       0x000A0000,         // Range Minimum
                       0x000BFFFF,         // Range Maximum
                       0x00000000,         // Translation Offset
                       0x00020000,         // Length
                       ,, , AddressRangeMemory, TypeStatic)
                   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                       0x00000000,         // Granularity
                       0x000C0000,         // Range Minimum
                       0x000DFFFF,         // Range Maximum
                       0x00000000,         // Translation Offset
                       0x00020000,         // Length
                       ,, , AddressRangeMemory, TypeStatic)
                   DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                       0x00000000,         // Granularity
                       0x00100000,         // Range Minimum
                       0xFEBFFFFF,         // Range Maximum
                       0x00000000,         // Translation Offset
                       0xFFF00000,         // Length
                       ,, _Y00, AddressRangeMemory, TypeStatic)
               })
               CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, TCMM)
               CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, TOMM)
               Add (AMEM, 0x00010000, TCMM)
               Add (TCMM, 0x00010000, TCMM)
               Subtract (0xFEC00000, TCMM, TOMM)
               Return (BUF0)
           }

           Name (PICM, Package (0x2C)
           {
               Package (0x04)
               {
                   0x001BFFFF, 
                   Zero, 
                   LNK0, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0007FFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0007FFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0007FFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x0007FFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x03, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   Zero, 
                   LNK1, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   One, 
                   LNKD, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   0x03, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001FFFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001FFFFF, 
                   One, 
                   LNKB, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001FFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   Zero, 
                   LNKA, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   One, 
                   LNKF, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   0x02, 
                   LNKC, 
                   Zero
               }
           })
           Name (APIC, Package (0x2C)
           {
               Package (0x04)
               {
                   0xFFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0xFFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x001BFFFF, 
                   Zero, 
                   Zero, 
                   0x16
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x0001FFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x0003FFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x0005FFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x0006FFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

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

               Package (0x04)
               {
                   0x0007FFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

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

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

               Package (0x04)
               {
                   0x001CFFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x001CFFFF, 
                   0x03, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   Zero, 
                   Zero, 
                   0x17
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   One, 
                   Zero, 
                   0x13
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x001DFFFF, 
                   0x03, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x001FFFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x001FFFFF, 
                   One, 
                   Zero, 
                   0x11
               }, 

               Package (0x04)
               {
                   0x001FFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   Zero, 
                   Zero, 
                   0x10
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   One, 
                   Zero, 
                   0x15
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }, 

               Package (0x04)
               {
                   0x001AFFFF, 
                   0x02, 
                   Zero, 
                   0x12
               }
           })
           Method (_PRT, 0, NotSerialized)
           {
               If (LNot (PICF))
               {
                   Return (PICM)
               }
               Else
               {
                   Return (APIC)
               }
           }

           Device (PEX0)
           {
               Name (_ADR, 0x001C0000)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC0, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKD, 
                       Zero
                   }
               })
               Name (API0, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x13
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC0)
                   }
                   Else
                   {
                       Return (API0)
                   }
               }
           }

           Device (PEX1)
           {
               Name (_ADR, 0x001C0001)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC1, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKA, 
                       Zero
                   }
               })
               Name (API1, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x10
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC1)
                   }
                   Else
                   {
                       Return (API1)
                   }
               }
           }

           Device (PEX2)
           {
               Name (_ADR, 0x001C0002)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC2, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKB, 
                       Zero
                   }
               })
               Name (API2, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x11
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC2)
                   }
                   Else
                   {
                       Return (API2)
                   }
               }
           }

           Device (PEX3)
           {
               Name (_ADR, 0x001C0003)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC3, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKC, 
                       Zero
                   }
               })
               Name (API3, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x12
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC3)
                   }
                   Else
                   {
                       Return (API3)
                   }
               }
           }

           Device (PEX4)
           {
               Name (_ADR, 0x001C0004)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC4, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKD, 
                       Zero
                   }
               })
               Name (API4, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x13
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC4)
                   }
                   Else
                   {
                       Return (API4)
                   }
               }
           }

           Device (PEX5)
           {
               Name (_ADR, 0x001C0005)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC5, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKA, 
                       Zero
                   }
               })
               Name (API5, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x10
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC5)
                   }
                   Else
                   {
                       Return (API5)
                   }
               }
           }

           Device (PEX6)
           {
               Name (_ADR, 0x001C0006)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC6, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKB, 
                       Zero
                   }
               })
               Name (API6, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x11
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC6)
                   }
                   Else
                   {
                       Return (API6)
                   }
               }
           }

           Device (PEX7)
           {
               Name (_ADR, 0x001C0007)
               Method (_STA, 0, NotSerialized)
               {
                   Return (0x0F)
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }

               Name (PIC7, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       LNKC, 
                       Zero
                   }
               })
               Name (API7, Package (0x04)
               {
                   Package (0x04)
                   {
                       0xFFFF, 
                       Zero, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       One, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x02, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0xFFFF, 
                       0x03, 
                       Zero, 
                       0x12
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PIC7)
                   }
                   Else
                   {
                       Return (API7)
                   }
               }
           }

           Device (PEX4.JMB0)
           {
               Name (_ADR, Zero)
               Name (PIOT, Package (0x05)
               {
                   0x0258, 
                   0x0186, 
                   0x014A, 
                   0xB4, 
                   0x78
               })
               Name (MDMA, Package (0x03)
               {
                   0x01E0, 
                   0x96, 
                   0x78
               })
               Name (UDMA, Package (0x07)
               {
                   0x78, 
                   0x50, 
                   0x3C, 
                   0x28, 
                   0x1E, 
                   0x14, 
                   0x0F
               })
               OperationRegion (CF40, PCI_Config, 0x40, 0x04)
               Field (CF40, ByteAcc, NoLock, Preserve)
               {
                       ,   3, 
                   CAB0,   1, 
                       ,   18, 
                   SWAP,   1, 
                   CHN0,   1, 
                           Offset (0x04)
               }

               OperationRegion (CF80, PCI_Config, 0x80, 0x04)
               Field (CF80, ByteAcc, NoLock, Preserve)
               {
                       ,   19, 
                   CAB1,   1, 
                           Offset (0x03), 
                   CHN1,   1, 
                           Offset (0x04)
               }

               Name (IDEB, Buffer (0x14) {})
               CreateDWordField (IDEB, Zero, GTM0)
               CreateDWordField (IDEB, 0x04, GTM1)
               CreateDWordField (IDEB, 0x08, GTM2)
               CreateDWordField (IDEB, 0x0C, GTM3)
               CreateDWordField (IDEB, 0x10, GTM4)
               Name (PMIO, 0x04)
               Name (PMDM, 0x06)
               Name (PSIO, 0x04)
               Name (PSDM, 0x06)
               Name (SMIO, 0x04)
               Name (SMDM, 0x06)
               Name (SSIO, 0x04)
               Name (SSDM, 0x06)
               Name (MODP, 0x05)
               Name (MODS, 0x05)
               Device (SDE0)
               {
                   Name (_ADR, Zero)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, PMIO)), Local0)
                       Store (DerefOf (Index (PIOT, PSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODP, One))
                       {
                           Store (DerefOf (Index (UDMA, PMDM)), Local1)
                           If (LGreater (PMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PMDM)), Local1)
                       }

                       If (LAnd (MODP, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, PSDM)), Local3)
                           If (LGreater (PSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                       }

                       Store (Local4, MODP)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PMDM, DMAM)
                           If (LAnd (MODP, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PSDM, DMAM)
                           If (LAnd (MODP, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

               Device (SDE1)
               {
                   Name (_ADR, One)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, SMIO)), Local0)
                       Store (DerefOf (Index (PIOT, SSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODS, One))
                       {
                           Store (DerefOf (Index (UDMA, SMDM)), Local1)
                           If (LGreater (SMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SMDM)), Local1)
                       }

                       If (LAnd (MODS, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, SSDM)), Local3)
                           If (LGreater (SSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), SMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), SSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                       }

                       Store (Local4, MODS)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SMDM, DMAM)
                           If (LAnd (MODS, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SSDM, DMAM)
                           If (LAnd (MODS, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

           Device (PEX4.JMB1)
           {
               Name (_ADR, One)
               Name (PIOT, Package (0x05)
               {
                   0x0258, 
                   0x0186, 
                   0x014A, 
                   0xB4, 
                   0x78
               })
               Name (MDMA, Package (0x03)
               {
                   0x01E0, 
                   0x96, 
                   0x78
               })
               Name (UDMA, Package (0x07)
               {
                   0x78, 
                   0x50, 
                   0x3C, 
                   0x28, 
                   0x1E, 
                   0x14, 
                   0x0F
               })
               OperationRegion (CF40, PCI_Config, 0x40, 0x04)
               Field (CF40, ByteAcc, NoLock, Preserve)
               {
                       ,   3, 
                   CAB0,   1, 
                       ,   18, 
                   SWAP,   1, 
                   CHN0,   1, 
                           Offset (0x04)
               }

               OperationRegion (CF80, PCI_Config, 0x80, 0x04)
               Field (CF80, ByteAcc, NoLock, Preserve)
               {
                       ,   19, 
                   CAB1,   1, 
                           Offset (0x03), 
                   CHN1,   1, 
                           Offset (0x04)
               }

               Name (IDEB, Buffer (0x14) {})
               CreateDWordField (IDEB, Zero, GTM0)
               CreateDWordField (IDEB, 0x04, GTM1)
               CreateDWordField (IDEB, 0x08, GTM2)
               CreateDWordField (IDEB, 0x0C, GTM3)
               CreateDWordField (IDEB, 0x10, GTM4)
               Name (PMIO, 0x04)
               Name (PMDM, 0x06)
               Name (PSIO, 0x04)
               Name (PSDM, 0x06)
               Name (SMIO, 0x04)
               Name (SMDM, 0x06)
               Name (SSIO, 0x04)
               Name (SSDM, 0x06)
               Name (MODP, 0x05)
               Name (MODS, 0x05)
               Device (SDE0)
               {
                   Name (_ADR, Zero)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, PMIO)), Local0)
                       Store (DerefOf (Index (PIOT, PSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODP, One))
                       {
                           Store (DerefOf (Index (UDMA, PMDM)), Local1)
                           If (LGreater (PMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PMDM)), Local1)
                       }

                       If (LAnd (MODP, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, PSDM)), Local3)
                           If (LGreater (PSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                       }

                       Store (Local4, MODP)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PMDM, DMAM)
                           If (LAnd (MODP, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PSDM, DMAM)
                           If (LAnd (MODP, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

               Device (SDE1)
               {
                   Name (_ADR, One)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, SMIO)), Local0)
                       Store (DerefOf (Index (PIOT, SSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODS, One))
                       {
                           Store (DerefOf (Index (UDMA, SMDM)), Local1)
                           If (LGreater (SMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SMDM)), Local1)
                       }

                       If (LAnd (MODS, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, SSDM)), Local3)
                           If (LGreater (SSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), SMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), SSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                       }

                       Store (Local4, MODS)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SMDM, DMAM)
                           If (LAnd (MODS, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SSDM, DMAM)
                           If (LAnd (MODS, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

           Device (PEX5.JMB0)
           {
               Name (_ADR, Zero)
               Name (PIOT, Package (0x05)
               {
                   0x0258, 
                   0x0186, 
                   0x014A, 
                   0xB4, 
                   0x78
               })
               Name (MDMA, Package (0x03)
               {
                   0x01E0, 
                   0x96, 
                   0x78
               })
               Name (UDMA, Package (0x07)
               {
                   0x78, 
                   0x50, 
                   0x3C, 
                   0x28, 
                   0x1E, 
                   0x14, 
                   0x0F
               })
               OperationRegion (CF40, PCI_Config, 0x40, 0x04)
               Field (CF40, ByteAcc, NoLock, Preserve)
               {
                       ,   3, 
                   CAB0,   1, 
                       ,   18, 
                   SWAP,   1, 
                   CHN0,   1, 
                           Offset (0x04)
               }

               OperationRegion (CF80, PCI_Config, 0x80, 0x04)
               Field (CF80, ByteAcc, NoLock, Preserve)
               {
                       ,   19, 
                   CAB1,   1, 
                           Offset (0x03), 
                   CHN1,   1, 
                           Offset (0x04)
               }

               Name (IDEB, Buffer (0x14) {})
               CreateDWordField (IDEB, Zero, GTM0)
               CreateDWordField (IDEB, 0x04, GTM1)
               CreateDWordField (IDEB, 0x08, GTM2)
               CreateDWordField (IDEB, 0x0C, GTM3)
               CreateDWordField (IDEB, 0x10, GTM4)
               Name (PMIO, 0x04)
               Name (PMDM, 0x06)
               Name (PSIO, 0x04)
               Name (PSDM, 0x06)
               Name (SMIO, 0x04)
               Name (SMDM, 0x06)
               Name (SSIO, 0x04)
               Name (SSDM, 0x06)
               Name (MODP, 0x05)
               Name (MODS, 0x05)
               Device (SDE0)
               {
                   Name (_ADR, Zero)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, PMIO)), Local0)
                       Store (DerefOf (Index (PIOT, PSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODP, One))
                       {
                           Store (DerefOf (Index (UDMA, PMDM)), Local1)
                           If (LGreater (PMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PMDM)), Local1)
                       }

                       If (LAnd (MODP, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, PSDM)), Local3)
                           If (LGreater (PSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                       }

                       Store (Local4, MODP)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PMDM, DMAM)
                           If (LAnd (MODP, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PSDM, DMAM)
                           If (LAnd (MODP, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

               Device (SDE1)
               {
                   Name (_ADR, One)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, SMIO)), Local0)
                       Store (DerefOf (Index (PIOT, SSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODS, One))
                       {
                           Store (DerefOf (Index (UDMA, SMDM)), Local1)
                           If (LGreater (SMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SMDM)), Local1)
                       }

                       If (LAnd (MODS, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, SSDM)), Local3)
                           If (LGreater (SSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), SMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), SSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                       }

                       Store (Local4, MODS)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SMDM, DMAM)
                           If (LAnd (MODS, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SSDM, DMAM)
                           If (LAnd (MODS, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

           Device (PEX5.JMB1)
           {
               Name (_ADR, One)
               Name (PIOT, Package (0x05)
               {
                   0x0258, 
                   0x0186, 
                   0x014A, 
                   0xB4, 
                   0x78
               })
               Name (MDMA, Package (0x03)
               {
                   0x01E0, 
                   0x96, 
                   0x78
               })
               Name (UDMA, Package (0x07)
               {
                   0x78, 
                   0x50, 
                   0x3C, 
                   0x28, 
                   0x1E, 
                   0x14, 
                   0x0F
               })
               OperationRegion (CF40, PCI_Config, 0x40, 0x04)
               Field (CF40, ByteAcc, NoLock, Preserve)
               {
                       ,   3, 
                   CAB0,   1, 
                       ,   18, 
                   SWAP,   1, 
                   CHN0,   1, 
                           Offset (0x04)
               }

               OperationRegion (CF80, PCI_Config, 0x80, 0x04)
               Field (CF80, ByteAcc, NoLock, Preserve)
               {
                       ,   19, 
                   CAB1,   1, 
                           Offset (0x03), 
                   CHN1,   1, 
                           Offset (0x04)
               }

               Name (IDEB, Buffer (0x14) {})
               CreateDWordField (IDEB, Zero, GTM0)
               CreateDWordField (IDEB, 0x04, GTM1)
               CreateDWordField (IDEB, 0x08, GTM2)
               CreateDWordField (IDEB, 0x0C, GTM3)
               CreateDWordField (IDEB, 0x10, GTM4)
               Name (PMIO, 0x04)
               Name (PMDM, 0x06)
               Name (PSIO, 0x04)
               Name (PSDM, 0x06)
               Name (SMIO, 0x04)
               Name (SMDM, 0x06)
               Name (SSIO, 0x04)
               Name (SSDM, 0x06)
               Name (MODP, 0x05)
               Name (MODS, 0x05)
               Device (SDE0)
               {
                   Name (_ADR, Zero)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, PMIO)), Local0)
                       Store (DerefOf (Index (PIOT, PSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODP, One))
                       {
                           Store (DerefOf (Index (UDMA, PMDM)), Local1)
                           If (LGreater (PMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PMDM)
                                       Store (DerefOf (Index (UDMA, PMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PMDM)), Local1)
                       }

                       If (LAnd (MODP, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, PSDM)), Local3)
                           If (LGreater (PSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, PSDM)
                                       Store (DerefOf (Index (UDMA, PSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, PSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), PMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), PSDM)
                           }
                       }

                       Store (Local4, MODP)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PMDM, DMAM)
                           If (LAnd (MODP, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (PSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (PSDM, DMAM)
                           If (LAnd (MODP, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

               Device (SDE1)
               {
                   Name (_ADR, One)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (DerefOf (Index (PIOT, SMIO)), Local0)
                       Store (DerefOf (Index (PIOT, SSIO)), Local2)
                       Store (0x1A, Local4)
                       If (LAnd (MODS, One))
                       {
                           Store (DerefOf (Index (UDMA, SMDM)), Local1)
                           If (LGreater (SMDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SMDM)
                                       Store (DerefOf (Index (UDMA, SMDM)), Local1)
                                   }
                               }
                           }

                           Or (Local4, One, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SMDM)), Local1)
                       }

                       If (LAnd (MODS, 0x04))
                       {
                           Store (DerefOf (Index (UDMA, SSDM)), Local3)
                           If (LGreater (SSDM, 0x02))
                           {
                               If (LAnd (LNotEqual (SWAP, One), LEqual (CHN0, One)))
                               {
                                   If (CAB0)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }

                               If (LAnd (LEqual (SWAP, One), LEqual (CHN1, One)))
                               {
                                   If (CAB1)
                                   {
                                       Store (0x02, SSDM)
                                       Store (DerefOf (Index (UDMA, SSDM)), Local3)
                                   }
                               }
                           }

                           Or (Local4, 0x04, Local4)
                       }
                       Else
                       {
                           Store (DerefOf (Index (MDMA, SSDM)), Local3)
                       }

                       Store (Local0, GTM0)
                       Store (Local1, GTM1)
                       Store (Local2, GTM2)
                       Store (Local3, GTM3)
                       Store (Local4, GTM4)
                       Return (IDEB)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (Arg0, IDEB)
                       Store (GTM0, Local0)
                       Store (GTM1, Local1)
                       Store (GTM2, Local2)
                       Store (GTM3, Local3)
                       Store (GTM4, Local4)
                       If (LAnd (LNotEqual (Local0, Ones), LNotEqual (Local0, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), SMIO)
                       }

                       If (LAnd (LNotEqual (Local1, Ones), LNotEqual (Local1, Zero)))
                       {
                           If (LAnd (Local4, One))
                           {
                               Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), SMDM)
                           }
                       }

                       If (LAnd (LNotEqual (Local2, Ones), LNotEqual (Local2, Zero)))
                       {
                           Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), SSIO)
                       }

                       If (LAnd (LNotEqual (Local3, Ones), LNotEqual (Local3, Zero)))
                       {
                           If (LAnd (Local4, 0x04))
                           {
                               Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                           Else
                           {
                               Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), SSDM)
                           }
                       }

                       Store (Local4, MODS)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SMIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SMDM, DMAM)
                           If (LAnd (MODS, One))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local0)
                           Store (Buffer (0x07)
                               {
                                   0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                               }, Local1)
                           CreateByteField (Local0, One, PIOM)
                           CreateByteField (Local1, One, DMAM)
                           Store (SSIO, PIOM)
                           Or (PIOM, 0x08, PIOM)
                           Store (SSDM, DMAM)
                           If (LAnd (MODS, 0x04))
                           {
                               Or (DMAM, 0x40, DMAM)
                           }
                           Else
                           {
                               Or (DMAM, 0x20, DMAM)
                           }

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

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

               Name (PICM, Package (0x0C)
               {
                   Package (0x04)
                   {
                       0x0001FFFF, 
                       Zero, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0001FFFF, 
                       One, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0001FFFF, 
                       0x02, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0001FFFF, 
                       0x03, 
                       LNKE, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       Zero, 
                       LNKC, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       One, 
                       LNKA, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       0x02, 
                       LNKE, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       0x03, 
                       LNKD, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       Zero, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       One, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       0x02, 
                       LNKB, 
                       Zero
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       0x03, 
                       LNKB, 
                       Zero
                   }
               })
               Name (APIC, Package (0x0C)
               {
                   Package (0x04)
                   {
                       0x0001FFFF, 
                       Zero, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0x0001FFFF, 
                       One, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0x0001FFFF, 
                       0x02, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0x0001FFFF, 
                       0x03, 
                       Zero, 
                       0x14
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       Zero, 
                       Zero, 
                       0x12
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       One, 
                       Zero, 
                       0x10
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       0x02, 
                       Zero, 
                       0x14
                   }, 

                   Package (0x04)
                   {
                       0x0002FFFF, 
                       0x03, 
                       Zero, 
                       0x13
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       Zero, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       One, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       0x02, 
                       Zero, 
                       0x11
                   }, 

                   Package (0x04)
                   {
                       0x0007FFFF, 
                       0x03, 
                       Zero, 
                       0x11
                   }
               })
               Method (_PRT, 0, NotSerialized)
               {
                   If (LNot (PICF))
                   {
                       Return (PICM)
                   }
                   Else
                   {
                       Return (APIC)
                   }
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x0B, 
                       0x05
                   })
               }
           }

           Device (PX40)
           {
               Name (_ADR, 0x001F0000)
               OperationRegion (PREV, PCI_Config, 0x08, One)
               Scope (\)
               {
                   Field (\_SB.PCI0.PX40.PREV, ByteAcc, NoLock, Preserve)
                   {
                       REV0,   8
                   }
               }

               OperationRegion (PIRQ, PCI_Config, 0x60, 0x04)
               Scope (\)
               {
                   Field (\_SB.PCI0.PX40.PIRQ, ByteAcc, NoLock, Preserve)
                   {
                       PIRA,   8, 
                       PIRB,   8, 
                       PIRC,   8, 
                       PIRD,   8
                   }
               }

               OperationRegion (PIR2, PCI_Config, 0x68, 0x04)
               Scope (\)
               {
                   Field (\_SB.PCI0.PX40.PIR2, ByteAcc, NoLock, Preserve)
                   {
                       PIRE,   8, 
                       PIRF,   8, 
                       PIRG,   8, 
                       PIRH,   8
                   }
               }

               OperationRegion (LPIO, PCI_Config, 0x80, 0x0E)
               Scope (\)
               {
                   Field (\_SB.PCI0.PX40.LPIO, ByteAcc, NoLock, Preserve)
                   {
                       UAIO,   8, 
                       PRIO,   8, 
                       LPE1,   8, 
                       LPE2,   8, 
                       GN1L,   8, 
                       GN1H,   8, 
                       GN2L,   8, 
                       GN2H,   8
                   }

                   Method (DISD, 1, NotSerialized)
                   {
                       If (LEqual (Arg0, Zero))
                       {
                           And (LPE1, 0xFE, LPE1)
                       }

                       If (LEqual (Arg0, One))
                       {
                           And (LPE1, 0xFD, LPE1)
                       }

                       If (LEqual (Arg0, 0x02))
                       {
                           And (LPE1, 0xFB, LPE1)
                       }

                       If (LEqual (Arg0, 0x03))
                       {
                           And (LPE1, 0xF7, LPE1)
                       }

                       If (LEqual (Arg0, 0x04))
                       {
                           And (LPE2, 0xFC, LPE2)
                       }

                       If (LEqual (Arg0, 0x05))
                       {
                           And (LPE1, 0xDF, LPE1)
                       }

                       If (LEqual (Arg0, 0x06))
                       {
                           And (GN2L, 0xFE, GN2L)
                       }
                   }

                   Method (CKIO, 2, NotSerialized)
                   {
                       If (LEqual (Arg1, Zero))
                       {
                           Or (LPE1, One, LPE1)
                           And (UAIO, 0xF0, Local0)
                           If (LEqual (Arg0, 0x03F8))
                           {
                               Or (Local0, Zero, UAIO)
                           }

                           If (LEqual (Arg0, 0x02F8))
                           {
                               Or (Local0, One, UAIO)
                           }

                           If (LEqual (Arg0, 0x02E8))
                           {
                               Or (Local0, 0x05, UAIO)
                           }

                           If (LEqual (Arg0, 0x03E8))
                           {
                               Or (Local0, 0x07, UAIO)
                           }
                       }

                       If (LEqual (Arg1, One))
                       {
                           Or (LPE1, 0x02, LPE1)
                           And (UAIO, 0x0F, Local0)
                           If (LEqual (Arg0, 0x03F8))
                           {
                               Or (Local0, Zero, UAIO)
                           }

                           If (LEqual (Arg0, 0x02F8))
                           {
                               Or (Local0, 0x10, UAIO)
                           }

                           If (LEqual (Arg0, 0x02E8))
                           {
                               Or (Local0, 0x50, UAIO)
                           }

                           If (LEqual (Arg0, 0x03E8))
                           {
                               Or (Local0, 0x70, UAIO)
                           }
                       }

                       If (LEqual (Arg1, 0x02))
                       {
                           Or (LPE1, 0x04, LPE1)
                           And (PRIO, 0xFC, Local0)
                           If (LEqual (Arg0, 0x0378))
                           {
                               Or (Local0, Zero, PRIO)
                           }

                           If (LEqual (Arg0, 0x0278))
                           {
                               Or (Local0, One, PRIO)
                           }

                           If (LEqual (Arg0, 0x03BC))
                           {
                               Or (Local0, 0x02, PRIO)
                           }
                       }

                       If (LEqual (Arg1, 0x03))
                       {
                           Or (LPE1, 0x08, LPE1)
                       }

                       If (LEqual (Arg1, 0x04))
                       {
                           If (LEqual (Arg0, 0x0201))
                           {
                               Or (LPE2, One, LPE2)
                           }

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

                       If (LEqual (Arg1, 0x06))
                       {
                           If (LNotEqual (Arg0, 0xFFFF))
                           {
                               And (Arg0, 0xFF, Local0)
                               Or (Local0, One, GN2L)
                               ShiftRight (Arg0, 0x08, GN2H)
                           }
                           Else
                           {
                               Store (Zero, GN2H)
                               Store (Zero, GN2L)
                           }
                       }
                   }
               }

               Scope (\)
               {
                   Method (SLDM, 2, NotSerialized)
                   {
                   }
               }

               Scope (^^PCI0)
               {
                   Name (SLIC, Buffer (0x9E)
                   {
                       "443817712091Genuine NVIDIA Certified SLI Ready Motherboard for GIGABYTE P55 UD4    63e0-Copyright 2009 NVIDIA Corporation All Rights Reserved-876112936219®"
                   })
                   Device (WMI1)
                   {
                       Name (_HID, "pnp0c14")
                       Name (_UID, "MXM2")
                       Name (_WDG, Buffer (0x14)
                       {
                           /* 0000 */    0x3C, 0x5C, 0xCB, 0xF6, 0xAE, 0x9C, 0xBD, 0x4E, 
                           /* 0008 */    0xB5, 0x77, 0x93, 0x1E, 0xA3, 0x2A, 0x2C, 0xC0, 
                           /* 0010 */    0x4D, 0x58, 0x01, 0x02
                       })
                       Method (WMMX, 3, NotSerialized)
                       {
                           CreateDWordField (Arg2, Zero, FUNC)
                           If (LEqual (FUNC, 0x41494C53))
                           {
                               Return (SLIC)
                           }

                           Return (Zero)
                       }
                   }
               }

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

               Method (^_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 (Zero, OSFL)
                                   Store (0x03, OSFX)
                               }
                           }
                           Else
                           {
                               Store (0x58, SMIP)
                               Store (Zero, OSFL)
                           }
                       }
                       Else
                       {
                           Store (0x57, SMIP)
                           Store (0x02, OSFL)
                       }
                   }
               }

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

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

                       If (LEqual (OSFL, Zero))
                       {
                           If (LEqual (OSFX, 0x03))
                           {
                               Store (0x59, SMIP)
                           }
                           Else
                           {
                               Store (0x58, SMIP)
                           }
                       }

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

               Device (SYSR)
               {
                   Name (_HID, EisaId ("PNP0C02"))
                   Name (_UID, One)
                   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,
                           0x0290,             // Range Minimum
                           0x0290,             // Range Maximum
                           0x01,               // Alignment
                           0x10,               // Length
                           )
                       IO (Decode16,
                           0x0800,             // Range Minimum
                           0x0800,             // Range Maximum
                           0x01,               // Alignment
                           0x80,               // Length
                           )
                       IO (Decode16,
                           0x0290,             // Range Minimum
                           0x0290,             // Range Maximum
                           0x01,               // Alignment
                           0x05,               // Length
                           )
                       IO (Decode16,
                           0x0880,             // Range Minimum
                           0x0880,             // Range Maximum
                           0x01,               // Alignment
                           0x10,               // 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
                           )
                   })
               }

               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 (ATT5, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0040,             // Range Minimum
                           0x0040,             // Range Maximum
                           0x00,               // Alignment
                           0x04,               // Length
                           )
                   })
                   Name (ATT6, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0040,             // Range Minimum
                           0x0040,             // Range Maximum
                           0x00,               // Alignment
                           0x04,               // Length
                           )
                   })
                   Method (_CRS, 0, NotSerialized)
                   {
                       If (LGreaterEqual (OSFX, 0x03))
                       {
                           If (HPTF)
                           {
                               Return (ATT6)
                           }
                           Else
                           {
                               Return (ATT5)
                           }
                       }
                       Else
                       {
                           Return (ATT5)
                       }
                   }
               }

               Device (HPET)
               {
                   Name (_HID, EisaId ("PNP0103"))
                   Name (ATT3, ResourceTemplate ()
                   {
                       IRQNoFlags ()
                           {0}
                       IRQNoFlags ()
                           {8}
                       Memory32Fixed (ReadWrite,
                           0xFED00000,         // Address Base
                           0x00000400,         // Address Length
                           )
                   })
                   Name (ATT4, ResourceTemplate ()
                   {
                   })
                   Method (_STA, 0, NotSerialized)
                   {
                       Return (0x0F)
                   }

                   Method (_CRS, 0, NotSerialized)
                   {
                       Return (ATT3)
                   }
               }

               Device (RTC)
               {
                   Name (_HID, EisaId ("PNP0B00"))
                   Name (ATT0, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                   })
                   Name (ATT1, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                   })
                   Method (_CRS, 0, NotSerialized)
                   {
                       If (LGreaterEqual (OSFX, 0x03))
                       {
                           If (HPTF)
                           {
                               Return (ATT1)
                           }
                           Else
                           {
                               Return (ATT0)
                           }
                       }
                       Else
                       {
                           Return (ATT0)
                       }
                   }
               }

               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}
                   })
               }

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

                   OperationRegion (GPIO, SystemIO, 0x0800, 0x05)
                   Field (GPIO, ByteAcc, NoLock, Preserve)
                   {
                       GO01,   8, 
                       GO02,   8, 
                       GO03,   8, 
                       GO04,   8, 
                       GO05,   8
                   }

                   IndexField (INDP, DATP, 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 (0xC0), 
                       GP40,   8, 
                               Offset (0xF0), 
                       OPT1,   8, 
                       OPT2,   8, 
                       OPT3,   8, 
                       OPT4,   8
                   }

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

                   Method (EXFG, 0, NotSerialized)
                   {
                       Store (0x02, CFG)
                   }

                   Method (GSRG, 1, NotSerialized)
                   {
                       Store (Arg0, INDP)
                       Return (DATP)
                   }

                   Method (SSRG, 2, NotSerialized)
                   {
                       Store (Arg0, INDP)
                       Store (Arg1, DATP)
                   }
               }

               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 (Zero)
                           }
                       }
                   }

                   Method (_DIS, 0, NotSerialized)
                   {
                       ENFG ()
                       Store (Zero, 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
                               _Y01)
                           IO (Decode16,
                               0x03F7,             // Range Minimum
                               0x03F7,             // Range Maximum
                               0x01,               // Alignment
                               0x01,               // Length
                               )
                           IRQNoFlags ()
                               {6}
                           DMA (Compatibility, NotBusMaster, Transfer8, )
                               {2}
                       })
                       CreateByteField (BUF0, \_SB.PCI0.PX40.FDC0._CRS._Y01._MIN, IOLO)
                       CreateByteField (BUF0, 0x03, IOHI)
                       CreateByteField (BUF0, \_SB.PCI0.PX40.FDC0._CRS._Y01._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, IRQW)
                       CreateByteField (Arg0, 0x1C, DMAV)
                       ENFG ()
                       Store (Zero, LDN)
                       Store (One, ACTR)
                       SLDM (DMCH, DMCH)
                       CKIO (IOAD, 0x03)
                       EXFG ()
                   }
               }

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

                       EXFG ()
                   }

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

                   Method (_CRS, 0, NotSerialized)
                   {
                       Name (BUF1, ResourceTemplate ()
                       {
                           IO (Decode16,
                               0x0000,             // Range Minimum
                               0x0000,             // Range Maximum
                               0x01,               // Alignment
                               0x08,               // Length
                               _Y02)
                           IRQNoFlags (_Y03)
                               {}
                       })
                       CreateByteField (BUF1, \_SB.PCI0.PX40.UAR1._CRS._Y02._MIN, IOLO)
                       CreateByteField (BUF1, 0x03, IOHI)
                       CreateByteField (BUF1, \_SB.PCI0.PX40.UAR1._CRS._Y02._MAX, IORL)
                       CreateByteField (BUF1, 0x05, IORH)
                       CreateWordField (BUF1, \_SB.PCI0.PX40.UAR1._CRS._Y03._INT, IRQW)
                       ENFG ()
                       Store (One, 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 (One, LDN)
                       Store (One, ACTR)
                       Store (IOLO, IOAL)
                       Store (IOHI, IOAH)
                       FindSetRightBit (IRQW, Local0)
                       Subtract (Local0, One, INTR)
                       EXFG ()
                       CKIO (IOAD, Zero)
                   }

                   Method (_PRW, 0, NotSerialized)
                   {
                       If (SUSF)
                       {
                           Return (Package (0x02)
                           {
                               0x08, 
                               0x03
                           })
                       }
                       Else
                       {
                           Return (Package (0x02)
                           {
                               0x08, 
                               One
                           })
                       }
                   }

                   Method (_PSW, 1, NotSerialized)
                   {
                       If (Arg0)
                       {
                           Or (G2C2, One, G2C2)
                       }
                       Else
                       {
                           And (G2C2, 0xFE, G2C2)
                       }
                   }
               }

               Device (LPT1)
               {
                   Name (_HID, EisaId ("PNP0400"))
                   Method (_STA, 0, NotSerialized)
                   {
                       ENFG ()
                       Store (0x03, LDN)
                       And (OPT1, 0x02, Local0)
                       If (LNotEqual (Local0, 0x02))
                       {
                           If (ACTR)
                           {
                               EXFG ()
                               Return (0x0F)
                           }
                           Else
                           {
                               If (LOr (IOAH, IOAL))
                               {
                                   EXFG ()
                                   Return (0x0D)
                               }
                               Else
                               {
                                   EXFG ()
                                   Return (Zero)
                               }
                           }
                       }
                       Else
                       {
                           EXFG ()
                           Return (Zero)
                       }
                   }

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

                   Method (_CRS, 0, NotSerialized)
                   {
                       Name (BUF5, ResourceTemplate ()
                       {
                           IO (Decode16,
                               0x0000,             // Range Minimum
                               0x0000,             // Range Maximum
                               0x01,               // Alignment
                               0x08,               // Length
                               _Y04)
                           IRQNoFlags (_Y05)
                               {}
                       })
                       CreateByteField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y04._MIN, IOLO)
                       CreateByteField (BUF5, 0x03, IOHI)
                       CreateByteField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y04._MAX, IORL)
                       CreateByteField (BUF5, 0x05, IORH)
                       CreateByteField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y04._LEN, IOLE)
                       CreateWordField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y05._INT, IRQW)
                       ENFG ()
                       Store (0x03, LDN)
                       Store (IOAL, IOLO)
                       Store (IOLO, IORL)
                       Store (IOAH, IOHI)
                       Store (IOHI, IORH)
                       If (LEqual (IOLO, 0xBC))
                       {
                           Store (0x04, IOLE)
                       }
                       Else
                       {
                           Store (0x08, IOLE)
                       }

                       Store (One, Local0)
                       Store (INTR, Local5)
                       ShiftLeft (Local0, Local5, IRQW)
                       EXFG ()
                       Return (BUF5)
                   }

                   Name (_PRS, ResourceTemplate ()
                   {
                       StartDependentFnNoPri ()
                       {
                           IO (Decode16,
                               0x0378,             // Range Minimum
                               0x0378,             // Range Maximum
                               0x01,               // Alignment
                               0x08,               // Length
                               )
                           IRQNoFlags ()
                               {3,4,5,7,9,10,11,12}
                       }
                       StartDependentFnNoPri ()
                       {
                           IO (Decode16,
                               0x0278,             // Range Minimum
                               0x0278,             // Range Maximum
                               0x01,               // Alignment
                               0x08,               // Length
                               )
                           IRQNoFlags ()
                               {3,4,5,7,9,10,11,12}
                       }
                       StartDependentFnNoPri ()
                       {
                           IO (Decode16,
                               0x03BC,             // Range Minimum
                               0x03BC,             // Range Maximum
                               0x01,               // Alignment
                               0x04,               // 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)
                       CreateByteField (Arg0, 0x04, IORL)
                       CreateByteField (Arg0, 0x05, IORH)
                       CreateWordField (Arg0, 0x09, IRQW)
                       ENFG ()
                       Store (0x03, LDN)
                       Store (One, ACTR)
                       Store (IOLO, IOAL)
                       Store (IOHI, IOAH)
                       FindSetLeftBit (IRQW, Local0)
                       Subtract (Local0, One, Local0)
                       Store (Local0, INTR)
                       EXFG ()
                       CKIO (IOAD, 0x02)
                   }
               }

               Device (ECP1)
               {
                   Name (_HID, EisaId ("PNP0401"))
                   Method (_STA, 0, NotSerialized)
                   {
                       ENFG ()
                       Store (0x03, LDN)
                       And (OPT1, 0x02, Local0)
                       If (LEqual (Local0, 0x02))
                       {
                           If (ACTR)
                           {
                               EXFG ()
                               Return (0x0F)
                           }
                           Else
                           {
                               If (LOr (IOAH, IOAL))
                               {
                                   EXFG ()
                                   Return (0x0D)
                               }
                               Else
                               {
                                   EXFG ()
                                   Return (Zero)
                               }
                           }
                       }
                       Else
                       {
                           EXFG ()
                           Return (Zero)
                       }
                   }

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

                   Method (_CRS, 0, NotSerialized)
                   {
                       Name (BUF6, ResourceTemplate ()
                       {
                           IO (Decode16,
                               0x0000,             // Range Minimum
                               0x0000,             // Range Maximum
                               0x01,               // Alignment
                               0x04,               // Length
                               _Y06)
                           IO (Decode16,
                               0x0000,             // Range Minimum
                               0x0000,             // Range Maximum
                               0x01,               // Alignment
                               0x04,               // Length
                               _Y07)
                           IRQNoFlags (_Y08)
                               {}
                           DMA (Compatibility, NotBusMaster, Transfer8, _Y09)
                               {}
                       })
                       CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y06._MIN, IOLO)
                       CreateByteField (BUF6, 0x03, IOHI)
                       CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y06._MAX, IORL)
                       CreateByteField (BUF6, 0x05, IORH)
                       CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y06._LEN, IOLE)
                       CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y07._MIN, IOEL)
                       CreateByteField (BUF6, 0x0B, IOEH)
                       CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y07._MAX, IOML)
                       CreateByteField (BUF6, 0x0D, IOMH)
                       CreateWordField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y08._INT, IRQW)
                       CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y09._DMA, DMAC)
                       ENFG ()
                       Store (0x03, LDN)
                       Store (IOAL, Local2)
                       Store (Local2, IOLO)
                       Store (IOAH, Local3)
                       Store (Local3, IOHI)
                       Or (Local3, 0x04, Local3)
                       Store (Local3, IOEH)
                       Store (Local3, IOMH)
                       Store (IOLO, IORL)
                       Store (IOLO, IOEL)
                       Store (IOLO, IOML)
                       Store (IOHI, IORH)
                       If (LEqual (IOLO, 0xBC))
                       {
                           Store (0x04, IOLE)
                       }
                       Else
                       {
                           Store (0x08, IOLE)
                       }

                       Store (One, Local0)
                       Store (INTR, Local5)
                       ShiftLeft (Local0, Local5, IRQW)
                       Store (One, Local0)
                       Store (DMCH, Local5)
                       ShiftLeft (Local0, Local5, DMAC)
                       EXFG ()
                       Return (BUF6)
                   }

                   Name (_PRS, ResourceTemplate ()
                   {
                       StartDependentFnNoPri ()
                       {
                           IO (Decode16,
                               0x0378,             // Range Minimum
                               0x0378,             // Range Maximum
                               0x00,               // Alignment
                               0x08,               // Length
                               )
                           IO (Decode16,
                               0x0778,             // Range Minimum
                               0x0778,             // Range Maximum
                               0x00,               // Alignment
                               0x04,               // Length
                               )
                           IRQNoFlags ()
                               {3,4,5,7,9,10,11,12}
                           DMA (Compatibility, NotBusMaster, Transfer8, )
                               {0,1,3}
                       }
                       StartDependentFnNoPri ()
                       {
                           IO (Decode16,
                               0x0278,             // Range Minimum
                               0x0278,             // Range Maximum
                               0x00,               // Alignment
                               0x08,               // Length
                               )
                           IO (Decode16,
                               0x0678,             // Range Minimum
                               0x0678,             // Range Maximum
                               0x00,               // Alignment
                               0x04,               // Length
                               )
                           IRQNoFlags ()
                               {3,4,5,7,9,10,11,12}
                           DMA (Compatibility, NotBusMaster, Transfer8, )
                               {0,1,3}
                       }
                       StartDependentFnNoPri ()
                       {
                           IO (Decode16,
                               0x03BC,             // Range Minimum
                               0x03BC,             // Range Maximum
                               0x00,               // Alignment
                               0x04,               // Length
                               )
                           IO (Decode16,
                               0x07BC,             // Range Minimum
                               0x07BC,             // Range Maximum
                               0x00,               // Alignment
                               0x04,               // Length
                               )
                           IRQNoFlags ()
                               {3,4,5,7,9,10,11,12}
                           DMA (Compatibility, NotBusMaster, Transfer8, )
                               {0,1,3}
                       }
                       EndDependentFn ()
                   })
                   Method (_SRS, 1, NotSerialized)
                   {
                       CreateByteField (Arg0, 0x02, IOLO)
                       CreateByteField (Arg0, 0x03, IOHI)
                       CreateWordField (Arg0, 0x02, IOAD)
                       CreateWordField (Arg0, 0x11, IRQW)
                       CreateByteField (Arg0, 0x14, DMAC)
                       ENFG ()
                       Store (0x03, LDN)
                       Store (One, ACTR)
                       Store (IOLO, IOAL)
                       Store (IOHI, IOAH)
                       FindSetLeftBit (IRQW, Local0)
                       Subtract (Local0, One, Local0)
                       Store (Local0, INTR)
                       FindSetLeftBit (DMAC, Local1)
                       Store (DMCH, Local0)
                       Subtract (Local1, One, DMCH)
                       SLDM (Local0, DMCH)
                       EXFG ()
                       CKIO (IOAD, 0x02)
                   }
               }

               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, Zero))
                       {
                           Return (0x0F)
                       }
                       Else
                       {
                           Return (Zero)
                       }
                   }

                   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, One))
                       {
                           If (LEqual (OSFL, 0x02))
                           {
                               Return (BUF1)
                           }

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

               Device (PS2K)
               {
                   Name (_HID, EisaId ("PNP0303"))
                   Method (_STA, 0, NotSerialized)
                   {
                       If (LEqual (KBDI, One))
                       {
                           Return (Zero)
                       }
                       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, Zero))
                       {
                           Return (Zero)
                       }

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

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

                           Return (Zero)
                       }

                       Return (Zero)
                   }

                   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
                           )
                   })
               }

               Device (PMIO)
               {
                   Name (_HID, EisaId ("PNP0C02"))
                   Name (_UID, 0x02)
                   Method (_CRS, 0, NotSerialized)
                   {
                       Name (BUF0, ResourceTemplate ()
                       {
                           IO (Decode16,
                               0x0400,             // Range Minimum
                               0x0400,             // Range Maximum
                               0x01,               // Alignment
                               0xD0,               // Length
                               )
                           IO (Decode16,
                               0x04D2,             // Range Minimum
                               0x04D2,             // Range Maximum
                               0x01,               // Alignment
                               0x2E,               // Length
                               )
                       })
                       Return (BUF0)
                   }
               }
           }

           Device (UHC1)
           {
               Name (_ADR, 0x001D0000)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x03, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x34, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC2)
           {
               Name (_ADR, 0x001D0001)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x04, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x35, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC3)
           {
               Name (_ADR, 0x001D0002)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0C, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x36, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC4)
           {
               Name (_ADR, 0x001D0003)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0E, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x37, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (US31)
           {
               Name (_ADR, 0x001A0000)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0E, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x37, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC5)
           {
               Name (_ADR, 0x001A0001)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x05, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x38, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC6)
           {
               Name (_ADR, 0x001A0002)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

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

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x20, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x39, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (EHC1)
           {
               Name (_ADR, 0x001D0007)
               OperationRegion (PMCS, PCI_Config, 0x54, 0x02)
               Field (PMCS, WordAcc, NoLock, Preserve)
               {
                       ,   15, 
                   PMES,   1
               }

               OperationRegion (PWCR, PCI_Config, 0x62, 0x02)
               Field (PWCR, AnyAcc, NoLock, Preserve)
               {
                   URE2,   9
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URE2)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x01FF, URE2)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x0C)
                       {
                           "AAPL,current-available", 
                           0x05DC, 
                           "AAPL,current-extra", 
                           0x04B0, 
                           "AAPL,current-in-sleep", 
                           0x09C4, 
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x3A, 0x3A, 0x00, 0x00
                           }, 

                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x01
                           }, 

                           "device_type", 
                           Buffer (0x05)
                           {
                               "EHCI"
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (EHC2)
           {
               Name (_ADR, 0x001A0007)
               OperationRegion (PMCS, PCI_Config, 0x54, 0x02)
               Field (PMCS, WordAcc, NoLock, Preserve)
               {
                       ,   15, 
                   PMES,   1
               }

               OperationRegion (PWCR, PCI_Config, 0x62, 0x02)
               Field (PWCR, AnyAcc, NoLock, Preserve)
               {
                   URE2,   9
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URE2)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x01FF, URE2)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x0C)
                       {
                           "AAPL,current-available", 
                           0x05DC, 
                           "AAPL,current-extra", 
                           0x04B0, 
                           "AAPL,current-in-sleep", 
                           0x09C4, 
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x3C, 0x3A, 0x00, 0x00
                           }, 

                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x02
                           }, 

                           "device_type", 
                           Buffer (0x05)
                           {
                               "EHCI"
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (IDE1)
           {
               Name (_ADR, 0x001F0002)
               OperationRegion (PCI, PCI_Config, 0x40, 0x20)
               Field (PCI, DWordAcc, NoLock, Preserve)
               {
                   ITM0,   16, 
                   ITM1,   16, 
                   SIT0,   4, 
                   SIT1,   4, 
                           Offset (0x08), 
                   UDC0,   2, 
                   UDC1,   2, 
                           Offset (0x0A), 
                   UDT0,   8, 
                   UDT1,   8, 
                           Offset (0x14), 
                   ICF0,   2, 
                   ICF1,   2, 
                       ,   6, 
                   WPPE,   1, 
                       ,   1, 
                   FAS0,   2, 
                   FAS1,   2
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x81, 0x26, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

               Device (PRIM)
               {
                   Name (_ADR, Zero)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (GTM (ITM0, SIT0, UDC0, UDT0, ICF0, FAS0), Local0)
                       Return (Local0)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (STM (Arg0, Arg1, Arg2), Local0)
                       CreateDWordField (Local0, Zero, ITM)
                       CreateDWordField (Local0, 0x04, SIT)
                       CreateDWordField (Local0, 0x08, UDC)
                       CreateDWordField (Local0, 0x0C, UDT)
                       CreateDWordField (Local0, 0x10, ICF)
                       CreateDWordField (Local0, 0x14, FAS)
                       Store (UDC, UDC0)
                       Store (UDT, UDT0)
                       Store (ICF, ICF0)
                       Store (FAS, FAS0)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF0 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                           Return (Local0)
                       }
                   }

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF1 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                           Return (Local0)
                       }
                   }
               }

               Device (SECD)
               {
                   Name (_ADR, One)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (GTM (ITM1, SIT1, UDC1, UDT1, ICF1, FAS1), Local0)
                       Return (Local0)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (STM (Arg0, Arg1, Arg2), Local0)
                       CreateDWordField (Local0, Zero, ITM)
                       CreateDWordField (Local0, 0x04, SIT)
                       CreateDWordField (Local0, 0x08, UDC)
                       CreateDWordField (Local0, 0x0C, UDT)
                       CreateDWordField (Local0, 0x10, ICF)
                       CreateDWordField (Local0, 0x14, FAS)
                       Store (UDC, UDC1)
                       Store (UDT, UDT1)
                       Store (ICF, ICF1)
                       Store (FAS, FAS1)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF0 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                           Return (Local0)
                       }
                   }

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF1 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                           Return (Local0)
                       }
                   }
               }
           }

           Device (IDE2)
           {
               Name (_ADR, 0x001F0005)
               OperationRegion (PCI, PCI_Config, 0x40, 0x20)
               Field (PCI, DWordAcc, NoLock, Preserve)
               {
                   ITM0,   16, 
                   ITM1,   16, 
                   SIT0,   4, 
                   SIT1,   4, 
                           Offset (0x08), 
                   UDC0,   1, 
                       ,   1, 
                   UDC1,   1, 
                           Offset (0x0A), 
                   UDT0,   8, 
                   UDT1,   8, 
                           Offset (0x14), 
                   ICF0,   2, 
                   ICF1,   2, 
                       ,   6, 
                   WPPE,   1, 
                       ,   1, 
                   FAS0,   2, 
                   FAS1,   2
               }

               Device (PRIM)
               {
                   Name (_ADR, Zero)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (GTM (ITM0, SIT0, UDC0, UDT0, ICF0, FAS0), Local0)
                       Return (Local0)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (STM (Arg0, Arg1, Arg2), Local0)
                       CreateDWordField (Local0, Zero, ITM)
                       CreateDWordField (Local0, 0x04, SIT)
                       CreateDWordField (Local0, 0x08, UDC)
                       CreateDWordField (Local0, 0x0C, UDT)
                       CreateDWordField (Local0, 0x10, ICF)
                       CreateDWordField (Local0, 0x14, FAS)
                       Store (UDC, UDC0)
                       Store (UDT, UDT0)
                       Store (ICF, ICF0)
                       Store (FAS, FAS0)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF0 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                           Return (Local0)
                       }
                   }

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF1 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                           Return (Local0)
                       }
                   }
               }

               Device (SECD)
               {
                   Name (_ADR, One)
                   Method (_GTM, 0, NotSerialized)
                   {
                       Store (GTM (ITM1, SIT1, UDC1, UDT1, ICF1, FAS1), Local0)
                       Return (Local0)
                   }

                   Method (_STM, 3, NotSerialized)
                   {
                       Store (STM (Arg0, Arg1, Arg2), Local0)
                       CreateDWordField (Local0, Zero, ITM)
                       CreateDWordField (Local0, 0x04, SIT)
                       CreateDWordField (Local0, 0x08, UDC)
                       CreateDWordField (Local0, 0x0C, UDT)
                       CreateDWordField (Local0, 0x10, ICF)
                       CreateDWordField (Local0, 0x14, FAS)
                       Store (UDC, UDC1)
                       Store (UDT, UDT1)
                       Store (ICF, ICF1)
                       Store (FAS, FAS1)
                   }

                   Device (DRV0)
                   {
                       Name (_ADR, Zero)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF0 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                           Return (Local0)
                       }
                   }

                   Device (DRV1)
                   {
                       Name (_ADR, One)
                       Name (H15F, Zero)
                       Method (_GTF, 0, NotSerialized)
                       {
                           Store (GTF1 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                           Return (Local0)
                       }
                   }
               }
           }

           Method (GTM, 6, NotSerialized)
           {
               Store (Buffer (0x14) {}, Local0)
               CreateDWordField (Local0, Zero, PIO0)
               CreateDWordField (Local0, 0x04, DMA0)
               CreateDWordField (Local0, 0x08, PIO1)
               CreateDWordField (Local0, 0x0C, DMA1)
               CreateDWordField (Local0, 0x10, FLAG)
               Store (0x10, FLAG)
               If (LOr (And (Arg0, 0x08), LNot (And (Arg0, One
                   ))))
               {
                   Store (0x0384, PIO0)
               }
               Else
               {
                   Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                       Arg0, 0x3000), 0x0C), Local1)
                   Multiply (Subtract (0x09, Local1), 0x1E, PIO0)
               }

               If (LOr (LAnd (Arg0, 0x4000), LAnd (Arg2, One)))
               {
                   If (LOr (And (Arg0, 0x80), LNot (And (Arg0, 0x10
                       ))))
                   {
                       Store (0x0384, PIO1)
                   }
                   Else
                   {
                       Add (And (Arg1, 0x03), ShiftRight (And (Arg1, 0x0C), 
                           0x02), Local1)
                       Multiply (Subtract (0x09, Local1), 0x1E, PIO1)
                   }
               }
               Else
               {
                   Store (PIO0, PIO1)
               }

               If (And (Arg2, One))
               {
                   Subtract (0x04, And (Arg3, 0x03), Local1)
                   If (And (Arg5, One))
                   {
                       Store (0x14, DMA0)
                   }
                   Else
                   {
                       If (And (Arg4, One))
                       {
                           Multiply (Local1, 0x0F, DMA0)
                       }
                       Else
                       {
                           Multiply (Local1, 0x1E, DMA0)
                       }
                   }
               }
               Else
               {
                   Store (PIO0, DMA0)
               }

               If (LOr (LAnd (Arg0, 0x4000), LAnd (Arg2, One)))
               {
                   If (And (Arg2, 0x02))
                   {
                       Subtract (0x04, ShiftRight (And (Arg3, 0x30), 0x04), Local1)
                       If (And (Arg5, 0x02))
                       {
                           Store (0x14, DMA1)
                       }
                       Else
                       {
                           If (And (Arg4, 0x02))
                           {
                               Multiply (Local1, 0x0F, DMA1)
                           }
                           Else
                           {
                               Multiply (Local1, 0x1E, DMA1)
                           }
                       }
                   }
                   Else
                   {
                       Store (PIO1, DMA1)
                   }
               }
               Else
               {
                   Store (DMA0, DMA1)
               }

               Store (Zero, FLAG)
               If (And (Arg0, One))
               {
                   Or (FLAG, 0x10, FLAG)
               }

               If (And (Arg2, One))
               {
                   Or (FLAG, One, FLAG)
               }

               If (And (Arg0, 0x02))
               {
                   Or (FLAG, 0x02, FLAG)
               }

               If (And (Arg2, 0x02))
               {
                   Or (FLAG, 0x04, FLAG)
               }

               If (And (Arg0, 0x20))
               {
                   Or (FLAG, 0x08, FLAG)
               }

               Return (Local0)
           }

           Method (STM, 3, NotSerialized)
           {
               Store (Buffer (0x18) {}, Local7)
               CreateDWordField (Local7, Zero, ITM)
               CreateDWordField (Local7, 0x04, SIT)
               CreateDWordField (Local7, 0x08, UDC)
               CreateDWordField (Local7, 0x0C, UDT)
               CreateDWordField (Local7, 0x10, ICF)
               CreateDWordField (Local7, 0x14, FAS)
               CreateDWordField (Arg0, Zero, PIO0)
               CreateDWordField (Arg0, 0x04, DMA0)
               CreateDWordField (Arg0, 0x08, PIO1)
               CreateDWordField (Arg0, 0x0C, DMA1)
               CreateDWordField (Arg0, 0x10, FLAG)
               Store (FLAG, Local4)
               Store (0x8000, Local0)
               If (And (Local4, 0x02))
               {
                   Or (Local0, 0x07, Local0)
               }

               If (And (Local4, 0x08))
               {
                   Or (Local0, 0x4000, Local0)
                   Or (Local0, 0x70, Local0)
               }

               If (LAnd (LLess (DMA0, PIO0), LNot (And (Local4, One))))
               {
                   Or (Local0, 0x08, Local0)
               }

               If (LAnd (LLess (DMA1, PIO1), LNot (And (Local4, 0x04))))
               {
                   Or (Local0, 0x80, Local0)
               }

               If (PIO0)
               {
                   If (LLess (PIO0, 0x0384))
                   {
                       Or (Local0, One, Local0)
                   }
               }

               If (PIO1)
               {
                   If (LLess (PIO1, 0x0384))
                   {
                       Or (Local0, 0x10, Local0)
                   }
               }

               If (And (Local4, One))
               {
                   Store (PIO0, Local1)
               }
               Else
               {
                   Store (DMA0, Local1)
               }

               If (Local1)
               {
                   If (LLessEqual (Local1, 0x78))
                   {
                       Or (Local0, 0x2300, Local0)
                   }
                   Else
                   {
                       If (LLessEqual (Local1, 0xB4))
                       {
                           Or (Local0, 0x2100, Local0)
                       }
                       Else
                       {
                           If (LLessEqual (Local1, 0xF0))
                           {
                               Or (Local0, 0x1000, Local0)
                           }
                       }
                   }
               }

               Store (Local0, ITM)
               Store (Zero, Local0)
               If (And (Local4, 0x04))
               {
                   Store (PIO1, Local1)
               }
               Else
               {
                   Store (DMA1, Local1)
               }

               If (Local1)
               {
                   If (LLessEqual (Local1, 0x78))
                   {
                       Store (0x0B, Local0)
                   }
                   Else
                   {
                       If (LLessEqual (Local1, 0xB4))
                       {
                           Store (0x09, Local0)
                       }
                       Else
                       {
                           If (LLessEqual (Local1, 0xF0))
                           {
                               Store (0x04, Local0)
                           }
                       }
                   }
               }

               Store (Local0, SIT)
               Store (Zero, Local0)
               If (And (Local4, One))
               {
                   Or (Local0, One, Local0)
               }

               If (And (Local4, 0x04))
               {
                   Or (Local0, 0x02, Local0)
               }

               Store (Local0, UDC)
               Store (Zero, Local0)
               If (And (Local4, One))
               {
                   If (LEqual (DMA0, 0x14))
                   {
                       Store (One, Local0)
                   }
                   Else
                   {
                       If (LLess (DMA0, 0x3C))
                       {
                           Divide (DMA0, 0x0F, , Local1)
                       }
                       Else
                       {
                           Divide (DMA0, 0x1E, , Local1)
                       }

                       Subtract (0x04, Local1, Local0)
                   }
               }

               If (And (Local4, 0x04))
               {
                   If (LEqual (DMA1, 0x14))
                   {
                       Store (One, Local1)
                   }
                   Else
                   {
                       If (LLess (DMA1, 0x3C))
                       {
                           Divide (DMA1, 0x0F, , Local1)
                       }
                       Else
                       {
                           Divide (DMA1, 0x1E, , Local1)
                       }

                       Subtract (0x04, Local1, Local1)
                   }

                   ShiftLeft (Local1, 0x04, Local1)
                   Or (Local0, Local1, Local0)
               }

               Store (Local0, UDT)
               Store (Zero, Local0)
               If (DMA0)
               {
                   If (LGreater (DMA0, 0x14))
                   {
                       If (LLess (DMA0, 0x3C))
                       {
                           Or (Local0, One, Local0)
                       }
                   }
               }

               If (DMA1)
               {
                   If (LGreater (DMA1, 0x14))
                   {
                       If (LLess (DMA1, 0x3C))
                       {
                           Or (Local0, 0x02, Local0)
                       }
                   }
               }

               Store (Local0, ICF)
               Store (Zero, Local0)
               If (LEqual (DMA0, 0x14))
               {
                   Or (Local0, One, Local0)
               }

               If (LEqual (DMA1, 0x14))
               {
                   Or (Local0, 0x02, Local0)
               }

               Store (Local0, FAS)
               Return (Local7)
           }

           Method (H15P, 1, NotSerialized)
           {
               Name (BUFF, Buffer (0x08)
               {
                   /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
               })
               Store (Arg0, Local0)
               Store (BUFF, Local1)
               Concatenate (Local0, Local1, Local7)
               CreateWordField (Local7, 0x02, CYL)
               CreateWordField (Local7, 0x06, HEAD)
               CreateWordField (Local7, 0x0C, SPT)
               If (LAnd (LGreaterEqual (HEAD, 0x10), LGreaterEqual (CYL, 0x2000)))
               {
                   Return (SPT)
               }
               Else
               {
                   Return (Zero)
               }
           }

           Method (GTF0, 7, NotSerialized)
           {
               Store (Buffer (0x07)
                   {
                       0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                   }, Local7)
               CreateByteField (Local7, One, MODE)
               If (And (Arg2, One))
               {
                   And (Arg3, 0x03, Local0)
                   If (And (Arg6, One))
                   {
                       Add (Local0, 0x04, Local0)
                   }
                   Else
                   {
                       If (And (Arg4, One))
                       {
                           Add (Local0, 0x02, Local0)
                       }
                   }

                   Or (Local0, 0x40, MODE)
               }
               Else
               {
                   Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                       Arg0, 0x3000), 0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x22, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x21, MODE)
                       }
                       Else
                       {
                           Store (0x20, MODE)
                       }
                   }
               }

               Concatenate (Local7, Local7, Local6)
               If (LOr (And (Arg0, 0x08), LNot (And (Arg0, One
                   ))))
               {
                   If (And (Arg0, 0x02))
                   {
                       Store (Zero, MODE)
                   }
                   Else
                   {
                       Store (One, MODE)
                   }
               }
               Else
               {
                   Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                       Arg0, 0x3000), 0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x0C, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x0B, MODE)
                       }
                       Else
                       {
                           Store (0x0A, MODE)
                       }
                   }
               }

               Concatenate (Local6, Local7, Local5)
               If (Arg5)
               {
                   Store (Buffer (0x07)
                       {
                           0x00, 0x00, 0x00, 0x00, 0x00, 0xAE, 0x91
                       }, Local4)
                   CreateByteField (Local4, One, SPT)
                   Store (Arg5, SPT)
                   Concatenate (Local5, Local4, Local6)
                   Return (Local6)
               }
               Else
               {
                   Return (Local5)
               }
           }

           Method (GTF1, 7, NotSerialized)
           {
               Store (Buffer (0x07)
                   {
                       0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                   }, Local7)
               CreateByteField (Local7, One, MODE)
               If (And (Arg2, 0x02))
               {
                   ShiftRight (And (Arg3, 0x30), 0x04, Local0)
                   If (And (Arg6, 0x02))
                   {
                       Add (Local0, 0x04, Local0)
                   }
                   Else
                   {
                       If (And (Arg4, 0x02))
                       {
                           Add (Local0, 0x02, Local0)
                       }
                   }

                   Or (Local0, 0x40, MODE)
               }
               Else
               {
                   Add (ShiftRight (And (Arg1, 0x03), 0x02), And (Arg1, 
                       0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x22, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x21, MODE)
                       }
                       Else
                       {
                           Store (0x20, MODE)
                       }
                   }
               }

               Concatenate (Local7, Local7, Local6)
               If (LOr (And (Arg0, 0x80), LNot (And (Arg0, 0x10
                   ))))
               {
                   If (And (Arg0, 0x20))
                   {
                       Store (Zero, MODE)
                   }
                   Else
                   {
                       Store (One, MODE)
                   }
               }
               Else
               {
                   Add (ShiftRight (And (Arg1, 0x03), 0x02), And (Arg1, 
                       0x0C), Local0)
                   If (LGreaterEqual (Local0, 0x05))
                   {
                       Store (0x0C, MODE)
                   }
                   Else
                   {
                       If (LGreaterEqual (Local0, 0x03))
                       {
                           Store (0x0B, MODE)
                       }
                       Else
                       {
                           Store (0x0A, MODE)
                       }
                   }
               }

               Concatenate (Local6, Local7, Local5)
               If (Arg5)
               {
                   Store (Buffer (0x07)
                       {
                           0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x91
                       }, Local4)
                   CreateByteField (Local4, One, SPT)
                   Store (Arg5, SPT)
                   Concatenate (Local5, Local4, Local6)
                   Return (Local6)
               }
               Else
               {
                   Return (Local5)
               }
           }

           Device (PX43)
           {
               Name (_ADR, 0x001F0003)
               OperationRegion (PBAS, PCI_Config, 0x20, 0x02)
               Field (PBAS, ByteAcc, NoLock, Preserve)
               {
                   BAS0,   16
               }

               Method (SMBB, 0, NotSerialized)
               {
                   And (BAS0, 0xFFFE, Local0)
                   Return (Local0)
               }
           }

           Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x0D, 
                       0x05
                   })
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x0A)
                       {
                           "built-in", 
                           Buffer (One)
                           {
                               0x01
                           }, 

                           "codec-id", 
                           Buffer (0x04)
                           {
                               0x88, 0x08, 0xEC, 0x10
                           }, 

                           "layout-id", 
                           Buffer (0x04)
                           {
                               0x78, 0x03, 0x00, 0x00
                           }, 

                           "device-type", 
                           Buffer (0x10)
                           {
                               "Realtek ALC888"
                           }, 

                           "PinConfigurations", 
                           Buffer (0x28)
                           {
                               /* 0000 */    0x10, 0x90, 0xA1, 0x01, 0x20, 0x90, 0xA1, 0x02, 
                               /* 0008 */    0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02, 
                               /* 0010 */    0x30, 0x40, 0x11, 0x01, 0x40, 0x40, 0x01, 0x01, 
                               /* 0018 */    0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01, 
                               /* 0020 */    0x70, 0x61, 0x4B, 0x01, 0xA0, 0x01, 0xCB, 0x01
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Name (BUFA, ResourceTemplate ()
           {
               IRQ (Level, ActiveLow, Shared, )
                   {3,4,5,6,7,9,10,11,12,14,15}
           })
           Name (BUFB, ResourceTemplate ()
           {
               IRQ (Level, ActiveLow, Shared, )
                   {}
           })
           CreateWordField (BUFB, One, IRQV)
           Device (LNKA)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, One)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRA, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRA, 0x80, PIRA)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRA, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRA)
               }
           }

           Device (LNKB)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x02)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRB, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRB, 0x80, PIRB)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRB, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRB)
               }
           }

           Device (LNKC)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x03)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRC, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRC, 0x80, PIRC)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRC, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRC)
               }
           }

           Device (LNKD)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x04)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRD, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRD, 0x80, PIRD)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRD, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRD)
               }
           }

           Device (LNKE)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x05)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRE, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRE, 0x80, PIRE)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRE, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRE)
               }
           }

           Device (LNKF)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x06)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRF, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRF, 0x80, PIRF)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRF, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRF)
               }
           }

           Device (LNK0)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x07)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRG, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRG, 0x80, PIRG)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRG, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRG)
               }
           }

           Device (LNK1)
           {
               Name (_HID, EisaId ("PNP0C0F"))
               Name (_UID, 0x08)
               Method (_STA, 0, NotSerialized)
               {
                   And (PIRH, 0x80, Local0)
                   If (LEqual (Local0, 0x80))
                   {
                       Return (0x09)
                   }
                   Else
                   {
                       Return (0x0B)
                   }
               }

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

               Method (_DIS, 0, NotSerialized)
               {
                   Or (PIRH, 0x80, PIRH)
               }

               Method (_CRS, 0, NotSerialized)
               {
                   And (PIRH, 0x0F, Local0)
                   ShiftLeft (One, Local0, IRQV)
                   Return (BUFB)
               }

               Method (_SRS, 1, NotSerialized)
               {
                   CreateWordField (Arg0, One, IRQ1)
                   FindSetRightBit (IRQ1, Local0)
                   Decrement (Local0)
                   Store (Local0, PIRH)
               }
           }

           Method (_PRW, 0, NotSerialized)
           {
               Return (Package (0x02)
               {
                   0x0B, 
                   0x05
               })
           }
       }

       Device (MEM)
       {
           Name (_HID, EisaId ("PNP0C01"))
           Method (_CRS, 0, NotSerialized)
           {
               Name (BUF0, ResourceTemplate ()
               {
                   Memory32Fixed (ReadWrite,
                       0x000F0000,         // Address Base
                       0x00004000,         // Address Length
                       _Y0B)
                   Memory32Fixed (ReadWrite,
                       0x000F4000,         // Address Base
                       0x00004000,         // Address Length
                       _Y0C)
                   Memory32Fixed (ReadWrite,
                       0x000F8000,         // Address Base
                       0x00004000,         // Address Length
                       _Y0D)
                   Memory32Fixed (ReadWrite,
                       0x000FC000,         // Address Base
                       0x00004000,         // Address Length
                       _Y0E)
                   Memory32Fixed (ReadWrite,
                       0x00000000,         // Address Base
                       0x00010000,         // Address Length
                       _Y0A)
                   Memory32Fixed (ReadWrite,
                       0x00000000,         // Address Base
                       0x000A0000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0x00100000,         // Address Base
                       0x00000000,         // Address Length
                       _Y10)
                   Memory32Fixed (ReadWrite,
                       0xFEC00000,         // Address Base
                       0x00001000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0xFED10000,         // Address Base
                       0x0000E000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0xFED20000,         // Address Base
                       0x00070000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0xFEE00000,         // Address Base
                       0x00001000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0xFFB00000,         // Address Base
                       0x00080000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0xFFF00000,         // Address Base
                       0x00100000,         // Address Length
                       )
                   Memory32Fixed (ReadWrite,
                       0x000E0000,         // Address Base
                       0x00010000,         // Address Length
                       _Y0F)
               })
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0A._BAS, ACMM)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0A._LEN, ASSM)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0B._BAS, RMA1)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0B._LEN, RSS1)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0C._BAS, RMA2)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0C._LEN, RSS2)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._BAS, RMA3)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._LEN, RSS3)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._BAS, RMA4)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._LEN, RSS4)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._BAS, ERMA)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._LEN, ERMS)
               CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._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 (ERMA, Local1)
               If (LGreater (RMA1, 0x000D0000))
               {
                   If (LLess (RMA1, 0x000F0000))
                   {
                       Add (RMA1, RSS1, Local0)
                       If (LGreater (Local0, 0x000E0000))
                       {
                           If (LGreater (Local0, Local1))
                           {
                               Store (Local0, Local1)
                           }
                       }
                   }
               }

               If (LGreater (RMA2, 0x000D0000))
               {
                   If (LLess (RMA2, 0x000F0000))
                   {
                       Add (RMA2, RSS2, Local0)
                       If (LGreater (Local0, 0x000E0000))
                       {
                           If (LGreater (Local0, Local1))
                           {
                               Store (Local0, Local1)
                           }
                       }
                   }
               }

               If (LGreater (RMA3, 0x000D0000))
               {
                   If (LLess (RMA3, 0x000F0000))
                   {
                       Add (RMA3, RSS3, Local0)
                       If (LGreater (Local0, 0x000E0000))
                       {
                           If (LGreater (Local0, Local1))
                           {
                               Store (Local0, Local1)
                           }
                       }
                   }
               }

               If (LGreater (Local1, ERMA))
               {
                   Subtract (Local1, ERMA, Local0)
                   If (LLessEqual (Local0, 0x00010000))
                   {
                       Store (Local1, ERMA)
                       Subtract (0x00010000, Local0, ERMS)
                   }
               }

               Store (AMEM, ACMM)
               And (AMEM, 0x000FFFFF, Local0)
               Subtract (0x00100000, Local0, ASSM)
               Return (BUF0)
           }
       }

       Device (FWH)
       {
           Name (_HID, EisaId ("INT0800"))
           Method (_CRS, 0, NotSerialized)
           {
               Name (FWH0, ResourceTemplate ()
               {
                   Memory32Fixed (ReadWrite,
                       0xFFB80000,         // Address Base
                       0x00080000,         // Address Length
                       )
               })
               Return (FWH0)
           }
       }

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

Link to comment
https://www.insanelymac.com/forum/topic/215106-d-link-dwa-547-not-recognized/
Share on other sites

Hi Prof Dre,

 

I'm using a DWA-547. Yours is detected:

 

04:02.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)

 

AFAIK or better remember the device ID (pci168c,23) had to be added to IO80211.kext - show package content --> contents --> plugins --> AirportAtheros.kext --> show package content --> contents --> info.plist.

 

Remember to repair permissions, reboot and enjoy ;-)

 

Laberlohe

 

PS: if problems occure notify me and i'll upload my io80211.kext

×
×
  • Create New...