Failure to get past a PCI bridge
Josef Moellers
josef.moellers at ts.fujitsu.com
Fri Jun 5 09:17:35 UTC 2009
John Baldwin wrote:
> On Thursday 04 June 2009 10:16:29 am Josef Moellers wrote:
>
>> John Baldwin wrote:
>>
>>> On Tuesday 02 June 2009 3:19:54 am Josef Moellers wrote:
>>>
>>>
>>>> Hi,
>>>>
>>>> (I've posted this to freebsd-questions before. Ian Smith redirected me
>>>> to this list).
>>>>
>>>> I'm trying to install 7.2-RELEASE on a pretty new system (a Fujitsu
>>>> RX300S5).
>>>> The first obstacle was the fact that while the system has an
>>>> AT-Keyboard-Controller, it ist not used (keyboard and mouse are
>>>> connected via USB) and I have found that I can get past that by
>>>>
> specifying
>
>>>> set hint.atkbd.0.disabled=1
>>>> set hint.atkbdc.0.disabled=1
>>>>
>>>> The install kernel then boots properly and reaches the "Country
>>>>
> Selection".
>
>>>> At that point, no keyboard input is accepted. An optical mouse is off,
>>>> so I assume the USB power to be off.
>>>>
>>>> I have hooked up a serial connection to log the kernel's output (some
>>>> 1000+ lines):
>>>>
>>>> set boot_serial=1
>>>> set boot_verbose=1
>>>> set boot_multicons=1
>>>> set console="comconsole vidconsole"
>>>>
>>>> The following lines make me wonder if the kernel fails to get past PCI
>>>> bridges and thus can't reach the UHCI controllers:
>>>>
>>>> pcib0: <ACPI Host-PCI bridge> on acpi0
>>>> pcib0: could not get PCI interrupt routing table for \_SB_.CPU0 -
>>>> AE_NOT_FOUND
>>>> :
>>>> pcib1: <ACPI Host-PCI bridge> on acpi0
>>>> pcib1: could not get PCI interrupt routing table for \_SB_.CPU1 -
>>>> AE_NOT_FOUND
>>>> :
>>>> pcib2: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
>>>> pcib2: couldn't find _ADR
>>>> pcib2: trying bus number 2
>>>> pci2: <ACPI PCI bus> on pcib2
>>>> pci2: domain=0, physical bus=2
>>>>
>>>> I talked to the guy who does the BIOS for the machine and he says that
>>>> it makes no sense for the kernel to try and find the _PRT for \_SB_.CPU0
>>>> or \_SB_.CPU1!
>>>>
>>>>
>>> Can you get an acpidump? It seems that the BIOS has the wrong _HID for
>>>
> the
>
>>> CPU objects and has marked them as Host-PCI bridges instead. Although
>>>
> CPUs
>
>>> should be Processor objects and not Device objects anyway. Sounds like a
>>> very busted BIOS.
>>>
>>>
>> Does this help?
>>
>
> Hmm, not quite. Can you do 'acpidump -d -t > foo' instead?
>
Difficult, since I can't boot properly.
However, I have managed to get the dsdt using a SuSE Linux and have run
that through acpidump -d on a 7.2 running on a XEN virtual machine.
Here's the result.
--
These are my personal views and not those of Fujitsu Technology Solutions!
Josef Möllers (Pinguinpfleger bei FTS)
If failure had no penalty success would not be a prize (T. Pratchett)
Company Details: http://de.ts.fujitsu.com/imprint.html
-------------- next part --------------
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20070320
*
* Disassembly of /tmp/acpidump.tvBS6J, Fri Jun 5 10:49:36 2009
*
*
* Original Table Header:
* Signature "DSDT"
* Length 0x000048A4 (18596)
* Revision 0x01
* OEM ID "FSC "
* OEM Table ID "D2619 "
* OEM Revision 0x00060000 (393216)
* Creator ID "MSFT"
* Creator Revision 0x03000001 (50331649)
*/
DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "FSC ", "D2619 ", 0x00060000)
{
External (\_PR_.PR17._PSS)
External (\_PR_.PR17._PPC)
External (\_PR_.PR16._PSS)
External (\_PR_.PR16._PPC)
External (\_PR_.PR15._PSS)
External (\_PR_.PR15._PPC)
External (\_PR_.PR14._PSS)
External (\_PR_.PR14._PPC)
External (\_PR_.PR13._PSS)
External (\_PR_.PR13._PPC)
External (\_PR_.PR12._PSS)
External (\_PR_.PR12._PPC)
External (\_PR_.PR11._PSS)
External (\_PR_.PR11._PPC)
External (\_PR_.PR10._PSS)
External (\_PR_.PR10._PPC)
External (\_PR_.PR07._PSS)
External (\_PR_.PR07._PPC)
External (\_PR_.PR06._PSS)
External (\_PR_.PR06._PPC)
External (\_PR_.PR05._PSS)
External (\_PR_.PR05._PPC)
External (\_PR_.PR04._PSS)
External (\_PR_.PR04._PPC)
External (\_PR_.PR03._PSS)
External (\_PR_.PR03._PPC)
External (\_PR_.PR02._PSS)
External (\_PR_.PR02._PPC)
External (\_PR_.PR01._PSS)
External (\_PR_.PR01._PPC)
External (\_PR_.PR00._PSS)
External (\_PR_.PR00._PPC)
Scope (\)
{
Name (SUCA, 0x07)
Name (MTYP, 0x00)
Name (MARC, 0x00015F90)
Name (MSMT, 0x03E8)
Name (MINA, 0x07D0)
Name (MAXA, 0x0FA0)
Name (TPHM, 0xFFFFFFFF)
Name (HLIC, Ones)
Name (MICL, 0x0007A120)
Name (MACL, 0x000AAE60)
Name (PMMC, 0x000493E0)
Name (HLMT, 0x000AAE60)
Name (PAIC, 0x07D0)
}
Scope (\_SB)
{
Device (PSD)
{
Name (_HID, "ACPI0003")
Name (_UID, 0x01)
Name (_STA, 0x0F)
Method (_PSR, 0, NotSerialized)
{
Return (0x01)
}
}
Device (PMO)
{
Name (_HID, "ACPI000D")
Name (_STA, 0x0F)
Method (_PMC, 0, NotSerialized)
{
Name (PMCD, Package (0x0E)
{
SUCA,
0x00,
MTYP,
MARC,
MSMT,
MINA,
MAXA,
TPHM,
HLIC,
MICL,
MACL,
"Model Number",
"Serial Number",
"OEM Information"
})
Return (PMCD)
}
Method (_PMD, 0, NotSerialized)
{
Return (Package (0x01)
{
"_SB"
})
}
Method (_PMM, 0, NotSerialized)
{
Return (PMMC)
}
Method (_PAI, 1, NotSerialized)
{
If (LOr (LGreater (Arg0, MAXA), LLess (Arg0, MINA)))
{
Return (0x01)
}
Store (Arg0, PAIC)
Return (0x00)
}
Method (_GAI, 0, NotSerialized)
{
Return (PAIC)
}
Method (_PTP, 2, NotSerialized)
{
If (LOr (LGreater (PMMC, Arg0), LLess (PMMC, Arg1)))
{
Return (0x01)
}
Return (0x00)
}
Method (_GHL, 0, NotSerialized)
{
Return (HLMT)
}
Method (_SHL, 1, NotSerialized)
{
If (LOr (LGreater (Arg0, MACL), LLess (Arg0, MICL)))
{
Return (0x01)
}
Store (Arg0, HLMT)
Return (0x00)
}
}
}
Name (C1EN, 0x01)
Name (C2EN, 0x01)
Name (SLPS, 0x00)
Name (OSFL, 0x00)
Name (PICM, 0x00)
Method (OSCK, 0, NotSerialized)
{
Store (One, OSFL)
Store (Zero, \_SB.PCI0.LPC.AAOF)
If (STRC (\_OS, "Microsoft Windows"))
{
Store (Zero, OSFL)
Store (One, \_SB.PCI0.LPC.AAOF)
}
If (STRC (\_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (Zero, OSFL)
Store (0x02, \_SB.PCI0.LPC.AAOF)
}
If (CondRefOf (\_OSI, Local0))
{
If (\_OSI ("Windows 2001"))
{
Store (0x03, \_SB.PCI0.LPC.AAOF)
}
If (\_OSI ("Windows 2006"))
{
Store (0x08, \_SB.PCI0.LPC.AAOF)
}
}
}
Method (STRC, 2, NotSerialized)
{
If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
{
Return (Zero)
}
Add (SizeOf (Arg0), One, Local0)
Name (STR1, Buffer (Local0) {})
Store (Arg0, STR1)
Name (STR2, Buffer (Local0) {})
Store (Arg1, STR2)
While (Local0)
{
Decrement (Local0)
If (LNotEqual (DerefOf (Index (STR1, Local0)), DerefOf (Index (
STR2, Local0))))
{
Return (Zero)
}
}
Return (One)
}
Method (_PIC, 1, NotSerialized)
{
Store (Arg0, PICM)
}
Name (_S0, Package (0x04)
{
0x00,
0x00,
0x00,
0x00
})
Name (_S1, Package (0x04)
{
0x01,
0x01,
0x00,
0x00
})
Name (_S4, Package (0x04)
{
0x06,
0x06,
0x00,
0x00
})
Name (_S5, Package (0x04)
{
0x07,
0x07,
0x00,
0x00
})
Method (\_PTS, 1, NotSerialized)
{
\_SB.PCI0.LPC.SIO2.SLEP (Arg0)
If (LEqual (Arg0, 0x05))
{
\_SB.PHSR (0x4B, 0x00, 0x00)
}
Store (Arg0, SLPS)
}
Method (\_WAK, 1, NotSerialized)
{
\_SB.PCI0.LPC.SIO2.WAKE (Arg0)
Store (Zero, SLPS)
If (LEqual (Arg0, 0x04))
{
Notify (\_SB.PWRB, 0x02)
Notify (\_SB.PCI0.USB1, 0x00)
Notify (\_SB.PCI0.USB2, 0x00)
Notify (\_SB.PCI0.USB3, 0x00)
Notify (\_SB.PCI0.USB4, 0x00)
Notify (\_SB.PCI0.USB5, 0x00)
Notify (\_SB.PCI0.USB6, 0x00)
Notify (\_SB.PCI0.USB7, 0x00)
Notify (\_SB.PCI0.USB8, 0x00)
}
}
Scope (\_PR)
{
Processor (PR00, 0x00, 0x00000000, 0x00) {}
Processor (PR01, 0x08, 0x00000000, 0x00) {}
Processor (PR02, 0x01, 0x00000000, 0x00) {}
Processor (PR03, 0x09, 0x00000000, 0x00) {}
Processor (PR04, 0x02, 0x00000000, 0x00) {}
Processor (PR05, 0x0A, 0x00000000, 0x00) {}
Processor (PR06, 0x03, 0x00000000, 0x00) {}
Processor (PR07, 0x0B, 0x00000000, 0x00) {}
Processor (PR10, 0x04, 0x00000000, 0x00) {}
Processor (PR11, 0x0C, 0x00000000, 0x00) {}
Processor (PR12, 0x05, 0x00000000, 0x00) {}
Processor (PR13, 0x0D, 0x00000000, 0x00) {}
Processor (PR14, 0x06, 0x00000000, 0x00) {}
Processor (PR15, 0x0E, 0x00000000, 0x00) {}
Processor (PR16, 0x07, 0x00000000, 0x00) {}
Processor (PR17, 0x0F, 0x00000000, 0x00) {}
}
Scope (\_GPE)
{
Method (_L03, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB1, 0x02)
}
Method (_L04, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB2, 0x02)
}
Method (_L05, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB5, 0x02)
}
Method (_L09, 0, NotSerialized)
{
While (\_SB.PCI0.PE1A.PS)
{
Store (One, \_SB.PCI0.PE1A.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE1A.PS))
{
Notify (\_SB.PCI0.PE1A, 0x02)
}
}
While (\_SB.PCI0.PE1A.PMCS)
{
Store (One, \_SB.PCI0.PE1A.PMCS)
Sleep (0x0A)
}
While (\_SB.PCI0.PE1E.PS)
{
Store (One, \_SB.PCI0.PE1E.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE1E.PS))
{
Notify (\_SB.PCI0.PE1E, 0x02)
}
}
While (\_SB.PCI0.PE1E.PMCS)
{
Store (One, \_SB.PCI0.PE1E.PMCS)
Sleep (0x0A)
}
While (\_SB.PCI0.PE0.PS)
{
Store (One, \_SB.PCI0.PE0.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE0.PS))
{
Notify (\_SB.PCI0.PE0, 0x02)
}
}
While (\_SB.PCI0.PE1.PS)
{
Store (One, \_SB.PCI0.PE1.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE1.PS))
{
Notify (\_SB.PCI0.PE1, 0x02)
}
}
While (\_SB.PCI0.PE3.PS)
{
Store (One, \_SB.PCI0.PE3.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE3.PS))
{
Notify (\_SB.PCI0.PE3, 0x02)
}
}
While (\_SB.PCI0.PE5.PS)
{
Store (One, \_SB.PCI0.PE5.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE5.PS))
{
Notify (\_SB.PCI0.PE5, 0x02)
}
}
While (\_SB.PCI0.PE7.PS)
{
Store (One, \_SB.PCI0.PE7.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE7.PS))
{
Notify (\_SB.PCI0.PE7, 0x02)
}
}
While (\_SB.PCI0.PE8.PS)
{
Store (One, \_SB.PCI0.PE8.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE8.PS))
{
Notify (\_SB.PCI0.PE8, 0x02)
}
}
While (\_SB.PCI0.PE9.PS)
{
Store (One, \_SB.PCI0.PE9.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE9.PS))
{
Notify (\_SB.PCI0.PE9, 0x02)
}
}
While (\_SB.PCI0.PE10.PS)
{
Store (One, \_SB.PCI0.PE10.PS)
Sleep (0x0A)
If (LNot (\_SB.PCI0.PE10.PS))
{
Notify (\_SB.PCI0.PE10, 0x02)
}
}
}
Method (_L0C, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB3, 0x02)
}
Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB7, 0x02)
Notify (\_SB.PCI0.USB8, 0x02)
}
Method (_L0E, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB4, 0x02)
}
Method (_L16, 0, NotSerialized)
{
\_SB.PCI0.LPC.KCS5.SIRS ()
}
Method (_L18, 0, NotSerialized)
{
If (LAnd (\_SB.PCI0.LPC.SIO2.RI1S, \_SB.PCI0.LPC.SIO2.RI1E))
{
Notify (\_SB.PWRB, 0x02)
Notify (\_SB.PCI0.LPC.SIO2.COM1, 0x02)
While (\_SB.PCI0.LPC.SIO2.RI1S)
{
Store (One, \_SB.PCI0.LPC.SIO2.RI1S)
}
}
If (LAnd (\_SB.PCI0.LPC.SIO2.RI2S, \_SB.PCI0.LPC.SIO2.RI2E))
{
Notify (\_SB.PWRB, 0x02)
Notify (\_SB.PCI0.LPC.SIO2.COM2, 0x02)
While (\_SB.PCI0.LPC.SIO2.RI2S)
{
Store (One, \_SB.PCI0.LPC.SIO2.RI2S)
}
}
}
Method (_L20, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB6, 0x02)
}
}
Scope (\_SI)
{
Method (_SST, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
SSIL (0x01, 0x00, 0x01)
}
If (LEqual (Arg0, 0x03))
{
SSIL (0x01, 0x01, 0x01)
}
}
Method (SSIL, 3, NotSerialized)
{
Store (Arg0, \_SB.PCI0.LPC.SSLE)
Store (Arg1, \_SB.PCI0.LPC.SPLB)
Store (Arg2, \_SB.PCI0.LPC.SPLE)
}
}
Scope (\_SB)
{
OperationRegion (SMI0, SystemIO, 0x0000FE00, 0x00000002)
Field (SMI0, AnyAcc, NoLock, Preserve)
{
SMIC, 8
}
OperationRegion (SMI1, SystemMemory, 0xBF7CBEBC, 0x00000090)
Field (SMI1, AnyAcc, NoLock, Preserve)
{
BCMD, 8,
DID, 32,
INFO, 1024
}
OperationRegion (TCG1, SystemMemory, 0xBF7CBEB5, 0x0007)
Field (TCG1, AnyAcc, NoLock, Preserve)
{
PPRQ, 8,
PPLO, 8,
PPRP, 8,
PPOR, 8,
TPRS, 8,
TPMV, 8,
MOR, 8
}
Method (PHSR, 3, Serialized)
{
Store (Arg0, BCMD)
Store (Arg1, DID)
Store (Arg2, INFO)
Store (Zero, SMIC)
If (LEqual (BCMD, Arg0)) {}
Store (Zero, BCMD)
Store (Zero, DID)
Return (0x00)
}
OperationRegion (PECF, SystemMemory, 0xE0000000, 0x00100000)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0x188),
, 2,
PME0, 1,
Offset (0x18C),
PEI0, 1,
Offset (0x8188),
, 2,
PME1, 1,
Offset (0x818C),
PEI1, 1,
Offset (0x18188),
, 2,
PME3, 1,
Offset (0x1818C),
PEI3, 1,
Offset (0x28188),
, 2,
PME5, 1,
Offset (0x2818C),
PEI5, 1,
Offset (0x38188),
, 2,
PME7, 1,
Offset (0x3818C),
PEI7, 1,
Offset (0x40188),
, 2,
PME8, 1,
Offset (0x4018C),
PEI8, 1,
Offset (0x48188),
, 2,
PME9, 1,
Offset (0x4818C),
PEI9, 1,
Offset (0x50188),
, 2,
PMEA, 1,
Offset (0x5018C),
PEIA, 1
}
Device (MCFG)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x02)
Name (CRES, ResourceTemplate ()
{
DWordMemory (ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y00, AddressRangeMemory, TypeStatic)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRES, \_SB.MCFG._Y00._MIN, MINP)
CreateDWordField (CRES, \_SB.MCFG._Y00._MAX, MAXP)
CreateDWordField (CRES, \_SB.MCFG._Y00._LEN, LENP)
If (LEqual (\_SB.CPU0.SAD.VID, 0x8086))
{
ShiftLeft (\_SB.CPU0.SAD.CFGA, 0x14, MINP)
If (LEqual (\_SB.CPU0.SAD.CFGS, 0x06))
{
Store (0x04000000, LENP)
}
If (LEqual (\_SB.CPU0.SAD.CFGS, 0x07))
{
Store (0x08000000, LENP)
}
If (LEqual (\_SB.CPU0.SAD.CFGS, 0x00))
{
Store (0x10000000, LENP)
}
}
Else
{
ShiftLeft (\_SB.CPU1.SAD.CFGA, 0x14, MINP)
If (LEqual (\_SB.CPU1.SAD.CFGS, 0x06))
{
Store (0x04000000, LENP)
}
If (LEqual (\_SB.CPU1.SAD.CFGS, 0x07))
{
Store (0x08000000, LENP)
}
If (LEqual (\_SB.CPU1.SAD.CFGS, 0x00))
{
Store (0x10000000, LENP)
}
}
Add (MINP, LENP, MAXP)
Decrement (MAXP)
Return (CRES)
}
}
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
Device (CPU0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_UID, 0x01)
Name (_BBN, 0xFF)
Name (CRES, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x00FF, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0001, // Length
,, )
})
Method (_CRS, 0, NotSerialized)
{
Return (CRES)
}
Device (SAD)
{
Name (_ADR, 0x01)
Name (_STA, 0x0F)
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
VID, 16,
Offset (0x40),
PAM0, 8,
PAM1, 8,
PAM2, 8,
PAM3, 8,
PAM4, 8,
PAM5, 8,
PAM6, 8,
Offset (0x50),
CFGE, 1,
CFGS, 3,
, 16,
CFGA, 20
}
}
}
Device (CPU1)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_UID, 0x02)
Name (_BBN, 0xFE)
Name (CRES, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x00FE, // Range Minimum
0x00FE, // Range Maximum
0x0000, // Translation Offset
0x0001, // Length
,, )
})
Method (_CRS, 0, NotSerialized)
{
Return (CRES)
}
Device (SAD)
{
Name (_ADR, 0x01)
Name (_STA, 0x0F)
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
VID, 16,
Offset (0x40),
PAM0, 8,
PAM1, 8,
PAM2, 8,
PAM3, 8,
PAM4, 8,
PAM5, 8,
PAM6, 8,
Offset (0x50),
CFGE, 1,
CFGS, 3,
, 16,
CFGA, 20
}
}
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08"))
Name (_CID, 0x030AD041)
Name (_UID, 0x00)
Name (_BBN, 0x00)
Method (_INI, 0, NotSerialized)
{
\OSCK ()
}
Name (CRES, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x003D, // Range Maximum
0x0000, // Translation Offset
0x003E, // Length
,, )
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
,, , TypeStatic)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
,, , TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x000C8000, // Range Minimum
0x000DFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00018000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y01, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0xF0000000, // Range Minimum
0xFEBFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x0EC00000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0xFED00000, // Range Minimum
0xFEDFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00100000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0xFEF00000, // Range Minimum
0xFFBFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00D00000, // Length
,, , AddressRangeMemory, TypeStatic)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRES, \_SB.PCI0._Y01._MIN, MIN1)
CreateDWordField (CRES, \_SB.PCI0._Y01._MAX, MAX1)
CreateDWordField (CRES, \_SB.PCI0._Y01._LEN, LEN1)
Add (\_SB.PCI0.CORE.TOLM, 0x01, Local0)
ShiftLeft (Local0, 0x1A, MIN1)
If (LEqual (\_SB.CPU0.SAD.VID, 0x8086))
{
ShiftLeft (\_SB.CPU0.SAD.CFGA, 0x14, MAX1)
}
Else
{
ShiftLeft (\_SB.CPU1.SAD.CFGA, 0x14, MAX1)
}
Decrement (MAX1)
Subtract (MAX1, MIN1, LEN1)
Increment (LEN1)
Return (CRES)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x2D)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0003FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x0005FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0005FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0005FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0005FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0007FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x000AFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x000AFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x000AFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x000AFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x0016FFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x0016FFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x0016FFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x0016FFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x001AFFFF,
0x00,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x001AFFFF,
0x01,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x001AFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x00,
\_SB.PCI0.LPC.LNKH,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x01,
\_SB.PCI0.LPC.LNKG,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x02,
\_SB.PCI0.LPC.LNKF,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
}
})
}
Else
{
Return (Package (0x2D)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x2F
},
Package (0x04)
{
0x0001FFFF,
0x00,
0x00,
0x1C
},
Package (0x04)
{
0x0001FFFF,
0x01,
0x00,
0x28
},
Package (0x04)
{
0x0001FFFF,
0x02,
0x00,
0x29
},
Package (0x04)
{
0x0001FFFF,
0x03,
0x00,
0x2F
},
Package (0x04)
{
0x0003FFFF,
0x00,
0x00,
0x18
},
Package (0x04)
{
0x0003FFFF,
0x01,
0x00,
0x22
},
Package (0x04)
{
0x0003FFFF,
0x02,
0x00,
0x23
},
Package (0x04)
{
0x0003FFFF,
0x03,
0x00,
0x24
},
Package (0x04)
{
0x0005FFFF,
0x00,
0x00,
0x1A
},
Package (0x04)
{
0x0005FFFF,
0x01,
0x00,
0x19
},
Package (0x04)
{
0x0005FFFF,
0x02,
0x00,
0x1B
},
Package (0x04)
{
0x0005FFFF,
0x03,
0x00,
0x1D
},
Package (0x04)
{
0x0007FFFF,
0x00,
0x00,
0x1E
},
Package (0x04)
{
0x0007FFFF,
0x01,
0x00,
0x25
},
Package (0x04)
{
0x0007FFFF,
0x02,
0x00,
0x27
},
Package (0x04)
{
0x0007FFFF,
0x03,
0x00,
0x26
},
Package (0x04)
{
0x0008FFFF,
0x00,
0x00,
0x1F
},
Package (0x04)
{
0x0008FFFF,
0x01,
0x00,
0x27
},
Package (0x04)
{
0x0008FFFF,
0x02,
0x00,
0x26
},
Package (0x04)
{
0x0008FFFF,
0x03,
0x00,
0x25
},
Package (0x04)
{
0x0009FFFF,
0x00,
0x00,
0x20
},
Package (0x04)
{
0x0009FFFF,
0x01,
0x00,
0x2A
},
Package (0x04)
{
0x0009FFFF,
0x02,
0x00,
0x2F
},
Package (0x04)
{
0x0009FFFF,
0x03,
0x00,
0x29
},
Package (0x04)
{
0x000AFFFF,
0x00,
0x00,
0x21
},
Package (0x04)
{
0x000AFFFF,
0x01,
0x00,
0x1F
},
Package (0x04)
{
0x000AFFFF,
0x02,
0x00,
0x2E
},
Package (0x04)
{
0x000AFFFF,
0x03,
0x00,
0x2D
},
Package (0x04)
{
0x0016FFFF,
0x00,
0x00,
0x2B
},
Package (0x04)
{
0x0016FFFF,
0x01,
0x00,
0x2C
},
Package (0x04)
{
0x0016FFFF,
0x02,
0x00,
0x2D
},
Package (0x04)
{
0x0016FFFF,
0x03,
0x00,
0x2E
},
Package (0x04)
{
0x001AFFFF,
0x00,
0x00,
0x13
},
Package (0x04)
{
0x001AFFFF,
0x01,
0x00,
0x12
},
Package (0x04)
{
0x001AFFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x001CFFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x001CFFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x001CFFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x001CFFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x001DFFFF,
0x00,
0x00,
0x17
},
Package (0x04)
{
0x001DFFFF,
0x01,
0x00,
0x16
},
Package (0x04)
{
0x001DFFFF,
0x02,
0x00,
0x15
},
Package (0x04)
{
0x001FFFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x001FFFFF,
0x01,
0x00,
0x11
}
})
}
}
Device (PE0)
{
Name (_ADR, 0x00)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME0)
Store (One, \_SB.PEI0)
Store (Zero, PIE)
}
}
Device (PE1)
{
Name (_ADR, 0x00010000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME1)
Store (One, \_SB.PEI1)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x1C
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x28
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x29
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x2F
}
})
}
}
Device (SLT1)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x01)
}
}
Device (PE3)
{
Name (_ADR, 0x00030000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME3)
Store (One, \_SB.PEI3)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x18
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x22
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x23
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x24
}
})
}
}
Device (SLT7)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x07)
}
}
Device (PE5)
{
Name (_ADR, 0x00050000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME5)
Store (One, \_SB.PEI5)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x1A
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x19
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x1B
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x1D
}
})
}
}
Device (SLT6)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x06)
}
}
Device (PE7)
{
Name (_ADR, 0x00070000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME7)
Store (One, \_SB.PEI7)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x1E
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x25
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x27
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x26
}
})
}
}
Device (SLT5)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x05)
}
}
Device (PE8)
{
Name (_ADR, 0x00080000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME8)
Store (One, \_SB.PEI8)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x1F
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x27
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x26
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x25
}
})
}
}
Device (SLT4)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x04)
}
}
Device (PE9)
{
Name (_ADR, 0x00090000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PME9)
Store (One, \_SB.PEI9)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x20
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x2A
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x2F
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x29
}
})
}
}
Device (SLT3)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x03)
}
}
Device (PE10)
{
Name (_ADR, 0x000A0000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xAC),
, 3,
PIE, 1,
Offset (0xB0),
Offset (0xB2),
PS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, \_SB.PMEA)
Store (One, \_SB.PEIA)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LPC.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LPC.LNKD,
0x00
}
})
}
Else
{
Return (Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x21
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x1F
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x2E
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x2D
}
})
}
}
Device (SLT2)
{
Name (_ADR, 0xFFFF)
Name (_SUN, 0x02)
}
}
Device (CORE)
{
Name (_ADR, 0x00140000)
Name (_STA, 0x0F)
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0xD0),
, 26,
TOLM, 6
}
}
Device (PE1A)
{
Name (_ADR, 0x001C0000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0x5C),
, 3,
PIE, 1,
Offset (0x60),
Offset (0x62),
PS, 1,
Offset (0xD8),
, 31,
PMCE, 1,
, 31,
PMCS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, PMCE)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x02)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LPC.LNKB,
0x00
}
})
}
Else
{
Return (Package (0x02)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x11
}
})
}
}
Device (LAN1)
{
Name (_ADR, 0x00)
Name (_STA, 0x0F)
}
Device (LAN2)
{
Name (_ADR, 0x01)
Name (_STA, 0x0F)
}
}
Device (PE1E)
{
Name (_ADR, 0x001C0004)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x04
})
OperationRegion (PECF, PCI_Config, 0x00, 0x0100)
Field (PECF, DWordAcc, NoLock, Preserve)
{
Offset (0x5C),
, 3,
PIE, 1,
Offset (0x60),
Offset (0x62),
PS, 1,
Offset (0xD8),
, 31,
PMCE, 1,
, 31,
PMCS, 1
}
Method (_INI, 0, NotSerialized)
{
Store (One, PMCE)
Store (Zero, PIE)
}
Method (_PRT, 0, NotSerialized)
{
If (LEqual (PICM, 0x00))
{
Return (Package (0x01)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LPC.LNKA,
0x00
}
})
}
Else
{
Return (Package (0x01)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x10
}
})
}
}
Device (VGA)
{
Name (_ADR, 0x00)
Name (_STA, 0x0F)
}
}
Device (USB1)
{
Name (_ADR, 0x001D0000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x03,
0x01
})
OperationRegion (RES1, PCI_Config, 0xC4, 0x01)
Field (RES1, AnyAcc, NoLock, Preserve)
{
P0E1, 1,
P1E1, 1
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, P0E1)
Store (Arg0, P1E1)
}
}
Device (USB2)
{
Name (_ADR, 0x001D0001)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x04,
0x01
})
OperationRegion (RES1, PCI_Config, 0xC4, 0x01)
Field (RES1, AnyAcc, NoLock, Preserve)
{
P0E1, 1,
P1E1, 1
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, P0E1)
Store (Arg0, P1E1)
}
}
Device (USB3)
{
Name (_ADR, 0x001D0002)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x0C,
0x01
})
OperationRegion (RES1, PCI_Config, 0xC4, 0x01)
Field (RES1, AnyAcc, NoLock, Preserve)
{
P0E1, 1,
P1E1, 1
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, P0E1)
Store (Arg0, P1E1)
}
}
Device (USB4)
{
Name (_ADR, 0x001A0000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x0E,
0x01
})
OperationRegion (RES1, PCI_Config, 0xC4, 0x01)
Field (RES1, AnyAcc, NoLock, Preserve)
{
P0E1, 1,
P1E1, 1
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, P0E1)
Store (Arg0, P1E1)
}
}
Device (USB5)
{
Name (_ADR, 0x001A0001)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x05,
0x01
})
OperationRegion (RES1, PCI_Config, 0xC4, 0x01)
Field (RES1, AnyAcc, NoLock, Preserve)
{
P0E1, 1,
P1E1, 1
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, P0E1)
Store (Arg0, P1E1)
}
}
Device (USB6)
{
Name (_ADR, 0x001A0002)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x20,
0x01
})
OperationRegion (RES1, PCI_Config, 0xC4, 0x01)
Field (RES1, AnyAcc, NoLock, Preserve)
{
P0E1, 1,
P1E1, 1
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, P0E1)
Store (Arg0, P1E1)
}
}
Device (USB7)
{
Name (_ADR, 0x001D0007)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x0D,
0x01
})
}
Device (USB8)
{
Name (_ADR, 0x001A0007)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x0D,
0x01
})
}
Device (PCIH)
{
Name (_ADR, 0x001E0000)
Name (_STA, 0x0F)
Name (NATA, Package (0x02)
{
0x001F0002,
0x001F0005
})
}
Device (ATA1)
{
Name (_ADR, 0x001F0002)
Name (_STA, 0x0F)
}
Device (ATA2)
{
Name (_ADR, 0x001F0005)
Name (_STA, 0x0F)
}
Device (PM)
{
Name (_ADR, 0x001F0003)
Name (_STA, 0x0F)
}
Device (LPC)
{
Name (_ADR, 0x001F0000)
Name (_STA, 0x0F)
OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C)
Field (PIRQ, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
Offset (0x08),
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
OperationRegion (DCOD, PCI_Config, 0x80, 0x10)
Field (DCOD, ByteAcc, NoLock, Preserve)
{
COMA, 3,
, 1,
COMB, 3,
Offset (0x02),
CMAE, 1,
CMBE, 1,
Offset (0x04),
GDR1, 16
}
OperationRegion (GPIO, SystemIO, 0x1180, 0x80)
Field (GPIO, AnyAcc, NoLock, Preserve)
{
Offset (0x0C),
, 14,
SSLE, 1,
, 4,
SPLE, 1,
Offset (0x18),
, 19,
SPLB, 1
}
OperationRegion (CMSI, SystemIO, 0x72, 0x02)
Field (CMSI, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x7E),
AAOF, 4
}
Method (DCR1, 1, NotSerialized)
{
Store (GDR1, Local0)
Store (Arg0, GDR1)
Return (Local0)
}
Device (TPM)
{
OperationRegion (TPMC, SystemMemory, 0xFED40000, 0x5000)
Field (TPMC, ByteAcc, NoLock, Preserve)
{
Offset (0xF00),
TIID, 32
}
Name (_HID, EisaId ("IFX0102"))
Method (_STA, 0, NotSerialized)
{
If (LEqual (TIID, 0x000B15D1))
{
Store (0x0F, Local0)
}
Else
{
Store (0x00, Local0)
}
Return (Local0)
}
Name (_UID, 0x01)
Name (_CID, 0x310CD041)
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED40000, // Address Base
0x00005000, // Address Length
)
})
Method (UCMP, 2, NotSerialized)
{
If (LNotEqual (0x10, SizeOf (Arg0)))
{
Return (0x00)
}
If (LNotEqual (0x10, SizeOf (Arg1)))
{
Return (0x00)
}
Store (0x00, Local0)
While (LLess (Local0, 0x10))
{
If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
Arg1, Local0))))
{
Return (0x00)
}
Increment (Local0)
}
Return (0x01)
}
Method (_DSM, 4, NotSerialized)
{
If (LEqual (UCMP (Arg0, Buffer (0x10)
{
/* 0000 */ 0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E,
/* 0008 */ 0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53
}), 0x01))
{
If (LEqual (Arg2, 0x00))
{
Return (Buffer (0x01)
{
0x7F
})
}
If (LEqual (Arg2, 0x01))
{
Return (Buffer (0x04)
{
"1.0"
})
}
If (LEqual (Arg2, 0x02))
{
If (TPRS)
{
Store (DerefOf (Index (Arg3, 0x00)), PPRQ)
If (LOr (LOr (LGreater (PPLO, 0x0E), LEqual (PPLO, 0x0C)), LEqual (
PPLO, 0x0D)))
{
Store (0x00, PPRQ)
Return (0x01)
}
Return (0x00)
}
Return (0x01)
}
If (LEqual (Arg2, 0x03))
{
Name (TMP1, Package (0x02)
{
0x00,
0xFFFFFFFF
})
Store (PPRQ, Index (TMP1, 0x01))
Return (TMP1)
}
If (LEqual (Arg2, 0x04))
{
Return (0x01)
}
If (LEqual (Arg2, 0x05))
{
Name (TMP2, Package (0x03)
{
0x00,
0xFFFFFFFF,
0xFFFFFFFF
})
Store (PPLO, Index (TMP2, 0x01))
If (LOr (LOr (LGreater (PPLO, 0x0E), LEqual (PPLO, 0x0C)), LEqual (
PPLO, 0x0D)))
{
Store (0xFFFFFFF1, Index (TMP2, 0x02))
Return (TMP2)
}
If (LEqual (PPRP, 0xFF))
{
Store (0xFFFFFFF1, Index (TMP2, 0x02))
Return (TMP2)
}
If (PPOR)
{
Store (0xFFFFFFF0, Index (TMP2, 0x02))
Return (TMP2)
}
Store (PPRP, Index (TMP2, 0x02))
Return (TMP2)
}
If (LEqual (Arg2, 0x06))
{
Return (0x01)
}
Return (0x01)
}
If (LEqual (UCMP (Arg0, Buffer (0x10)
{
/* 0000 */ 0xED, 0x54, 0x60, 0x37, 0x13, 0xCC, 0x75, 0x46,
/* 0008 */ 0x90, 0x1C, 0x47, 0x56, 0xD7, 0xF2, 0xD4, 0x5D
}), 0x01))
{
If (LEqual (Arg2, 0x00))
{
Return (Buffer (0x01)
{
0x01
})
}
If (LEqual (Arg2, 0x01))
{
If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x00))
{
Store (0x00, \_SB.MOR)
Return (0x00)
}
If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x01))
{
Store (0x01, \_SB.MOR)
Return (0x00)
}
}
Return (0x01)
}
Return (Buffer (0x01)
{
0x00
})
}
}
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x01)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRA, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRA, 0x80, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y02)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKA._CRS._Y02._INT, INTA)
Store (Zero, INTA)
If (LLess (PIRA, 0x80))
{
And (PIRA, 0x0F, Local0)
ShiftLeft (One, Local0, INTA)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTA)
FindSetRightBit (INTA, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRA, 0x70), PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRB, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRB, 0x80, PIRB)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y03)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKB._CRS._Y03._INT, INTB)
Store (Zero, INTB)
If (LLess (PIRB, 0x80))
{
And (PIRB, 0x0F, Local0)
ShiftLeft (One, Local0, INTB)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTB)
FindSetRightBit (INTB, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRB, 0x70), PIRB)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRC, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRC, 0x80, PIRC)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y04)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKC._CRS._Y04._INT, INTC)
Store (Zero, INTC)
If (LLess (PIRC, 0x80))
{
And (PIRC, 0x0F, Local0)
ShiftLeft (One, Local0, INTC)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTC)
FindSetRightBit (INTC, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRC, 0x70), PIRC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRD, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRD, 0x80, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y05)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKD._CRS._Y05._INT, INTD)
Store (Zero, INTD)
If (LLess (PIRD, 0x80))
{
And (PIRD, 0x0F, Local0)
ShiftLeft (One, Local0, INTD)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTD)
FindSetRightBit (INTD, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRD, 0x70), PIRD)
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x05)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRE, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRE, 0x80, PIRE)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y06)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKE._CRS._Y06._INT, INTE)
Store (Zero, INTE)
If (LLess (PIRE, 0x80))
{
And (PIRE, 0x0F, Local0)
ShiftLeft (One, Local0, INTE)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTE)
FindSetRightBit (INTE, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRE, 0x70), PIRE)
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x06)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRF, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRF, 0x80, PIRF)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y07)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKF._CRS._Y07._INT, INTF)
Store (Zero, INTF)
If (LLess (PIRF, 0x80))
{
And (PIRF, 0x0F, Local0)
ShiftLeft (One, Local0, INTF)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTF)
FindSetRightBit (INTF, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRF, 0x70), PIRF)
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x07)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRG, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRG, 0x80, PIRG)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y08)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKG._CRS._Y08._INT, INTG)
Store (Zero, INTG)
If (LLess (PIRG, 0x80))
{
And (PIRG, 0x0F, Local0)
ShiftLeft (One, Local0, INTG)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTG)
FindSetRightBit (INTG, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRG, 0x70), PIRG)
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x08)
Method (_STA, 0, NotSerialized)
{
If (LLess (PIRH, 0x80))
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Method (_DIS, 0, NotSerialized)
{
Or (PIRH, 0x80, PIRH)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y09)
{}
})
CreateWordField (BUFF, \_SB.PCI0.LPC.LNKH._CRS._Y09._INT, INTH)
Store (Zero, INTH)
If (LLess (PIRH, 0x80))
{
And (PIRH, 0x0F, Local0)
ShiftLeft (One, Local0, INTH)
}
Return (BUFF)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, INTH)
FindSetRightBit (INTH, Local0)
If (LNotEqual (Local0, Zero))
{
Decrement (Local0)
}
Or (Local0, And (PIRH, 0x70), PIRH)
}
}
Device (MBRD)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x01)
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0022, // Range Minimum
0x0022, // Range Maximum
0x01, // Alignment
0x0C, // Length
)
IO (Decode16,
0x002E, // Range Minimum
0x002E, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0030, // Range Minimum
0x0030, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x004E, // Range Minimum
0x004E, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0050, // Range Minimum
0x0050, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0074, // Range Minimum
0x0074, // Range Maximum
0x01, // Alignment
0x0C, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x00A2, // Range Minimum
0x00A2, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x00B2, // Range Minimum
0x00B2, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B4, // Range Minimum
0x00B4, // Range Maximum
0x01, // Alignment
0x0C, // Length
)
IO (Decode16,
0x00E0, // Range Minimum
0x00E0, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0200, // Range Minimum
0x0200, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0500, // Range Minimum
0x0500, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0x0800, // Range Minimum
0x0800, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0810, // Range Minimum
0x0810, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0CA0, // Range Minimum
0x0CA0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0CA4, // Range Minimum
0x0CA4, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0CA8, // Range Minimum
0x0CA8, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0CAE, // Range Minimum
0x0CAE, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x0E00, // Range Minimum
0x0E00, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0x1000, // Range Minimum
0x1000, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0x1100, // Range Minimum
0x1100, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x1180, // Range Minimum
0x1180, // Range Maximum
0x01, // Alignment
0x80, // Length
)
IO (Decode16,
0xFE00, // Range Minimum
0xFE00, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0xFF00, // Range Minimum
0xFF00, // Range Maximum
0x01, // Alignment
0x01, // Length
)
Memory32Fixed (ReadOnly,
0xFEC00000, // Address Base
0x00100000, // Address Length
)
Memory32Fixed (ReadOnly,
0xFEE00000, // Address Base
0x00100000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED1C000, // Address Base
0x00004000, // Address Length
)
})
}
Device (DMAC)
{
Name (_HID, EisaId ("PNP0200"))
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x01, // Alignment
0x10, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x01, // Alignment
0x20, // Length
)
DMA (Compatibility, NotBusMaster, Transfer16, )
{4}
})
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{2}
})
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x02, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{8}
})
}
Device (TIME)
{
Name (_HID, EisaId ("PNP0100"))
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{0}
})
}
Device (MATH)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x01, // Alignment
0x0F, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{13}
})
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
}
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Method (_STA, 0, NotSerialized)
{
If (AE)
{
Store (0x0F, Local0)
}
Else
{
Store (0x09, Local0)
}
Return (Local0)
}
OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x3420)
Field (RCRB, DWordAcc, NoLock, Preserve)
{
Offset (0x3404),
AS, 2,
, 5,
AE, 1
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFF, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y0A)
})
CreateDWordField (BUFF, \_SB.PCI0.LPC.HPET._CRS._Y0A._LEN, HTML)
CreateDWordField (BUFF, \_SB.PCI0.LPC.HPET._CRS._Y0A._BAS, HTMB)
If (AE)
{
Store (0x0400, HTML)
ShiftLeft (AS, 0x0C, Local0)
Add (0xFED00000, Local0, HTMB)
}
Return (BUFF)
}
}
Device (SIO2)
{
Name (_HID, EisaId ("PNP0A05"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
ULCK ()
Store (0x02, FUNC)
If (LEqual (FUNC, 0x02))
{
Store (0x0F, Local0)
}
Else
{
Store (0x08, Local0)
}
LCK ()
Return (Local0)
}
OperationRegion (QLGC, SystemIO, 0x4E, 0x02)
Field (QLGC, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x07),
FUNC, 8,
Offset (0x23),
, 3,
CFGL, 1,
Offset (0x30),
DEN, 8,
Offset (0x60),
DADH, 8,
DADL, 8,
Offset (0x70),
DIR, 4
}
OperationRegion (GPES, SystemIO, 0x0208, 0x02)
Field (GPES, ByteAcc, NoLock, WriteAsZeros)
{
RI1S, 1,
RI2S, 1
}
OperationRegion (GPEE, SystemIO, 0x020C, 0x02)
Field (GPEE, ByteAcc, NoLock, Preserve)
{
RI1E, 1,
RI2E, 1
}
Method (_INI, 0, NotSerialized)
{
ULCK ()
Store (0x02, FUNC)
Store (DEN, C1EN)
Store (0x01, FUNC)
Store (DEN, C2EN)
LCK ()
}
Method (ULCK, 0, NotSerialized)
{
Store (0x5A, INDX)
}
Method (LCK, 0, NotSerialized)
{
Store (0xA5, INDX)
}
Method (WAKE, 1, NotSerialized)
{
SMC (Zero, RefOf (RI1E), RefOf (RI1S))
SMC (Zero, RefOf (RI2E), RefOf (RI2S))
}
Method (SLEP, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
SMC (One, RefOf (RI1E), RefOf (RI1S))
SMC (One, RefOf (RI2E), RefOf (RI2S))
}
}
Method (SMC, 3, NotSerialized)
{
If (Arg0)
{
Store (One, Arg2)
Store (One, Arg1)
}
Else
{
Store (Zero, Arg1)
Store (One, Arg2)
}
}
Device (COM1)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x01)
Method (_STA, 0, NotSerialized)
{
ULCK ()
Store (0x02, FUNC)
If (LEqual (C1EN, 0x01))
{
If (DEN)
{
Store (0x0F, Local0)
}
Else
{
Store (0x0D, Local0)
}
}
Else
{
Store (0x08, Local0)
}
LCK ()
Return (Local0)
}
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x18,
0x01
})
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, \_SB.PCI0.LPC.SIO2.RI1E)
}
Method (_DIS, 0, NotSerialized)
{
ULCK ()
Store (0x02, FUNC)
Store (Zero, DEN)
LCK ()
}
Method (_CRS, 0, NotSerialized)
{
ULCK ()
Store (0x02, FUNC)
Name (BUFF, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x08, // Alignment
0x08, // Length
_Y0B)
IRQ (Edge, ActiveHigh, Exclusive, _Y0C)
{0}
})
CreateByteField (BUFF, \_SB.PCI0.LPC.SIO2.COM1._CRS._Y0B._MIN, AD1L)
CreateByteField (BUFF, 0x03, AD1H)
CreateByteField (BUFF, \_SB.PCI0.LPC.SIO2.COM1._CRS._Y0B._MAX, AD2L)
CreateByteField (BUFF, 0x05, AD2H)
Store (DADL, AD1L)
Store (DADH, AD1H)
Store (DADL, AD2L)
Store (DADH, AD2H)
CreateWordField (BUFF, \_SB.PCI0.LPC.SIO2.COM1._CRS._Y0C._INT, IRQS)
Store (One, Local0)
ShiftLeft (Local0, DIR, IRQS)
LCK ()
Return (BUFF)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{4}
}
StartDependentFn (0x01, 0x01)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{4}
}
StartDependentFn (0x02, 0x02)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{3}
}
StartDependentFn (0x02, 0x02)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{3}
}
EndDependentFn ()
})
Name (CM1L, Package (0x04)
{
0x03F8,
0x02F8,
0x02E8,
0x03E8
})
Name (CM1C, Package (0x04)
{
0x00,
0x01,
0x05,
0x07
})
Method (_SRS, 1, NotSerialized)
{
ULCK ()
Store (0x02, FUNC)
CreateByteField (Arg0, 0x02, IOSL)
CreateByteField (Arg0, 0x03, IOSH)
CreateWordField (Arg0, 0x02, IOSA)
CreateWordField (Arg0, 0x09, IRQS)
Store (IOSL, DADL)
Store (IOSH, DADH)
Store (DerefOf (Index (CM1C, Match (CM1L, MEQ, IOSA, MTR, 0x00,
0x00))), COMA)
FindSetRightBit (IRQS, Local0)
If (Local0)
{
Decrement (Local0)
}
Store (Local0, DIR)
Store (One, DEN)
LCK ()
}
}
Device (COM2)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
ULCK ()
Store (0x01, FUNC)
If (LEqual (C2EN, 0x01))
{
If (DEN)
{
Store (0x0F, Local0)
}
Else
{
Store (0x0D, Local0)
}
}
Else
{
Store (0x08, Local0)
}
LCK ()
Return (Local0)
}
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x18,
0x01
})
}
Method (_PSW, 1, NotSerialized)
{
Store (Arg0, \_SB.PCI0.LPC.SIO2.RI2E)
}
Method (_DIS, 0, NotSerialized)
{
ULCK ()
Store (0x01, FUNC)
Store (Zero, DEN)
LCK ()
}
Method (_CRS, 0, NotSerialized)
{
ULCK ()
Store (0x01, FUNC)
Name (BUFF, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x08, // Alignment
0x08, // Length
_Y0D)
IRQ (Edge, ActiveHigh, Exclusive, _Y0E)
{0}
})
CreateByteField (BUFF, \_SB.PCI0.LPC.SIO2.COM2._CRS._Y0D._MIN, AD1L)
CreateByteField (BUFF, 0x03, AD1H)
CreateByteField (BUFF, \_SB.PCI0.LPC.SIO2.COM2._CRS._Y0D._MAX, AD2L)
CreateByteField (BUFF, 0x05, AD2H)
Store (DADL, AD1L)
Store (DADH, AD1H)
Store (DADL, AD2L)
Store (DADH, AD2H)
CreateWordField (BUFF, \_SB.PCI0.LPC.SIO2.COM2._CRS._Y0E._INT, IRQS)
Store (One, Local0)
ShiftLeft (Local0, DIR, IRQS)
LCK ()
Return (BUFF)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{3}
}
StartDependentFn (0x01, 0x01)
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{3}
}
StartDependentFn (0x02, 0x02)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{4}
}
StartDependentFn (0x02, 0x02)
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{4}
}
EndDependentFn ()
})
Name (CM2L, Package (0x04)
{
0x03F8,
0x02F8,
0x02E8,
0x03E8
})
Name (CM2C, Package (0x04)
{
0x00,
0x01,
0x05,
0x07
})
Method (_SRS, 1, NotSerialized)
{
ULCK ()
Store (0x01, FUNC)
CreateByteField (Arg0, 0x02, IOSL)
CreateByteField (Arg0, 0x03, IOSH)
CreateWordField (Arg0, 0x02, IOSA)
CreateWordField (Arg0, 0x09, IRQS)
Store (IOSL, DADL)
Store (IOSH, DADH)
Store (DerefOf (Index (CM2C, Match (CM2L, MEQ, IOSA, MTR, 0x00,
0x00))), COMB)
FindSetRightBit (IRQS, Local0)
If (Local0)
{
Decrement (Local0)
}
Store (Local0, DIR)
Store (One, DEN)
LCK ()
}
}
}
Device (MI0)
{
Name (_HID, EisaId ("IPI0001"))
Method (_STA, 0, NotSerialized)
{
If (LLess (\_SB.PCI0.LPC.AAOF, 0x08))
{
Return (0x08)
}
Else
{
Return (0x0F)
}
}
Name (_UID, 0x00)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0CA2, // Range Minimum
0x0CA2, // Range Maximum
0x01, // Alignment
0x02, // Length
)
})
Method (_IFT, 0, NotSerialized)
{
Return (0x01)
}
Method (_SRV, 0, NotSerialized)
{
Return (0x0200)
}
}
Device (KCS1)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (LLess (\_SB.PCI0.LPC.AAOF, 0x08))
{
Return (0x0F)
}
Else
{
Return (0x08)
}
}
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0CA2, // Range Minimum
0x0CA2, // Range Maximum
0x01, // Alignment
0x02, // Length
)
})
}
Device (KCS5)
{
Name (_HID, EisaId ("PNP0A05"))
Name (_UID, 0x03)
Name (_STA, 0x0F)
OperationRegion (KCSR, SystemIO, 0x0CA4, 0x04)
Field (KCSR, ByteAcc, NoLock, Preserve)
{
D_OU, 8,
OBF, 1,
IBF, 1,
SMS, 1,
CD, 1,
OEM1, 1,
OEM2, 1,
S0, 1,
S1, 1
}
OperationRegion (KCSW, SystemIO, 0x0CA4, 0x04)
Field (KCSW, ByteAcc, NoLock, Preserve)
{
D_IN, 8,
CMD, 8
}
Name (_S1D, 0x03)
Name (_S2D, 0x03)
Name (_S3D, 0x03)
Name (_S4D, 0x03)
Name (_PSC, 0x00)
Method (_INI, 0, NotSerialized)
{
WAKE ()
}
Method (WAKE, 0, NotSerialized)
{
Store (0x00, _PSC)
Name (BUFG, Buffer (0x06)
{
0xB8, 0xF1, 0x80, 0x28, 0x00, 0x29
})
Name (RET1, Buffer (0x0101)
{
0x00
})
If (LNot (SEND (BUFG, RET1)))
{
If (DerefOf (Index (RET1, 0x00)))
{
If (LNot (DerefOf (Index (RET1, 0x03))))
{
Name (BUFS, Buffer (0x0A)
{
/* 0000 */ 0xB8, 0xF1, 0x80, 0x28, 0x00, 0x28, 0x01, 0x80,
/* 0008 */ 0x00, 0x00
})
Or (DerefOf (Index (BUFS, 0x06)), DerefOf (Index (RET1, 0x07
)), Index (BUFS, 0x06))
Or (DerefOf (Index (BUFS, 0x07)), DerefOf (Index (RET1, 0x08
)), Index (BUFS, 0x07))
Store (DerefOf (Index (RET1, 0x09)), Index (BUFS, 0x08))
Store (DerefOf (Index (RET1, 0x0A)), Index (BUFS, 0x09))
Name (RET2, Buffer (0x0101)
{
0x00
})
If (LNot (SEND (BUFS, RET2)))
{
If (DerefOf (Index (RET2, 0x00)))
{
If (LNot (DerefOf (Index (RET2, 0x03))))
{
Name (SMIP, Buffer (0x08)
{
/* 0000 */ 0xB8, 0xF1, 0x80, 0x28, 0x00, 0x32, 0x00, 0x00
})
Name (RET3, Buffer (0x0101)
{
0x00
})
If (CondRefOf (\_PR.PR00._PPC, Local0))
{
Store (SizeOf (\_PR.PR00._PSS), Index (SMIP, 0x06))
}
SEND (SMIP, RET3)
}
}
}
}
}
}
}
Method (SLEP, 0, NotSerialized)
{
Store (0x03, _PSC)
Name (SMIP, Buffer (0x08)
{
/* 0000 */ 0xB8, 0xF1, 0x80, 0x28, 0x00, 0x32, 0x00, 0x00
})
Name (RET0, Buffer (0x0101)
{
0x00
})
If (LNot (SEND (SMIP, RET0)))
{
If (DerefOf (Index (RET0, 0x00)))
{
If (LNot (DerefOf (Index (RET0, 0x03))))
{
Name (BUFG, Buffer (0x06)
{
0xB8, 0xF1, 0x80, 0x28, 0x00, 0x29
})
Name (RET1, Buffer (0x0101)
{
0x00
})
If (LNot (SEND (BUFG, RET1)))
{
If (DerefOf (Index (RET1, 0x00)))
{
If (LNot (DerefOf (Index (RET1, 0x03))))
{
Name (BUFS, Buffer (0x0A)
{
/* 0000 */ 0xB8, 0xF1, 0x80, 0x28, 0x00, 0x28, 0xFE, 0x00,
/* 0008 */ 0x00, 0x00
})
And (DerefOf (Index (BUFS, 0x06)), DerefOf (Index (RET1, 0x07
)), Index (BUFS, 0x06))
Store (DerefOf (Index (RET1, 0x09)), Index (BUFS, 0x08))
Store (DerefOf (Index (RET1, 0x0A)), Index (BUFS, 0x09))
Name (RET2, Buffer (0x0101)
{
0x00
})
SEND (BUFS, RET2)
}
}
}
}
}
}
}
Method (SIRS, 0, NotSerialized)
{
Name (SMIS, Buffer (0x06)
{
0xB8, 0xF1, 0x80, 0x28, 0x00, 0x2A
})
Name (RETS, Buffer (0x0101)
{
0x00
})
If (LNot (\_SB.PCI0.LPC.KCS5.SEND (SMIS, RETS)))
{
If (DerefOf (Index (RETS, 0x00)))
{
If (LNot (DerefOf (Index (RETS, 0x03))))
{
If (And (DerefOf (Index (RETS, 0x07)), 0x01))
{
If (And (DerefOf (Index (RETS, 0x08)), 0x80))
{
Name (SMIR, Buffer (0x0A)
{
/* 0000 */ 0xB8, 0xF1, 0x80, 0x28, 0x00, 0x2B, 0x01, 0x80,
/* 0008 */ 0x00, 0x00
})
Name (RETR, Buffer (0x0101)
{
0x00
})
\_SB.PCI0.LPC.KCS5.SEND (SMIR, RETR)
Store (0x10, Local0)
While (Local0)
{
CSPS (And (DerefOf (Index (RETS, 0x08)), 0x0F), Local0)
Decrement (Local0)
}
}
}
}
}
}
}
Method (CSPS, 2, NotSerialized)
{
While (One)
{
Name (_T_0, 0x00)
Store (Arg1, _T_0)
If (LEqual (_T_0, 0x01))
{
If (CondRefOf (\_PR.PR00._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR00._PSS)))
{
Subtract (SizeOf (\_PR.PR00._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR00._PPC)
Notify (\_PR.PR00, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x02))
{
If (CondRefOf (\_PR.PR01._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR01._PSS)))
{
Subtract (SizeOf (\_PR.PR01._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR01._PPC)
Notify (\_PR.PR01, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x03))
{
If (CondRefOf (\_PR.PR02._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR02._PSS)))
{
Subtract (SizeOf (\_PR.PR02._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR02._PPC)
Notify (\_PR.PR02, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x04))
{
If (CondRefOf (\_PR.PR03._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR03._PSS)))
{
Subtract (SizeOf (\_PR.PR03._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR03._PPC)
Notify (\_PR.PR03, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x05))
{
If (CondRefOf (\_PR.PR04._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR04._PSS)))
{
Subtract (SizeOf (\_PR.PR04._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR04._PPC)
Notify (\_PR.PR04, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x06))
{
If (CondRefOf (\_PR.PR05._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR05._PSS)))
{
Subtract (SizeOf (\_PR.PR05._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR05._PPC)
Notify (\_PR.PR05, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x07))
{
If (CondRefOf (\_PR.PR06._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR06._PSS)))
{
Subtract (SizeOf (\_PR.PR06._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR06._PPC)
Notify (\_PR.PR06, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x08))
{
If (CondRefOf (\_PR.PR07._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR07._PSS)))
{
Subtract (SizeOf (\_PR.PR07._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR07._PPC)
Notify (\_PR.PR07, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x09))
{
If (CondRefOf (\_PR.PR10._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR10._PSS)))
{
Subtract (SizeOf (\_PR.PR10._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR10._PPC)
Notify (\_PR.PR10, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x0A))
{
If (CondRefOf (\_PR.PR11._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR11._PSS)))
{
Subtract (SizeOf (\_PR.PR11._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR11._PPC)
Notify (\_PR.PR11, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x0B))
{
If (CondRefOf (\_PR.PR12._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR12._PSS)))
{
Subtract (SizeOf (\_PR.PR12._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR12._PPC)
Notify (\_PR.PR12, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x0C))
{
If (CondRefOf (\_PR.PR13._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR13._PSS)))
{
Subtract (SizeOf (\_PR.PR13._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR13._PPC)
Notify (\_PR.PR13, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x0D))
{
If (CondRefOf (\_PR.PR14._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR14._PSS)))
{
Subtract (SizeOf (\_PR.PR14._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR14._PPC)
Notify (\_PR.PR14, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x0E))
{
If (CondRefOf (\_PR.PR15._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR15._PSS)))
{
Subtract (SizeOf (\_PR.PR15._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR15._PPC)
Notify (\_PR.PR15, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x0F))
{
If (CondRefOf (\_PR.PR16._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR16._PSS)))
{
Subtract (SizeOf (\_PR.PR16._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR16._PPC)
Notify (\_PR.PR16, 0x80)
}
}
Else
{
If (LEqual (_T_0, 0x10))
{
If (CondRefOf (\_PR.PR17._PPC, Local0))
{
If (LGreaterEqual (Arg0, SizeOf (\_PR.PR17._PSS)))
{
Subtract (SizeOf (\_PR.PR17._PSS), 0x01, Arg0)
}
Store (Arg0, \_PR.PR17._PPC)
Notify (\_PR.PR17, 0x80)
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Break
}
}
Method (SEND, 2, NotSerialized)
{
Name (WRST, 0x61)
Name (WREN, 0x62)
If (WIBF ())
{
Return (0x03)
}
If (COBF ())
{
Return (0x04)
}
Store (WRST, CMD)
If (WIBF ())
{
Return (0x03)
}
If (LNotEqual (CHKW (), Zero))
{
Return (EREX ())
}
If (COBF ())
{
Return (0x04)
}
Store (0x00, Local0)
Store (SizeOf (Arg0), Local1)
Decrement (Local1)
While (LNotEqual (Local0, Local1))
{
Store (DerefOf (Index (Arg0, Local0)), D_IN)
If (WIBF ())
{
Return (0x03)
}
If (LNotEqual (CHKW (), Zero))
{
Return (EREX ())
}
If (COBF ())
{
Return (0x04)
}
Increment (Local0)
}
Store (WREN, CMD)
If (WIBF ())
{
Return (0x03)
}
If (LNotEqual (CHKW (), Zero))
{
Return (0x01)
}
If (COBF ())
{
Return (0x04)
}
Store (DerefOf (Index (Arg0, Local0)), D_IN)
Name (REAB, 0x68)
If (WIBF ())
{
Return (0x03)
}
Store (0x01, Local0)
While (LEqual (CHKR (), Zero))
{
If (WOBF ())
{
Return (0x03)
}
Store (D_OU, Index (Arg1, Local0))
Store (REAB, D_IN)
If (WIBF ())
{
Return (0x03)
}
Increment (Local0)
}
Decrement (Local0)
Store (Local0, Index (Arg1, 0x00))
If (LNotEqual (CHKI (), Zero))
{
Return (EREX ())
}
If (WOBF ())
{
Return (0x03)
}
Store (D_OU, Local0)
Return (0x00)
}
Method (EREX, 0, NotSerialized)
{
Store (0x00, Local0)
While (LLess (Local0, 0x0A))
{
If (LEqual (ERCH (), Zero))
{
Return (0x01)
}
Increment (Local0)
}
Return (0x02)
}
Method (ERCH, 0, NotSerialized)
{
Name (GSAB, 0x60)
Name (REAB, 0x68)
If (WIBF ())
{
Return (0x03)
}
Store (GSAB, CMD)
If (WIBF ())
{
Return (0x03)
}
If (COBF ())
{
Return (0x04)
}
Store (0x00, D_IN)
If (WIBF ())
{
Return (0x03)
}
If (LNotEqual (CHKR (), Zero))
{
Return (0x01)
}
If (WOBF ())
{
Return (0x03)
}
Store (D_OU, Local0)
Store (REAB, D_IN)
If (WIBF ())
{
Return (0x03)
}
If (LNotEqual (CHKI (), Zero))
{
Return (0x01)
}
If (WOBF ())
{
Return (0x03)
}
If (COBF ())
{
Return (0x04)
}
Return (0x00)
}
Method (CHKW, 0, NotSerialized)
{
Store (S0, Local0)
Store (S1, Local1)
If (LNotEqual (Local0, Zero))
{
Return (0x01)
}
If (LEqual (Local1, Zero))
{
Return (0x01)
}
Return (0x00)
}
Method (CHKR, 0, NotSerialized)
{
Store (S0, Local0)
Store (S1, Local1)
If (LEqual (Local0, Zero))
{
Return (0x01)
}
If (LNotEqual (Local1, Zero))
{
Return (0x01)
}
Return (0x00)
}
Method (CHKI, 0, NotSerialized)
{
Store (S0, Local0)
Store (S1, Local1)
If (LNotEqual (Local0, Zero))
{
Return (0x01)
}
If (LNotEqual (Local1, Zero))
{
Return (0x01)
}
Return (0x00)
}
Method (WOBF, 0, NotSerialized)
{
Store (0x1388, Local2)
While (LGreater (Local2, Zero))
{
Store (OBF, Local1)
If (Local1)
{
Return (0x00)
}
Sleep (0x0A)
Subtract (Local2, 0x0A, Local2)
}
Return (0x01)
}
Method (WIBF, 0, NotSerialized)
{
Store (0x1388, Local2)
While (LGreater (Local2, Zero))
{
Store (IBF, Local1)
If (LNot (Local1))
{
Return (0x00)
}
Sleep (0x0A)
Subtract (Local2, 0x0A, Local2)
}
Return (0x01)
}
Method (COBF, 0, NotSerialized)
{
Store (0x03E8, Local0)
While (LGreater (Local0, Zero))
{
Store (OBF, Local1)
If (Local1)
{
Store (D_OU, Local1)
Decrement (Local0)
}
Else
{
Return (0x00)
}
}
}
}
}
}
}
}
More information about the freebsd-acpi
mailing list