|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: Andrew Smith (asmith
tranquility.fsbusiness.co.uk)
Date: Sat Feb 09 2008 - 14:40:34 CST
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
I decided to buy a Packard Bell EasyNote XS which will be available in
the US from Walmart as the Everex Cloudbook sometime soon.
The device comes preloaded with Windows XP, so needless to say I want
to get that off ASAP and something more useful onto it.
Basically the device is an implementation of the reference design of
the VIA Nanobook without the touch screen.
Using OpenBSD 4.2 release the box works absolutely fine, however, the
acpi code fails to understand some of the structures and gives up.
Under OpenBSD -current, however, the device does seem to recognise
some of the acpi entires correctly and tries to initialise some of the
devices. Unfortunately it sticks just after printing the message about
acpitimer0.
Here's the last few lines...
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 11/02/07, BIOS32 rev. 0
0xfdd64 SMBIOS rev. 2.4
0xdc010 (47 entries)
bios0: vendor Phoenix Technologies LTD version "6.00" date 11/02/2007
bios0: PACKARD BELL BV Pegasus
acpi0 at bios0: rev 0
acpi0: tables DSDT FACP SSDT APIC MCFG
acpi: wakeup devices PCIO(S5) SP2P(S5) LAN_(S3) LID_(S3)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
Once it sticks at that location you have to hold power (>3 seconds) to
get the thing to power off and whilst checking this out I have had
current and release kernels on the root of the fs. The interesting
thing is that once you boot this kernel and it sticks like this the
release kernel fails to boot and sticks at the message about the
kernel entry point once the boot loader has loaded it. For some quirky
reason if you attach a USB CD and boot from the install CD then
restart this seems to fix this issue. Very strange indeed.
I attach the acpidump output produced from a 4.2 release install and
was wondering if there is anything else that may help identify the
problem..?
Regards,
-Andy
/*
RSD PTR: Checksum=87, OEMID=PTLTD, RsdtAddress=0x3bee5663
*/
/*
RSDT: Length=52, Revision=1, Checksum=193,
OEMID=PTLTD, OEM Table ID= RSDT, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x0
*/
/*
Entries={ 0x3bee9a46, 0x3bee9aba, 0x3bee9f74, 0x3bee9fc4 }
*/
/*
DSDT=0x3bee5697
INT_MODEL=PIC
SCI_INT=10
SMI_CMD=0x402f, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
PM1a_EVT_BLK=0x4000-0x4003
PM1a_CNT_BLK=0x4004-0x4005
PM2_CNT_BLK=0x22-0x22
PM2_TMR_BLK=0x4008-0x400b
PM2_GPE0_BLK=0x4020-0x4023
P_LVL2_LAT=80ms, P_LVL3_LAT=800ms
FLUSH_SIZE=0, FLUSH_STRIDE=0
DUTY_OFFSET=0, DUTY_WIDTH=4
DAY_ALRM=125, MON_ALRM=126, CENTURY=50
Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
*/
/*
DSDT: Length=17327, Revision=1, Checksum=55,
OEMID=VIA, OEM Table ID=PTL_ACPI, OEM Revision=0x6040000,
Creator ID=MSFT, Creator Revision=0x100000e
*/
DefinitionBlock (
"acpi_dsdt.aml", //Output filename
"DSDT", //Signature
0x1, //DSDT Revision
"VIA", //OEMID
"PTL_ACPI", //TABLE ID
0x6040000 //OEM Revision
)
{
Scope(\_PR_) {
Processor(CPU0, 0, 0x4010, 0x6) {
}
}
Scope(\) {
Name(PICF, 0x0)
Method(_PIC, 1) {
Store(Arg0, PICF)
}
}
Name(_S0_, Package(0x2) {
0x0,
0x0,
})
Name(_S3_, Package(0x2) {
0x1,
0x1,
})
Name(_S4_, Package(0x2) {
0x2,
0x2,
})
Name(_S5_, Package(0x2) {
0x2,
0x2,
})
Scope(\_SB_) {
Name(OSTB, Ones)
OperationRegion(OSTY, SystemMemory, 0x3beeaf4c, 0x00000001)
Field(OSTY, AnyAcc, NoLock, Preserve) {
TPOS, 8
}
Method(OSTP) {
If(LEqual(^OSTB, Ones)) {
If(CondRefOf(\_OSI, Local0)) {
If(\_OSI) {
"Windows 2001"
Store(0x8, ^OSTB)
Store(0x8, ^TPOS)
}
Else {
Store(0x0, ^OSTB)
Store(0x0, ^TPOS)
}
}
Else {
If(CondRefOf(\_OS_, Local0)) {
If(^SEQL(\_OS_, "Microsoft Windows")) {
Store(0x1, ^OSTB)
Store(0x1, ^TPOS)
}
Else {
If(^SEQL(\_OS_, "Microsoft WindowsME:
Millennium Edition")) {
Store(0x2, ^OSTB)
Store(0x2, ^TPOS)
}
Else {
If(^SEQL(\_OS_, "Microsoft Windows NT")) {
Store(0x4, ^OSTB)
Store(0x4, ^TPOS)
}
Else {
Store(0x0, ^OSTB)
Store(0x0, ^TPOS)
}
}
}
}
Else {
Store(0x0, ^OSTB)
Store(0x0, ^TPOS)
}
}
}
Return(^OSTB)
}
Method(SEQL, 2, Serialized) {
Store(SizeOf(Arg0), Local0)
Store(SizeOf(Arg1), Local1)
If(LNot(LEqual(Local0, Local1))) {
Return(Zero)
}
Name(BUF0, Buffer(Local0) { })
Store(Arg0, BUF0)
Name(BUF1, Buffer(Local0) { })
Store(Arg1, BUF1)
Store(Zero, Local2)
While(LLess(Local2, Local0)) {
Store(DerefOf(Index(BUF0, Local2, )), Local3)
Store(DerefOf(Index(BUF1, Local2, )), Local4)
If(LNot(LEqual(Local3, Local4))) {
Return(Zero)
}
Increment(Local2)
}
Return(One)
}
}
Method(\_PTS, 1) {
Store(Arg0, \_SB_.PCI0.PIB_.Z000)
\_SB_.PCI0.PIB_.PMWT(0xec, 0x1)
And(\_SB_.PCI0.PIB_.PMRD(0xb5), 0xf7, Local1)
\_SB_.PCI0.PIB_.PMWT(0xb5, Local1)
If(LEqual(Arg0, 0x3)) {
\_SB_.Z001(0xa0)
And(\_SB_.PCI0.PIB_.PMRD(0xf0), 0x1, Local3)
If(Local3) {
}
Else {
And(\_SB_.PCI0.PIB_.PMRD(0xb8), 0xfe, Local1)
\_SB_.PCI0.PIB_.PMWT(0xb8, Local1)
}
Or(\_SB_.PCI0.PIB_.PMRD(0xe0), 0x1, Local3)
\_SB_.PCI0.PIB_.PMWT(0xe0, Local3)
Store(\_SB_.PCI0.PIB_.PMRD(0xdf), Local3)
\_SB_.PCI0.PIB_.PMWT(0xff, Local3)
\_SB_.PCI0.PIB_.PMWT(0xdf, Zero)
}
If(LEqual(Arg0, 0x4)) {
\_SB_.Z001(0xa8)
}
If(LEqual(Arg0, 0x5)) {
\_SB_.Z001(0xa8)
}
Or(Arg0, 0x50, Local0)
Store(Local0, \_SB_.PCI0.PIB_.Z000)
}
Method(\_WAK, 1) {
Store(Arg0, \_SB_.PCI0.PIB_.Z000)
\_SB_.PCI0.PIB_.PMWT(0xe6, 0xc)
\_SB_.PCI0.PIB_.PMWT(0xec, 0x0)
Or(\_SB_.PCI0.PIB_.PMRD(0xb5), 0x8, Local1)
\_SB_.PCI0.PIB_.PMWT(0xb5, Local1)
If(LEqual(Arg0, 0x3)) {
And(\_SB_.PCI0.PIB_.PMRD(0xa8), 0xfe, Local3)
\_SB_.PCI0.PIB_.PMWT(0xa8, Local3)
And(\_SB_.PCI0.PIB_.PMRD(0xac), 0xef, Local3)
\_SB_.PCI0.PIB_.PMWT(0xac, Local3)
\_SB_.Z001(0xa9)
\_SB_.Z001(0xa1)
Store(\_SB_.PCI0.PIB_.PMRD(0xff), Local3)
\_SB_.PCI0.PIB_.PMWT(0xdf, Local3)
\_SB_.PCI0.PIB_.PMWT(0xff, Zero)
And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local3)
\_SB_.PCI0.PIB_.PMWT(0xe0, Local3)
And(\_SB_.PCI0.PIB_.PMRD(0xf0), 0x1, Local3)
If(Local3) {
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
}
Else {
Or(\_SB_.PCI0.PIB_.PMRD(0xb8), 0x1, Local1)
\_SB_.PCI0.PIB_.PMWT(0xb8, Local1)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
}
}
If(LEqual(Arg0, 0x4)) {
Notify(\_SB_.PWRB, 0x2)
}
Or(Arg0, 0xa0, Local0)
Store(Local0, \_SB_.PCI0.PIB_.Z000)
}
Scope(\_GPE) {
Mutex(GLCK, 0)
Method(_L04) {
\_SB_.PCI0.PIB_.PMWT(0xf2, 0xac)
Acquire(\_GPE.GLCK, 0xffff)
\_SB_.Z001(0xa6)
Release(\_GPE.GLCK)
Store(\_SB_.PCI0.PIB_.PMRD(0xf2), Local2)
If(LEqual(Local2, 0xca)) {
And(\_SB_.PCI0.PIB_.PMRD(0xf3), 0x23, Local2)
If(Local2) {
And(Local2, 0x1, Local1)
Store(Local1, \_SB_.PCI0.PPB_.VGA_.CRTA)
And(Local2, 0x2, Local1)
ShiftRight(Local1, 0x1, Local1)
Store(Local1, \_SB_.PCI0.PPB_.VGA_.LCDA)
And(Local2, 0x20, Local1)
ShiftRight(Local1, 0x5, Local1)
Store(Local1, \_SB_.PCI0.PPB_.VGA_.DVIA)
Notify(\_SB_.PCI0.PPB_.VGA_, 0x80)
}
And(\_SB_.PCI0.PIB_.PMRD(0xf3), 0xdc, Local2)
\_SB_.PCI0.PIB_.PMWT(0xf3, Local2)
}
\_SB_.PCI0.PIB_.PMWT(0xf2, Zero)
While(LEqual(\_SB_.PCI0.PIB_.GPI5, 0x0)) {
Acquire(\_GPE.GLCK, 0xffff)
\_SB_.Z001(0xa6)
Release(\_GPE.GLCK)
}
}
Method(_L05) {
Notify(\_SB_.PCI0, 0x2)
}
Method(_L08) {
Acquire(\_GPE.GLCK, 0xffff)
Store(\_SB_.PCI0.PIB_.PMRD(0xa8), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0xa9), Local1)
Store(\_SB_.PCI0.PIB_.PMRD(0xaa), Local2)
If(And(Local0, 0x1, Local3)) {
Store(\_SB_.PCI0.PIB_.PMRD(0xb8), Local4)
And(Local4, 0xfe, Local4)
\_SB_.PCI0.PIB_.PMWT(0xb8, Local4)
If(And(\_SB_.PCI0.PIB_.PMRD(0xb5), 0x1, )) {
Store(\_SB_.PCI0.PIB_.PMRD(0xb7), Local7)
And(Local7, 0xfe, Local7)
\_SB_.PCI0.PIB_.PMWT(0xb7, Local7)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x1)
Store(0x1, \_SB_.LID_.LIDF)
}
Else {
Store(\_SB_.PCI0.PIB_.PMRD(0xb7), Local7)
Or(Local7, 0x1, Local7)
\_SB_.PCI0.PIB_.PMWT(0xb7, Local7)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x1)
Store(0x0, \_SB_.LID_.LIDF)
}
Store(\_SB_.PCI0.PIB_.PMRD(0xa8), Local6)
And(Local6, 0xfe, Local6)
\_SB_.PCI0.PIB_.PMWT(0xa8, Local6)
Or(Local4, 0x1, Local4)
\_SB_.PCI0.PIB_.PMWT(0xb8, Local4)
Notify(\_SB_.LID_, 0x80)
}
And(\_SB_.PCI0.PIB_.PMRD(0xac), 0xef, Local7)
\_SB_.PCI0.PIB_.PMWT(0xac, Local7)
Release(\_GPE.GLCK)
}
Method(_L01) {
Acquire(\_GPE.GLCK, 0xffff)
Store(\_SB_.PCI0.PIB_.PMRD(0xab), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0xad), Local4)
Store(\_SB_.PCI0.PIB_.PMRD(0xaf), Local7)
And(Local7, 0x4, Local7)
If(LNot(LEqual(Local7, Zero))) {
\_SB_.PCI0.PIB_.PMMW(0x01e8, 0x0)
Store(One, \_TZ_.THRM.TERR)
Notify(\_TZ_.THRM, 0x80)
}
If(And(Local4, 0x1, Local3)) {
Store(\_SB_.PCI0.PIB_.PMRD(0xe7), Local4)
Store(0x1, Local2)
Store(0x0, Local7)
While(Local2) {
Store(DerefOf(Index(\_TZ_.THRM.HITP, Local7, )),
Local6)
If(LGreater(Local6, Local4)) {
If(LEqual(Local7, 0x1)) {
Store(0x37, \_TZ_.THRM.PSVV)
Notify(\_TZ_.THRM, 0x81)
}
Else {
Store(0x46, \_TZ_.THRM.PSVV)
Notify(\_TZ_.THRM, 0x81)
}
\_SB_.PCI0.PIB_.PMWT(0xe5,
DerefOf(Index(\_TZ_.THRM.LOTP, Local7, )))
\_SB_.PCI0.PIB_.PMWT(0xe4,
DerefOf(Index(\_TZ_.THRM.HITP, Local7, )))
Store(0x0, Local2)
}
Notify(\_TZ_.THRM, 0x80)
If(LGreater(Increment(Local7), 0x1)) {
Break
}
}
And(\_SB_.PCI0.PIB_.PMRD(0xad), 0xfe, Local5)
\_SB_.PCI0.PIB_.PMWT(0xad, Local5)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
And(\_SB_.PCI0.PIB_.PMRD(0xae), 0xfe, Local5)
\_SB_.PCI0.PIB_.PMWT(0xae, Local5)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
And(\_SB_.PCI0.PIB_.PMRD(0xaf), 0xf8, Local5)
\_SB_.PCI0.PIB_.PMWT(0xaf, Local5)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
}
If(And(Local0, 0x1, Local3)) {
And(\_SB_.PCI0.PIB_.PMRD(0xab), 0xfe, Local2)
\_SB_.PCI0.PIB_.PMWT(0xab, Local2)
\_SB_.Z001(0xa7)
Notify(\_SB_.ACAD, 0x80)
Notify(\_PR_.CPU0, 0x81)
}
If(And(Local0, 0x2, Local3)) {
Notify(\_SB_.ACAD, 0x80)
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local1)
Store(\_SB_.PCI0.PIB_.PMRD(0xf1), Local4)
If(LNot(LEqual(And(Local1, 0x1, Local3), And(Local4, 0x1,
Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x81)
}
If(LNot(LEqual(And(Local1, 0x2, Local3), And(Local4, 0x2,
Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
If(LNot(LEqual(And(Local1, 0x4, Local3), And(Local4, 0x4,
Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
If(LNot(LEqual(And(Local1, 0x8, Local3), And(Local4, 0x8,
Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
If(LNot(LEqual(And(Local1, 0x10, Local3), And(Local4,
0x10, Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
If(LNot(LEqual(And(Local1, 0x20, Local3), And(Local4,
0x20, Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
If(LNot(LEqual(And(Local1, 0x40, Local3), And(Local4,
0x40, Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
If(LNot(LEqual(And(Local1, 0x80, Local3), And(Local4,
0x80, Local5)))) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local6)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local6)
Notify(\_SB_.BAT0, 0x80)
}
And(\_SB_.PCI0.PIB_.PMRD(0xab), 0xfd, Local2)
\_SB_.PCI0.PIB_.PMWT(0xab, Local2)
\_SB_.PCI0.PIB_.PMWT(0xf0, 0x0)
}
Release(\_GPE.GLCK)
}
}
OperationRegion(VGAM, SystemMemory, 0x000c0002, 0x1)
Field(VGAM, ByteAcc, NoLock, Preserve) {
VGA1, 8
}
Scope(\_SB_) {
OperationRegion(PSIB, SystemIO, 0x0000fe00, 0x00000002)
Field(PSIB, AnyAcc, NoLock, Preserve) {
SMIC, 8
}
OperationRegion(PSCB, SystemMemory, 0x3beeaebc, 0x00000090)
Field(PSCB, AnyAcc, NoLock, Preserve) {
BCMD, 8,
DID_, 32,
INF_, 1024
}
}
Name(FWSO, "FWSO")
Name(_PSC, 0x0)
Method(_PS0) {
Store(_PSC, Local0)
Store(0x0, _PSC)
If(LEqual(Local0, 0x3)) {
Store(0x1, \_SB_.INF_)
While(\_SB_.INF_) {
Store(0x20, \_SB_.BCMD)
Store(Zero, \_SB_.SMIC)
If(LAnd(LEqual(\_SB_.INF_, 0x1), LNot(LLess(\_SB_.OSTB,
0x4)))) {
Sleep(0x01f4)
}
}
}
}
Method(_PS3) {
Store(0x3, _PSC)
}
Scope(\_SB_) {
Device(PWRB) {
Name(_HID, 0x0c0cd041)
}
Device(PCI0) {
Name(_HID, 0x030ad041)
Name(_ADR, 0x0)
Name(_PRW, Package(0x2) {
0x5,
0x5,
})
Name(_BBN, 0x0)
Method(_INI) {
\_SB_.OSTP()
}
Method(_S3D) {
Return(0x2)
}
Device(NBF3) {
Name(_ADR, 0x3)
OperationRegion(NBF3, PCI_Config, 0x0, 0x0100)
Field(NBF3, ByteAcc, NoLock, Preserve) {
Offset(0x82),
SH82, 8,
SH83, 8,
Offset(0x88),
EADD, 8
}
}
Device(NBF5) {
Name(_ADR, 0x5)
Method(_STA) {
Return(0xb)
}
}
Device(NBF7) {
Name(_ADR, 0x7)
OperationRegion(NBF7, PCI_Config, 0x0, 0x0100)
Field(NBF7, ByteAcc, NoLock, Preserve) {
Offset(0x47),
, 2,
VLNK, 1
}
}
Method(_STA) {
Return(0xf)
}
Name(CRES, Buffer(0xf5) {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, 0xff, 0x0, 0x0, 0x0, 0xf3, 0x87, 0x18, 0x0,
0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff,
0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x87, 0x18,
0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff,
0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87,
0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0,
0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc,
0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,
0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
0x0, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x10, 0x0, 0xff, 0xff, 0xff, 0xdf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0xf0, 0xdf, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0xf0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff,
0xff, 0xbf, 0xe, 0x79, 0x0 })
Method(_CRS) {
CreateDWordField(CRES, 0xc9, TCMM)
CreateDWordField(CRES, 0xd5, TOMM)
Multiply(\_SB_.PCI0.NBF3.EADD, 0x01000000, Local0)
Store(Local0, TCMM)
Subtract(0xffe80000, Local0, TOMM)
Return(CRES)
}
Name(APIC, Package(0x10) {
Package(0x4) {
0x0001ffff,
0x0,
0x0,
0x10,
},
Package(0x4) {
0x0001ffff,
0x1,
0x0,
0x11,
},
Package(0x4) {
0x0001ffff,
0x2,
0x0,
0x12,
},
Package(0x4) {
0x0001ffff,
0x3,
0x0,
0x13,
},
Package(0x4) {
0x000fffff,
0x0,
0x0,
0x14,
},
Package(0x4) {
0x000fffff,
0x1,
0x0,
0x15,
},
Package(0x4) {
0x000fffff,
0x2,
0x0,
0x16,
},
Package(0x4) {
0x000fffff,
0x3,
0x0,
0x17,
},
Package(0x4) {
0x0010ffff,
0x0,
0x0,
0x14,
},
Package(0x4) {
0x0010ffff,
0x1,
0x0,
0x16,
},
Package(0x4) {
0x0010ffff,
0x2,
0x0,
0x15,
},
Package(0x4) {
0x0010ffff,
0x3,
0x0,
0x17,
},
Package(0x4) {
0x0011ffff,
0x0,
\_SB_.PCI0.PIB_.ALKA,
0x0,
},
Package(0x4) {
0x0011ffff,
0x1,
\_SB_.PCI0.PIB_.ALKB,
0x0,
},
Package(0x4) {
0x0011ffff,
0x2,
0x0,
0x16,
},
Package(0x4) {
0x0011ffff,
0x3,
0x0,
0x17,
},
})
Name(PICM, Package(0x14) {
Package(0x4) {
0x0001ffff,
0x0,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0001ffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0001ffff,
0x2,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0001ffff,
0x3,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x000fffff,
0x0,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x000fffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x000fffff,
0x2,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x000fffff,
0x3,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0010ffff,
0x0,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0010ffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0010ffff,
0x2,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0010ffff,
0x3,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0010ffff,
0x0,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0010ffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0010ffff,
0x2,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0010ffff,
0x3,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0011ffff,
0x0,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0011ffff,
0x1,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0011ffff,
0x2,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0011ffff,
0x3,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
})
Method(_PRT) {
If(PICF) {
Return(APIC)
}
Else {
Return(PICM)
}
}
Device(PIB_) {
Name(_ADR, 0x00110000)
OperationRegion(IRQR, PCI_Config, 0x0, 0x0100)
Field(IRQR, ByteAcc, NoLock, Preserve) {
Offset(0x44),
PIRE, 4,
PIRF, 4,
PIRG, 4,
PIRH, 4,
Offset(0x50),
ESB4, 1,
ESB5, 1,
ESB3, 1,
Z002, 1,
ESB1, 1,
ESB2, 1,
AC97, 1,
MC97, 1,
, 2,
PS2E, 1,
ERTC, 1,
ELAN, 1,
ELAK, 1,
Offset(0x55),
, 4,
PIRA, 4,
PIRB, 4,
PIRC, 4,
, 4,
PIRD, 4,
Offset(0x5b),
, 1,
EINT, 1,
Offset(0x68),
, 7,
HPTE, 1,
, 4,
MMTB, 4,
Offset(0x88),
PMBS, 16,
Offset(0x94),
, 4,
GPSU, 1,
SUSC, 1,
STRP, 1,
Offset(0x95),
USBW, 1,
Offset(0xd0),
SMBS, 16,
SMBC, 1
}
OperationRegion(PMIO, SystemIO, 0x4000, 0x50)
Field(PMIO, ByteAcc, NoLock, Preserve) {
Offset(0x22),
, 5,
Z003, 1,
Offset(0x24),
, 5,
Z004, 1,
Offset(0x2a),
PACT, 1,
Offset(0x2f),
Z005, 8,
, 5,
CMAS, 1,
CMBS, 1,
Offset(0x31),
Offset(0x34),
, 5,
CMAE, 1,
CMBE, 1,
Offset(0x48),
, 5,
GPI5, 1
}
OperationRegion(Z006, SystemIO, 0x80, 0x1)
Field(Z006, ByteAcc, NoLock, Preserve) {
Z000, 8
}
Device(ALKA) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x5)
Name(_PRS, Buffer(0x27) {0x89, 0x22, 0x0, 0xd, 0x8,
0x10, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x13,
0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x16, 0x0,
0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
Method(_STA) {
And(PIRA, 0xf0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_DIS) {
And(PIRA, 0xf, PIRA)
}
Method(_CRS) {
Name(BUFA, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
CreateWordField(BUFA, 0x5, IRAI)
Store(\_SB_.PCI0.PIB_.PIRA, IRAI)
Return(BUFA)
}
Method(_SRS, 1) {
}
}
Device(ALKB) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x6)
Name(_PRS, Buffer(0x27) {0x89, 0x22, 0x0, 0xd, 0x8,
0x10, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x13,
0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x16, 0x0,
0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x79, 0x0 })
Method(_STA) {
And(PIRB, 0xf0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_DIS) {
And(PIRB, 0xf, PIRB)
}
Method(_CRS) {
Name(BUFB, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
CreateWordField(BUFB, 0x5, IRBI)
Store(\_SB_.PCI0.PIB_.PIRB, IRBI)
Return(BUFB)
}
Method(_SRS, 1) {
}
}
Device(ALKC) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x7)
Name(_PRS, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
0x16, 0x0, 0x0, 0x0, 0x79, 0x0 })
Method(_STA) {
And(PIRC, 0xf0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_DIS) {
And(PIRC, 0xf, PIRC)
}
Method(_CRS) {
Name(BUFC, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
CreateWordField(BUFC, 0x5, IRCI)
Store(\_SB_.PCI0.PIB_.PIRC, IRCI)
Return(BUFC)
}
Method(_SRS, 1) {
}
}
Device(ALKD) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x8)
Name(_PRS, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
0x15, 0x0, 0x0, 0x0, 0x79, 0x0 })
Method(_STA) {
And(PIRD, 0xf0, Local0)
If(LEqual(Local0, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_DIS) {
And(PIRD, 0xf, PIRD)
}
Method(_CRS) {
Name(BUFD, Buffer(0xb) {0x89, 0x6, 0x0, 0xd, 0x1,
0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
CreateWordField(BUFD, 0x5, IRDI)
Store(\_SB_.PCI0.PIB_.PIRD, IRDI)
Return(BUFD)
}
Method(_SRS, 1) {
}
}
Device(LNKA) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x1)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
0x0 })
Method(_DIS) {
Store(Zero, \_SB_.PCI0.PIB_.PIRA)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.PIB_.PIRA, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_CRS) {
Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
0x79, 0x0 })
CreateByteField(BUFA, 0x1, IRA1)
CreateByteField(BUFA, 0x2, IRA2)
Store(\_SB_.PCI0.PIB_.PIRA, Local0)
If(LGreater(Local0, 0x0)) {
If(LGreater(Local0, 0x7)) {
Subtract(Local0, 0x8, Local0)
Store(0x1, Local1)
ShiftLeft(Local1, Local0, IRA2)
}
Else {
Store(0x1, Local1)
ShiftLeft(Local1, Local0, IRA1)
}
}
Return(BUFA)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRA1)
CreateByteField(Arg0, 0x2, IRA2)
If(LGreater(IRA2, Zero)) {
FindSetLeftBit(IRA2, Local0)
Decrement(Local0)
Add(Local0, 0x8, Local0)
}
Else {
FindSetLeftBit(IRA1, Local0)
Decrement(Local0)
}
Store(Local0, \_SB_.PCI0.PIB_.PIRA)
}
}
Device(LNKB) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x2)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
0x0 })
Method(_DIS) {
Store(Zero, \_SB_.PCI0.PIB_.PIRB)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.PIB_.PIRB, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_CRS) {
Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
0x79, 0x0 })
CreateByteField(BUFB, 0x1, IRB1)
CreateByteField(BUFB, 0x2, IRB2)
Store(\_SB_.PCI0.PIB_.PIRB, Local0)
If(LGreater(Local0, 0x0)) {
If(LGreater(Local0, 0x7)) {
Subtract(Local0, 0x8, Local0)
Store(0x1, Local1)
ShiftLeft(Local1, Local0, IRB2)
}
Else {
Store(0x1, Local1)
ShiftLeft(Local1, Local0, IRB1)
}
}
Return(BUFB)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRB1)
CreateByteField(Arg0, 0x2, IRB2)
If(LGreater(IRB2, Zero)) {
FindSetLeftBit(IRB2, Local0)
Decrement(Local0)
Add(Local0, 0x8, Local0)
}
Else {
FindSetLeftBit(IRB1, Local0)
Decrement(Local0)
}
Store(Local0, \_SB_.PCI0.PIB_.PIRB)
}
}
Device(LNKC) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x3)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
0x0 })
Method(_DIS) {
Store(Zero, \_SB_.PCI0.PIB_.PIRC)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.PIB_.PIRC, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_CRS) {
Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
0x79, 0x0 })
CreateByteField(BUFC, 0x1, IRC1)
CreateByteField(BUFC, 0x2, IRC2)
Store(\_SB_.PCI0.PIB_.PIRC, Local0)
If(LGreater(Local0, 0x0)) {
If(LGreater(Local0, 0x7)) {
Subtract(Local0, 0x8, Local0)
Store(0x1, Local1)
ShiftLeft(Local1, Local0, IRC2)
}
Else {
Store(0x1, Local1)
ShiftLeft(Local1, Local0, IRC1)
}
}
Return(BUFC)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRC1)
CreateByteField(Arg0, 0x2, IRC2)
If(LGreater(IRC2, Zero)) {
FindSetLeftBit(IRC2, Local0)
Decrement(Local0)
Add(Local0, 0x8, Local0)
}
Else {
FindSetLeftBit(IRC1, Local0)
Decrement(Local0)
}
Store(Local0, \_SB_.PCI0.PIB_.PIRC)
}
}
Device(LNKD) {
Name(_HID, 0x0f0cd041)
Name(_UID, 0x4)
Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x1e, 0x18, 0x79,
0x0 })
Method(_DIS) {
Store(Zero, \_SB_.PCI0.PIB_.PIRD)
}
Method(_STA) {
If(LEqual(\_SB_.PCI0.PIB_.PIRD, 0x0)) {
Return(0x9)
}
Else {
Return(0xb)
}
}
Method(_CRS) {
Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18,
0x79, 0x0 })
CreateByteField(BUFD, 0x1, IRD1)
CreateByteField(BUFD, 0x2, IRD2)
Store(\_SB_.PCI0.PIB_.PIRD, Local0)
If(LGreater(Local0, 0x0)) {
If(LGreater(Local0, 0x7)) {
Subtract(Local0, 0x8, Local2)
Store(0x1, Local1)
ShiftLeft(Local1, Local2, Local3)
Store(Local3, IRD2)
}
Else {
Store(0x1, Local1)
ShiftLeft(Local1, Local0, Local2)
Store(Local2, IRD1)
}
}
Return(BUFD)
}
Method(_SRS, 1) {
CreateByteField(Arg0, 0x1, IRD1)
CreateByteField(Arg0, 0x2, IRD2)
If(LGreater(IRD2, Zero)) {
FindSetLeftBit(IRD2, Local0)
Decrement(Local0)
Add(Local0, 0x8, Local0)
}
Else {
FindSetLeftBit(IRD1, Local0)
Decrement(Local0)
}
Store(Local0, \_SB_.PCI0.PIB_.PIRD)
}
}
Device(DMA1) {
Name(_HID, 0x0002d041)
Name(_CRS, Buffer(0x1d) {0x2a, 0x10, 0x4, 0x47, 0x1,
0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1,
0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x79, 0x0 })
Method(_STA) {
Return(0xf)
}
}
Device(PIC_) {
Name(_HID, 0xd041)
Method(_STA) {
Return(0xf)
}
Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20,
0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4,
0x0, 0x79, 0x0 })
}
Device(COPR) {
Name(_HID, 0x040cd041)
Method(_STA) {
Return(0xf)
}
Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0,
0x0, 0x1, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
}
Device(TIME) {
Name(_HID, 0x0001d041)
Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x40, 0x0, 0x40,
0x0, 0x1, 0x4, 0x79, 0x0 })
Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40,
0x0, 0x1, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
If(And(HPTE, 0x1, )) {
Return(BUF0)
}
Return(BUF1)
}
}
Device(RTC_) {
Name(_HID, 0x000bd041)
Name(BUF0, Buffer(0xa) {0x47, 0x1, 0x70, 0x0, 0x70,
0x0, 0x1, 0x6, 0x79, 0x0 })
Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70,
0x0, 0x1, 0x6, 0x22, 0x0, 0x1, 0x79, 0x0 })
Method(_CRS, 0, Serialized) {
If(And(HPTE, 0x1, )) {
Return(BUF0)
}
Return(BUF1)
}
}
Device(SPKR) {
Method(_STA) {
Return(0xf)
}
Name(_HID, 0x0008d041)
Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61,
0x0, 0x1, 0x1, 0x79, 0x0 })
}
Device(MEM_) {
Name(_HID, 0x010cd041)
Method(_STA) {
Return(0xf)
}
Method(_CRS) {
Name(SMEM, Buffer(0x56) {0x86, 0x9, 0x0, 0x1,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0,
0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xf0,
0xff, 0x0, 0x0, 0x10, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xee, 0xff,
0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xfe, 0x0,
0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x0,
0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0x20, 0xe0, 0x0, 0x10, 0x0,
0x0, 0x79, 0x0 })
Return(SMEM)
}
}
Device(SYSR) {
Name(_HID, 0x020cd041)
Method(_STA) {
Return(0xf)
}
Method(_CRS) {
If(\_SB_.PCI0.PIB_.SMBC) {
Name(RSR2, Buffer(0x6a) {0x47, 0x1, 0x80,
0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1,
0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x1, 0x47, 0x1, 0xa9, 0x0, 0xa9,
0x0, 0x1, 0x1, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x1, 0x1, 0x47, 0x1,
0x2e, 0x0, 0x2e, 0x0, 0x1, 0x1, 0x47, 0x1, 0x2f, 0x0, 0x2f, 0x0, 0x1,
0x1, 0x47, 0x1, 0x68, 0x0, 0x68, 0x0, 0x1, 0x8, 0x47, 0x1, 0xd0, 0x4,
0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x10, 0xfe, 0x10, 0xfe, 0x1, 0x2,
0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x1, 0x1, 0x47, 0x1, 0x0, 0x80, 0x0,
0x80, 0x1, 0x80, 0x47, 0x1, 0x0, 0x81, 0x0, 0x81, 0x1, 0x20, 0x79,
0x0 })
CreateWordField(RSR2, 0x5a, PMMI)
CreateWordField(RSR2, 0x5c, PMMA)
CreateWordField(RSR2, 0x62, SMMI)
CreateWordField(RSR2, 0x64, SMMA)
And(\_SB_.PCI0.PIB_.PMBS, 0xfffe, PMMI)
Store(PMMI, PMMA)
And(\_SB_.PCI0.PIB_.SMBS, 0xfff0, SMMI)
Store(SMMI, SMMA)
Return(RSR2)
}
Else {
Name(RSR1, Buffer(0x52) {0x47, 0x1, 0x80,
0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x92, 0x0, 0x92, 0x0, 0x1, 0x1,
0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x1, 0x47, 0x1, 0xa9, 0x0, 0xa9,
0x0, 0x1, 0x1, 0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x1, 0x47, 0x1,
0x2f, 0x0, 0x2f, 0x0, 0x1, 0x1, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1,
0x2, 0x47, 0x1, 0x10, 0xfe, 0x10, 0xfe, 0x1, 0x2, 0x47, 0x1, 0x0,
0xfe, 0x0, 0xfe, 0x1, 0x1, 0x47, 0x1, 0x0, 0x80, 0x0, 0x80, 0x1, 0x80,
0x79, 0x0 })
CreateWordField(RSR1, 0x4a, IOMI)
CreateWordField(RSR1, 0x4c, IOMA)
And(\_SB_.PCI0.PIB_.PMBS, 0xfffe, IOMI)
Store(IOMI, IOMA)
Return(RSR1)
}
}
}
Device(HPET) {
Name(_HID, 0x0301d041)
Method(_CRS, 0, Serialized) {
If(LNot(LGreater(MMTB, 0x4))) {
If(LEqual(MMTB, 0x4)) {
Return(BUF4)
}
If(LEqual(MMTB, 0x2)) {
Return(BUF2)
}
If(LEqual(MMTB, 0x1)) {
Return(BUF1)
}
Return(BUF0)
}
}
Name(BUF4, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x40, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
0x79, 0x0 })
Name(BUF2, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x20, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
0x79, 0x0 })
Name(BUF1, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x10, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
0x79, 0x0 })
Name(BUF0, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0,
0x1, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0,
0x79, 0x0 })
Method(_STA) {
If(And(HPTE, 0x1, )) {
If(LNot(LLess(\_SB_.OSTP(), 0x8))) {
Return(0xf)
}
Else {
Return(0x0)
}
}
Return(0x0)
}
}
Device(PS2M) {
Name(_HID, 0x050d2e4f)
Name(_CID, Package(0x3) {
0x000d2e4f,
0x02002e4f,
0x130fd041,
})
Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
Method(_STA) {
If(LEqual(And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x80,
Local0), 0x80)) {
Return(0xf)
}
Return(0x0)
}
}
Device(PS2K) {
Method(_HID) {
And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x8, Local0)
If(Local0) {
Return(0x2003d041)
}
Else {
Return(0x0303d041)
}
}
Method(_CID) {
And(\_SB_.PCI0.PIB_.PMRD(0xfb), 0x8, Local0)
If(Local0) {
Return(0x0303d041)
}
Else {
Return(0x2003d041)
}
}
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 })
Method(_STA) {
Return(0xf)
}
}
OperationRegion(PMIF, SystemIO, 0x68, 0x8)
Field(PMIF, ByteAcc, NoLock, Preserve) {
PMUD, 8,
Offset(0x4),
PMUC, 8,
Offset(0x8)
}
Mutex(ELCK, 0)
Method(WIBF) {
Store(0x0009ffff, Local6)
Noop
Noop
Store(PMUC, Local2)
And(Local2, 0x22, Local2)
If(And(Local2, 0x20, Local3)) {
Return(0x1)
}
And(Local2, 0x2, Local2)
While(LAnd(LNot(LEqual(Local2, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Noop
Noop
Store(PMUC, Local2)
Decrement(Local6)
If(And(Local2, 0x20, Local3)) {
Return(0x1)
}
And(Local2, 0x2, Local2)
}
Return(0x0)
}
Method(WOBF) {
Store(0x009fffff, Local6)
Noop
Noop
Store(PMUC, Local3)
And(Local3, 0x21, Local3)
If(And(Local3, 0x20, Local2)) {
Return(0x1)
}
While(LAnd(LEqual(Local3, 0x0), LNot(LEqual(Local6,
0x0)))) {
Noop
Noop
Store(PMUC, Local3)
And(Local3, 0x21, Local3)
If(And(Local3, 0x20, Local2)) {
Return(0x1)
}
Decrement(Local6)
}
Return(0x0)
}
Method(RCMD, 2) {
Store(Arg0, Local0)
Store(Arg1, Local1)
Store(Local0, PMUC)
If(WIBF()) {
Return(0x1)
}
Store(Local1, PMUD)
If(WOBF()) {
Return(0x1)
}
Return(0x0)
}
Method(WCMD, 2) {
Store(Arg0, Local0)
Store(Arg1, Local1)
Store(Local0, PMUC)
If(WIBF()) {
Return(0x1)
}
Store(Local1, PMUD)
If(WIBF()) {
Return(0x1)
}
Return(0x0)
}
Method(PMRD, 1) {
Acquire(ELCK, 0xffff)
Store(Zero, EDFG)
Store(0x14, RECT)
While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,
0x0)))) {
Store(Arg0, Local0)
Store(0x03e8, Local6)
Store(PMUC, Local1)
And(Local1, 0x13, Local1)
While(LAnd(LNot(LEqual(Local1, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Sleep(0x1)
Store(PMUC, Local1)
And(Local1, 0x13, Local1)
If(And(Local1, 0x1, Local2)) {
Store(PMUD, Local3)
}
Decrement(Local6)
}
While(RCMD(0x80, Local0)) {
Noop
Noop
Store(PMUC, Local5)
If(And(Local5, 0x1, Local2)) {
Store(PMUD, Local5)
}
}
Store(0x07d0, Local6)
Store(PMUC, Local1)
And(Local1, 0x10, Local1)
While(LAnd(LNot(LEqual(Local1, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Noop
Noop
Store(PMUC, Local1)
And(Local1, 0x10, Local1)
Decrement(Local6)
}
Store(PMUC, Local1)
And(Local1, 0x20, Local1)
If(LEqual(Local1, 0x0)) {
Store(One, EDFG)
}
Decrement(RECT)
}
Store(PMUD, Local4)
Release(ELCK)
Return(Local4)
}
Method(PMWT, 2) {
Acquire(ELCK, 0xffff)
Store(Zero, EDFG)
Store(0x14, RECT)
While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,
0x0)))) {
Store(Arg0, Local0)
Store(0x03e8, Local6)
Store(PMUC, Local1)
And(Local1, 0x13, Local1)
While(LAnd(LNot(LEqual(Local1, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Sleep(0x1)
Store(PMUC, Local1)
And(Local1, 0x13, Local1)
Decrement(Local6)
}
While(WCMD(0x81, Local0)) {
Noop
Noop
Store(PMUC, Local5)
If(And(Local5, 0x1, Local2)) {
Store(PMUD, Local5)
}
}
Store(Arg1, PMUD)
Store(0x07d0, Local6)
Store(PMUC, Local1)
And(Local1, 0x12, Local1)
While(LAnd(LNot(LEqual(Local1, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Store(0x0, ED__)
Noop
Noop
Store(0x0, ED__)
Store(PMUC, Local1)
And(Local1, 0x12, Local1)
Decrement(Local6)
}
Store(PMUC, Local1)
And(Local1, 0x20, Local1)
If(LEqual(Local1, 0x0)) {
Store(One, EDFG)
}
Decrement(RECT)
}
Release(ELCK)
}
Method(PMMW, 2) {
Store(Arg0, Local0)
Store(Arg1, Local1)
And(Local0, 0xff, Local2)
And(Local0, 0xff00, Local3)
ShiftRight(Local3, 0x8, Local3)
Add(Local2, Local3, Local4)
Add(Local4, 0xc1, Local4)
Add(Local4, Local1, Local7)
And(Local7, 0xff, Local7)
PMWR(0x043f, Local7)
PMWR(Local0, Local1)
}
Method(PMWR, 2) {
Acquire(ELCK, 0xffff)
Store(Zero, EDFG)
Store(0x14, RECT)
While(LAnd(LEqual(EDFG, 0x0), LNot(LEqual(RECT,
0x0)))) {
Store(0x03e8, Local6)
Store(PMUC, Local1)
And(Local1, 0x13, Local1)
While(LAnd(LNot(LEqual(Local1, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Sleep(0x1)
Store(PMUC, Local1)
And(Local1, 0x13, Local1)
Decrement(Local6)
}
Store(Arg0, Local0)
While(WCM2(0xc1, Local0)) {
Store(0x0, ED__)
Noop
Noop
Store(0x0, ED__)
Store(PMUC, Local5)
If(And(Local5, 0x1, Local2)) {
Store(PMUD, Local5)
}
}
Store(Arg1, PMUD)
Store(0x07d0, Local6)
Store(PMUC, Local1)
And(Local1, 0x12, Local1)
While(LAnd(LNot(LEqual(Local1, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Store(0x0, ED__)
Noop
Noop
Store(0x0, ED__)
Store(PMUC, Local1)
And(Local1, 0x12, Local1)
Decrement(Local6)
}
Store(PMUC, Local1)
And(Local1, 0x20, Local1)
If(LEqual(Local1, 0x0)) {
Store(One, EDFG)
}
Decrement(RECT)
}
Release(ELCK)
}
Method(WCM2, 2) {
Store(Arg0, Local0)
Store(Arg1, Local1)
Store(Arg1, Local2)
And(Local1, 0xff, Local1)
And(Local2, 0xff00, Local2)
ShiftRight(Local2, 0x8, Local2)
Store(Local0, PMUC)
If(WIBF()) {
Return(0x1)
}
Store(Local2, PMUD)
If(WIBF()) {
Return(0x1)
}
Store(Local1, PMUD)
If(WIBF()) {
Return(0x1)
}
Return(0x0)
}
Name(EDFG, 0x0)
Name(RECT, 0x0)
OperationRegion(DELY, SystemIO, 0xed, 0x1)
Field(DELY, ByteAcc, NoLock, Preserve) {
ED__, 8
}
Method(SMST) {
Store(0x10, Local6)
Store(PMRD(0x70), Local0)
While(LAnd(LNot(LEqual(Local0, 0x0)),
LNot(LEqual(Local6, 0x0)))) {
Store(PMRD(0x70), Local0)
Decrement(Local6)
}
Store(0x10, Local6)
Store(PMRD(0x71), Local1)
While(LAnd(LNot(LEqual(Local1, 0x80)),
LNot(LEqual(Local6, 0x0)))) {
Store(PMRD(0x71), Local1)
Decrement(Local6)
}
}
Method(SMWT, 3) {
Acquire(ELCK, 0xffff)
Store(0x6, Local6)
Store(Arg0, Local0)
Store(Arg1, Local1)
Store(Arg2, Local2)
While(LNot(LEqual(Local6, 0x0))) {
PMWT(0x71, 0x0)
PMWT(0x72, Local0)
PMWT(0x73, Local1)
PMWT(0x74, Local2)
PMWT(0x70, 0x6)
SMST()
Decrement(Local6)
}
Release(ELCK)
}
Method(SMWD, 4) {
Acquire(ELCK, 0xffff)
Store(0x6, Local6)
Store(Arg0, Local0)
Store(Arg1, Local1)
Store(Arg2, Local2)
Store(Arg3, Local3)
While(LNot(LEqual(Local6, 0x0))) {
PMWT(0x71, 0x0)
PMWT(0x72, Local0)
PMWT(0x73, Local1)
PMWT(0x74, Local2)
PMWT(0x75, Local3)
PMWT(0x70, 0x8)
SMST()
Decrement(Local6)
}
Release(ELCK)
}
}
Name(REGT, Package(0x15) {
0x10,
0x20,
0x21,
0x22,
0x23,
0x33,
0x34,
0x35,
0x36,
0x37,
0x47,
0x48,
0x49,
0x4a,
0x4b,
0x4c,
0x5c,
0x5d,
0x5e,
0x5f,
0x6f,
})
Name(DMTT, Package(0x7) {
0xf,
0x14,
0x1e,
0x2d,
0x3c,
0x4b,
0x78,
})
Name(PIOT, Package(0x7) {
0x0258,
0x017f,
0xf0,
0xb4,
0x78,
0x5a,
0x0,
})
Device(IDE_) {
Method(_ADR) {
Return(0x000f0000)
}
OperationRegion(PCI_, PCI_Config, 0x48, 0x60)
Field(PCI_, DWordAcc, NoLock, Preserve) {
SDR1, 8,
SDR0, 8,
PDR1, 8,
PDR0, 8,
SDST, 4,
PDST, 4,
Offset(0x8),
UDMS, 16,
UDMP, 16
}
OperationRegion(Z007, SystemIO, 0x80, 0x9)
Field(Z007, ByteAcc, NoLock, Preserve) {
Z000, 8,
Offset(0x4),
Z008, 8,
Offset(0x8),
Z009, 8
}
Name(Z00A, 0x0)
Name(Z00B, 0x0)
Method(_PS3) {
And(^UDMP, 0x10, ^Z00A)
And(^UDMS, 0x10, ^Z00B)
}
Method(_PS0) {
If(^Z00A) {
Or(^UDMP, ^Z00A, Local0)
Or(Local0, ShiftLeft(^Z00A, 0x8, ), ^UDMP)
}
If(^Z00B) {
Or(^UDMS, ^Z00B, Local0)
Or(Local0, ShiftLeft(^Z00B, 0x8, ), ^UDMS)
}
}
Method(GIDX, 1) {
If(LEqual(Arg0, 0x0)) {
Store(0x0, Local1)
}
Else {
If(LEqual(Arg0, 0xe)) {
Store(0x6, Local1)
}
Else {
Add(ShiftRight(Arg0, 0x1, ), 0x1, Local1)
}
}
Return(Local1)
}
Method(RIDX, 1) {
Store(0x0, Local0)
While(NAnd(LLess(Local0, 0x7),
LEqual(DerefOf(Index(^^DMTT, Local0, )), Arg0), )) {
Increment(Local0)
}
If(Local0) {
If(LGreater(Local0, 0x6)) {
Store(0xe, Local0)
}
Else {
Subtract(ShiftLeft(Local0, 0x1, ), 0x1, Local0)
If(LNot(LEqual(Local0, 0x1))) {
Decrement(Local0)
}
}
}
Return(Local0)
}
Method(GTM_, 3) {
Store(Buffer(0x14) { }, Local0)
CreateDWordField(Local0, 0x0, PIO0)
CreateDWordField(Local0, 0x4, DMA0)
CreateDWordField(Local0, 0x8, PIO1)
CreateDWordField(Local0, 0xc, DMA1)
CreateDWordField(Local0, 0x10, FLAG)
Store(Zero, FLAG)
Or(FLAG, 0x10, FLAG)
Add(And(Arg1, 0xf, ), ShiftRight(Arg1, 0x4, ), Local1)
Add(Local1, 0x2, Local1)
Multiply(Local1, 0x1e, PIO0)
Or(FLAG, 0x2, FLAG)
Add(And(Arg2, 0xf, ), ShiftRight(Arg2, 0x4, ), Local1)
Add(Local1, 0x2, Local1)
Multiply(Local1, 0x1e, PIO1)
Or(FLAG, 0x8, FLAG)
And(Arg0, 0xf, Local1)
If(And(Arg0, 0xe0, )) {
Or(FLAG, 0x4, FLAG)
Store(^GIDX(Local1), Local1)
}
Else {
Store(0x6, Local1)
}
Store(DerefOf(Index(^^DMTT, Local1, )), DMA1)
ShiftRight(And(Arg0, 0x0f00, ), 0x8, Local1)
If(And(Arg0, 0xe000, )) {
Or(FLAG, 0x1, FLAG)
Store(^GIDX(Local1), Local1)
}
Else {
Store(0x6, Local1)
}
Store(DerefOf(Index(^^DMTT, Local1, )), DMA0)
Return(Local0)
}
Method(STM_, 3) {
Store(Buffer(0x5) { }, Local7)
CreateWordField(Local7, 0x0, UDMT)
CreateWordField(Local7, 0x2, PIOT)
CreateByteField(Local7, 0x4, R4CT)
CreateDWordField(Arg0, 0x0, PIO0)
CreateDWordField(Arg0, 0x4, DMA0)
CreateDWordField(Arg0, 0x8, PIO1)
CreateDWordField(Arg0, 0xc, DMA1)
CreateDWordField(Arg0, 0x10, FLAG)
Store(FLAG, Local4)
Store(0x0e0e, Local1)
If(And(Local4, 0x1, )) {
And(Local1, 0xf, Local1)
Store(^RIDX(DMA0), Local3)
Or(Local3, 0xe0, Local3)
Or(ShiftLeft(Local3, 0x8, ), Local1, Local1)
}
If(And(Local4, 0x4, )) {
And(Local1, 0xff00, Local1)
Store(^RIDX(DMA1), Local3)
Or(Local3, 0xe0, Local3)
Or(Local3, Local1, Local1)
}
Store(Local1, UDMT)
Store(0xa, Local2)
If(And(Local4, 0x2, )) {
Divide(PIO0, 0x1e, , Local3)
Subtract(Local3, 0x3, Local3)
If(LLess(Local3, 0xc)) {
And(Local2, 0x3, Local2)
Or(Local2, 0x4, Local2)
}
Store(ShiftLeft(DerefOf(Index(^^REGT, Local3, )),
0x8, ), Local6)
}
Else {
Store(0x0, Local6)
}
If(And(Local4, 0x8, )) {
Divide(PIO1, 0x1e, , Local3)
Subtract(Local3, 0x3, Local3)
If(LLess(Local3, 0xc)) {
And(Local2, 0xc, Local2)
Or(Local2, 0x1, Local2)
}
Store(DerefOf(Index(^^REGT, Local3, )), Local6)
}
Else {
Store(And(Local6, 0xff00, ), Local6)
}
Store(Local2, R4CT)
Store(Local6, PIOT)
Return(Local7)
}
Method(GTF_, 3) {
If(Arg2) {
Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0,
0xef }, Local7)
}
Else {
Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0,
0xef }, Local7)
}
CreateByteField(Local7, 0x1, MODE)
Add(And(Arg0, 0xf, ), ShiftRight(Arg0, 0x4, ), Local1)
Add(Local1, 0x2, Local1)
Multiply(Local1, 0x1e, Local0)
Store(Match(^^PIOT, MLT, Local0, MTR, 0x0, 0x0),
Local1)
If(Local1) {
Decrement(Local1)
}
If(And(Arg1, 0xe0, )) {
Store(^GIDX(And(Arg1, 0xf, )), Local0)
If(LGreater(Local0, 0x6)) {
Store(0x0, Local0)
}
Else {
Subtract(0x6, Local0, Local0)
}
Or(Local0, 0x40, MODE)
}
Else {
Or(Local1, 0x8, MODE)
}
Concatenate(Local7, Local7, Local6)
Or(Local1, 0x8, MODE)
Concatenate(Local6, Local7, Local5)
Return(Local5)
}
Device(PRIM) {
Name(_ADR, 0x0)
Method(_GTM) {
Store("GTM - Primary Controller", Debug)
Store(^^GTM_(0xe0e0, 0x20, 0x20), Local0)
Return(Local0)
}
Method(_STM, 3) {
Store("STM - Primary Controller", Debug)
}
Device(MAST) {
Name(_ADR, 0x0)
Method(_GTF) {
Store("GTF - Primary Master", Debug)
ShiftRight(0xe0e0, 0x8, Local0)
Store(^^^GTF_(0x20, Local0, 0x1), Local0)
Return(Local0)
}
}
Device(SLAV) {
Name(_ADR, 0x1)
Method(_GTF) {
Store("GTF - Primary Slave", Debug)
Store(^^^GTF_(0x20, 0xe0, 0x0), Local0)
Return(Local0)
}
}
}
Device(SECN) {
Name(_ADR, 0x1)
Method(_GTM) {
Store("GTM - Secondary Controller", Debug)
Store(^^GTM_(^^UDMS, ^^SDR0, ^^SDR1), Local0)
Return(Local0)
}
Method(_STM, 3) {
Store("STM - Secondary Controller", Debug)
Store(^^STM_(Arg0, Arg1, Arg2), Local0)
CreateWordField(Local0, 0x0, DMAS)
CreateWordField(Local0, 0x2, PIOS)
CreateByteField(Local0, 0x4, ADSS)
Store(Or(DMAS, And(^^UDMS, 0x1010, ), ), ^^UDMS)
And(PIOS, 0xff, Local1)
If(Local1) {
Store(Local1, ^^SDR1)
}
ShiftRight(PIOS, 0x8, Local1)
If(Local1) {
Store(Local1, ^^SDR0)
}
Store(ADSS, ^^SDST)
}
Device(MAST) {
Name(_ADR, 0x0)
Method(_GTF) {
Store("GTF - Secondary Master", Debug)
ShiftRight(^^^UDMS, 0x8, Local0)
Store(^^^GTF_(^^^SDR0, Local0, 0x1), Local0)
Return(Local0)
}
}
Device(SLAV) {
Name(_ADR, 0x1)
Method(_GTF) {
Store("GTF - Secondary Slave", Debug)
Store(^^^GTF_(^^^SDR1, ^^^UDMS, 0x0), Local0)
Return(Local0)
}
}
}
}
Device(USB1) {
Name(_ADR, 0x00100000)
Method(_STA) {
If(\_SB_.PCI0.PIB_.ESB1) {
Return(0x0)
}
Else {
Return(0xf)
}
}
}
Device(USB2) {
Name(_ADR, 0x00100001)
Method(_STA) {
If(\_SB_.PCI0.PIB_.ESB2) {
Return(0x0)
}
Else {
Return(0xf)
}
}
}
Device(USB3) {
Name(_ADR, 0x00100002)
Method(_STA) {
If(\_SB_.PCI0.PIB_.ESB3) {
Return(0x0)
}
Else {
Return(0xf)
}
}
}
Device(USB5) {
Name(_ADR, 0x00100004)
Method(_STA) {
If(\_SB_.PCI0.PIB_.ESB5) {
Return(0x0)
}
Else {
Return(0xf)
}
}
}
Device(Z00C) {
Name(_ADR, 0x00110007)
OperationRegion(PBVL, PCI_Config, 0xfc, 0x1)
Field(PBVL, ByteAcc, NoLock, Preserve) {
, 2,
Z00D, 1,
Offset(0x1)
}
}
Device(SP2P) {
Name(_ADR, 0x00130001)
Name(_PRW, Package(0x2) {
0x5,
0x5,
})
OperationRegion(PPB2, PCI_Config, 0x19, 0x1)
Field(PPB2, ByteAcc, NoLock, Preserve) {
CBUS, 8
}
Method(_BBN) {
Return(CBUS)
}
Name(APIC, Package(0x11) {
Package(0x4) {
0x0003ffff,
0x0,
0x0,
0x10,
},
Package(0x4) {
0x0003ffff,
0x1,
0x0,
0x11,
},
Package(0x4) {
0x0003ffff,
0x2,
0x0,
0x12,
},
Package(0x4) {
0x0003ffff,
0x3,
0x0,
0x13,
},
Package(0x4) {
0x0004ffff,
0x0,
0x0,
0x11,
},
Package(0x4) {
0x0004ffff,
0x1,
0x0,
0x12,
},
Package(0x4) {
0x0004ffff,
0x2,
0x0,
0x13,
},
Package(0x4) {
0x0004ffff,
0x3,
0x0,
0x10,
},
Package(0x4) {
0x0005ffff,
0x0,
0x0,
0x12,
},
Package(0x4) {
0x0006ffff,
0x0,
0x0,
0x12,
},
Package(0x4) {
0x0006ffff,
0x1,
0x0,
0x13,
},
Package(0x4) {
0x0007ffff,
0x0,
0x0,
0x11,
},
Package(0x4) {
0x0007ffff,
0x1,
0x0,
0x12,
},
Package(0x4) {
0x0009ffff,
0x0,
0x0,
0x10,
},
Package(0x4) {
0x0009ffff,
0x1,
0x0,
0x10,
},
Package(0x4) {
0x0009ffff,
0x2,
0x0,
0x10,
},
Package(0x4) {
0x0009ffff,
0x3,
0x0,
0x10,
},
})
Name(PICM, Package(0x11) {
Package(0x4) {
0x0003ffff,
0x0,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0003ffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0003ffff,
0x2,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0003ffff,
0x3,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0004ffff,
0x0,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0004ffff,
0x1,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0004ffff,
0x2,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0004ffff,
0x3,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0005ffff,
0x1,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0006ffff,
0x0,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0006ffff,
0x1,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
Package(0x4) {
0x0007ffff,
0x0,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0007ffff,
0x1,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0009ffff,
0x0,
\_SB_.PCI0.PIB_.LNKA,
0x0,
},
Package(0x4) {
0x0009ffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0009ffff,
0x2,
\_SB_.PCI0.PIB_.LNKC,
0x0,
},
Package(0x4) {
0x0009ffff,
0x3,
\_SB_.PCI0.PIB_.LNKD,
0x0,
},
})
Method(_PRT) {
If(PICF) {
Return(APIC)
}
Else {
Return(PICM)
}
}
}
Device(P2PE) {
Name(_ADR, 0x00130000)
Method(_STA) {
If(LEqual(\_SB_.PCI0.Z00C.Z00D, 0x0)) {
Return(0xf)
}
Else {
Return(0x0)
}
}
Name(APIC, Package(0x4) {
Package(0x4) {
0x0001ffff,
0x0,
0x0,
0x11,
},
Package(0x4) {
0x0001ffff,
0x1,
0x0,
0x11,
},
Package(0x4) {
0x0001ffff,
0x2,
0x0,
0x11,
},
Package(0x4) {
0x0001ffff,
0x3,
0x0,
0x11,
},
})
Name(PICM, Package(0x4) {
Package(0x4) {
0x0001ffff,
0x0,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0001ffff,
0x1,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0001ffff,
0x2,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
Package(0x4) {
0x0001ffff,
0x3,
\_SB_.PCI0.PIB_.LNKB,
0x0,
},
})
Method(_PRT) {
If(PICF) {
Return(APIC)
}
Else {
Return(PICM)
}
}
Device(HDAC) {
Name(_ADR, 0x00010000)
OperationRegion(AZAR, PCI_Config, 0x0, 0x0100)
Field(AZAR, ByteAcc, NoLock, Preserve) {
VID_, 16,
Offset(0x4),
CMDR, 3
}
Method(_STA) {
If(LNot(LEqual(\_SB_.PCI0.P2PE.HDAC.VID_,
0x1106))) {
Return(0x0)
}
Else {
If(LEqual(\_SB_.PCI0.P2PE.HDAC.CMDR, 0x0)) {
Return(0xd)
}
Else {
Return(0xf)
}
}
}
}
}
Device(PPB_) {
Name(_ADR, 0x00010000)
Device(VGA_) {
Name(_ADR, 0x0)
Name(DSEN, 0x1)
Name(LCDA, 0x1)
Name(DVIA, 0x1)
Name(CRTA, 0x1)
Method(_DOS, 1) {
Store(And(Arg0, 0x3, ), DSEN)
}
Method(_DOD) {
Return(Package(0x3) {
0x00010100,
0x00010110,
0x00010120,
})
}
Device(CRT_) {
Name(_ADR, 0x0100)
Method(_DCS) {
If(CRTA) {
Return(0x1f)
}
Else {
Return(0x1d)
}
}
Method(_DGS) {
If(CRTA) {
Return(0x1)
}
Else {
Return(0x0)
}
}
Method(_DSS, 1) {
If(CRTA) {
Return(0x80000001)
}
Else {
Return(0x0)
}
}
}
Device(LCD_) {
Name(_ADR, 0x0110)
Method(_DCS) {
If(LCDA) {
Return(0x1f)
}
Else {
Return(0x1d)
}
}
Method(_DGS) {
If(LCDA) {
Return(0x1)
}
Else {
Return(0x0)
}
}
Method(_DSS, 1) {
If(LCDA) {
Return(0x80000001)
}
Else {
Return(0x0)
}
}
}
Device(DVI_) {
Name(_ADR, 0x0120)
Method(_DCS) {
If(DVIA) {
Return(0x1f)
}
Else {
Return(0x1d)
}
}
Method(_DGS) {
If(DVIA) {
Return(0x1)
}
Else {
Return(0x0)
}
}
Method(_DSS, 1) {
If(DVIA) {
Return(0x80000001)
}
Else {
Return(0x0)
}
}
}
}
}
Device(LAN_) {
Name(_ADR, 0x00090000)
Name(_PRW, Package(0x2) {
0x5,
0x3,
})
}
}
Mutex(VSMX, 0)
Method(Z001, 1, Serialized) {
Acquire(VSMX, 0xffff)
Store(Arg0, \_SB_.PCI0.PIB_.Z005)
Release(VSMX)
}
Device(LID_) {
Name(_HID, 0x0d0cd041)
Name(LIDF, 0x1)
Method(_LID) {
Return(LIDF)
}
Name(_PRW, Package(0x2) {
0x8,
0x3,
})
}
Mutex(PSMX, 0)
Device(ACAD) {
Name(_HID, "ACPI0003")
Name(_PCL, Package(0x1) {
\_SB_,
})
Name(INIT, 0x1)
Name(ACFG, 0x0)
Method(_PSR) {
Acquire(PSMX, 0xffff)
And(0x1, \_SB_.PCI0.PIB_.PMRD(0xa0), Local0)
Store(Local0, ACFG)
Store(Local0, INIT)
Release(PSMX)
Return(ACFG)
}
Method(_STA) {
Return(0xf)
}
}
Device(BAT0) {
Name(_HID, 0x0a0cd041)
Name(_UID, 0x1)
Method(_STA) {
Acquire(PSMX, 0xffff)
And(\_SB_.PCI0.PIB_.PMRD(0xa1), 0x1, Local0)
Store(Local0, FSTA)
Release(PSMX)
If(LEqual(Local0, 0x0)) {
Return(0xf)
}
Else {
Return(0x1f)
}
}
Method(_BIF) {
And(\_SB_.PCI0.PIB_.PMRD(0xa1), 0x1, Local0)
If(Local0) {
UPBI()
}
Else {
IVBI()
IVBS()
}
Store(Zero, FBIF)
Return(PBIF)
}
Method(_BST) {
UPBS()
And(\_SB_.PCI0.PIB_.PMRD(0xa0), 0x1, Local0)
If(Local0) {
And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local0)
\_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
}
Else {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local0)
And(Local0, 0x10, Local1)
If(Local1) {
Or(\_SB_.PCI0.PIB_.PMRD(0xe0), 0x1, Local0)
\_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
}
Else {
And(\_SB_.PCI0.PIB_.PMRD(0xe0), 0xfe, Local0)
\_SB_.PCI0.PIB_.PMWT(0xe0, Local0)
}
}
Return(PBST)
}
Method(IVBI) {
Store(0xffffffff, Index(PBIF, 0x1, ))
Store(0xffffffff, Index(PBIF, 0x2, ))
Store(0xffffffff, Index(PBIF, 0x4, ))
Store("Bad", Index(PBIF, 0x9, ))
Store("Bad", Index(PBIF, 0xa, ))
Store("Bad", Index(PBIF, 0xb, ))
Store("Bad", Index(PBIF, 0xc, ))
Store(One, FBIF)
}
Method(IVBS) {
Store(Zero, Index(PBST, 0x0, ))
Store(0xffffffff, Index(PBST, 0x1, ))
Store(0xffffffff, Index(PBST, 0x2, ))
Store(0xffffffff, Index(PBST, 0x3, ))
Store(One, \_SB_.BAT0.FSTA)
}
Method(UPBI) {
Acquire(PSMX, 0xffff)
Store(\_SB_.PCI0.PIB_.PMRD(0x0), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x1), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local0, Local2, Local3)
Store(Local3, Index(PBIF, 0x0, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x2), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x3), Local1)
Store(\_SB_.PCI0.PIB_.PMRD(0x49), Local2)
Multiply(Local1, 0x0100, Local3)
Multiply(Local2, 0x00010000, Local4)
Or(Local3, Local0, Local5)
Or(Local4, Local5, Local6)
Store(Local6, Index(PBIF, 0x1, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x4), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x5), Local1)
Store(\_SB_.PCI0.PIB_.PMRD(0x4a), Local2)
Multiply(Local1, 0x0100, Local3)
Multiply(Local2, 0x00010000, Local4)
Or(Local3, Local0, Local5)
Or(Local4, Local5, Local6)
Store(Local6, Index(PBIF, 0x2, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x6), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x7), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBIF, 0x3, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x8), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x9), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBIF, 0x4, ))
Store(\_SB_.PCI0.PIB_.PMRD(0xa), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0xb), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBIF, 0x5, ))
Store(\_SB_.PCI0.PIB_.PMRD(0xc), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0xd), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBIF, 0x6, ))
Store(\_SB_.PCI0.PIB_.PMRD(0xe), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0xf), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBIF, 0x7, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x10), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x11), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBIF, 0x8, ))
Store("46EA0/ECZJG", Index(PBIF, 0x9, ))
Store("", Index(PBIF, 0xa, ))
Store("Lion", Index(PBIF, 0xb, ))
Store("FIC ", Index(PBIF, 0xc, ))
Release(PSMX)
Return(PBIF)
}
Method(UPBS) {
Acquire(PSMX, 0xffff)
Store(\_SB_.PCI0.PIB_.PMRD(0x1a), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x1b), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBST, 0x0, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x1c), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x1d), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBST, 0x1, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x1e), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x1f), Local1)
Store(\_SB_.PCI0.PIB_.PMRD(0x4b), Local2)
Multiply(Local1, 0x0100, Local3)
Multiply(Local2, 0x00010000, Local4)
Or(Local3, Local0, Local5)
Or(Local4, Local5, Local6)
Store(Local6, Index(PBST, 0x2, ))
Store(\_SB_.PCI0.PIB_.PMRD(0x20), Local0)
Store(\_SB_.PCI0.PIB_.PMRD(0x21), Local1)
Multiply(Local1, 0x0100, Local2)
Or(Local2, Local0, Local3)
Store(Local3, Index(PBST, 0x3, ))
Release(PSMX)
Return(PBST)
}
Method(_BTP, 1) {
Acquire(PSMX, 0xffff)
Store(\_SB_.PCI0.PIB_.PMRD(0xb2), Local0)
And(Local0, 0x7f, Local0)
\_SB_.PCI0.PIB_.PMWT(0xb2, Local0)
Store(Arg0, Local0)
Store(Local0, Local6)
And(Local0, 0xff, Local1)
\_SB_.PCI0.PIB_.PMWT(0x22, Local1)
Store(Local6, Local0)
And(Local0, 0xff00, Local1)
ShiftRight(Local1, 0x8, Local2)
\_SB_.PCI0.PIB_.PMWT(0x23, Local2)
Store(Local6, Local0)
And(Local0, 0x00ff0000, Local1)
ShiftRight(Local1, 0x10, Local2)
\_SB_.PCI0.PIB_.PMWT(0x4c, Local2)
Store(\_SB_.PCI0.PIB_.PMRD(0xf1), Local3)
If(And(Local3, 0x80, Local3)) {
Store(\_SB_.PCI0.PIB_.PMRD(0xa1), Local4)
\_SB_.PCI0.PIB_.PMWT(0xf1, Local4)
}
Store(\_SB_.PCI0.PIB_.PMRD(0xb2), Local0)
Or(Local0, 0x80, Local0)
\_SB_.PCI0.PIB_.PMWT(0xb2, Local0)
Release(PSMX)
}
Name(_PCL, Package(0x1) {
\_SB_,
})
Name(FBIF, 0x1)
Name(FSTA, 0x1)
Name(GGFG, 0x0)
Name(PBIF, Package(0xd) {
0x1,
0x78,
0x64,
0x1,
0x2580,
0x5,
0x5,
0x1,
0x1,
"???",
"???",
"???",
"???",
})
Name(PBST, Package(0x4) {
0x1,
0x78,
0x64,
0x2580,
})
Name(PSTA, 0x1f)
}
Scope(_TZ_) {
Name(FL1_, 0x0)
Name(FL2_, 0x0)
PowerResource(PFN0, 0, 0) {
Method(_ON_) {
Store(Zero, FL2_)
Store(One, FL1_)
}
Method(_OFF) {
Store(Zero, FL1_)
Store(One, FL2_)
}
Method(_STA) {
Or(FL1_, FL2_, Local7)
Return(Local7)
}
}
PowerResource(PFN1, 0, 0) {
Method(_ON_) {
If(LEqual(FL1_, 0x0)) {
Store(Zero, FL1_)
Store(One, FL2_)
}
}
Method(_OFF) {
Store(Zero, \_TZ_.FL1_)
Store(Zero, \_TZ_.FL2_)
}
Method(_STA) {
Or(FL1_, FL2_, Local7)
Return(Local7)
}
}
Device(FAN0) {
Name(_HID, 0x0b0cd041)
Name(_UID, 0x1)
Name(_PSC, 0x0)
Name(_PR0, Package(0x1) {
PFN0,
})
}
Device(FAN1) {
Name(_HID, 0x0b0cd041)
Name(_UID, 0x2)
Name(_PSC, 0x0)
Method(_INI) {
Store(\_SB_.PCI0.PIB_.PMRD(0xaf), Local0)
And(Local0, 0x4, Local0)
If(LNot(LEqual(Local0, Zero))) {
\_SB_.PCI0.PIB_.PMMW(0x01e8, 0x0)
Store(One, \_TZ_.THRM.TERR)
}
}
Name(_PR0, Package(0x1) {
PFN1,
})
}
ThermalZone(THRM) {
Name(PSVV, 0x4f)
Name(CRTV, 0x5f)
Name(HITP, Package(0x2) {
0x46,
0x5f,
})
Name(LOTP, Package(0x2) {
0x0,
0x3e,
})
Name(AC0H, 0x5f)
Name(AC1H, 0x46)
Name(TERR, 0x0)
Method(_AC0, 0, Serialized) {
Add(AC0H, 0x0111, Local0)
Multiply(Local0, 0xa, Local0)
Return(Local0)
}
Method(_AC1, 0, Serialized) {
Add(AC1H, 0x0111, Local0)
Multiply(Local0, 0xa, Local0)
Return(Local0)
}
Name(_AL0, Package(0x1) {
FAN0,
})
Name(_AL1, Package(0x1) {
FAN1,
})
Method(_PSV) {
Add(PSVV, 0x0111, Local0)
Multiply(Local0, 0xa, Local0)
Return(Local0)
}
Name(_PSL, Package(0x1) {
\_PR_.CPU0,
})
Method(_CRT) {
Add(CRTV, 0x0111, Local0)
Multiply(Local0, 0xa, Local0)
Return(Local0)
}
Method(_SCP, 1) {
}
Method(_TMP) {
Store(\_SB_.PCI0.PIB_.PMRD(0xe7), Local0)
Multiply(Local0, 0xa, Local0)
Add(Local0, 0x0aaa, Local0)
Return(Local0)
}
Name(_TC1, 0x3)
Name(_TC2, 0x1)
Name(_TSP, 0x96)
}
}
}
}
/*
SSDT: Length=1210, Revision=1, Checksum=121,
OEMID=PPmmRe, OEM Table ID=PPm, OEM Revision=0x6040000,
Creator ID=INTL, Creator Revision=0x20030224
*/
/*
APIC: Length=80, Revision=1, Checksum=91,
OEMID=PTLTD, OEM Table ID= APIC, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x0
*/
/*
MCFG: Length=60, Revision=1, Checksum=97,
OEMID=PTLTD, OEM Table ID= MCFG, OEM Revision=0x6040000,
Creator ID= LTP, Creator Revision=0x0
*/
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]