NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/47648: NetBSD 6.1_RC1 ACPI interupt routing problem + other ACPI lossage
The following reply was made to PR kern/47648; it has been noted by GNATS.
From: Reinoud Zandijk <reinoud%NetBSD.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost, reinoud%NetBSD.org@localhost
Subject: Re: kern/47648: NetBSD 6.1_RC1 ACPI interupt routing problem + other
ACPI lossage
Date: Sun, 17 Mar 2013 21:40:14 +0100
--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi Chuck,
On Fri, Mar 15, 2013 at 03:55:03PM +0000, Chuck Silvers wrote:
> what is the specific problem with auixp? what other devices have trouble
> and what's the specific problem with those?
The one device that really got screwed up was auixp; it couldn't communicate
with its codec anymore.
> does this patch make any difference?
> http://mail-index.netbsd.org/port-amd64/2013/02/19/msg001860.html
This patch solves it. The interrupt storm is gone and auixp(9) is working
again!
> if you revert all of those files to the netbsd-6-0-RELEASE tag,
> does that make the problem go away? if so, could you turn on
> MPVERBOSE and INTRDEBUG and send the output from that with ACPI enabled?
> (with the current netbsd-6 versions of those files, not the older versions)
...
> also, could you provide the output of "acpidump -dt"?
It works without reverting these files. I've attachd the dmesg and the
acpidump nevertheless.
With regards,
Reinoud
--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="dmesg.heethoofdje"
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011, 2012
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 6.1_RC1 (GENERIC) #8: Sun Mar 17 21:30:35 CET 2013
reinoud%heethoofdje.13thmonkey.org@localhost:/usr/sources/cvs.netbsd.org/src-6-debug/sys/arch/i386/compile/GENERIC
total memory = 1918 MB
avail memory = 1873 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
To Be Filled By O.E.M. To Be Filled By O.E.M. (To Be Filled By O.E.M.)
mainbus0 (root)
mainbus0: scanning 0x9fc00 to 0x9fff0 for MP signature
mainbus0: scanning 0x9f800 to 0x9fbf0 for MP signature
mainbus0: scanning 0xf0000 to 0xffff0 for MP signature
cpu0 at mainbus0: Intel(R) Pentium(R) 4 CPU 3.20GHz, id 0xf33
cpu0: idle lwp at 0xc2f3dd20, idle sp at 0xda9b9d28
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: vendor 0x1002 product 0x5833 (rev. 0x02)
agp at pchb0 not configured
ppb0 at pci0 dev 1 function 0: vendor 0x1002 product 0x5838 (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
genfb0 at pci1 dev 5 function 0: vendor 0x1002 product 0x5834 (rev. 0x00)
genfb0: framebuffer at 0xc0000000, size 1280x1024, depth 8, stride 1280
wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation)
wsmux1: connecting to wsdisplay0
radeondrm0 at genfb0: ATI Radeon RS300 9100 IGP
radeondrm0: Initialized radeon 1.29.0 20080613
ohci0 at pci0 dev 19 function 0: vendor 0x1002 product 0x4347 (rev. 0x01)
allocated pic pic0 type level pin 10 level 6 to cpu0 slot 10 idt entry 42
ohci0: interrupting at irq 10
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
ohci1 at pci0 dev 19 function 1: vendor 0x1002 product 0x4348 (rev. 0x01)
allocated pic pic0 type level pin 10 level 6 to cpu0 slot 10 idt entry 42
ohci1: interrupting at irq 10
ohci1: OHCI version 1.0, legacy support
usb1 at ohci1: USB revision 1.0
ehci0 at pci0 dev 19 function 2: vendor 0x1002 product 0x4345 (rev. 0x01)
allocated pic pic0 type level pin 10 level 6 to cpu0 slot 10 idt entry 42
ehci0: interrupting at irq 10
ehci0: dropped intr workaround enabled
ehci0: BIOS refuses to give up ownership, using force
ehci0: EHCI version 1.0
ehci0: companion controllers, 3 ports each: ohci0 ohci1
usb2 at ehci0: USB revision 2.0
piixpm0 at pci0 dev 20 function 0: vendor 0x1002 product 0x4353 (rev. 0x18)
piixpm0: interrupting at SMI, polling
iic0 at piixpm0: I2C bus
ixpide0 at pci0 dev 20 function 1: ATI Technologies IXP IDE Controller (rev.
0x00)
ixpide0: bus-master DMA support present
ixpide0: primary channel configured to compatibility mode
allocated pic pic0 type edge pin 14 level 6 to cpu0 slot 14 idt entry 46
ixpide0: primary channel interrupting at irq 14
atabus0 at ixpide0 channel 0
ixpide0: secondary channel configured to compatibility mode
allocated pic pic0 type edge pin 15 level 6 to cpu0 slot 15 idt entry 47
ixpide0: secondary channel interrupting at irq 15
atabus1 at ixpide0 channel 1
pcib0 at pci0 dev 20 function 3: vendor 0x1002 product 0x434c (rev. 0x00)
ppb1 at pci0 dev 20 function 4: vendor 0x1002 product 0x4342 (rev. 0x00)
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled
ex0 at pci2 dev 8 function 0: 3Com 3c920B-EMB-WNM Integrated Fast Ethernet
(rev. 0x40)
allocated pic pic0 type level pin 3 level 6 to cpu0 slot 3 idt entry 35
ex0: interrupting at irq 3
ex0: MAC address 00:11:2f:52:44:7c
rlphy0 at ex0 phy 1: RTL8201L 10/100 media interface, rev. 1
rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fwohci0 at pci2 dev 10 function 0: vendor 0x1106 product 0x3044 (rev. 0x80)
allocated pic pic0 type level pin 3 level 6 to cpu0 slot 3 idt entry 35
fwohci0: interrupting at irq 3
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:e0:18:00:00:8c:83:d8
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
ieee1394if0 at fwohci0: IEEE1394 bus
fwip0 at ieee1394if0: IP over IEEE1394
fwohci0: Initiate bus reset
cbb0 at pci2 dev 12 function 0: vendor 0x1524 product 0x1411 (rev. 0x02)
vendor 0x1524 product 0x0510 (flash memory) at pci2 dev 12 function 1 not
configured
re0 at pci2 dev 14 function 0: RealTek 8169/8110 Gigabit Ethernet (rev. 0x10)
allocated pic pic0 type level pin 5 level 6 to cpu0 slot 5 idt entry 37
re0: interrupting at irq 5
re0: Ethernet address 00:e0:4c:1f:12:ec
re0: using 256 tx descriptors
rgephy0 at re0 phy 7: RTL8169S/8110S/8211 1000BASE-T media interface, rev. 3
rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT,
1000baseT-FDX, auto
cbb0: cacheline 0x10 lattimer 0x40
cbb0: bhlc 0x824010
pci_intr_map: no mapping for pin A (line=ff)
cbb0: couldn't map interrupt
cardslot0 at cbb0
cardbus0 at cardslot0: bus 3
pcmcia0 at cardslot0
auixp0 at pci0 dev 20 function 5: vendor 0x1002 product 0x4341 (rev. 0x00)
allocated pic pic0 type level pin 5 level 7 to cpu0 slot 5 idt entry 37
auixp0: interrupting at irq 5
auixp0: soft resetting aclink
isa0 at pcib0
lpt0 at isa0 port 0x378-0x37b irq 7
allocated pic pic0 type edge pin 7 level 6 to cpu0 slot 7 idt entry 39
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
allocated pic pic0 type edge pin 4 level 8 to cpu0 slot 4 idt entry 36
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
allocated pic pic0 type edge pin 1 level 6 to cpu0 slot 1 idt entry 33
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
attimer0 at isa0 port 0x40-0x43
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0-0xff
npx0: reported by CPUID; using exception 16
attimer0: attached to pcppi0
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
ieee1394if0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me)
ieee1394if0: bus manager 0
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
allocated pic pic0 type level pin 0 level 7 to cpu0 slot 0 idt entry 32
timecounter: Timecounter "TSC" frequency 3192634080 Hz quality 3000
auixp0: ac97: Analog Devices AD1888 codec; headphone, 20 bit DAC, no 3D stereo
auixp0: ac97: ext id 0x3c7<AMAP,LDAC,SDAC,CDAC,SPDIF,DRA,VRA>
auixp0: codec spdif support detected but disabled for now
audio0 at auixp0: full duplex, playback, capture, mmap, independent
atapibus0 at atabus0: 2 targets
uhub0 at usb0: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
uhub1 at usb1: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
uhub2 at usb2: vendor 0x1002 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub2: 6 ports with 6 removable, self powered
cd0 at atapibus0 drive 0: <ASUS CRW-5232A4, , 1.00> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
cd0(ixpide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
umass0 at uhub2 port 2 configuration 1 interface 0
umass0: Sony Sony Digital Book Reader, rev 2.00/2.26, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 3 luns per target
sd0 at scsibus0 target 0 lun 0: <Sony, PRS-T2, 2044> disk removable
sd0: drive offline
sd0: unable to open device, error = 19
sd1 at scsibus0 target 0 lun 1: <Sony, PRS-T2 SD, 2044> disk removable
sd1: drive offline
sd1: unable to open device, error = 19
sd2 at scsibus0 target 0 lun 2: <Sony, PRS-T2 Setup, 2044> disk removable
sd2: drive offline
sd2: unable to open device, error = 19
wd0 at atabus1 drive 0
wd0: <WDC WD5000AACS-00ZUB0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(ixpide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
Kernelized RAIDframe activated
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
uhidev0 at uhub1 port 2 configuration 1 interface 0
uhidev0: Unique ICs Unique ICs mouse, rev 1.00/0.01, addr 2, iclass 3/1
ums0 at uhidev0: 5 buttons and Z dir
wsmouse0 at ums0 mux 0
tap0: Ethernet address f2:0b:a4:12:c9:02
cprng sysctl: WARNING pseudorandom rekeying.
wsdisplay0: screen 1 added (default, vt100 emulation)
wsdisplay0: screen 2 added (default, vt100 emulation)
wsdisplay0: screen 3 added (default, vt100 emulation)
wsdisplay0: screen 4 added (default, vt100 emulation)
--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="acpidump-dt.heethoofdje"
/*
RSD PTR: OEM=ACPIAM, ACPI_Rev=2.0x (2)
XSDT=0x77f40100, length=33, cksum=115
*/
/*
XSDT: Length=60, Revision=1, Checksum=121,
OEMID=A M I, OEM Table ID=OEMXSDT, OEM Revision=0x6000529,
Creator ID=MSFT, Creator Revision=0x97
Entries={ 0x77f40200, 0x77f40300, 0x77f50040 }
*/
/*
FACP: Length=129, Revision=1, Checksum=197,
OEMID=A M I, OEM Table ID=OEMFACP, OEM Revision=0x6000529,
Creator ID=MSFT, Creator Revision=0x97
FACS=0x77f50000, DSDT=0x77f40360
INT_MODEL=APIC
Preferred_PM_Profile=Unspecified (0)
SCI_INT=9
SMI_CMD=0xb0, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x0
PSTATE_CNT=0xe2
PM1a_EVT_BLK=0x800-0x803
PM1a_CNT_BLK=0xf40-0xf41
PM2_CNT_BLK=0x850-0x850
PM_TMR_BLK=0x808-0x80b
GPE0_BLK=0x820-0x827
P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
FLUSH_SIZE=1024, FLUSH_STRIDE=16
DUTY_OFFSET=0, DUTY_WIDTH=8
DAY_ALRM=13, MON_ALRM=0, CENTURY=50
IAPC_BOOT_ARCH={LEGACY_DEVICES,8042}
Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,32BIT_TIMER,HEADLESS}
X_FACS=0x77f50000, X_DSDT=0x77f40360
X_PM1a_EVT_BLK=0x800:0[32] (IO)
X_PM1a_CNT_BLK=0xf40:0[16] (IO)
X_PM_TMR_BLK=0x808:0[32] (IO)
X_GPE0_BLK=0x820:0[32] (IO)
X_GPE1_BLK=0x830:0[32] (IO)
*/
/*
FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
Global_Lock=
Flags=
Version=1
*/
/*
DSDT: Length=11128, Revision=1, Checksum=78,
OEMID=A0032, OEM Table ID=A0032000, OEM Revision=0x0,
Creator ID=INTL, Creator Revision=0x20030522
*/
/*
APIC: Length=92, Revision=1, Checksum=35,
OEMID=A M I, OEM Table ID=OEMAPIC, OEM Revision=0x6000529,
Creator ID=MSFT, Creator Revision=0x97
Local APIC ADDR=0xfee00000
Flags={PC-AT}
Type=Local APIC
ACPI CPU=1
Flags={ENABLED}
APIC ID=0
Type=Local APIC
ACPI CPU=2
Flags={ENABLED}
APIC ID=1
Type=IO APIC
APIC ID=2
INT BASE=0
ADDR=0x00000000fec00000
Type=INT Override
BUS=0
IRQ=0
INTR=2
Flags={Polarity=conforming, Trigger=conforming}
Type=INT Override
BUS=0
IRQ=9
INTR=21
Flags={Polarity=active-lo, Trigger=level}
*/
/*
OEMB: Length=67, Revision=1, Checksum=112,
OEMID=A M I, OEM Table ID=OEMBIOS, OEM Revision=0x6000529,
Creator ID=MSFT, Creator Revision=0x97
Data={
4f 45 4d 42 43 00 00 00 01 70 41 20 4d 20 49 20
4f 45 4d 42 49 4f 53 20 29 05 00 06 4d 53 46 54
97 00 00 00 0d 00 04 00 00 00 78 00 00 f8 ff 00
00 00 00 00 00 00 00 00 00 00 78 00 00 00 88 83
50 f5 77
}
*/
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20110623-32 [23 Jun 2011]
* Copyright (c) 2000 - 2011 Intel Corporation
*
* Disassembly of /tmp/acpidump.00321a, Sun Mar 17 18:58:00 2013
*
* Original Table Header:
* Signature "DSDT"
* Length 0x00002B78 (11128)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
* Checksum 0x4E
* OEM ID "A0032"
* OEM Table ID "A0032000"
* OEM Revision 0x00000000 (0)
* Compiler ID "INTL"
* Compiler Version 0x20030522 (537068834)
*/
DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "A0032", "A0032000",
0x00000000)
{
OperationRegion (BIOS, SystemMemory, 0x77F50064, 0xFF)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
SS1, 1,
SS2, 1,
SS3, 1,
SS4, 1,
Offset (0x01),
IOST, 16,
TOPM, 32,
ROMS, 32,
MG1B, 32,
MG1L, 32,
MG2B, 32,
MG2L, 32,
ACPR, 32
}
Name (PMBS, 0x0800)
Name (PMLN, 0x80)
Name (GPBS, 0x00)
Name (GPLN, 0x00)
Name (SMBS, 0x0A00)
Name (SMBL, 0x00)
Name (SPIO, 0x2E)
Name (APCB, 0xFEC00000)
Name (APCL, 0x1000)
Name (IO1B, 0x0280)
Name (IO1L, 0x10)
Method (RRIO, 4, NotSerialized)
{
Store ("RRIO", Debug)
}
Method (RDMA, 3, NotSerialized)
{
Store ("rDMA", Debug)
}
Name (PICM, 0x00)
Method (_PIC, 1, NotSerialized)
{
If (Arg0)
{
Store (0x00, \_SB.PCI0.SBRG.EINT)
Store (0x00, \_SB.PCI0.SBRG.FINT)
}
Else
{
}
Store (Arg0, PICM)
}
Name (OSVR, Ones)
Method (OSFL, 0, NotSerialized)
{
If (LNotEqual (OSVR, Ones))
{
Return (OSVR)
}
Store (0xAC, DBG8)
Store (0x01, OSVR)
If (MCTH (\_OS, "Microsoft Windows NT"))
{
Store (0x00, OSVR)
}
Return (OSVR)
}
Method (MCTH, 2, NotSerialized)
{
If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
{
Return (Zero)
}
Add (SizeOf (Arg0), 0x01, Local0)
Name (BUF0, Buffer (Local0) {})
Name (BUF1, Buffer (Local0) {})
Store (Arg0, BUF0)
Store (Arg1, BUF1)
While (Local0)
{
Decrement (Local0)
If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
BUF1, Local0))))
{
Return (Zero)
}
}
Return (One)
}
Method (GPRW, 2, NotSerialized)
{
Name (PRWP, Package (0x02)
{
0x00,
0x00
})
Store (Arg0, Index (PRWP, 0x00))
Store (Arg1, Index (PRWP, 0x01))
Store (0x00, Local0)
Or (Local0, ShiftLeft (SS1, 0x01), Local0)
Or (Local0, ShiftLeft (SS2, 0x02), Local0)
Or (Local0, ShiftLeft (SS3, 0x03), Local0)
Or (Local0, ShiftLeft (SS4, 0x04), Local0)
If (And (ShiftLeft (0x01, Arg1), Local0)) {}
Else
{
ShiftRight (Local0, 0x01, Local0)
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
FindSetLeftBit (Local0, Index (PRWP, 0x01))
}
Else
{
FindSetRightBit (Local0, Index (PRWP, 0x01))
}
}
Return (PRWP)
}
Name (WAKP, Package (0x02)
{
0x00,
0x00
})
OperationRegion (DLY0, SystemIO, 0xE1, 0x01)
Field (DLY0, ByteAcc, NoLock, Preserve)
{
DELY, 8
}
OperationRegion (DEB0, SystemIO, 0x1080, 0x02)
Field (DEB0, WordAcc, NoLock, Preserve)
{
DBG8, 16
}
Scope (\_PR)
{
Processor (CPU1, 0x01, 0x00000000, 0x00) {}
Processor (CPU2, 0x02, 0x00000000, 0x00) {}
}
Scope (\_SB)
{
Name (PR00, Package (0x03)
{
Package (0x04)
{
0x0014FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0014FFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x0013FFFF,
0x00,
LNKD,
0x00
}
})
Name (AR00, Package (0x03)
{
Package (0x04)
{
0x0014FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0014FFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x0013FFFF,
0x00,
0x00,
0x13
}
})
Name (PR01, Package (0x02)
{
Package (0x04)
{
0x0005FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0005FFFF,
0x01,
LNKB,
0x00
}
})
Name (AR01, Package (0x02)
{
Package (0x04)
{
0x0005FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0005FFFF,
0x01,
0x00,
0x11
}
})
Name (PR02, Package (0x0F)
{
Package (0x04)
{
0x0008FFFF,
0x00,
LNKC,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x01,
LNKD,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x02,
LNKA,
0x00
},
Package (0x04)
{
0x0008FFFF,
0x03,
LNKB,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0x0009FFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x000AFFFF,
0x00,
LNKC,
0x00
},
Package (0x04)
{
0x000CFFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x000CFFFF,
0x01,
LNKD,
0x00
},
Package (0x04)
{
0x000EFFFF,
0x00,
LNKB,
0x00
},
Package (0x04)
{
0x000EFFFF,
0x01,
LNKA,
0x00
},
Package (0x04)
{
0x000EFFFF,
0x02,
LNKD,
0x00
},
Package (0x04)
{
0x000EFFFF,
0x03,
LNKC,
0x00
}
})
Name (AR02, Package (0x0F)
{
Package (0x04)
{
0x0008FFFF,
0x00,
0x00,
0x12
},
Package (0x04)
{
0x0008FFFF,
0x01,
0x00,
0x13
},
Package (0x04)
{
0x0008FFFF,
0x02,
0x00,
0x10
},
Package (0x04)
{
0x0008FFFF,
0x03,
0x00,
0x11
},
Package (0x04)
{
0x0009FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0009FFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x0009FFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x0009FFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x000AFFFF,
0x00,
0x00,
0x12
},
Package (0x04)
{
0x000CFFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x000CFFFF,
0x01,
0x00,
0x13
},
Package (0x04)
{
0x000EFFFF,
0x00,
0x00,
0x11
},
Package (0x04)
{
0x000EFFFF,
0x01,
0x00,
0x10
},
Package (0x04)
{
0x000EFFFF,
0x02,
0x00,
0x11
},
Package (0x04)
{
0x000EFFFF,
0x03,
0x00,
0x12
}
})
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,10,11,12,14,15}
})
Alias (PRSA, PRSB)
Alias (PRSA, PRSC)
Alias (PRSA, PRSD)
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
Name (_BBN, 0x00)
Name (_UID, 0x00)
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR00)
}
Return (PR00)
}
Device (P0P1)
{
Name (_ADR, 0x00010000)
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR01)
}
Return (PR01)
}
}
Device (SBSM)
{
Name (_ADR, 0x00140000)
OperationRegion (SBIO, PCI_Config, 0x80, 0x30)
Field (SBIO, AnyAcc, NoLock, Preserve)
{
SBGP, 8,
SBP0, 1,
SBP1, 1,
SBP2, 1,
SBP3, 1,
Offset (0x28),
SEC0, 1,
SEC1, 1,
SEC2, 1,
SEC3, 1,
SEC4, 1,
SEC5, 1,
Offset (0x29),
SEO0, 1,
SEO1, 1,
SEO2, 1,
SEO3, 1,
SEO4, 1,
SEO5, 1,
Offset (0x2A),
SEI0, 1,
SEI1, 1,
SEI2, 1,
SEI3, 1,
SEI4, 1,
SEI5, 1
}
}
Device (SBRG)
{
Name (_ADR, 0x00140003)
OperationRegion (SBLP, PCI_Config, 0x44, 0x04)
Field (SBLP, DWordAcc, NoLock, Preserve)
{
LPCD, 32
}
OperationRegion (PINT, SystemIO, 0x0C00, 0x02)
Field (PINT, ByteAcc, NoLock, Preserve)
{
IIDX, 8,
IDAT, 8
}
IndexField (IIDX, IDAT, ByteAcc, NoLock, Preserve)
{
AINT, 8,
BINT, 8,
CINT, 8,
DINT, 8,
EINT, 8,
FINT, 8
}
OperationRegion (CMOS, SystemIO, 0x72, 0x02)
Field (CMOS, ByteAcc, NoLock, Preserve)
{
CIDX, 8,
CDAT, 8
}
IndexField (CIDX, CDAT, ByteAcc, NoLock, Preserve)
{
Offset (0x90),
WAKT, 8,
SLPT, 4,
KBFG, 1,
MSFG, 1
}
OperationRegion (PMBL, SystemIO, 0x0CD6, 0x02)
Field (PMBL, ByteAcc, NoLock, Preserve)
{
PIDX, 8,
PDAT, 8
}
IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
{
Offset (0x0D),
, 6,
PLED, 2,
Offset (0x14),
TP0P, 16,
TP1P, 16,
TP2P, 16,
TP3P, 16,
, 4,
TP3E, 1,
TP2E, 1,
TP1E, 1,
TP0E, 1,
, 4,
TP3S, 1,
TP2S, 1,
TP1S, 1,
TP0S, 1,
Offset (0x22),
PMCB, 16,
Offset (0x36),
GE0T, 1,
GE1T, 1,
GE2T, 1,
GE3T, 1,
GE4T, 1,
GE5T, 1,
GE6T, 1,
GE7T, 1,
Offset (0x39),
GE0S, 1,
GE1S, 1,
GE2S, 1,
GE3S, 1,
GE4S, 1,
GE5S, 1,
GE6S, 1,
GE7S, 1,
Offset (0x50),
C4EN, 1,
Offset (0x60),
SLED, 1
}
Method (_INI, 0, NotSerialized)
{
C4C3 ()
}
Method (C4C3, 0, NotSerialized)
{
}
Scope (\_SB)
{
OperationRegion (GPMC, SystemIO, 0x0C52, 0x01)
Field (GPMC, ByteAcc, NoLock, Preserve)
{
GPM0, 1,
GPM1, 1,
GPM2, 1,
GPM3, 1,
GPM4, 1,
GPM5, 1,
GPM6, 1,
GPM7, 1
}
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
Device (DMAD)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8, )
{4}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0087, // Range Minimum
0x0087, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0089, // Range Minimum
0x0089, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x008F, // Range Minimum
0x008F, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x00, // Alignment
0x20, // Length
)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x00, // Alignment
0x04, // Length
)
IRQNoFlags ()
{0}
})
}
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{8}
})
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x00, // Alignment
0x01, // Length
)
})
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IRQNoFlags ()
{13}
})
}
Device (FDC)
{
Name (_HID, EisaId ("PNP0700"))
Name (_FDE, Package (0x05)
{
0x01,
0x00,
0x02,
0x02,
0x02
})
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x03))
}
Method (_DIS, 0, NotSerialized)
{
DCNT (0x03, 0x00)
}
Method (_CRS, 0, NotSerialized)
{
DCRS (0x03)
Store (IRQM, IRQE)
Store (DMAM, DMAE)
Store (IO11, IO21)
Store (IO12, IO22)
Store (0x06, LEN2)
Add (IO21, 0x07, IO31)
Store (IO31, IO32)
Store (0x01, LEN3)
Return (CRS2)
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x03)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IRQNoFlags ()
{6}
DMA (Compatibility, NotBusMaster, Transfer8, )
{2}
IO (Decode16,
0x03F0, // Range Minimum
0x03F0, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x03F7, // Range Minimum
0x03F7, // Range Maximum
0x01, // Alignment
0x01, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1,2,3}
IO (Decode16,
0x03F0, // Range Minimum
0x03F0, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x03F7, // Range Minimum
0x03F7, // Range Maximum
0x01, // Alignment
0x01, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{1,2,3}
IO (Decode16,
0x0370, // Range Minimum
0x0370, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x0377, // Range Minimum
0x0377, // Range Maximum
0x01, // Alignment
0x01, // Length
)
}
EndDependentFn ()
})
}
Device (LPTE)
{
Method (_HID, 0, NotSerialized)
{
If (LPTM (0x02))
{
Return (0x0104D041)
}
Else
{
Return (0x0004D041)
}
}
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x02))
}
Method (_DIS, 0, NotSerialized)
{
DCNT (0x02, 0x00)
}
Method (_CRS, 0, NotSerialized)
{
DCRS (0x02)
If (LPTM (0x02))
{
Store (IRQM, IRQE)
Store (DMAM, DMAE)
Store (IO11, IO21)
Store (IO12, IO22)
Store (LEN1, LEN2)
Add (IO21, 0x0400, IO31)
Store (IO31, IO32)
Store (LEN2, LEN3)
Return (CRS2)
}
Else
{
Return (CRS1)
}
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x02)
}
Method (_PRS, 0, NotSerialized)
{
If (LPTM (0x02))
{
Return (EPPR)
}
Else
{
Return (LPPR)
}
}
Name (LPPR, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
IRQNoFlags ()
{}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
}
EndDependentFn ()
})
Name (EPPR, ResourceTemplate ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{1,2,3}
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{1,2,3}
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{1,2,3}
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
}
EndDependentFn ()
})
}
Device (SIOR)
{
Name (_HID, EisaId ("PNP0C02"))
Method (_UID, 0, NotSerialized)
{
Return (SPIO)
}
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y00)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y01)
IO (Decode16,
0x0260, // Range Minimum
0x0260, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0310, // Range Minimum
0x0310, // Range Maximum
0x01, // Alignment
0x02, // Length
)
})
Method (_CRS, 0, NotSerialized)
{
If (LAnd (LNotEqual (SPIO, 0x03F0), LGreater (SPIO,
0xF0)))
{
CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y00._MIN, GP10)
CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y00._MAX, GP11)
CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y00._LEN, GPL1)
Store (SPIO, GP10)
Store (SPIO, GP11)
Store (0x02, GPL1)
}
If (IO1B)
{
CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y01._MIN, GP20)
CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y01._MAX, GP21)
CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y01._LEN, GPL2)
Store (IO1B, GP20)
Store (IO1B, GP21)
Store (IO1L, GPL2)
}
Return (CRS)
}
}
Name (DCAT, Package (0x15)
{
0x01,
0x02,
0x03,
0x00,
0xFF,
0x08,
0xFF,
0xFF,
0x09,
0xFF,
0x05,
0x04,
0xFF,
0xFF,
0xFF,
0xFF,
0x07,
0xFF,
0xFF,
0xFF,
0xFF
})
Name (IKEY, Package (0x02)
{
Package (0x04)
{
0x87,
0x01,
0x55,
0x55
},
Package (0x04)
{
0x87,
0x01,
0x55,
0xAA
}
})
Name (UR1F, 0x01)
Method (ENFG, 1, NotSerialized)
{
Store (0x87, INDX)
Store (0x01, INDX)
Store (0x55, INDX)
If (LEqual (SPIO, 0x2E))
{
Store (0x55, INDX)
}
Else
{
Store (0xAA, INDX)
}
Store (Arg0, LDN)
}
Method (EXFG, 0, NotSerialized)
{
Store (0x02, INDX)
Store (0x02, DATA)
}
Method (LPTM, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
And (OPT0, 0x02, Local0)
EXFG ()
Return (Local0)
}
Method (UHID, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
ENFG (CGLD (Arg0))
And (OPT0, 0x70, Local0)
EXFG ()
If (Local0)
{
Return (0x1005D041)
}
}
Return (0x0105D041)
}
Method (SIOS, 1, NotSerialized)
{
Store ("SIOS", Debug)
Store (0x00, GP10)
If (LLess (Arg0, 0x05))
{
ENFG (0x04)
Store (0x01, ACTR)
EXFG ()
ENFG (0x07)
And (OPF9, 0xFE, OPF9)
And (OPC0, 0xFE, OPC0)
And (OP29, 0xEF, OP29)
EXFG ()
}
Else
{
ENFG (0x07)
Or (OPF9, 0x01, OPF9)
EXFG ()
}
}
Method (SIOW, 1, NotSerialized)
{
Store (0x01, GP10)
Store ("SIOW", Debug)
ENFG (0x04)
Store (0x00, OPT0)
Store (0xFF, OPT1)
EXFG ()
ENFG (0x07)
Or (OPC0, 0x01, OPC0)
EXFG ()
ENFG (0x05)
Or (ACTR, 0x01, ACTR)
EXFG ()
ENFG (0x06)
Or (ACTR, 0x01, ACTR)
EXFG ()
}
Method (SIOH, 0, NotSerialized)
{
}
OperationRegion (IOID, SystemIO, SPIO, 0x02)
Field (IOID, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x07),
LDN, 8,
Offset (0x29),
OP29, 8,
Offset (0x30),
ACTR, 8,
Offset (0x60),
IOAH, 8,
IOAL, 8,
IOH2, 8,
IOL2, 8,
Offset (0x70),
INTR, 8,
Offset (0x74),
DMCH, 8,
Offset (0xC0),
OPC0, 8,
OPC1, 8,
OPC2, 8,
OPC3, 8,
Offset (0xF0),
OPT0, 8,
OPT1, 8,
OPT2, 8,
OPT3, 8,
OPT4, 8,
Offset (0xF8),
OPF8, 8,
OPF9, 8,
OPFA, 8,
OPFB, 8
}
Method (CGLD, 1, NotSerialized)
{
Return (DerefOf (Index (DCAT, Arg0)))
}
Method (DSTA, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
Store (ACTR, Local0)
EXFG ()
If (LEqual (Local0, 0xFF))
{
Return (0x00)
}
And (Local0, 0x01, Local0)
Or (IOST, ShiftLeft (Local0, Arg0), IOST)
If (Local0)
{
Return (0x0F)
}
Else
{
If (And (ShiftLeft (0x01, Arg0), IOST))
{
Return (0x0D)
}
Else
{
Return (0x00)
}
}
}
Method (DCNT, 2, NotSerialized)
{
ENFG (CGLD (Arg0))
ShiftLeft (IOAH, 0x08, Local1)
Or (IOAL, Local1, Local1)
RRIO (Arg0, Arg1, Local1, 0x08)
If (LAnd (LLess (DMCH, 0x04), LNotEqual (And (DMCH, 0x03,
Local1), 0x00)))
{
RDMA (Arg0, Arg1, Increment (Local1))
}
Store (Arg1, ACTR)
EXFG ()
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags (_Y02)
{}
DMA (Compatibility, NotBusMaster, Transfer8, _Y03)
{}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y04)
})
CreateWordField (CRS1, \_SB.PCI0.SBRG._Y02._INT, IRQM)
CreateByteField (CRS1, \_SB.PCI0.SBRG._Y03._DMA, DMAM)
CreateWordField (CRS1, \_SB.PCI0.SBRG._Y04._MIN, IO11)
CreateWordField (CRS1, \_SB.PCI0.SBRG._Y04._MAX, IO12)
CreateByteField (CRS1, \_SB.PCI0.SBRG._Y04._LEN, LEN1)
Name (CRS2, ResourceTemplate ()
{
IRQNoFlags (_Y05)
{6}
DMA (Compatibility, NotBusMaster, Transfer8, _Y06)
{2}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y07)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y08)
})
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y05._INT, IRQE)
CreateByteField (CRS2, \_SB.PCI0.SBRG._Y06._DMA, DMAE)
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y07._MIN, IO21)
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y07._MAX, IO22)
CreateByteField (CRS2, \_SB.PCI0.SBRG._Y07._LEN, LEN2)
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y08._MIN, IO31)
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y08._MAX, IO32)
CreateByteField (CRS2, \_SB.PCI0.SBRG._Y08._LEN, LEN3)
Method (DCRS, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
ShiftLeft (IOAH, 0x08, IO11)
Or (IOAL, IO11, IO11)
Store (IO11, IO12)
Subtract (FindSetRightBit (IO11), 0x01, Local0)
ShiftLeft (0x01, Local0, LEN1)
If (INTR)
{
ShiftLeft (0x01, INTR, IRQM)
}
Else
{
Store (0x00, IRQM)
}
And (DMCH, 0x03, Local1)
If (Or (LGreater (DMCH, 0x03), LEqual (DMCH, 0xFF)))
{
Store (0x00, DMAM)
}
Else
{
ShiftLeft (0x01, Local1, DMAM)
}
EXFG ()
Return (CRS1)
}
Name (IOSC, Package (0x1E)
{
0x0F40,
0x0E80,
0x07BC,
0x0778,
0x0678,
0x0604,
0x0530,
0x03F8,
0x03F0,
0x03E8,
0x03BC,
0x0388,
0x0378,
0x0370,
0x0338,
0x0330,
0x0320,
0x0310,
0x0300,
0x02F8,
0x02E8,
0x0280,
0x0278,
0x0260,
0x0240,
0x0238,
0x0230,
0x0228,
0x0220,
0x0200
})
Name (REGV, Package (0x1E)
{
0x02000000,
0x01000000,
0x20,
0x02,
0x08,
0x00800000,
0x00400000,
0x40,
0x04000000,
0x2000,
0x10,
0x80000000,
0x01,
0x08000000,
0x1000,
0x00200000,
0x00100000,
0x00080000,
0x00040000,
0x80,
0x0800,
0x00020000,
0x04,
0x00010000,
0x8000,
0x0400,
0x4000,
0x0200,
0x0100,
0x10000000
})
Method (DSRS, 2, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRQM)
CreateByteField (Arg0, 0x04, DMAM)
CreateWordField (Arg0, 0x08, IO11)
ENFG (CGLD (Arg1))
Store (Match (IOSC, MLE, IO11, MTR, 0x00, 0x00), Local0)
Or (\_SB.PCI0.SBRG.LPCD, DerefOf (Index (REGV, Local0)),
\_SB.PCI0.SBRG.LPCD)
And (IO11, 0xFF, IOAL)
ShiftRight (IO11, 0x08, IOAH)
If (IRQM)
{
FindSetRightBit (IRQM, Local0)
Subtract (Local0, 0x01, INTR)
}
Else
{
Store (0x00, INTR)
}
If (DMAM)
{
FindSetRightBit (DMAM, Local0)
Subtract (Local0, 0x01, DMCH)
}
Else
{
Store (0x04, DMCH)
}
EXFG ()
DCNT (Arg1, 0x01)
}
OperationRegion (GPIO, SystemIO, IO1B, 0x04)
Field (GPIO, ByteAcc, NoLock, Preserve)
{
GP10, 1,
GP11, 1,
GP12, 1,
GP13, 1,
GO14, 1,
GO15, 1,
GO16, 1,
GO17, 1,
GP20, 1,
GP21, 1,
GP22, 1,
GP23, 1,
GO24, 1,
GO25, 1,
GO26, 1,
GO27, 1,
GP30, 1,
GP31, 1,
GP32, 1,
GP33, 1,
GO34, 1,
GO35, 1,
GO36, 1,
GO37, 1,
GP40, 1,
GP41, 1,
GP42, 1,
GP43, 1,
GO44, 1,
GO45, 1,
GO46, 1,
GO47, 1
}
Device (RMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x10)
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0022, // Range Minimum
0x0022, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x0044, // Range Minimum
0x0044, // Range Maximum
0x00, // Alignment
0x1C, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x00, // Alignment
0x0E, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0084, // Range Minimum
0x0084, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0088, // Range Minimum
0x0088, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x008C, // Range Minimum
0x008C, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x00A2, // Range Minimum
0x00A2, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x00E0, // Range Minimum
0x00E0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x040B, // Range Minimum
0x040B, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x04D6, // Range Minimum
0x04D6, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0F40, // Range Minimum
0x0F40, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x0C00, // Range Minimum
0x0C00, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x0C14, // Range Minimum
0x0C14, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0C50, // Range Minimum
0x0C50, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0C6C, // Range Minimum
0x0C6C, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0C6F, // Range Minimum
0x0C6F, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0CD6, // Range Minimum
0x0CD6, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y0A)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y0B)
Memory32Fixed (ReadOnly,
0xFFB00000, // Address Base
0x00500000, // Address Length
)
DWordMemory (ResourceProducer, PosDecode, MinFixed,
MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y09, AddressRangeMemory, TypeStatic)
})
CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._MIN, MIN7)
CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._MAX, MAX7)
CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._LEN, LEN7)
Method (_CRS, 0, NotSerialized)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._MIN,
GP00)
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._MAX,
GP01)
CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._LEN,
GP0L)
Store (PMBS, GP00)
Store (PMBS, GP01)
Store (PMLN, GP0L)
If (GPBS)
{
CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0B._MIN, GP20)
CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0B._MAX, GP21)
CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0B._LEN, GP2L)
Store (GPBS, GP20)
Store (GPBS, GP21)
Store (GPLN, GP2L)
}
Store (\_SB.PCI0.BAR1, MIN7)
Store (0x1000, LEN7)
Add (BAR1, 0x0FFF, MAX7)
Return (CRS)
}
}
Device (OMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x00)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y0C)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y0D)
})
Method (_CRS, 0, NotSerialized)
{
If (APCB)
{
CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y0C._LEN, ML01)
CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y0C._BAS, MB01)
CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y0D._LEN, ML02)
CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y0D._BAS, MB02)
Store (APCB, MB01)
Store (APCL, ML01)
Store (0xFEE00000, MB02)
Store (0x1000, ML02)
}
Return (CRS)
}
}
Device (\_SB.RMEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x01)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x000A0000, // Address Length
)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y0E)
Memory32Fixed (ReadOnly,
0x000E0000, // Address Base
0x00020000, // Address Length
_Y0F)
Memory32Fixed (ReadWrite,
0x00100000, // Address Base
0x00000000, // Address Length
_Y10)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y11)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRS, \_SB.RMEM._Y0E._BAS, BAS1)
CreateDWordField (CRS, \_SB.RMEM._Y0E._LEN, LEN1)
CreateDWordField (CRS, \_SB.RMEM._Y0F._BAS, BAS2)
CreateDWordField (CRS, \_SB.RMEM._Y0F._LEN, LEN2)
CreateDWordField (CRS, \_SB.RMEM._Y10._LEN, LEN3)
CreateDWordField (CRS, \_SB.RMEM._Y11._BAS, BAS4)
CreateDWordField (CRS, \_SB.RMEM._Y11._LEN, LEN4)
If (OSFL ()) {}
Else
{
If (MG1B)
{
If (LGreater (MG1B, 0x000C0000))
{
Store (0x000C0000, BAS1)
Subtract (MG1B, BAS1, LEN1)
}
}
Else
{
Store (0x000C0000, BAS1)
Store (0x00020000, LEN1)
}
If (Add (MG1B, MG1L, Local0))
{
Store (Local0, BAS2)
Subtract (0x00100000, BAS2, LEN2)
}
}
Subtract (MG2B, 0x00100000, LEN3)
Add (MG2B, MG2L, BAS4)
Subtract (0x00, BAS4, LEN4)
Return (CRS)
}
}
Device (UAR1)
{
Name (_UID, 0x01)
Name (_HID, EisaId ("PNP0501"))
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x00))
}
Method (_DIS, 0, NotSerialized)
{
DCNT (0x00, 0x00)
}
Method (_CRS, 0, NotSerialized)
{
Return (DCRS (0x00))
}
Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x00)
}
Method (_PRS, 0, NotSerialized)
{
Return (CMPR)
}
Name (CMPR, ResourceTemplate ()
{
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
StartDependentFnNoPri ()
{
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
}
EndDependentFn ()
})
}
Method (UAR1._PRW, 0, NotSerialized)
{
Return (GPRW (0x06, 0x03))
}
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F03"))
Name (_CID, EisaId ("PNP0F13"))
Method (_STA, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0C, Local0)
If (And (IOST, Local0))
{
Return (0x0F)
}
Return (0x00)
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags ()
{12}
})
Name (CRS2, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IRQNoFlags ()
{12}
})
Method (_CRS, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0A, Local0)
If (And (IOST, Local0))
{
Return (CRS1)
}
Else
{
Return (CRS2)
}
}
}
Method (PS2M._PRW, 0, NotSerialized)
{
Return (GPRW (0x01, 0x04))
}
Device (PS2K)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CID, EisaId ("PNP030B"))
Method (_STA, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0A, Local0)
If (And (IOST, Local0))
{
Return (0x0F)
}
Return (0x00)
}
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
}
Method (PS2K._PRW, 0, NotSerialized)
{
Return (GPRW (0x03, 0x04))
}
}
Device (IDEC)
{
Name (_ADR, 0x00140001)
Name (UDMT, Package (0x08)
{
0x78,
0x5A,
0x3C,
0x2D,
0x1E,
0x14,
0x00,
0x00
})
Name (PIOT, Package (0x06)
{
0x0258,
0x0186,
0x010E,
0xB4,
0x78,
0x00
})
Name (PITR, Package (0x06)
{
0x5D,
0x47,
0x34,
0x22,
0x20,
0x5D
})
Name (MDMT, Package (0x04)
{
0x01E0,
0x96,
0x78,
0x00
})
Name (MDTR, Package (0x04)
{
0x77,
0x21,
0x20,
0xFF
})
OperationRegion (IDE, PCI_Config, 0x40, 0x20)
Field (IDE, AnyAcc, NoLock, Preserve)
{
PPIT, 16,
SPIT, 16,
PMDT, 16,
SMDT, 16,
PPIC, 8,
SPIC, 8,
PPIM, 8,
SPIM, 8,
Offset (0x14),
PUDC, 2,
SUDC, 2,
Offset (0x16),
PUDM, 8,
SUDM, 8
}
Method (GETT, 1, NotSerialized)
{
Store (And (Arg0, 0x0F), Local0)
Store (ShiftRight (Arg0, 0x04), Local1)
Return (Multiply (0x1E, Add (Add (Local0, 0x01), Add
(Local1,
0x01))))
}
Method (GTM, 1, NotSerialized)
{
CreateByteField (Arg0, 0x00, PIT1)
CreateByteField (Arg0, 0x01, PIT0)
CreateByteField (Arg0, 0x02, MDT1)
CreateByteField (Arg0, 0x03, MDT0)
CreateByteField (Arg0, 0x04, PICX)
CreateByteField (Arg0, 0x05, UDCX)
CreateByteField (Arg0, 0x06, UDMX)
Name (BUF, Buffer (0x14)
{
/* 0000 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF,
/* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
})
CreateDWordField (BUF, 0x00, PIO0)
CreateDWordField (BUF, 0x04, DMA0)
CreateDWordField (BUF, 0x08, PIO1)
CreateDWordField (BUF, 0x0C, DMA1)
CreateDWordField (BUF, 0x10, FLAG)
If (And (PICX, 0x01))
{
Return (BUF)
}
Store (GETT (PIT0), PIO0)
Store (GETT (PIT1), PIO1)
If (And (UDCX, 0x01))
{
Or (FLAG, 0x01, FLAG)
Store (DerefOf (Index (^UDMT, And (UDMX, 0x0F))), DMA0)
}
Else
{
Store (GETT (MDT0), DMA0)
}
If (And (UDCX, 0x02))
{
Or (FLAG, 0x04, FLAG)
Store (DerefOf (Index (^UDMT, ShiftRight (UDMX,
0x04))), DMA1)
}
Else
{
Store (GETT (MDT1), DMA1)
}
Or (FLAG, 0x1A, FLAG)
Return (BUF)
}
Method (STM, 3, NotSerialized)
{
CreateDWordField (Arg0, 0x00, PIO0)
CreateDWordField (Arg0, 0x04, DMA0)
CreateDWordField (Arg0, 0x08, PIO1)
CreateDWordField (Arg0, 0x0C, DMA1)
CreateDWordField (Arg0, 0x10, FLAG)
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00
})
CreateByteField (BUF, 0x00, PIT1)
CreateByteField (BUF, 0x01, PIT0)
CreateByteField (BUF, 0x02, MDT1)
CreateByteField (BUF, 0x03, MDT0)
CreateByteField (BUF, 0x04, PIMX)
CreateByteField (BUF, 0x05, UDCX)
CreateByteField (BUF, 0x06, UDMX)
Store (Match (^PIOT, MLE, PIO0, MTR, 0x00, 0x00), Local0)
Divide (Local0, 0x05, Local0)
Store (Match (^PIOT, MLE, PIO1, MTR, 0x00, 0x00), Local1)
Divide (Local1, 0x05, Local1)
Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX)
Store (DerefOf (Index (^PITR, Local0)), PIT0)
Store (DerefOf (Index (^PITR, Local1)), PIT1)
If (And (FLAG, 0x01))
{
Store (Match (^UDMT, MLE, DMA0, MTR, 0x00, 0x00),
Local0)
Divide (Local0, 0x06, Local0)
Or (UDMX, Local0, UDMX)
Or (UDCX, 0x01, UDCX)
}
Else
{
If (LNotEqual (DMA0, 0xFFFFFFFF))
{
Store (Match (^MDMT, MLE, DMA0, MTR, 0x00, 0x00),
Local0)
Store (DerefOf (Index (^MDTR, Local0)), MDT0)
}
}
If (And (FLAG, 0x04))
{
Store (Match (^UDMT, MLE, DMA1, MTR, 0x00, 0x00),
Local0)
Divide (Local0, 0x06, Local0)
Or (UDMX, ShiftLeft (Local0, 0x04), UDMX)
Or (UDCX, 0x02, UDCX)
}
Else
{
If (LNotEqual (DMA1, 0xFFFFFFFF))
{
Store (Match (^MDMT, MLE, DMA1, MTR, 0x00, 0x00),
Local0)
Store (DerefOf (Index (^MDTR, Local0)), MDT1)
}
}
Return (BUF)
}
Method (GTF, 2, NotSerialized)
{
CreateByteField (Arg1, 0x00, MDT1)
CreateByteField (Arg1, 0x01, MDT0)
CreateByteField (Arg1, 0x02, PIMX)
CreateByteField (Arg1, 0x03, UDCX)
CreateByteField (Arg1, 0x04, UDMX)
If (LEqual (Arg0, 0xA0))
{
Store (And (PIMX, 0x0F), Local0)
Store (MDT0, Local1)
And (UDCX, 0x01, Local2)
Store (And (UDMX, 0x0F), Local3)
}
Else
{
Store (ShiftRight (PIMX, 0x04), Local0)
Store (MDT1, Local1)
And (UDCX, 0x02, Local2)
Store (ShiftRight (UDMX, 0x04), Local3)
}
Name (BUF, Buffer (0x0E)
{
/* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF,
0xEF, 0x03,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF
})
CreateByteField (BUF, 0x01, PMOD)
CreateByteField (BUF, 0x08, DMOD)
CreateByteField (BUF, 0x05, CMDA)
CreateByteField (BUF, 0x0C, CMDB)
Store (Arg0, CMDA)
Store (Arg0, CMDB)
Or (Local0, 0x08, PMOD)
If (Local2)
{
Or (Local3, 0x40, DMOD)
}
Else
{
Store (Match (^MDMT, MLE, GETT (Local1), MTR, 0x00,
0x00), Local4)
If (LLess (Local4, 0x03))
{
Or (0x20, Local4, DMOD)
}
}
Return (BUF)
}
Device (PRID)
{
Name (_ADR, 0x00)
Method (_GTM, 0, NotSerialized)
{
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIC)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (^^PPIT, VPIT)
Store (^^PMDT, VMDT)
Store (^^PPIC, VPIC)
Store (^^PUDC, VUDC)
Store (^^PUDM, VUDM)
Return (GTM (BUF))
}
Method (_STM, 3, NotSerialized)
{
CreateDWordField (Arg0, 0x10, FLAG)
If (And (FLAG, 0x01))
{
And (^^PUDC, 0x02, ^^PUDC)
}
If (And (FLAG, 0x04))
{
And (^^PUDC, 0x01, ^^PUDC)
}
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIM)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (STM (Arg0, Arg1, Arg2), BUF)
Store (VPIT, ^^PPIT)
Store (VMDT, ^^PMDT)
Store (VPIM, ^^PPIM)
Store (VUDC, ^^PUDC)
Store (VUDM, ^^PUDM)
}
Device (P_D0)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (^^^PMDT, VMDT)
Store (^^^PPIM, VPIM)
Store (^^^PUDC, VUDC)
Store (^^^PUDM, VUDM)
Return (GTF (0xA0, BUF))
}
}
Device (P_D1)
{
Name (_ADR, 0x01)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (^^^PMDT, VMDT)
Store (^^^PPIM, VPIM)
Store (^^^PUDC, VUDC)
Store (^^^PUDM, VUDM)
Return (GTF (0xB0, BUF))
}
}
}
Device (SECD)
{
Name (_ADR, 0x01)
Method (_GTM, 0, NotSerialized)
{
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIC)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (^^SPIT, VPIT)
Store (^^SMDT, VMDT)
Store (^^SPIC, VPIC)
Store (^^SUDC, VUDC)
Store (^^SUDM, VUDM)
Return (GTM (BUF))
}
Method (_STM, 3, NotSerialized)
{
CreateDWordField (Arg0, 0x10, DFLG)
If (And (DFLG, 0x01))
{
Store (0x01, \_SB.PCI0.SBRG.TP2E)
}
CreateDWordField (Arg0, 0x10, FLAG)
If (And (FLAG, 0x01))
{
And (^^SUDC, 0x02, ^^SUDC)
}
If (And (FLAG, 0x04))
{
And (^^SUDC, 0x01, ^^SUDC)
}
Name (BUF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VPIT)
CreateWordField (BUF, 0x02, VMDT)
CreateByteField (BUF, 0x04, VPIM)
CreateByteField (BUF, 0x05, VUDC)
CreateByteField (BUF, 0x06, VUDM)
Store (STM (Arg0, Arg1, Arg2), BUF)
Store (VPIT, ^^SPIT)
Store (VMDT, ^^SMDT)
Store (VPIM, ^^SPIM)
Store (VUDC, ^^SUDC)
Store (VUDM, ^^SUDM)
}
Device (S_D0)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (^^^SMDT, VMDT)
Store (^^^SPIM, VPIM)
Store (^^^SUDC, VUDC)
Store (^^^SUDM, VUDM)
Return (GTF (0xA0, BUF))
}
}
Device (S_D1)
{
Name (_ADR, 0x01)
Method (_GTF, 0, NotSerialized)
{
Name (BUF, Buffer (0x05)
{
0x00, 0x00, 0x00, 0x00, 0x00
})
CreateWordField (BUF, 0x00, VMDT)
CreateByteField (BUF, 0x02, VPIM)
CreateByteField (BUF, 0x03, VUDC)
CreateByteField (BUF, 0x04, VUDM)
Store (^^^SMDT, VMDT)
Store (^^^SPIM, VPIM)
Store (^^^SUDC, VUDC)
Store (^^^SUDM, VUDM)
Return (GTF (0xB0, BUF))
}
}
}
}
Device (AC97)
{
Name (_ADR, 0x00140005)
}
Device (MC97)
{
Name (_ADR, 0x00140006)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0C, 0x03))
}
}
Device (USB1)
{
Name (_ADR, 0x00130000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0B, 0x04))
}
}
Device (USB2)
{
Name (_ADR, 0x00130001)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0B, 0x04))
}
}
Device (EUSB)
{
Name (_ADR, 0x00130002)
}
Device (P0P2)
{
Name (_ADR, 0x00140004)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x04, 0x03))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR02)
}
Return (PR02)
}
Device (SLAN)
{
Name (_ADR, 0x00080000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x17, 0x03))
}
}
Device (P2P3)
{
Name (_ADR, 0x000C0000)
}
}
}
Scope (\_GPE)
{
Method (_L06, 0, NotSerialized)
{
\_SB.PCI0.SBRG.SIOH ()
}
Method (_L01, 0, NotSerialized)
{
\_SB.PCI0.SBRG.SIOH ()
}
Method (_L03, 0, NotSerialized)
{
\_SB.PCI0.SBRG.SIOH ()
}
Method (_L0C, 0, NotSerialized)
{
Notify (\_SB.PCI0.MC97, 0x02)
}
Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB1, 0x02)
Notify (\_SB.PCI0.USB2, 0x02)
}
Method (_L04, 0, NotSerialized)
{
Notify (\_SB.PCI0.P0P2, 0x02)
Notify (\_SB.PWRB, 0x02)
}
Method (_L17, 0, NotSerialized)
{
Notify (\_SB.PCI0.P0P2.SLAN, 0x02)
}
}
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Name (_UID, 0xAA)
Name (_STA, 0x0B)
}
}
Scope (\_SB)
{
OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
Field (PIRQ, ByteAcc, NoLock, Preserve)
{
PIDX, 8,
PDAT, 8
}
IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
PIRS, 8
}
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y12)
{15}
})
Name (IPRA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Name (IPRB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Name (IPRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Name (IPRD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{5,10,11}
})
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x01)
Method (_STA, 0, NotSerialized)
{
If (PIRA)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSA)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
ShiftLeft (0x01, PIRA, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
If (PIRB)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSB)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRB)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
ShiftLeft (0x01, PIRB, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRB)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
If (PIRC)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSC)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRC)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
ShiftLeft (0x01, PIRC, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (PIRD)
{
Return (0x0B)
}
Else
{
Return (0x09)
}
}
Method (_PRS, 0, NotSerialized)
{
Return (PRSD)
}
Method (_DIS, 0, NotSerialized)
{
Store (0x00, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
CreateWordField (BUFA, \_SB._Y12._INT, IRQX)
ShiftLeft (0x01, PIRD, IRQX)
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Decrement (Local0)
Store (Local0, PIRD)
}
}
}
Scope (\_SB)
{
Scope (PCI0)
{
OperationRegion (BBAR, PCI_Config, 0x14, 0x04)
Field (BBAR, DWordAcc, NoLock, Preserve)
{
BAR1, 32
}
Name (CRS, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
,, )
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode,
EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode,
EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
,, , TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
Cacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y13, AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y14, AddressRangeMemory, TypeStatic)
})
CreateDWordField (CRS, \_SB.PCI0._Y13._MIN, MIN5)
CreateDWordField (CRS, \_SB.PCI0._Y13._MAX, MAX5)
CreateDWordField (CRS, \_SB.PCI0._Y13._LEN, LEN5)
CreateDWordField (CRS, \_SB.PCI0._Y14._MIN, MIN6)
CreateDWordField (CRS, \_SB.PCI0._Y14._MAX, MAX6)
CreateDWordField (CRS, \_SB.PCI0._Y14._LEN, LEN6)
Method (_CRS, 0, NotSerialized)
{
Store (MG1B, MIN5)
Store (MG1L, LEN5)
Store (MG1L, Local0)
If (Local0)
{
Add (MIN5, Decrement (Local0), MAX5)
}
Store (MG2B, MIN6)
Store (MG2L, LEN6)
Store (MG2L, Local0)
Add (MIN6, Decrement (Local0), MAX6)
Return (CRS)
}
}
}
Method (_PTS, 1, NotSerialized)
{
Store (Arg0, DBG8)
And (Arg0, 0x0F, \_SB.PCI0.SBRG.SLPT)
Store (0x0804, \_SB.PCI0.SBRG.PMCB)
Or (\_SB.PCI0.SBRG.LPCD, 0x02000000, \_SB.PCI0.SBRG.LPCD)
Store (0x0F40, \_SB.PCI0.SBRG.TP0P)
Store (0x01, \_SB.PCI0.SBRG.TP0S)
Store (0x01, \_SB.PCI0.SBRG.TP0E)
PTS (Arg0)
Store (0x00, Index (WAKP, 0x00))
Store (0x00, Index (WAKP, 0x01))
}
Method (_WAK, 1, NotSerialized)
{
ShiftLeft (Arg0, 0x04, DBG8)
WAK (Arg0)
If (LEqual (\_SB.PCI0.SBRG.WAKT, 0x03)) {}
Else
{
Notify (\_SB.PWRB, 0x02)
}
If (DerefOf (Index (WAKP, 0x00)))
{
Store (0x00, Index (WAKP, 0x01))
}
Else
{
Store (Arg0, Index (WAKP, 0x01))
}
Return (WAKP)
}
Name (\_S0, Package (0x04)
{
0x00,
0x00,
0x00,
0x00
})
Name (\_S1, Package (0x04)
{
0x01,
0x00,
0x00,
0x00
})
Name (\_S3, Package (0x04)
{
0x03,
0x00,
0x00,
0x00
})
Name (\_S4, Package (0x04)
{
0x04,
0x00,
0x00,
0x00
})
Name (\_S5, Package (0x04)
{
0x05,
0x00,
0x00,
0x00
})
Method (PTS, 1, NotSerialized)
{
If (Arg0)
{
\_SB.PCI0.SBRG.SIOS (Arg0)
}
}
Method (WAK, 1, NotSerialized)
{
\_SB.PCI0.SBRG.SIOW (Arg0)
}
}
--d6Gm4EdcadzBjdND--
Home |
Main Index |
Thread Index |
Old Index