* Mike Larkin on Wed, May 05, 2010 at 09:04:06PM -0700:
> If you haven't sent an acpidump yet, send it over.
/*
RSD PTR: Checksum=20, OEMID=PTLTD, RsdtAddress=0x3fefcf28
*/
/*
RSDT: Length=44, Revision=1, Checksum=13,
OEMID=PTLTD, OEM Table ID= RSDT, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x0
*/
/*
Entries={ 0x3fefef2e, 0x3fefefa2 }
*/
/*
DSDT=0x3fefcf54
INT_MODEL=PIC
SCI_INT=9
SMI_CMD=0x802f, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
PM1a_EVT_BLK=0x8000-0x8003
PM1a_CNT_BLK=0x8004-0x8005
PM2_TMR_BLK=0x8008-0x800b
PM2_GPE0_BLK=0x8020-0x8023
P_LVL2_LAT=101ms, P_LVL3_LAT=1001ms
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=1, DUTY_WIDTH=0
DAY_ALRM=13, MON_ALRM=0, CENTURY=50
Flags={WBINVD,PROC_C1}
*/
/*
DSDT: Length=8154, Revision=1, Checksum=247,
OEMID=AMD, OEM Table ID=AMDACPI, OEM Revision=0x6040000,
Creator ID=MSFT, Creator Revision=0x100000d
*/
DefinitionBlock (
"acpi_dsdt.aml", //Output filename
"DSDT", //Signature
0x1, //DSDT Revision
"AMD", //OEMID
"AMDACPI", //TABLE ID
0x6040000 //OEM Revision
)
{
Scope(\_PR_) {
Processor(CPU0, 0, 0x8010, 0x6) {
}
Processor(CPU1, 1, 0x0, 0x0) {
}
}
Name(\_S0_, Package(0x4) {
0x0,
0x0,
0x0,
0x0,
})
Name(\_S1_, Package(0x4) {
0x1,
0x1,
0x1,
0x1,
})
Name(\_S4_, Package(0x4) {
0x6,
0x6,
0x6,
0x6,
})
Name(\_S5_, Package(0x4) {
0x7,
0x7,
0x7,
0x7,
})
Name(OSFL, 0x0)
Method(STRC, 2) {
If(LNot(LEqual(SizeOf(Arg0), SizeOf(Arg1)))) {
Return(0x0)
}
Add(SizeOf(Arg0), 0x1, Local0)
Name(BUF0, Buffer(Local0) { })
Name(BUF1, Buffer(Local0) { })
Store(Arg0, BUF0)
Store(Arg1, BUF1)
While(Local0) {
Decrement(Local0)
If(LNot(LEqual(DerefOf(Index(BUF0, Local0)), DerefOf(Index(BUF1,
Local0))))) {
Return(Zero)
}
}
Return(One)
}
OperationRegion(\DEBG, SystemIO, 0x80, 0x1)
Field(\DEBG, ByteAcc, NoLock, Preserve) {
DBG1, 8
}
OperationRegion(KBC_, SystemIO, 0x64, 0x1)
Field(KBC_, ByteAcc, NoLock, Preserve) {
KCMD, 8
}
OperationRegion(EXTM, SystemMemory, 0x000ff830, 0x10)
Field(EXTM, WordAcc, NoLock, Preserve) {
ROM1, 16,
RMS1, 16,
ROM2, 16,
RMS2, 16,
ROM3, 16,
RMS3, 16,
AMEM, 32
}
OperationRegion(VGAM, SystemMemory, 0x000c0002, 0x1)
Field(VGAM, ByteAcc, Lock, Preserve) {
VGA1, 8
}
OperationRegion(GRAM, SystemMemory, 0x0400, 0x0100)
Field(GRAM, ByteAcc, Lock, Preserve) {
Offset(0x10),
FLG0, 8
}
OperationRegion(ELCR, SystemIO, 0x04d0, 0x2)
Field(ELCR, ByteAcc, NoLock, Preserve) {
ELC1, 8,
ELC2, 8
}
OperationRegion(\PSC_, SystemIO, 0x8027, 0x1)
Field(\PSC_, ByteAcc, NoLock, Preserve) {
PSCC, 8
}
OperationRegion(\STUS, SystemIO, 0x8028, 0x1)
Field(\STUS, ByteAcc, NoLock, Preserve) {
G_ST, 8
}
OperationRegion(\STUB, SystemIO, 0x8029, 0x1)
Field(\STUB, ByteAcc, NoLock, Preserve) {
G_SB, 8
}
OperationRegion(\SMIC, SystemIO, 0x802f, 0x1)
Field(\SMIC, ByteAcc, NoLock, Preserve) {
SCP_, 8
}
OperationRegion(\OPS0, SystemIO, 0x21, 0x1)
Field(\OPS0, ByteAcc, NoLock, Preserve) {
IMR0, 8
}
OperationRegion(\OPS1, SystemIO, 0xa1, 0x1)
Field(\OPS1, ByteAcc, NoLock, Preserve) {
IMR1, 8
}
OperationRegion(\GSE_, SystemIO, 0x802a, 0x1)
Field(\GSE_, ByteAcc, NoLock, Preserve) {
IRQR, 8
}
OperationRegion(\FANC, SystemIO, 0x80f8, 0x2)
Field(\FANC, ByteAcc, NoLock, Preserve) {
FAN0, 8,
FAN1, 8
}
OperationRegion(\PM21, SystemIO, 0x8021, 0x1)
Field(\PM21, ByteAcc, NoLock, Preserve) {
IO21, 8
}
OperationRegion(\PM23, SystemIO, 0x8023, 0x1)
Field(\PM23, ByteAcc, NoLock, Preserve) {
IO23, 8
}
OperationRegion(\GP1_, SystemIO, 0x80c0, 0x20)
Field(\GP1_, ByteAcc, NoLock, Preserve) {
GP00, 8,
GP01, 8,
GP02, 8,
GP03, 8,
GP04, 8,
GP05, 8,
GP06, 8,
GP07, 8,
GP08, 8,
GP09, 8,
GP10, 8,
GP11, 8,
GP12, 8,
GP13, 8,
GP14, 8,
GP15, 8,
GP16, 8,
GP17, 8,
GP18, 8,
GP19, 8,
GP20, 8,
GP21, 8,
GP22, 8,
GP23, 8,
GP24, 8,
GP25, 8,
GP26, 8,
GP27, 8,
GP28, 8,
GP29, 8,
GP30, 8,
GP31, 8
}
Name(PICF, 0x0)
Method(_PIC, 1) {
Store(Arg0, PICF)
}
Scope(\) {
Method(DISD, 1) {
Store(Local0, Local0)
}
Method(CKIO, 2) {
Store(Local0, Local0)
}
Method(SLDM, 2) {
Store(Local0, Local0)
}
}
Scope(_GPE) {
Method(_L08) {
Notify(\_SB_.PCI0, 0x2)
Notify(\_SB_.PCI0.OP2P, 0x2)
}
Method(_L0F) {
Notify(\_SB_.PCI0.OP2P.USB0, 0x2)
}
}
Method(\_PTS, 1) {
Or(Arg0, 0xf0, Local0)
Store(Local0, DBG1)
Or(IRQR, 0x10, IRQR)
Or(IO23, 0x1, IO23)
Store(IO23, Local0)
Store(Local0, DBG1)
Sleep(0x0200)
If(LEqual(Arg0, 0x1)) {
Store(IO21, Local1)
Store(Local1, IO21)
}
If(LEqual(Arg0, 0x4)) {
Store(G_ST, Local1)
Store(Local1, G_ST)
Store(G_SB, Local1)
Store(Local1, G_SB)
}
If(LEqual(Arg0, 0x5)) {
Store(G_ST, Local1)
Store(Local1, G_ST)
Store(G_SB, Local1)
Store(Local1, G_SB)
And(IO2B, 0xfe, IO2B)
}
}
Method(\_WAK, 1) {
Store(G_ST, Local1)
Store(Local1, G_ST)
Store(G_SB, Local1)
Store(Local1, G_SB)
And(IRQR, 0xef, IRQR)
Notify(\_SB_.PWRB, 0x2)
}
Scope(\_SI_) {
Method(_MSG, 1) {
Store(Local0, Local0)
}
Method(_SST, 1) {
Store(Local0, Local0)
}
}
Scope(\_SB_) {
Device(PWRB) {
Name(_HID, 0x0c0cd041)
Method(_STA) {
Return(0xb)
}
}
Device(MEM_) {
Name(_HID, 0x010cd041)
Method(_CRS) {
Name(BUF0, Buffer(0x3e) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xfc, 0xff,
0x0, 0x0, 0x4, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xc0, 0xff, 0x0, 0x0, 0x38,
0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9,
0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0,
0x0, 0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 0x79, 0x0 })
CreateDWordField(BUF0, 0x2c, EMEM)
Subtract(AMEM, 0x00100000, EMEM)
Return(BUF0)
}
}
Device(PCI0) {
Name(_HID, 0x030ad041)
Name(_ADR, 0x0)
Method(_STA) {
Return(0xf)
}
Name(_PRW, Package(0x2) {
0x8,
0x5,
})
Method(_INI) {
If(STRC(\_OS_, "Microsoft Windows")) {
Store(0x1, OSFL)
}
If(STRC(\_OS_, "Microsoft WindowsME: Millennium Edition")) {
Store(0x1, OSFL)
}
}
Method(_CRS) {
Name(BUF0, Buffer(0x9a) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1,
0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0,
0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0x7f, 0x0,
0x0, 0x0, 0x73, 0x47, 0x1, 0x0, 0x80, 0x0, 0x80, 0x1, 0x80, 0x47, 0x1, 0x80,
0x80, 0x80, 0x80, 0x1, 0x80, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0,
0x81, 0xff, 0xff, 0x0, 0x0, 0x0, 0xaf, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x80, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x10, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0,
0xfe, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0xd, 0x0, 0x0, 0x40, 0x0, 0x0, 0x79, 0x0
})
CreateDWordField(BUF0, 0x66, VMAX)
CreateDWordField(BUF0, 0x6e, VLEN)
ShiftLeft(VGA1, 0x9, Local0)
Add(Local0, 0x000bffff, VMAX)
Add(Local0, 0x00020000, VLEN)
CreateDWordField(BUF0, 0x7c, TCMM)
CreateDWordField(BUF0, 0x88, TOMM)
Store(AMEM, TCMM)
Subtract(0xfec00000, TCMM, TOMM)
Return(BUF0)
}
Method(_PRT) {
If(LNot(PICF)) {
Store("Returning PCI0 PIC Mode", Debug)
Return(PICM)
}
Else {
Store("Returning PCI0 APIC Mode", Debug)
Return(APIC)
}
}
Name(APIC, Package(0xc) {
Package(0x4) {
0x0008ffff,
0x0,
0x0,
0x14,
},
Package(0x4) {
0x0008ffff,
0x1,
0x0,
0x15,
},
Package(0x4) {
0x0008ffff,
0x2,
0x0,
0x16,
},
Package(0x4) {
0x0008ffff,
0x3,
0x0,
0x17,
},
Package(0x4) {
0x0009ffff,
0x0,
0x0,
0x15,
},
Package(0x4) {
0x0009ffff,
0x1,
0x0,
0x16,
},
Package(0x4) {
0x0009ffff,
0x2,
0x0,
0x17,
},
Package(0x4) {
0x0009ffff,
0x3,
0x0,
0x14,
},
Package(0x4) {
0x000affff,
0x0,
0x0,
0x16,
},
Package(0x4) {
0x000affff,
0x1,
0x0,
0x17,
},
Package(0x4) {
0x000affff,
0x2,
0x0,
0x14,
},
Package(0x4) {
0x000affff,
0x3,
0x0,
0x15,
},
})
Name(PICM, Package(0xc) {
Package(0x4) {
0x0008ffff,
0x0,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x0008ffff,
0x1,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0x0008ffff,
0x2,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0008ffff,
0x3,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x0009ffff,
0x0,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0x0009ffff,
0x1,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0009ffff,
0x2,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x0009ffff,
0x3,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x000affff,
0x0,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x000affff,
0x1,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x000affff,
0x2,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x000affff,
0x3,
\_SB_.PCI0.LNKB,
0x0,
},
})
Device(AGP_) {
Name(_ADR, 0x00010000)
Method(_PRT) {
If(LNot(PICF)) {
Return(PICP)
}
Else {
Return(APIP)
}
}
Name(PICP, Package(0x2) {
Package(0x4) {
0x0005ffff,
0x0,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0005ffff,
0x1,
\_SB_.PCI0.LNKD,
0x0,
},
})
Name(APIP, Package(0x2) {
Package(0x4) {
0x0005ffff,
0x0,
0x0,
0x12,
},
Package(0x4) {
0x0005ffff,
0x1,
0x0,
0x13,
},
})
}
Device(SBC0) {
Name(_ADR, 0x00070000)
OperationRegion(IOAP, PCI_Config, 0x4b, 0x1)
Field(\_SB_.PCI0.SBC0.IOAP, ByteAcc, NoLock, Preserve) {
APC1, 8
}
OperationRegion(PAD_, PCI_Config, 0x90, 0x1)
Scope(\) {
Field(\_SB_.PCI0.SBC0.PAD_, ByteAcc, NoLock, Preserve) {
IPAD, 8
}
}
}
Device(IDE1) {
Name(_ADR, 0x00070001)
}
Device(SBC3) {
Name(_ADR, 0x00070003)
OperationRegion(PIRQ, PCI_Config, 0x56, 0x2)
Scope(\) {
Field(\_SB_.PCI0.SBC3.PIRQ, ByteAcc, NoLock, Preserve) {
PIRA, 8,
PIRC, 8
}
}
}
Device(OP2P) {
Name(_ADR, 0x00100000)
Name(_PRW, Package(0x2) {
0x8,
0x5,
})
Method(_PRT) {
If(LNot(PICF)) {
Store("Returning OP2P PIC Mode", Debug)
Return(PICM)
}
Else {
Store("Returning OP2P APIC Mode", Debug)
Return(APIC)
}
}
Name(APIC, Package(0x15) {
Package(0x4) {
0x0004ffff,
0x0,
0x0,
0x10,
},
Package(0x4) {
0x0004ffff,
0x1,
0x0,
0x11,
},
Package(0x4) {
0x0004ffff,
0x2,
0x0,
0x12,
},
Package(0x4) {
0x0004ffff,
0x3,
0x0,
0x13,
},
Package(0x4) {
0x0005ffff,
0x0,
0x0,
0x11,
},
Package(0x4) {
0x0005ffff,
0x1,
0x0,
0x12,
},
Package(0x4) {
0x0005ffff,
0x2,
0x0,
0x13,
},
Package(0x4) {
0x0005ffff,
0x3,
0x0,
0x10,
},
Package(0x4) {
0x0006ffff,
0x0,
0x0,
0x12,
},
Package(0x4) {
0x0006ffff,
0x1,
0x0,
0x13,
},
Package(0x4) {
0x0006ffff,
0x2,
0x0,
0x10,
},
Package(0x4) {
0x0006ffff,
0x3,
0x0,
0x11,
},
Package(0x4) {
0x0007ffff,
0x0,
0x0,
0x13,
},
Package(0x4) {
0x0007ffff,
0x1,
0x0,
0x10,
},
Package(0x4) {
0x0007ffff,
0x2,
0x0,
0x11,
},
Package(0x4) {
0x0007ffff,
0x3,
0x0,
0x12,
},
Package(0x4) {
0x0008ffff,
0x0,
0x0,
0x13,
},
Package(0x4) {
0xffff,
0x0,
0x0,
0x10,
},
Package(0x4) {
0xffff,
0x1,
0x0,
0x11,
},
Package(0x4) {
0xffff,
0x2,
0x0,
0x12,
},
Package(0x4) {
0xffff,
0x3,
0x0,
0x13,
},
})
Name(PICM, Package(0x15) {
Package(0x4) {
0x0004ffff,
0x0,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x0004ffff,
0x1,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0x0004ffff,
0x2,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0004ffff,
0x3,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x0005ffff,
0x0,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0x0005ffff,
0x1,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0005ffff,
0x2,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x0005ffff,
0x3,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x0006ffff,
0x0,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0006ffff,
0x1,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x0006ffff,
0x2,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x0006ffff,
0x3,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0x0007ffff,
0x0,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0x0007ffff,
0x1,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0x0007ffff,
0x2,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0x0007ffff,
0x3,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0x0008ffff,
0x0,
\_SB_.PCI0.LNKD,
0x0,
},
Package(0x4) {
0xffff,
0x0,
\_SB_.PCI0.LNKA,
0x0,
},
Package(0x4) {
0xffff,
0x1,
\_SB_.PCI0.LNKB,
0x0,
},
Package(0x4) {
0xffff,
0x2,
\_SB_.PCI0.LNKC,
0x0,
},
Package(0x4) {
0xffff,
0x3,
\_SB_.PCI0.LNKD,
0x0,
},
})
Device(USB0) {
Name(_ADR, 0x0)
Name(_PRW, Package(0x2) {
0xf,
0x1,
})
}
}
Device(LNKA) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x1)
Method(_STA) {
And(PIRA, 0xf, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_PRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x28, 0xc, 0x18, 0x79, 0x0 })
Return(BUFA)
}
Method(_DIS) {
And(PIRA, 0xf0, PIRA)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateByteField(BUFA, 0x1, IRA1)
CreateByteField(BUFA, 0x2, IRA2)
Store(0x0, Local3)
Store(0x0, Local4)
And(PIRA, 0xf, Local1)
If(LNot(LEqual(Local1, 0x0))) {
If(LGreater(Local1, 0x7)) {
Subtract(Local1, 0x8, Local2)
ShiftLeft(One, Local2, Local4)
}
Else {
If(LGreater(Local1, 0x0)) {
ShiftLeft(One, Local1, Local3)
}
}
Store(Local3, IRA1)
Store(Local4, IRA2)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRA1)
CreateByteField(Arg0, 0x2, IRA2)
ShiftLeft(IRA2, 0x8, Local0)
Or(Local0, IRA1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(PIRA, 0xf0, PIRA)
Or(PIRA, Local1, PIRA)
}
}
Device(LNKB) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x2)
Method(_STA) {
And(PIRA, 0xf0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_PRS) {
Name(BUFB, Buffer(0x6) {0x23, 0x28, 0xc, 0x18, 0x79, 0x0 })
Return(BUFB)
}
Method(_DIS) {
And(PIRA, 0xf, PIRA)
}
Method(_CRS) {
Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateByteField(BUFB, 0x1, IRB1)
CreateByteField(BUFB, 0x2, IRB2)
Store(0x0, Local3)
Store(0x0, Local4)
And(PIRA, 0xf0, Local1)
ShiftRight(Local1, 0x4, Local1)
If(LNot(LEqual(Local1, 0x0))) {
If(LGreater(Local1, 0x7)) {
Subtract(Local1, 0x8, Local2)
ShiftLeft(One, Local2, Local4)
}
Else {
If(LGreater(Local1, 0x0)) {
ShiftLeft(One, Local1, Local3)
}
}
Store(Local3, IRB1)
Store(Local4, IRB2)
}
Return(BUFB)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRB1)
CreateByteField(Arg0, 0x2, IRB2)
ShiftLeft(IRB2, 0x8, Local0)
Or(Local0, IRB1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(PIRA, 0xf, PIRA)
ShiftLeft(Local1, 0x4, Local1)
Or(PIRA, Local1, PIRA)
}
}
Device(LNKC) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x3)
Method(_STA) {
And(PIRC, 0xf, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_PRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x28, 0xc, 0x18, 0x79, 0x0 })
Return(BUFA)
}
Method(_DIS) {
And(PIRC, 0xf0, PIRC)
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateByteField(BUFA, 0x1, IRA1)
CreateByteField(BUFA, 0x2, IRA2)
Store(0x0, Local3)
Store(0x0, Local4)
And(PIRC, 0xf, Local1)
If(LNot(LEqual(Local1, 0x0))) {
If(LGreater(Local1, 0x7)) {
Subtract(Local1, 0x8, Local2)
ShiftLeft(One, Local2, Local4)
}
Else {
If(LGreater(Local1, 0x0)) {
ShiftLeft(One, Local1, Local3)
}
}
Store(Local3, IRA1)
Store(Local4, IRA2)
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRA1)
CreateByteField(Arg0, 0x2, IRA2)
ShiftLeft(IRA2, 0x8, Local0)
Or(Local0, IRA1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(PIRC, 0xf0, PIRC)
Or(PIRC, Local1, PIRC)
}
}
Device(LNKD) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x4)
Method(_STA) {
And(PIRC, 0xf0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_PRS) {
Name(BUFB, Buffer(0x6) {0x23, 0x28, 0xc, 0x18, 0x79, 0x0 })
Return(BUFB)
}
Method(_DIS) {
And(PIRC, 0xf, PIRC)
}
Method(_CRS) {
Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
CreateByteField(BUFB, 0x1, IRB1)
CreateByteField(BUFB, 0x2, IRB2)
Store(0x0, Local3)
Store(0x0, Local4)
And(PIRC, 0xf0, Local1)
ShiftRight(Local1, 0x4, Local1)
If(LNot(LEqual(Local1, 0x0))) {
If(LGreater(Local1, 0x7)) {
Subtract(Local1, 0x8, Local2)
ShiftLeft(One, Local2, Local4)
}
Else {
If(LGreater(Local1, 0x0)) {
ShiftLeft(One, Local1, Local3)
}
}
Store(Local3, IRB1)
Store(Local4, IRB2)
}
Return(BUFB)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRB1)
CreateByteField(Arg0, 0x2, IRB2)
ShiftLeft(IRB2, 0x8, Local0)
Or(Local0, IRB1, Local0)
Store(0x0, Local1)
ShiftRight(Local0, 0x1, Local0)
While(LGreater(Local0, 0x0)) {
Increment(Local1)
ShiftRight(Local0, 0x1, Local0)
}
And(PIRC, 0xf, PIRC)
ShiftLeft(Local1, 0x4, Local1)
Or(PIRC, Local1, PIRC)
}
}
Device(PIC_) {
Name(_HID, 0xd041)
Name(_CRS, Buffer(0x16) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 0x2,
0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x23, 0x4, 0x0, 0x1, 0x79, 0x0 })
}
Device(DMA1) {
Name(_HID, 0x0002d041)
Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10,
0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x10, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0,
0x1, 0x20, 0x2a, 0x10, 0x2, 0x79, 0x0 })
}
Device(TMR_) {
Name(_HID, 0x0001d041)
Name(_CRS, Buffer(0xe) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4,
0x23, 0x1, 0x0, 0x1, 0x79, 0x0 })
}
Device(RTC_) {
Name(_HID, 0x000bd041)
Name(_CRS, Buffer(0xe) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x6,
0x23, 0x0, 0x1, 0x1, 0x79, 0x0 })
}
Device(SPKR) {
Name(_HID, 0x0008d041)
Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1,
0x79, 0x0 })
}
Device(COPR) {
Name(_HID, 0x040cd041)
Name(_CRS, Buffer(0xe) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x10,
0x23, 0x0, 0x20, 0x1, 0x79, 0x0 })
}
Device(SYSR) {
Name(_HID, 0x020cd041)
Name(_CRS, Buffer(0x52) {0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2,
0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 0x10, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0,
0x1, 0x1e, 0x47, 0x1, 0x44, 0x0, 0x44, 0x0, 0x1, 0x1c, 0x47, 0x1, 0x62, 0x0,
0x62, 0x0, 0x1, 0x2, 0x47, 0x1, 0x65, 0x0, 0x65, 0x0, 0x1, 0xb, 0x47, 0x1,
0x76, 0x0, 0x76, 0x0, 0x1, 0xa, 0x47, 0x1, 0x90, 0x0, 0x90, 0x0, 0x1, 0x10,
0x47, 0x1, 0xa2, 0x0, 0xa2, 0x0, 0x1, 0x1e, 0x47, 0x1, 0xe0, 0x0, 0xe0, 0x0,
0x1, 0x10, 0x79, 0x0 })
}
Device(PS2M) {
Name(_HID, 0x130fd041)
Method(_STA) {
And(FLG0, 0x4, Local0)
If(LEqual(Local0, 0x4)) {
Return(0xf)
}
Else {
Return(0x0)
}
}
Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
}
Device(PS2K) {
Name(_HID, 0x0303d041)
Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1,
0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
}
Device(SIO_) {
Name(_HID, 0x050ad041)
OperationRegion(SIBP, SystemIO, 0x2e, 0x2)
Field(SIBP, ByteAcc, NoLock, Preserve) {
BPIO, 8
}
OperationRegion(SIIO, SystemIO, 0x2e, 0x2)
Field(SIIO, ByteAcc, NoLock, Preserve) {
INDX, 8,
DATA, 8
}
OperationRegion(\RTC_, SystemIO, 0x70, 0x2)
Field(\RTC_, ByteAcc, NoLock, Preserve) {
RTCI, 8,
RTCD, 8
}
IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
Offset(0x7),
LDN_, 8,
Offset(0x22),
POW_, 8,
Offset(0x30),
ACT_, 8,
Offset(0x60),
IOBH, 8,
IOBL, 8,
Offset(0x70),
INT_, 8,
Offset(0x74),
DMAS, 8,
Offset(0xe0),
REG0, 8,
Offset(0xe4),
REG4, 8,
Offset(0xf0),
MODE, 3
}
Method(CFG_, 1) {
Store(0x20, INDX)
While(LNot(LEqual(DATA, 0x52))) {
Store(0x87, BPIO)
Store(0x87, BPIO)
Store(0x20, INDX)
}
Store(Arg0, LDN_)
}
Method(XCFG) {
Store(0xaa, BPIO)
}
Method(DIS_, 1) {
CFG_(Arg0)
Store(0x0, ACT_)
XCFG()
}
Method(ENA_, 1) {
CFG_(Arg0)
Store(0x1, ACT_)
XCFG()
}
Method(STA_, 1) {
CFG_(Arg0)
If(ACT_) {
Store(0xf, Local0)
}
Else {
Store(0xd, Local0)
}
XCFG()
Return(Local0)
}
Method(PS0_, 1) {
ENA_(Arg0)
Return(Zero)
}
Method(PS3_, 1) {
DIS_(Arg0)
Return(0x3)
}
Name(TIO_, Buffer(0xa) {0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x1, 0x8,
0x79, 0x0 })
Method(RIO_, 1) {
CreateWordField(TIO_, 0x2, IO1N)
CreateWordField(TIO_, 0x4, IO1X)
CreateField(TIO_, 0x10, 0x20, OUT_)
ShiftLeft(IOBH, 0x8, Local0)
Add(IOBL, Local0, Local0)
Add(Local0, Arg0, Local1)
Store(Local1, IO1N)
Store(Local1, IO1X)
Return(OUT_)
}
Method(WIO1, 1) {
CreateByteField(TIO_, 0x2, IOLL)
CreateByteField(TIO_, 0x3, IOLH)
Store(Arg0, TIO_)
Store(IOLL, IOBL)
Store(IOLH, IOBH)
}
Name(TIRQ, Buffer(0x6) {0x23, 0x10, 0x0, 0x1, 0x79, 0x0 })
Method(RIRQ) {
CreateWordField(TIRQ, 0x1, IRQ1)
CreateField(TIRQ, 0x0, 0x20, OUT_)
ShiftLeft(0x1, INT_, IRQ1)
Return(OUT_)
}
Method(WIRQ, 1) {
CreateWordField(TIRQ, 0x1, IRQ1)
Store(Arg0, TIRQ)
FindSetRightBit(IRQ1, Local0)
Subtract(Local0, 0x1, Local0)
Store(Local0, INT_)
}
Name(TDMA, Buffer(0x5) {0x2a, 0x1, 0x0, 0x79, 0x0 })
Method(RDMA) {
CreateByteField(TDMA, 0x1, DMAA)
CreateField(TDMA, 0x0, 0x18, OUT_)
Store(DMAS, Local0)
ShiftLeft(0x1, Local0, DMAA)
Return(OUT_)
}
Method(WDMA, 1) {
CreateByteField(TDMA, 0x1, DMAA)
Store(Arg0, TDMA)
FindSetRightBit(DMAA, Local0)
Subtract(Local0, 0x1, DMAS)
}
Device(COM1) {
Name(_HID, 0x0105d041)
Name(_UID, 0x1)
Name(_PSC, 0x0)
Name(RSRC, Buffer(0xe) {0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x1,
0x8, 0x23, 0x10, 0x0, 0x1, 0x79, 0x0 })
Name(_PRS, Buffer(0x3b) {0x31, 0x4, 0x47, 0x1, 0xf8, 0x3, 0xf8,
0x3, 0x1, 0x8, 0x23, 0x18, 0x0, 0x1, 0x31, 0x4, 0x47, 0x1, 0xf8, 0x2, 0xf8,
0x2, 0x1, 0x8, 0x23, 0x18, 0x0, 0x1, 0x31, 0x4, 0x47, 0x1, 0xe8, 0x3, 0xe8,
0x3, 0x1, 0x8, 0x23, 0x18, 0x0, 0x1, 0x31, 0x4, 0x47, 0x1, 0xe8, 0x2, 0xe8,
0x2, 0x1, 0x8, 0x23, 0x18, 0x0, 0x1, 0x38, 0x79, 0x0 })
Method(_CRS) {
CreateField(RSRC, 0x10, 0x20, IO1_)
CreateField(RSRC, 0x40, 0x20, IRQ1)
CFG_(0x2)
Store(RIO_(0x0), IO1_)
Store(RIRQ(), IRQ1)
XCFG()
Return(RSRC)
}
Method(_SRS, 1) {
CreateField(RSRC, 0x0, 0x40, IO1_)
CreateWordField(RSRC, 0x2, IOXX)
CreateField(RSRC, 0x40, 0x20, IRQ1)
CFG_(0x2)
Store(Arg0, RSRC)
WIO1(IO1_)
WIRQ(IRQ1)
XCFG()
Store(IOXX, Local0)
}
Method(_DIS) {
DIS_(0x2)
}
Method(_PS0) {
PS0_(0x2)
ENA_(0x2)
Store(0x0, _PSC)
}
Method(_PS3) {
PS3_(0x2)
Store(0x3, _PSC)
}
Method(_STA) {
Store(IPAD, Local0)
And(Local0, 0x1, Local0)
If(LEqual(Local0, 0x1)) {
Return(0x0)
}
Else {
Return(STA_(0x2))
}
}
}
Device(COM2) {
Name(_HID, 0x0105d041)
Name(_UID, 0x2)
Name(_PSC, 0x0)
Name(NUM0, 0x1)
Name(RSRC, Buffer(0xe) {0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x1,
0x8, 0x23, 0x10, 0x0, 0x1, 0x79, 0x0 })
Name(_PRS, Buffer(0x3b) {0x31, 0x4, 0x47, 0x1, 0xf8, 0x2, 0xf8,
0x2, 0x1, 0x8, 0x23, 0xb8, 0x16, 0x1, 0x31, 0x4, 0x47, 0x1, 0xe8, 0x2, 0xe8,
0x2, 0x1, 0x8, 0x23, 0xb8, 0x16, 0x1, 0x31, 0x4, 0x47, 0x1, 0xf8, 0x3, 0xf8,
0x3, 0x1, 0x8, 0x23, 0xb8, 0x16, 0x1, 0x31, 0x4, 0x47, 0x1, 0xe8, 0x3, 0xe8,
0x3, 0x1, 0x8, 0x23, 0xb8, 0x16, 0x1, 0x38, 0x79, 0x0 })
Method(_CRS) {
CreateField(RSRC, 0x10, 0x20, IO1_)
CreateField(RSRC, 0x40, 0x20, IRQ1)
CFG_(0x3)
Store(RIO_(0x0), IO1_)
Store(RIRQ(), IRQ1)
XCFG()
Return(RSRC)
}
Method(_SRS, 1) {
CFG_(0x3)
CreateField(RSRC, 0x0, 0x40, IO1_)
CreateWordField(RSRC, 0x2, IOXX)
CreateField(RSRC, 0x40, 0x20, IRQ1)
Store(Arg0, RSRC)
WIO1(IO1_)
WIRQ(IRQ1)
XCFG()
Store(IOXX, Local0)
}
Method(_DIS) {
DIS_(0x3)
}
Method(_PS0) {
PS0_(0x3)
Store(0x0, _PSC)
}
Method(_PS3) {
PS3_(0x3)
Store(0x3, _PSC)
}
Method(_STA) {
Store(IPAD, Local0)
And(Local0, 0x2, Local0)
If(LEqual(Local0, 0x2)) {
Return(0x0)
}
Else {
Return(STA_(0x3))
}
}
}
Device(LPT_) {
Name(_PSC, 0x0)
Method(ECP_) {
CFG_(0x1)
And(MODE, 0x2, Local0)
XCFG()
If(LEqual(Local0, 0x0)) {
Return(0x0)
}
Else {
Return(0x1)
}
}
Method(_HID) {
If(ECP_()) {
Return(0x0104d041)
}
Else {
Return(0x0004d041)
}
}
Method(_PRS) {
If(ECP_()) {
Return(ECPB)
}
Else {
Return(EPPB)
}
}
Name(ECPT, Buffer(0x19) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1,
0x8, 0x23, 0x20, 0x0, 0x1, 0x2a, 0x2, 0x0, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7,
0x1, 0x8, 0x79, 0x0 })
Name(EPPT, Buffer(0x16) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1,
0x8, 0x23, 0x80, 0x0, 0x1, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x8, 0x79, 0x0
})
Name(ECPB, Buffer(0x4e) {0x31, 0x4, 0x47, 0x1, 0x78, 0x3, 0x78,
0x3, 0x1, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x2a, 0xa, 0x0, 0x47, 0x1, 0x78, 0x7,
0x78, 0x7, 0x1, 0x8, 0x31, 0x4, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8,
0x23, 0xa0, 0x0, 0x1, 0x2a, 0xa, 0x0, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x1,
0x8, 0x31, 0x4, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x1, 0x8, 0x23, 0xa0, 0x0,
0x1, 0x2a, 0xa, 0x0, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x1, 0x8, 0x38, 0x79, 0x0
})
Name(EPPB, Buffer(0x45) {0x31, 0x4, 0x47, 0x1, 0x78, 0x3, 0x78,
0x3, 0x1, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x8,
0x31, 0x4, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x23, 0xa0, 0x0, 0x1,
0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x1, 0x8, 0x31, 0x4, 0x47, 0x1, 0xbc, 0x3,
0xbc, 0x3, 0x1, 0x8, 0x23, 0xa0, 0x0, 0x1, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7,
0x1, 0x8, 0x38, 0x79, 0x0 })
Method(_CRS) {
If(ECP_()) {
CreateField(ECPT, 0x10, 0x20, IO1_)
CreateField(ECPT, 0x40, 0x20, IRQ1)
CreateField(ECPT, 0x60, 0x18, DMA1)
CreateField(ECPT, 0x88, 0x20, IO2_)
CFG_(0x1)
Store(RIO_(0x0), IO1_)
Store(RIRQ(), IRQ1)
Store(RDMA(), DMA1)
Store(RIO_(0x0400), IO2_)
XCFG()
Return(ECPT)
}
Else {
CreateField(EPPT, 0x10, 0x20, IO3_)
CreateField(EPPT, 0x40, 0x20, IRQ3)
CFG_(0x1)
Store(RIO_(0x0), IO3_)
Store(RIRQ(), IRQ3)
XCFG()
Return(EPPT)
}
}
Method(_SRS, 1) {
If(ECP_()) {
CreateField(ECPT, 0x0, 0x40, IO1_)
CreateWordField(ECPT, 0x2, IOXX)
CreateField(ECPT, 0x40, 0x20, IRQ1)
CreateField(ECPT, 0x60, 0x18, DMA1)
Store(Arg0, ECPT)
CFG_(0x1)
WIO1(IO1_)
WIRQ(IRQ1)
WDMA(DMA1)
Store(IOXX, Local0)
}
Else {
CreateField(EPPT, 0x0, 0x40, IO2_)
CreateWordField(EPPT, 0x2, IOXY)
CreateField(EPPT, 0x40, 0x20, IRQ2)
Store(Arg0, EPPT)
CFG_(0x1)
WIO1(IO2_)
WIRQ(IRQ2)
Store(IOXY, Local0)
}
XCFG()
}
Method(_DIS) {
DIS_(0x1)
}
Method(_PS0) {
PS0_(0x1)
ENA_(0x1)
Store(0x0, _PSC)
}
Method(_PS3) {
PS3_(0x1)
Store(0x3, _PSC)
}
Method(_STA) {
Store(IPAD, Local0)
And(Local0, 0x4, Local0)
If(LEqual(Local0, 0x4)) {
Return(0x0)
}
Else {
Return(STA_(0x1))
}
}
}
Device(FDC0) {
Name(_HID, 0x0007d041)
Name(_PSC, 0x0)
Name(RSRC, Buffer(0x19) {0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x1,
0x6, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x23, 0x40, 0x0, 0x1, 0x2a,
0x4, 0x0, 0x79, 0x0 })
Name(_PRS, Buffer(0x35) {0x31, 0x0, 0x47, 0x1, 0xf0, 0x3, 0xf0,
0x3, 0x1, 0x6, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x23, 0x40, 0x0, 0x1,
0x2a, 0x4, 0x0, 0x31, 0x4, 0x47, 0x1, 0x70, 0x3, 0x70, 0x3, 0x1, 0x6, 0x47,
0x1, 0x77, 0x3, 0x77, 0x3, 0x1, 0x1, 0x23, 0x40, 0x0, 0x1, 0x2a, 0x4, 0x0,
0x38, 0x79, 0x0 })
Method(_CRS) {
CreateField(RSRC, 0x10, 0x20, IO1_)
CreateField(RSRC, 0x50, 0x20, IO2_)
CreateWordField(RSRC, 0xa, IOA_)
CreateWordField(RSRC, 0xc, IOB_)
CreateField(RSRC, 0x80, 0x20, IRQ1)
CreateField(RSRC, 0xa0, 0x18, DMA1)
CFG_(0x0)
Store(RIO_(0x0), IO1_)
Store(RIO_(0x7), IO2_)
Store(RIRQ(), IRQ1)
Store(RDMA(), DMA1)
XCFG()
Return(RSRC)
}
Method(_SRS, 1) {
CFG_(0x0)
CreateWordField(RSRC, 0x2, IOXX)
CreateField(RSRC, 0x0, 0x40, IO1_)
CreateField(RSRC, 0x80, 0x20, IRQ1)
CreateField(RSRC, 0xa0, 0x18, DMA1)
Store(Arg0, RSRC)
WIO1(IO1_)
WIRQ(IRQ1)
WDMA(DMA1)
XCFG()
Store(IOXX, Local0)
If(LEqual(Local0, 0x03f0)) {
}
If(LEqual(Local0, 0x0370)) {
}
}
Method(_DIS) {
DIS_(0x0)
}
Method(_PS3) {
PS3_(0x0)
Store(0x3, _PSC)
}
Method(_PS0) {
PS0_(0x0)
ENA_(0x0)
Store(0x0, _PSC)
}
Method(_STA) {
Return(STA_(0x0))
}
}
}
}
}
}
/*
APIC: Length=94, Revision=1, Checksum=72,
OEMID=PTLTD, OEM Table ID= APIC, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x0
*/