Skip to content

Instantly share code, notes, and snippets.

@rschmukler
Created July 23, 2011 19:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rschmukler/1101770 to your computer and use it in GitHub Desktop.
Save rschmukler/1101770 to your computer and use it in GitHub Desktop.
DefinitionBlock ("DSDT-NEW.aml", "DSDT", 2, "ALASKA", "A M I", 0x00000015)
{
Name (SP1O, 0x4E)
Name (IOCE, 0x87)
Name (IOCL, 0xAA)
Name (IO1B, 0x0290)
Name (IO1L, 0x10)
Name (IO2B, 0x0A00)
Name (IO2L, 0x10)
Name (TCBR, 0xFED08000)
Name (TCLT, 0x1000)
Name (SRCB, 0xFED1C000)
Name (SRCL, 0x4000)
Name (SUSW, 0xFF)
Name (PMBS, 0x0400)
Name (PMLN, 0x80)
Name (SMIP, 0xB2)
Name (APCB, 0xFEC00000)
Name (APCL, 0x00100000)
Name (PM30, 0x0430)
Name (SMBS, 0x1180)
Name (SMBL, 0x20)
Name (HPTB, 0xFED00000)
Name (HPTC, 0xFED1F404)
Name (GPBS, 0x0500)
Name (GPLN, 0x80)
Name (PEBS, 0xE0000000)
Name (PELN, 0x10000000)
Name (LAPB, 0xFEE00000)
Name (VTDS, 0xFED90000)
Name (VTDL, 0x4000)
Name (ACPH, 0xDE)
Name (ASSB, Zero)
Name (AOTB, Zero)
Name (AAXB, Zero)
Name (PEHP, One)
Name (SHPC, Zero)
Name (PEPM, One)
Name (PEER, One)
Name (PECS, One)
Name (ITKE, Zero)
Name (MBEC, 0xFFFF)
Name (TOBS, 0x0460)
Name (SUCC, One)
Name (NVLD, 0x02)
Name (CRIT, 0x04)
Name (NCRT, 0x06)
Name (LDST, One)
Name (SMIT, 0xB2)
Name (OFST, 0x35)
Name (TPMF, Zero)
Name (TMF1, Zero)
Name (TMF2, Zero)
Name (TMF3, Zero)
Name (PICM, Zero)
Method (_PIC, 1, NotSerialized)
{
If (Arg0)
{
Store (0xAA, DBG8)
}
Else
{
Store (0xAC, DBG8)
}
Store (Arg0, PICM)
}
Name (OSVR, Ones)
Method (OSFL, 0, NotSerialized)
{
If (LNotEqual (OSVR, Ones))
{
Return (OSVR)
}
If (LEqual (PICM, Zero))
{
Store (0xAC, DBG8)
}
Store (One, OSVR)
If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Linux"))
{
Store (0x03, OSVR)
}
If (_OSI ("Windows 2001"))
{
Store (0x04, OSVR)
}
If (_OSI ("Windows 2001.1"))
{
Store (0x05, OSVR)
}
If (_OSI ("FreeBSD"))
{
Store (0x06, OSVR)
}
If (_OSI ("HP-UX"))
{
Store (0x07, OSVR)
}
If (_OSI ("OpenVMS"))
{
Store (0x08, OSVR)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x09, OSVR)
}
If (_OSI ("Windows 2001 SP2"))
{
Store (0x0A, OSVR)
}
If (_OSI ("Windows 2001 SP3"))
{
Store (0x0B, OSVR)
}
If (_OSI ("Windows 2006"))
{
Store (0x0C, OSVR)
}
If (_OSI ("Windows 2006 SP1"))
{
Store (0x0D, OSVR)
}
If (_OSI ("Windows 2009"))
{
Store (0x0E, OSVR)
}
}
Else
{
If (MCTH (_OS, "Microsoft Windows NT"))
{
Store (Zero, OSVR)
}
If (MCTH (_OS, "Microsoft Windows"))
{
Store (One, OSVR)
}
If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x02, OSVR)
}
If (MCTH (_OS, "Linux"))
{
Store (0x03, OSVR)
}
If (MCTH (_OS, "FreeBSD"))
{
Store (0x06, OSVR)
}
If (MCTH (_OS, "HP-UX"))
{
Store (0x07, OSVR)
}
If (MCTH (_OS, "OpenVMS"))
{
Store (0x08, OSVR)
}
}
Return (OSVR)
}
Method (MCTH, 2, NotSerialized)
{
If (LLess (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)
}
Name (PRWP, Package (0x02)
{
Zero,
Zero
})
Method (GPRW, 2, NotSerialized)
{
Store (Arg0, Index (PRWP, Zero))
Store (ShiftLeft (SS1, One), Local0)
Or (Local0, ShiftLeft (SS2, 0x02), Local0)
Or (Local0, ShiftLeft (SS3, 0x03), Local0)
Or (Local0, ShiftLeft (SS4, 0x04), Local0)
If (And (ShiftLeft (One, Arg1), Local0))
{
Store (Arg1, Index (PRWP, One))
}
Else
{
ShiftRight (Local0, One, Local0)
If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
{
FindSetLeftBit (Local0, Index (PRWP, One))
}
Else
{
FindSetRightBit (Local0, Index (PRWP, One))
}
}
Return (PRWP)
}
Name (WAKP, Package (0x02)
{
Zero,
Zero
})
OperationRegion (DEB0, SystemIO, 0x80, One)
Field (DEB0, ByteAcc, NoLock, Preserve)
{
DBG8, 8
}
OperationRegion (DEB1, SystemIO, 0x90, 0x02)
Field (DEB1, WordAcc, NoLock, Preserve)
{
DBG9, 16
}
Name (SS1, One)
Name (SS2, Zero)
Name (SS3, One)
Name (SS4, One)
Name (IOST, One)
Name (TOPM, Zero)
Name (ROMS, 0xFFE00000)
Name (VGAF, One)
Scope (_SB)
{
Name (PR00, Package (0x15)
{
Package (0x04)
{
0x001FFFFF,
Zero,
LNKC,
Zero
},
Package (0x04)
{
0x001FFFFF,
One,
LNKD,
Zero
},
Package (0x04)
{
0x001FFFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0x001DFFFF,
Zero,
LNKH,
Zero
},
Package (0x04)
{
0x001AFFFF,
Zero,
LNKA,
Zero
},
Package (0x04)
{
0x001BFFFF,
Zero,
LNKG,
Zero
},
Package (0x04)
{
0x0016FFFF,
Zero,
LNKA,
Zero
},
Package (0x04)
{
0x0016FFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0x0016FFFF,
One,
LNKB,
Zero
},
Package (0x04)
{
0x001CFFFF,
Zero,
LNKB,
Zero
},
Package (0x04)
{
0x001CFFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0x001CFFFF,
0x02,
LNKC,
Zero
},
Package (0x04)
{
0x001CFFFF,
0x03,
LNKD,
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)
{
0x0006FFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0x0006FFFF,
One,
LNKA,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0x0006FFFF,
0x03,
LNKC,
Zero
}
})
Name (AR00, Package (0x15)
{
Package (0x04)
{
0x001FFFFF,
Zero,
Zero,
0x12
},
Package (0x04)
{
0x001FFFFF,
One,
Zero,
0x13
},
Package (0x04)
{
0x001FFFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x001DFFFF,
Zero,
Zero,
0x17
},
Package (0x04)
{
0x001AFFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0x001BFFFF,
Zero,
Zero,
0x16
},
Package (0x04)
{
0x0016FFFF,
Zero,
Zero,
0x10
},
Package (0x04)
{
0x0016FFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x0016FFFF,
One,
Zero,
0x11
},
Package (0x04)
{
0x001CFFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0x001CFFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0x001CFFFF,
0x02,
Zero,
0x12
},
Package (0x04)
{
0x001CFFFF,
0x03,
Zero,
0x13
},
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)
{
0x0006FFFF,
Zero,
Zero,
0x13
},
Package (0x04)
{
0x0006FFFF,
One,
Zero,
0x10
},
Package (0x04)
{
0x0006FFFF,
0x02,
Zero,
0x11
},
Package (0x04)
{
0x0006FFFF,
0x03,
Zero,
0x12
}
})
Name (PR20, Package (0x08)
{
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)
{
0x0001FFFF,
Zero,
LNKB,
Zero
},
Package (0x04)
{
0x0001FFFF,
One,
LNKC,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x02,
LNKD,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x03,
LNKA,
Zero
}
})
Name (AR20, Package (0x08)
{
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)
{
0x0001FFFF,
Zero,
Zero,
0x11
},
Package (0x04)
{
0x0001FFFF,
One,
Zero,
0x12
},
Package (0x04)
{
0x0001FFFF,
0x02,
Zero,
0x13
},
Package (0x04)
{
0x0001FFFF,
0x03,
Zero,
0x10
}
})
Name (PR11, 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 (AR11, 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
}
})
Name (PR12, 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 (AR12, 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
}
})
Name (PR13, 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 (AR13, 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
}
})
Name (PR14, Package (0x04)
{
Package (0x04)
{
0xFFFF,
Zero,
LNKD,
Zero
},
Package (0x04)
{
0xFFFF,
One,
LNKC,
Zero
},
Package (0x04)
{
0xFFFF,
0x02,
LNKB,
Zero
},
Package (0x04)
{
0xFFFF,
0x03,
LNKA,
Zero
}
})
Name (AR14, 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
}
})
Name (PR15, 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 (AR15, 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
}
})
Name (PR16, 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 (AR16, 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
}
})
Name (PR17, 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 (AR17, 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
}
})
Name (PR18, 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 (AR18, 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
}
})
Name (PR01, 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 (AR01, 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
}
})
Name (PR02, 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 (AR02, 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
}
})
Name (PR03, 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 (AR03, 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
}
})
Name (PR04, 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 (AR04, 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
}
})
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Alias (PRSA, PRSB)
Name (PRSC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,10,11,12,14,15}
})
Alias (PRSC, PRSD)
Alias (PRSA, PRSE)
Alias (PRSA, PRSF)
Alias (PRSA, PRSG)
Alias (PRSA, PRSH)
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08"))
Name (_CID, EisaId ("PNP0A03"))
Name (_ADR, Zero)
Method (^BN00, 0, NotSerialized)
{
Return (Zero)
}
Method (_BBN, 0, NotSerialized)
{
Return (BN00 ())
}
Name (_UID, Zero)
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR00)
}
Return (PR00)
}
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
Name (_ADR, Zero)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x1A)
{
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,display_cfg",
Buffer (0x08)
{
0x03, 0x01, 0x00, 0x00
},
"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},
"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,display_cfg",
Buffer (0x08)
{
0xFF, 0xFF, 0x00, 0x01
},
"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},
"NVCAP",
Buffer (0x14)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
"device_type",
Buffer (0x0D)
{
"NVDA,GeForce"
},
"model",
Buffer (0x17)
{
"nVidia 460 GTX"
},
"rom-revision",
Buffer (0x25)
{
"nVidia 460 GTX OpenGL Engine"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
Device (MCH)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x0A)
Name (MCHR, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED10000, // Address Base
0x0000A000, // Address Length
)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x1FE00000, // Address Length
_Y00)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00001000, // Address Length
_Y01)
Memory32Fixed (ReadWrite,
0xFED20000, // Address Base
0x00020000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEE00000, // Address Base
0x00010000, // Address Length
)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (MCHR, \_SB.PCI0.MCH._Y00._BAS, PCIB)
CreateDWordField (MCHR, \_SB.PCI0.MCH._Y00._LEN, PCIL)
If (LNotEqual (PEXB, Zero))
{
Store (PEXB, PCIB)
Store (PEXL, PCIL)
}
Else
{
Store (PEBS, PCIB)
Store (PELN, PCIL)
}
CreateDWordField (MCHR, \_SB.PCI0.MCH._Y01._BAS, VTCB)
CreateDWordField (MCHR, \_SB.PCI0.MCH._Y01._LEN, VTCL)
If (LNotEqual (VTDB, Zero))
{
Store (VTDB, VTCB)
Store (VTLN, VTCL)
}
Else
{
Store (VTDS, VTCB)
Store (VTDL, VTCL)
}
Return (MCHR)
}
}
OperationRegion (NBNV, SystemMemory, 0xBF60BD98, 0x0100)
Field (NBNV, AnyAcc, Lock, Preserve)
{
NBSG, 32,
Offset (0x10),
PEXB, 32,
PEXL, 32,
MCHB, 32,
MCHL, 32,
VTDB, 32,
VTLN, 32
}
Method (NPTS, 1, NotSerialized)
{
}
Method (NWAK, 1, NotSerialized)
{
}
Name (CPRB, One)
Name (LVGA, 0x55)
Name (BRB, Zero)
Name (BRL, 0x0100)
Name (IOB, 0x1000)
Name (IOL, 0xF000)
Name (MBB, 0xC0000000)
Name (MBL, 0x40000000)
Name (MABL, Zero)
Name (MABH, Zero)
Name (MALL, Zero)
Name (MALH, Zero)
Name (MAML, Zero)
Name (MAMH, Zero)
Name (CRS1, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x007F, // Range Maximum
0x0000, // Translation Offset
0x0080, // Length
,, _Y02)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x03AF, // Range Maximum
0x0000, // Translation Offset
0x03B0, // Length
,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x03E0, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0918, // Length
,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0000, // Range Maximum
0x0000, // Translation Offset
0x0000, // Length
,, _Y04, TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0x0FFF, // Range Maximum
0x0000, // Translation Offset
0x0300, // Length
,, _Y03, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y05, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, 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
0x02000000, // Range Minimum
0xFFDFFFFF, // Range Maximum
0x00000000, // Translation Offset
0xFDE00000, // Length
,, _Y06, AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000000000000, // Range Minimum
0x0000000000000000, // Range Maximum
0x0000000000000000, // Translation Offset
0x0000000000000000, // Length
,, _Y07, AddressRangeMemory, TypeStatic)
})
Name (CRS2, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0080, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0080, // Length
,, _Y08)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0000, // Range Maximum
0x0000, // Translation Offset
0x0000, // Length
,, _Y0A, TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0000, // Range Maximum
0x0000, // Translation Offset
0x0000, // Length
,, _Y09, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y0B, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x80000000, // Range Minimum
0xFFFFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x80000000, // Length
,, _Y0C, AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000000000000, // Range Minimum
0x0000000000000000, // Range Maximum
0x0000000000000000, // Translation Offset
0x0000000000000000, // Length
,, _Y0D, AddressRangeMemory, TypeStatic)
})
Method (_CRS, 0, NotSerialized)
{
BreakPoint
If (CPRB)
{
CreateWordField (CRS1, \_SB.PCI0._Y02._MIN, MIN0)
CreateWordField (CRS1, \_SB.PCI0._Y02._MAX, MAX0)
CreateWordField (CRS1, \_SB.PCI0._Y02._LEN, LEN0)
Store (BRB, MIN0)
Store (BRL, LEN0)
Store (LEN0, Local0)
Add (MIN0, Decrement (Local0), MAX0)
CreateWordField (CRS1, \_SB.PCI0._Y03._MIN, MIN1)
CreateWordField (CRS1, \_SB.PCI0._Y03._MAX, MAX1)
CreateWordField (CRS1, \_SB.PCI0._Y03._LEN, LEN1)
If (LEqual (IOB, 0x1000))
{
Store (IOL, Local0)
Add (IOB, Decrement (Local0), MAX1)
Subtract (MAX1, MIN1, Local0)
Add (Local0, One, LEN1)
}
Else
{
Store (IOB, MIN1)
Store (IOL, LEN1)
Store (LEN1, Local0)
Add (MIN1, Decrement (Local0), MAX1)
}
If (LOr (LEqual (LVGA, One), LEqual (LVGA, 0x55)))
{
If (VGAF)
{
CreateWordField (CRS1, \_SB.PCI0._Y04._MIN, IMN1)
CreateWordField (CRS1, \_SB.PCI0._Y04._MAX, IMX1)
CreateWordField (CRS1, \_SB.PCI0._Y04._LEN, ILN1)
Store (0x03B0, IMN1)
Store (0x03DF, IMX1)
Store (0x30, ILN1)
CreateDWordField (CRS1, \_SB.PCI0._Y05._MIN, VMN1)
CreateDWordField (CRS1, \_SB.PCI0._Y05._MAX, VMX1)
CreateDWordField (CRS1, \_SB.PCI0._Y05._LEN, VLN1)
Store (0x000A0000, VMN1)
Store (0x000BFFFF, VMX1)
Store (0x00020000, VLN1)
Store (Zero, VGAF)
}
}
CreateDWordField (CRS1, \_SB.PCI0._Y06._MIN, MIN3)
CreateDWordField (CRS1, \_SB.PCI0._Y06._MAX, MAX3)
CreateDWordField (CRS1, \_SB.PCI0._Y06._LEN, LEN3)
Store (MBB, MIN3)
Store (MBL, LEN3)
Store (LEN3, Local0)
Add (MIN3, Decrement (Local0), MAX3)
If (LOr (MALH, MALL))
{
CreateDWordField (CRS1, \_SB.PCI0._Y07._MIN, MN8L)
Add (0xB4, 0x04, Local0)
CreateDWordField (CRS1, Local0, MN8H)
Store (MABL, MN8L)
Store (MABH, MN8H)
CreateDWordField (CRS1, \_SB.PCI0._Y07._MAX, MX8L)
Add (0xBC, 0x04, Local1)
CreateDWordField (CRS1, Local1, MX8H)
CreateDWordField (CRS1, \_SB.PCI0._Y07._LEN, LN8L)
Add (0xCC, 0x04, Local2)
CreateDWordField (CRS1, Local2, LN8H)
Store (MABL, MN8L)
Store (MABH, MN8H)
Store (MALL, LN8L)
Store (MALH, LN8H)
Store (MAML, MX8L)
Store (MAMH, MX8H)
}
Return (CRS1)
}
Else
{
CreateWordField (CRS2, \_SB.PCI0._Y08._MIN, MIN2)
CreateWordField (CRS2, \_SB.PCI0._Y08._MAX, MAX2)
CreateWordField (CRS2, \_SB.PCI0._Y08._LEN, LEN2)
Store (BRB, MIN2)
Store (BRL, LEN2)
Store (LEN2, Local1)
Add (MIN2, Decrement (Local1), MAX2)
CreateWordField (CRS2, \_SB.PCI0._Y09._MIN, MIN4)
CreateWordField (CRS2, \_SB.PCI0._Y09._MAX, MAX4)
CreateWordField (CRS2, \_SB.PCI0._Y09._LEN, LEN4)
Store (IOB, MIN4)
Store (IOL, LEN4)
Store (LEN4, Local1)
Add (MIN4, Decrement (Local1), MAX4)
If (LVGA)
{
CreateWordField (CRS2, \_SB.PCI0._Y0A._MIN, IMN2)
CreateWordField (CRS2, \_SB.PCI0._Y0A._MAX, IMX2)
CreateWordField (CRS2, \_SB.PCI0._Y0A._LEN, ILN2)
Store (0x03B0, IMN2)
Store (0x03DF, IMX2)
Store (0x30, ILN2)
CreateDWordField (CRS2, \_SB.PCI0._Y0B._MIN, VMN2)
CreateDWordField (CRS2, \_SB.PCI0._Y0B._MAX, VMX2)
CreateDWordField (CRS2, \_SB.PCI0._Y0B._LEN, VLN2)
Store (0x000A0000, VMN2)
Store (0x000BFFFF, VMX2)
Store (0x00020000, VLN2)
}
CreateDWordField (CRS2, \_SB.PCI0._Y0C._MIN, MIN5)
CreateDWordField (CRS2, \_SB.PCI0._Y0C._MAX, MAX5)
CreateDWordField (CRS2, \_SB.PCI0._Y0C._LEN, LEN5)
Store (MBB, MIN5)
Store (MBL, LEN5)
Store (LEN5, Local1)
Add (MIN5, Decrement (Local1), MAX5)
If (LOr (MALH, MALL))
{
CreateDWordField (CRS2, \_SB.PCI0._Y0D._MIN, MN9L)
Add (0x72, 0x04, Local0)
CreateDWordField (CRS2, Local0, MN9H)
CreateDWordField (CRS2, \_SB.PCI0._Y0D._MAX, MX9L)
Add (0x7A, 0x04, Local1)
CreateDWordField (CRS2, Local1, MX9H)
CreateDWordField (CRS2, \_SB.PCI0._Y0D._LEN, LN9L)
Add (0x8A, 0x04, Local2)
CreateDWordField (CRS2, Local2, LN9H)
Store (MABL, MN9L)
Store (MABH, MN9H)
Store (MALL, LN9L)
Store (MALH, LN9H)
Store (MAML, MX9L)
Store (MAMH, MX9H)
}
Return (CRS2)
}
}
Method (_OSC, 4, NotSerialized)
{
Name (SUPP, Zero)
Name (CTRL, Zero)
CreateDWordField (Arg3, Zero, CDW1)
CreateDWordField (Arg3, 0x04, CDW2)
CreateDWordField (Arg3, 0x08, CDW3)
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
/* 0008 */ 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
}))
{
Store (CDW2, SUPP)
Store (CDW3, CTRL)
If (LNotEqual (And (SUPP, 0x16), 0x16))
{
And (CTRL, 0x1E, CTRL)
}
If (LNot (PEHP))
{
And (CTRL, 0x1E, CTRL)
}
If (LNot (SHPC))
{
And (CTRL, 0x1D, CTRL)
}
If (LNot (PEPM))
{
And (CTRL, 0x1B, CTRL)
}
If (LNot (PEER))
{
And (CTRL, 0x15, CTRL)
}
If (LNot (PECS))
{
And (CTRL, 0x0F, CTRL)
}
If (LNotEqual (Arg1, One))
{
Or (CDW1, 0x08, CDW1)
}
If (LNotEqual (CDW3, CTRL))
{
Or (CDW1, 0x10, CDW1)
}
And (CTRL, 0xEF, CTRL)
Store (CTRL, CDW3)
Return (Arg3)
}
Else
{
Or (CDW1, 0x04, CDW1)
Return (Arg3)
}
}
Device (SBRG)
{
Name (_ADR, 0x001F0000)
Method (SPTS, 1, NotSerialized)
{
Store (One, PS1S)
Store (One, PS1E)
Store (One, SLPS)
}
Method (SWAK, 1, NotSerialized)
{
Store (Zero, SLPS)
Store (Zero, PS1E)
If (RTCS) {}
Else
{
Notify (PWRB, 0x02)
}
}
OperationRegion (APMP, SystemIO, SMIP, 0x02)
Field (APMP, ByteAcc, NoLock, Preserve)
{
APMC, 8,
APMS, 8
}
Field (APMP, ByteAcc, NoLock, Preserve)
{
Offset (0x01),
, 1,
BRTC, 1
}
OperationRegion (SMIE, SystemIO, PM30, 0x08)
Field (SMIE, ByteAcc, NoLock, Preserve)
{
, 4,
PS1E, 1,
, 31,
PS1S, 1,
Offset (0x08)
}
Scope (\_SB)
{
Name (SLPS, Zero)
OperationRegion (PMS0, SystemIO, PMBS, 0x04)
Field (PMS0, ByteAcc, NoLock, Preserve)
{
, 10,
RTCS, 1,
, 3,
PEXS, 1,
WAKS, 1,
Offset (0x03),
PWBT, 1,
Offset (0x04)
}
Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E"))
Method (_STA, 0, NotSerialized)
{
If (LNotEqual (SUSW, 0xFF))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_PRW, 0, NotSerialized)
{
If (LNotEqual (SUSW, 0xFF))
{
Return (Package (0x02)
{
SUSW,
0x04
})
}
Else
{
Return (Package (0x02)
{
Zero,
Zero
})
}
}
}
}
Scope (\_SB)
{
Scope (PCI0)
{
Device (PCH)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x01C7)
Name (_STA, 0x0F)
Name (ICHR, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y0E)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y0F)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y10)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y11)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y13)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y12)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y14)
Memory32Fixed (ReadWrite,
0xFF000000, // Address Base
0x01000000, // Address Length
)
})
Method (_CRS, 0, NotSerialized)
{
CreateWordField (ICHR, \_SB.PCI0.PCH._Y0E._MIN, PBB)
CreateWordField (ICHR, \_SB.PCI0.PCH._Y0E._MAX, PBH)
CreateByteField (ICHR, \_SB.PCI0.PCH._Y0E._LEN, PML)
Store (PMBS, PBB)
Store (PMBS, PBH)
Store (0x54, PML)
CreateWordField (ICHR, \_SB.PCI0.PCH._Y0F._MIN, P2B)
CreateWordField (ICHR, \_SB.PCI0.PCH._Y0F._MAX, P2H)
CreateByteField (ICHR, \_SB.PCI0.PCH._Y0F._LEN, P2L)
Add (PMBS, 0x58, P2B)
Add (PMBS, 0x58, P2H)
Store (0x28, P2L)
If (SMBS)
{
CreateWordField (ICHR, \_SB.PCI0.PCH._Y10._MIN, SMB)
CreateWordField (ICHR, \_SB.PCI0.PCH._Y10._MAX, SMH)
CreateByteField (ICHR, \_SB.PCI0.PCH._Y10._LEN, SML)
Store (SMBS, SMB)
Store (SMBS, SMH)
Store (SMBL, SML)
}
If (GPBS)
{
CreateWordField (ICHR, \_SB.PCI0.PCH._Y11._MIN, IGB)
CreateWordField (ICHR, \_SB.PCI0.PCH._Y11._MAX, IGH)
CreateByteField (ICHR, \_SB.PCI0.PCH._Y11._LEN, IGL)
Store (GPBS, IGB)
Store (GPBS, IGH)
Store (GPLN, IGL)
}
If (APCB)
{
CreateDWordField (ICHR, \_SB.PCI0.PCH._Y12._BAS, APB)
CreateDWordField (ICHR, \_SB.PCI0.PCH._Y12._LEN, APL)
Store (APCB, APB)
Store (APCL, APL)
}
CreateDWordField (ICHR, \_SB.PCI0.PCH._Y13._BAS, RCB)
CreateDWordField (ICHR, \_SB.PCI0.PCH._Y13._LEN, RCL)
Store (SRCB, RCB)
Store (SRCL, RCL)
If (TCBR)
{
CreateDWordField (ICHR, \_SB.PCI0.PCH._Y14._BAS, TCB)
CreateDWordField (ICHR, \_SB.PCI0.PCH._Y14._LEN, TCL)
Store (TCBR, TCB)
Store (TCLT, TCL)
}
Return (ICHR)
}
}
Device (CWDT)
{
Name (_HID, EisaId ("INT3F0D"))
Name (_CID, EisaId ("PNP0C02"))
Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0454, // Range Minimum
0x0454, // Range Maximum
0x04, // Alignment
0x04, // Length
_Y15)
})
Method (_STA, 0, Serialized)
{
Return (0x0F)
}
Method (_CRS, 0, Serialized)
{
CreateWordField (BUF0, \_SB.PCI0.CWDT._Y15._MIN, WDB)
CreateWordField (BUF0, \_SB.PCI0.CWDT._Y15._MAX, WDH)
Add (PMBS, 0x54, WDB)
Add (PMBS, 0x54, WDH)
Return (BUF0)
}
}
}
}
Device (SIO1)
{
Name (_HID, EisaId ("PNP0C02"))
Method (_UID, 0, NotSerialized)
{
Return (SP1O)
}
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y16)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y17)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y18)
})
Method (_CRS, 0, NotSerialized)
{
If (LAnd (LLess (SP1O, 0x03F0), LGreater (SP1O, 0xF0)))
{
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y16._MIN, GPI0)
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y16._MAX, GPI1)
CreateByteField (CRS, \_SB.PCI0.SBRG.SIO1._Y16._LEN, GPIL)
Store (SP1O, GPI0)
Store (SP1O, GPI1)
Store (0x02, GPIL)
}
If (IO1B)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y17._MIN, GP10)
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y17._MAX, GP11)
CreateByteField (CRS, \_SB.PCI0.SBRG.SIO1._Y17._LEN, GPL1)
Store (IO1B, GP10)
Store (IO1B, GP11)
Store (IO1L, GPL1)
}
If (IO2B)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y17._MIN, GP20)
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y17._MAX, GP21)
CreateByteField (CRS, \_SB.PCI0.SBRG.SIO1._Y17._LEN, GPL2)
Store (IO2B, GP20)
Store (IO2B, GP21)
Store (IO2L, GPL2)
}
ENFG (0x03)
If (ACTR)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y18._MIN, GP40)
CreateWordField (CRS, \_SB.PCI0.SBRG.SIO1._Y18._MAX, GP41)
CreateByteField (CRS, \_SB.PCI0.SBRG.SIO1._Y18._LEN, GPL4)
ShiftLeft (IOAH, 0x08, Local0)
Or (IOAL, Local0, Local0)
Subtract (FindSetRightBit (Local0), One, Local1)
ShiftLeft (One, Local1, Local1)
If (And (OPT0, 0x02)) {}
Else
{
Or (Local0, 0x0400, GP40)
Or (Local0, 0x0400, GP41)
Store (Local1, GPL4)
}
}
EXFG ()
Return (CRS)
}
Name (DCAT, Package (0x15)
{
One,
0x02,
0x03,
Zero,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0x05,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF
})
Mutex (MUT0, 0x00)
Method (ENFG, 1, NotSerialized)
{
Acquire (MUT0, 0xFFFF)
Store (IOCE, INDX)
Store (IOCE, INDX)
Store (Arg0, LDN)
}
Method (EXFG, 0, NotSerialized)
{
Store (IOCL, INDX)
Release (MUT0)
}
Method (LPTM, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
And (OPT0, 0x02, Local0)
EXFG ()
Return (Local0)
}
Method (UHID, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
ENFG (CGLD (Arg0))
And (OPT1, 0x10, Local0)
EXFG ()
If (Local0)
{
Return (0x1005D041)
}
}
Return (0x0105D041)
}
OperationRegion (IOID, SystemIO, SP1O, 0x02)
Field (IOID, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x07),
LDN, 8,
Offset (0x21),
SCF1, 8,
SCF2, 8,
SCF3, 8,
SCF4, 8,
SCF5, 8,
SCF6, 8,
Offset (0x29),
CKCF, 8,
Offset (0x30),
ACTR, 8,
Offset (0x60),
IOAH, 8,
IOAL, 8,
IOH2, 8,
IOL2, 8,
Offset (0x70),
INTR, 8,
Offset (0x74),
DMCH, 8,
Offset (0xF0),
OPT0, 8,
OPT1, 8,
OPT2, 8,
OPT3, 8,
OPT4, 8,
OPT5, 8,
OPT6, 8
}
Method (CGLD, 1, NotSerialized)
{
Return (DerefOf (Index (DCAT, Arg0)))
}
Method (DSTA, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
Store (ACTR, Local0)
EXFG ()
If (LEqual (Local0, 0xFF))
{
Return (Zero)
}
And (Local0, One, Local0)
Or (IOST, ShiftLeft (Local0, Arg0), IOST)
If (Local0)
{
Return (0x0F)
}
Else
{
If (And (ShiftLeft (One, Arg0), IOST))
{
Return (0x0D)
}
Else
{
Return (Zero)
}
}
}
Method (DCNT, 2, NotSerialized)
{
ENFG (CGLD (Arg0))
If (LAnd (LLess (DMCH, 0x04), LNotEqual (And (DMCH, 0x03,
Local1), Zero)))
{
RDMA (Arg0, Arg1, Increment (Local1))
}
Store (Arg1, ACTR)
ShiftLeft (IOAH, 0x08, Local1)
Or (IOAL, Local1, Local1)
RRIO (Arg0, Arg1, Local1, 0x08)
EXFG ()
}
Name (CRS1, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y1B)
IRQNoFlags (_Y19)
{}
DMA (Compatibility, NotBusMaster, Transfer8, _Y1A)
{}
})
CreateWordField (CRS1, \_SB.PCI0.SBRG.SIO1._Y19._INT, IRQM)
CreateByteField (CRS1, \_SB.PCI0.SBRG.SIO1._Y1A._DMA, DMAM)
CreateWordField (CRS1, \_SB.PCI0.SBRG.SIO1._Y1B._MIN, IO11)
CreateWordField (CRS1, \_SB.PCI0.SBRG.SIO1._Y1B._MAX, IO12)
CreateByteField (CRS1, \_SB.PCI0.SBRG.SIO1._Y1B._LEN, LEN1)
Name (CRS2, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y1E)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y1F)
IRQNoFlags (_Y1C)
{6}
DMA (Compatibility, NotBusMaster, Transfer8, _Y1D)
{2}
})
CreateWordField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1C._INT, IRQE)
CreateByteField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1D._DMA, DMAE)
CreateWordField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1E._MIN, IO21)
CreateWordField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1E._MAX, IO22)
CreateByteField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1E._LEN, LEN2)
CreateWordField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1F._MIN, IO31)
CreateWordField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1F._MAX, IO32)
CreateByteField (CRS2, \_SB.PCI0.SBRG.SIO1._Y1F._LEN, LEN3)
Method (DCRS, 2, NotSerialized)
{
ENFG (CGLD (Arg0))
ShiftLeft (IOAH, 0x08, IO11)
Or (IOAL, IO11, IO11)
Store (IO11, IO12)
Subtract (FindSetRightBit (IO11), One, Local0)
ShiftLeft (One, Local0, LEN1)
If (INTR)
{
ShiftLeft (One, INTR, IRQM)
}
Else
{
Store (Zero, IRQM)
}
If (LOr (LGreater (DMCH, 0x03), LEqual (Arg1, Zero)))
{
Store (Zero, DMAM)
}
Else
{
And (DMCH, 0x03, Local1)
ShiftLeft (One, Local1, DMAM)
}
EXFG ()
Return (CRS1)
}
Method (DSRS, 2, NotSerialized)
{
If (LAnd (LEqual (Arg1, 0x02), LPTM (0x02)))
{
CreateWordField (Arg0, 0x11, IRQE)
CreateByteField (Arg0, 0x14, DMAE)
CreateWordField (Arg0, 0x02, IO21)
ENFG (CGLD (Arg1))
And (IO21, 0xFF, IOAL)
ShiftRight (IO21, 0x08, IOAH)
If (IRQE)
{
FindSetRightBit (IRQE, Local0)
Subtract (Local0, One, INTR)
}
Else
{
Store (Zero, INTR)
}
If (DMAE)
{
FindSetRightBit (DMAE, Local0)
Subtract (Local0, One, DMCH)
}
Else
{
Store (0x04, DMCH)
}
EXFG ()
DCNT (Arg1, One)
Store (Arg1, Local2)
If (LGreater (Local2, Zero))
{
Subtract (Local2, One, Local2)
}
}
Else
{
CreateWordField (Arg0, 0x09, IRQM)
CreateByteField (Arg0, 0x0C, DMAM)
CreateWordField (Arg0, 0x02, IO11)
ENFG (CGLD (Arg1))
And (IO11, 0xFF, IOAL)
ShiftRight (IO11, 0x08, IOAH)
If (IRQM)
{
FindSetRightBit (IRQM, Local0)
Subtract (Local0, One, INTR)
}
Else
{
Store (Zero, INTR)
}
If (DMAM)
{
FindSetRightBit (DMAM, Local0)
Subtract (Local0, One, DMCH)
}
Else
{
Store (0x04, DMCH)
}
EXFG ()
DCNT (Arg1, One)
Store (Arg1, Local2)
If (LGreater (Local2, Zero))
{
Subtract (Local2, One, Local2)
}
}
}
}
Name (PMFG, Zero)
Method (SIOS, 1, NotSerialized)
{
Store ("SIOS", Debug)
^SIO1.ENFG (0x0A)
If (KBFG)
{
Or (^SIO1.OPT0, 0x20, ^SIO1.OPT0)
}
Else
{
And (^SIO1.OPT0, 0xDF, ^SIO1.OPT0)
}
If (MSFG)
{
Or (^SIO1.OPT0, 0x40, ^SIO1.OPT0)
}
Else
{
And (^SIO1.OPT0, 0xBF, ^SIO1.OPT0)
}
And (^SIO1.OPT1, 0xFF, ^SIO1.OPT1)
^SIO1.EXFG ()
}
Method (SIOW, 1, NotSerialized)
{
Store ("SIOW", Debug)
^SIO1.ENFG (0x0A)
Store (^SIO1.OPT1, PMFG)
And (^SIO1.OPT1, 0xFF, ^SIO1.OPT1)
And (^SIO1.OPT0, 0x9F, ^SIO1.OPT0)
^SIO1.EXFG ()
}
Method (SIOH, 0, NotSerialized)
{
If (And (PMFG, 0x20))
{
Notify (PS2K, 0x02)
}
If (And (PMFG, 0x40))
{
Notify (PS2M, 0x02)
}
}
Device (PS2K)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CID, EisaId ("PNP030B"))
Method (_STA, 0, NotSerialized)
{
If (And (IOST, 0x0400))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
FixedIO (
0x0060, // Address
0x01, // Length
)
FixedIO (
0x0064, // Address
0x01, // Length
)
IRQNoFlags ()
{1}
}
EndDependentFn ()
})
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, KBFG)
}
}
Scope (\)
{
Name (KBFG, One)
}
Method (PS2K._PRW, 0, NotSerialized)
{
Return (GPRW (0x1D, 0x03))
}
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F03"))
Name (_CID, EisaId ("PNP0F13"))
Method (_STA, 0, NotSerialized)
{
If (And (IOST, 0x4000))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags ()
{12}
})
Name (CRS2, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IRQNoFlags ()
{12}
})
Method (_CRS, 0, NotSerialized)
{
If (And (IOST, 0x0400))
{
Return (CRS1)
}
Else
{
Return (CRS2)
}
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IRQNoFlags ()
{12}
}
EndDependentFn ()
})
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, MSFG)
}
}
Scope (\)
{
Name (MSFG, One)
}
Method (PS2M._PRW, 0, NotSerialized)
{
Return (GPRW (0x1D, 0x03))
}
Device (UAR1)
{
Name (_UID, One)
Method (_HID, 0, NotSerialized)
{
Return (^^SIO1.UHID (Zero))
}
Method (_STA, 0, Serialized)
{
If (And (IOST, One))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_DIS, 0, NotSerialized)
{
^^SIO1.DCNT (Zero, Zero)
}
Method (_CRS, 0, NotSerialized)
{
Return (^^SIO1.DCRS (Zero, Zero))
}
Method (_SRS, 1, NotSerialized)
{
^^SIO1.DSRS (Arg0, Zero)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
EndDependentFn ()
})
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}
Device (DMAD)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8, )
{4}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0087, // Range Minimum
0x0087, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0089, // Range Minimum
0x0089, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x008F, // Range Minimum
0x008F, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x00, // Alignment
0x20, // Length
)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x00, // Alignment
0x04, // Length
)
})
}
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}
Device (RMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x10)
Name (CRS1, ResourceTemplate ()
{
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0022, // Range Minimum
0x0022, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x0044, // Range Minimum
0x0044, // Range Maximum
0x00, // Alignment
0x1C, // Length
)
IO (Decode16,
0x0062, // Range Minimum
0x0062, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x0065, // Range Minimum
0x0065, // Range Maximum
0x00, // Alignment
0x0B, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x00, // Alignment
0x0E, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0084, // Range Minimum
0x0084, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0088, // Range Minimum
0x0088, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x008C, // Range Minimum
0x008C, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x00A2, // Range Minimum
0x00A2, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x00E0, // Range Minimum
0x00E0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
Name (CRS2, ResourceTemplate ()
{
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0022, // Range Minimum
0x0022, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x0044, // Range Minimum
0x0044, // Range Maximum
0x00, // Alignment
0x1C, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x00, // Alignment
0x0E, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0084, // Range Minimum
0x0084, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0088, // Range Minimum
0x0088, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x008C, // Range Minimum
0x008C, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x00A2, // Range Minimum
0x00A2, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x00E0, // Range Minimum
0x00E0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
Method (_CRS, 0, NotSerialized)
{
If (And (MBEC, 0xFFFF))
{
Return (CRS1)
}
Else
{
Return (CRS2)
}
}
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IRQNoFlags ()
{13}
})
}
Scope (^^PCI0)
{
Name (SLIC, Buffer (0x9E)
{
"374937846529Genuine NVIDIA Certified SLI Ready Motherboard for MSI P67A-GD65 bf1d-Copyright 2010 NVIDIA Corporation All Rights Reserved-458103946203(R)"
})
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)
}
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x18, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (BR20)
{
Name (_ADR, 0x001E0000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0B, 0x03))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR20)
}
Return (PR20)
}
}
Device (SAT0)
{
Name (_ADR, 0x001F0002)
Name (^NATA, Package (0x01)
{
0x001F0002
})
Name (\FZTF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5
})
Name (REGF, One)
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x02))
{
Store (Arg1, REGF)
}
}
Name (TIM0, Package (0x08)
{
Package (0x04)
{
0x78,
0xB4,
0xF0,
0x0384
},
Package (0x04)
{
0x23,
0x21,
0x10,
Zero
},
Package (0x04)
{
0x0B,
0x09,
0x04,
Zero
},
Package (0x06)
{
0x78,
0x5A,
0x3C,
0x28,
0x1E,
0x14
},
Package (0x06)
{
Zero,
One,
0x02,
One,
0x02,
One
},
Package (0x06)
{
Zero,
Zero,
Zero,
One,
One,
One
},
Package (0x04)
{
0x04,
0x03,
0x02,
Zero
},
Package (0x04)
{
0x02,
One,
Zero,
Zero
}
})
Name (TMD0, Buffer (0x14) {})
CreateDWordField (TMD0, Zero, PIO0)
CreateDWordField (TMD0, 0x04, DMA0)
CreateDWordField (TMD0, 0x08, PIO1)
CreateDWordField (TMD0, 0x0C, DMA1)
CreateDWordField (TMD0, 0x10, CHNF)
OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
Field (CFG2, DWordAcc, NoLock, Preserve)
{
PMPT, 4,
PSPT, 4,
PMRI, 6,
Offset (0x02),
SMPT, 4,
SSPT, 4,
SMRI, 6,
Offset (0x04),
PSRI, 4,
SSRI, 4,
Offset (0x08),
PM3E, 1,
PS3E, 1,
SM3E, 1,
SS3E, 1,
Offset (0x0A),
PMUT, 2,
, 2,
PSUT, 2,
Offset (0x0B),
SMUT, 2,
, 2,
SSUT, 2,
Offset (0x0C),
Offset (0x14),
PM6E, 1,
PS6E, 1,
SM6E, 1,
SS6E, 1,
PMCR, 1,
PSCR, 1,
SMCR, 1,
SSCR, 1,
, 4,
PMAE, 1,
PSAE, 1,
SMAE, 1,
SSAE, 1
}
Name (GMPT, Zero)
Name (GMUE, Zero)
Name (GMUT, Zero)
Name (GMCR, Zero)
Name (GSPT, Zero)
Name (GSUE, Zero)
Name (GSUT, Zero)
Name (GSCR, Zero)
Device (CHN0)
{
Name (_ADR, Zero)
Method (_GTM, 0, NotSerialized)
{
ShiftLeft (PSCR, One, Local1)
Or (PMCR, Local1, Local0)
ShiftLeft (PMAE, 0x02, Local3)
ShiftLeft (PM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PM3E, Local3, Local1)
ShiftLeft (PMPT, 0x04, Local3)
Or (Local1, Local3, Local1)
ShiftLeft (PSAE, 0x02, Local3)
ShiftLeft (PS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PS3E, Local3, Local2)
ShiftLeft (PSPT, 0x04, Local3)
Or (Local2, Local3, Local2)
Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0))
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, Debug)
Store (Arg0, TMD0)
ShiftLeft (PMAE, 0x02, Local3)
ShiftLeft (PM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PM3E, Local3, Local0)
ShiftLeft (PMPT, 0x04, Local3)
Or (Local0, Local3, Local0)
ShiftLeft (PSAE, 0x02, Local3)
ShiftLeft (PS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PS3E, Local3, Local1)
ShiftLeft (PSPT, 0x04, Local3)
Or (Local1, Local3, Local1)
Store (PMRI, GMPT)
Store (Local0, GMUE)
Store (PMUT, GMUT)
Store (PMCR, GMCR)
Store (PSRI, GSPT)
Store (Local1, GSUE)
Store (PSUT, GSUT)
Store (PSCR, GSCR)
STM ()
Store (GMPT, PMRI)
Store (GMUE, Local0)
Store (GMUT, PMUT)
Store (GMCR, PMCR)
Store (GSUE, Local1)
Store (GSUT, PSUT)
Store (GSCR, PSCR)
If (And (Local0, One))
{
Store (One, PM3E)
}
Else
{
Store (Zero, PM3E)
}
If (And (Local0, 0x02))
{
Store (One, PM6E)
}
Else
{
Store (Zero, PM6E)
}
If (And (Local0, 0x04))
{
Store (One, PMAE)
}
Else
{
Store (Zero, PMAE)
}
If (And (Local1, One))
{
Store (One, PS3E)
}
Else
{
Store (Zero, PS3E)
}
If (And (Local1, 0x02))
{
Store (One, PS6E)
}
Else
{
Store (Zero, PS6E)
}
If (And (Local1, 0x04))
{
Store (One, PSAE)
}
Else
{
Store (Zero, PSAE)
}
Store (GTF (Zero, Arg1), ATA0)
Store (GTF (One, Arg2), ATA1)
}
Device (DRV0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA0))
}
}
Device (DRV1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA1))
}
}
}
Device (CHN1)
{
Name (_ADR, One)
Method (_GTM, 0, NotSerialized)
{
ShiftLeft (SSCR, One, Local1)
Or (SMCR, Local1, Local0)
ShiftLeft (SMAE, 0x02, Local3)
ShiftLeft (SM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SM3E, Local3, Local1)
ShiftLeft (SMPT, 0x04, Local3)
Or (Local1, Local3, Local1)
ShiftLeft (SSAE, 0x02, Local3)
ShiftLeft (SS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SS3E, Local3, Local2)
ShiftLeft (SSPT, 0x04, Local3)
Or (Local2, Local3, Local2)
Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0))
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, Debug)
Store (Arg0, TMD0)
ShiftLeft (SMAE, 0x02, Local3)
ShiftLeft (SM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SM3E, Local3, Local0)
ShiftLeft (SMPT, 0x04, Local3)
Or (Local0, Local3, Local0)
ShiftLeft (SSAE, 0x02, Local3)
ShiftLeft (SS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SS3E, Local3, Local1)
ShiftLeft (SSPT, 0x04, Local3)
Or (Local1, Local3, Local1)
Store (SMRI, GMPT)
Store (Local0, GMUE)
Store (SMUT, GMUT)
Store (SMCR, GMCR)
Store (SSRI, GSPT)
Store (Local1, GSUE)
Store (SSUT, GSUT)
Store (SSCR, GSCR)
STM ()
Store (GMPT, SMRI)
Store (GMUE, Local0)
Store (GMUT, SMUT)
Store (GMCR, SMCR)
Store (GSUE, Local1)
Store (GSUT, SSUT)
Store (GSCR, SSCR)
If (And (Local0, One))
{
Store (One, SM3E)
}
Else
{
Store (Zero, SM3E)
}
If (And (Local0, 0x02))
{
Store (One, SM6E)
}
Else
{
Store (Zero, SM6E)
}
If (And (Local0, 0x04))
{
Store (One, SMAE)
}
Else
{
Store (Zero, SMAE)
}
If (And (Local1, One))
{
Store (One, SS3E)
}
Else
{
Store (Zero, SS3E)
}
If (And (Local1, 0x02))
{
Store (One, SS6E)
}
Else
{
Store (Zero, SS6E)
}
If (And (Local1, 0x04))
{
Store (One, SSAE)
}
Else
{
Store (Zero, SSAE)
}
Store (GTF (Zero, Arg1), ATA2)
Store (GTF (One, Arg2), ATA3)
}
Device (DRV0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA2))
}
}
Device (DRV1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA3))
}
}
}
Method (GTM, 7, Serialized)
{
Store (Ones, PIO0)
Store (Ones, PIO1)
Store (Ones, DMA0)
Store (Ones, DMA1)
Store (0x10, CHNF)
If (REGF) {}
Else
{
Return (TMD0)
}
If (And (Arg1, 0x20))
{
Or (CHNF, 0x02, CHNF)
}
Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR,
Zero, Zero), Local6)
Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)),
Local7)
Store (Local7, DMA0)
Store (Local7, PIO0)
If (And (Arg4, 0x20))
{
Or (CHNF, 0x08, CHNF)
}
Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR,
Zero, Zero), Local6)
Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)),
Local7)
Store (Local7, DMA1)
Store (Local7, PIO1)
If (And (Arg1, 0x07))
{
Store (Arg2, Local5)
If (And (Arg1, 0x02))
{
Add (Local5, 0x02, Local5)
}
If (And (Arg1, 0x04))
{
Add (Local5, 0x04, Local5)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)),
DMA0)
Or (CHNF, One, CHNF)
}
If (And (Arg4, 0x07))
{
Store (Arg5, Local5)
If (And (Arg4, 0x02))
{
Add (Local5, 0x02, Local5)
}
If (And (Arg4, 0x04))
{
Add (Local5, 0x04, Local5)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)),
DMA1)
Or (CHNF, 0x04, CHNF)
}
Store (TMD0, Debug)
Return (TMD0)
}
Method (STM, 0, Serialized)
{
If (REGF)
{
Store (Zero, GMUE)
Store (Zero, GMUT)
Store (Zero, GSUE)
Store (Zero, GSUT)
If (And (CHNF, One))
{
Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR,
Zero, Zero), Local0)
If (LGreater (Local0, 0x05))
{
Store (0x05, Local0)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)),
GMUT)
Or (GMUE, One, GMUE)
If (LGreater (Local0, 0x02))
{
Or (GMUE, 0x02, GMUE)
}
If (LGreater (Local0, 0x04))
{
And (GMUE, 0xFD, GMUE)
Or (GMUE, 0x04, GMUE)
}
}
Else
{
If (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero)))
{
If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero)))
{
Store (DMA0, PIO0)
Or (GMUE, 0x80, GMUE)
}
}
}
If (And (CHNF, 0x04))
{
Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR,
Zero, Zero), Local0)
If (LGreater (Local0, 0x05))
{
Store (0x05, Local0)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)),
GSUT)
Or (GSUE, One, GSUE)
If (LGreater (Local0, 0x02))
{
Or (GSUE, 0x02, GSUE)
}
If (LGreater (Local0, 0x04))
{
And (GSUE, 0xFD, GSUE)
Or (GSUE, 0x04, GSUE)
}
}
Else
{
If (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero)))
{
If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero)))
{
Store (DMA1, PIO1)
Or (GSUE, 0x80, GSUE)
}
}
}
If (And (CHNF, 0x02))
{
Or (GMUE, 0x20, GMUE)
}
If (And (CHNF, 0x08))
{
Or (GSUE, 0x20, GSUE)
}
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR,
Zero, Zero), 0x07, Local0)
Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)),
Local1)
Store (Local1, GMPT)
If (LLess (Local0, 0x03))
{
Or (GMUE, 0x50, GMUE)
}
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR,
Zero, Zero), 0x07, Local0)
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)),
Local1)
Store (Local1, GSPT)
If (LLess (Local0, 0x03))
{
Or (GSUE, 0x50, GSUE)
}
}
}
Name (AT01, Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
})
Name (AT02, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
})
Name (AT03, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
})
Name (AT04, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
})
Name (ATA0, Buffer (0x1D) {})
Name (ATA1, Buffer (0x1D) {})
Name (ATA2, Buffer (0x1D) {})
Name (ATA3, Buffer (0x1D) {})
Name (ATAB, Buffer (0x1D) {})
CreateByteField (ATAB, Zero, CMDC)
Method (GTFB, 3, Serialized)
{
Multiply (CMDC, 0x38, Local0)
Add (Local0, 0x08, Local1)
CreateField (ATAB, Local1, 0x38, CMDX)
Multiply (CMDC, 0x07, Local0)
CreateByteField (ATAB, Add (Local0, 0x02), A001)
CreateByteField (ATAB, Add (Local0, 0x06), A005)
Store (Arg0, CMDX)
Store (Arg1, A001)
Store (Arg2, A005)
Increment (CMDC)
}
Method (GTF, 2, Serialized)
{
Store (Arg1, Debug)
Store (Zero, CMDC)
Name (ID49, 0x0C00)
Name (ID59, Zero)
Name (ID53, 0x04)
Name (ID63, 0x0F00)
Name (ID88, 0x0F00)
Name (IRDY, One)
Name (PIOT, Zero)
Name (DMAT, Zero)
If (LEqual (SizeOf (Arg1), 0x0200))
{
CreateWordField (Arg1, 0x62, IW49)
Store (IW49, ID49)
CreateWordField (Arg1, 0x6A, IW53)
Store (IW53, ID53)
CreateWordField (Arg1, 0x7E, IW63)
Store (IW63, ID63)
CreateWordField (Arg1, 0x76, IW59)
Store (IW59, ID59)
CreateWordField (Arg1, 0xB0, IW88)
Store (IW88, ID88)
}
Store (0xA0, Local7)
If (Arg0)
{
Store (0xB0, Local7)
And (CHNF, 0x08, IRDY)
If (And (CHNF, 0x10))
{
Store (PIO1, PIOT)
}
Else
{
Store (PIO0, PIOT)
}
If (And (CHNF, 0x04))
{
If (And (CHNF, 0x10))
{
Store (DMA1, DMAT)
}
Else
{
Store (DMA0, DMAT)
}
}
}
Else
{
And (CHNF, 0x02, IRDY)
Store (PIO0, PIOT)
If (And (CHNF, One))
{
Store (DMA0, DMAT)
}
}
If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00
)), DMAT))
{
Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR,
Zero, Zero), Local1)
If (LGreater (Local1, 0x05))
{
Store (0x05, Local1)
}
GTFB (AT01, Or (0x40, Local1), Local7)
}
Else
{
If (LAnd (And (ID63, 0xFF00), PIOT))
{
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR,
Zero, Zero), 0x03, Local0)
Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0
)), Local1)
GTFB (AT01, Local1, Local7)
}
}
If (IRDY)
{
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR,
Zero, Zero), 0x07, Local0)
Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0
)), Local1)
GTFB (AT01, Local1, Local7)
}
Else
{
If (And (ID49, 0x0400))
{
GTFB (AT01, One, Local7)
}
}
If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
{
GTFB (AT03, And (ID59, 0xFF), Local7)
}
Store (ATAB, Debug)
Return (ATAB)
}
Method (RATA, 1, NotSerialized)
{
CreateByteField (Arg0, Zero, CMDN)
Multiply (CMDN, 0x38, Local0)
CreateField (Arg0, 0x08, Local0, RETB)
Store (RETB, Debug)
Return (Concatenate (RETB, FZTF))
}
}
Device (SAT1)
{
Name (_ADR, 0x001F0005)
Name (REGF, One)
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x02))
{
Store (Arg1, REGF)
}
}
Name (TIM0, Package (0x08)
{
Package (0x04)
{
0x78,
0xB4,
0xF0,
0x0384
},
Package (0x04)
{
0x23,
0x21,
0x10,
Zero
},
Package (0x04)
{
0x0B,
0x09,
0x04,
Zero
},
Package (0x06)
{
0x78,
0x5A,
0x3C,
0x28,
0x1E,
0x14
},
Package (0x06)
{
Zero,
One,
0x02,
One,
0x02,
One
},
Package (0x06)
{
Zero,
Zero,
Zero,
One,
One,
One
},
Package (0x04)
{
0x04,
0x03,
0x02,
Zero
},
Package (0x04)
{
0x02,
One,
Zero,
Zero
}
})
Name (TMD0, Buffer (0x14) {})
CreateDWordField (TMD0, Zero, PIO0)
CreateDWordField (TMD0, 0x04, DMA0)
CreateDWordField (TMD0, 0x08, PIO1)
CreateDWordField (TMD0, 0x0C, DMA1)
CreateDWordField (TMD0, 0x10, CHNF)
OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
Field (CFG2, DWordAcc, NoLock, Preserve)
{
PMPT, 4,
PSPT, 4,
PMRI, 6,
Offset (0x02),
SMPT, 4,
SSPT, 4,
SMRI, 6,
Offset (0x04),
PSRI, 4,
SSRI, 4,
Offset (0x08),
PM3E, 1,
PS3E, 1,
SM3E, 1,
SS3E, 1,
Offset (0x0A),
PMUT, 2,
, 2,
PSUT, 2,
Offset (0x0B),
SMUT, 2,
, 2,
SSUT, 2,
Offset (0x0C),
Offset (0x14),
PM6E, 1,
PS6E, 1,
SM6E, 1,
SS6E, 1,
PMCR, 1,
PSCR, 1,
SMCR, 1,
SSCR, 1,
, 4,
PMAE, 1,
PSAE, 1,
SMAE, 1,
SSAE, 1
}
Name (GMPT, Zero)
Name (GMUE, Zero)
Name (GMUT, Zero)
Name (GMCR, Zero)
Name (GSPT, Zero)
Name (GSUE, Zero)
Name (GSUT, Zero)
Name (GSCR, Zero)
Device (CHN0)
{
Name (_ADR, Zero)
Method (_GTM, 0, NotSerialized)
{
ShiftLeft (PSCR, One, Local1)
Or (PMCR, Local1, Local0)
ShiftLeft (PMAE, 0x02, Local3)
ShiftLeft (PM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PM3E, Local3, Local1)
ShiftLeft (PMPT, 0x04, Local3)
Or (Local1, Local3, Local1)
ShiftLeft (PSAE, 0x02, Local3)
ShiftLeft (PS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PS3E, Local3, Local2)
ShiftLeft (PSPT, 0x04, Local3)
Or (Local2, Local3, Local2)
Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0))
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, Debug)
Store (Arg0, TMD0)
ShiftLeft (PMAE, 0x02, Local3)
ShiftLeft (PM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PM3E, Local3, Local0)
ShiftLeft (PMPT, 0x04, Local3)
Or (Local0, Local3, Local0)
ShiftLeft (PSAE, 0x02, Local3)
ShiftLeft (PS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PS3E, Local3, Local1)
ShiftLeft (PSPT, 0x04, Local3)
Or (Local1, Local3, Local1)
Store (PMRI, GMPT)
Store (Local0, GMUE)
Store (PMUT, GMUT)
Store (PMCR, GMCR)
Store (PSRI, GSPT)
Store (Local1, GSUE)
Store (PSUT, GSUT)
Store (PSCR, GSCR)
STM ()
Store (GMPT, PMRI)
Store (GMUE, Local0)
Store (GMUT, PMUT)
Store (GMCR, PMCR)
Store (GSUE, Local1)
Store (GSUT, PSUT)
Store (GSCR, PSCR)
If (And (Local0, One))
{
Store (One, PM3E)
}
Else
{
Store (Zero, PM3E)
}
If (And (Local0, 0x02))
{
Store (One, PM6E)
}
Else
{
Store (Zero, PM6E)
}
If (And (Local0, 0x04))
{
Store (One, PMAE)
}
Else
{
Store (Zero, PMAE)
}
If (And (Local1, One))
{
Store (One, PS3E)
}
Else
{
Store (Zero, PS3E)
}
If (And (Local1, 0x02))
{
Store (One, PS6E)
}
Else
{
Store (Zero, PS6E)
}
If (And (Local1, 0x04))
{
Store (One, PSAE)
}
Else
{
Store (Zero, PSAE)
}
Store (GTF (Zero, Arg1), ATA0)
Store (GTF (One, Arg2), ATA1)
}
Device (DRV0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA0))
}
}
Device (DRV1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA1))
}
}
}
Device (CHN1)
{
Name (_ADR, One)
Method (_GTM, 0, NotSerialized)
{
ShiftLeft (SSCR, One, Local1)
Or (SMCR, Local1, Local0)
ShiftLeft (SMAE, 0x02, Local3)
ShiftLeft (SM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SM3E, Local3, Local1)
ShiftLeft (SMPT, 0x04, Local3)
Or (Local1, Local3, Local1)
ShiftLeft (SSAE, 0x02, Local3)
ShiftLeft (SS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SS3E, Local3, Local2)
ShiftLeft (SSPT, 0x04, Local3)
Or (Local2, Local3, Local2)
Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0))
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, Debug)
Store (Arg0, TMD0)
ShiftLeft (SMAE, 0x02, Local3)
ShiftLeft (SM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SM3E, Local3, Local0)
ShiftLeft (SMPT, 0x04, Local3)
Or (Local0, Local3, Local0)
ShiftLeft (SSAE, 0x02, Local3)
ShiftLeft (SS6E, One, Local4)
Or (Local3, Local4, Local3)
Or (SS3E, Local3, Local1)
ShiftLeft (SSPT, 0x04, Local3)
Or (Local1, Local3, Local1)
Store (SMRI, GMPT)
Store (Local0, GMUE)
Store (SMUT, GMUT)
Store (SMCR, GMCR)
Store (SSRI, GSPT)
Store (Local1, GSUE)
Store (SSUT, GSUT)
Store (SSCR, GSCR)
STM ()
Store (GMPT, SMRI)
Store (GMUE, Local0)
Store (GMUT, SMUT)
Store (GMCR, SMCR)
Store (GSUE, Local1)
Store (GSUT, SSUT)
Store (GSCR, SSCR)
If (And (Local0, One))
{
Store (One, SM3E)
}
Else
{
Store (Zero, SM3E)
}
If (And (Local0, 0x02))
{
Store (One, SM6E)
}
Else
{
Store (Zero, SM6E)
}
If (And (Local0, 0x04))
{
Store (One, SMAE)
}
Else
{
Store (Zero, SMAE)
}
If (And (Local1, One))
{
Store (One, SS3E)
}
Else
{
Store (Zero, SS3E)
}
If (And (Local1, 0x02))
{
Store (One, SS6E)
}
Else
{
Store (Zero, SS6E)
}
If (And (Local1, 0x04))
{
Store (One, SSAE)
}
Else
{
Store (Zero, SSAE)
}
Store (GTF (Zero, Arg1), ATA2)
Store (GTF (One, Arg2), ATA3)
}
Device (DRV0)
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA2))
}
}
Device (DRV1)
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Return (RATA (ATA3))
}
}
}
Method (GTM, 7, Serialized)
{
Store (Ones, PIO0)
Store (Ones, PIO1)
Store (Ones, DMA0)
Store (Ones, DMA1)
Store (0x10, CHNF)
If (REGF) {}
Else
{
Return (TMD0)
}
If (And (Arg1, 0x20))
{
Or (CHNF, 0x02, CHNF)
}
Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR,
Zero, Zero), Local6)
Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)),
Local7)
Store (Local7, DMA0)
Store (Local7, PIO0)
If (And (Arg4, 0x20))
{
Or (CHNF, 0x08, CHNF)
}
Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR,
Zero, Zero), Local6)
Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)),
Local7)
Store (Local7, DMA1)
Store (Local7, PIO1)
If (And (Arg1, 0x07))
{
Store (Arg2, Local5)
If (And (Arg1, 0x02))
{
Add (Local5, 0x02, Local5)
}
If (And (Arg1, 0x04))
{
Add (Local5, 0x04, Local5)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)),
DMA0)
Or (CHNF, One, CHNF)
}
If (And (Arg4, 0x07))
{
Store (Arg5, Local5)
If (And (Arg4, 0x02))
{
Add (Local5, 0x02, Local5)
}
If (And (Arg4, 0x04))
{
Add (Local5, 0x04, Local5)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)),
DMA1)
Or (CHNF, 0x04, CHNF)
}
Store (TMD0, Debug)
Return (TMD0)
}
Method (STM, 0, Serialized)
{
If (REGF)
{
Store (Zero, GMUE)
Store (Zero, GMUT)
Store (Zero, GSUE)
Store (Zero, GSUT)
If (And (CHNF, One))
{
Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR,
Zero, Zero), Local0)
If (LGreater (Local0, 0x05))
{
Store (0x05, Local0)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)),
GMUT)
Or (GMUE, One, GMUE)
If (LGreater (Local0, 0x02))
{
Or (GMUE, 0x02, GMUE)
}
If (LGreater (Local0, 0x04))
{
And (GMUE, 0xFD, GMUE)
Or (GMUE, 0x04, GMUE)
}
}
Else
{
If (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero)))
{
If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero)))
{
Store (DMA0, PIO0)
Or (GMUE, 0x80, GMUE)
}
}
}
If (And (CHNF, 0x04))
{
Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR,
Zero, Zero), Local0)
If (LGreater (Local0, 0x05))
{
Store (0x05, Local0)
}
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)),
GSUT)
Or (GSUE, One, GSUE)
If (LGreater (Local0, 0x02))
{
Or (GSUE, 0x02, GSUE)
}
If (LGreater (Local0, 0x04))
{
And (GSUE, 0xFD, GSUE)
Or (GSUE, 0x04, GSUE)
}
}
Else
{
If (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero)))
{
If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero)))
{
Store (DMA1, PIO1)
Or (GSUE, 0x80, GSUE)
}
}
}
If (And (CHNF, 0x02))
{
Or (GMUE, 0x20, GMUE)
}
If (And (CHNF, 0x08))
{
Or (GSUE, 0x20, GSUE)
}
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR,
Zero, Zero), 0x07, Local0)
Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)),
Local1)
Store (Local1, GMPT)
If (LLess (Local0, 0x03))
{
Or (GMUE, 0x50, GMUE)
}
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR,
Zero, Zero), 0x07, Local0)
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)),
Local1)
Store (Local1, GSPT)
If (LLess (Local0, 0x03))
{
Or (GSUE, 0x50, GSUE)
}
}
}
Name (AT01, Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
})
Name (AT02, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
})
Name (AT03, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
})
Name (AT04, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
})
Name (ATA0, Buffer (0x1D) {})
Name (ATA1, Buffer (0x1D) {})
Name (ATA2, Buffer (0x1D) {})
Name (ATA3, Buffer (0x1D) {})
Name (ATAB, Buffer (0x1D) {})
CreateByteField (ATAB, Zero, CMDC)
Method (GTFB, 3, Serialized)
{
Multiply (CMDC, 0x38, Local0)
Add (Local0, 0x08, Local1)
CreateField (ATAB, Local1, 0x38, CMDX)
Multiply (CMDC, 0x07, Local0)
CreateByteField (ATAB, Add (Local0, 0x02), A001)
CreateByteField (ATAB, Add (Local0, 0x06), A005)
Store (Arg0, CMDX)
Store (Arg1, A001)
Store (Arg2, A005)
Increment (CMDC)
}
Method (GTF, 2, Serialized)
{
Store (Arg1, Debug)
Store (Zero, CMDC)
Name (ID49, 0x0C00)
Name (ID59, Zero)
Name (ID53, 0x04)
Name (ID63, 0x0F00)
Name (ID88, 0x0F00)
Name (IRDY, One)
Name (PIOT, Zero)
Name (DMAT, Zero)
If (LEqual (SizeOf (Arg1), 0x0200))
{
CreateWordField (Arg1, 0x62, IW49)
Store (IW49, ID49)
CreateWordField (Arg1, 0x6A, IW53)
Store (IW53, ID53)
CreateWordField (Arg1, 0x7E, IW63)
Store (IW63, ID63)
CreateWordField (Arg1, 0x76, IW59)
Store (IW59, ID59)
CreateWordField (Arg1, 0xB0, IW88)
Store (IW88, ID88)
}
Store (0xA0, Local7)
If (Arg0)
{
Store (0xB0, Local7)
And (CHNF, 0x08, IRDY)
If (And (CHNF, 0x10))
{
Store (PIO1, PIOT)
}
Else
{
Store (PIO0, PIOT)
}
If (And (CHNF, 0x04))
{
If (And (CHNF, 0x10))
{
Store (DMA1, DMAT)
}
Else
{
Store (DMA0, DMAT)
}
}
}
Else
{
And (CHNF, 0x02, IRDY)
Store (PIO0, PIOT)
If (And (CHNF, One))
{
Store (DMA0, DMAT)
}
}
If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00
)), DMAT))
{
Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR,
Zero, Zero), Local1)
If (LGreater (Local1, 0x05))
{
Store (0x05, Local1)
}
GTFB (AT01, Or (0x40, Local1), Local7)
}
Else
{
If (LAnd (And (ID63, 0xFF00), PIOT))
{
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR,
Zero, Zero), 0x03, Local0)
Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0
)), Local1)
GTFB (AT01, Local1, Local7)
}
}
If (IRDY)
{
And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR,
Zero, Zero), 0x07, Local0)
Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0
)), Local1)
GTFB (AT01, Local1, Local7)
}
Else
{
If (And (ID49, 0x0400))
{
GTFB (AT01, One, Local7)
}
}
If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
{
GTFB (AT03, And (ID59, 0xFF), Local7)
}
Store (ATAB, Debug)
Return (ATAB)
}
Method (RATA, 1, NotSerialized)
{
CreateByteField (Arg0, Zero, CMDN)
Multiply (CMDN, 0x38, Local0)
CreateField (Arg0, 0x08, Local0, RETB)
Store (RETB, Debug)
Return (Concatenate (RETB, FZTF))
}
}
Device (EHC2)
{
Name (_ADR, 0x001D0000)
Name (_S4D, 0x02)
Name (_S3D, 0x02)
Name (_S2D, 0x02)
Name (_S1D, 0x02)
Device (HUBN)
{
Name (_ADR, Zero)
Device (PR10)
{
Name (_ADR, One)
Name (_UPC, Package (0x04)
{
0xFF,
Zero,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0x30,
0x1C,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
Device (PR30)
{
Name (_ADR, One)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1C,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR31)
{
Name (_ADR, 0x02)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1D,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR32)
{
Name (_ADR, 0x03)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1D,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR33)
{
Name (_ADR, 0x04)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR34)
{
Name (_ADR, 0x05)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xB1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR35)
{
Name (_ADR, 0x06)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xB1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR36)
{
Name (_ADR, 0x07)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xB1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR37)
{
Name (_ADR, 0x08)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xB1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
}
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0D, 0x04))
}
}
Device (EHC1)
{
Name (_ADR, 0x001A0000)
Name (_S4D, 0x02)
Name (_S3D, 0x02)
Name (_S2D, 0x02)
Name (_S1D, 0x02)
Device (HUBN)
{
Name (_ADR, Zero)
Device (PR10)
{
Name (_ADR, One)
Name (_UPC, Package (0x04)
{
0xFF,
Zero,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0x30,
0x1C,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
Device (PR30)
{
Name (_ADR, One)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1C,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR31)
{
Name (_ADR, 0x02)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1D,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR32)
{
Name (_ADR, 0x03)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1D,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR33)
{
Name (_ADR, 0x04)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR34)
{
Name (_ADR, 0x05)
Name (_UPC, Package (0x04)
{
0xFF,
Zero,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xB1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
Device (PR35)
{
Name (_ADR, 0x06)
Name (_UPC, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Name (_PLD, Package (0x10)
{
0x81,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero,
0xE1,
0x1E,
Zero,
Zero,
Zero,
Zero,
Zero,
Zero
})
}
}
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0D, 0x04))
}
}
Device (PEX0)
{
Name (_ADR, 0x001C0000)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR11)
}
Return (PR11)
}
}
Device (PEX1)
{
Name (_ADR, 0x001C0001)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR12)
}
Return (PR12)
}
}
Device (PEX2)
{
Name (_ADR, 0x001C0002)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR13)
}
Return (PR13)
}
}
Device (PEX3)
{
Name (_ADR, 0x001C0003)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR14)
}
Return (PR14)
}
}
Device (PEX4)
{
Name (_ADR, 0x001C0004)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR15)
}
Return (PR15)
}
}
Device (PEX5)
{
Name (_ADR, 0x001C0005)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR16)
}
Return (PR16)
}
}
Device (PEX6)
{
Name (_ADR, 0x001C0006)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR17)
}
Return (PR17)
}
}
Device (PEX7)
{
Name (_ADR, 0x001C0007)
OperationRegion (PXRC, PCI_Config, Zero, 0x0100)
Field (PXRC, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
Offset (0x62),
PMS, 1,
PMP, 1,
Offset (0xD8),
, 30,
HPE, 1,
PCE, 1,
, 30,
HPS, 1,
PCS, 1
}
Method (CSS, 0, NotSerialized)
{
Store (One, PMS)
Store (One, PCS)
Store (One, PMS)
}
Method (SPRT, 1, NotSerialized)
{
CSS ()
Store (One, PCE)
CSS ()
}
Method (WPRT, 1, NotSerialized)
{
Store (Zero, PCE)
CSS ()
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR18)
}
Return (PR18)
}
Device (JMB0)
{
Name (_ADR, Zero)
OperationRegion (CF40, PCI_Config, 0x40, 0x04)
Field (CF40, ByteAcc, NoLock, Preserve)
{
CHE0, 1,
MULT, 1,
, 1,
CAB0, 1,
CHE1, 1,
Offset (0x01),
AHEN, 1,
, 3,
PRT0, 1,
AHM0, 1,
PRT1, 1,
AHM1, 1,
CF42, 6,
SWAP, 1,
PATA, 1,
, 6,
WTEN, 1,
Offset (0x04)
}
Name (PIOT, Package (0x05)
{
0x0258,
0x0186,
0x014A,
0xB4,
0x78
})
Name (UDMA, Package (0x07)
{
0x78,
0x50,
0x3C,
0x28,
0x1E,
0x14,
0x0F
})
Name (MDMA, Package (0x03)
{
0x01E0,
0x96,
0x78
})
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 (PIO0, 0x04)
Name (DMA0, 0x06)
Name (MDA0, 0x02)
Name (PIO1, 0x04)
Name (DMA1, 0x06)
Name (MDA1, 0x02)
Name (PIO2, 0x04)
Name (DMA2, 0x06)
Name (MDA2, 0x02)
Name (PIO3, 0x04)
Name (DMA3, 0x06)
Name (MDA3, 0x02)
Name (FLGP, 0x1F)
Name (FLGS, 0x1F)
Device (IDE0)
{
Name (_ADR, Zero)
Method (_GTM, 0, NotSerialized)
{
Store (DerefOf (Index (PIOT, PIO0)), Local0)
Store (DerefOf (Index (PIOT, PIO1)), Local2)
Store (0x1A, Local4)
If (LAnd (FLGP, One))
{
If (LNot (MULT))
{
If (LAnd (CAB0, SWAP))
{
Store (0x02, DMA0)
}
}
Store (DerefOf (Index (UDMA, DMA0)), Local1)
Or (Local4, One, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA0)), Local1)
}
If (LAnd (FLGP, 0x04))
{
If (LAnd (CAB0, SWAP))
{
Store (0x02, DMA1)
}
Store (DerefOf (Index (UDMA, DMA1)), Local3)
Or (Local4, 0x04, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA1)), 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)
Store (Local4, FLGP)
If (LAnd (LNotEqual (Local0, 0xFFFFFFFF), LNotEqual (Local0, Zero)))
{
Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO0)
}
If (LAnd (LNotEqual (Local1, 0xFFFFFFFF), LNotEqual (Local1, Zero)))
{
If (LAnd (FLGP, One))
{
Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA0)
}
Else
{
Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA0)
}
}
If (LAnd (LNotEqual (Local2, 0xFFFFFFFF), LNotEqual (Local2, Zero)))
{
Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO1)
}
If (LAnd (LNotEqual (Local3, 0xFFFFFFFF), LNotEqual (Local3, Zero)))
{
If (LAnd (FLGP, 0x04))
{
Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA1)
}
Else
{
Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA1)
}
}
}
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 (PIO0, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGP, One))
{
Store (DMA0, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA0, DMAM)
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 (PIO1, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGP, 0x04))
{
Store (DMA1, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA1, DMAM)
Or (DMAM, 0x20, DMAM)
}
Concatenate (Local0, Local1, Local2)
Return (Local2)
}
}
}
Device (IDE1)
{
Name (_ADR, One)
Method (_GTM, 0, NotSerialized)
{
Store (DerefOf (Index (PIOT, PIO2)), Local0)
Store (DerefOf (Index (PIOT, PIO3)), Local2)
Store (0x1A, Local4)
If (LAnd (FLGS, One))
{
If (LNot (MULT))
{
If (LAnd (CAB0, LNot (SWAP)))
{
Store (0x02, DMA2)
}
}
Store (DerefOf (Index (UDMA, DMA2)), Local1)
Or (Local4, One, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA2)), Local1)
}
If (LAnd (FLGS, 0x04))
{
If (LAnd (CAB0, LNot (SWAP)))
{
Store (0x02, DMA3)
}
Store (DerefOf (Index (UDMA, DMA3)), Local3)
Or (Local4, 0x04, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA3)), 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)
Store (Local4, FLGS)
If (LAnd (LNotEqual (Local0, 0xFFFFFFFF), LNotEqual (Local0, Zero)))
{
Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO2)
}
If (LAnd (LNotEqual (Local1, 0xFFFFFFFF), LNotEqual (Local1, Zero)))
{
If (LAnd (FLGS, One))
{
Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA2)
}
Else
{
Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA2)
}
}
If (LAnd (LNotEqual (Local2, 0xFFFFFFFF), LNotEqual (Local2, Zero)))
{
Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO3)
}
If (LAnd (LNotEqual (Local3, 0xFFFFFFFF), LNotEqual (Local3, Zero)))
{
If (LAnd (FLGS, 0x04))
{
Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA3)
}
Else
{
Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA3)
}
}
}
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 (PIO2, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGS, One))
{
Store (DMA2, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA2, DMAM)
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 (PIO3, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGS, 0x04))
{
Store (DMA3, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA3, DMAM)
Or (DMAM, 0x20, DMAM)
}
Concatenate (Local0, Local1, Local2)
Return (Local2)
}
}
}
}
Device (JMB1)
{
Name (_ADR, One)
OperationRegion (CF40, PCI_Config, 0x40, 0x04)
Field (CF40, ByteAcc, NoLock, Preserve)
{
CHE0, 1,
MULT, 1,
, 1,
CAB0, 1,
CHE1, 1,
Offset (0x01),
AHEN, 1,
, 3,
PRT0, 1,
AHM0, 1,
PRT1, 1,
AHM1, 1,
CF42, 6,
SWAP, 1,
PATA, 1,
, 6,
WTEN, 1,
Offset (0x04)
}
Name (PIOT, Package (0x05)
{
0x0258,
0x0186,
0x014A,
0xB4,
0x78
})
Name (UDMA, Package (0x07)
{
0x78,
0x50,
0x3C,
0x28,
0x1E,
0x14,
0x0F
})
Name (MDMA, Package (0x03)
{
0x01E0,
0x96,
0x78
})
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 (PIO0, 0x04)
Name (DMA0, 0x06)
Name (MDA0, 0x02)
Name (PIO1, 0x04)
Name (DMA1, 0x06)
Name (MDA1, 0x02)
Name (PIO2, 0x04)
Name (DMA2, 0x06)
Name (MDA2, 0x02)
Name (PIO3, 0x04)
Name (DMA3, 0x06)
Name (MDA3, 0x02)
Name (FLGP, 0x1F)
Name (FLGS, 0x1F)
Device (IDE0)
{
Name (_ADR, Zero)
Method (_GTM, 0, NotSerialized)
{
Store (DerefOf (Index (PIOT, PIO0)), Local0)
Store (DerefOf (Index (PIOT, PIO1)), Local2)
Store (0x1A, Local4)
If (LAnd (FLGP, One))
{
If (LNot (MULT))
{
If (LAnd (CAB0, SWAP))
{
Store (0x02, DMA0)
}
}
Store (DerefOf (Index (UDMA, DMA0)), Local1)
Or (Local4, One, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA0)), Local1)
}
If (LAnd (FLGP, 0x04))
{
If (LAnd (CAB0, SWAP))
{
Store (0x02, DMA1)
}
Store (DerefOf (Index (UDMA, DMA1)), Local3)
Or (Local4, 0x04, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA1)), 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)
Store (Local4, FLGP)
If (LAnd (LNotEqual (Local0, 0xFFFFFFFF), LNotEqual (Local0, Zero)))
{
Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO0)
}
If (LAnd (LNotEqual (Local1, 0xFFFFFFFF), LNotEqual (Local1, Zero)))
{
If (LAnd (FLGP, One))
{
Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA0)
}
Else
{
Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA0)
}
}
If (LAnd (LNotEqual (Local2, 0xFFFFFFFF), LNotEqual (Local2, Zero)))
{
Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO1)
}
If (LAnd (LNotEqual (Local3, 0xFFFFFFFF), LNotEqual (Local3, Zero)))
{
If (LAnd (FLGP, 0x04))
{
Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA1)
}
Else
{
Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA1)
}
}
}
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 (PIO0, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGP, One))
{
Store (DMA0, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA0, DMAM)
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 (PIO1, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGP, 0x04))
{
Store (DMA1, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA1, DMAM)
Or (DMAM, 0x20, DMAM)
}
Concatenate (Local0, Local1, Local2)
Return (Local2)
}
}
}
Device (IDE1)
{
Name (_ADR, One)
Method (_GTM, 0, NotSerialized)
{
Store (DerefOf (Index (PIOT, PIO2)), Local0)
Store (DerefOf (Index (PIOT, PIO3)), Local2)
Store (0x1A, Local4)
If (LAnd (FLGS, One))
{
If (LNot (MULT))
{
If (LAnd (CAB0, LNot (SWAP)))
{
Store (0x02, DMA2)
}
}
Store (DerefOf (Index (UDMA, DMA2)), Local1)
Or (Local4, One, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA2)), Local1)
}
If (LAnd (FLGS, 0x04))
{
If (LAnd (CAB0, LNot (SWAP)))
{
Store (0x02, DMA3)
}
Store (DerefOf (Index (UDMA, DMA3)), Local3)
Or (Local4, 0x04, Local4)
}
Else
{
Store (DerefOf (Index (MDMA, MDA3)), 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)
Store (Local4, FLGS)
If (LAnd (LNotEqual (Local0, 0xFFFFFFFF), LNotEqual (Local0, Zero)))
{
Store (Match (PIOT, MEQ, Local0, MTR, Zero, Zero), PIO2)
}
If (LAnd (LNotEqual (Local1, 0xFFFFFFFF), LNotEqual (Local1, Zero)))
{
If (LAnd (FLGS, One))
{
Store (Match (UDMA, MEQ, Local1, MTR, Zero, Zero), DMA2)
}
Else
{
Store (Match (MDMA, MEQ, Local1, MTR, Zero, Zero), MDA2)
}
}
If (LAnd (LNotEqual (Local2, 0xFFFFFFFF), LNotEqual (Local2, Zero)))
{
Store (Match (PIOT, MEQ, Local2, MTR, Zero, Zero), PIO3)
}
If (LAnd (LNotEqual (Local3, 0xFFFFFFFF), LNotEqual (Local3, Zero)))
{
If (LAnd (FLGS, 0x04))
{
Store (Match (UDMA, MEQ, Local3, MTR, Zero, Zero), DMA3)
}
Else
{
Store (Match (MDMA, MEQ, Local3, MTR, Zero, Zero), MDA3)
}
}
}
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 (PIO2, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGS, One))
{
Store (DMA2, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA2, DMAM)
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 (PIO3, PIOM)
Or (PIOM, 0x08, PIOM)
If (LAnd (FLGS, 0x04))
{
Store (DMA3, DMAM)
Or (DMAM, 0x40, DMAM)
}
Else
{
Store (MDA3, DMAM)
Or (DMAM, 0x20, DMAM)
}
Concatenate (Local0, Local1, Local2)
Return (Local2)
}
}
}
}
}
Device (P0P1)
{
Name (_ADR, 0x00010000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR01)
}
Return (PR01)
}
}
Device (P0P2)
{
Name (_ADR, 0x00010001)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR02)
}
Return (PR02)
}
}
Device (P0P3)
{
Name (_ADR, 0x00010002)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR03)
}
Return (PR03)
}
}
Device (P0P4)
{
Name (_ADR, 0x00060000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR04)
}
Return (PR04)
}
}
Device (SBUS)
{
Name (_ADR, 0x001F0003)
Device (BUS0)
{
Name (_CID, "smbus")
Name (_ADR, Zero)
Device (DVL0)
{
Name (_ADR, 0x57)
Name (_CID, "diagsvault")
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x30, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
Scope (\_GPE)
{
Method (_L1D, 0, NotSerialized)
{
\_SB.PCI0.SBRG.SIOH ()
Notify (\_SB.PWRB, 0x02)
}
Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PCI0.BR20, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.EHC2, 0x02)
Notify (\_SB.PCI0.EHC1, 0x02)
Notify (\_SB.PWRB, 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)
Notify (\_SB.PCI0.P0P1, 0x02)
Notify (\_SB.PCI0.P0P2, 0x02)
Notify (\_SB.PCI0.P0P3, 0x02)
Notify (\_SB.PCI0.P0P4, 0x02)
Notify (\_SB.PWRB, 0x02)
}
}
Device (PWRB)
{
Name (_CID, EisaId ("PNP0C0C"))
Name (_UID, 0xAA)
Name (_STA, 0x0B)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x1D, 0x03))
}
}
}
OperationRegion (_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C)
Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
Offset (0x08),
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
Scope (_SB)
{
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{15}
})
CreateWordField (BUFA, One, IRA0)
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, One)
Method (_STA, 0, NotSerialized)
{
And (PIRA, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSA)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRA, 0x80, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRA, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
And (PIRB, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSB)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRB, 0x80, PIRB)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRB, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRB)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
And (PIRC, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSC)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRC, 0x80, PIRC)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRC, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
And (PIRD, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSD)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRD, 0x80, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRD, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRD)
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x05)
Method (_STA, 0, NotSerialized)
{
And (PIRE, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSE)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRE, 0x80, PIRE)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRE, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRE)
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x06)
Method (_STA, 0, NotSerialized)
{
And (PIRF, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSF)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRF, 0x80, PIRF)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRF, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRF)
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x07)
Method (_STA, 0, NotSerialized)
{
And (PIRG, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSG)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRG, 0x80, PIRG)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRG, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRG)
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x08)
Method (_STA, 0, NotSerialized)
{
And (PIRH, 0x80, Local0)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSH)
}
Method (_DIS, 0, NotSerialized)
{
Or (PIRH, 0x80, PIRH)
}
Method (_CRS, 0, NotSerialized)
{
And (PIRH, 0x0F, Local0)
ShiftLeft (One, Local0, IRA0)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, One, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRH)
}
}
}
Scope (_PR)
{
OperationRegion (SSDT, SystemMemory, Zero, One)
OperationRegion (CSDT, SystemMemory, 0xBF60CE18, 0x84)
Name (NCST, 0x02)
Name (NPSS, Zero)
Name (HNDL, 0x80000000)
Name (CHDL, 0x80000000)
Name (TNLP, 0x04)
Name (CINT, Zero)
Name (PDCV, 0xFFFFFFFF)
Name (APSS, Package (0x10)
{
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
},
Package (0x06)
{
0xFFFF,
0x0FFFFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF
}
})
Name (PTCI, Package (0x02)
{
ResourceTemplate ()
{
Register (SystemIO,
0x04, // Bit Width
0x01, // Bit Offset
0x0000000000000410, // Address
,)
},
ResourceTemplate ()
{
Register (SystemIO,
0x04, // Bit Width
0x01, // Bit Offset
0x0000000000000410, // Address
,)
}
})
Name (\PSTE, Zero)
Name (\TSTE, Zero)
Name (TSSI, Package (0x01)
{
Package (0x05)
{
0x64,
0x03E8,
Zero,
Zero,
Zero
}
})
Name (TSSM, Package (0x08)
{
Package (0x05)
{
0x64,
0x03E8,
Zero,
Zero,
Zero
},
Package (0x05)
{
0x58,
0x036B,
Zero,
0x1E,
Zero
},
Package (0x05)
{
0x4B,
0x02EE,
Zero,
0x1C,
Zero
},
Package (0x05)
{
0x3F,
0x0271,
Zero,
0x1A,
Zero
},
Package (0x05)
{
0x32,
0x01F4,
Zero,
0x18,
Zero
},
Package (0x05)
{
0x26,
0x0177,
Zero,
0x16,
Zero
},
Package (0x05)
{
0x19,
0xFA,
Zero,
0x14,
Zero
},
Package (0x05)
{
0x0D,
0x7D,
Zero,
0x12,
Zero
}
})
Name (C1ST, Package (0x02)
{
One,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
}
})
Name (CMST, Package (0x02)
{
One,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
}
})
Name (CIST, Package (0x02)
{
One,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
}
})
Method (CST, 0, NotSerialized)
{
If (LNotEqual (And (PDCV, 0x0200), 0x0200))
{
If (LEqual (NCST, 0x02))
{
Store (One, NCST)
}
}
If (LEqual (NCST, Zero))
{
Return (C1ST)
}
If (LEqual (NCST, One))
{
Return (CIST)
}
If (LEqual (NCST, 0x02))
{
Return (CMST)
}
Return (C1ST)
}
Method (PDC, 1, NotSerialized)
{
CreateDWordField (Arg0, Zero, REVS)
CreateDWordField (Arg0, 0x04, SIZE)
Store (SizeOf (Arg0), Local0)
Store (Subtract (Local0, 0x08), Local1)
CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
Name (STS0, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
})
Concatenate (STS0, TEMP, Local2)
OSC (Buffer (0x10)
{
/* 0000 */ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
/* 0008 */ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
}, REVS, SIZE, Local2)
}
Method (OSC, 4, NotSerialized)
{
CreateDWordField (Arg3, Zero, STS)
CreateDWordField (Arg3, 0x04, CAP)
CreateDWordField (Arg0, Zero, IID0)
CreateDWordField (Arg0, 0x04, IID1)
CreateDWordField (Arg0, 0x08, IID2)
CreateDWordField (Arg0, 0x0C, IID3)
Name (UID0, Buffer (0x10)
{
/* 0000 */ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
/* 0008 */ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
})
CreateDWordField (UID0, Zero, EID0)
CreateDWordField (UID0, 0x04, EID1)
CreateDWordField (UID0, 0x08, EID2)
CreateDWordField (UID0, 0x0C, EID3)
If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)),
LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
{
Store (0x06, Index (STS, Zero))
Return (Arg3)
}
And (PDCV, CAP, PDCV)
If (LEqual (CINT, Zero))
{
Store (One, CINT)
If (LEqual (And (PDCV, 0x09), 0x09))
{
If (LNotEqual (NPSS, Zero))
{
Load (SSDT, HNDL)
}
}
If (LEqual (And (PDCV, 0x10), 0x10))
{
If (LNotEqual (NCST, 0xFF))
{
Load (CSDT, CHDL)
}
}
}
Return (Arg3)
}
}
OperationRegion (_SB.PCI0.SBRG.LPCR, PCI_Config, 0x80, 0x04)
Field (\_SB.PCI0.SBRG.LPCR, ByteAcc, NoLock, Preserve)
{
CADR, 3,
, 1,
CBDR, 3,
Offset (0x01),
LTDR, 2,
, 2,
FDDR, 1,
, 2,
CALE, 1,
CBLE, 1,
LTLE, 1,
FDLE, 1,
, 4,
GLLE, 1,
GHLE, 1,
KCLE, 1,
MCLE, 1,
C1LE, 1,
C2LE, 1,
, 2
}
Method (UXDV, 1, NotSerialized)
{
Store (0xFF, Local0)
Name (T_0, Zero)
Store (Add (Arg0, Zero), T_0)
If (LEqual (T_0, 0x03F8))
{
Store (Zero, Local0)
}
Else
{
If (LEqual (T_0, 0x02F8))
{
Store (One, Local0)
}
Else
{
If (LEqual (T_0, 0x0220))
{
Store (0x02, Local0)
}
Else
{
If (LEqual (T_0, 0x0228))
{
Store (0x03, Local0)
}
Else
{
If (LEqual (T_0, 0x0238))
{
Store (0x04, Local0)
}
Else
{
If (LEqual (T_0, 0x02E8))
{
Store (0x05, Local0)
}
Else
{
If (LEqual (T_0, 0x0338))
{
Store (0x06, Local0)
}
Else
{
If (LEqual (T_0, 0x03E8))
{
Store (0x07, Local0)
}
}
}
}
}
}
}
}
Return (Local0)
}
Method (RRIO, 4, NotSerialized)
{
Name (T_0, Zero)
Store (Add (Arg0, Zero), T_0)
If (LEqual (T_0, Zero))
{
Store (Zero, CALE)
Store (UXDV (Arg2), Local0)
If (LNotEqual (Local0, 0xFF))
{
Store (Local0, CADR)
}
If (Arg1)
{
Store (One, CALE)
}
}
Else
{
If (LEqual (T_0, One))
{
Store (Zero, CBLE)
Store (UXDV (Arg2), Local0)
If (LNotEqual (Local0, 0xFF))
{
Store (Local0, CBDR)
}
If (Arg1)
{
Store (One, CBLE)
}
}
Else
{
If (LEqual (T_0, 0x02))
{
Store (Zero, LTLE)
If (LEqual (Arg2, 0x0378))
{
Store (Zero, LTDR)
}
If (LEqual (Arg2, 0x0278))
{
Store (One, LTDR)
}
If (LEqual (Arg2, 0x03BC))
{
Store (0x02, LTDR)
}
If (Arg1)
{
Store (One, LTLE)
}
}
Else
{
If (LEqual (T_0, 0x03))
{
Store (Zero, FDLE)
If (LEqual (Arg2, 0x03F0))
{
Store (Zero, FDDR)
}
If (LEqual (Arg2, 0x0370))
{
Store (One, FDDR)
}
If (Arg1)
{
Store (One, FDLE)
}
}
Else
{
If (LEqual (T_0, 0x08))
{
If (LEqual (Arg2, 0x0200))
{
If (Arg1)
{
Store (One, GLLE)
}
Else
{
Store (Zero, GLLE)
}
}
If (LEqual (Arg2, 0x0208))
{
If (Arg1)
{
Store (One, GHLE)
}
Else
{
Store (Zero, GHLE)
}
}
}
Else
{
If (LEqual (T_0, 0x09))
{
If (LEqual (Arg2, 0x0200))
{
If (Arg1)
{
Store (One, GLLE)
}
Else
{
Store (Zero, GLLE)
}
}
If (LEqual (Arg2, 0x0208))
{
If (Arg1)
{
Store (One, GHLE)
}
Else
{
Store (Zero, GHLE)
}
}
}
Else
{
If (LEqual (T_0, 0x0A))
{
If (LOr (LEqual (Arg2, 0x60), LEqual (Arg2, 0x64)))
{
If (Arg1)
{
Store (One, KCLE)
}
Else
{
Store (Zero, KCLE)
}
}
}
Else
{
If (LEqual (T_0, 0x0B))
{
If (LOr (LEqual (Arg2, 0x62), LEqual (Arg2, 0x66)))
{
If (Arg1)
{
Store (One, MCLE)
}
Else
{
Store (Zero, MCLE)
}
}
}
Else
{
If (LEqual (T_0, 0x0C))
{
If (LEqual (Arg2, 0x2E))
{
If (Arg1)
{
Store (One, C1LE)
}
Else
{
Store (Zero, C1LE)
}
}
If (LEqual (Arg2, 0x4E))
{
If (Arg1)
{
Store (One, C2LE)
}
Else
{
Store (Zero, C2LE)
}
}
}
Else
{
If (LEqual (T_0, 0x0D))
{
If (LEqual (Arg2, 0x2E))
{
If (Arg1)
{
Store (One, C1LE)
}
Else
{
Store (Zero, C1LE)
}
}
If (LEqual (Arg2, 0x4E))
{
If (Arg1)
{
Store (One, C2LE)
}
Else
{
Store (Zero, C2LE)
}
}
}
}
}
}
}
}
}
}
}
}
}
Method (RDMA, 3, NotSerialized)
{
}
Scope (_SB)
{
Scope (PCI0)
{
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (CRS, ResourceTemplate ()
{
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y20)
})
OperationRegion (HCNT, SystemMemory, HPTC, 0x04)
Field (HCNT, DWordAcc, NoLock, Preserve)
{
HPTS, 2,
, 5,
HPTE, 1
}
Method (_STA, 0, NotSerialized)
{
If (HPTE)
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRS, \_SB.PCI0.HPET._Y20._BAS, HTBS)
Multiply (HPTS, 0x1000, Local0)
Add (Local0, 0xFED00000, HTBS)
Return (CRS)
}
}
}
}
Scope (_SB)
{
Scope (PCI0)
{
Method (_INI, 0, NotSerialized)
{
}
}
}
Name (WOTB, Zero)
Name (WSSB, Zero)
Name (WAXB, Zero)
Method (_PTS, 1, NotSerialized)
{
If (LEqual (Arg0, 0x05)) {}
Else
{
Store (Arg0, DBG8)
If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
{
Sleep (0x0BB8)
}
PTS (Arg0)
Store (Zero, Index (WAKP, Zero))
Store (Zero, Index (WAKP, One))
Store (ASSB, WSSB)
Store (AOTB, WOTB)
Store (AAXB, WAXB)
Store (Arg0, ASSB)
Store (OSFL (), AOTB)
Store (Zero, AAXB)
Store (One, \_SB.SLPS)
}
}
Method (_WAK, 1, NotSerialized)
{
ShiftLeft (Arg0, 0x04, DBG8)
WAK (Arg0)
If (ASSB)
{
Store (WSSB, ASSB)
Store (WOTB, AOTB)
Store (WAXB, AAXB)
}
If (DerefOf (Index (WAKP, Zero)))
{
Store (Zero, Index (WAKP, One))
}
Else
{
Store (Arg0, Index (WAKP, One))
}
Return (WAKP)
}
Device (OMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x0E11)
}
Device (_SB.RMEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, One)
}
Scope (_SB.PCI0)
{
Device (GFX0)
{
Name (_ADR, 0x00020000)
Name (OPBS, 0xFFFFFF00)
Method (OPBA, 0, NotSerialized)
{
Store (ASLS, Local0)
If (LEqual (Local0, 0xFFFFFFFF))
{
Store (0xFF000000, Local0)
}
Return (Local0)
}
Scope (^^PCI0)
{
OperationRegion (MCHP, PCI_Config, 0x40, 0xC0)
Field (MCHP, AnyAcc, NoLock, Preserve)
{
Offset (0x60),
TASM, 10,
Offset (0x62)
}
}
OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
Field (IGDP, AnyAcc, NoLock, Preserve)
{
Offset (0x12),
, 1,
GIVD, 1,
, 2,
GUMA, 3,
Offset (0x14),
, 4,
GMFN, 1,
Offset (0x18),
Offset (0x8C),
CDCT, 10,
Offset (0x8E),
Offset (0xA8),
GSSE, 1,
GSSB, 14,
GSES, 1,
Offset (0xBC),
ASLS, 32
}
Name (M512, 0x08)
Name (M1GB, 0x10)
OperationRegion (IGDM, SystemMemory, OPBA (), 0x2000)
Field (IGDM, AnyAcc, NoLock, Preserve)
{
SIGN, 128,
SIZE, 32,
OVER, 32,
SVER, 256,
VVER, 128,
GVER, 128,
MBOX, 32,
Offset (0xE0),
KSV0, 32,
KSV1, 8,
Offset (0xF0),
IBTT, 8,
IPSC, 8,
IPAT, 8,
IBIA, 8,
IBLC, 8,
ITVF, 4,
ITVM, 4,
IDVM, 8,
IDVS, 8,
ISSC, 8,
Offset (0x100),
DRDY, 32,
CSTS, 32,
CEVT, 32,
Offset (0x120),
DIDL, 32,
DDL2, 32,
DDL3, 32,
DDL4, 32,
DDL5, 32,
DDL6, 32,
DDL7, 32,
DDL8, 32,
CPDL, 32,
CPL2, 32,
CPL3, 32,
CPL4, 32,
CPL5, 32,
CPL6, 32,
CPL7, 32,
CPL8, 32,
CADL, 32,
CAL2, 32,
CAL3, 32,
CAL4, 32,
CAL5, 32,
CAL6, 32,
CAL7, 32,
CAL8, 32,
NADL, 32,
NDL2, 32,
NDL3, 32,
NDL4, 32,
NDL5, 32,
NDL6, 32,
NDL7, 32,
NDL8, 32,
ASLP, 32,
TIDX, 32,
CHPD, 32,
CLID, 32,
CDCK, 32,
SXSW, 32,
EVTS, 32,
CNOT, 32,
NRDY, 32,
Offset (0x200),
SCIE, 1,
GEFC, 4,
GXFC, 3,
GESF, 8,
Offset (0x204),
PARM, 32,
DSLP, 32,
Offset (0x300),
ARDY, 32,
ASLC, 32,
TCHE, 32,
ALSI, 32,
BCLP, 32,
PFIT, 32,
CBLV, 32,
BCLM, 320,
CPFM, 32,
EPFM, 32,
Offset (0x400),
GVD1, 57344
}
OperationRegion (TCOI, SystemIO, TOBS, 0x08)
Field (TCOI, WordAcc, NoLock, Preserve)
{
Offset (0x04),
, 9,
SCIS, 1,
Offset (0x06)
}
Name (DBTB, Package (0x15)
{
Zero,
0x07,
0x38,
0x01C0,
0x0E00,
0x3F,
0x01C7,
0x0E07,
0x01F8,
0x0E38,
0x0FC0,
Zero,
Zero,
Zero,
Zero,
Zero,
0x7000,
0x7007,
0x7038,
0x71C0,
0x7E00
})
Method (GSCI, 0, NotSerialized)
{
If (LEqual (GEFC, 0x04))
{
Store (GBDA (), GXFC)
}
If (LEqual (GEFC, 0x06))
{
Store (SBCB (), GXFC)
}
Store (One, SCIS)
Store (Zero, GEFC)
Store (Zero, GSSE)
Store (Zero, SCIE)
Return (Zero)
}
Method (GBDA, 0, NotSerialized)
{
If (LEqual (GESF, Zero))
{
Store (0x0679, PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, One))
{
Store (0x0240, PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x04))
{
And (PARM, 0xEFFF0000, PARM)
And (PARM, ShiftLeft (DerefOf (Index (DBTB, IBTT)), 0x10),
PARM)
Or (IBTT, PARM, PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x05))
{
Store (IPSC, PARM)
Or (PARM, ShiftLeft (IPAT, 0x08), PARM)
Add (PARM, 0x0100, PARM)
Or (PARM, ShiftLeft (LDST, 0x10), PARM)
XOr (PARM, 0x00010000, PARM)
Or (PARM, ShiftLeft (IBIA, 0x14), PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x06))
{
Store (ITVF, PARM)
Or (PARM, ShiftLeft (ITVM, 0x04), PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x07))
{
Name (MEMS, 0x0D)
Store (GIVD, PARM)
XOr (PARM, One, PARM)
Or (PARM, ShiftLeft (GMFN, One), PARM)
Or (PARM, 0x1800, PARM)
Or (ShiftLeft (CDCT, 0x15), PARM, PARM)
If (LEqual (IDVM, One))
{
Store (0x11, MEMS)
}
Or (PARM, ShiftLeft (IDVS, MEMS), PARM)
Store (One, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x0A))
{
Store (Zero, PARM)
If (ISSC)
{
Or (PARM, 0x03, PARM)
}
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x0B))
{
Store (KSV0, PARM)
Store (KSV1, GESF)
Return (SUCC)
}
Store (Zero, GESF)
Return (CRIT)
}
Method (SBCB, 0, NotSerialized)
{
If (LEqual (GESF, Zero))
{
Store (0x20, PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, One))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x03))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x04))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x05))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x06))
{
ShiftRight (PARM, 0x1C, Local0)
If (LEqual (Local0, Zero))
{
And (PARM, 0x0F, ITVF)
And (PARM, 0xF0, ITVM)
}
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x07))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x08))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x09))
{
And (PARM, 0xFF, IBTT)
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x0A))
{
ShiftRight (PARM, 0x1C, Local0)
If (LEqual (Local0, Zero))
{
And (PARM, 0xFF, IPSC)
Subtract (And (ShiftRight (PARM, 0x08), 0xFF), One, IPAT)
And (ShiftRight (PARM, 0x12), 0x03, IBLC)
And (ShiftRight (PARM, 0x14), 0x07, IBIA)
}
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x0B))
{
If (LEqual (And (ShiftRight (PARM, 0x0B), 0x03), 0x02))
{
And (ShiftRight (PARM, 0x0D), 0x0F, Local0)
And (ShiftRight (PARM, 0x11), 0x0F, Local1)
If (Local0)
{
Store (Zero, IDVM)
Store (Local0, IDVS)
}
If (Local1)
{
Store (One, IDVM)
Store (Local1, IDVS)
}
}
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x10))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x11))
{
Store (ShiftLeft (LDST, 0x08), PARM)
Add (PARM, 0x0100, PARM)
NAnd (PARM, 0x0200, PARM)
Store (Zero, GESF)
Return (SUCC)
}
If (LEqual (GESF, 0x12))
{
If (And (PARM, One))
{
If (LEqual (ShiftRight (PARM, One), One))
{
Store (One, ISSC)
}
Else
{
Store (Zero, GESF)
Return (CRIT)
}
}
Else
{
Store (Zero, ISSC)
}
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
If (LEqual (GESF, 0x13))
{
Store (Zero, GESF)
Store (Zero, PARM)
Return (SUCC)
}
Store (Zero, GESF)
Return (SUCC)
}
Method (OPTS, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (ASLS, OPBS)
}
}
Method (OWAK, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (OPBS, ASLS)
Store (One, GSES)
}
}
}
}
Scope (_GPE)
{
Method (_L06, 0, NotSerialized)
{
\_SB.PCI0.GFX0.GSCI ()
}
}
Device (_SB.PCI0.SBRG.TPM)
{
Name (_HID, EisaId ("IFX0102"))
Name (_CID, EisaId ("PNP0C31"))
Name (_STR, Unicode ("TPM 1.2 Device"))
Name (_UID, One)
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0xFED40000, // Address Base
0x00005000, // Address Length
)
})
OperationRegion (TMMB, SystemMemory, 0xFED40000, 0x5000)
Field (TMMB, ByteAcc, Lock, Preserve)
{
ACCS, 8,
Offset (0x18),
TSTA, 8,
TBCA, 8,
Offset (0xF00),
TVID, 16,
TDID, 16
}
Method (_STA, 0, NotSerialized)
{
If (LEqual (VIDT, 0x8086))
{
Return (Zero)
}
Else
{
If (TPMF)
{
Return (0x0F)
}
Return (Zero)
}
}
}
Scope (_SB.PCI0.SBRG.TPM)
{
OperationRegion (TSMI, SystemIO, SMIT, 0x02)
Field (TSMI, ByteAcc, NoLock, Preserve)
{
INQ, 8,
DAT, 8
}
Method (_DSM, 4, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E,
/* 0008 */ 0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53
}))
{
Name (T_0, Zero)
Store (ToInteger (Arg2), T_0)
If (LEqual (T_0, Zero))
{
Return (Buffer (One)
{
0x7F
})
}
Else
{
If (LEqual (T_0, One))
{
Return ("1.0")
}
Else
{
If (LEqual (T_0, 0x02))
{
ToInteger (DerefOf (Index (Arg3, Zero)), TMF2)
Store (0x12, TMF1)
Store (TMF1, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Store (TMF2, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Return (Zero)
}
Else
{
If (LEqual (T_0, 0x03))
{
Name (PPI1, Package (0x02)
{
Zero,
Zero
})
Store (0x11, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (One)
}
Store (DAT, Index (PPI1, One))
Return (PPI1)
}
Else
{
If (LEqual (T_0, 0x04))
{
Return (One)
}
Else
{
If (LEqual (T_0, 0x05))
{
Name (PPI2, Package (0x03)
{
Zero,
Zero,
Zero
})
Store (0x21, DAT)
Store (OFST, INQ)
Store (DAT, Index (PPI2, One))
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Store (DAT, Index (PPI2, One))
Store (0x31, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
If (LEqual (DAT, 0xFFF0))
{
Store (0xFFFFFFF0, Index (PPI2, 0x02))
}
Else
{
If (LEqual (DAT, 0xFFF1))
{
Store (0xFFFFFFF1, Index (PPI2, 0x02))
}
Else
{
Store (DAT, Index (PPI2, 0x02))
}
}
Return (PPI2)
}
Else
{
If (LEqual (T_0, 0x06))
{
Return (Zero)
}
Else
{
}
}
}
}
}
}
}
}
Else
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xED, 0x54, 0x60, 0x37, 0x13, 0xCC, 0x75, 0x46,
/* 0008 */ 0x90, 0x1C, 0x47, 0x56, 0xD7, 0xF2, 0xD4, 0x5D
}))
{
Name (T_1, Zero)
Store (ToInteger (Arg2), T_1)
If (LEqual (T_1, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Else
{
If (LEqual (T_1, One))
{
Store (0x22, TMF1)
Store (TMF1, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
ToInteger (DerefOf (Index (Arg3, Zero)), TMF1)
Store (TMF1, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Return (Zero)
}
Else
{
}
}
}
}
Return (Buffer (One)
{
0x00
})
}
}
Scope (_SB.PCI0)
{
OperationRegion (ITPD, PCI_Config, 0xE8, 0x04)
Field (ITPD, DWordAcc, NoLock, Preserve)
{
, 15,
TPDI, 1
}
OperationRegion (TVID, SystemMemory, 0xFED40F00, 0x02)
Field (TVID, WordAcc, NoLock, Preserve)
{
VIDT, 16
}
}
Device (_SB.PCI0.ITPM)
{
Name (_HID, "INTC0102")
Name (_CID, EisaId ("PNP0C31"))
Name (_STR, Unicode ("TPM 1.2 Device"))
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0xFED40000, // Address Base
0x00005000, // Address Length
)
})
OperationRegion (TSMI, SystemIO, SMIT, 0x02)
Field (TSMI, ByteAcc, NoLock, Preserve)
{
INQ, 8,
DAT, 8
}
OperationRegion (TPMR, SystemMemory, 0xFED40000, 0x5000)
Field (TPMR, AnyAcc, NoLock, Preserve)
{
ACC0, 8
}
Method (_STA, 0, NotSerialized)
{
If (LNotEqual (ACC0, 0xFF))
{
If (LEqual (VIDT, 0x8086))
{
If (TPMF)
{
Return (0x0F)
}
Return (Zero)
}
}
Return (Zero)
}
Method (_DSM, 4, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E,
/* 0008 */ 0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53
}))
{
Name (T_0, Zero)
Store (ToInteger (Arg2), T_0)
If (LEqual (T_0, Zero))
{
Return (Buffer (One)
{
0x7F
})
}
Else
{
If (LEqual (T_0, One))
{
Return ("1.0")
}
Else
{
If (LEqual (T_0, 0x02))
{
ToInteger (DerefOf (Index (Arg3, Zero)), TMF2)
Store (0x12, TMF1)
Store (TMF1, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Store (TMF2, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Return (Zero)
}
Else
{
If (LEqual (T_0, 0x03))
{
Name (PPI1, Package (0x02)
{
Zero,
Zero
})
Store (0x11, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (One)
}
Store (DAT, Index (PPI1, One))
Return (PPI1)
}
Else
{
If (LEqual (T_0, 0x04))
{
Return (One)
}
Else
{
If (LEqual (T_0, 0x05))
{
Name (PPI2, Package (0x03)
{
Zero,
Zero,
Zero
})
Store (0x21, DAT)
Store (OFST, INQ)
Store (DAT, Index (PPI2, One))
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Store (DAT, Index (PPI2, One))
Store (0x31, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
If (LEqual (DAT, 0xFFF0))
{
Store (0xFFFFFFF0, Index (PPI2, 0x02))
}
Else
{
If (LEqual (DAT, 0xFFF1))
{
Store (0xFFFFFFF1, Index (PPI2, 0x02))
}
Else
{
Store (DAT, Index (PPI2, 0x02))
}
}
Return (PPI2)
}
Else
{
If (LEqual (T_0, 0x06))
{
Return (Zero)
}
Else
{
}
}
}
}
}
}
}
}
Else
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xED, 0x54, 0x60, 0x37, 0x13, 0xCC, 0x75, 0x46,
/* 0008 */ 0x90, 0x1C, 0x47, 0x56, 0xD7, 0xF2, 0xD4, 0x5D
}))
{
Name (T_1, Zero)
Store (ToInteger (Arg2), T_1)
If (LEqual (T_1, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Else
{
If (LEqual (T_1, One))
{
Store (0x22, TMF1)
Store (TMF1, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
ToInteger (DerefOf (Index (Arg3, Zero)), TMF1)
Store (TMF1, DAT)
Store (OFST, INQ)
If (LEqual (DAT, 0xFF))
{
Return (0x02)
}
Return (Zero)
}
Else
{
}
}
}
}
Return (Buffer (One)
{
0x00
})
}
}
Name (_S0, Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
If (SS1)
{
Name (_S1, Package (0x04)
{
One,
Zero,
Zero,
Zero
})
}
If (SS3)
{
Name (_S3, Package (0x04)
{
0x05,
Zero,
Zero,
Zero
})
}
If (SS4)
{
Name (_S4, Package (0x04)
{
0x06,
Zero,
Zero,
Zero
})
}
Name (_S5, Package (0x04)
{
0x07,
Zero,
Zero,
Zero
})
Method (PTS, 1, NotSerialized)
{
If (Arg0)
{
\_SB.PCI0.SBRG.SPTS (Arg0)
\_SB.PCI0.PEX0.SPRT (Arg0)
\_SB.PCI0.PEX1.SPRT (Arg0)
\_SB.PCI0.PEX2.SPRT (Arg0)
\_SB.PCI0.PEX3.SPRT (Arg0)
\_SB.PCI0.PEX4.SPRT (Arg0)
\_SB.PCI0.PEX5.SPRT (Arg0)
\_SB.PCI0.PEX6.SPRT (Arg0)
\_SB.PCI0.PEX7.SPRT (Arg0)
\_SB.PCI0.GFX0.OPTS (Arg0)
\_SB.PCI0.SBRG.SIOS (Arg0)
}
}
Method (WAK, 1, NotSerialized)
{
\_SB.PCI0.SBRG.SWAK (Arg0)
If (\_SB.PCI0.PEX0.PMS)
{
\_SB.PCI0.PEX0.WPRT (Arg0)
Notify (\_SB.PCI0.PEX0, 0x02)
}
Else
{
\_SB.PCI0.PEX0.WPRT (Arg0)
}
If (\_SB.PCI0.PEX1.PMS)
{
\_SB.PCI0.PEX1.WPRT (Arg0)
Notify (\_SB.PCI0.PEX1, 0x02)
}
Else
{
\_SB.PCI0.PEX1.WPRT (Arg0)
}
If (\_SB.PCI0.PEX2.PMS)
{
\_SB.PCI0.PEX2.WPRT (Arg0)
Notify (\_SB.PCI0.PEX2, 0x02)
}
Else
{
\_SB.PCI0.PEX2.WPRT (Arg0)
}
If (\_SB.PCI0.PEX3.PMS)
{
\_SB.PCI0.PEX3.WPRT (Arg0)
Notify (\_SB.PCI0.PEX3, 0x02)
}
Else
{
\_SB.PCI0.PEX3.WPRT (Arg0)
}
If (\_SB.PCI0.PEX4.PMS)
{
\_SB.PCI0.PEX4.WPRT (Arg0)
Notify (\_SB.PCI0.PEX4, 0x02)
}
Else
{
\_SB.PCI0.PEX4.WPRT (Arg0)
}
If (\_SB.PCI0.PEX5.PMS)
{
\_SB.PCI0.PEX5.WPRT (Arg0)
Notify (\_SB.PCI0.PEX5, 0x02)
}
Else
{
\_SB.PCI0.PEX5.WPRT (Arg0)
}
If (\_SB.PCI0.PEX6.PMS)
{
\_SB.PCI0.PEX6.WPRT (Arg0)
Notify (\_SB.PCI0.PEX6, 0x02)
}
Else
{
\_SB.PCI0.PEX6.WPRT (Arg0)
}
If (\_SB.PCI0.PEX7.PMS)
{
\_SB.PCI0.PEX7.WPRT (Arg0)
Notify (\_SB.PCI0.PEX7, 0x02)
}
Else
{
\_SB.PCI0.PEX7.WPRT (Arg0)
}
\_SB.PCI0.GFX0.OWAK (Arg0)
\_SB.PCI0.SBRG.SIOW (Arg0)
}
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)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment