Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Aug 2004 12:44:45 +0800
From:      Jiawei Ye <leafy7382@gmail.com>
To:        freebsd-current@freebsd.org
Subject:   Latest ACPI changes causing Interrupt Storm
Message-ID:  <c21e92e204081121446179c82b@mail.gmail.com>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
kernel 30 mins old. dmesg -a, please also note the failing fdc, this
has been broken for months.

Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 5.2-CURRENT #2: Thu Aug 12 12:19:04 CST 2004
    leafy@chihiro.leafy.idv.tw:/usr/obj/usr/src/sys/CHIHIRO
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1794.56-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf12  Stepping = 2
  Features=0x3febf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
real memory  = 268369920 (255 MB)
avail memory = 252952576 (241 MB)
netsmb_dev: loaded
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <AMIINT AMIINT10> on motherboard
acpi0: [GIANT-LOCKED]
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
cpu0: <ACPI CPU (3 Cx states)> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKD resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKD
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKH resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKH
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKB
acpi link set: \\_SB_.LNKB resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKB
agp0: <Intel 82850 host to AGP bridge> mem 0xe8000000-0xebffffff at
device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 11 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 10 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 5 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 9 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 12 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 7 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 6 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 4 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 3 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 15 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
pcib1: _SRS failed, irq 14 via \\_SB_.LNKA
pci1: <display, VGA> at device 0.0 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib2
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKF resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKF
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKG resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKG
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 11 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 10 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 5 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 9 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 12 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 7 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 6 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 4 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 3 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 15 via \\_SB_.LNKA
acpi link set: \\_SB_.LNKA resource is not an IRQ (2)
unknown: _SRS failed, irq 14 via \\_SB_.LNKA
rl0: <RealTek 8139 10/100BaseTX> port 0xa800-0xa8ff mem
0xefefef00-0xefefefff irq 10 at device 1.0 on pci2
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:40:95:07:53:6b
rl0: [GIANT-LOCKED]
fxp0: <Intel 82558 Pro/100 Ethernet> port 0xa400-0xa41f mem
0xefd00000-0xefdfffff,0xe77ff000-0xe77fffff irq 9 at device 2.0 on
pci2
miibus1: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus1
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:90:27:13:a4:48
fxp0: [GIANT-LOCKED]
ahc0: <Adaptec 2940B Ultra2 SCSI adapter> port 0xac00-0xacff mem
0xefeff000-0xefefffff irq 11 at device 3.0 on pci2
ahc0: [GIANT-LOCKED]
aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH2 UDMA100 controller> port
0xff00-0xff0f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on
pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> port
0xcc00-0xcc1f irq 10 at device 31.2 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
uhci1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> port
0xd400-0xd41f irq 10 at device 31.4 on pci0
uhci1: [GIANT-LOCKED]
usb1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pcm0: <Intel ICH2 (82801BA)> port 0xd800-0xd83f,0xdc00-0xdcff irq 5 at
device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <SigmaTel STAC9700/83/84 AC97 Codec>
acpi_button1: <Sleep Button> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
fdc0: <floppy drive controller> port 0x3f7,0x3f4-0x3f5,0x3f2-0x3f3 irq
6 drq 2 on acpi0
fdc0: I/O to control range incorrect
device_attach: fdc0 attach returned 6
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
fdc0: <floppy drive controller> port 0x3f7,0x3f4-0x3f5,0x3f2-0x3f3 irq
6 drq 2 on acpi0
fdc0: I/O to control range incorrect
device_attach: fdc0 attach returned 6
orm0: <ISA Option ROMs> at iomem
0xe0000-0xe0fff,0xcc000-0xd17ff,0xc0000-0xcbfff on isa0
pmtimer0 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1794555960 Hz quality 800
Timecounters tick every 0.976 msec
Waiting 15 seconds for SCSI devices to settle
Interrupt storm detected on "irq5: pcm0"; throttling interrupt source
Interrupt storm detected on "irq10: rl0 uhci0+"; throttling interrupt source
Interrupt storm detected on "irq11: ahc0"; throttling interrupt source
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
da0 at ahc0 bus 0 target 0 lun 0
da0: <IBM-PSG DNES-309170W  !# SAB0> Fixed Direct Access SCSI-3 device 
da0: 80.000MB/s transfers (40.000MHz, offset 30, 16bit), Tagged Queueing Enabled
da0: 8678MB (17774160 512 byte sectors: 255H 63S/T 1106C)
Mounting root from ufs:/dev/da0s1a

[-- Attachment #2 --]
/*
  RSD PTR: OEM=AMI, ACPI_Rev=1.0x (0)
	RSDT=0x0fff0000, cksum=156
 */
/*
  RSDT: Length=40, Revision=1, Checksum=14,
	OEMID=AMIINT, OEM Table ID=AMIINT10, OEM Revision=0x1011,
	Creator ID=MSFT, Creator Revision=0x100000d
	Entries={ 0x0fff0030 }
 */
/*
  FACP: Length=116, Revision=1, Checksum=120,
	OEMID=AMIINT, OEM Table ID=AMIINT10, OEM Revision=0x1011,
	Creator ID=MSFT, Creator Revision=0x100000d
 	FACS=0xfff8000, DSDT=0xfff00b0
	INT_MODEL=PIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x1f
	PSTATE_CNT=0x0
	PM1a_EVT_BLK=0x400-0x403
	PM1a_CNT_BLK=0x404-0x405
	PM2_CNT_BLK=0x420-0x420
	PM_TMR_BLK=0x408-0x40b
	GPE0_BLK=0x428-0x42b
	GPE1_BLK=0x42c-0x42f, GPE1_BASE=16
	P_LVL2_LAT=100 us, P_LVL3_LAT=1000 us
	FLUSH_SIZE=1024, FLUSH_STRIDE=16
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	IAPC_BOOT_ARCH=
	Flags={WBINVD,PROC_C1,SLP_BUTTON}
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=0
 */
/*
  DSDT: Length=12551, Revision=1, Checksum=89,
	OEMID=INTEL, OEM Table ID=WHITNEY, OEM Revision=0x1000,
	Creator ID=MSFT, Creator Revision=0x100000d
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20040527
 *
 * Disassembly of /tmp/acpidump.3fiW25, Thu Aug 12 12:41:42 2004
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "INTEL", "WHITNEY", 4096)
{
    Scope (\_PR)
    {
        Processor (CPU1, 0x01, 0x00000410, 0x06) {}
    }

    OperationRegion (CM72, SystemIO, 0x72, 0x02)
    Field (CM72, ByteAcc, NoLock, Preserve)
    {
        CI72,   8, 
        CO73,   8
    }

    IndexField (CI72, CO73, ByteAcc, NoLock, Preserve)
    {
        Offset (0xD5), 
        ULED,   8, 
        Offset (0xDA), 
        UASB,   1, 
        USBE,   1, 
        FLOS,   2, 
        Offset (0xDC), 
            ,   3, 
            ,   1, 
        ACST,   3, 
        Offset (0xDE), 
        LNRI,   8
    }

    Name (\_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (\_S1, Package (0x04)
    {
        0x01, 
        0x00, 
        0x00, 
        0x00
    })
    Name (\_S4, Package (0x04)
    {
        0x06, 
        0x00, 
        0x00, 
        0x00
    })
    Name (\_S5, Package (0x04)
    {
        0x07, 
        0x00, 
        0x00, 
        0x00
    })
    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (0x00)
        }

        Add (SizeOf (Arg0), 0x01, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
            If (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0)))) {}
            Else
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    Scope (\_SB)
    {
        Name (APIC, 0x00)
        Method (_PIC, 1, NotSerialized)
        {
            Store (Arg0, APIC)
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0B)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_UID, 0x01)
            Name (_ADR, 0x00)
            Name (_BBN, 0x00)
            Name (SS3D, 0x02)
            Name (CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0000,
                    0x0CF7,
                    0x0000,
                    0x0CF8)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0D00,
                    0xFFFF,
                    0x0000,
                    0xF300)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000CB000,
                    0x000DFFFF,
                    0x00000000,
                    0x00015000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x20000000,
                    0xFFDFFFFF,
                    0x00000000,
                    0xDFE00000)
            })
            OperationRegion (TMEM, PCI_Config, 0x7E, 0x02)
            Field (TMEM, WordAcc, NoLock, Preserve)
            {
                MEMT,   11
            }

            Name (TOM, 0x00)
            Method (MDET, 0, NotSerialized)
            {
                If (LNot (TOM))
                {
                    If (FLAG)
                    {
                        ShiftLeft (MEMT, 0x18, TOM)
                    }
                    Else
                    {
                        Return (0x20000000)
                    }
                }

                Return (TOM)
            }

            Name (FLAG, 0x01)
            Name (OSFL, 0x02)
            Method (_INI, 0, NotSerialized)
            {
                \_SB.PCI0.SBRG.IODT ()
                If (MCTH (\_OS, "Microsoft Windows"))
                {
                    Store (0x02, OSFL)
                }
                Else
                {
                    If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
                    {
                        Store (0x03, OSFL)
                    }
                    Else
                    {
                        Store (0x01, OSFL)
                    }
                }
            }

            Method (_REG, 2, NotSerialized)
            {
                If (LEqual (Arg0, 0x02))
                {
                    Store (Arg1, FLAG)
                }
            }

            Method (_CRS, 0, NotSerialized)
            {
                CreateDWordField (CRS, 0x76, TMEM)
                CreateDWordField (CRS, 0x82, TLEN)
                Store (MDET (), TMEM)
                Subtract (0xFFE00000, TMEM, TLEN)
                Return (CRS)
            }

            Name (_PRT, Package (0x06)
            {
                Package (0x04)
                {
                    0x001FFFFF, 
                    0x00, 
                    \_SB.LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x01, 
                    \_SB.LNKB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x02, 
                    \_SB.LNKH, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x03, 
                    \_SB.LNKD, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x00, 
                    LNKA, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x01, 
                    LNKB, 
                    0x00
                }
            })
            Device (SBRG)
            {
                Name (_ADR, 0x001F0000)
                Name (\_SB.IPRS, ResourceTemplate ()
                {
                    StartDependentFnNoPri ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,12,14,15}
                    }
                    EndDependentFn ()
                })
                OperationRegion (PIX0, PCI_Config, 0x60, 0x04)
                OperationRegion (PIX1, PCI_Config, 0x68, 0x04)
                OperationRegion (LPC0, PCI_Config, 0xE0, 0x08)
                OperationRegion (LPC1, PCI_Config, 0xEC, 0x02)
                Scope (\_SB)
                {
                    Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve)
                    {
                        PIRA,   8, 
                        PIRB,   8, 
                        PIRC,   8, 
                        PIRD,   8
                    }

                    Field (\_SB.PCI0.SBRG.PIX1, ByteAcc, NoLock, Preserve)
                    {
                        PIRE,   8, 
                        PIRF,   8, 
                        PIRG,   8, 
                        PIRH,   8
                    }

                    Field (\_SB.PCI0.SBRG.LPC0, ByteAcc, NoLock, Preserve)
                    {
                        LPCA,   3, 
                            ,   1, 
                        LPCB,   3, 
                        Offset (0x01), 
                        LPLP,   2, 
                            ,   2, 
                        LPFD,   1, 
                        Offset (0x02), 
                        LPSB,   2, 
                            ,   1, 
                        LPMD,   1, 
                        LPMS,   2, 
                        Offset (0x03), 
                        Offset (0x04), 
                        GEN1,   16, 
                        CAEN,   1, 
                        CBEN,   1, 
                        LPEN,   1, 
                        FDEN,   1, 
                        SBEN,   1, 
                        MDEN,   1, 
                        MSEN,   1, 
                        ADEN,   1, 
                        GMLE,   1, 
                        GMHE,   1, 
                        KBEN,   1, 
                        MCEN,   1, 
                        CF1E,   1, 
                        CF2E,   1, 
                        Offset (0x08)
                    }

                    Field (\_SB.PCI0.SBRG.LPC1, ByteAcc, NoLock, Preserve)
                    {
                        GEN2,   16
                    }

                    Name (BUFA, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {15}
                    })
                    CreateWordField (BUFA, 0x01, IRA0)
                    Device (LNKA)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            And (PIRA, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRA, 0x80, PIRA)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRA, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            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)
                        {
                            And (PIRB, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRB, 0x80, PIRB)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRB, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            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)
                        {
                            And (PIRC, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRC, 0x80, PIRC)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRC, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            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)
                        {
                            And (PIRD, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRD, 0x80, PIRD)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRD, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            Return (BUFA)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x01, IRA)
                            FindSetRightBit (IRA, Local0)
                            Decrement (Local0)
                            Store (Local0, PIRD)
                        }
                    }

                    Device (LNKE)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x05)
                        Method (_STA, 0, NotSerialized)
                        {
                            And (PIRE, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRE, 0x80, PIRE)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRE, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            Return (BUFA)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x01, IRA)
                            FindSetRightBit (IRA, Local0)
                            Decrement (Local0)
                            Store (Local0, PIRE)
                        }
                    }

                    Device (LNKF)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x06)
                        Method (_STA, 0, NotSerialized)
                        {
                            And (PIRF, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRF, 0x80, PIRF)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRF, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            Return (BUFA)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x01, IRA)
                            FindSetRightBit (IRA, Local0)
                            Decrement (Local0)
                            Store (Local0, PIRF)
                        }
                    }

                    Device (LNKG)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x07)
                        Method (_STA, 0, NotSerialized)
                        {
                            And (PIRG, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRG, 0x80, PIRG)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRG, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            Return (BUFA)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x01, IRA)
                            FindSetRightBit (IRA, Local0)
                            Decrement (Local0)
                            Store (Local0, PIRG)
                        }
                    }

                    Device (LNKH)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x08)
                        Method (_STA, 0, NotSerialized)
                        {
                            And (PIRH, 0x80, Local0)
                            If (Local0)
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }

                        Method (_PRS, 0, NotSerialized)
                        {
                            Return (IPRS)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            Or (PIRH, 0x80, PIRH)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            And (PIRH, 0x0F, Local0)
                            ShiftLeft (0x01, Local0, IRA0)
                            Return (BUFA)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateWordField (Arg0, 0x01, IRA)
                            FindSetRightBit (IRA, Local0)
                            Decrement (Local0)
                            Store (Local0, PIRH)
                        }
                    }
                }

                OperationRegion (SBFN, PCI_Config, 0xF2, 0x01)
                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (OSFL, FLOS)
                        If (And (OSFL, 0x02))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (IORG, ResourceTemplate ()
                    {
                        FixedIO (0x0010, 0x10)
                        FixedIO (0x0022, 0x1E)
                        FixedIO (0x0044, 0x1C)
                        FixedIO (0x0062, 0x02)
                        FixedIO (0x0065, 0x0B)
                        FixedIO (0x0072, 0x0E)
                        FixedIO (0x0080, 0x01)
                        FixedIO (0x0084, 0x03)
                        FixedIO (0x0088, 0x01)
                        FixedIO (0x008C, 0x03)
                        FixedIO (0x0090, 0x10)
                        FixedIO (0x00A2, 0x1E)
                        FixedIO (0x00E0, 0x10)
                        FixedIO (0x0295, 0x02)
                        IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
                        IO (Decode16, 0x0400, 0x0400, 0x00, 0x80)
                        IO (Decode16, 0x0480, 0x0480, 0x00, 0x40)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (IORG)
                    }
                }

                Device (FWH)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite, 0xFFB80000, 0x00080000)
                    })
                }

                Device (\_SB.MEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (\_SB.PCI0.OSFL, 0x02))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (MEM1, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                        Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
                        Memory32Fixed (ReadWrite, 0x00100000, 0x1FF00000)
                        Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (MEM1, 0x20, TOP1)
                        Subtract (\_SB.PCI0.MDET (), 0x00100000, TOP1)
                        Return (MEM1)
                    }
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        FixedIO (0x0020, 0x02)
                        FixedIO (0x00A0, 0x02)
                        IRQNoFlags () {2}
                    })
                }

                Device (DMAD)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8) {4}
                        FixedIO (0x0000, 0x10)
                        FixedIO (0x0081, 0x03)
                        FixedIO (0x0087, 0x01)
                        FixedIO (0x0089, 0x03)
                        FixedIO (0x008F, 0x01)
                        FixedIO (0x00C0, 0x20)
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        FixedIO (0x0040, 0x04)
                        IRQNoFlags () {0}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        FixedIO (0x0070, 0x02)
                        IRQNoFlags () {8}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        FixedIO (0x0061, 0x01)
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        FixedIO (0x00F0, 0x10)
                        IRQNoFlags () {13}
                    })
                }

                OperationRegion (PSRG, SystemMemory, 0x0410, 0x01)
                Field (PSRG, ByteAcc, NoLock, Preserve)
                {
                        ,   2, 
                    PS2E,   1
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F03"))
                    Name (_CID, 0x130FD041)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (PS2E)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Name (MCRS, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (MCRS)
                    }
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, 0x0B03D041)
                    Name (KCRS, ResourceTemplate ()
                    {
                        FixedIO (0x0060, 0x01)
                        FixedIO (0x0064, 0x01)
                        IRQNoFlags () {1}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (KCRS)
                    }
                }

                Name (SPIO, 0x2E)
                OperationRegion (WIN1, SystemIO, SPIO, 0x02)
                Field (WIN1, ByteAcc, NoLock, Preserve)
                {
                    INDX,   8, 
                    DATA,   8
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x02), 
                    CFG,    8, 
                    Offset (0x07), 
                    LDN,    8, 
                    Offset (0x30), 
                    ACTR,   1, 
                    ACT1,   1, 
                    ACT2,   1, 
                    Offset (0x31), 
                    Offset (0x60), 
                    IOAH,   8, 
                    IOAL,   8, 
                    IOEH,   8, 
                    IOEL,   8, 
                    Offset (0x70), 
                    INTR,   8, 
                    Offset (0x72), 
                    INT1,   8, 
                    Offset (0x74), 
                    DMCH,   8, 
                    Offset (0xC0), 
                    GP40,   8, 
                    Offset (0xE0), 
                    RGE0,   8, 
                    RGE1,   8, 
                    RGE2,   8, 
                    RGE3,   8, 
                    RGE4,   8, 
                    Offset (0xF0), 
                    OPT1,   8, 
                    OPT2,   8, 
                    OPT3,   8, 
                    OPT4,   8, 
                    OPT5,   8, 
                    OPT6,   8, 
                    OPT7,   8, 
                    OPT8,   8, 
                    OPT9,   8, 
                    OPTA,   8
                }

                OperationRegion (HWMT, SystemIO, 0x0295, 0x02)
                Field (HWMT, ByteAcc, NoLock, Preserve)
                {
                    HWIN,   8, 
                    HWDT,   8
                }

                IndexField (HWIN, HWDT, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x40), 
                    HW40,   8, 
                    HW41,   8, 
                    HW42,   8, 
                    HW43,   8, 
                    HW44,   8, 
                    Offset (0x46), 
                    HW46,   8, 
                    HW47,   8, 
                    HW48,   8, 
                    HW49,   8, 
                    HW4A,   8, 
                    HW4B,   8, 
                    HW4C,   8, 
                    HW4D,   8, 
                    HW4E,   8, 
                    HW4F,   8, 
                    HW50,   8, 
                    HW51,   8, 
                    HW52,   8, 
                    HW53,   8, 
                    HW54,   8, 
                    HW55,   8, 
                    HW56,   8, 
                    HW57,   8, 
                    HW58,   8, 
                    HW59,   8, 
                    HW5A,   8, 
                    HW5B,   8, 
                    HW5C,   8, 
                    HW5D,   8, 
                    HW5E,   8, 
                    HW5F,   8
                }

                Method (ENFG, 0, NotSerialized)
                {
                    Store (0x87, INDX)
                    Store (0x87, INDX)
                }

                Method (EXFG, 0, NotSerialized)
                {
                    Store (0xAA, INDX)
                }

                Name (LDFD, 0x00)
                Name (LDU1, 0x02)
                Name (LDU2, 0x03)
                Name (LDIR, 0x06)
                Name (LDLP, 0x01)
                Name (LDGM, 0x07)
                Name (LDMD, 0x07)
                Device (FDC0)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (FDST)
                        {
                            Return (GSTA (0x00))
                        }

                        Return (0x00)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, FDEN)
                        DDIS (0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (FCRS)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (FPRS)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Store (One, FDEN)
                        DENB (0x00)
                    }
                }

                Device (UAR1)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (U1ST)
                        {
                            Return (GSTA (0x02))
                        }

                        Return (0x00)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, CAEN)
                        DDIS (0x02)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PCRS (0x02, 0x01, 0x08))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSRS (Arg0, 0x02)
                        Store (One, CAEN)
                        ENFG ()
                        If (LEqual (IOAH, 0x03))
                        {
                            If (LEqual (IOAL, 0xF8))
                            {
                                Store (Zero, LPCA)
                            }
                            Else
                            {
                                Store (0x07, LPCA)
                            }
                        }
                        Else
                        {
                            If (LEqual (IOAL, 0xF8))
                            {
                                Store (One, LPCA)
                            }
                            Else
                            {
                                Store (0x05, LPCA)
                            }
                        }

                        EXFG ()
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (C1PR)
                    }
                }

                Device (UAR2)
                {
                    Method (_HID, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (LDU2, LDN)
                        And (OPT2, 0x38, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            Return (0x1005D041)
                        }
                        Else
                        {
                            Return (0x0105D041)
                        }
                    }

                    Name (_UID, 0x02)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (U2ST)
                        {
                            Return (GSTA (0x03))
                        }

                        Return (0x00)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, CBEN)
                        DDIS (0x03)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PCRS (0x03, 0x01, 0x08))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSRS (Arg0, 0x03)
                        Store (One, CBEN)
                        ENFG ()
                        If (LEqual (IOAH, 0x03))
                        {
                            If (LEqual (IOAL, 0xF8))
                            {
                                Store (Zero, LPCB)
                            }
                            Else
                            {
                                Store (0x07, LPCB)
                            }
                        }
                        Else
                        {
                            If (LEqual (IOAL, 0xF8))
                            {
                                Store (One, LPCB)
                            }
                            Else
                            {
                                Store (0x05, LPCB)
                            }
                        }

                        EXFG ()
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (C2PR)
                    }
                }

                Device (IRDA)
                {
                    Name (_HID, EisaId ("PNP0510"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (IRST)
                        {
                            Return (GSTA (LDIR))
                        }

                        Return (0x00)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DDIS (LDIR)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF6, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0000, 0x0000, 0x10, 0x08)
                            IRQNoFlags () {}
                        })
                        CreateByteField (BUF6, 0x02, IOLO)
                        CreateByteField (BUF6, 0x03, IOHI)
                        CreateByteField (BUF6, 0x04, IORL)
                        CreateByteField (BUF6, 0x05, IORH)
                        CreateWordField (BUF6, 0x09, IRQM)
                        ENFG ()
                        Store (LDIR, LDN)
                        If (ACTR)
                        {
                            Store (0x98, IOLO)
                            Store (0x02, IOHI)
                        }
                        Else
                        {
                            Store (0x00, IOLO)
                            Store (0x00, IOHI)
                        }

                        Store (IOLO, IORL)
                        Store (IOHI, IORH)
                        ShiftLeft (0x01, INTR, IRQM)
                        EXFG ()
                        Return (BUF6)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSRS (Arg0, LDIR)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0298, 0x0298, 0x08, 0x08)
                            IRQNoFlags () {3,4,9,10,11}
                        }
                        EndDependentFn ()
                    })
                }

                Device (LPT)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (0x01, LDN)
                        And (OPT1, 0x02, Local0)
                        EXFG ()
                        If (Or (Local0, And (Not (LPST), 0x01)))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (GSTA (0x01))
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, LPEN)
                        DDIS (0x01)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (PCRS (0x01, 0x01, 0x08))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSRS (Arg0, 0x01)
                        Store (One, LPEN)
                        ENFG ()
                        If (LEqual (IOAH, 0x03))
                        {
                            If (LEqual (IOAL, 0x78))
                            {
                                Store (Zero, LPLP)
                            }
                            Else
                            {
                                Store (0x02, LPLP)
                            }
                        }
                        Else
                        {
                            Store (One, LPLP)
                        }

                        EXFG ()
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (LPPR)
                    }
                }

                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (0x01, LDN)
                        And (OPT1, 0x02, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            If (LPST)
                            {
                                Return (GSTA (0x01))
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, LPEN)
                        DDIS (0x01)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (ECRS (0x01))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        ESRS (Arg0, 0x01)
                        Store (One, LPEN)
                        ENFG ()
                        If (LEqual (IOAH, 0x03))
                        {
                            If (LEqual (IOAL, 0x78))
                            {
                                Store (Zero, LPLP)
                            }
                            Else
                            {
                                Store (0x02, LPLP)
                            }
                        }
                        Else
                        {
                            Store (One, LPLP)
                        }

                        EXFG ()
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (EPRS)
                    }
                }

                Device (GAME)
                {
                    Name (_HID, EisaId ("PNPB02F"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (LDGM, LDN)
                        If (LOr (GMLE, GMHE))
                        {
                            EXFG ()
                            Return (0x0F)
                        }
                        Else
                        {
                            Add (IOAH, IOAL, Local0)
                            If (Local0)
                            {
                                EXFG ()
                                Return (0x0D)
                            }
                            Else
                            {
                                EXFG ()
                                Return (Zero)
                            }
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, GMLE)
                        Store (Zero, GMHE)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF6, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0000, 0x0000, 0x08, 0x08)
                        })
                        CreateByteField (BUF6, 0x02, IOLO)
                        CreateByteField (BUF6, 0x03, IOHI)
                        CreateByteField (BUF6, 0x04, IORL)
                        CreateByteField (BUF6, 0x05, IORH)
                        ENFG ()
                        Store (LDGM, LDN)
                        If (LEqual (IOAL, 0x00))
                        {
                            Store (0x00, IOLO)
                            Store (0x02, IOHI)
                        }
                        Else
                        {
                            Store (0x08, IOLO)
                            Store (0x02, IOHI)
                        }

                        Store (IOLO, IORL)
                        Store (IOHI, IORH)
                        EXFG ()
                        Return (BUF6)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0200, 0x0200, 0x08, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0208, 0x0208, 0x08, 0x08)
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        ENFG ()
                        Store (LDGM, LDN)
                        If (LEqual (IOLO, 0x00))
                        {
                            Store (0x02, IOAH)
                            Store (0x00, IOAL)
                        }
                        Else
                        {
                            Store (0x02, IOAH)
                            Store (0x08, IOAL)
                        }

                        If (LEqual (IOAL, 0x00))
                        {
                            Store (One, GMLE)
                            Store (Zero, GMHE)
                        }
                        Else
                        {
                            Store (Zero, GMLE)
                            Store (One, GMHE)
                        }

                        EXFG ()
                    }
                }

                Device (MIDI)
                {
                    Name (_HID, EisaId ("PNPB006"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (LDMD, LDN)
                        If (LOr (MDEN, LEqual (IOEH, 0x02)))
                        {
                            EXFG ()
                            Return (0x0F)
                        }
                        Else
                        {
                            Add (IOEH, IOEL, Local0)
                            If (Local0)
                            {
                                EXFG ()
                                Return (0x0D)
                            }
                            Else
                            {
                                EXFG ()
                                Return (Zero)
                            }
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (Zero, MDEN)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF6, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0000, 0x0000, 0x02, 0x02)
                            IRQNoFlags () {}
                        })
                        CreateByteField (BUF6, 0x02, IOLO)
                        CreateByteField (BUF6, 0x03, IOHI)
                        CreateByteField (BUF6, 0x04, IORL)
                        CreateByteField (BUF6, 0x05, IORH)
                        CreateWordField (BUF6, 0x09, IRQM)
                        ENFG ()
                        Store (LDMD, LDN)
                        If (LEqual (IOEH, 0x03))
                        {
                            Store (0x03, IOHI)
                            If (LEqual (IOEL, 0x30))
                            {
                                Store (0x30, IOLO)
                            }
                            Else
                            {
                                Store (0x00, IOLO)
                            }
                        }
                        Else
                        {
                            Store (0x02, IOHI)
                            If (LEqual (IOEL, 0x90))
                            {
                                Store (0x90, IOLO)
                            }
                            Else
                            {
                                Store (0x92, IOLO)
                            }
                        }

                        Store (IOLO, IORL)
                        Store (IOHI, IORH)
                        ShiftLeft (0x01, INTR, IRQM)
                        EXFG ()
                        Return (BUF6)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0330, 0x0330, 0x02, 0x02)
                            IRQNoFlags () {5,7,9,10}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0300, 0x0300, 0x02, 0x02)
                            IRQNoFlags () {5,7,9,10}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0290, 0x0290, 0x02, 0x02)
                            IRQNoFlags () {5,7,9,10}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0292, 0x0292, 0x02, 0x02)
                            IRQNoFlags () {5,7,9,10}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x09, IRQM)
                        ENFG ()
                        Store (LDMD, LDN)
                        If (LEqual (IOHI, 0x03))
                        {
                            Store (0x03, IOEH)
                            If (LEqual (IOLO, 0x30))
                            {
                                Store (0x30, IOEL)
                                Store (Zero, LPMD)
                            }
                            Else
                            {
                                Store (0x00, IOEL)
                                Store (One, LPMD)
                            }

                            Store (One, MDEN)
                        }
                        Else
                        {
                            Store (0x02, IOEH)
                            If (LEqual (IOLO, 0x90))
                            {
                                Store (0x90, IOEL)
                            }
                            Else
                            {
                                Store (0x92, IOEL)
                            }
                        }

                        FindSetRightBit (IRQM, Local0)
                        Subtract (Local0, 0x01, INTR)
                        EXFG ()
                    }
                }

                Name (FDST, 0x00)
                Name (U1ST, 0x00)
                Name (U2ST, 0x00)
                Name (IRST, 0x00)
                Name (LPST, 0x00)
                Method (IODT, 0, NotSerialized)
                {
                    If (LEqual (GSTA (LDFD), 0x0F))
                    {
                        Store (0x01, FDST)
                    }

                    If (LEqual (GSTA (LDU1), 0x0F))
                    {
                        Store (0x01, U1ST)
                    }

                    If (LEqual (GSTA (LDU2), 0x0F))
                    {
                        Store (0x01, U2ST)
                    }

                    If (LEqual (GSTA (LDIR), 0x0F))
                    {
                        Store (0x01, IRST)
                    }

                    If (LEqual (GSTA (LDLP), 0x0F))
                    {
                        Store (0x01, LPST)
                    }
                }

                Method (GSTA, 1, NotSerialized)
                {
                    ENFG ()
                    Store (Arg0, LDN)
                    If (ACTR)
                    {
                        Store (0x0F, Local0)
                    }
                    Else
                    {
                        If (Or (IOAH, IOAL))
                        {
                            Store (0x0D, Local0)
                        }
                        Else
                        {
                            Store (0x00, Local0)
                        }
                    }

                    EXFG ()
                    Return (Local0)
                }

                Method (DDIS, 1, NotSerialized)
                {
                    ENFG ()
                    Store (Arg0, LDN)
                    Store (Zero, ACTR)
                    EXFG ()
                }

                Method (DENB, 1, NotSerialized)
                {
                    ENFG ()
                    Store (Arg0, LDN)
                    Store (One, ACTR)
                    EXFG ()
                }

                Method (PCRS, 3, NotSerialized)
                {
                    CreateByteField (PBUF, 0x02, IOLO)
                    CreateByteField (PBUF, 0x03, IOHI)
                    CreateWordField (PBUF, 0x02, IOHL)
                    CreateWordField (PBUF, 0x04, IORL)
                    CreateByteField (PBUF, 0x06, ALMN)
                    CreateByteField (PBUF, 0x07, LENG)
                    CreateByteField (PBUF, 0x09, IRQL)
                    ENFG ()
                    Store (Arg0, LDN)
                    Store (IOAH, IOHI)
                    Store (IOAL, IOLO)
                    Store (IOHL, IORL)
                    Store (Arg1, ALMN)
                    If (LEqual (IOLO, 0xBC))
                    {
                        Store (0x04, LENG)
                    }
                    Else
                    {
                        Store (Arg2, LENG)
                    }

                    Store (One, Local0)
                    ShiftLeft (Local0, INTR, IRQL)
                    EXFG ()
                    Return (PBUF)
                }

                Method (PSRS, 2, NotSerialized)
                {
                    CreateByteField (Arg0, 0x02, POLB)
                    CreateByteField (Arg0, 0x03, POHB)
                    CreateByteField (Arg0, 0x09, PIRQ)
                    ENFG ()
                    Store (Arg1, LDN)
                    Store (POLB, IOAL)
                    Store (POHB, IOAH)
                    FindSetRightBit (PIRQ, Local0)
                    Subtract (Local0, 0x01, INTR)
                    Store (One, ACTR)
                    EXFG ()
                }

                Method (ECRS, 1, NotSerialized)
                {
                    CreateByteField (EBUF, 0x02, EPLO)
                    CreateByteField (EBUF, 0x03, EPHI)
                    CreateWordField (EBUF, 0x02, EPHL)
                    CreateWordField (EBUF, 0x04, EPRL)
                    CreateWordField (EBUF, 0x06, ALM1)
                    CreateWordField (EBUF, 0x0A, E4LO)
                    CreateWordField (EBUF, 0x0C, E4RL)
                    CreateWordField (EBUF, 0x11, EIRQ)
                    CreateWordField (EBUF, 0x14, EDMA)
                    ENFG ()
                    Store (Arg0, LDN)
                    Store (IOAH, EPHI)
                    Store (IOAL, EPLO)
                    Store (EPHL, EPRL)
                    Add (EPHL, 0x0400, E4LO)
                    Store (E4LO, E4RL)
                    If (LEqual (EPHL, 0x03BC))
                    {
                        Store (0x0401, ALM1)
                    }
                    Else
                    {
                        Store (0x0801, ALM1)
                    }

                    Store (One, Local0)
                    Store (INTR, Local1)
                    ShiftLeft (Local0, Local1, EIRQ)
                    Store (DMCH, Local1)
                    If (LGreater (Local1, 0x03))
                    {
                        Store (0x00, EDMA)
                    }
                    Else
                    {
                        Store (One, Local0)
                        ShiftLeft (Local0, Local1, EDMA)
                    }

                    EXFG ()
                    Return (EBUF)
                }

                Method (ESRS, 2, NotSerialized)
                {
                    CreateByteField (Arg0, 0x02, LOEP)
                    CreateByteField (Arg0, 0x03, HIEP)
                    CreateWordField (Arg0, 0x11, IRQE)
                    CreateWordField (Arg0, 0x14, DMAE)
                    ENFG ()
                    Store (Arg1, LDN)
                    Store (LOEP, IOAL)
                    Store (HIEP, IOAH)
                    FindSetRightBit (IRQE, Local0)
                    Subtract (Local0, 0x01, INTR)
                    If (DMAE)
                    {
                        FindSetRightBit (DMAE, Local0)
                        Subtract (Local0, 0x01, DMCH)
                    }
                    Else
                    {
                        Store (0x04, DMCH)
                    }

                    Store (One, ACTR)
                    EXFG ()
                }

                Name (CNBF, Buffer (0x02)
                {
                    0xF8, 0x03
                })
                Method (UABS, 1, NotSerialized)
                {
                    ENFG ()
                    Store (Arg0, LDN)
                    CreateByteField (CNBF, 0x00, IOLO)
                    CreateByteField (CNBF, 0x01, IOHI)
                    CreateWordField (CNBF, 0x00, IOAD)
                    Store (IOAL, IOLO)
                    Store (IOAH, IOHI)
                    EXFG ()
                    Return (IOAD)
                }

                Name (CSCP, 0x00)
                PowerResource (URP1, 0x01, 0x0000)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (CSCP)
                    }

                    Method (_ON, 0, NotSerialized)
                    {
                        Store (0x01, CSCP)
                    }

                    Method (_OFF, 0, NotSerialized)
                    {
                        Store (0x00, CSCP)
                    }
                }

                PowerResource (URP2, 0x01, 0x0000)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (CSCP)
                    }

                    Method (_ON, 0, NotSerialized)
                    {
                        Store (0x01, CSCP)
                    }

                    Method (_OFF, 0, NotSerialized)
                    {
                        Store (0x00, CSCP)
                    }
                }

                PowerResource (FDDP, 0x00, 0x0000)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (CSCP)
                    }

                    Method (_ON, 0, NotSerialized)
                    {
                        Store (0x01, CSCP)
                    }

                    Method (_OFF, 0, NotSerialized)
                    {
                        Store (0x00, CSCP)
                    }
                }

                PowerResource (LPTP, 0x00, 0x0000)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (CSCP)
                    }

                    Method (_ON, 0, NotSerialized)
                    {
                        Store (0x01, CSCP)
                    }

                    Method (_OFF, 0, NotSerialized)
                    {
                        Store (0x00, CSCP)
                    }
                }

                Name (FCRS, ResourceTemplate ()
                {
                    IO (Decode16, 0x03F2, 0x03F2, 0x01, 0x02)
                    IO (Decode16, 0x03F4, 0x03F4, 0x01, 0x02)
                    IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                    IRQNoFlags () {6}
                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
                })
                Name (PBUF, ResourceTemplate ()
                {
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                    IRQNoFlags () {0}
                })
                Name (EBUF, ResourceTemplate ()
                {
                    IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                    IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                    IRQNoFlags () {7}
                    DMA (Compatibility, NotBusMaster, Transfer8) {}
                })
                Name (FPRS, ResourceTemplate ()
                {
                    StartDependentFn (0x00, 0x00)
                    {
                        IO (Decode16, 0x03F2, 0x03F2, 0x01, 0x02)
                        IO (Decode16, 0x03F4, 0x03F4, 0x01, 0x02)
                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                        IRQNoFlags () {6}
                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
                    }
                    EndDependentFn ()
                })
                Name (C1PR, ResourceTemplate ()
                {
                    StartDependentFn (0x00, 0x00)
                    {
                        IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08)
                        IRQNoFlags () {4}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x02F8, 0x02F8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03E8, 0x03E8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x02E8, 0x02E8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    EndDependentFn ()
                })
                Name (C2PR, ResourceTemplate ()
                {
                    StartDependentFn (0x00, 0x00)
                    {
                        IO (Decode16, 0x02F8, 0x02F8, 0x04, 0x08)
                        IRQNoFlags () {3}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x02F8, 0x02F8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03E8, 0x03E8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x02E8, 0x02E8, 0x04, 0x08)
                        IRQNoFlags () {3,4,10,11}
                    }
                    EndDependentFn ()
                })
                Name (LPPR, ResourceTemplate ()
                {
                    StartDependentFn (0x00, 0x00)
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IRQNoFlags () {7}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IRQNoFlags () {5,7}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                        IRQNoFlags () {5,7}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                    }
                    EndDependentFn ()
                })
                Name (EPRS, ResourceTemplate ()
                {
                    StartDependentFn (0x00, 0x00)
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                        IRQNoFlags () {7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {1}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                        IO (Decode16, 0x0678, 0x0678, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                        IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                        IO (Decode16, 0x0678, 0x0678, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                        IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                        IRQNoFlags () {5,7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {}
                    }
                    EndDependentFn ()
                })
            }

            Device (ICH)
            {
                Name (_ADR, 0x001E0000)
                Name (_PRT, Package (0x19)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        0x00, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x01, 
                        \_SB.LNKF, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        \_SB.LNKG, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x00, 
                        \_SB.LNKF, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x01, 
                        \_SB.LNKG, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x02, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x03, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x00, 
                        \_SB.LNKG, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x01, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x02, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0002FFFF, 
                        0x03, 
                        \_SB.LNKF, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x00, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x01, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x02, 
                        \_SB.LNKF, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0003FFFF, 
                        0x03, 
                        \_SB.LNKG, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x00, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x01, 
                        \_SB.LNKF, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x02, 
                        \_SB.LNKG, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x03, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x00, 
                        \_SB.LNKF, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x01, 
                        \_SB.LNKG, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x02, 
                        \_SB.LNKA, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x03, 
                        \_SB.LNKC, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0008FFFF, 
                        0x00, 
                        \_SB.LNKE, 
                        0x00
                    }
                })
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x04
                })
                Scope (\_GPE)
                {
                    Method (_L0B, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.ICH, 0x02)
                    }
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x001F0001)
                Name (TIM0, Package (0x08)
                {
                    Package (0x04)
                    {
                        0x78, 
                        0xB4, 
                        0xF0, 
                        0x0384
                    }, 

                    Package (0x04)
                    {
                        0x23, 
                        0x21, 
                        0x10, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x0B, 
                        0x09, 
                        0x04, 
                        0x00
                    }, 

                    Package (0x06)
                    {
                        0x70, 
                        0x49, 
                        0x36, 
                        0x27, 
                        0x19, 
                        0x11
                    }, 

                    Package (0x06)
                    {
                        0x00, 
                        0x01, 
                        0x02, 
                        0x01, 
                        0x02, 
                        0x01
                    }, 

                    Package (0x06)
                    {
                        0x00, 
                        0x00, 
                        0x00, 
                        0x01, 
                        0x01, 
                        0x01
                    }, 

                    Package (0x04)
                    {
                        0x04, 
                        0x03, 
                        0x02, 
                        0x00
                    }, 

                    Package (0x04)
                    {
                        0x02, 
                        0x01, 
                        0x00, 
                        0x00
                    }
                })
                Name (TMD0, Buffer (0x14) {})
                CreateDWordField (TMD0, 0x00, PIO0)
                CreateDWordField (TMD0, 0x04, DMA0)
                CreateDWordField (TMD0, 0x08, PIO1)
                CreateDWordField (TMD0, 0x0C, DMA1)
                CreateDWordField (TMD0, 0x10, CHNF)
                OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
                Field (CFG2, DWordAcc, NoLock, Preserve)
                {
                    TIMP,   16, 
                    TIMS,   16, 
                    STMP,   4, 
                    STMS,   4, 
                    Offset (0x08), 
                    UDMP,   2, 
                    UDMS,   2, 
                    Offset (0x0A), 
                    UDTP,   6, 
                    Offset (0x0B), 
                    UDTS,   6, 
                    Offset (0x14), 
                    PCB0,   2, 
                    SCB0,   2, 
                    PCA0,   2, 
                    SCA0,   2, 
                        ,   4, 
                    FPCB,   2, 
                    FSCB,   2
                }

                Method (GTM, 6, Serialized)
                {
                    Store (Ones, PIO0)
                    Store (Ones, PIO1)
                    Store (Ones, DMA0)
                    Store (Ones, DMA1)
                    Store (Zero, CHNF)
                    If (And (Arg0, 0x02))
                    {
                        Or (CHNF, 0x02, CHNF)
                    }

                    ShiftRight (And (Arg0, 0x3300), 0x08, Local5)
                    Store (Match (DerefOf (Index (TIM0, 0x01)), MLE, Local5, MTR, 0x00, 0x00), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
                    Store (Local7, DMA0)
                    If (And (Arg0, 0x08))
                    {
                        Store (0x0384, PIO0)
                    }
                    Else
                    {
                        Store (Local7, PIO0)
                    }

                    If (And (Arg0, 0x20))
                    {
                        Or (CHNF, 0x08, CHNF)
                    }

                    If (And (Arg0, 0x4000))
                    {
                        Or (CHNF, 0x10, CHNF)
                        Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, Arg1, MTR, 0x00, 0x00), Local5)
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local5)), Local6)
                        Store (Local6, DMA1)
                        If (And (Arg0, 0x80))
                        {
                            Store (0x0384, PIO1)
                        }
                        Else
                        {
                            Store (Local6, PIO1)
                        }
                    }

                    If (And (Arg2, 0x01))
                    {
                        And (Arg3, 0x03, Local5)
                        If (And (Arg5, 0x01))
                        {
                            Add (Local5, 0x04, Local5)
                        }
                        Else
                        {
                            If (And (Arg4, 0x01))
                            {
                                Add (Local5, 0x02, Local5)
                            }
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0)
                        Or (CHNF, 0x01, CHNF)
                    }

                    If (And (Arg2, 0x02))
                    {
                        And (ShiftRight (Arg3, 0x04), 0x03, Local5)
                        If (And (Arg5, 0x02))
                        {
                            Add (Local5, 0x04, Local5)
                        }
                        Else
                        {
                            If (And (Arg4, 0x02))
                            {
                                Add (Local5, 0x02, Local5)
                            }
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1)
                        Or (CHNF, 0x04, CHNF)
                    }

                    Return (TMD0)
                }

                Method (STM, 7, Serialized)
                {
                    Store (Arg0, TMD0)
                    Store (Arg5, Local1)
                    And (Arg1, 0x8044, Arg1)
                    And (Arg3, 0xFC, Arg3)
                    And (Arg4, 0xCC, Arg4)
                    And (Arg5, 0xFC, Arg5)
                    And (Arg6, 0xFC, Arg6)
                    If (And (CHNF, 0x01))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0)
                        If (LGreater (Local0, 0x05))
                        {
                            Store (0x05, Local0)
                        }

                        If (LGreater (Local0, 0x02))
                        {
                            If (And (Local1, 0x01))
                            {
                                Store (0x02, Local0)
                            }
                        }

                        Or (Arg4, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), Arg4)
                        Or (Arg5, DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), Arg5)
                        Or (Arg3, 0x01, Arg3)
                        If (LEqual (Local0, 0x05))
                        {
                            Or (Arg6, 0x01, Arg6)
                        }
                    }
                    Else
                    {
                        If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00)))
                        {
                            If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00)))
                            {
                                Store (DMA0, PIO0)
                                Or (Arg1, 0x08, Arg1)
                            }
                        }
                    }

                    If (And (CHNF, 0x04))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, 0x00, 0x00), Local0)
                        If (LGreater (Local0, 0x05))
                        {
                            Store (0x05, Local0)
                        }

                        If (LGreater (Local0, 0x02))
                        {
                            If (And (Local1, 0x02))
                            {
                                Store (0x02, Local0)
                            }
                        }

                        Or (Arg4, ShiftLeft (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), 0x04), Arg4)
                        Or (Arg5, DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Local0)), Arg5)
                        Or (Arg3, 0x02, Arg3)
                        If (LEqual (Local0, 0x05))
                        {
                            Or (Arg6, 0x02, Arg6)
                        }
                    }
                    Else
                    {
                        If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00)))
                        {
                            If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00)))
                            {
                                Store (DMA1, PIO1)
                                Or (Arg1, 0x80, Arg1)
                            }
                        }
                    }

                    If (And (CHNF, 0x02))
                    {
                        Or (Arg1, 0x03, Arg1)
                    }

                    If (And (CHNF, 0x08))
                    {
                        Or (Arg1, 0x30, Arg1)
                    }

                    And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x03, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
                    ShiftLeft (Local1, 0x08, Local2)
                    Or (Arg1, Local2, Arg1)
                    If (And (CHNF, 0x10))
                    {
                        Or (Arg1, 0x4000, Arg1)
                        And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x03, Local0)
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1)
                        Or (Arg2, Local1, Arg2)
                    }
                }

                Name (AT01, Buffer (0x07)
                {
                    0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT02, Buffer (0x07)
                {
                    0x03, 0x40, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT03, Buffer (0x07)
                {
                    0x03, 0x20, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT05, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
                })
                Name (AT06, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
                })
                Name (ATA0, Buffer (0x24) {})
                Name (ATA1, Buffer (0x24) {})
                Name (ATA2, Buffer (0x24) {})
                Name (ATA3, Buffer (0x24) {})
                Name (GTIM, 0x00)
                Name (GSTM, 0x00)
                Name (GUDM, 0x00)
                Name (GUDT, 0x00)
                Name (GCB0, 0x00)
                Name (GFCB, 0x00)
                Method (GTF, 3, Serialized)
                {
                    Name (ATAD, Buffer (0x07)
                    {
                        0x00
                    })
                    Name (ATAB, Buffer (0x24)
                    {
                        0x01
                    })
                    Store (SizeOf (Arg1), Local0)
                    If (Local0)
                    {
                        CreateWordField (Arg1, 0x00, ID00)
                        If (Or (LEqual (ID00, 0x00), LLess (Local0, 0x78)))
                        {
                            Return (ATAB)
                        }
                    }
                    Else
                    {
                        Return (ATAB)
                    }

                    Store (Arg2, TMD0)
                    CreateByteField (Arg1, 0x06, ID03)
                    CreateByteField (Arg1, 0x0C, ID06)
                    CreateWordField (Arg1, 0x62, ID49)
                    CreateWordField (Arg1, 0x6A, ID53)
                    CreateWordField (Arg1, 0x76, ID59)
                    CreateByteField (ATAD, 0x01, A001)
                    CreateByteField (ATAD, 0x05, A005)
                    CreateByteField (ATAB, 0x00, CMD0)
                    Store (0xA0, Local7)
                    If (Arg0)
                    {
                        Store (0xB0, Local7)
                    }

                    Store (0x00, CMD0)
                    Store (0x00, Local1)
                    CreateField (ATAB, 0x08, 0x38, CMD1)
                    If (And (ID00, 0x80)) {}
                    Else
                    {
                        Store (AT06, ATAD)
                        Store (ID06, A001)
                        Store (Local7, A005)
                        Store (ID03, Local0)
                        If (LGreater (ID03, 0x0F))
                        {
                            Store (0x0F, Local0)
                        }

                        Or (A005, Local0, A005)
                        Store (ATAD, CMD1)
                        Store (0x01, CMD0)
                    }

                    Store (0x00, Local0)
                    If (Arg0)
                    {
                        If (And (CHNF, 0x04))
                        {
                            Store (DMA1, Local0)
                        }
                    }
                    Else
                    {
                        If (And (CHNF, 0x01))
                        {
                            Store (DMA0, Local0)
                        }
                    }

                    If (Local0)
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, Local0, MTR, 0x00, 0x00), Local0)
                        Multiply (CMD0, 0x38, Local5)
                        Add (Local5, 0x08, Local6)
                        CreateField (ATAB, Local6, 0x38, CMD2)
                        Store (AT02, ATAD)
                        Or (A001, Local0, A001)
                        Store (Local7, A005)
                        Store (ATAD, CMD2)
                        Store (0x01, Local1)
                        Increment (CMD0)
                    }

                    Store (0x00, Local0)
                    If (Arg0)
                    {
                        If (And (CHNF, 0x08))
                        {
                            Store (PIO1, Local0)
                        }
                    }
                    Else
                    {
                        If (And (CHNF, 0x02))
                        {
                            Store (PIO0, Local0)
                        }
                    }

                    If (Local0)
                    {
                        Multiply (CMD0, 0x38, Local5)
                        Add (Local5, 0x08, Local6)
                        CreateField (ATAB, Local6, 0x38, CMD3)
                        Store (AT01, ATAD)
                        And (Match (DerefOf (Index (TIM0, 0x00)), MGE, Local0, MTR, 0x00, 0x00), 0x03, Local0)
                        Or (A001, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), A001)
                        Store (Local7, A005)
                        Store (ATAD, CMD3)
                        Increment (CMD0)
                    }

                    If (LNot (Local1))
                    {
                        Multiply (CMD0, 0x38, Local5)
                        Add (Local5, 0x08, Local6)
                        CreateField (ATAB, Local6, 0x38, CMD4)
                        If (And (ID49, 0x0200))
                        {
                            CreateWordField (Arg1, 0x7E, ID63)
                            FindSetLeftBit (And (ID63, 0x0F, ID63), Local0)
                            If (Local0)
                            {
                                Store (AT03, ATAD)
                                Or (A001, Decrement (Local0), A001)
                                Store (Local7, A005)
                                Store (ATAD, CMD4)
                                Increment (CMD0)
                            }
                        }
                    }

                    If (And (ID59, 0x0100))
                    {
                        Multiply (CMD0, 0x38, Local5)
                        Add (Local5, 0x08, Local6)
                        CreateField (ATAB, Local6, 0x38, CMD5)
                        Store (AT05, ATAD)
                        And (ID59, 0xFF, A001)
                        Store (Local7, A005)
                        Store (ATAD, CMD5)
                        Increment (CMD0)
                    }

                    Return (ATAB)
                }

                Method (GTFD, 1, NotSerialized)
                {
                    CreateByteField (Arg0, 0x00, CMD0)
                    Multiply (CMD0, 0x07, Local0)
                    Multiply (Local0, 0x08, Local1)
                    Name (GTFB, Buffer (Local0) {})
                    CreateField (GTFB, 0x00, Local1, DST0)
                    CreateField (Arg0, 0x08, Local1, SRC0)
                    Store (SRC0, DST0)
                    Return (GTFB)
                }

                Device (CHN0)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (GTM (TIMP, STMP, UDMP, UDTP, PCB0, FPCB))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (TIMP, GTIM)
                        Store (STMP, GSTM)
                        Store (UDMP, GUDM)
                        Store (UDTP, GUDT)
                        Store (PCB0, GCB0)
                        Store (FPCB, GFCB)
                        STM (Arg0, GTIM, GSTM, GUDM, GUDT, GCB0, GFCB)
                        Store (GTIM, TIMP)
                        Store (GSTM, STMP)
                        Store (GUDM, UDMP)
                        Store (GUDT, UDTP)
                        Store (GCB0, PCB0)
                        Store (GFCB, FPCB)
                        Store (GTF (0x00, Arg1, Arg0), ATA0)
                        Store (GTF (0x01, Arg2, Arg0), ATA1)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTFD (ATA0))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTFD (ATA1))
                        }
                    }
                }

                Device (CHN1)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (GTM (TIMS, STMS, UDMS, UDTS, SCB0, FSCB))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (TIMS, GTIM)
                        Store (STMS, GSTM)
                        Store (UDMS, GUDM)
                        Store (UDTS, GUDT)
                        Store (SCB0, GCB0)
                        Store (FSCB, GFCB)
                        STM (Arg0, GTIM, GSTM, GUDM, GUDT, GCB0, GFCB)
                        Store (GTIM, TIMS)
                        Store (GSTM, STMS)
                        Store (GUDM, UDMS)
                        Store (GUDT, UDTS)
                        Store (GCB0, SCB0)
                        Store (GFCB, FSCB)
                        Store (GTF (0x00, Arg1, Arg0), ATA2)
                        Store (GTF (0x01, Arg2, Arg0), ATA3)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTFD (ATA2))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTFD (ATA3))
                        }
                    }
                }
            }

            Device (USB)
            {
                Name (_ADR, 0x001F0002)
                Name (SS3D, 0x02)
                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x04
                })
                Scope (\_GPE)
                {
                    Method (_L03, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.USB, 0x02)
                    }
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x001F0004)
                Name (SS3D, 0x02)
                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x04
                })
                Scope (\_GPE)
                {
                    Method (_L04, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.USB2, 0x02)
                    }
                }
            }

            Device (MM97)
            {
                Name (_ADR, 0x001F0006)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x04
                })
                Scope (\_GPE)
                {
                    Method (_L05, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0, 0x02)
                    }
                }
            }
        }

        Name (SLPS, 0x00)
        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Method (SBEV, 0, NotSerialized)
            {
                If (SLPS)
                {
                    Store (0x00, SLPS)
                    Notify (SLPB, 0x02)
                }
                Else
                {
                    Store (0x01, SLPS)
                    Notify (SLPB, 0x80)
                }
            }

            Scope (\_GPE)
            {
                Method (_L16, 0, NotSerialized)
                {
                    \_SB.SLPB.SBEV ()
                }
            }
        }
    }

    OperationRegion (FNOR, SystemIO, 0x0434, 0x04)
    Scope (_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
            If (Arg0)
            {
                If (LEqual (Arg0, 0x01))
                {
                    \_SB.PCI0.SBRG.ENFG ()
                    Store (0x08, \_SB.PCI0.SBRG.LDN)
                    Store (0x00, \_SB.PCI0.SBRG.OPT6)
                    Store (0x09, \_SB.PCI0.SBRG.LDN)
                    Store (0x00, \_SB.PCI0.SBRG.OPT4)
                    \_SB.PCI0.SBRG.EXFG ()
                }

                If (LEqual (Arg0, 0x02))
                {
                    \_SB.PCI0.SBRG.ENFG ()
                    Store (0x08, \_SB.PCI0.SBRG.LDN)
                    Store (0x00, \_SB.PCI0.SBRG.OPT6)
                    Store (0x09, \_SB.PCI0.SBRG.LDN)
                    Store (0x00, \_SB.PCI0.SBRG.OPT4)
                    \_SB.PCI0.SBRG.EXFG ()
                }

                If (LEqual (Arg0, 0x03))
                {
                    \_SB.PCI0.SBRG.ENFG ()
                    Store (0x08, \_SB.PCI0.SBRG.LDN)
                    Store (0x80, \_SB.PCI0.SBRG.OPT6)
                    Store (0x09, \_SB.PCI0.SBRG.LDN)
                    Store (0x40, \_SB.PCI0.SBRG.OPT4)
                    \_SB.PCI0.SBRG.EXFG ()
                }

                If (LEqual (Arg0, 0x04))
                {
                    \_SB.PCI0.SBRG.ENFG ()
                    Store (0x08, \_SB.PCI0.SBRG.LDN)
                    Store (0xC0, \_SB.PCI0.SBRG.OPT6)
                    Store (0x09, \_SB.PCI0.SBRG.LDN)
                    Store (0x40, \_SB.PCI0.SBRG.OPT4)
                    \_SB.PCI0.SBRG.EXFG ()
                }
            }
            Else
            {
                \_SB.PCI0.SBRG.ENFG ()
                Store (0x08, \_SB.PCI0.SBRG.LDN)
                Store (0x40, \_SB.PCI0.SBRG.OPT6)
                Store (0x09, \_SB.PCI0.SBRG.LDN)
                Store (0x00, \_SB.PCI0.SBRG.OPT4)
                \_SB.PCI0.SBRG.EXFG ()
            }
        }
    }

    OperationRegion (HWMI, SystemIO, 0x0295, 0x02)
    Field (HWMI, ByteAcc, NoLock, Preserve)
    {
        HWMD,   8, 
        HWMT,   8
    }

    IndexField (HWMD, HWMT, ByteAcc, NoLock, Preserve)
    {
        Offset (0x57), 
        BECL,   8, 
        Offset (0x5A), 
        FNW1,   8, 
        FNW2,   8
    }

    OperationRegion (ACIO, SystemIO, 0xB2, 0x01)
    Field (ACIO, ByteAcc, NoLock, Preserve)
    {
        ACFG,   8
    }

    OperationRegion (PMIO, SystemIO, 0x0400, 0x50)
    Field (PMIO, WordAcc, NoLock, Preserve)
    {
        PMS0,   8, 
        PWST,   1, 
            ,   1, 
        RTCS,   1, 
        PMS1,   5, 
        Offset (0x03), 
        PWEN,   1, 
        Offset (0x28), 
        GP0S,   16, 
        GP0E,   16, 
        GP1S,   16, 
        GP1E,   16, 
        Offset (0x40), 
        IOMO,   16
    }

    OperationRegion (GPIO, SystemIO, 0x0480, 0x20)
    Field (GPIO, WordAcc, NoLock, Preserve)
    {
        Offset (0x0E), 
        GPO1,   8, 
        GPO2,   8
    }

    OperationRegion (IR21, SystemIO, 0x21, 0x01)
    Field (IR21, ByteAcc, NoLock, Preserve)
    {
        IQ21,   8
    }

    OperationRegion (KDAT, SystemIO, 0x60, 0x05)
    Field (KDAT, ByteAcc, NoLock, Preserve)
    {
        KBDT,   8, 
        Offset (0x04), 
        KBID,   1, 
        Offset (0x05)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        Store (Arg0, ACST)
        Store (0xFFFF, GP0S)
        Store (0xFFFF, GP1S)
        And (BECL, 0x7F, BECL)
        If (LNot (LEqual (Arg0, 0x05)))
        {
            Store (0x00, FNW1)
            Store (0x00, FNW2)
        }

        \_SB.PCI0.SBRG.ENFG ()
        Store (0x0A, \_SB.PCI0.SBRG.LDN)
        If (LNot (LEqual (Arg0, 0x05)))
        {
            While (\_SB.PCI0.SBRG.OPT4)
            {
                Stall (0x50)
                Store (0xFF, \_SB.PCI0.SBRG.OPT4)
            }
        }

        If (LEqual (Arg0, 0x01))
        {
            Store (0x33, \_SB.PCI0.SBRG.OPT7)
        }

        \_SB.PCI0.SBRG.EXFG ()
        If (LEqual (ACFG, 0x1E))
        {
            Store (0x3000, IOMO)
        }
        Else
        {
            If (LEqual (Arg0, 0x01))
            {
                Store (0x3100, IOMO)
            }

            If (LEqual (Arg0, 0x03))
            {
                Store (0x3100, IOMO)
            }

            If (LEqual (Arg0, 0x05))
            {
                Store (0x3100, IOMO)
            }
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        If (LEqual (Arg0, 0x01))
        {
            Sleep (0x0BB8)
        }

        Store (0x3000, IOMO)
        If (LEqual (RTCS, 0x00))
        {
            Notify (\_SB.SLPB, 0x02)
        }

        Store (0xFF, FNW1)
        Store (0xFF, FNW2)
        \_SB.PCI0.SBRG.ENFG ()
        Store (0x0A, \_SB.PCI0.SBRG.LDN)
        Store (0x00, \_SB.PCI0.SBRG.OPT7)
        \_SB.PCI0.SBRG.EXFG ()
        Or (BECL, 0x80, BECL)
        Store (0xFFFF, GP0S)
        Store (0xFFFF, GP1S)
        Store (0x01, PWEN)
    }

    OperationRegion (TEMP, SystemIO, 0x80, 0x01)
    Field (TEMP, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }
}


[-- Attachment #3 --]
DSDT1YINTELWHITNEYMSFT
\_PR_[ƒCPU1[€CM72
r
[CM72CI72CO73[†5CI72CO73HjULED UASBUSBEFLOSACST	LNRI\_S0_




\_S1_




\_S4_




\_S5_




AMCTH 	•‡h‡i¤
r‡h
`BUF0`BUF1`phBUF0piBUF1¢`v` “ƒˆBUF0`ƒˆBUF1`¡¤¤¤\_SB_APIC
_PICphAPIC[‚PWRB_HIDAÐ	_STA¤
[‚ƒ›PCI0_HIDAÐ
_UID
_ADR
_BBN
SS3D
CRS_L
ˆˆ
ÿGøøˆ
÷øˆ

ÿÿó‡
ÿÿ‡°ÿÿ
P‡ ÿÿßÿàßy[€TMEM
~
[TMEMMEMTTOM_
+MDET ’TOM_ FLAGyMEMT
TOM_¡¤ ¤TOM_FLAG
OSFL
F_INI\/_SB_PCI0SBRGIODT $MCTH\_OS_
Microsoft Windowsp
OSFL¡F :MCTH\_OS_
Microsoft WindowsME: Millennium Editionp
OSFL¡p
OSFL_REG “h
piFLAG8_CRSŠCRS_
vTMEMŠCRS_
‚TLENpMDETTMEMtàÿTMEMTLEN¤CRS__PRTKÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKB
ÿÿ
\._SB_LNKH
ÿÿ
\._SB_LNKD
ÿÿ
LNKA
ÿÿ
LNKB
[‚…™SBRG_ADR\._SB_IPRS
0#øÞ8y[€PIX0
`
[€PIX1
h
[€LPC0
à
[€LPC1
ì
IW\_SB_[)\/_SB_PCI0SBRGPIX0PIRAPIRBPIRCPIRD[)\/_SB_PCI0SBRGPIX1PIREPIRFPIRGPIRH[D	\/_SB_PCI0SBRGLPC0LPCALPCBLPLPLPFDLPSBLPMDLPMSGEN1CAENCBENLPENFDENSBENMDENMSENADENGMLEGMHEKBENMCENCF1ECF2E[\/_SB_PCI0SBRGLPC1GEN2BUFA	
#€y‹BUFA
IRA0[‚HLNKA_HIDAÐ_UID
_STA{PIRA
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRA
€PIRA_CRS{PIRA
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRA[‚HLNKB_HIDAÐ_UID
_STA{PIRB
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRB
€PIRB_CRS{PIRB
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRB[‚HLNKC_HIDAÐ_UID
_STA{PIRC
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRC
€PIRC_CRS{PIRC
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRC[‚HLNKD_HIDAÐ_UID
_STA{PIRD
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRD
€PIRD_CRS{PIRD
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRD[‚HLNKE_HIDAÐ_UID
_STA{PIRE
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRE
€PIRE_CRS{PIRE
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRE[‚HLNKF_HIDAÐ_UID
_STA{PIRF
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRF
€PIRF_CRS{PIRF
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRF[‚HLNKG_HIDAÐ_UID
_STA{PIRG
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRG
€PIRG_CRS{PIRG
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRG[‚HLNKH_HIDAÐ_UID
_STA{PIRH
€` `¤
	¡¤
_PRS¤IPRS_DIS}PIRH
€PIRH_CRS{PIRH
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRH[€SBFN
ò
[‚H	SYSR_HIDAÐ_STApOSFLFLOS {OSFL
¤
¤
IORGF
RKK"KDKbKeKrK€K„KˆKŒKK¢KàK•GÐÐG€G€€@y_CRS¤IORG[‚&FWH__HID%Ô_CRS
†	¸ÿy[‚C
\._SB_MEM__HIDAÐ!_STA {\/_SB_PCI0OSFL
¤
¤
MEM15
2†	
†	†	ð†	øÿy/_CRSŠMEM1
 TOP1t\/_SB_PCI0MDETTOP1¤MEM1[‚#PIC__HIDAÐ_CRS

K K "y[‚5DMAD_HIDAÐ_CRS 
*KKK‡K‰KKÀ y[‚!TMR__HIDAÐ_CRS
	K@"y[‚!RTC__HIDAÐ_CRS
	Kp"y[‚SPKR_HIDAÐ_CRS	
Kay[‚!COPR_HIDAÐ_CRS
	Kð" y[€PSRG
[
PSRGPS2E[‚IPS2M_HIDAÐ_CIDAÐ_STA PS2E¤
¡¤
MCRS
"y_CRS¤MCRS[‚;PS2K_HIDAÐ_CIDAÐKCRS

K`Kd"y_CRS¤KCRSSPIO
.[€WIN1SPIO
[WIN1INDXDATA[†CINDXDATACFG_ LDN_@ACTRACT1ACT2HIOAHIOALIOEHIOEL@INTRINT1DMCHH%GP40HRGE0RGE1RGE2RGE3RGE4HOPT1OPT2OPT3OPT4OPT5OPT6OPT7OPT8OPT9OPTA[€HWMT•
[HWMTHWINHWDT[†K
HWINHWDT@ HW40HW41HW42HW43HW44HW46HW47HW48HW49HW4AHW4BHW4CHW4DHW4EHW4FHW50HW51HW52HW53HW54HW55HW56HW57HW58HW59HW5AHW5BHW5CHW5DHW5EHW5FENFGp
‡INDXp
‡INDX
EXFGp
ªINDXLDFD
LDU1
LDU2
LDIR
LDLP
LDGM
LDMD
[‚EFDC0_HIDAÐ_STA FDST¤GSTA
¤
_DISpFDENDDIS
_CRS¤FCRS_PRS¤FPRS_SRSpFDENDENB
[‚GUAR1_HIDAÐ_UID
_STA U1ST¤GSTA
¤
_DISpCAENDDIS
_CRS¤PCRS


G_SRSPSRSh
pCAENENFG  “IOAH
 “IOAL
øpLPCA¡p
LPCA¡ “IOAL
øpLPCA¡p
LPCAEXFG_PRS¤C1PR[‚N
UAR20_HIDENFGpLDU2LDN_{OPT2
8`EXFG `¤AС¤AÐ_UID
_STA U2ST¤GSTA
¤
_DISpCBENDDIS
_CRS¤PCRS


G_SRSPSRSh
pCBENENFG  “IOAH
 “IOAL
øpLPCB¡p
LPCB¡ “IOAL
øpLPCB¡p
LPCBEXFG_PRS¤C2PR[‚LIRDA_HIDAÐ_STA IRST¤GSTALDIR¤
_DISDDISLDIRK
_CRSBUF6

G"yŒBUF6
IOLOŒBUF6
IOHIŒBUF6
IORLŒBUF6
IORH‹BUF6
	IRQMENFGpLDIRLDN_ ACTRp
˜IOLOp
IOHI¡p
IOLOp
IOHIpIOLOIORLpIOHIIORHy
INTRIRQMEXFG¤BUF6_SRSPSRShLDIR_PRS
0G˜˜"8y[‚OLPT__HIDAÐ7_STAENFGp
LDN_{OPT1
`EXFG }`{€LPST
¤¡¤GSTA
_DISpLPENDDIS
_CRS¤PCRS


E_SRSPSRSh
pLPENENFG  “IOAH
 “IOAL
xpLPLP¡p
LPLP¡pLPLPEXFG_PRS¤LPPR[‚IECP__HIDAÐ5_STAENFGp
LDN_{OPT1
`EXFG ` LPST¤GSTA
¡¤¡¤_DISpLPENDDIS

_CRS¤ECRS
E_SRSESRSh
pLPENENFG  “IOAH
 “IOAL
xpLPLP¡p
LPLP¡pLPLPEXFG_PRS¤EPRS[‚OGAME_HIDAа/D_STAENFGpLDGMLDN_ ‘GMLEGMHEEXFG¤
¡rIOAHIOAL` 	`EXFG¤

¡EXFG¤_DISpGMLEpGMHEE	_CRSBUF6

GyŒBUF6
IOLOŒBUF6
IOHIŒBUF6
IORLŒBUF6
IORHENFGpLDGMLDN_ “IOAL
p
IOLOp
IOHI¡p
IOLOp
IOHIpIOLOIORLpIOHIIORHEXFG¤BUF6_PRS
0G0G8yB_SRSŒh
IOLOŒh
IOHIENFGpLDGMLDN_ “IOLO
p
IOAHp
IOAL¡p
IOAHp
IOAL “IOAL
pGMLEpGMHE¡
pGMLEpGMHEEXFG[‚@!MIDI_HIDAаG_STAENFGpLDMDLDN_ ‘MDEN“IOEH
EXFG¤
¡rIOEHIOEL` 	`EXFG¤

¡EXFG¤_DISpMDENB
_CRSBUF6

G"yŒBUF6
IOLOŒBUF6
IOHIŒBUF6
IORLŒBUF6
IORH‹BUF6
	IRQMENFGpLDMDLDN_ (“IOEH
p
IOHI “IOEL
0p
0IOLO¡p
IOLO¡!p
IOHI “IOEL
p
IOLO¡p
’IOLOpIOLOIORLpIOHIIORHy
INTRIRQMEXFG¤BUF6_PRS6
30G00" 0G" 0G" 0G’’" 8yK	_SRSŒh
IOLOŒh
IOHI‹h
	IRQMENFGpLDMDLDN_ :“IOHI
p
IOEH “IOLO
0p
0IOELpLPMD¡p
IOELpLPMDpMDEN¡!p
IOEH “IOLO
p
IOEL¡p
’IOEL‚IRQM`t`
INTREXFGFDST
U1ST
U2ST
IRST
LPST
KIODT “GSTALDFD
p
FDST “GSTALDU1
p
U1ST “GSTALDU2
p
U2ST “GSTALDIR
p
IRST “GSTALDLP
p
LPST8GSTAENFGphLDN_ 	ACTRp
`¡ }IOAHIOALp

`¡p
`EXFG¤`DDISENFGphLDN_pACTREXFGDENBENFGphLDN_pACTREXFGM
PCRSŒPBUF
IOLOŒPBUF
IOHI‹PBUF
IOHL‹PBUF
IORLŒPBUF
ALMNŒPBUF
LENGŒPBUF
	IRQLENFGphLDN_pIOAHIOHIpIOALIOLOpIOHLIORLpiALMN “IOLO
¼p
LENG¡pjLENGp`y`INTRIRQLEXFG¤PBUFCPSRSŒh
POLBŒh
POHBŒh
	PIRQENFGpiLDN_pPOLBIOALpPOHBIOAH‚PIRQ`t`
INTRpACTREXFGHECRSŒEBUF
EPLOŒEBUF
EPHI‹EBUF
EPHL‹EBUF
EPRL‹EBUF
ALM1‹EBUF

E4LO‹EBUF
E4RL‹EBUF
EIRQ‹EBUF
EDMAENFGphLDN_pIOAHEPHIpIOALEPLOpEPHLEPRLrEPHLE4LOpE4LOE4RL “EPHL¼pALM1¡	pALM1p`pINTRay`aEIRQpDMCHa ”a
p
EDMA¡p`y`aEDMAEXFG¤EBUFHESRSŒh
LOEPŒh
HIEP‹h
IRQE‹h
DMAEENFGpiLDN_pLOEPIOALpHIEPIOAH‚IRQE`t`
INTR DMAE‚DMAE`t`
DMCH¡p
DMCHpACTREXFGCNBF
øMUABSENFGphLDN_ŒCNBF
IOLOŒCNBF
IOHI‹CNBF
IOADpIOALIOLOpIOAHIOHIEXFG¤IOADCSCP
[„0URP1_STA¤CSCP
_ON_p
CSCP
_OFFp
CSCP[„0URP2_STA¤CSCP
_ON_p
CSCP
_OFFp
CSCP[„0FDDP_STA¤CSCP
_ON_p
CSCP
_OFFp
CSCP[„0LPTP_STA¤CSCP
_ON_p
CSCP
_OFFp
CSCPFCRS#
 GòòGôôG÷÷"@*yPBUF

G"yEBUF
GxxGxx"€*yFPRS&
#1GòòGôôG÷÷"@*8yC1PRD
@1Gøø"0Gøø"0Gøø"0Gèè"0Gèè"8yC2PRD
@1Gøø"0Gøø"0Gøø"0Gèè"0Gèè"8yLPPR7
41Gxx"€0Gxx" 0Gxx" 0G¼¼" 8yEPRSI

¥1GxxGxx"€*0GxxGxx" *0GxxGxx" *0G¼¼G¼¼" *0GxxGxx" *0GxxGxx" *0G¼¼G¼¼" *8y[‚C&ICH__ADR_PRTA"ÿÿ
\._SB_LNKC
ÿÿ
\._SB_LNKF
ÿÿ
\._SB_LNKG
ÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKF
ÿÿ
\._SB_LNKG
ÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKC
ÿÿ
\._SB_LNKG
ÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKC
ÿÿ
\._SB_LNKF
ÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKC
ÿÿ
\._SB_LNKF
ÿÿ
\._SB_LNKG
ÿÿ
\._SB_LNKC
ÿÿ
\._SB_LNKF
ÿÿ
\._SB_LNKG
ÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKF
ÿÿ
\._SB_LNKG
ÿÿ
\._SB_LNKA
ÿÿ
\._SB_LNKC
ÿÿ
\._SB_LNKE
_PRW

\_GPE_L0B†\/_SB_PCI0ICH_
[‚G¨IDE0_ADRTIM0H
x
´
ð„

#
!




	


p
I
6
'























TMD0
ŠTMD0
PIO0ŠTMD0
DMA0ŠTMD0
PIO1ŠTMD0
DMA1ŠTMD0
CHNF[€CFG2
@
 [HCFG2TIMPTIMSSTMPSTMSUDMPUDMSUDTPUDTSBPCB0SCB0PCA0SCA0FPCBFSCBFGTM_pÿPIO0pÿPIO1pÿDMA0pÿDMA1pCHNF {h
}CHNF
CHNFz{h3
ep‰ƒˆTIM0
e

fpƒˆƒˆTIM0
fgpgDMA0 {h
p„PIO0¡pgPIO0 {h
 }CHNF
CHNF B{h@}CHNF
CHNFp‰ƒˆTIM0
i

epƒˆƒˆTIM0
efpfDMA1 {h
€p„PIO1¡pfPIO1 C{j
{k
e {m
re
e¡
 {l
re
epƒˆƒˆTIM0
eDMA0}CHNF
CHNF G{j
{zk

e {m
re
e¡
 {l
re
epƒˆƒˆTIM0
eDMA1}CHNF
CHNF¤TMD0CSTM_phTMD0pma{iD€i{k
ük{l
Ìl{m
üm{n
ün K{CHNF
p‰ƒˆTIM0
DMA0

` 	”`
p
` ”`
 
{a
p
`}lƒˆƒˆTIM0
`l}mƒˆƒˆTIM0
`m}k
k 
“`
}n
n¡1 /}“PIO0ÿ“PIO0
 {•DMA0ÿ”DMA0
pDMA0PIO0}i
i O{CHNF
p‰ƒˆTIM0
DMA1

` 	”`
p
` ”`
 
{a
p
`}lyƒˆƒˆTIM0
`
l}mƒˆƒˆTIM0
`m}k
k 
“`
}n
n¡1 /}“PIO1ÿ“PIO1
 {•DMA1ÿ”DMA1
pDMA1PIO1}i
€i {CHNF
}i
i {CHNF
}i
0i{‰ƒˆTIM0
PIO0


`pƒˆƒˆTIM0
`aya
b}ibi :{CHNF
}i@i{‰ƒˆTIM0
PIO1


`pƒˆƒˆTIM0
`a}jajAT01

ïAT02

@ïAT03

 ïAT05

ÆAT06

‘ATA0
$ATA1
$ATA2
$ATA3
$GTIM
GSTM
GUDM
GUDT
GCB0
GFCB
L-GTF_ATAD
ATAB
$p‡i` `‹i
ID00 }“ID00
•`
x¤ATAB¡¤ATABpjTMD0Œi
ID03Œi
ID06‹i
bID49‹i
jID53‹i
vID59ŒATAD
A001ŒATAD
A005ŒATAB
CMD0p
 g hp
°gp
CMD0p
a[ATAB

8CMD1 	{ID00
€¡GpAT06ATADpID06A001pgA005pID03` ”ID03
p
`}A005`A005pATADCMD1p
CMD0p
` h {CHNF
pDMA1`¡ {CHNF
pDMA0` K`p‰ƒˆTIM0
`

`wCMD0
8ere
f[ATABf
8CMD2pAT02ATAD}A001`A001pgA005pATADCMD2p
auCMD0p
` h {CHNF
pPIO1`¡ {CHNF
pPIO0` E`wCMD0
8ere
f[ATABf
8CMD3pAT01ATAD{‰ƒˆTIM0
`


`}A001ƒˆƒˆTIM0
`A001pgA005pATADCMD3uCMD0 J’awCMD0
8ere
f[ATABf
8CMD4 K{ID49‹i
~ID63{ID63
ID63` *`pAT03ATAD}A001v`A001pgA005pATADCMD4uCMD0 M{ID59wCMD0
8ere
f[ATABf
8CMD5pAT05ATAD{ID59
ÿA001pgA005pATADCMD5uCMD0¤ATABIGTFDŒh
CMD0wCMD0
`w`
aGTFB`[GTFB
aDST0[h
aSRC0pSRC0DST0¤GTFB[‚HCHN0_ADR
#_GTM¤GTM_TIMPSTMPUDMPUDTPPCB0FPCBJ
_STMpTIMPGTIMpSTMPGSTMpUDMPGUDMpUDTPGUDTpPCB0GCB0pFPCBGFCBSTM_hGTIMGSTMGUDMGUDTGCB0GFCBpGTIMTIMPpGSTMSTMPpGUDMUDMPpGUDTUDTPpGCB0PCB0pGFCBFPCBpGTF_
ihATA0pGTF_
jhATA1[‚DRV0_ADR
_GTF¤GTFDATA0[‚DRV1_ADR
_GTF¤GTFDATA1[‚HCHN1_ADR
#_GTM¤GTM_TIMSSTMSUDMSUDTSSCB0FSCBJ
_STMpTIMSGTIMpSTMSGSTMpUDMSGUDMpUDTSGUDTpSCB0GCB0pFSCBGFCBSTM_hGTIMGSTMGUDMGUDTGCB0GFCBpGTIMTIMSpGSTMSTMSpGUDMUDMSpGUDTUDTSpGCB0SCB0pGFCBFSCBpGTF_
ihATA2pGTF_
jhATA3[‚DRV0_ADR
_GTF¤GTFDATA2[‚DRV1_ADR
_GTF¤GTFDATA3[‚CUSB__ADRSS3D
_PRW

\_GPE_L03†\/_SB_PCI0USB_
[‚CUSB2_ADRSS3D
_PRW

\_GPE_L04†\/_SB_PCI0USB2
[‚6MM97_ADR_PRW

\_GPE_L05†\._SB_PCI0
SLPS
[‚HSLPB_HIDAÐ*SBEV SLPSp
SLPS†SLPB
¡p
SLPS†SLPB
€\_GPE_L16\/_SB_SLPBSBEV[€FNOR4
G*_SI_@*_SST G!h D“h
\/_SB_PCI0SBRGENFGp
\/_SB_PCI0SBRGLDN_p
\/_SB_PCI0SBRGOPT6p
	\/_SB_PCI0SBRGLDN_p
\/_SB_PCI0SBRGOPT4\/_SB_PCI0SBRGEXFG D“h
\/_SB_PCI0SBRGENFGp
\/_SB_PCI0SBRGLDN_p
\/_SB_PCI0SBRGOPT6p
	\/_SB_PCI0SBRGLDN_p
\/_SB_PCI0SBRGOPT4\/_SB_PCI0SBRGEXFG D“h
\/_SB_PCI0SBRGENFGp
\/_SB_PCI0SBRGLDN_p
€\/_SB_PCI0SBRGOPT6p
	\/_SB_PCI0SBRGLDN_p
@\/_SB_PCI0SBRGOPT4\/_SB_PCI0SBRGEXFG D“h
\/_SB_PCI0SBRGENFGp
\/_SB_PCI0SBRGLDN_p
À\/_SB_PCI0SBRGOPT6p
	\/_SB_PCI0SBRGLDN_p
@\/_SB_PCI0SBRGOPT4\/_SB_PCI0SBRGEXFG¡@\/_SB_PCI0SBRGENFGp
\/_SB_PCI0SBRGLDN_p
@\/_SB_PCI0SBRGOPT6p
	\/_SB_PCI0SBRGLDN_p
\/_SB_PCI0SBRGOPT4\/_SB_PCI0SBRGEXFG[€HWMI•
[HWMIHWMDHWMT[†HWMDHWMTH+BECLFNW1FNW2[€ACIO
²
[ACIOACFG[€PMIO
P[CPMIOPMS0PWSTRTCSPMS1PWENGGP0SGP0EGP1SGP1E@IOMO[€GPIO€
 [GPIO@GPO1GPO2[€IR21
!
[IR21IQ21[€KDAT
`
[KDATKBDTKBIDN_PTSphDBG8phACSTpÿÿGP0SpÿÿGP1S{BECL
BECL ’“h
p
FNW1p
FNW2\/_SB_PCI0SBRGENFGp

\/_SB_PCI0SBRGLDN_ 5’“h
¢.\/_SB_PCI0SBRGOPT4[!
Pp
ÿ\/_SB_PCI0SBRGOPT4 “h
p
3\/_SB_PCI0SBRGOPT7\/_SB_PCI0SBRGEXFG “ACFG
p0IOMO¡+ 
“h
p1IOMO 
“h
p1IOMO 
“h
p1IOMOJ_WAKyh
DBG8 
“h
["¸p0IOMO “RTCS
†\._SB_SLPB
p
ÿFNW1p
ÿFNW2\/_SB_PCI0SBRGENFGp

\/_SB_PCI0SBRGLDN_p
\/_SB_PCI0SBRGOPT7\/_SB_PCI0SBRGEXFG}BECL
€BECLpÿÿGP0SpÿÿGP1Sp
PWEN[€TEMP
€
[TEMPDBG8

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c21e92e204081121446179c82b>