Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Oct 2006 18:53:02 +0200
From:      "O. Hartmann" <ohartman@mail.zedat.fu-berlin.de>
To:        John Baldwin <john@baldwin.cx>
Cc:        freebsd-acpi@FreeBSD.org
Subject:   Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed
Message-ID:  <453CF36E.6000201@mail.zedat.fu-berlin.de>
In-Reply-To: <200610231550.k9NFoRSq056665@freefall.freebsd.org>
References:  <200610231550.k9NFoRSq056665@freefall.freebsd.org>

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

[-- Attachment #1 --]
John Baldwin wrote:
> The following reply was made to PR kern/104625; it has been noted by GNATS.
>
> From: John Baldwin <john@baldwin.cx>
> To: bug-followup@freebsd.org, ohartman@zedat.fu-berlin.de
> Cc:  
> Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed
> Date: Mon, 23 Oct 2006 11:25:09 -0400
>
>  You need to provide an acpidump.  ACPI thermal zones work fine on computers 
>  that list them in their BIOS.  Many older machines only provide access to the 
>  thermals via non-ACPI methods such as over SMBus, etc.
>  
>  -- 
>  John Baldwin
> _______________________________________________
> freebsd-acpi@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-acpi
> To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.org"
>   

Attached to this mail you'll find the acpidump of both boxes.
Please note: ASUS A8N32-SLI IS DEFINITELLY NOT OLD as it has been
introduces last year and since then the problem persists. And, even
worse, OpenBSD seems to show up thermal zones.
As I wrote the 'older' ASUS A8N-SLI Deluxe already showed up thermal
zones, but had a AWARD BIOS while the boxes in question use AMI BIOS. On
all boxes I have access to with AMI BIOS, I can not access thermal zones
in FreeBSD 6.X ...

Regards,
Oliver


[-- Attachment #2 --]
DSDT	j+A0371A0371001INTL& DP80€DP90
SPIO
.IOPBIOPL
IOEB
IOEL
IOGB 
IOGL
IODB0
IODL
IO1B 
IO1L
IO3B
IO3L
€PMBSPMLNSCBSSCLNACBS	ACLNSCIOSCTLEXTS
APIC
ABWV
ŤPCIBŕPCILSMBS[€BIOSdŕű
˙[EBIOSSS1_SS2_SS3_SS4_IOSTTOPM ROMS MG1B MG1L MG2B MG2L CPB0 CPB1 CPB2 CPB3 ASSBAOTBAAXB RRIOp
RRIO[1RDMAp
rDMA[1PICM
_PIC 	hp
ŞDBG8Ąp
ŹDBG8phPICMOSVR˙I
OSFL 
’“OSVR˙¤OSVR “PICM
p
ŹDBG8p
OSVR %[\_OSIa \_OSI
Windows 2001p
OSVRĄA 'MCTH\_OS_
Microsoft Windows NTp
OSVRĄF :MCTH\_OS_
Microsoft WindowsME: Millennium Editionp
OSVR MCTH\_OS_
Linuxp
OSVR¤OSVROMCTH •‡h‡i¤r‡h
`BUF0`BUF1`phBUF0piBUF1˘`v` ’“ƒˆBUF0`ƒˆBUF1`¤¤PRWPCGPRWphˆPRWP
pySS1_
`}`ySS2_
`}`ySS3_
`}`ySS4_
` {y
i`piˆPRWP
Ą-z`
` ‘“OSFL
“OSFL
`ˆPRWP
Ą‚`ˆPRWP
¤PRWPWAKP[€DEB0DP80
[DEB0DBG8[€DEB1DP90
[DEB1DBG9‰ć\_SB_PR00C  ˙˙

LSMB
˙˙
LUB0
˙˙
LUB2
˙˙
LMAC
˙˙
LSA0
˙˙
LSA1
˙˙

LACI
˙˙

LMC9
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
AR00C  ˙˙

LSMB
˙˙
LUB0
˙˙
LUB2
˙˙
LMAC
˙˙
LSA0
˙˙
LSA1
˙˙

LACI
˙˙

LMC9
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
PR01C

˙˙
LNKA
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
AR01C

˙˙
LNKA
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKC
˙˙
LNKD
˙˙
LNKA
˙˙
LNKB
PR02:
˙˙
LNKB

˙˙
LNKC

˙˙
LNKD

˙˙
LNKA
AR02:
˙˙
LNKB

˙˙
LNKC

˙˙
LNKD

˙˙
LNKA
PR03:
˙˙
LNKA

˙˙
LNKB

˙˙
LNKC

˙˙
LNKD
AR03:
˙˙
LNKA

˙˙
LNKB

˙˙
LNKC

˙˙
LNKD
PR04:
˙˙
LNKA

˙˙
LNKB

˙˙
LNKC

˙˙
LNKD
AR04:
˙˙
LNKA

˙˙
LNKB

˙˙
LNKC

˙˙
LNKD
PR05:
˙˙
LNKB

˙˙
LNKC

˙˙
LNKD

˙˙
LNKA
AR05:
˙˙
LNKB

˙˙
LNKC

˙˙
LNKD

˙˙
LNKA
PR06:
˙˙
LNKC

˙˙
LNKD

˙˙
LNKA

˙˙
LNKB
AR06:
˙˙
LNKC

˙˙
LNKD

˙˙
LNKA

˙˙
LNKB
PR07:
˙˙
LNKD

˙˙
LNKA

˙˙
LNKB

˙˙
LNKC
AR07:
˙˙
LNKD

˙˙
LNKA

˙˙
LNKB

˙˙
LNKC
PRSA	
# ÄyPRSAPRSBPRSAPRSCPRSAPRSDPRSARSMBPRSARSB2RSA1	
#yRSA1RSA0PRSARSB0PRSARSACPRSARSCIPRSARSC9PRSARSTARSIR
‰
yRSII
‰
y[‚†1PCI0_HIDAĐ
_ADR
^BN00¤
_BBN¤BN00_UID
_PRT 
PICM¤AR00¤PR00[‚NB2N_ADR
NPTSNWAK[‚PCLK_ADR
[‚ˆ-SBRG_ADR
NSPTSph\/_SB_PCI0IDE0PTS0p\/_SB_PCI0IDE0ID20\/_SB_PCI0IDE0SID0p\/_SB_PCI0IDE0IDTS\/_SB_PCI0IDE0SID1p\/_SB_PCI0IDE0IDTP\/_SB_PCI0IDE0SID2p\/_SB_PCI0IDE0ID22\/_SB_PCI0IDE0SID3p\/_SB_PCI0IDE0UMSS\/_SB_PCI0IDE0SID4p\/_SB_PCI0IDE0UMSP\/_SB_PCI0IDE0SID5pPS1SpPS1Ep\._SB_SLPS4SWAKp\._SB_SLPSpPS1Ep
S1CTp
S3CTp
S4CTp
S5CT[€SMIESCIO
[SMIEPS1SPS1E[€SXCTSCTL
["SXCTS1CTS3CTS4CTS5CTB\_SB_SLPS
[‚KSLPB_HIDAĐ_STA EXTS¤
¤
SBEV SLPS†SLPB
Ą†SLPB
€\._GPE_L01\/_SB_SLPBSBEV_PRW¤

FPCI0_S3D “OSFL
¤
Ą¤
_S1D
NATA[‚BNVRB_HID
NVRAIDBUS_STA {CPB0
¤
Ą¤
_CRS

GŇŇy[‚+PIC__HIDAĐ_CRS
G  G  "y[‚NDMAD_HIDAĐ_CRS8
5*GGG‡‡G‰‰GGŔŔ y[‚%TMR__HIDAĐ_CRS

G@@"y[‚%RTC0_HIDAĐ_CRS

Gpp"y[‚"SPKR_HIDAĐ_CRS

Gaay[‚%COPR_HIDAĐ_CRS

Gđđ" y[‚AFDC__HIDAĐ._FDEFDEP




 _STAp
ˆFDEP
¤FDEP
_STA¤DSTA
_DISDCNT

J_CRSDCRS

pIRQMIRQEpDMAMDMAEpIO11IO21pIO12IO22p
LEN2rIO21
IO31pIO31IO32p
LEN3¤CRS2F_SRSDSRSh
‹h
IRQEŒh
DMAEENFGCGLD
 IRQE‚IRQE`t`
INTRĄp
INTR DMAE‚DMAE`t`
DMCHĄp
DMCHEXFG_PRSM
I1GđđG÷÷"@*0GđđG÷÷"ř*0GppGww"ř*8y[‚LLPTE_HID 
LPTM
¤AĐĄ¤AĐ
_STA¤DSTA
_DISDCNT

O_CRSDCRS

 HLPTM
pIRQMIRQEpDMAMDMAEpIO11IO21pIO12IO22pLEN1LEN2rIO21IO31pIO31IO32pLEN2LEN3¤CRS2Ą¤CRS1
_SRSDSRSh
_PRS LPTM
¤EPPRĄ¤LPPRLPPR3
00Gxx"ř*0Gxx"ř*0Gźź"ř*8yEPPRD
`1GxxGxx"€*0GxxGxx"ř*0GxxGxx"ř*0GźźGźź"ř*8y[‚EGAME_HIDAа/
_STA¤DSTA
_DISDCNT

GMCR

GyC_CRS‹GMCR
IOGL‹GMCR
IOGHENFGCGLD
yIOAH
IOGL}IOALIOGLIOGLpIOGLIOGHŒGMCR
IOALp
IOALEXFG¤GMCR:_SRS‹h
IO11ENFGCGLD
{IO11
˙IOALzIO11
IOAHDCNT

EXFG_PRS

1G8y[‚LMIDI_HIDAа
_STA¤DSTA
_DISDCNT

MDCR

G" yF_CRS‹MDCR
IOML‹MDCR
IOMH‹MDCR
	IRQMENFGCGLD
yIOAH
IOML}IOALIOMLIOMLpIOMLIOMH INTRy
INTRIRQMĄp
IRQMEXFG¤MDCR@_SRS‹h
IO11‹h
	IRQMENFGCGLD
{IO11
˙IOALzIO11
IOAH IRQM‚IRQM`t`
INTRĄp
INTRDCNT

EXFG_PRS
0G0G008" y[‚J.RMSC_HIDAĐ_UID
CRS_N
ÚGG""GDDGbbGeeGrrG€€G„„GˆˆGŒŒGG˘˘GŕŕGĐĐGGGGGGG†	ŕţđ†	đ˙ţ†	°˙O†	đ˙yN_CRS‹CRS_
zGP00‹CRS_
|GP01ŒCRS_
GP0L‹CRS_
‚GP10‹CRS_
„GP11ŒCRS_
‡GP1LpPMBSGP00pPMBSGP01 <’•PMLNzPMLN
GP0LrGP00GP0LGP10rGP01GP0LGP11tPMLNGP0LGP1LĄ
pPMLNGP0L B
SCBS‹CRS_
ŠSC00‹CRS_
ŒSC01ŒCRS_
SC0L‹CRS_
’SC10‹CRS_
”SC11ŒCRS_
—SC1LpSCBSSC00pSCBSSC01 <’•SCLNzSCLN
SC0LrSC00SC0LSC10rSC01SC0LSC11tSCLNSC0LSC1LĄ
pSCLNSC0L B
ACBS‹CRS_
šAC00‹CRS_
œAC01ŒCRS_
ŸAC0L‹CRS_
˘AC10‹CRS_
¤AC11ŒCRS_
§AC1LpACBSAC00pACBSAC01 <’•ACLNzACLN
AC0LrAC00AC0LAC10rAC01AC0LAC11tACLNAC0LAC1LĄ
pACLNAC0L¤CRS_9\/_SB_PCI0SBRG[‚'ASOC_HID
ATK0110_UID	_STA¤
[€\/_SB_PCI0SBRGLPDC
 
[@\/_SB_PCI0SBRGLPDCS3F8S2F8S2E8S3E8M300M330FDC0P378P278P3BCG200G208IRRIO >‘“h
“h
 “jřpiS3F8 “jřpiS2F8 “jčpiS3E8 “jčpiS2E8 ,“h
 “jxpiP378 “jxpiP278 “jźpiP3BC “h
piFDC0 “h
 “j0piM330 “jpiM300 )“h
p` ip
˙` “jp`G200 “jp`G208RDMAK\[€\RAMWtTOPM[\RAMWPAR0 PAR1 [€IOB2.
[IOB2SMICSMISISMI	phSMICGNVS	phPAR0ISMI
p¤PAR1SNVS
phPAR0piPAR1ISMI
qJ\[D\RAMW@ADSP FSBFFVCMAITUFIDVVIDVOCPINOSTNOS1DDRVCPUSCQFSCQFTAIDIOVIDCCAQMAXFMAXVCURFCURVPCEF[€\/_SB_PCI0PCLKMNCK
D
[#\/_SB_PCI0PCLKMNCKMMNNMNEN[€\/_SB_PCI0PCLKSPRD
T
[\/_SB_PCI0PCLKSPRDSPRE[€QDRVIOGB
[QDRVQDDR[€DEB0€
[DEB0DB16DDRT







	


‰$\/_SB_PCI0SBRGASOCMBIF

A8N32-SLI





ASIF¤MBIFOC01
CPU FSB N@œ
ÉOC02"
CPU Multiplier


OC03 
FID VID Mode


OC04
PCI Express',3
e
OC05
OC Profile


OC06
Turbo NOS


OC07
NOS MODE



OC08%
CPU Q-Fan Control


OC09
CPU VID@	=
=OC0A"	
DRAM Voltage(
¸
	OC0B&	
AI Overclock Tuner


OC0C&
Cool&Quiet Support


OBUF2OC01OC02OC03OC04OC05OC06OC07OC08OC09OC0AOC0BOC0COCVO
2OCIFpyMAXV
at	=wa
}ˆOC09
t
=aˆOC09
¤OBUFTEM1$
















ITEMPpFSBFˆTEM1
pFVCMˆTEM1
pAITUˆTEM1
pFIDVˆTEM1
pVIDVˆTEM1
pOCPIˆTEM1
pNOSTˆTEM1
pNOS1ˆTEM1
pDDRVˆTEM1
pCPUSˆTEM1
	pCQFSˆTEM1

pCQFTˆTEM1
pAIDIˆTEM1
pOVIDˆTEM1

pCCAQˆTEM1
pMAXFˆTEM1
pMAXVˆTEM1
¤TEM1A1OCOPpƒˆOC01
a -“hapFSBF`w`
dapaˆCPUO
t`
ČbpbˆCPUO
¤CPUOpƒˆOC02
a I
“haprzCURF

ˆCPUM
przCURF

ˆCPUM
 !“FVCM
pˆOC02
p
ˆCPUM
ĄpˆOC02
p
ˆCPUM
przMAXF

ˆOC02
r
ƒˆOC02
`pƒˆOC02
at`aˆOC02
¤CPUMpƒˆOC03
a D“hapFVCMˆCPFV
 !“CCAQ
pˆOC03
p
ˆCPFV
ĄpˆOC03
p
ˆCPFV
¤CPFVpƒˆOC04
a 	“ha¤PCIVpƒˆOC05
a E“hapOCPIˆOCPR
 "’”AITU
pˆOC05
p
ˆOCPR
ĄpˆOC05
p
ˆOCPR
¤OCPRpƒˆOC06
a ,“ha “AITU
pNOS1ˆNOSP
Ąp
ˆNOSP
¤NOSPpƒˆOC07
a “hapNOSTˆNOSM
¤NOSMpƒˆOC08
a “hapCPUSˆFANB
¤FANBpƒˆOC09
a H“haptCURVMAXVbyb
b{OVID
c}bcbpbˆCPUV
pyMAXV
bt	=wb
}ˆOC09
t
=bˆOC09
¤CPUVpƒˆOC0A
a “hapDDRVˆDDVO
¤DDVOpƒˆOC0B
a “hapAITUˆAIOT
¤AIOTpƒˆOC0C
a “hapCCAQˆACAQ
¤ACAQCPUO N

CPUM



CPFV



Auto
ManualPCIV'
d
OCPRE	



Overclock 1%
Overclock 3%
Overclock 5%
Overclock 8%
Overclock 10%NOSPE	



Overclock 1%
Overclock 3%
Overclock 5%
Overclock 8%
Overclock 10%NOSM5



Auto
Standard%
Sensitive
Heavy LoadFANB 



Disabled
EnabledCPUV



DDVOC	



Auto
2.60V
2.65V
2.70V
2.75V
2.80V
2.85V
2.90V
2.95V
3.00VAIOTA		



Manual
Auto
Standard
OverClock Profile
AI NOSACAQ 



Enabled
DisabledOCSTK	
	
	
	
	
	
	
	
	
		
		
	
K…PROCpƒˆOC01
a F“hapibrb
Čb K“j
 O’”AITU
 ’•FSBFbtFSBFb`ĄtbFSBF` ”`

p
ˆƒˆOCST

¤
p
ˆƒˆOCST

¤
Ąp
ˆƒˆOCST

¤
 ’•FSBFbtFSBFb`ĄtbFSBF`pbFSBF G’”AITU
p
SMISp
ŤSMICp
AITUp
SMISp
ŤSMIC ”`

p
ˆƒˆOCST

¤
p
ŞSMISp
ŤSMICp
ˆƒˆOCST

¤
p
SMISp
ŤSMICp
AITUp
SMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC02
a N“ha “j
p
ˆƒˆOCST

¤
 B“CCQA
p
CCAQp
SMISp
ŤSMICp
FVCMp
SMISp
ŤSMICpyti

FIDVp
SMISp
ŤSMICp
ˆƒˆOCST

¤
 M“FVCM
p
FVCMp
SMISp
ŤSMICpyti

FIDVp
SMISp
ŤSMICp
ˆƒˆOCST

¤
pyti

FIDVp
SMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC03
a K“ha “j
p
ˆƒˆOCST

¤
 E“CCAQ
p
CCAQp
SMISp
ŤSMICpiFVCMp
SMISp
ŤSMICp
ˆƒˆOCST

¤
piFVCMp
SMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC04
a “hap
ˆƒˆOCST

¤
pƒˆOC05
a C“ha 5“j
 ’”AITU
p
ˆƒˆOCST

¤
p
ˆƒˆOCST

¤
 K
’”AITU
p
AITUp
SMISp
ŤSMICpiOCPIp
SMISp
ŤSMIC “i
p
ĘFSBFp
SMISp
ŤSMIC “i
p
ÎFSBFp
SMISp
ŤSMIC “i
p
ŇFSBFp
SMISp
ŤSMIC “i
p
ŘFSBFp
SMISp
ŤSMIC “i
p
ÜFSBFp
SMISp
ŤSMICp
ŞSMISp
ŤSMICp
ˆƒˆOCST

¤
p
AITUp
SMISp
ŤSMICpiOCPIp
SMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC06
a F“ha O“j
 ’”AITU
p
ˆƒˆOCST

¤
 “i
p
ˆƒˆOCST

¤
p
ˆƒˆOCST

¤
 F’”AITU
p
AITUp
SMISp
ŤSMICpiNOS1p
SMISp
ŤSMICp
ˆƒˆOCST

¤
 B“i
p
AITUp
SMISp
ŤSMICpiNOS1p
SMISp
ŤSMICp
ˆƒˆOCST

¤
piNOS1p
SMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC07
a “hap
ˆƒˆOCST

¤
pƒˆOC08
a C“ha “j
p
ˆƒˆOCST

¤
piCPUSp
	SMISp
ŤSMICp
ťSMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC09
a B“ha “j
p
ˆƒˆOCST

¤
pCURFFIDVp
SMISp
ŤSMICp
CCAQp
SMISp
ŤSMICp
FVCMp
SMISp
ŤSMICpriyMAXV
OVIDp
SMISp
ŤSMICpzriyMAXV

VIDVp
SMISp
ŤSMICp
ˆƒˆOCST

¤
pƒˆOC0A
a M“ha “j
p
ˆƒˆOCST
	
¤
 “iDDRVp
ˆƒˆOCST
	
¤
piDDRVp
SMISp
ŤSMICpƒˆDDRTiQDDRp
ˆƒˆOCST
	
¤
pƒˆOC0B
a A	“ha 4“j
 ’“iAITUp
ˆƒˆOCST


¤
p
ˆƒˆOCST


¤
 /’“iAITUpiAITUp
SMISp
ŤSMICp
ˆƒˆOCST


¤
piAITUp
SMISp
ŤSMICp
ˆƒˆOCST


¤
pƒˆOC0C
a K“ha 3“j
 “iCCAQp
ˆƒˆOCST

¤
p
ˆƒˆOCST

¤
 “iCCAQp
ˆƒˆOCST

¤
piCCAQp
	SMISp
ŤSMICp
ˆƒˆOCST

¤
KGETMwrh
č`p˙˙fp
a˘O’”a
€p
b˘A’”b
€pxwbŹéwa
cwc
c 
”c`ptc`cĄpt`cc 
•cfpadpbepcfubuaye
a}adf{f˙˙f¤f[‚O\/_SB_PCI0PCIE_HIDAĐ_UID
CRS_
†	ŕy5_CRSŠCRS_
BAS1ŠCRS_
LEN1p\PCIBBAS1p\PCILLEN1¤CRS_A4\_PR_[ƒKCPU1PAPCT,
‚y
‚yAPSSM
 ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™	APPC¤
[ƒKCPU2APCT,
‚y
‚yAPSSM
 ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™ ™™™	™™	™™™™™™™™™™™™™™	APPC¤
[‚N	OMSC_HIDAĐ_UID
CRS_
†	†	yC_CRS FAPICŠCRS_
ML01ŠCRS_
MB01ŠCRS_
ML02ŠCRS_
MB02pŔţMB01pML01pŕţMB02pML02¤CRS_[‚M\._SB_RMEM_HIDAĐ_UID
CRS_B
>†	
†	†	†	†	yG_CRSŠCRS_
BAS1ŠCRS_
LEN1ŠCRS_
BAS2ŠCRS_
 LEN2ŠCRS_
,LEN3ŠCRS_
4BAS4ŠCRS_
8LEN4 OSFLĄA (MG1B "”MG1BpBAS1tMG1BBAS1LEN1ĄpBAS1pLEN1 rMG1BMG1L`p`BAS2tBAS2LEN2tMG2BLEN3rMG2BMG2LBAS4t
BAS4LEN4¤CRS_[‚DPS2K_HIDAĐ_CIDAĐ_STAy


` {IOST`¤
¤
_CRS
G``Gdd"y.PS2K_PRW¤GPRW

[‚DPS2M_HIDAĐ_CIDAĐ_STAy

` {IOST`¤
¤
CRS1
"yCRS2
G``Gdd"y!_CRSy


` 
{IOST`¤CRS1Ą¤CRS2.PS2M_PRW¤GPRW

[‚GUAR1_UID

_HID¤UHID

_STA¤DSTA
_DISDCNT

_CRS¤DCRS


_SRSDSRSh
_PRS¤CMPRCMPRO
‹1Gřř"*0Gřř"ř*0Gřř"ř*0Gčč"ř*0Gčč"ř*0Gřř"ř*0Gřř"ř*0Gčč"ř*0Gčč"ř*8y.UAR1_PRW¤GPRW

[‚FSIOR_HIDAĐ_UID¤SPIOCRS_-
*GGGGGyF_CRS M’“SPIOđ”SPIO
đ‹CRS_
GP10‹CRS_
GP11ŒCRS_
GPL1pSPIOGP10pSPIOGP11p
GPL1 BIOPB‹CRS_

GP20‹CRS_
GP21ŒCRS_
GPL2pIOPBGP20pIOPBGP21pIOPLGPL2 BIOEB‹CRS_
GP30‹CRS_
GP31ŒCRS_
GPL3pIOEBGP30pIOEBGP31pIOELGPL3 BIOGB‹CRS_
GP40‹CRS_
GP41ŒCRS_
GPL4pIOGBGP40pIOGBGP41pIOGLGPL4 BIODB‹CRS_
"GP50‹CRS_
$GP51ŒCRS_
'GPL5pIODBGP50pIODBGP51pIODLGPL5¤CRS_DCAT.




˙

˙
˙
	
˙


˙
˙
˙
˙


˙
˙
˙
˙
˙IKEY

‡

U
U

‡

U
ŞKBFG
MSFG
UR1F
IENFGp
a “SPIO
.p
a “SPIO
Np
ap
`˘’“`
pƒˆƒˆIKEYa`INDXu`phLDN_4ENTRp
‡INDXp
INDXp
UINDX “SPIO
.p
UINDXĄp
ŞINDXEXFGp
INDXp
DATALPTMENFGCGLDh{OPT0
`EXFG¤`*UHIDENFGCGLDh{OPT0
p`EXFG `¤AФAĐORF0ENTR}OPT0hOPT0EXFGORF1ENTR}OPT1hOPT1EXFGORF2ENTR}OPT2hOPT2EXFGANF0ENTR{OPT0hOPT0EXFGANF2ENTR{OPT2hOPT2EXFGANF4ENTR{OPT4hOPT4EXFGSTF0ENTRphOPT0EXFGSTF1ENTRphOPT1EXFGESIOSp
SIOS[1p
GP10 N	•h
ENFG
p
ACTREXFGANF4
üORF1
 KBFGORF0
ĄANF0
÷ MSFGORF0
ĄANF0
ďENFG
p
ACTREXFGENFG
ANF2
đENFG
{OPF9
ţOPF9{OPC0
ţOPC0{OPC3
ţOPC3{OP29
ďOP29EXFGĄNENFG
{OPC0
OPC0}OPC0
OPC0{OPC3
OPC3}OPC3
OPC3}OPF9
OPF9{OP29
ďOP29EXFGA
SIOWp
GP10p
GP40p
SIOW[1ENFG
p
ACTREXFGSTF0
STF1
˙ENFG
}OP29
OP29}OPC0
OPC0}OPC3
OPC3EXFGENFG
}ACTR
ACTREXFGENFG
}ACTR
ACTREXFGENFG
p
ACTREXFGSIOHp
SIOH[1[€IOIDSPIO
[IOIDINDXDATA[†@	INDXDATA8LDN_HOP290ACTRHIOAHIOALIOH2IOL2@INTRDMCHH%OPC0OPC1OPC2OPC3@OPT0OPT1OPT2OPT3OPT4OPF8OPF9OPFAOPFB.PS2K_PSW 	hp
KBFGĄp
KBFG.PS2M_PSW 	hp
MSFGĄp
MSFGCGLD¤ƒˆDCAThBDSTAENFGCGLDhpACTR`EXFG “`
˙¤
{`
`}IOSTy`hIOST `¤
Ą {y
hIOST¤

Ą¤
@DCNTENFGCGLDhyIOAH
a}IOALaaRRIOhia
 •DMCH
’“{DMCH
a
RDMAhiuapiACTREXFGCRS1
G"*y‹CRS1
	IRQMŒCRS1
DMAM‹CRS1
IO11‹CRS1
IO12ŒCRS1
LEN1CRS2
GG"@*y‹CRS2
IRQEŒCRS2
DMAE‹CRS2
IO21‹CRS2
IO22ŒCRS2
LEN2‹CRS2

IO31‹CRS2
IO32ŒCRS2
LEN3MDCRSENFGCGLDhyIOAH
IO11}IOALIO11IO11pIO11IO12t‚IO11
`y
`LEN1 INTRy
INTRIRQMĄp
IRQM ‘”DMCH
“i
p
DMAMĄ{DMCH
ay
aDMAMEXFG¤CRS1CDSRS‹h
	IRQMŒh
DMAM‹h
IO11ENFGCGLDi{IO11
˙IOALzIO11
IOAH IRQM‚IRQM`t`
INTRĄp
INTR DMAM‚DMAM`t`
DMCHĄp
DMCHEXFGDCNTi
[€GPIOIO1B
[G
GPIOGP10GP11GP12GP13GO14GO15GO16GO17GP20GP21GP22GP23GO24GO25GO26GO27GP30GP31GP32GP33GO34GO35GO36GO37GP40GP41GP42GP43GO44GO45GO46GO47[‚NSMB_ADR
_PRW¤GPRW
	
[‚GUSB0_ADR_S1D
_S3D ‘“OSFL
“OSFL
¤
Ą¤
_PRW¤GPRW

[‚GUSB2_ADR_S1D
_S3D ‘“OSFL
“OSFL
¤
Ą¤
_PRW¤GPRW

[‚INMAC_ADR_PRW

,\_GPE%_L0B†\/_SB_PCI0NMAC
†\._SB_PWRB
[‚OŻIDE0_ADRPTS0
SID0
SID1
SID2
SID3
SID4
SID5
[€IRQM
!
[IRQMIR0MREGF
_REG “h
piREGF[€A090
P
[&A090ID200IDTSIDTPID22 UMSSUMSPTIM0K

<
x
´
đ„

 
"
G
¨
x
Z
<
-



























TMD0
ŠTMD0
PIO0ŠTMD0
DMA0ŠTMD0
PIO1ŠTMD0
DMA1ŠTMD0
CHNF[€CFG2
X
[ECFG2SSPTSMPTPSPTPMPTSSASSMASPSASPMASSDDRSDDAPDDRPDDASSUTSSUESMUTSMUEPSUTPSUEPMUTPMUEGMPT
GMUE
GMUT
GSPT
GSUE
GSUT
[‚GCHN0_ADR
0_GTMp
GTM_CHN0[1¤GTM_PMPTPMUEPMUTPSPTPSUEPSUTF
_STMp
STM_CHN0[1ph[1phTMD0pPMPTGMPTpPMUEGMUEpPMUTGMUTpPSPTGSPTpPSUEGSUEpPSUTGSUTSTM_pGMPTPMPTpGMUEPMUEpGMUTPMUTpGSPTPSPTpGSUEPSUEpGSUTPSUTpGTF_
iATA0pGTF_
jATA1[‚/DRV0_ADR
"_GTFp
_GTF_CHN0_DRV0[1¤RATAATA0[‚/DRV1_ADR
"_GTFp
_GTF_CHN0_DRV1[1¤RATAATA1[‚JCHN1_ADR
0_GTMp
GTM_CHN1[1¤GTM_SMPTSMUESMUTSSPTSSUESSUTI	_STMph[1phTMD0pSMPTGMPTpSMUEGMUEpSMUTGMUTpSSPTGSPTpSSUEGSUEpSSUTGSUTSTM_pGMPTSMPTpGMUESMUEpGMUTSMUTpGSPTSSPTpGSUESSUEpGSUTSSUTpGTF_
iATA2pGTF_
jATA3[‚/DRV0_ADR
"_GTFp
_GTF_CHN1_DRV0[1¤RATAATA2[‚/DRV1_ADR
"_GTFp
_GTF_CHN1_DRV1[1¤RATAATA3DRMPzCPB0
a{a
`¤`OGTM_p˙PIO0p˙PIO1p˙DMA0p˙DMA1p
CHNF REGFĄ¤TMD0 “PTS0
 OSFLp
IR0Mp‰ƒˆTIM0
h

fpƒˆƒˆTIM0
fgpgDMA0pgPIO0p‰ƒˆTIM0
k

fpƒˆƒˆTIM0
fgpgDMA1pgPIO1 .ipƒˆƒˆTIM0
jepƒˆƒˆTIM0
eDMA0}CHNF
CHNF .lpƒˆƒˆTIM0
mepƒˆƒˆTIM0
eDMA1}CHNF
CHNFpTMD0[1¤TMD0@STM_ REGFĄ¤
 ;PTS0pSID0ID20pSID1IDTSpSID2IDTPpSID3ID22pSID4UMSSpSID5UMSPĄ7pID20SID0pIDTSSID1pIDTPSID2pID22SID3pUMSSSID4pUMSPSID5p
PTS0p
GMUEp
GMUTp
GSUEp
GSUT G{CHNF
p‰ƒˆTIM0
DMA0

` 	”`
p
`pƒˆƒˆTIM0
`GMUT}GMUE
GMUEĄ, *}“PIO0˙“PIO0
 {•DMA0˙”DMA0
pDMA0PIO0 G{CHNF
p‰ƒˆTIM0
DMA1

` 	”`
p
`pƒˆƒˆTIM0
`GSUT}GSUE
GSUEĄ, *}“PIO1˙“PIO1
 {•DMA1˙”DMA1
pDMA1PIO1{‰ƒˆTIM0
PIO0


`pƒˆƒˆTIM0
`apaGMPT{‰ƒˆTIM0
PIO1


`pƒˆƒˆTIM0
`apaGSPT¤
AT01

ďAT02

AT03

ĆAT04

‘ATA0
ATA1
ATA2
ATA3
ATAB
ŒATAB
CMDCLGTFBwCMDC
8`r`
a[ATABa
8CMDXwCMDC
`ŒATABr`
A001ŒATABr`
A005phCMDXpiA001pjA005uCMDCM%GTF_
p
GTF_Entry[1pi[1p
CMDCID49ID59
ID53
ID63ID88IRDY
PIOT
DMAT
 M“‡i‹i
bIW49pIW49ID49‹i
jIW53pIW53ID53‹i
~IW63pIW63ID63‹i
vIW59pIW59ID59‹i
°IW88pIW88ID88p
 g Hhp
°g{CHNF
IRDY {CHNF
pPIO1PIOTĄ
pPIO0PIOT '{CHNF
 {CHNF
pDMA1DMATĄ
pDMA0DMATĄ({CHNF
IRDYpPIO0PIOT {CHNF
pDMA0DMAT G{ID53
{ID88˙DMATp‰ƒˆTIM0
DMAT

a 	”a
p
aGTFBAT01}
@agĄF C{ID63˙PIOT{‰ƒˆTIM0
PIOT


`}
 ƒˆƒˆTIM0
`aGTFBAT01ag 8IRDY{‰ƒˆTIM0
PIOT


`}
ƒˆƒˆTIM0
`aGTFBAT01agĄ {ID49GTFBAT01
g ${ID59{ID59
˙GTFBAT03{ID59
˙gp
ATAB_GTF[1pATAB[1¤ATAB,RATAŒh
CMDNwCMDN
8`[h
`RETBpRETB[1¤RETB[‚KATA0_ADR[‚GPRI0_ADR
SPTM
x˙˙˙˙˙˙˙˙_GTM¤SPTM_STMphSPTM[‚"MAST_ADR
_GTFp

F ď`¤`[‚GSEC0_ADR
SSTM
x˙˙˙˙˙˙˙˙_GTM¤SSTM_STMphSSTM[‚"MAST_ADR
_GTFp

F ď`¤`(DRMPp
` “_ADRp
`zCPB0`a{a
`¤`[‚KATA1_ADR[‚GPRI0_ADR
SPTM
x˙˙˙˙˙˙˙˙_GTM¤SPTM_STMphSPTM[‚"MAST_ADR
_GTFp

F ď`¤`[‚GSEC0_ADR
SSTM
x˙˙˙˙˙˙˙˙_GTM¤SSTM_STMphSSTM[‚"MAST_ADR
_GTFp

F ď`¤`(DRMPp
` “_ADRp
`zCPB0`a{a
`¤`[‚6PB2P_ADR_PRW¤GPRW

_PRT 
PICM¤AR01¤PR01[‚MC97_ADR
_PRW¤GPRW

[‚6PCE0_ADR_PRW¤GPRW

_PRT 
PICM¤AR02¤PR02[‚6PCE1_ADR_PRW¤GPRW

_PRT 
PICM¤AR03¤PR03[‚6PCE2_ADR_PRW¤GPRW

_PRT 
PICM¤AR04¤PR04[‚6PCE3_ADR_PRW¤GPRW

_PRT 
PICM¤AR05¤PR05[‚6PCE4_ADR_PRW¤GPRW

_PRT 
PICM¤AR06¤PR06[‚6PCE5_ADR_PRW¤GPRW

_PRT 
PICM¤AR07¤PR07D\_GPE&_L10\/_SB_PCI0SBRGSIOH†\._SB_PWRB
&_L03\/_SB_PCI0SBRGSIOH†\._SB_PWRB
%_L09†\/_SB_PCI0NSMB
†\._SB_PWRB
%_L0D†\/_SB_PCI0USB0
†\._SB_PWRB
%_L05†\/_SB_PCI0USB2
†\._SB_PWRB
%_L00†\/_SB_PCI0PB2P
†\._SB_PWRB
%_L07†\/_SB_PCI0MC97
†\._SB_PWRB
@_L11†\/_SB_PCI0PCE0
†\/_SB_PCI0PCE1
†\/_SB_PCI0PCE2
†\/_SB_PCI0PCE3
†\/_SB_PCI0PCE4
†\/_SB_PCI0PCE5
†\._SB_PWRB
[‚-PWRB_HIDAĐ_UID
Ş_STA
_PRW¤GPRW

[€\/_SB_PCI0SBRGPIMC
|
[@\/_SB_PCI0SBRGPIMCPIRAPIRBPIRCPIRDPIRFPIRGPIRMPIU2SIIDPIIDPIU0PILNPAUIPIMOPR0EPR0FHz\_SB_BUFA	
#€y‹BUFA
ICRSLSTA h¤
Ą¤
	LPRS PICM¤iĄ¤hKLCRS DPICMBUFB
‰
yŒBUFB
AIRQphAIRQ “h
p
AIRQ “h
p
AIRQ “h
p
AIRQ “h

p
AIRQ¤BUFBĄy
hICRS¤BUFAKLCRO DPICMBUFB
‰
yŒBUFB
AIRQphAIRQ “h
p
AIRQ “h
p
AIRQ “h
p
AIRQ “h

p
AIRQ¤BUFBĄy
hICRS¤BUFAHLSRS =PICMŒh
SAIRpSAIR` 	“`
p
` 	“`
p
` 	“`
p
` 	“`
p

`¤`Ą‹h
ISRS‚ISRS`¤v`HLSRO =PICMŒh
SAIRpSAIR` 	“`
p
` 	“`
p

` 	“`
p
` 	“`
p
`¤`Ą‹h
ISRS‚ISRS`¤v`[‚JLNKA_HIDAĐ_UID
_STA¤LSTAPIRA_PRS¤LPRSPRSARSIR
_DISp
PIRA_CRS¤LCRSPIRA_SRSpLSRShPIRA[‚JLNKB_HIDAĐ_UID
_STA¤LSTAPIRB_PRS¤LPRSPRSBRSIR
_DISp
PIRB_CRS¤LCRSPIRB_SRSpLSRShPIRB[‚JLNKC_HIDAĐ_UID
_STA¤LSTAPIRC_PRS¤LPRSPRSCRSIR
_DISp
PIRC_CRS¤LCRSPIRC_SRSpLSRShPIRC[‚JLNKD_HIDAĐ_UID
_STA¤LSTAPIRD_PRS¤LPRSPRSDRSIR
_DISp
PIRD_CRS¤LCRSPIRD_SRSpLSRShPIRD[‚JLUB0_HIDAĐ_UID
_STA¤LSTAPIU0_PRS¤LPRSRSB0RSII
_DISp
PIU0_CRS¤LCROPIU0_SRSpLSROhPIU0[‚JLUB2_HIDAĐ_UID
_STA¤LSTAPIU2_PRS¤LPRSRSB2RSII
_DISp
PIU2_CRS¤LCROPIU2_SRSpLSROhPIU2[‚JLMAC_HIDAĐ_UID
_STA¤LSTAPILN_PRS¤LPRSRSACRSII
_DISp
PILN_CRS¤LCROPILN_SRSpLSROhPILN[‚JLACI_HIDAĐ_UID
	_STA¤LSTAPAUI_PRS¤LPRSRSCIRSII
_DISp
PAUI_CRS¤LCROPAUI_SRSpLSROhPAUI[‚JLMC9_HIDAĐ_UID

_STA¤LSTAPIMO_PRS¤LPRSRSC9RSII
_DISp
PIMO_CRS¤LCROPIMO_SRSpLSROhPIMO[‚JLSMB_HIDAĐ_UID
_STA¤LSTAPIRM_PRS¤LPRSRSMBRSII
_DISp
PIRM_CRS¤LCROPIRM_SRSpLSROhPIRM[‚JLSA0_HIDAĐ_UID
_STA¤LSTAPIID_PRS¤LPRSRSA0RSII_DISp
PIIDp
PIRG_CRS¤LCROPIID_SRSpLSROh`p`PIIDp`PIRG[‚JLSA1_HIDAĐ_UID

_STA¤LSTASIID_PRS¤LPRSRSA1RSII_DISp
SIIDp
PIRF_CRS¤LCROSIID_SRSpLSROh`p`SIIDp`PIRF[‚FLATA_HIDAĐ_UID
_STA¤LSTAPR0E_PRS¤LPRSRSTARSII_DISp
PR0Ep
PR0F_CRS OSFL¤
Ą
¤LCROPR0E_SRSpLSROhPR0EpLSROhPR0FK'\_SB_XCPD
XNPT
XCAP
XDCP
XDCT
XDST

XLCP
XLCT
XLST
XSCP
XSCT
XSST
XRCT
[MUTE8RBPE[#MUTEčrh\PCIB`[€PCFG`
[PCFGXCFG['MUTE¤XCFGARWPE[#MUTEč{hţ˙˙˙hrh\PCIB`[€PCFG`
[PCFGXCFG['MUTE¤XCFGARDPE[#MUTEč{hü˙˙˙hrh\PCIB`[€PCFG`
[PCFGXCFG ['MUTE¤XCFG9WBPE[#MUTE˙rh\PCIB`[€PCFG`
[PCFGXCFGpiXCFG['MUTEBWWPE[#MUTEč{hţ˙˙˙hrh\PCIB`[€PCFG`
[PCFGXCFGpiXCFG['MUTEBWDPE[#MUTEč{hü˙˙˙hrh\PCIB`[€PCFG`
[PCFGXCFG piXCFG['MUTEJRWDP[#MUTEč{hü˙˙˙hrh\PCIB`[€PCFG`
[PCFGXCFG {XCFGja}aiXCFG['MUTEIRPMErh
„`p\._SB_RDPE`a “a˙˙˙˙¤
Ą# a\._SB_WDPE`{a¤
¤
EI\/_SB_PCI0SBRGSIOR[‚NGIT87_HIDAĐ_UID
HWV0¤wVIV0
HWV1¤wVIV1
HWV2¤wVIV2
HWV3¤wVIV3
HWV4¤wVIV4
HWV5¤wVIV5
HWV6¤wVIV6
HWV7¤wVIV7
HWT1pTPI1` ”`
€t``¤w`

HWT2pTPI2` ”`
€t``¤w`

HWT3pTPI3` ”`
€t``¤w`

CHWF1{ETDE
`˘C
y
FTD1a “`
rwEFN1FTC1bĄpFTC1b O“`
 "’•bđ ’“a
€rFTD1
FTD1["
dĄ¤
Ą5 #’”b ’“a
tFTD1
FTD1["
dĄ¤˙˙Ąxp™waba¤aĄI !’•b
đ ’“a
€rFTD1
FTD1["
dĄ¤
Ą4 "’”b
2 ’“a
tFTD1
FTD1["
dĄ¤˙˙Ąxp™waba¤aCHWF2{ETDE
`˘C
y
FTD2a “`
rwEFN2FTC2bĄpFTC2b O“`
 "’•bđ ’“a
€rFTD2
FTD2["
dĄ¤
Ą5 #’”b ’“a
tFTD2
FTD2["
dĄ¤˙˙Ąxp™waba¤aĄI !’•b
đ ’“a
€rFTD2
FTD2["
dĄ¤
Ą4 "’”b
2 ’“a
tFTD2
FTD2["
dĄ¤˙˙Ąxp™waba¤aNHWF3{ETDE
`˘N
 “FTD3
p
aĄp
a “`
rwEFN3FTC3bĄpFTC3b O“`
 "’•bđ ’“a
rFTD3
FTD3["
dĄ¤
Ą5 #’”b ’“a
tFTD3
FTD3["
dĄ¤˙˙Ąxp™waba¤aĄI !’•b
đ ’“a
rFTD3
FTD3["
dĄ¤
Ą4 "’”b
 ’“a
tFTD3
FTD3["
dĄ¤˙˙Ąxp™waba¤a[€ECREIOEB
 [ECRE(HIDXHDAT[†@HIDXHDATHFTD1FTD2FTD3ETDEFTC1FTC2FTC3@EFN1EFN2EFN3(VIV0VIV1VIV2VIV3VIV4VIV5VIV6VIV7TPI1TPI2TPI3#\[\RAMW@CPUQCPVLCPVHCPVCMV\/_SB_PCI0SBRGASOCCORV
Vcore Voltage 
V3VV
 +3.3 Voltageš.
V5VV
 +5 Voltage”|
VV12
 +12 VoltageŘ'č5
VPAR&






"
2



VBUF
CORVV3VVV5VVVV12CVGET “h
¤^^/SIORIT87HWV0 “h
¤^^/SIORIT87HWV2 “h
¤^^/SIORIT87HWV3 “h
¤^^/SIORIT87HWV4CPUT#
CPU TemperatureXśMBTP"
MB TemperatureÂśTBUF
CPUTMBTP4TGET “h
¤^^/SIORIT87HWT1 “h
¤^^/SIORIT87HWT2CPUF!
CPU FAN Speed  CHA1%
CHASSIS FAN Speed  PWRF#
POWER FAN Speed  FBUF
CPUFCHA1PWRFLFGET “h
¤^^/SIORIT87HWF1 “h
¤^^/SIORIT87HWF2 “h
¤^^/SIORIT87HWF3QBUF
VSIF¤VBUFCRVLT{h˙˙`pVGET`apƒˆƒˆVPAR`
bpƒˆƒˆVPAR`
cpƒˆƒˆVPAR`
dwarbcexecerede¤eGSVLT{ƒˆh
˙˙`pƒˆVBUF
a ’•`a¤
u`pƒˆh
ˆƒˆVBUF`
pƒˆh
ˆƒˆVBUF`
pƒˆh
ˆƒˆVBUF`
pƒˆh
ˆƒˆVBUF`
¤
TSIF¤TBUFRTMP{h˙˙`pTGET`a¤aISTMPp{ƒˆh
˙˙`pƒˆTBUF
a ’•`a¤
u`pƒˆh
ˆƒˆTBUF`
pƒˆh
ˆƒˆTBUF`
pƒˆh
ˆƒˆTBUF`
pƒˆh
ˆƒˆTBUF`
¤
FSIF¤FBUFRFAN{h˙˙`pFGET`a¤aGSFAN{ƒˆh
˙˙`pƒˆFBUF
a ’•`a¤
u`pƒˆh
ˆƒˆFBUF`
pƒˆh
ˆƒˆFBUF`
pƒˆh
ˆƒˆFBUF`
pƒˆh
ˆƒˆFBUF`
¤
KQFIF "“CPUQ
{ƒˆQCFN
˙˙ý˙`p`ˆQCFN
Ą}ƒˆQCFN
`p`ˆQCFN
¤QBUF*GCQV 
“h
¤CPVL 
“h
¤CPVH 
“h
¤CPVC¤
QFST “hƒˆQCFN
¤CQST¤
H\_SB_@PCI0CRS_L
ˆˆ
˙Gřřˆ
÷řˆ

˙˙ó‡
˙˙‡˙˙
‡yŠCRS_
\MIN5ŠCRS_
`MAX5ŠCRS_
hLEN5ŠCRS_
vMIN6ŠCRS_
zMAX6ŠCRS_
‚LEN6E_CRSpMG1L` `pMG1BMIN5pMG1LLEN5rMIN5v`MAX5pMG2BMIN6pMG2LLEN6pMG2L`rMIN6v`MAX6¤CRS_WOTB
WSSB
WAXB
K_PTSphDBG8PTS_hp
ˆWAKP
p
ˆWAKP
 “h
“OSFL
["¸pASSBWSSBpAOTBWOTBpAAXBWAXBphASSBpOSFLAOTBpAAXBL_WAKyh
DBG8WAK_h  ASSBpWSSBASSBpWOTBAOTBpWAXBAAXB ƒˆWAKP
p
ˆWAKP
ĄphˆWAKP
¤WAKP\_S0_




 SS1_\_S1_




 SS3_\_S3_




 SS4_\_S4_




\_S5_




FPTS_ >h\/_SB_PCI0SBRGSIOSh\/_SB_PCI0NB2NNPTSh\/_SB_PCI0SBRGSPTShCWAK_\/_SB_PCI0SBRGSIOWh\/_SB_PCI0NB2NNWAKh\/_SB_PCI0SBRGSWAKh
[-- Attachment #3 --]
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20041119
 *
 * Disassembly of /tmp/acpidump.tpdPdM, Mon Oct 23 18:49:52 2006
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "A0371", "A0371001", 1)
{
    Name (DP80, 0x1080)
    Name (DP90, 0x90)
    Name (SPIO, 0x2E)
    Name (IOPB, 0x0C00)
    Name (IOPL, 0x10)
    Name (IOEB, 0x0D00)
    Name (IOEL, 0x10)
    Name (IOGB, 0x0A20)
    Name (IOGL, 0x10)
    Name (IODB, 0x0A30)
    Name (IODL, 0x10)
    Name (IO1B, 0x0A20)
    Name (IO1L, 0x08)
    Name (IO3B, 0x0D00)
    Name (IO3L, 0x80)
    Name (PMBS, 0x0500)
    Name (PMLN, 0x0100)
    Name (SCBS, 0x0800)
    Name (SCLN, 0x0100)
    Name (ACBS, 0x0900)
    Name (ACLN, 0x0100)
    Name (SCIO, 0x0800)
    Name (SCTL, 0x0590)
    Name (EXTS, 0x00)
    Name (APIC, 0x01)
    Name (ABWV, 0xAB)
    Name (PCIB, 0xE0000000)
    Name (PCIL, 0x10000000)
    Name (SMBS, 0x0700)
    OperationRegion (BIOS, SystemMemory, 0x7FFBE064, 0xFF)
    Field (BIOS, ByteAcc, NoLock, Preserve)
    {
        SS1,    1, 
        SS2,    1, 
        SS3,    1, 
        SS4,    1, 
        Offset (0x01), 
        IOST,   16, 
        TOPM,   32, 
        ROMS,   32, 
        MG1B,   32, 
        MG1L,   32, 
        MG2B,   32, 
        MG2L,   32, 
        Offset (0x1C), 
        CPB0,   32, 
        CPB1,   32, 
        CPB2,   32, 
        CPB3,   32, 
        ASSB,   8, 
        AOTB,   8, 
        AAXB,   32
    }

    Method (RRIO, 4, NotSerialized)
    {
        Store ("RRIO", Debug)
    }

    Method (RDMA, 3, NotSerialized)
    {
        Store ("rDMA", Debug)
    }

    Name (PICM, 0x00)
    Method (_PIC, 1, NotSerialized)
    {
        If (Arg0)
        {
            Store (0xAA, DBG8)
        }
        Else
        {
            Store (0xAC, DBG8)
        }

        Store (Arg0, PICM)
    }

    Name (OSVR, Ones)
    Method (OSFL, 0, NotSerialized)
    {
        If (LNot (LEqual (OSVR, Ones)))
        {
            Return (OSVR)
        }

        If (LEqual (PICM, 0x00))
        {
            Store (0xAC, DBG8)
        }

        Store (0x01, OSVR)
        If (CondRefOf (\_OSI, Local1))
        {
            If (\_OSI ("Windows 2001"))
            {
                Store (0x00, OSVR)
            }
        }
        Else
        {
            If (MCTH (\_OS, "Microsoft Windows NT"))
            {
                Store (0x04, OSVR)
            }
            Else
            {
                If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
                {
                    Store (0x02, OSVR)
                }

                If (MCTH (\_OS, "Linux"))
                {
                    Store (0x03, OSVR)
                }
            }
        }

        Return (OSVR)
    }

    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

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

        Return (One)
    }

    Name (PRWP, Package (0x02)
    {
        Zero, 
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        Store (Arg0, Index (PRWP, 0x00))
        Store (ShiftLeft (SS1, 0x01), Local0)
        Or (Local0, ShiftLeft (SS2, 0x02), Local0)
        Or (Local0, ShiftLeft (SS3, 0x03), Local0)
        Or (Local0, ShiftLeft (SS4, 0x04), Local0)
        If (And (ShiftLeft (0x01, Arg1), Local0))
        {
            Store (Arg1, Index (PRWP, 0x01))
        }
        Else
        {
            ShiftRight (Local0, 0x01, Local0)
            If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
            {
                FindSetLeftBit (Local0, Index (PRWP, 0x01))
            }
            Else
            {
                FindSetRightBit (Local0, Index (PRWP, 0x01))
            }
        }

        Return (PRWP)
    }

    Name (WAKP, Package (0x02)
    {
        Zero, 
        Zero
    })
    OperationRegion (DEB0, SystemIO, DP80, 0x01)
    Field (DEB0, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }

    OperationRegion (DEB1, SystemIO, DP90, 0x02)
    Field (DEB1, WordAcc, NoLock, Preserve)
    {
        DBG9,   16
    }

    Scope (\_SB)
    {
        Name (PR00, Package (0x20)
        {
            Package (0x04)
            {
                0x000AFFFF, 
                0x00, 
                LSMB, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x00, 
                LUB0, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x01, 
                LUB2, 
                0x00
            }, 

            Package (0x04)
            {
                0x0013FFFF, 
                0x00, 
                LMAC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0010FFFF, 
                0x00, 
                LSA0, 
                0x00
            }, 

            Package (0x04)
            {
                0x0011FFFF, 
                0x00, 
                LSA1, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x00, 
                LACI, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x01, 
                LMC9, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x03, 
                LNKA, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0003FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                LNKD, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0004FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x03, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x02, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x03, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x00, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x01, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x02, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x03, 
                LNKC, 
                0x00
            }
        })
        Name (AR00, Package (0x20)
        {
            Package (0x04)
            {
                0x000AFFFF, 
                0x00, 
                LSMB, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x00, 
                LUB0, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x01, 
                LUB2, 
                0x00
            }, 

            Package (0x04)
            {
                0x0013FFFF, 
                0x00, 
                LMAC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0010FFFF, 
                0x00, 
                LSA0, 
                0x00
            }, 

            Package (0x04)
            {
                0x0011FFFF, 
                0x00, 
                LSA1, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x00, 
                LACI, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x01, 
                LMC9, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x03, 
                LNKA, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0003FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                LNKD, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0004FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0017FFFF, 
                0x03, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x02, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x03, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x00, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x01, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x02, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x03, 
                LNKC, 
                0x00
            }
        })
        Name (PR01, Package (0x0D)
        {
            Package (0x04)
            {
                0x000BFFFF, 
                0x00, 
                LNKA, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0006FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x03, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x02, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x03, 
                LNKB, 
                0x00
            }
        })
        Name (AR01, Package (0x0D)
        {
            Package (0x04)
            {
                0x000BFFFF, 
                0x00, 
                LNKA, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0006FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x03, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x02, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0x0008FFFF, 
                0x03, 
                LNKB, 
                0x00
            }
        })
        Name (PR02, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                0x00
            }
        })
        Name (AR02, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                0x00
            }
        })
        Name (PR03, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                0x00
            }
        })
        Name (AR03, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                0x00
            }
        })
        Name (PR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                0x00
            }
        })
        Name (AR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                0x00
            }
        })
        Name (PR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                0x00
            }
        })
        Name (AR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                0x00
            }
        })
        Name (PR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                0x00
            }
        })
        Name (AR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                0x00
            }
        })
        Name (PR07, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                0x00
            }
        })
        Name (AR07, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                0x00, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x01, 
                LNKA, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                0x00
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {5,7,10,14,15}
        })
        Alias (PRSA, PRSB)
        Alias (PRSA, PRSC)
        Alias (PRSA, PRSD)
        Alias (PRSA, RSMB)
        Alias (PRSA, RSB2)
        Name (RSA1, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {11}
        })
        Alias (RSA1, RSA0)
        Alias (PRSA, RSB0)
        Alias (PRSA, RSAC)
        Alias (PRSA, RSCI)
        Alias (PRSA, RSC9)
        Alias (PRSA, RSTA)
        Name (RSIR, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared)
            {
                0x00000010,
                0x00000011,
                0x00000012,
                0x00000013,
            }
        })
        Name (RSII, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared)
            {
                0x00000014,
                0x00000015,
                0x00000016,
                0x00000017,
            }
        })
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00180000)
            Method (^BN00, 0, NotSerialized)
            {
                Return (0x00)
            }

            Method (_BBN, 0, NotSerialized)
            {
                Return (BN00 ())
            }

            Name (_UID, 0x00)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Device (NB2N)
            {
                Name (_ADR, 0x00)
                Method (NPTS, 1, NotSerialized)
                {
                }

                Method (NWAK, 1, NotSerialized)
                {
                }
            }

            Device (PCLK)
            {
                Name (_ADR, 0x02)
            }

            Device (SBRG)
            {
                Name (_ADR, 0x000A0000)
                Method (SPTS, 1, NotSerialized)
                {
                    Store (Arg0, \_SB.PCI0.IDE0.PTS0)
                    Store (\_SB.PCI0.IDE0.ID20, \_SB.PCI0.IDE0.SID0)
                    Store (\_SB.PCI0.IDE0.IDTS, \_SB.PCI0.IDE0.SID1)
                    Store (\_SB.PCI0.IDE0.IDTP, \_SB.PCI0.IDE0.SID2)
                    Store (\_SB.PCI0.IDE0.ID22, \_SB.PCI0.IDE0.SID3)
                    Store (\_SB.PCI0.IDE0.UMSS, \_SB.PCI0.IDE0.SID4)
                    Store (\_SB.PCI0.IDE0.UMSP, \_SB.PCI0.IDE0.SID5)
                    Store (One, PS1S)
                    Store (One, PS1E)
                    Store (One, \_SB.SLPS)
                }

                Method (SWAK, 1, NotSerialized)
                {
                    Store (Zero, \_SB.SLPS)
                    Store (Zero, PS1E)
                    Store (0x02, S1CT)
                    Store (0x02, S3CT)
                    Store (0x02, S4CT)
                    Store (0x02, S5CT)
                }

                OperationRegion (SMIE, SystemIO, SCIO, 0x08)
                Field (SMIE, ByteAcc, NoLock, Preserve)
                {
                        ,   15, 
                    PS1S,   1, 
                        ,   31, 
                    PS1E,   1, 
                    Offset (0x08)
                }

                OperationRegion (SXCT, SystemIO, SCTL, 0x10)
                Field (SXCT, ByteAcc, NoLock, Preserve)
                {
                    S1CT,   2, 
                    Offset (0x04), 
                    S3CT,   2, 
                    Offset (0x08), 
                    S4CT,   2, 
                    Offset (0x0C), 
                    S5CT,   2, 
                    Offset (0x10)
                }

                Scope (\_SB)
                {
                    Name (SLPS, 0x00)
                    Device (SLPB)
                    {
                        Name (_HID, EisaId ("PNP0C0E"))
                        Method (_STA, 0, NotSerialized)
                        {
                            If (EXTS)
                            {
                                Return (0x0F)
                            }

                            Return (0x00)
                        }

                        Method (SBEV, 0, NotSerialized)
                        {
                            If (SLPS)
                            {
                                Notify (SLPB, 0x02)
                            }
                            Else
                            {
                                Notify (SLPB, 0x80)
                            }
                        }

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

                        Method (_PRW, 0, NotSerialized)
                        {
                            Return (Package (0x02)
                            {
                                0x01, 
                                0x04
                            })
                        }
                    }

                    Scope (PCI0)
                    {
                        Method (_S3D, 0, NotSerialized)
                        {
                            If (LEqual (OSFL (), 0x02))
                            {
                                Return (0x02)
                            }
                            Else
                            {
                                Return (0x03)
                            }
                        }

                        Name (_S1D, 0x01)
                        Name (NATA, Package (0x01)
                        {
                            0x00100000
                        })
                        Device (NVRB)
                        {
                            Name (_HID, "NVRAIDBUS")
                            Method (_STA, 0, NotSerialized)
                            {
                                If (And (CPB0, 0x01))
                                {
                                    Return (0x0F)
                                }
                                Else
                                {
                                    Return (0x00)
                                }
                            }

                            Name (_CRS, ResourceTemplate ()
                            {
                                IO (Decode16, 0x04D2, 0x04D2, 0x01, 0x01)
                            })
                        }
                    }
                }

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

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

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

                Device (RTC0)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
                        IRQNoFlags () {8}
                    })
                }

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

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

                Device (FDC)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Method (_FDE, 0, NotSerialized)
                    {
                        Name (FDEP, Package (0x05)
                        {
                            0x00, 
                            0x00, 
                            0x02, 
                            0x02, 
                            0x02
                        })
                        If (_STA ())
                        {
                            Store (0x01, Index (FDEP, 0x00))
                        }

                        Return (FDEP)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x03))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x03, 0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        DCRS (0x03, 0x01)
                        Store (IRQM, IRQE)
                        Store (DMAM, DMAE)
                        Store (IO11, IO21)
                        Store (IO12, IO22)
                        Store (0x06, LEN2)
                        Add (IO21, 0x07, IO31)
                        Store (IO31, IO32)
                        Store (0x01, LEN3)
                        Return (CRS2)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x03)
                        CreateWordField (Arg0, 0x11, IRQE)
                        CreateByteField (Arg0, 0x14, DMAE)
                        ENFG (CGLD (0x03))
                        If (IRQE)
                        {
                            FindSetRightBit (IRQE, Local0)
                            Subtract (Local0, 0x01, INTR)
                        }
                        Else
                        {
                            Store (0x00, INTR)
                        }

                        If (DMAE)
                        {
                            FindSetRightBit (DMAE, Local0)
                            Subtract (Local0, 0x01, DMCH)
                        }
                        Else
                        {
                            Store (0x04, DMCH)
                        }

                        EXFG ()
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                            IRQNoFlags () {6}
                            DMA (Compatibility, NotBusMaster, Transfer8) {2}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
                            IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        EndDependentFn ()
                    })
                }

                Device (LPTE)
                {
                    Method (_HID, 0, NotSerialized)
                    {
                        If (LPTM (0x02))
                        {
                            Return (0x0104D041)
                        }
                        Else
                        {
                            Return (0x0004D041)
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x02))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x02, 0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        DCRS (0x02, 0x01)
                        If (LPTM (0x02))
                        {
                            Store (IRQM, IRQE)
                            Store (DMAM, DMAE)
                            Store (IO11, IO21)
                            Store (IO12, IO22)
                            Store (LEN1, LEN2)
                            Add (IO21, 0x0400, IO31)
                            Store (IO31, IO32)
                            Store (LEN2, LEN3)
                            Return (CRS2)
                        }
                        Else
                        {
                            Return (CRS1)
                        }
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x02)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        If (LPTM (0x02))
                        {
                            Return (EPPR)
                        }
                        Else
                        {
                            Return (LPPR)
                        }
                    }

                    Name (LPPR, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        EndDependentFn ()
                    })
                    Name (EPPR, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                            IRQNoFlags () {7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        EndDependentFn ()
                    })
                }

                Device (GAME)
                {
                    Name (_HID, EisaId ("PNPB02F"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x08))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x08, 0x00)
                    }

                    Name (GMCR, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x08, 0x08)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (GMCR, 0x02, IOGL)
                        CreateWordField (GMCR, 0x04, IOGH)
                        ENFG (CGLD (0x08))
                        ShiftLeft (IOAH, 0x08, IOGL)
                        Or (IOAL, IOGL, IOGL)
                        Store (IOGL, IOGH)
                        CreateByteField (GMCR, 0x06, IOAL)
                        Store (0x01, IOAL)
                        EXFG ()
                        Return (GMCR)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x02, IO11)
                        ENFG (CGLD (0x08))
                        And (IO11, 0xFF, IOAL)
                        ShiftRight (IO11, 0x08, IOAH)
                        DCNT (0x08, 0x01)
                        EXFG ()
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x0201, 0x0201, 0x01, 0x08)
                        }
                        EndDependentFn ()
                    })
                }

                Device (MIDI)
                {
                    Name (_HID, EisaId ("PNPB006"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x05))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x05, 0x00)
                    }

                    Name (MDCR, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x02)
                        IRQNoFlags () {5}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (MDCR, 0x02, IOML)
                        CreateWordField (MDCR, 0x04, IOMH)
                        CreateWordField (MDCR, 0x09, IRQM)
                        ENFG (CGLD (0x05))
                        ShiftLeft (IOAH, 0x08, IOML)
                        Or (IOAL, IOML, IOML)
                        Store (IOML, IOMH)
                        If (INTR)
                        {
                            ShiftLeft (0x01, INTR, IRQM)
                        }
                        Else
                        {
                            Store (0x00, IRQM)
                        }

                        EXFG ()
                        Return (MDCR)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x02, IO11)
                        CreateWordField (Arg0, 0x09, IRQM)
                        ENFG (CGLD (0x05))
                        And (IO11, 0xFF, IOAL)
                        ShiftRight (IO11, 0x08, IOAH)
                        If (IRQM)
                        {
                            FindSetRightBit (IRQM, Local0)
                            Subtract (Local0, 0x01, INTR)
                        }
                        Else
                        {
                            Store (0x00, INTR)
                        }

                        DCNT (0x05, 0x01)
                        EXFG ()
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0300, 0x0300, 0x01, 0x02)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0330, 0x0330, 0x01, 0x02)
                        }
                        EndDependentFn ()
                        IRQNoFlags () {5,7,9,10,11}
                    })
                }

                Device (RMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x10)
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
                        IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
                        IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
                        IO (Decode16, 0x0062, 0x0062, 0x00, 0x02)
                        IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B)
                        IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
                        IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
                        IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
                        IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
                        IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
                        IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
                        IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
                        IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
                        IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
                        IO (Decode16, 0x0800, 0x0800, 0x00, 0x10)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        Memory32Fixed (ReadOnly, 0xFEE01000, 0x000FF000)
                        Memory32Fixed (ReadOnly, 0xFEFFF000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xFFB00000, 0x004F0000)
                        Memory32Fixed (ReadOnly, 0xFFF00000, 0x00100000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (CRS, 0x7A, GP00)
                        CreateWordField (CRS, 0x7C, GP01)
                        CreateByteField (CRS, 0x7F, GP0L)
                        CreateWordField (CRS, 0x82, GP10)
                        CreateWordField (CRS, 0x84, GP11)
                        CreateByteField (CRS, 0x87, GP1L)
                        Store (PMBS, GP00)
                        Store (PMBS, GP01)
                        If (LNot (LLess (PMLN, 0x0100)))
                        {
                            ShiftRight (PMLN, 0x01, GP0L)
                            Add (GP00, GP0L, GP10)
                            Add (GP01, GP0L, GP11)
                            Subtract (PMLN, GP0L, GP1L)
                        }
                        Else
                        {
                            Store (PMLN, GP0L)
                        }

                        If (SCBS)
                        {
                            CreateWordField (CRS, 0x8A, SC00)
                            CreateWordField (CRS, 0x8C, SC01)
                            CreateByteField (CRS, 0x8F, SC0L)
                            CreateWordField (CRS, 0x92, SC10)
                            CreateWordField (CRS, 0x94, SC11)
                            CreateByteField (CRS, 0x97, SC1L)
                            Store (SCBS, SC00)
                            Store (SCBS, SC01)
                            If (LNot (LLess (SCLN, 0x0100)))
                            {
                                ShiftRight (SCLN, 0x01, SC0L)
                                Add (SC00, SC0L, SC10)
                                Add (SC01, SC0L, SC11)
                                Subtract (SCLN, SC0L, SC1L)
                            }
                            Else
                            {
                                Store (SCLN, SC0L)
                            }
                        }

                        If (ACBS)
                        {
                            CreateWordField (CRS, 0x9A, AC00)
                            CreateWordField (CRS, 0x9C, AC01)
                            CreateByteField (CRS, 0x9F, AC0L)
                            CreateWordField (CRS, 0xA2, AC10)
                            CreateWordField (CRS, 0xA4, AC11)
                            CreateByteField (CRS, 0xA7, AC1L)
                            Store (ACBS, AC00)
                            Store (ACBS, AC01)
                            If (LNot (LLess (ACLN, 0x0100)))
                            {
                                ShiftRight (ACLN, 0x01, AC0L)
                                Add (AC00, AC0L, AC10)
                                Add (AC01, AC0L, AC11)
                                Subtract (ACLN, AC0L, AC1L)
                            }
                            Else
                            {
                                Store (ACLN, AC0L)
                            }
                        }

                        Return (CRS)
                    }
                }

                Scope (\_SB.PCI0.SBRG)
                {
                    Device (ASOC)
                    {
                        Name (_HID, "ATK0110")
                        Name (_UID, 0x01010110)
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }
                    }
                }

                OperationRegion (\_SB.PCI0.SBRG.LPDC, PCI_Config, 0xA0, 0x06)
                Field (\_SB.PCI0.SBRG.LPDC, ByteAcc, NoLock, Preserve)
                {
                    S3F8,   1, 
                    S2F8,   1, 
                        ,   3, 
                    S2E8,   1, 
                        ,   1, 
                    S3E8,   1, 
                        ,   4, 
                    M300,   1, 
                        ,   2, 
                    M330,   1, 
                        ,   4, 
                    FDC0,   1, 
                    Offset (0x03), 
                    P378,   1, 
                    P278,   1, 
                    P3BC,   1, 
                    Offset (0x04), 
                    G200,   8, 
                    G208,   8
                }

                Method (RRIO, 4, NotSerialized)
                {
                    If (LOr (LEqual (Arg0, 0x00), LEqual (Arg0, 0x01)))
                    {
                        If (LEqual (Arg2, 0x03F8))
                        {
                            Store (Arg1, S3F8)
                        }

                        If (LEqual (Arg2, 0x02F8))
                        {
                            Store (Arg1, S2F8)
                        }

                        If (LEqual (Arg2, 0x03E8))
                        {
                            Store (Arg1, S3E8)
                        }

                        If (LEqual (Arg2, 0x02E8))
                        {
                            Store (Arg1, S2E8)
                        }
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        If (LEqual (Arg2, 0x0378))
                        {
                            Store (Arg1, P378)
                        }

                        If (LEqual (Arg2, 0x0278))
                        {
                            Store (Arg1, P278)
                        }

                        If (LEqual (Arg2, 0x03BC))
                        {
                            Store (Arg1, P3BC)
                        }
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Store (Arg1, FDC0)
                    }

                    If (LEqual (Arg0, 0x05))
                    {
                        If (LEqual (Arg2, 0x0330))
                        {
                            Store (Arg1, M330)
                        }

                        If (LEqual (Arg2, 0x0300))
                        {
                            Store (Arg1, M300)
                        }
                    }

                    If (LEqual (Arg0, 0x08))
                    {
                        Store (Zero, Local0)
                        If (Arg1)
                        {
                            Store (0xFF, Local0)
                        }

                        If (LEqual (Arg2, 0x0200))
                        {
                            Store (Local0, G200)
                        }

                        If (LEqual (Arg2, 0x0208))
                        {
                            Store (Local0, G208)
                        }
                    }
                }

                Method (RDMA, 3, NotSerialized)
                {
                }

                Scope (\)
                {
                    OperationRegion (\RAMW, SystemMemory, Subtract (TOPM, 0x00010000), 0x00010000)
                    Field (\RAMW, ByteAcc, NoLock, Preserve)
                    {
                        PAR0,   32, 
                        PAR1,   32
                    }

                    OperationRegion (IOB2, SystemIO, 0x082E, 0x02)
                    Field (IOB2, ByteAcc, NoLock, Preserve)
                    {
                        SMIC,   8, 
                        SMIS,   8
                    }

                    Method (ISMI, 1, Serialized)
                    {
                        Store (Arg0, SMIC)
                    }

                    Method (GNVS, 1, Serialized)
                    {
                        Store (Arg0, PAR0)
                        ISMI (0x70)
                        Return (PAR1)
                    }

                    Method (SNVS, 2, Serialized)
                    {
                        Store (Arg0, PAR0)
                        Store (Arg1, PAR1)
                        ISMI (0x71)
                    }
                }

                Scope (\)
                {
                    Field (\RAMW, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x08), 
                        ADSP,   32, 
                        FSBF,   16, 
                        FVCM,   8, 
                        AITU,   8, 
                        FIDV,   8, 
                        VIDV,   8, 
                        OCPI,   8, 
                        NOST,   8, 
                        NOS1,   8, 
                        DDRV,   8, 
                        CPUS,   1, 
                        CQFS,   3, 
                        CQFT,   4, 
                        AIDI,   8, 
                        OVID,   8, 
                        CCAQ,   8, 
                        MAXF,   8, 
                        MAXV,   8, 
                        CURF,   8, 
                        CURV,   8, 
                        PCEF,   8
                    }
                }

                OperationRegion (\_SB.PCI0.PCLK.MNCK, PCI_Config, 0x44, 0x04)
                Field (\_SB.PCI0.PCLK.MNCK, ByteAcc, NoLock, Preserve)
                {
                    MMNN,   16, 
                        ,   14, 
                    MNEN,   1, 
                    Offset (0x04)
                }

                OperationRegion (\_SB.PCI0.PCLK.SPRD, PCI_Config, 0x54, 0x04)
                Field (\_SB.PCI0.PCLK.SPRD, ByteAcc, NoLock, Preserve)
                {
                    SPRE,   1, 
                    Offset (0x04)
                }

                OperationRegion (QDRV, SystemIO, IOGB, 0x03)
                Field (QDRV, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x02), 
                        ,   1, 
                    QDDR,   4, 
                    Offset (0x03)
                }

                OperationRegion (DEB0, SystemIO, 0x1080, 0x02)
                Field (DEB0, ByteAcc, NoLock, Preserve)
                {
                    DB16,   16
                }

                Name (DDRT, Package (0x0A)
                {
                    0x0D, 
                    0x0F, 
                    0x0E, 
                    0x0D, 
                    0x0B, 
                    0x07, 
                    0x09, 
                    0x08, 
                    0x03, 
                    0x02
                })
                Scope (\_SB.PCI0.SBRG.ASOC)
                {
                    Name (MBIF, Package (0x08)
                    {
                        0x01, 
                        "A8N32-SLI", 
                        0x01, 
                        0x01, 
                        0x02, 
                        0x00, 
                        0x00, 
                        0x00
                    })
                    Method (ASIF, 0, NotSerialized)
                    {
                        Return (MBIF)
                    }

                    Name (OC01, Package (0x06)
                    {
                        0x01010000, 
                        "CPU FSB", 
                        0x4E20, 
                        0x9C40, 
                        0xC9, 
                        0x00010003
                    })
                    Name (OC02, Package (0x06)
                    {
                        0x01060001, 
                        "CPU Multiplier", 
                        0x04, 
                        0x19, 
                        0x16, 
                        0x00010000
                    })
                    Name (OC03, Package (0x06)
                    {
                        0x01060002, 
                        "FID VID Mode", 
                        0x00, 
                        0x01, 
                        0x01, 
                        0x00010000
                    })
                    Name (OC04, Package (0x06)
                    {
                        0x07010003, 
                        "PCI Express", 
                        0x2710, 
                        0x332C, 
                        0x65, 
                        0x00
                    })
                    Name (OC05, Package (0x06)
                    {
                        0x05050004, 
                        "OC Profile", 
                        0x00, 
                        0x04, 
                        0x05, 
                        0x00010001
                    })
                    Name (OC06, Package (0x06)
                    {
                        0x08050005, 
                        "Turbo NOS", 
                        0x00, 
                        0x04, 
                        0x05, 
                        0x00010000
                    })
                    Name (OC07, Package (0x06)
                    {
                        0x08060006, 
                        "NOS MODE", 
                        0x00, 
                        0x03, 
                        0x04, 
                        0x00
                    })
                    Name (OC08, Package (0x06)
                    {
                        0x04060003, 
                        "CPU Q-Fan Control", 
                        0x00, 
                        0x01, 
                        0x01, 
                        0x00010003
                    })
                    Name (OC09, Package (0x06)
                    {
                        0x01020008, 
                        "CPU VID", 
                        0x1F40, 
                        0x3D09, 
                        0x3D, 
                        0x00010000
                    })
                    Name (OC0A, Package (0x06)
                    {
                        0x02020009, 
                        "DRAM Voltage", 
                        0x0A28, 
                        0x0BB8, 
                        0x09, 
                        0x00010003
                    })
                    Name (OC0B, Package (0x06)
                    {
                        0x0906000C, 
                        "AI Overclock Tuner", 
                        0x00, 
                        0x04, 
                        0x05, 
                        0x00010003
                    })
                    Name (OC0C, Package (0x06)
                    {
                        0x0106000B, 
                        "Cool&Quiet Support", 
                        0x00, 
                        0x01, 
                        0x02, 
                        0x00010003
                    })
                    Name (OBUF, Package (0x0C)
                    {
                        OC01, 
                        OC02, 
                        OC03, 
                        OC04, 
                        OC05, 
                        OC06, 
                        OC07, 
                        OC08, 
                        OC09, 
                        OC0A, 
                        OC0B, 
                        OC0C
                    })
                    Name (OCVO, 0x00)
                    Method (OCIF, 0, NotSerialized)
                    {
                        Store (ShiftLeft (MAXV, 0x01), Local1)
                        Subtract (0x3D09, Multiply (Local1, 0x7D), Index (OC09, 0x03))
                        Subtract (0x3D, Local1, Index (OC09, 0x04))
                        Return (OBUF)
                    }

                    Name (TEM1, Package (0x11)
                    {
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00, 
                        0x00
                    })
                    Method (TEMP, 1, NotSerialized)
                    {
                        Store (FSBF, Index (TEM1, 0x00))
                        Store (FVCM, Index (TEM1, 0x01))
                        Store (AITU, Index (TEM1, 0x02))
                        Store (FIDV, Index (TEM1, 0x03))
                        Store (VIDV, Index (TEM1, 0x04))
                        Store (OCPI, Index (TEM1, 0x05))
                        Store (NOST, Index (TEM1, 0x06))
                        Store (NOS1, Index (TEM1, 0x07))
                        Store (DDRV, Index (TEM1, 0x08))
                        Store (CPUS, Index (TEM1, 0x09))
                        Store (CQFS, Index (TEM1, 0x0A))
                        Store (CQFT, Index (TEM1, 0x0B))
                        Store (AIDI, Index (TEM1, 0x0C))
                        Store (OVID, Index (TEM1, 0x0D))
                        Store (CCAQ, Index (TEM1, 0x0E))
                        Store (MAXF, Index (TEM1, 0x0F))
                        Store (MAXV, Index (TEM1, 0x10))
                        Return (TEM1)
                    }

                    Method (OCOP, 1, NotSerialized)
                    {
                        Store (DerefOf (Index (OC01, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (FSBF, Local0)
                            Multiply (Local0, 0x64, Local1)
                            Store (Local1, Index (CPUO, 0x01))
                            Subtract (Local0, 0xC8, Local2)
                            Store (Local2, Index (CPUO, 0x02))
                            Return (CPUO)
                        }

                        Store (DerefOf (Index (OC02, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (Add (ShiftRight (CURF, 0x01), 0x04), Index (CPUM, 0x01))
                            Store (Add (ShiftRight (CURF, 0x01), 0x04), Index (CPUM, 0x02))
                            If (LEqual (FVCM, 0x01))
                            {
                                Store (0x00010000, Index (OC02, 0x05))
                                Store (0x00, Index (CPUM, 0x03))
                            }
                            Else
                            {
                                Store (0x00010000, Index (OC02, 0x05))
                                Store (0x00, Index (CPUM, 0x03))
                            }

                            Store (Add (ShiftRight (MAXF, 0x01), 0x04), Index (OC02, 0x03))
                            Add (0x01, DerefOf (Index (OC02, 0x03)), Local0)
                            Store (DerefOf (Index (OC02, 0x02)), Local1)
                            Subtract (Local0, Local1, Index (OC02, 0x04))
                            Return (CPUM)
                        }

                        Store (DerefOf (Index (OC03, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (FVCM, Index (CPFV, 0x02))
                            If (LEqual (CCAQ, 0x00))
                            {
                                Store (0x00010000, Index (OC03, 0x05))
                                Store (0x00, Index (CPFV, 0x03))
                            }
                            Else
                            {
                                Store (0x00010003, Index (OC03, 0x05))
                                Store (0x01, Index (CPFV, 0x03))
                            }

                            Return (CPFV)
                        }

                        Store (DerefOf (Index (OC04, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Return (PCIV)
                        }

                        Store (DerefOf (Index (OC05, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (OCPI, Index (OCPR, 0x02))
                            If (LNot (LGreater (AITU, 0x03)))
                            {
                                Store (0x00010003, Index (OC05, 0x05))
                                Store (0x01, Index (OCPR, 0x03))
                            }
                            Else
                            {
                                Store (0x00010003, Index (OC05, 0x05))
                                Store (0x01, Index (OCPR, 0x03))
                            }

                            Return (OCPR)
                        }

                        Store (DerefOf (Index (OC06, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (AITU, 0x04))
                            {
                                Store (NOS1, Index (NOSP, 0x02))
                            }
                            Else
                            {
                                Store (0x00, Index (NOSP, 0x02))
                            }

                            Return (NOSP)
                        }

                        Store (DerefOf (Index (OC07, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (NOST, Index (NOSM, 0x02))
                            Return (NOSM)
                        }

                        Store (DerefOf (Index (OC08, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (CPUS, Index (FANB, 0x02))
                            Return (FANB)
                        }

                        Store (DerefOf (Index (OC09, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (Subtract (CURV, MAXV), Local2)
                            ShiftLeft (Local2, 0x01, Local2)
                            And (OVID, 0x01, Local3)
                            Or (Local2, Local3, Local2)
                            Store (Local2, Index (CPUV, 0x02))
                            Store (ShiftLeft (MAXV, 0x01), Local2)
                            Subtract (0x3D09, Multiply (Local2, 0x7D), Index (OC09, 0x03))
                            Subtract (0x3D, Local2, Index (OC09, 0x04))
                            Return (CPUV)
                        }

                        Store (DerefOf (Index (OC0A, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (DDRV, Index (DDVO, 0x02))
                            Return (DDVO)
                        }

                        Store (DerefOf (Index (OC0B, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (AITU, Index (AIOT, 0x02))
                            Return (AIOT)
                        }

                        Store (DerefOf (Index (OC0C, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (CCAQ, Index (ACAQ, 0x02))
                            Return (ACAQ)
                        }
                    }

                    Name (CPUO, Package (0x04)
                    {
                        0x01010000, 
                        0x4E20, 
                        0x00, 
                        0x01
                    })
                    Name (CPUM, Package (0x04)
                    {
                        0x01060001, 
                        0x00, 
                        0x00, 
                        0x00
                    })
                    Name (CPFV, Package (0x06)
                    {
                        0x01060002, 
                        0x00, 
                        0x00, 
                        0x00, 
                        "Auto", 
                        "Manual"
                    })
                    Name (PCIV, Package (0x04)
                    {
                        0x07010003, 
                        0x2710, 
                        0x64, 
                        0x00
                    })
                    Name (OCPR, Package (0x09)
                    {
                        0x05050004, 
                        0x00, 
                        0x00, 
                        0x00, 
                        "Overclock 1%", 
                        "Overclock 3%", 
                        "Overclock 5%", 
                        "Overclock 8%", 
                        "Overclock 10%"
                    })
                    Name (NOSP, Package (0x09)
                    {
                        0x08050005, 
                        0x00, 
                        0x00, 
                        0x01, 
                        "Overclock 1%", 
                        "Overclock 3%", 
                        "Overclock 5%", 
                        "Overclock 8%", 
                        "Overclock 10%"
                    })
                    Name (NOSM, Package (0x08)
                    {
                        0x08060006, 
                        0x00, 
                        0x00, 
                        0x00, 
                        "Auto", 
                        "Standard%", 
                        "Sensitive", 
                        "Heavy Load"
                    })
                    Name (FANB, Package (0x06)
                    {
                        0x04040007, 
                        0x00, 
                        0x00, 
                        0x01, 
                        "Disabled", 
                        "Enabled"
                    })
                    Name (CPUV, Package (0x04)
                    {
                        0x01020008, 
                        0x00, 
                        0x00, 
                        0x01
                    })
                    Name (DDVO, Package (0x0E)
                    {
                        0x02020009, 
                        0x00, 
                        0x00, 
                        0x01, 
                        "Auto", 
                        "2.60V", 
                        "2.65V", 
                        "2.70V", 
                        "2.75V", 
                        "2.80V", 
                        "2.85V", 
                        "2.90V", 
                        "2.95V", 
                        "3.00V"
                    })
                    Name (AIOT, Package (0x09)
                    {
                        0x0906000C, 
                        0x00, 
                        0x00, 
                        0x01, 
                        "Manual", 
                        "Auto", 
                        "Standard", 
                        "OverClock Profile", 
                        "AI NOS"
                    })
                    Name (ACAQ, Package (0x06)
                    {
                        0x0106000B, 
                        0x00, 
                        0x00, 
                        0x00, 
                        "Enabled", 
                        "Disabled"
                    })
                    Name (OCST, Package (0x0C)
                    {
                        Package (0x02)
                        {
                            0x01010000, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x01060001, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x01060002, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x07010003, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x05050004, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x08050005, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x08060006, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x04060003, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x01020008, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x02020009, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x0906000C, 
                            0x01
                        }, 

                        Package (0x02)
                        {
                            0x0106000B, 
                            0x01
                        }
                    })
                    Method (PROC, 3, NotSerialized)
                    {
                        Store (DerefOf (Index (OC01, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (Arg1, Local2)
                            Add (Local2, 0xC8, Local2)
                            If (LEqual (Arg2, 0x00))
                            {
                                If (LNot (LGreater (AITU, 0x03)))
                                {
                                    If (LNot (LLess (FSBF, Local2)))
                                    {
                                        Subtract (FSBF, Local2, Local0)
                                    }
                                    Else
                                    {
                                        Subtract (Local2, FSBF, Local0)
                                    }

                                    If (LGreater (Local0, 0x0A))
                                    {
                                        Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
                                        Return (0x03)
                                    }

                                    Store (0x01, Index (DerefOf (Index (OCST, 0x00)), 0x01))
                                    Return (0x01)
                                }
                                Else
                                {
                                    Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
                                    Return (0x03)
                                }
                            }

                            If (LNot (LLess (FSBF, Local2)))
                            {
                                Subtract (FSBF, Local2, Local0)
                            }
                            Else
                            {
                                Subtract (Local2, FSBF, Local0)
                            }

                            Store (Local2, FSBF)
                            If (LNot (LGreater (AITU, 0x03)))
                            {
                                Store (0x00, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x00, AITU)
                                Store (0x02, SMIS)
                                Store (0xAB, SMIC)
                                If (LGreater (Local0, 0x0A))
                                {
                                    Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
                                    Return (0x03)
                                }

                                Store (0xAA, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x01, Index (DerefOf (Index (OCST, 0x00)), 0x01))
                                Return (0x01)
                            }

                            Store (0x00, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x00, AITU)
                            Store (0x02, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
                            Return (0x03)
                        }

                        Store (DerefOf (Index (OC02, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
                                Return (0x03)
                            }

                            If (LEqual (CCQA, 0x00))
                            {
                                Store (0x01, CCAQ)
                                Store (0x0C, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x01, FVCM)
                                Store (0x01, SMIS)
                                Store (0xAB, SMIC)
                                Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV)
                                Store (0x03, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
                                Return (0x03)
                            }

                            If (LEqual (FVCM, 0x00))
                            {
                                Store (0x01, FVCM)
                                Store (0x01, SMIS)
                                Store (0xAB, SMIC)
                                Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV)
                                Store (0x03, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
                                Return (0x03)
                            }

                            Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV)
                            Store (0x03, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
                            Return (0x03)
                        }

                        Store (DerefOf (Index (OC03, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01))
                                Return (0x03)
                            }

                            If (LEqual (CCAQ, 0x00))
                            {
                                Store (0x01, CCAQ)
                                Store (0x0C, SMIS)
                                Store (0xAB, SMIC)
                                Store (Arg1, FVCM)
                                Store (0x01, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01))
                                Return (0x03)
                            }

                            Store (Arg1, FVCM)
                            Store (0x01, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01))
                            Return (0x03)
                        }

                        Store (DerefOf (Index (OC04, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (0x03, Index (DerefOf (Index (OCST, 0x03)), 0x01))
                            Return (0x03)
                        }

                        Store (DerefOf (Index (OC05, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                If (LNot (LGreater (AITU, 0x03)))
                                {
                                    Store (0x01, Index (DerefOf (Index (OCST, 0x04)), 0x01))
                                    Return (0x01)
                                }

                                Store (0x03, Index (DerefOf (Index (OCST, 0x04)), 0x01))
                                Return (0x03)
                            }

                            If (LNot (LGreater (AITU, 0x03)))
                            {
                                Store (0x03, AITU)
                                Store (0x02, SMIS)
                                Store (0xAB, SMIC)
                                Store (Arg1, OCPI)
                                Store (0x05, SMIS)
                                Store (0xAB, SMIC)
                                If (LEqual (Arg1, 0x00))
                                {
                                    Store (0xCA, FSBF)
                                    Store (0x00, SMIS)
                                    Store (0xAB, SMIC)
                                }

                                If (LEqual (Arg1, 0x01))
                                {
                                    Store (0xCE, FSBF)
                                    Store (0x00, SMIS)
                                    Store (0xAB, SMIC)
                                }

                                If (LEqual (Arg1, 0x02))
                                {
                                    Store (0xD2, FSBF)
                                    Store (0x00, SMIS)
                                    Store (0xAB, SMIC)
                                }

                                If (LEqual (Arg1, 0x03))
                                {
                                    Store (0xD8, FSBF)
                                    Store (0x00, SMIS)
                                    Store (0xAB, SMIC)
                                }

                                If (LEqual (Arg1, 0x04))
                                {
                                    Store (0xDC, FSBF)
                                    Store (0x00, SMIS)
                                    Store (0xAB, SMIC)
                                }

                                Store (0xAA, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x01, Index (DerefOf (Index (OCST, 0x04)), 0x01))
                                Return (0x01)
                            }

                            Store (0x03, AITU)
                            Store (0x02, SMIS)
                            Store (0xAB, SMIC)
                            Store (Arg1, OCPI)
                            Store (0x05, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x03, Index (DerefOf (Index (OCST, 0x04)), 0x01))
                            Return (0x03)
                        }

                        Store (DerefOf (Index (OC06, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                If (LNot (LGreater (AITU, 0x03)))
                                {
                                    Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
                                    Return (0x03)
                                }

                                If (LEqual (Arg1, 0x00))
                                {
                                    Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
                                    Return (0x03)
                                }

                                Store (0x01, Index (DerefOf (Index (OCST, 0x05)), 0x01))
                                Return (0x01)
                            }

                            If (LNot (LGreater (AITU, 0x03)))
                            {
                                Store (0x04, AITU)
                                Store (0x02, SMIS)
                                Store (0xAB, SMIC)
                                Store (Arg1, NOS1)
                                Store (0x07, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
                                Return (0x03)
                            }

                            If (LEqual (Arg1, 0x00))
                            {
                                Store (0x01, AITU)
                                Store (0x02, SMIS)
                                Store (0xAB, SMIC)
                                Store (Arg1, NOS1)
                                Store (0x07, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
                                Return (0x03)
                            }

                            Store (Arg1, NOS1)
                            Store (0x07, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x01, Index (DerefOf (Index (OCST, 0x05)), 0x01))
                            Return (0x01)
                        }

                        Store (DerefOf (Index (OC07, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            Store (0x01, Index (DerefOf (Index (OCST, 0x06)), 0x01))
                            Return (0x01)
                        }

                        Store (DerefOf (Index (OC08, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                Store (0x01, Index (DerefOf (Index (OCST, 0x07)), 0x01))
                                Return (0x01)
                            }

                            Store (Arg1, CPUS)
                            Store (0x09, SMIS)
                            Store (0xAB, SMIC)
                            Store (0xBB, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x01, Index (DerefOf (Index (OCST, 0x07)), 0x01))
                            Return (0x01)
                        }

                        Store (DerefOf (Index (OC09, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                Store (0x03, Index (DerefOf (Index (OCST, 0x08)), 0x01))
                                Return (0x03)
                            }

                            Store (CURF, FIDV)
                            Store (0x03, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x01, CCAQ)
                            Store (0x0C, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x01, FVCM)
                            Store (0x01, SMIS)
                            Store (0xAB, SMIC)
                            Store (Add (Arg1, ShiftLeft (MAXV, 0x01)), OVID)
                            Store (0x0B, SMIS)
                            Store (0xAB, SMIC)
                            Store (ShiftRight (Add (Arg1, ShiftLeft (MAXV, 0x01)), 0x01), VIDV)
                            Store (0x04, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x03, Index (DerefOf (Index (OCST, 0x08)), 0x01))
                            Return (0x03)
                        }

                        Store (DerefOf (Index (OC0A, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01))
                                Return (0x01)
                            }

                            If (LEqual (Arg1, DDRV))
                            {
                                Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01))
                                Return (0x01)
                            }

                            Store (Arg1, DDRV)
                            Store (0x08, SMIS)
                            Store (0xAB, SMIC)
                            Store (DerefOf (Index (DDRT, Arg1)), QDDR)
                            Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01))
                            Return (0x01)
                        }

                        Store (DerefOf (Index (OC0B, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                If (LNot (LEqual (Arg1, AITU)))
                                {
                                    Store (0x03, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
                                    Return (0x03)
                                }

                                Store (0x01, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
                                Return (0x01)
                            }

                            If (LNot (LEqual (Arg1, AITU)))
                            {
                                Store (Arg1, AITU)
                                Store (0x02, SMIS)
                                Store (0xAB, SMIC)
                                Store (0x03, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
                                Return (0x03)
                            }

                            Store (Arg1, AITU)
                            Store (0x02, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x01, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
                            Return (0x01)
                        }

                        Store (DerefOf (Index (OC0C, 0x00)), Local1)
                        If (LEqual (Arg0, Local1))
                        {
                            If (LEqual (Arg2, 0x00))
                            {
                                If (LEqual (Arg1, CCAQ))
                                {
                                    Store (0x01, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
                                    Return (0x01)
                                }

                                Store (0x03, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
                                Return (0x03)
                            }

                            If (LEqual (Arg1, CCAQ))
                            {
                                Store (0x01, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
                                Return (0x01)
                            }

                            Store (Arg1, CCAQ)
                            Store (0x09, SMIS)
                            Store (0xAB, SMIC)
                            Store (0x03, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
                            Return (0x03)
                        }
                    }

                    Method (GETM, 1, NotSerialized)
                    {
                        Multiply (Add (Arg0, 0x01), 0x03E8, Local0)
                        Store (0xFFFF, Local6)
                        Store (0x10, Local1)
                        While (LNot (LGreater (Local1, 0x80)))
                        {
                            Store (0x10, Local2)
                            While (LNot (LGreater (Local2, 0x80)))
                            {
                                Store (Divide (Multiply (Local2, 0x0005E9AC), Multiply (Local1, 0x04), ), Local3)
                                Multiply (Local3, 0x02, Local3)
                                If (LGreater (Local3, Local0))
                                {
                                    Store (Subtract (Local3, Local0), Local3)
                                }
                                Else
                                {
                                    Store (Subtract (Local0, Local3), Local3)
                                }

                                If (LLess (Local3, Local6))
                                {
                                    Store (Local1, Local4)
                                    Store (Local2, Local5)
                                    Store (Local3, Local6)
                                }

                                Increment (Local2)
                            }

                            Increment (Local1)
                        }

                        ShiftLeft (Local5, 0x08, Local1)
                        Or (Local1, Local4, Local6)
                        And (Local6, 0xFFFF, Local6)
                        Return (Local6)
                    }
                }

                Device (\_SB.PCI0.PCIE)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x11)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, 0x04, BAS1)
                        CreateDWordField (CRS, 0x08, LEN1)
                        Store (\PCIB, BAS1)
                        Store (\PCIL, LEN1)
                        Return (CRS)
                    }
                }

                Scope (\_PR)
                {
                    Processor (CPU1, 0x01, 0x00005010, 0x06)
                    {
                        Name (APCT, Package (0x02)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                            }, 

                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                            }
                        })
                        Name (APSS, Package (0x0A)
                        {
                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }
                        })
                        Method (APPC, 0, NotSerialized)
                        {
                            Return (0x00)
                        }
                    }

                    Processor (CPU2, 0x02, 0x00000000, 0x00)
                    {
                        Name (APCT, Package (0x02)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                            }, 

                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                            }
                        })
                        Name (APSS, Package (0x0A)
                        {
                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }, 

                            Package (0x06)
                            {
                                0x09999999, 
                                0x00099999, 
                                0x00999999, 
                                0x00999999, 
                                0x99999999, 
                                0x99999999
                            }
                        })
                        Method (APPC, 0, NotSerialized)
                        {
                            Return (0x00)
                        }
                    }
                }

                Device (OMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x00)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (APIC)
                        {
                            CreateDWordField (CRS, 0x08, ML01)
                            CreateDWordField (CRS, 0x04, MB01)
                            CreateDWordField (CRS, 0x14, ML02)
                            CreateDWordField (CRS, 0x10, MB02)
                            Store (0xFEC00000, MB01)
                            Store (0x1000, ML01)
                            Store (0xFEE00000, MB02)
                            Store (0x1000, ML02)
                        }

                        Return (CRS)
                    }
                }

                Device (\_SB.RMEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, 0x01)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
                        Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, 0x10, BAS1)
                        CreateDWordField (CRS, 0x14, LEN1)
                        CreateDWordField (CRS, 0x1C, BAS2)
                        CreateDWordField (CRS, 0x20, LEN2)
                        CreateDWordField (CRS, 0x2C, LEN3)
                        CreateDWordField (CRS, 0x34, BAS4)
                        CreateDWordField (CRS, 0x38, LEN4)
                        If (OSFL ()) {}
                        Else
                        {
                            If (MG1B)
                            {
                                If (LGreater (MG1B, 0x000C0000))
                                {
                                    Store (0x000C0000, BAS1)
                                    Subtract (MG1B, BAS1, LEN1)
                                }
                            }
                            Else
                            {
                                Store (0x000C0000, BAS1)
                                Store (0x00020000, LEN1)
                            }

                            If (Add (MG1B, MG1L, Local0))
                            {
                                Store (Local0, BAS2)
                                Subtract (0x00100000, BAS2, LEN2)
                            }
                        }

                        Subtract (MG2B, 0x00100000, LEN3)
                        Add (MG2B, MG2L, BAS4)
                        Subtract (0x00, BAS4, LEN4)
                        Return (CRS)
                    }
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, 0x0B03D041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {1}
                    })
                }

                Method (PS2K._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x10, 0x04))
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F03"))
                    Name (_CID, 0x130FD041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0C, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (CRS1, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Name (CRS2, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {12}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS2)
                        }
                    }
                }

                Method (PS2M._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x10, 0x04))
                }

                Device (UAR1)
                {
                    Name (_UID, 0x01)
                    Method (_HID, 0, NotSerialized)
                    {
                        Return (UHID (0x00))
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x00))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x00, 0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (DCRS (0x00, 0x01))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x00)
                    }

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

                    Name (CMPR, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {4}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
                        }
                        EndDependentFn ()
                    })
                }

                Method (UAR1._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x03, 0x04))
                }

                Device (SIOR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Method (_UID, 0, NotSerialized)
                    {
                        Return (SPIO)
                    }

                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0)))
                        {
                            CreateWordField (CRS, 0x02, GP10)
                            CreateWordField (CRS, 0x04, GP11)
                            CreateByteField (CRS, 0x07, GPL1)
                            Store (SPIO, GP10)
                            Store (SPIO, GP11)
                            Store (0x02, GPL1)
                        }

                        If (IOPB)
                        {
                            CreateWordField (CRS, 0x0A, GP20)
                            CreateWordField (CRS, 0x0C, GP21)
                            CreateByteField (CRS, 0x0F, GPL2)
                            Store (IOPB, GP20)
                            Store (IOPB, GP21)
                            Store (IOPL, GPL2)
                        }

                        If (IOEB)
                        {
                            CreateWordField (CRS, 0x12, GP30)
                            CreateWordField (CRS, 0x14, GP31)
                            CreateByteField (CRS, 0x17, GPL3)
                            Store (IOEB, GP30)
                            Store (IOEB, GP31)
                            Store (IOEL, GPL3)
                        }

                        If (IOGB)
                        {
                            CreateWordField (CRS, 0x1A, GP40)
                            CreateWordField (CRS, 0x1C, GP41)
                            CreateByteField (CRS, 0x1F, GPL4)
                            Store (IOGB, GP40)
                            Store (IOGB, GP41)
                            Store (IOGL, GPL4)
                        }

                        If (IODB)
                        {
                            CreateWordField (CRS, 0x22, GP50)
                            CreateWordField (CRS, 0x24, GP51)
                            CreateByteField (CRS, 0x27, GPL5)
                            Store (IODB, GP50)
                            Store (IODB, GP51)
                            Store (IODL, GPL5)
                        }

                        Return (CRS)
                    }
                }

                Name (DCAT, Package (0x16)
                {
                    0x01, 
                    0x02, 
                    0x03, 
                    0x00, 
                    0xFF, 
                    0x08, 
                    0xFF, 
                    0xFF, 
                    0x09, 
                    0xFF, 
                    0x05, 
                    0x04, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0x0A, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF
                })
                Name (IKEY, Package (0x02)
                {
                    Package (0x04)
                    {
                        0x87, 
                        0x01, 
                        0x55, 
                        0x55
                    }, 

                    Package (0x04)
                    {
                        0x87, 
                        0x01, 
                        0x55, 
                        0xAA
                    }
                })
                Name (KBFG, 0x01)
                Name (MSFG, 0x01)
                Name (UR1F, 0x01)
                Method (ENFG, 1, NotSerialized)
                {
                    Store (0x00, Local1)
                    If (LEqual (SPIO, 0x2E))
                    {
                        Store (0x00, Local1)
                    }

                    If (LEqual (SPIO, 0x4E))
                    {
                        Store (0x01, Local1)
                    }

                    Store (0x00, Local0)
                    While (LNot (LEqual (Local0, 0x04)))
                    {
                        Store (DerefOf (Index (DerefOf (Index (IKEY, Local1)), Local0)), INDX)
                        Increment (Local0)
                    }

                    Store (Arg0, LDN)
                }

                Method (ENTR, 0, NotSerialized)
                {
                    Store (0x87, INDX)
                    Store (0x01, INDX)
                    Store (0x55, INDX)
                    If (LEqual (SPIO, 0x2E))
                    {
                        Store (0x55, INDX)
                    }
                    Else
                    {
                        Store (0xAA, INDX)
                    }
                }

                Method (EXFG, 0, NotSerialized)
                {
                    Store (0x02, INDX)
                    Store (0x02, DATA)
                }

                Method (LPTM, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    And (OPT0, 0x02, Local0)
                    EXFG ()
                    Return (Local0)
                }

                Method (UHID, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    And (OPT0, 0x70, Local0)
                    EXFG ()
                    If (Local0)
                    {
                        Return (0x1005D041)
                    }

                    Return (0x0105D041)
                }

                Method (ORF0, 1, NotSerialized)
                {
                    ENTR ()
                    Or (OPT0, Arg0, OPT0)
                    EXFG ()
                }

                Method (ORF1, 1, NotSerialized)
                {
                    ENTR ()
                    Or (OPT1, Arg0, OPT1)
                    EXFG ()
                }

                Method (ORF2, 1, NotSerialized)
                {
                    ENTR ()
                    Or (OPT2, Arg0, OPT2)
                    EXFG ()
                }

                Method (ANF0, 1, NotSerialized)
                {
                    ENTR ()
                    And (OPT0, Arg0, OPT0)
                    EXFG ()
                }

                Method (ANF2, 1, NotSerialized)
                {
                    ENTR ()
                    And (OPT2, Arg0, OPT2)
                    EXFG ()
                }

                Method (ANF4, 1, NotSerialized)
                {
                    ENTR ()
                    And (OPT4, Arg0, OPT4)
                    EXFG ()
                }

                Method (STF0, 1, NotSerialized)
                {
                    ENTR ()
                    Store (Arg0, OPT0)
                    EXFG ()
                }

                Method (STF1, 1, NotSerialized)
                {
                    ENTR ()
                    Store (Arg0, OPT1)
                    EXFG ()
                }

                Method (SIOS, 1, NotSerialized)
                {
                    Store ("SIOS", Debug)
                    Store (0x00, GP10)
                    If (LLess (Arg0, 0x05))
                    {
                        ENFG (0x04)
                        Store (0x01, ACTR)
                        EXFG ()
                        ANF4 (0xFC)
                        ORF1 (0x18)
                        If (KBFG)
                        {
                            ORF0 (0x08)
                        }
                        Else
                        {
                            ANF0 (0xF7)
                        }

                        If (MSFG)
                        {
                            ORF0 (0x10)
                        }
                        Else
                        {
                            ANF0 (0xEF)
                            ENFG (0x06)
                            Store (0x00, ACTR)
                            EXFG ()
                        }

                        ENFG (0x04)
                        ANF2 (0xF0)
                        ENFG (0x07)
                        And (OPF9, 0xFE, OPF9)
                        And (OPC0, 0xFE, OPC0)
                        And (OPC3, 0xFE, OPC3)
                        And (OP29, 0xEF, OP29)
                        EXFG ()
                    }
                    Else
                    {
                        ENFG (0x07)
                        And (OPC0, 0x00, OPC0)
                        Or (OPC0, 0x01, OPC0)
                        And (OPC3, 0x00, OPC3)
                        Or (OPC3, 0x01, OPC3)
                        Or (OPF9, 0x01, OPF9)
                        And (OP29, 0xEF, OP29)
                        EXFG ()
                    }
                }

                Method (SIOW, 1, NotSerialized)
                {
                    Store (0x01, GP10)
                    Store (0x01, GP40)
                    Store ("SIOW", Debug)
                    ENFG (0x04)
                    Store (0x00, ACTR)
                    EXFG ()
                    STF0 (0x00)
                    STF1 (0xFF)
                    ENFG (0x07)
                    Or (OP29, 0x10, OP29)
                    Or (OPC0, 0x01, OPC0)
                    Or (OPC3, 0x01, OPC3)
                    EXFG ()
                    ENFG (0x05)
                    Or (ACTR, 0x01, ACTR)
                    EXFG ()
                    ENFG (0x06)
                    Or (ACTR, 0x01, ACTR)
                    EXFG ()
                    ENFG (0x04)
                    Store (0x01, ACTR)
                    EXFG ()
                }

                Method (SIOH, 0, NotSerialized)
                {
                    Store ("SIOH", Debug)
                }

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

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x07), 
                    LDN,    8, 
                    Offset (0x29), 
                    OP29,   8, 
                    Offset (0x30), 
                    ACTR,   8, 
                    Offset (0x60), 
                    IOAH,   8, 
                    IOAL,   8, 
                    IOH2,   8, 
                    IOL2,   8, 
                    Offset (0x70), 
                    INTR,   8, 
                    Offset (0x74), 
                    DMCH,   8, 
                    Offset (0xC0), 
                    OPC0,   8, 
                    OPC1,   8, 
                    OPC2,   8, 
                    OPC3,   8, 
                    Offset (0xF0), 
                    OPT0,   8, 
                    OPT1,   8, 
                    OPT2,   8, 
                    OPT3,   8, 
                    OPT4,   8, 
                    Offset (0xF8), 
                    OPF8,   8, 
                    OPF9,   8, 
                    OPFA,   8, 
                    OPFB,   8
                }

                Method (PS2K._PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x01, KBFG)
                    }
                    Else
                    {
                        Store (0x00, KBFG)
                    }
                }

                Method (PS2M._PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x01, MSFG)
                    }
                    Else
                    {
                        Store (0x00, MSFG)
                    }
                }

                Method (CGLD, 1, NotSerialized)
                {
                    Return (DerefOf (Index (DCAT, Arg0)))
                }

                Method (DSTA, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    Store (ACTR, Local0)
                    EXFG ()
                    If (LEqual (Local0, 0xFF))
                    {
                        Return (0x00)
                    }

                    And (Local0, 0x01, Local0)
                    Or (IOST, ShiftLeft (Local0, Arg0), IOST)
                    If (Local0)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        If (And (ShiftLeft (0x01, Arg0), IOST))
                        {
                            Return (0x0D)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

                Method (DCNT, 2, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, Local1)
                    Or (IOAL, Local1, Local1)
                    RRIO (Arg0, Arg1, Local1, 0x08)
                    If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
                    {
                        RDMA (Arg0, Arg1, Increment (Local1))
                    }

                    Store (Arg1, ACTR)
                    EXFG ()
                }

                Name (CRS1, ResourceTemplate ()
                {
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                    IRQNoFlags () {}
                    DMA (Compatibility, NotBusMaster, Transfer8) {}
                })
                CreateWordField (CRS1, 0x09, IRQM)
                CreateByteField (CRS1, 0x0C, DMAM)
                CreateWordField (CRS1, 0x02, IO11)
                CreateWordField (CRS1, 0x04, IO12)
                CreateByteField (CRS1, 0x07, LEN1)
                Name (CRS2, ResourceTemplate ()
                {
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                    IRQNoFlags () {6}
                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
                })
                CreateWordField (CRS2, 0x11, IRQE)
                CreateByteField (CRS2, 0x14, DMAE)
                CreateWordField (CRS2, 0x02, IO21)
                CreateWordField (CRS2, 0x04, IO22)
                CreateByteField (CRS2, 0x07, LEN2)
                CreateWordField (CRS2, 0x0A, IO31)
                CreateWordField (CRS2, 0x0C, IO32)
                CreateByteField (CRS2, 0x0F, LEN3)
                Method (DCRS, 2, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, IO11)
                    Or (IOAL, IO11, IO11)
                    Store (IO11, IO12)
                    Subtract (FindSetRightBit (IO11), 0x01, Local0)
                    ShiftLeft (0x01, Local0, LEN1)
                    If (INTR)
                    {
                        ShiftLeft (0x01, INTR, IRQM)
                    }
                    Else
                    {
                        Store (0x00, IRQM)
                    }

                    If (LOr (LGreater (DMCH, 0x03), LEqual (Arg1, 0x00)))
                    {
                        Store (0x00, DMAM)
                    }
                    Else
                    {
                        And (DMCH, 0x03, Local1)
                        ShiftLeft (0x01, Local1, DMAM)
                    }

                    EXFG ()
                    Return (CRS1)
                }

                Method (DSRS, 2, NotSerialized)
                {
                    CreateWordField (Arg0, 0x09, IRQM)
                    CreateByteField (Arg0, 0x0C, DMAM)
                    CreateWordField (Arg0, 0x02, IO11)
                    ENFG (CGLD (Arg1))
                    And (IO11, 0xFF, IOAL)
                    ShiftRight (IO11, 0x08, IOAH)
                    If (IRQM)
                    {
                        FindSetRightBit (IRQM, Local0)
                        Subtract (Local0, 0x01, INTR)
                    }
                    Else
                    {
                        Store (0x00, INTR)
                    }

                    If (DMAM)
                    {
                        FindSetRightBit (DMAM, Local0)
                        Subtract (Local0, 0x01, DMCH)
                    }
                    Else
                    {
                        Store (0x04, DMCH)
                    }

                    EXFG ()
                    DCNT (Arg1, 0x01)
                }

                OperationRegion (GPIO, SystemIO, IO1B, 0x04)
                Field (GPIO, ByteAcc, NoLock, Preserve)
                {
                    GP10,   1, 
                    GP11,   1, 
                    GP12,   1, 
                    GP13,   1, 
                    GO14,   1, 
                    GO15,   1, 
                    GO16,   1, 
                    GO17,   1, 
                    GP20,   1, 
                    GP21,   1, 
                    GP22,   1, 
                    GP23,   1, 
                    GO24,   1, 
                    GO25,   1, 
                    GO26,   1, 
                    GO27,   1, 
                    GP30,   1, 
                    GP31,   1, 
                    GP32,   1, 
                    GP33,   1, 
                    GO34,   1, 
                    GO35,   1, 
                    GO36,   1, 
                    GO37,   1, 
                    GP40,   1, 
                    GP41,   1, 
                    GP42,   1, 
                    GP43,   1, 
                    GO44,   1, 
                    GO45,   1, 
                    GO46,   1, 
                    GO47,   1
                }
            }

            Device (NSMB)
            {
                Name (_ADR, 0x000A0001)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x09, 0x04))
                }
            }

            Device (USB0)
            {
                Name (_ADR, 0x000B0000)
                Name (_S1D, 0x01)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x04))
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x000B0001)
                Name (_S1D, 0x01)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x05, 0x04))
                }
            }

            Device (NMAC)
            {
                Name (_ADR, 0x00130000)
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x05
                })
                Scope (\_GPE)
                {
                    Method (_L0B, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.NMAC, 0x02)
                        Notify (\_SB.PWRB, 0x02)
                    }
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x000F0000)
                Name (PTS0, 0x00)
                Name (SID0, 0x00)
                Name (SID1, 0x00)
                Name (SID2, 0x00)
                Name (SID3, 0x00)
                Name (SID4, 0x00)
                Name (SID5, 0x00)
                OperationRegion (IRQM, SystemIO, 0x21, 0x01)
                Field (IRQM, ByteAcc, NoLock, Preserve)
                {
                    IR0M,   1
                }

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

                OperationRegion (A090, PCI_Config, 0x50, 0x18)
                Field (A090, DWordAcc, NoLock, Preserve)
                {
                    ID20,   16, 
                    Offset (0x08), 
                    IDTS,   16, 
                    IDTP,   16, 
                    ID22,   32, 
                    UMSS,   16, 
                    UMSP,   16
                }

                Name (TIM0, Package (0x07)
                {
                    Package (0x05)
                    {
                        0x3C, 
                        0x78, 
                        0xB4, 
                        0xF0, 
                        0x0384
                    }, 

                    Package (0x05)
                    {
                        0x11, 
                        0x20, 
                        0x22, 
                        0x47, 
                        0xA8
                    }, 

                    Package (0x07)
                    {
                        0x78, 
                        0x5A, 
                        0x3C, 
                        0x2D, 
                        0x1E, 
                        0x14, 
                        0x0F
                    }, 

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

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

                    Package (0x08)
                    {
                        0x02, 
                        0x01, 
                        0x00, 
                        0x00, 
                        0x03, 
                        0x04, 
                        0x05, 
                        0x06
                    }, 

                    Package (0x07)
                    {
                        0x02, 
                        0x01, 
                        0x00, 
                        0x04, 
                        0x05, 
                        0x06, 
                        0x07
                    }
                })
                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, 0x58, 0x0C)
                Field (CFG2, DWordAcc, NoLock, Preserve)
                {
                    SSPT,   8, 
                    SMPT,   8, 
                    PSPT,   8, 
                    PMPT,   8, 
                    SSAS,   2, 
                    SMAS,   2, 
                    PSAS,   2, 
                    PMAS,   2, 
                    Offset (0x06), 
                    SDDR,   4, 
                    SDDA,   4, 
                    PDDR,   4, 
                    PDDA,   4, 
                    SSUT,   3, 
                        ,   3, 
                    SSUE,   2, 
                    SMUT,   3, 
                        ,   3, 
                    SMUE,   2, 
                    PSUT,   3, 
                        ,   3, 
                    PSUE,   2, 
                    PMUT,   3, 
                        ,   3, 
                    PMUE,   2
                }

                Name (GMPT, 0x00)
                Name (GMUE, 0x00)
                Name (GMUT, 0x00)
                Name (GSPT, 0x00)
                Name (GSUE, 0x00)
                Name (GSUT, 0x00)
                Device (CHN0)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store ("GTM_CHN0", Debug)
                        Return (GTM (PMPT, PMUE, PMUT, PSPT, PSUE, PSUT))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store ("STM_CHN0", Debug)
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        Store (PMPT, GMPT)
                        Store (PMUE, GMUE)
                        Store (PMUT, GMUT)
                        Store (PSPT, GSPT)
                        Store (PSUE, GSUE)
                        Store (PSUT, GSUT)
                        STM ()
                        Store (GMPT, PMPT)
                        Store (GMUE, PMUE)
                        Store (GMUT, PMUT)
                        Store (GSPT, PSPT)
                        Store (GSUE, PSUE)
                        Store (GSUT, PSUT)
                        Store (GTF (0x00, Arg1), ATA0)
                        Store (GTF (0x01, Arg2), ATA1)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN0_DRV0", Debug)
                            Return (RATA (ATA0))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN0_DRV1", Debug)
                            Return (RATA (ATA1))
                        }
                    }
                }

                Device (CHN1)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store ("GTM_CHN1", Debug)
                        Return (GTM (SMPT, SMUE, SMUT, SSPT, SSUE, SSUT))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        Store (SMPT, GMPT)
                        Store (SMUE, GMUE)
                        Store (SMUT, GMUT)
                        Store (SSPT, GSPT)
                        Store (SSUE, GSUE)
                        Store (SSUT, GSUT)
                        STM ()
                        Store (GMPT, SMPT)
                        Store (GMUE, SMUE)
                        Store (GMUT, SMUT)
                        Store (GSPT, SSPT)
                        Store (GSUE, SSUE)
                        Store (GSUT, SSUT)
                        Store (GTF (0x00, Arg1), ATA2)
                        Store (GTF (0x01, Arg2), ATA3)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN1_DRV0", Debug)
                            Return (RATA (ATA2))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN1_DRV1", Debug)
                            Return (RATA (ATA3))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    ShiftRight (CPB0, 0x04, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }

                Method (GTM, 6, Serialized)
                {
                    Store (Ones, PIO0)
                    Store (Ones, PIO1)
                    Store (Ones, DMA0)
                    Store (Ones, DMA1)
                    Store (0x10, CHNF)
                    If (REGF) {}
                    Else
                    {
                        Return (TMD0)
                    }

                    If (LEqual (PTS0, 0x01))
                    {
                        If (OSFL ())
                        {
                            Store (0x01, IR0M)
                        }
                    }

                    Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg0, MTR, 0x00, 0x00), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
                    Store (Local7, DMA0)
                    Store (Local7, PIO0)
                    Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg3, MTR, 0x00, 0x00), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
                    Store (Local7, DMA1)
                    Store (Local7, PIO1)
                    If (Arg1)
                    {
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Arg2)), Local5)
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local5)), DMA0)
                        Or (CHNF, 0x01, CHNF)
                    }

                    If (Arg4)
                    {
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Arg5)), Local5)
                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local5)), DMA1)
                        Or (CHNF, 0x04, CHNF)
                    }

                    Store (TMD0, Debug)
                    Return (TMD0)
                }

                Method (STM, 0, Serialized)
                {
                    If (REGF) {}
                    Else
                    {
                        Return (0x00)
                    }

                    If (PTS0)
                    {
                        Store (SID0, ID20)
                        Store (SID1, IDTS)
                        Store (SID2, IDTP)
                        Store (SID3, ID22)
                        Store (SID4, UMSS)
                        Store (SID5, UMSP)
                    }
                    Else
                    {
                        Store (ID20, SID0)
                        Store (IDTS, SID1)
                        Store (IDTP, SID2)
                        Store (ID22, SID3)
                        Store (UMSS, SID4)
                        Store (UMSP, SID5)
                    }

                    Store (0x00, PTS0)
                    Store (0x00, GMUE)
                    Store (0x00, GMUT)
                    Store (0x00, GSUE)
                    Store (0x00, GSUT)
                    If (And (CHNF, 0x01))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, DMA0, MTR, 0x00, 0x00), Local0)
                        If (LGreater (Local0, 0x06))
                        {
                            Store (0x06, Local0)
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GMUT)
                        Or (GMUE, 0x03, GMUE)
                    }
                    Else
                    {
                        If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00)))
                        {
                            If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00)))
                            {
                                Store (DMA0, PIO0)
                            }
                        }
                    }

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

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GSUT)
                        Or (GSUE, 0x03, GSUE)
                    }
                    Else
                    {
                        If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00)))
                        {
                            If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00)))
                            {
                                Store (DMA1, PIO1)
                            }
                        }
                    }

                    And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x07, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
                    Store (Local1, GMPT)
                    And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x07, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
                    Store (Local1, GSPT)
                    Return (0x00)
                }

                Name (AT01, Buffer (0x07)
                {
                    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT02, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
                })
                Name (AT03, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
                })
                Name (AT04, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
                })
                Name (ATA0, Buffer (0x1D) {})
                Name (ATA1, Buffer (0x1D) {})
                Name (ATA2, Buffer (0x1D) {})
                Name (ATA3, Buffer (0x1D) {})
                Name (ATAB, Buffer (0x1D) {})
                CreateByteField (ATAB, 0x00, CMDC)
                Method (GTFB, 3, Serialized)
                {
                    Multiply (CMDC, 0x38, Local0)
                    Add (Local0, 0x08, Local1)
                    CreateField (ATAB, Local1, 0x38, CMDX)
                    Multiply (CMDC, 0x07, Local0)
                    CreateByteField (ATAB, Add (Local0, 0x02), A001)
                    CreateByteField (ATAB, Add (Local0, 0x06), A005)
                    Store (Arg0, CMDX)
                    Store (Arg1, A001)
                    Store (Arg2, A005)
                    Increment (CMDC)
                }

                Method (GTF, 2, Serialized)
                {
                    Store ("GTF_Entry", Debug)
                    Store (Arg1, Debug)
                    Store (0x00, CMDC)
                    Name (ID49, 0x0C00)
                    Name (ID59, 0x00)
                    Name (ID53, 0x04)
                    Name (ID63, 0x0F00)
                    Name (ID88, 0x0F00)
                    Name (IRDY, 0x01)
                    Name (PIOT, 0x00)
                    Name (DMAT, 0x00)
                    If (LEqual (SizeOf (Arg1), 0x0200))
                    {
                        CreateWordField (Arg1, 0x62, IW49)
                        Store (IW49, ID49)
                        CreateWordField (Arg1, 0x6A, IW53)
                        Store (IW53, ID53)
                        CreateWordField (Arg1, 0x7E, IW63)
                        Store (IW63, ID63)
                        CreateWordField (Arg1, 0x76, IW59)
                        Store (IW59, ID59)
                        CreateWordField (Arg1, 0xB0, IW88)
                        Store (IW88, ID88)
                    }

                    Store (0xA0, Local7)
                    If (Arg0)
                    {
                        Store (0xB0, Local7)
                        And (CHNF, 0x08, IRDY)
                        If (And (CHNF, 0x10))
                        {
                            Store (PIO1, PIOT)
                        }
                        Else
                        {
                            Store (PIO0, PIOT)
                        }

                        If (And (CHNF, 0x04))
                        {
                            If (And (CHNF, 0x10))
                            {
                                Store (DMA1, DMAT)
                            }
                            Else
                            {
                                Store (DMA0, DMAT)
                            }
                        }
                    }
                    Else
                    {
                        And (CHNF, 0x02, IRDY)
                        Store (PIO0, PIOT)
                        If (And (CHNF, 0x01))
                        {
                            Store (DMA0, DMAT)
                        }
                    }

                    If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, DMAT, MTR, 0x00, 0x00), Local1)
                        If (LGreater (Local1, 0x06))
                        {
                            Store (0x06, Local1)
                        }

                        GTFB (AT01, Or (0x40, Local1), Local7)
                    }
                    Else
                    {
                        If (LAnd (And (ID63, 0xFF00), PIOT))
                        {
                            And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0)
                            Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), Local1)
                            GTFB (AT01, Local1, Local7)
                        }
                    }

                    If (IRDY)
                    {
                        And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x07, Local0)
                        Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local0)), Local1)
                        GTFB (AT01, Local1, Local7)
                    }
                    Else
                    {
                        If (And (ID49, 0x0400))
                        {
                            GTFB (AT01, 0x01, Local7)
                        }
                    }

                    If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
                    {
                        GTFB (AT03, And (ID59, 0xFF), Local7)
                    }

                    Store ("ATAB_GTF", Debug)
                    Store (ATAB, Debug)
                    Return (ATAB)
                }

                Method (RATA, 1, NotSerialized)
                {
                    CreateByteField (Arg0, 0x00, CMDN)
                    Multiply (CMDN, 0x38, Local0)
                    CreateField (Arg0, 0x08, Local0, RETB)
                    Store (RETB, Debug)
                    Return (RETB)
                }
            }

            Device (ATA0)
            {
                Name (_ADR, 0x00100000)
                Device (PRI0)
                {
                    Name (_ADR, 0x00)
                    Name (SPTM, Buffer (0x14)
                    {
                        0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                        0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Name (SSTM, Buffer (0x14)
                    {
                        0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                        0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Store (0x0C, Local0)
                    If (LEqual (_ADR, 0x00100000))
                    {
                        Store (0x08, Local0)
                    }

                    ShiftRight (CPB0, Local0, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }
            }

            Device (ATA1)
            {
                Name (_ADR, 0x00110000)
                Device (PRI0)
                {
                    Name (_ADR, 0x00)
                    Name (SPTM, Buffer (0x14)
                    {
                        0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                        0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Name (SSTM, Buffer (0x14)
                    {
                        0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 
                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
                        0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Store (0x0C, Local0)
                    If (LEqual (_ADR, 0x00100000))
                    {
                        Store (0x08, Local0)
                    }

                    ShiftRight (CPB0, Local0, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }
            }

            Device (PB2P)
            {
                Name (_ADR, 0x00120000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x00, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR01)
                    }

                    Return (PR01)
                }
            }

            Device (MC97)
            {
                Name (_ADR, 0x000D0001)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x07, 0x04))
                }
            }

            Device (PCE0)
            {
                Name (_ADR, 0x00020000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR02)
                    }

                    Return (PR02)
                }
            }

            Device (PCE1)
            {
                Name (_ADR, 0x00030000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR03)
                    }

                    Return (PR03)
                }
            }

            Device (PCE2)
            {
                Name (_ADR, 0x00040000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }

                    Return (PR04)
                }
            }

            Device (PCE3)
            {
                Name (_ADR, 0x00170000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR05)
                    }

                    Return (PR05)
                }
            }

            Device (PCE4)
            {
                Name (_ADR, 0x00160000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR06)
                    }

                    Return (PR06)
                }
            }

            Device (PCE5)
            {
                Name (_ADR, 0x00150000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR07)
                    }

                    Return (PR07)
                }
            }
        }

        Scope (\_GPE)
        {
            Method (_L10, 0, NotSerialized)
            {
                \_SB.PCI0.SBRG.SIOH ()
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L03, 0, NotSerialized)
            {
                \_SB.PCI0.SBRG.SIOH ()
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L09, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.NSMB, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0D, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB0, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L05, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB2, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L00, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.PB2P, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L07, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.MC97, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L11, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.PCE0, 0x02)
                Notify (\_SB.PCI0.PCE1, 0x02)
                Notify (\_SB.PCI0.PCE2, 0x02)
                Notify (\_SB.PCI0.PCE3, 0x02)
                Notify (\_SB.PCI0.PCE4, 0x02)
                Notify (\_SB.PCI0.PCE5, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_UID, 0xAA)
            Name (_STA, 0x0B)
            Method (_PRW, 0, NotSerialized)
            {
                Return (GPRW (0x03, 0x04))
            }
        }
    }

    OperationRegion (\_SB.PCI0.SBRG.PIMC, PCI_Config, 0x7C, 0x0C)
    Field (\_SB.PCI0.SBRG.PIMC, ByteAcc, NoLock, Preserve)
    {
        PIRA,   4, 
        PIRB,   4, 
        PIRC,   4, 
        PIRD,   4, 
            ,   4, 
        PIRF,   4, 
        PIRG,   4, 
        Offset (0x05), 
        PIRM,   4, 
        PIU2,   4, 
        Offset (0x07), 
        SIID,   4, 
        PIID,   4, 
        PIU0,   4, 
        Offset (0x09), 
        PILN,   4, 
        Offset (0x0A), 
        PAUI,   4, 
        PIMO,   4, 
        PR0E,   4, 
        PR0F,   4
    }

    Scope (\_SB)
    {
        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {15}
        })
        CreateWordField (BUFA, 0x01, ICRS)
        Method (LSTA, 1, NotSerialized)
        {
            If (Arg0)
            {
                Return (0x0B)
            }
            Else
            {
                Return (0x09)
            }
        }

        Method (LPRS, 2, NotSerialized)
        {
            If (PICM)
            {
                Return (Arg1)
            }
            Else
            {
                Return (Arg0)
            }
        }

        Method (LCRS, 1, NotSerialized)
        {
            If (PICM)
            {
                Name (BUFB, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow, Shared)
                    {
                        0x00000011,
                    }
                })
                CreateByteField (BUFB, 0x05, AIRQ)
                Store (Arg0, AIRQ)
                If (LEqual (Arg0, 0x01))
                {
                    Store (0x11, AIRQ)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x12, AIRQ)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x10, AIRQ)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x13, AIRQ)
                }

                Return (BUFB)
            }
            Else
            {
                ShiftLeft (0x01, Arg0, ICRS)
                Return (BUFA)
            }
        }

        Method (LCRO, 1, NotSerialized)
        {
            If (PICM)
            {
                Name (BUFB, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow, Shared)
                    {
                        0x00000014,
                    }
                })
                CreateByteField (BUFB, 0x05, AIRQ)
                Store (Arg0, AIRQ)
                If (LEqual (Arg0, 0x01))
                {
                    Store (0x17, AIRQ)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x16, AIRQ)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, AIRQ)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x15, AIRQ)
                }

                Return (BUFB)
            }
            Else
            {
                ShiftLeft (0x01, Arg0, ICRS)
                Return (BUFA)
            }
        }

        Method (LSRS, 1, NotSerialized)
        {
            If (PICM)
            {
                CreateByteField (Arg0, 0x05, SAIR)
                Store (SAIR, Local0)
                If (LEqual (Local0, 0x10))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (Local0, 0x11))
                {
                    Store (0x01, Local0)
                }

                If (LEqual (Local0, 0x12))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (Local0, 0x13))
                {
                    Store (0x0D, Local0)
                }

                Return (Local0)
            }
            Else
            {
                CreateWordField (Arg0, 0x01, ISRS)
                FindSetRightBit (ISRS, Local0)
                Return (Decrement (Local0))
            }
        }

        Method (LSRO, 1, NotSerialized)
        {
            If (PICM)
            {
                CreateByteField (Arg0, 0x05, SAIR)
                Store (SAIR, Local0)
                If (LEqual (Local0, 0x14))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (Local0, 0x15))
                {
                    Store (0x0D, Local0)
                }

                If (LEqual (Local0, 0x16))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (Local0, 0x17))
                {
                    Store (0x01, Local0)
                }

                Return (Local0)
            }
            Else
            {
                CreateWordField (Arg0, 0x01, ISRS)
                FindSetRightBit (ISRS, Local0)
                Return (Decrement (Local0))
            }
        }

        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x01)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIRA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRA)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIRB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRB)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIRC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRC)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRD))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIRD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (PIRD))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), PIRD)
            }
        }

        Device (LUB0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIU0))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSB0, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIU0)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PIU0))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PIU0)
            }
        }

        Device (LUB2)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIU2))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSB2, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIU2)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PIU2))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PIU2)
            }
        }

        Device (LMAC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PILN))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSAC, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PILN)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PILN))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PILN)
            }
        }

        Device (LACI)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x09)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PAUI))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSCI, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PAUI)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PAUI))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PAUI)
            }
        }

        Device (LMC9)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0A)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIMO))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSC9, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIMO)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PIMO))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PIMO)
            }
        }

        Device (LSMB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIRM))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSMB, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIRM)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PIRM))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PIRM)
            }
        }

        Device (LSA0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0C)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PIID))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSA0, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PIID)
                Store (0x00, PIRG)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (PIID))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), Local0)
                Store (Local0, PIID)
                Store (Local0, PIRG)
            }
        }

        Device (LSA1)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0D)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (SIID))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSA1, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, SIID)
                Store (0x00, PIRF)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (SIID))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), Local0)
                Store (Local0, SIID)
                Store (Local0, PIRF)
            }
        }

        Device (LATA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0E)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (PR0E))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSTA, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (0x00, PR0E)
                Store (0x00, PR0F)
            }

            Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
                    Return (0x00)
                }
                Else
                {
                    Return (LCRO (PR0E))
                }
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), PR0E)
                Store (LSRO (Arg0), PR0F)
            }
        }
    }

    Scope (\_SB)
    {
        Name (XCPD, 0x00)
        Name (XNPT, 0x01)
        Name (XCAP, 0x02)
        Name (XDCP, 0x04)
        Name (XDCT, 0x08)
        Name (XDST, 0x0A)
        Name (XLCP, 0x0C)
        Name (XLCT, 0x10)
        Name (XLST, 0x12)
        Name (XSCP, 0x14)
        Name (XSCT, 0x18)
        Name (XSST, 0x1A)
        Name (XRCT, 0x1C)
        Mutex (MUTE, 0x00)
        Method (RBPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x01)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RWPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RDPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (WBPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x0FFF)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x01)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WWPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WDPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (RWDP, 3, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, \PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            And (XCFG, Arg2, Local1)
            Or (Local1, Arg1, XCFG)
            Release (MUTE)
        }

        Method (RPME, 1, NotSerialized)
        {
            Add (Arg0, 0x84, Local0)
            Store (\_SB.RDPE (Local0), Local1)
            If (LEqual (Local1, 0xFFFFFFFF))
            {
                Return (0x00)
            }
            Else
            {
                If (LAnd (Local1, 0x00010000))
                {
                    \_SB.WDPE (Local0, And (Local1, 0x00010000))
                    Return (0x01)
                }

                Return (0x00)
            }
        }
    }

    Scope (\_SB.PCI0.SBRG.SIOR)
    {
        Device (IT87)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_UID, 0x00)
            Method (HWV0, 0, NotSerialized)
            {
                Return (Multiply (VIV0, 0x10))
            }

            Method (HWV1, 0, NotSerialized)
            {
                Return (Multiply (VIV1, 0x10))
            }

            Method (HWV2, 0, NotSerialized)
            {
                Return (Multiply (VIV2, 0x10))
            }

            Method (HWV3, 0, NotSerialized)
            {
                Return (Multiply (VIV3, 0x10))
            }

            Method (HWV4, 0, NotSerialized)
            {
                Return (Multiply (VIV4, 0x10))
            }

            Method (HWV5, 0, NotSerialized)
            {
                Return (Multiply (VIV5, 0x10))
            }

            Method (HWV6, 0, NotSerialized)
            {
                Return (Multiply (VIV6, 0x10))
            }

            Method (HWV7, 0, NotSerialized)
            {
                Return (Multiply (VIV7, 0x10))
            }

            Method (HWT1, 0, NotSerialized)
            {
                Store (TPI1, Local0)
                If (LGreater (Local0, 0x80))
                {
                    Subtract (0x0100, Local0, Local0)
                }

                Return (Multiply (Local0, 0x0A))
            }

            Method (HWT2, 0, NotSerialized)
            {
                Store (TPI2, Local0)
                If (LGreater (Local0, 0x80))
                {
                    Subtract (0x0100, Local0, Local0)
                }

                Return (Multiply (Local0, 0x0A))
            }

            Method (HWT3, 0, NotSerialized)
            {
                Store (TPI3, Local0)
                If (LGreater (Local0, 0x80))
                {
                    Subtract (0x0100, Local0, Local0)
                }

                Return (Multiply (Local0, 0x0A))
            }

            Method (HWF1, 0, NotSerialized)
            {
                And (ETDE, 0x01, Local0)
                While (0x01)
                {
                    ShiftLeft (0x01, FTD1, Local1)
                    If (LEqual (Local0, 0x01))
                    {
                        Add (Multiply (EFN1, 0x0100), FTC1, Local2)
                    }
                    Else
                    {
                        Store (FTC1, Local2)
                    }

                    If (LEqual (Local0, 0x01))
                    {
                        If (LNot (LLess (Local2, 0xF000)))
                        {
                            If (LNot (LEqual (Local1, 0x80)))
                            {
                                Add (FTD1, 0x01, FTD1)
                                Sleep (0x64)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            If (LNot (LGreater (Local2, 0x1000)))
                            {
                                If (LNot (LEqual (Local1, 0x01)))
                                {
                                    Subtract (FTD1, 0x01, FTD1)
                                    Sleep (0x64)
                                }
                                Else
                                {
                                    Return (0xFFFF)
                                }
                            }
                            Else
                            {
                                Divide (0x00149970, Multiply (Local1, Local2), , Local1)
                                Return (Local1)
                            }
                        }
                    }
                    Else
                    {
                        If (LNot (LLess (Local2, 0xF0)))
                        {
                            If (LNot (LEqual (Local1, 0x80)))
                            {
                                Add (FTD1, 0x01, FTD1)
                                Sleep (0x64)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            If (LNot (LGreater (Local2, 0x32)))
                            {
                                If (LNot (LEqual (Local1, 0x01)))
                                {
                                    Subtract (FTD1, 0x01, FTD1)
                                    Sleep (0x64)
                                }
                                Else
                                {
                                    Return (0xFFFF)
                                }
                            }
                            Else
                            {
                                Divide (0x00149970, Multiply (Local1, Local2), , Local1)
                                Return (Local1)
                            }
                        }
                    }
                }
            }

            Method (HWF2, 0, NotSerialized)
            {
                And (ETDE, 0x02, Local0)
                While (0x01)
                {
                    ShiftLeft (0x01, FTD2, Local1)
                    If (LEqual (Local0, 0x02))
                    {
                        Add (Multiply (EFN2, 0x0100), FTC2, Local2)
                    }
                    Else
                    {
                        Store (FTC2, Local2)
                    }

                    If (LEqual (Local0, 0x02))
                    {
                        If (LNot (LLess (Local2, 0xF000)))
                        {
                            If (LNot (LEqual (Local1, 0x80)))
                            {
                                Add (FTD2, 0x01, FTD2)
                                Sleep (0x64)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            If (LNot (LGreater (Local2, 0x1000)))
                            {
                                If (LNot (LEqual (Local1, 0x01)))
                                {
                                    Subtract (FTD2, 0x01, FTD2)
                                    Sleep (0x64)
                                }
                                Else
                                {
                                    Return (0xFFFF)
                                }
                            }
                            Else
                            {
                                Divide (0x00149970, Multiply (Local1, Local2), , Local1)
                                Return (Local1)
                            }
                        }
                    }
                    Else
                    {
                        If (LNot (LLess (Local2, 0xF0)))
                        {
                            If (LNot (LEqual (Local1, 0x80)))
                            {
                                Add (FTD2, 0x01, FTD2)
                                Sleep (0x64)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            If (LNot (LGreater (Local2, 0x32)))
                            {
                                If (LNot (LEqual (Local1, 0x01)))
                                {
                                    Subtract (FTD2, 0x01, FTD2)
                                    Sleep (0x64)
                                }
                                Else
                                {
                                    Return (0xFFFF)
                                }
                            }
                            Else
                            {
                                Divide (0x00149970, Multiply (Local1, Local2), , Local1)
                                Return (Local1)
                            }
                        }
                    }
                }
            }

            Method (HWF3, 0, NotSerialized)
            {
                And (ETDE, 0x04, Local0)
                While (0x01)
                {
                    If (LEqual (FTD3, 0x01))
                    {
                        Store (0x08, Local1)
                    }
                    Else
                    {
                        Store (0x02, Local1)
                    }

                    If (LEqual (Local0, 0x04))
                    {
                        Add (Multiply (EFN3, 0x0100), FTC3, Local2)
                    }
                    Else
                    {
                        Store (FTC3, Local2)
                    }

                    If (LEqual (Local0, 0x04))
                    {
                        If (LNot (LLess (Local2, 0xF000)))
                        {
                            If (LNot (LEqual (Local1, 0x08)))
                            {
                                Add (FTD3, 0x01, FTD3)
                                Sleep (0x64)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            If (LNot (LGreater (Local2, 0x1000)))
                            {
                                If (LNot (LEqual (Local1, 0x00)))
                                {
                                    Subtract (FTD3, 0x01, FTD3)
                                    Sleep (0x64)
                                }
                                Else
                                {
                                    Return (0xFFFF)
                                }
                            }
                            Else
                            {
                                Divide (0x00149970, Multiply (Local1, Local2), , Local1)
                                Return (Local1)
                            }
                        }
                    }
                    Else
                    {
                        If (LNot (LLess (Local2, 0xF0)))
                        {
                            If (LNot (LEqual (Local1, 0x08)))
                            {
                                Add (FTD3, 0x01, FTD3)
                                Sleep (0x64)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            If (LNot (LGreater (Local2, 0x10)))
                            {
                                If (LNot (LEqual (Local1, 0x00)))
                                {
                                    Subtract (FTD3, 0x01, FTD3)
                                    Sleep (0x64)
                                }
                                Else
                                {
                                    Return (0xFFFF)
                                }
                            }
                            Else
                            {
                                Divide (0x00149970, Multiply (Local1, Local2), , Local1)
                                Return (Local1)
                            }
                        }
                    }
                }
            }

            OperationRegion (ECRE, SystemIO, IOEB, 0x20)
            Field (ECRE, ByteAcc, NoLock, Preserve)
            {
                Offset (0x05), 
                HIDX,   8, 
                HDAT,   8
            }

            IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve)
            {
                Offset (0x0B), 
                FTD1,   3, 
                FTD2,   3, 
                FTD3,   1, 
                Offset (0x0C), 
                ETDE,   8, 
                FTC1,   8, 
                FTC2,   8, 
                FTC3,   8, 
                Offset (0x18), 
                EFN1,   8, 
                EFN2,   8, 
                EFN3,   8, 
                Offset (0x20), 
                VIV0,   8, 
                VIV1,   8, 
                VIV2,   8, 
                VIV3,   8, 
                VIV4,   8, 
                VIV5,   8, 
                VIV6,   8, 
                VIV7,   8, 
                Offset (0x29), 
                TPI1,   8, 
                TPI2,   8, 
                TPI3,   8
            }
        }
    }

    Scope (\)
    {
        Field (\RAMW, ByteAcc, NoLock, Preserve)
        {
            Offset (0x20), 
            CPUQ,   8, 
            CPVL,   16, 
            CPVH,   16, 
            CPVC,   1
        }
    }

    Scope (\_SB.PCI0.SBRG.ASOC)
    {
        Name (CORV, Package (0x05)
        {
            0x06020000, 
            "Vcore Voltage", 
            0x0320, 
            0x0708, 
            0x01
        })
        Name (V3VV, Package (0x05)
        {
            0x06020001, 
            " +3.3 Voltage", 
            0x0B9A, 
            0x0E2E, 
            0x01
        })
        Name (V5VV, Package (0x05)
        {
            0x06020002, 
            " +5 Voltage", 
            0x1194, 
            0x157C, 
            0x01
        })
        Name (VV12, Package (0x05)
        {
            0x06020003, 
            " +12 Voltage", 
            0x27D8, 
            0x35E8, 
            0x01
        })
        Name (VPAR, Package (0x04)
        {
            Package (0x03)
            {
                0x00, 
                0x01, 
                0x00
            }, 

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

            Package (0x03)
            {
                0x22, 
                0x32, 
                0x00
            }, 

            Package (0x03)
            {
                0x0F, 
                0x05, 
                0x00
            }
        })
        Name (VBUF, Package (0x05)
        {
            0x04, 
            CORV, 
            V3VV, 
            V5VV, 
            VV12
        })
        Method (VGET, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00))
            {
                Return (^^SIOR.IT87.HWV0 ())
            }

            If (LEqual (Arg0, 0x01))
            {
                Return (^^SIOR.IT87.HWV2 ())
            }

            If (LEqual (Arg0, 0x02))
            {
                Return (^^SIOR.IT87.HWV3 ())
            }

            If (LEqual (Arg0, 0x03))
            {
                Return (^^SIOR.IT87.HWV4 ())
            }
        }

        Name (CPUT, Package (0x05)
        {
            0x06030000, 
            "CPU Temperature", 
            0x0258, 
            0x03B6, 
            0x00010001
        })
        Name (MBTP, Package (0x05)
        {
            0x06030001, 
            "MB Temperature", 
            0x01C2, 
            0x03B6, 
            0x00010001
        })
        Name (TBUF, Package (0x03)
        {
            0x02, 
            CPUT, 
            MBTP
        })
        Method (TGET, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00))
            {
                Return (^^SIOR.IT87.HWT1 ())
            }

            If (LEqual (Arg0, 0x01))
            {
                Return (^^SIOR.IT87.HWT2 ())
            }
        }

        Name (CPUF, Package (0x05)
        {
            0x06040000, 
            "CPU FAN Speed", 
            0x0320, 
            0x1C20, 
            0x00010001
        })
        Name (CHA1, Package (0x05)
        {
            0x06040001, 
            "CHASSIS FAN Speed", 
            0x0320, 
            0x1C20, 
            0x00010001
        })
        Name (PWRF, Package (0x05)
        {
            0x06040002, 
            "POWER FAN Speed", 
            0x0320, 
            0x1C20, 
            0x00010001
        })
        Name (FBUF, Package (0x04)
        {
            0x03, 
            CPUF, 
            CHA1, 
            PWRF
        })
        Method (FGET, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00))
            {
                Return (^^SIOR.IT87.HWF1 ())
            }

            If (LEqual (Arg0, 0x01))
            {
                Return (^^SIOR.IT87.HWF2 ())
            }

            If (LEqual (Arg0, 0x02))
            {
                Return (^^SIOR.IT87.HWF3 ())
            }
        }

        Name (QBUF, Package (0x01)
        {
            0x00
        })
        Method (VSIF, 0, NotSerialized)
        {
            Return (VBUF)
        }

        Method (RVLT, 1, NotSerialized)
        {
            And (Arg0, 0xFFFF, Local0)
            Store (VGET (Local0), Local1)
            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x00)), Local2)
            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x01)), Local3)
            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x02)), Local4)
            Multiply (Local1, Add (Local2, Local3), Local5)
            Divide (Local5, Local3, , Local5)
            Add (Local5, Local4, Local5)
            Return (Local5)
        }

        Method (SVLT, 1, NotSerialized)
        {
            And (DerefOf (Index (Arg0, 0x00)), 0xFFFF, Local0)
            Store (DerefOf (Index (VBUF, 0x00)), Local1)
            If (LNot (LLess (Local0, Local1)))
            {
                Return (0x00)
            }

            Increment (Local0)
            Store (DerefOf (Index (Arg0, 0x01)), Index (DerefOf (Index (VBUF, Local0)), 0x01))
            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (VBUF, Local0)), 0x02))
            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (VBUF, Local0)), 0x03))
            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (VBUF, Local0)), 0x04))
            Return (0x01)
        }

        Method (TSIF, 0, NotSerialized)
        {
            Return (TBUF)
        }

        Method (RTMP, 1, NotSerialized)
        {
            And (Arg0, 0xFFFF, Local0)
            Store (TGET (Local0), Local1)
            Return (Local1)
        }

        Method (STMP, 1, NotSerialized)
        {
            Store (And (DerefOf (Index (Arg0, 0x00)), 0xFFFF), Local0)
            Store (DerefOf (Index (TBUF, 0x00)), Local1)
            If (LNot (LLess (Local0, Local1)))
            {
                Return (0x00)
            }

            Increment (Local0)
            Store (DerefOf (Index (Arg0, 0x01)), Index (DerefOf (Index (TBUF, Local0)), 0x01))
            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (TBUF, Local0)), 0x02))
            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (TBUF, Local0)), 0x03))
            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (TBUF, Local0)), 0x04))
            Return (0x01)
        }

        Method (FSIF, 0, NotSerialized)
        {
            Return (FBUF)
        }

        Method (RFAN, 1, NotSerialized)
        {
            And (Arg0, 0xFFFF, Local0)
            Store (FGET (Local0), Local1)
            Return (Local1)
        }

        Method (SFAN, 1, NotSerialized)
        {
            And (DerefOf (Index (Arg0, 0x00)), 0xFFFF, Local0)
            Store (DerefOf (Index (FBUF, 0x00)), Local1)
            If (LNot (LLess (Local0, Local1)))
            {
                Return (0x00)
            }

            Increment (Local0)
            Store (DerefOf (Index (Arg0, 0x01)), Index (DerefOf (Index (FBUF, Local0)), 0x01))
            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (FBUF, Local0)), 0x02))
            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (FBUF, Local0)), 0x03))
            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (FBUF, Local0)), 0x04))
            Return (0x01)
        }

        Method (QFIF, 0, NotSerialized)
        {
            If (LEqual (CPUQ, 0x00))
            {
                And (DerefOf (Index (QCFN, 0x05)), 0xFFFDFFFF, Local0)
                Store (Local0, Index (QCFN, 0x05))
            }
            Else
            {
                Or (DerefOf (Index (QCFN, 0x05)), 0x00020000, Local0)
                Store (Local0, Index (QCFN, 0x05))
            }

            Return (QBUF)
        }

        Method (GCQV, 1, NotSerialized)
        {
            If (LEqual (Arg0, 0x00))
            {
                Return (CPVL)
            }

            If (LEqual (Arg0, 0x01))
            {
                Return (CPVH)
            }

            If (LEqual (Arg0, 0x02))
            {
                Return (CPVC)
            }

            Return (0x00)
        }

        Method (QFST, 1, NotSerialized)
        {
            If (LEqual (Arg0, DerefOf (Index (QCFN, 0x00))))
            {
                Return (CQST)
            }

            Return (0x00)
        }
    }

    Scope (\_SB)
    {
        Scope (PCI0)
        {
            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,
                    0x000C0000,
                    0x000DFFFF,
                    0x00000000,
                    0x00020000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000)
            })
            CreateDWordField (CRS, 0x5C, MIN5)
            CreateDWordField (CRS, 0x60, MAX5)
            CreateDWordField (CRS, 0x68, LEN5)
            CreateDWordField (CRS, 0x76, MIN6)
            CreateDWordField (CRS, 0x7A, MAX6)
            CreateDWordField (CRS, 0x82, LEN6)
            Method (_CRS, 0, NotSerialized)
            {
                Store (MG1L, Local0)
                If (Local0)
                {
                    Store (MG1B, MIN5)
                    Store (MG1L, LEN5)
                    Add (MIN5, Decrement (Local0), MAX5)
                }

                Store (MG2B, MIN6)
                Store (MG2L, LEN6)
                Store (MG2L, Local0)
                Add (MIN6, Decrement (Local0), MAX6)
                Return (CRS)
            }
        }
    }

    Name (WOTB, 0x00)
    Name (WSSB, 0x00)
    Name (WAXB, 0x00)
    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        PTS (Arg0)
        Store (0x00, Index (WAKP, 0x00))
        Store (0x00, Index (WAKP, 0x01))
        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
        {
            Sleep (0x0BB8)
        }

        Store (ASSB, WSSB)
        Store (AOTB, WOTB)
        Store (AAXB, WAXB)
        Store (Arg0, ASSB)
        Store (OSFL (), AOTB)
        Store (Zero, AAXB)
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        WAK (Arg0)
        If (ASSB)
        {
            Store (WSSB, ASSB)
            Store (WOTB, AOTB)
            Store (WAXB, AAXB)
        }

        If (DerefOf (Index (WAKP, 0x00)))
        {
            Store (0x00, Index (WAKP, 0x01))
        }
        Else
        {
            Store (Arg0, Index (WAKP, 0x01))
        }

        Return (WAKP)
    }

    Name (\_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    If (SS1)
    {
        Name (\_S1, Package (0x04)
        {
            0x01, 
            0x00, 
            0x00, 
            0x00
        })
    }

    If (SS3)
    {
        Name (\_S3, Package (0x04)
        {
            0x05, 
            0x00, 
            0x00, 
            0x00
        })
    }

    If (SS4)
    {
        Name (\_S4, Package (0x04)
        {
            0x06, 
            0x00, 
            0x00, 
            0x00
        })
    }

    Name (\_S5, Package (0x04)
    {
        0x07, 
        0x00, 
        0x00, 
        0x00
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0)
        {
            \_SB.PCI0.SBRG.SIOS (Arg0)
            \_SB.PCI0.NB2N.NPTS (Arg0)
            \_SB.PCI0.SBRG.SPTS (Arg0)
        }
    }

    Method (WAK, 1, NotSerialized)
    {
        \_SB.PCI0.SBRG.SIOW (Arg0)
        \_SB.PCI0.NB2N.NWAK (Arg0)
        \_SB.PCI0.SBRG.SWAK (Arg0)
    }
}


[-- Attachment #4 --]
DSDT-8zP4P81P4P81106INTL& [€BIOSdô
˙[?BIOSSS1_SS2_SS3_SS4_IOSTTOPM ROMS MG1B MG1L MG2B MG2L HWMBIO1B€IO1L
€SPIO
.PM300ACPH
ŢSUSW
˙PMBSPMLN
€GPBS€GPLN
@SMBS
SMBL
 APCBŔţAPCLRRIOp
RRIO[1RDMAp
rDMA[1PICM
_PIC 	hp
ŞDBG8Ąp
ŹDBG8phPICMOSVR˙F	OSFL 
’“OSVR˙¤OSVR “PICM
p
ŹDBG8p
OSVR 'MCTH\_OS_
Microsoft Windows NTp
OSVRĄ< :MCTH\_OS_
Microsoft WindowsME: Millennium Editionp
OSVR¤OSVROMCTH •‡h‡i¤r‡h
`BUF0`BUF1`phBUF0piBUF1˘`v` ’“ƒˆBUF0`ƒˆBUF1`¤¤D	GPRWPRWP

phˆPRWP
piˆPRWP
p
`}`ySS1_
`}`ySS2_
`}`ySS3_
`}`ySS4_
` 	{y
i`Ą-z`
` ‘“OSFL
“OSFL
`ˆPRWP
Ą‚`ˆPRWP
¤PRWPWAKP

[€DEB0
€
[DEB0DBG8[€DEB1

[DEB1DBG9 \_PR_[ƒCPU1[ƒCPU2ŽŽ\_SB_PR04C˙˙
LNKE
˙˙	
LNKF
˙˙	
LNKG
˙˙	
LNKH
˙˙	
LNKE
˙˙

LNKG
˙˙

LNKH
˙˙

LNKE
˙˙

LNKF
˙˙
LNKH
˙˙
LNKE
˙˙
LNKF
˙˙
LNKG
˙˙
LNKE
˙˙
LNKF
˙˙
LNKG
˙˙
LNKH
˙˙

LNKF
˙˙

LNKG
˙˙

LNKH
˙˙

LNKE
˙˙
LNKG
˙˙
LNKE
˙˙
LNKH
AR04C
˙˙



˙˙	



˙˙	



˙˙	



˙˙	



˙˙




˙˙




˙˙




˙˙




˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙




˙˙




˙˙




˙˙




˙˙



˙˙



˙˙


PR00C˙˙
LNKC
˙˙
LNKB
˙˙
LNKA
˙˙
LNKD
˙˙
LNKC
˙˙
LNKH
˙˙
LNKA
˙˙
LNKB
˙˙
LNKA
˙˙
LNKB
˙˙
LNKC
˙˙
LNKD
AR00K

˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙



˙˙


PR02˙˙
LNKC
AR02
˙˙


PRSA	
#řÜyPRSAPRSBPRSAPRSCPRSAPRSDPRSAPRSEPRSAPRSFPRSAPRSGPRSAPRSH[‚„JPCI0_HIDAĐ
_ADR
_BBN
_UID
_PRT 
PICM¤AR00¤PR00[‚6P0P4_ADR_PRW¤GPRW

_PRT 
PICM¤AR04¤PR04[‚KĐIDE0_ADRREGF
_REG “h
piREGFTIM0H
x
´
đ„

#
!




	


p
I
6
'























TMD0
ŠTMD0
PIO0ŠTMD0
DMA0ŠTMD0
PIO1ŠTMD0
DMA1ŠTMD0
CHNF[€CFG2
@
 [H
CFG2PMPTPSPTPMRISMPTSSPTSMRIPSRISSRIPM3EPS3ESM3ESS3EPMUTPSUTSMUTSSUT@PM6EPS6ESM6ESS6EPMCRPSCRSMCRSSCRPMAEPSAESMAESSAEGMPT
GMUE
GMUT
GMCR
GSPT
GSUE
GSUT
GSCR
[‚G$CHN0_ADR
L_GTMyPSCR
a}PMCRa`yPMAE
cyPM6E
d}cdc}PM3EcayPMPT
c}acayPSAE
cyPS6E
d}cdc}PS3EcbyPSPT
c}bcb¤GTM_PMRIaPMUTPSRIbPSUT`@_STMph[1phTMD0yPMAE
cyPM6E
d}cdc}PM3Ec`yPMPT
c}`c`yPSAE
cyPS6E
d}cdc}PS3EcayPSPT
c}acapPMRIGMPTp`GMUEpPMUTGMUTpPMCRGMCRpPSRIGSPTpaGSUEpPSUTGSUTpPSCRGSCRSTM_pGMPTPMRIpGMUE`pGMUTPMUTpGMCRPMCRpGSUEapGSUTPSUTpGSCRPSCR 
{`
p
PM3EĄp
PM3E 
{`
p
PM6EĄp
PM6E 
{`
p
PMAEĄp
PMAE 
{a
p
PS3EĄp
PS3E 
{a
p
PS6EĄp
PS6E 
{a
p
PSAEĄp
PSAEpGTF_
iATA0pGTF_
jATA1[‚DRV0_ADR
_GTF¤RATAATA0[‚DRV1_ADR
_GTF¤RATAATA1[‚G$CHN1_ADR
L_GTMySSCR
a}SMCRa`ySMAE
cySM6E
d}cdc}SM3EcaySMPT
c}acaySSAE
cySS6E
d}cdc}SS3EcbySSPT
c}bcb¤GTM_SMRIaSMUTSSRIbSSUT`@_STMph[1phTMD0ySMAE
cySM6E
d}cdc}SM3Ec`ySMPT
c}`c`ySSAE
cySS6E
d}cdc}SS3EcaySSPT
c}acapSMRIGMPTp`GMUEpSMUTGMUTpSMCRGMCRpSSRIGSPTpaGSUEpSSUTGSUTpSSCRGSCRSTM_pGMPTSMRIpGMUE`pGMUTSMUTpGMCRSMCRpGSUEapGSUTSSUTpGSCRSSCR 
{`
p
SM3EĄp
SM3E 
{`
p
SM6EĄp
SM6E 
{`
p
SMAEĄp
SMAE 
{a
p
SS3EĄp
SS3E 
{a
p
SS6EĄp
SS6E 
{a
p
SSAEĄp
SSAEpGTF_
iATA2pGTF_
jATA3[‚DRV0_ADR
_GTF¤RATAATA2[‚DRV1_ADR
_GTF¤RATAATA3MGTM_p˙PIO0p˙PIO1p˙DMA0p˙DMA1p
CHNF REGFĄ¤TMD0 {i
 }CHNF
CHNFp‰ƒˆTIM0
h

fpƒˆƒˆTIM0
fgpgDMA0pgPIO0 {l
 }CHNF
CHNFp‰ƒˆTIM0
k

fpƒˆƒˆTIM0
fgpgDMA1pgPIO1 >{i
pje {i
re
e {i
re
epƒˆƒˆTIM0
eDMA0}CHNF
CHNF >{l
pme {l
re
e {l
re
epƒˆƒˆTIM0
eDMA1}CHNF
CHNFpTMD0[1¤TMD0@#STM_ REGFĄ¤TMD0p
GMUEp
GMUTp
GSUEp
GSUT D{CHNF
p‰ƒˆTIM0
DMA0

` 	”`
p
`pƒˆƒˆTIM0
`GMUT}GMUE
GMUE ”`
}GMUE
GMUE ”`
{GMUE
ýGMUE}GMUE
GMUEĄ7 5}“PIO0˙“PIO0
 ${•DMA0˙”DMA0
pDMA0PIO0}GMUE
€GMUE D{CHNF
p‰ƒˆTIM0
DMA1

` 	”`
p
`pƒˆƒˆTIM0
`GSUT}GSUE
GSUE ”`
}GSUE
GSUE ”`
{GSUE
ýGSUE}GSUE
GSUEĄ7 5}“PIO1˙“PIO1
 ${•DMA1˙”DMA1
pDMA1PIO1}GSUE
€GSUE {CHNF
}GMUE
 GMUE {CHNF
}GSUE
 GSUE{‰ƒˆTIM0
PIO0


`pƒˆƒˆTIM0
`apaGMPT •`
}GMUE
PGMUE{‰ƒˆTIM0
PIO1


`pƒˆƒˆTIM0
`apaGSPT •`
}GSUE
PGSUEAT01

ďAT02

AT03

ĆAT04

‘ATA0
ATA1
ATA2
ATA3
ATAB
ŒATAB
CMDCLGTFBwCMDC
8`r`
a[ATABa
8CMDXwCMDC
`ŒATABr`
A001ŒATABr`
A005phCMDXpiA001pjA005uCMDCB$GTF_
pi[1p
CMDCID49ID59
ID53
ID63ID88IRDY
PIOT
DMAT
 M“‡i‹i
bIW49pIW49ID49‹i
jIW53pIW53ID53‹i
~IW63pIW63ID63‹i
vIW59pIW59ID59‹i
°IW88pIW88ID88p
 g Hhp
°g{CHNF
IRDY {CHNF
pPIO1PIOTĄ
pPIO0PIOT '{CHNF
 {CHNF
pDMA1DMATĄ
pDMA0DMATĄ({CHNF
IRDYpPIO0PIOT {CHNF
pDMA0DMAT G{ID53
{ID88˙DMATp‰ƒˆTIM0
DMAT

a 	”a
p
aGTFBAT01}
@agĄF C{ID63˙PIOT{‰ƒˆTIM0
PIOT


`}
 ƒˆƒˆTIM0
`aGTFBAT01ag 8IRDY{‰ƒˆTIM0
PIOT


`}
ƒˆƒˆTIM0
`aGTFBAT01agĄ {ID49GTFBAT01
g ${ID59{ID59
˙GTFBAT03{ID59
˙gpATAB[1¤ATAB,RATAŒh
CMDNwCMDN
8`[h
`RETBpRETB[1¤RETB[‚IDE1_ADR[‚MC97_ADR_PRW¤GPRW

[‚USB1_ADR_PRW¤GPRW

[‚USB2_ADR_PRW¤GPRW

[‚USB3_ADR_PRW¤GPRW

[‚USB4_ADR_PRW¤GPRW

[‚EUSB_ADR_PRW¤GPRW

[‚Ž^SBRG_ADR[‚+PIC__HIDAĐ_CRS
G  G  "y[‚NDMAD_HIDAĐ_CRS8
5*GGG‡‡G‰‰GGŔŔ y[‚%TMR__HIDAĐ_CRS

G@@"y[‚%RTC0_HIDAĐ_CRS

Gpp"y[‚DPS2K_HIDAĐ_CIDAĐ_STAy


` {IOST`¤
¤
_CRS
G``Gdd"y.PS2K_PRW¤GPRW

[‚DPS2M_HIDAĐ_CIDAĐ_STAy

` {IOST`¤
¤
CRS1
"yCRS2
G``Gdd"y!_CRSy


` 
{IOST`¤CRS1Ą¤CRS2.PS2M_PRW¤GPRW

[‚"SPKR_HIDAĐ_CRS

Gaay[‚%COPR_HIDAĐ_CRS

Gđđ" y[‚@UAR1_UID
_HIDAĐ
_STA¤DSTA
_DISDCNT

_CRS¤PCRS



_SRSPSRSh
_PRS¤CMPRCMPRD
@1Gřř"0Gřř"ř0Gřř"ř0Gčč"ř0Gčč"ř8yPBUF

G"yL
PCRSŒPBUF
IOLOŒPBUF
IOHI‹PBUF
IOHL‹PBUF
IORLŒPBUF
ALMNŒPBUF
LENGŒPBUF
	IRQLENFGCGLDhpIOAHIOHIpIOALIOLOpIOHLIORLpiALMN “IOLO
źp
LENGĄpjLENGp`y`INTRIRQLEXFG¤PBUFBPSRSŒh
POLBŒh
POHB‹h
	PIRQENFGCGLDipPOLBIOALpPOHBIOAH‚PIRQ`t`
INTRpACTREXFG[‚K	UAR2_UID
_HIDAĐ
_STA¤DSTA
_DISDCNT


_CRS¤DCRS

_SRSDSRSh
_PRS¤CMPRCMPR9
6"ř0*Gřř0*Gřř0*Gčč0*Gčč8y[‚IFDC__HIDAĐ_FDE





_STA¤DSTA
_DISDCNT

H_CRSDCRS
pIRQMIRQEpDMAMDMAEpIO11IO21pIO12IO22p
LEN2rIO21
IO31pIO31IO32p
LEN3¤CRS2
_SRSDSRSh
_PRSM
I1"@*GđđG÷÷0"ř*GđđG÷÷0"ř*GppGww8y[‚A<LPTE_UID
_HID 
LPTM
¤AĐĄ¤AĐ
_STA¤DSTA
_DISDCNT


_CRS¤ECRS

_SRSESRSh
_PRS LPTM
¤EPPRĄ¤LPPRLPPR7
41Gxx"€0Gxx"ř0Gxx"ř0Gźź"ř8yEPPRD
`1GxxGxx"€*0GxxGxx"ř*0GxxGxx"ř*0GźźGźź"ř*8yEBUF
GxxGxx"€*yŒEBUF
EPLOŒEBUF
EPHI‹EBUF
EPHL‹EBUF
EPRL‹EBUF
ALM1‹EBUF

E4LO‹EBUF
E4RL‹EBUF
ELNG‹EBUF
EIRQŒEBUF
EDMAPBUF

Gxx"€yŒPBUF
PPLOŒPBUF
PPHI‹PBUF
PPHL‹PBUF
PPRL‹PBUF
ALM0‹PBUF
	PIRQCECRSENFGCGLDhpIOAHEPHIpIOALEPLOpIOAHPPHIpIOALPPLOpEPHLEPRLpPPHLPPRL{OPT0
` `rEPHLE4LOpE4LOE4RL “EPHLźpALM1pALM0ĄpALM1pALM0p`pINTRay`aEIRQy`aPIRQpDMCHa ”a
p
EDMAĄp`y`aEDMA{OPT0
`EXFG `¤EBUFĄ¤PBUF@
ESRSENFGCGLDiŒh
LOEPŒh
HIEP{OPT0
` `‹h
IRQEŒh
DMAEĄ	‹h
	IRQPpLOEPIOALpHIEPIOAH{OPT0
` ` IRQE‚IRQE`t`
INTRĄp
INTRĄ IRQP‚IRQP`t`
INTRĄp
INTR{OPT0
` ` DMAE‚DMAE`t`
DMCHĄp
DMCHpACTREXFG[‚@GAME_HIDAа/
_STA¤DSTA
_DISDCNT

GMCR

GyA_CRSŒGMCR
IOLOŒGMCR
IOHI‹GMCR
IOHL‹GMCR
IORLENFGCGLD
pIOAHIOHIpIOALIOLOpIOHLIORLEXFG¤GMCR>_SRSŒh
POLBŒh
POHBENFGCGLD
pPOLBIOALpPOHBIOAHDCNT

EXFG_PRS
1G0G8y[‚BMIDI_HIDAа
_STA¤DSTA
_DISDCNT

MDCR

G" yG_CRSŒMDCR
IOLOŒMDCR
IOHI‹MDCR
IOHL‹MDCR
IORL‹MDCR
	MIRQENFGCGLD
pIOH2IOHIpIOL2IOLOpIOHLIORLy
INTRMIRQEXFG¤MDCRE_SRSŒh
POLBŒh
POHB‹h
	MIRQENFGCGLD
pPOLBIOL2pPOHBIOH2‚MIRQ`t`
INTRDCNT

EXFG_PRS
0G0G008" y[‚M
SIOR_HIDAĐ_UID¤SPIOCRS_
GGGyM	_CRS M’“SPIOđ”SPIO
đ‹CRS_
GP10‹CRS_
GP11ŒCRS_
GPL1pSPIOGP10pSPIOGP11p
GPL1 BIO1B‹CRS_

GP20‹CRS_
GP21ŒCRS_
GPL2pIO1BGP20pIO1BGP21pIO1LGPL2¤CRS_DCAT,




˙

˙
˙

˙
˙
˙
˙
˙
˙
˙


	
˙
˙ENFGp
‡INDXp
‡INDXphLDN_
EXFGp
ŞINDXLPTMENFGCGLDh{OPT0
`EXFG¤`0UHID #“h
ENFGCGLDh{OPT1
8`EXFG `¤AФAĐJSIOKENFG

{
˙OPT3OPT3{h
0`{OPT6
ĎOPT6}OPT6`OPT6pha{h
`{OPT9
úOPT9}OPT9`OPT9 “hp
ACTRp
LDN_{OPT5
?OPT5Ąp
ACTREXFG..PS2K_PSWENFG

{OPT6
ďOPT6 
h}OPT6
OPT6EXFG..PS2M_PSWENFG

{OPT6
ßOPT6 
h}OPT6
 OPT6EXFGSIOSp
SIOS[1SIOK˙SIOWp
SIOW[1SIOK<SIOHp
SIOH[1ENFG

 {OPT3
†PS2K
 {OPT3
 †PS2M
SIOK[€IOIDSPIO
[IOIDINDXDATA[†O	INDXDATA8LDN_@
FDCPLPTPURAPURBPJACTRHIOAHIOALIOH2IOL2@INTRDMCHH5CRE0CRE1CRE2CRE3CRE4HOPT0OPT1OPT2OPT3OPT5OPT6OPT9CGLD¤ƒˆDCAThHDSTAENFGCGLDhpACTR`EXFG “`
˙¤
 
“h
z`
` 
“h
z`
`{`
`}IOSTy`hIOST `¤
Ą {y
hIOST¤

Ą¤
HDCNTENFGCGLDhyIOAH
a}IOALaaRRIOhia
 •DMCH
’“{DMCH
a
RDMAhiuapiap
b “h
yi
ayb
b “h
yi
ayb
bpACTR`€bc{`c`}`a`p`ACTREXFGCRS1
"*Gy‹CRS1
IRQMŒCRS1
DMAM‹CRS1
IO11‹CRS1

IO12ŒCRS1

LEN1CRS2
"@*GGy‹CRS2
IRQEŒCRS2
DMAE‹CRS2
IO21‹CRS2

IO22ŒCRS2

LEN2‹CRS2
IO31‹CRS2
IO32ŒCRS2
LEN3MDCRSENFGCGLDhyIOAH
IO11}IOALIO11IO11pIO11IO12t‚IO11
`y
`LEN1 INTRy
INTRIRQMĄp
IRQM }”DMCH
“{DMCH
a
p
DMAMĄ	y
aDMAMEXFG¤CRS1CDSRS‹h
IRQMŒh
DMAM‹h
IO11ENFGCGLDi{IO11
˙IOALzIO11
IOAH IRQM‚IRQM`t`
INTRĄp
INTR DMAM‚DMAM`t`
DMCHĄp
DMCHEXFGDCNTi
[‚BRMSC_HIDAĐ_UID
CRS_F

˘GG""GDDGbbGeeGrrG€€G„„GˆˆGŒŒGG˘˘GŕŕGĐĐGGG†	Ňţ†	°˙yN_CRS‹CRS_
rGP00‹CRS_
tGP01ŒCRS_
wGP0LpPMBSGP00pPMBSGP01pPMLNGP0L BSMBS‹CRS_
zGP10‹CRS_
|GP11ŒCRS_
GP1LpSMBSGP10pSMBSGP11pSMBLGP1L BGPBS‹CRS_
‚GP20‹CRS_
„GP21ŒCRS_
‡GP2LpGPBSGP20pGPBSGP21pGPLNGP2L¤CRS_[‚CP3F6_HIDAĐ_UIDöK_STAp
ap\/_SB_PCI0IDE0PAMD` 	“`
Šp
ap\/_SB_PCI0IDE1SAMD` 	“`
Šp
a¤aCRS_

Gööy_CRS¤CRS_[‚N	OMSC_HIDAĐ_UID
CRS_
†	†	yC_CRS FAPCBŠCRS_
ML01ŠCRS_
MB01ŠCRS_
ML02ŠCRS_
MB02pAPCBMB01pAPCLML01pŕţMB02pML02¤CRS_[‚M\._SB_RMEM_HIDAĐ_UID
CRS_B
>†	
†	†	†	†	yG_CRSŠCRS_
BAS1ŠCRS_
LEN1ŠCRS_
BAS2ŠCRS_
 LEN2ŠCRS_
,LEN3ŠCRS_
4BAS4ŠCRS_
8LEN4 OSFLĄA (MG1B "”MG1BpBAS1tMG1BBAS1LEN1ĄpBAS1pLEN1 rMG1BMG1L`p`BAS2tBAS2LEN2tMG2BLEN3rMG2BMG2LBAS4t
BAS4LEN4¤CRS_[‚P0P1_ADR[‚HP0P2_ADR_PRT 
PICM¤AR02¤PR02[‚ILAN_ADR_PRW¤GPRW

H\_GPE%_L0B†\/_SB_PCI0P0P4
†\._SB_PWRB
%_L05†\/_SB_PCI0MC97
†\._SB_PWRB
%_L03†\/_SB_PCI0USB1
†\._SB_PWRB
%_L04†\/_SB_PCI0USB2
†\._SB_PWRB
%_L0C†\/_SB_PCI0USB3
†\._SB_PWRB
%_L0E†\/_SB_PCI0USB4
†\._SB_PWRB
%_L0D†\/_SB_PCI0EUSB
†\._SB_PWRB
_L1D\/_SB_PCI0SBRGSIOH_L18†\/_SB_PCI0P0P2ILAN
[‚PWRB_HIDAĐ_UID
Ş_STA
[€\/_SB_PCI0SBRGPIX0
`
[?\/_SB_PCI0SBRGPIX0PIRAPIRBPIRCPIRD PIREPIRFPIRGPIRHAG\_SB_BUFA	
#€y‹BUFA
IRA0[‚HLNKA_HIDAĐ_UID
_STA{PIRA
€` `¤
	Ą¤
_PRS¤PRSA_DIS}PIRA
€PIRA_CRS{PIRA
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRA[‚HLNKB_HIDAĐ_UID
_STA{PIRB
€` `¤
	Ą¤
_PRS¤PRSB_DIS}PIRB
€PIRB_CRS{PIRB
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRB[‚HLNKC_HIDAĐ_UID
_STA{PIRC
€` `¤
	Ą¤
_PRS¤PRSC_DIS}PIRC
€PIRC_CRS{PIRC
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRC[‚HLNKD_HIDAĐ_UID
_STA{PIRD
€` `¤
	Ą¤
_PRS¤PRSD_DIS}PIRD
€PIRD_CRS{PIRD
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRD[‚HLNKE_HIDAĐ_UID
_STA{PIRE
€` `¤
	Ą¤
_PRS¤PRSE_DIS}PIRE
€PIRE_CRS{PIRE
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRE[‚HLNKF_HIDAĐ_UID
_STA{PIRF
€` `¤
	Ą¤
_PRS¤PRSF_DIS}PIRF
€PIRF_CRS{PIRF
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRF[‚HLNKG_HIDAĐ_UID
_STA{PIRG
€` `¤
	Ą¤
_PRS¤PRSG_DIS}PIRG
€PIRG_CRS{PIRG
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRG[‚HLNKH_HIDAĐ_UID
_STA{PIRH
€` `¤
	Ą¤
_PRS¤PRSH_DIS}PIRH
€PIRH_CRS{PIRH
`y
`IRA0¤BUFA_SRS‹h
IRA_‚IRA_`v`p`PIRHK\_SB_CPCI0[€IOB2
˛
[IOB2SMICSMIS_INI [_OSI`p
XSMICĄp
…SMICL!\_SB_M PCI0CRS_L
ˆˆ
˙Gřřˆ
÷řˆ

˙˙ó‡
˙˙‡‡yŠCRS_
\MIN5ŠCRS_
`MAX5ŠCRS_
hLEN5ŠCRS_
vMIN6ŠCRS_
zMAX6ŠCRS_
‚LEN6A_CRSpMG1BMIN5pMG1LLEN5pMG1L` 
`rMIN5v`MAX5pMG2BMIN6rMIN6MIN6pMG2LLEN6tLEN6LEN6pLEN6`rMIN6v`MAX6¤CRS__S3D ‘“OSFL
“OSFL
¤
Ą¤
$.USB1_S3D ‘“OSFL
“OSFL
¤
Ą¤
$.USB2_S3D ‘“OSFL
“OSFL
¤
Ą¤
$.USB3_S3D ‘“OSFL
“OSFL
¤
Ą¤
$.USB4_S3D ‘“OSFL
“OSFL
¤
Ą¤
NATASLPS
WR00
WR01
WR02
M_PTSphDBG8PTS_hp
ˆWAKP
p
ˆWAKP
 “h
“OSFL
["¸pAPWRWR00pSPLVWR01pOSFGWR02phSPLVpOSFLOSFGpPS1SpPS1Ep\._SB_SLPSJ	_WAKyh
DBG8pPS1E IOWKĄ†\._SB_PWRB
 {APWR
†\._SB_PWRB
pPWBTpWR00APWRpWR01SPLVpWR02OSFGp\._SB_SLPSWAK_h ƒˆWAKP
p
ˆWAKP
ĄphˆWAKP
¤WAKP[€PMS0PMBS
[$PMS0
RTCSWAKSPWBTRTCE[€SMIEPM30
[SMIEPS1EPS1S[€\/_SB_PCI0SKPDACPH
["\/_SB_PCI0SKPDAPWRSPLVOSFG[€CMOS
p
[CMOSCIDXCDAT[†CIDXCDAT@7WKTP[€IORK
ł
[IORKIOWK(\/_SB_PCI0IDE0[€PAR9
	
[PAR9PAMD(\/_SB_PCI0IDE1[€SAR9
	
[SAR9SAMD\_S0_




 SS1_\_S1_




 SS3_\_S3_




 SS4_\_S4_




\_S5_




PTS_ h\/_SB_PCI0SBRGSIOShWAK_\/_SB_PCI0SBRGSIOWh
[-- Attachment #5 --]
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20041119
 *
 * Disassembly of /tmp/acpidump.BjPuWc, Mon Oct 23 18:49:27 2006
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "P4P81", "P4P81106", 262)
{
    OperationRegion (BIOS, SystemMemory, 0x7FF40064, 0xFF)
    Field (BIOS, ByteAcc, NoLock, Preserve)
    {
        SS1,    1, 
        SS2,    1, 
        SS3,    1, 
        SS4,    1, 
        Offset (0x01), 
        IOST,   16, 
        TOPM,   32, 
        ROMS,   32, 
        MG1B,   32, 
        MG1L,   32, 
        MG2B,   32, 
        MG2L,   32
    }

    Name (HWMB, 0x0290)
    Name (IO1B, 0x0680)
    Name (IO1L, 0x80)
    Name (SPIO, 0x2E)
    Name (PM30, 0x0830)
    Name (ACPH, 0xDE)
    Name (SUSW, 0xFF)
    Name (PMBS, 0x0800)
    Name (PMLN, 0x80)
    Name (GPBS, 0x0480)
    Name (GPLN, 0x40)
    Name (SMBS, 0x00)
    Name (SMBL, 0x20)
    Name (APCB, 0xFEC00000)
    Name (APCL, 0x1000)
    Method (RRIO, 4, NotSerialized)
    {
        Store ("RRIO", Debug)
    }

    Method (RDMA, 3, NotSerialized)
    {
        Store ("rDMA", Debug)
    }

    Name (PICM, 0x00)
    Method (_PIC, 1, NotSerialized)
    {
        If (Arg0)
        {
            Store (0xAA, DBG8)
        }
        Else
        {
            Store (0xAC, DBG8)
        }

        Store (Arg0, PICM)
    }

    Name (OSVR, Ones)
    Method (OSFL, 0, NotSerialized)
    {
        If (LNot (LEqual (OSVR, Ones)))
        {
            Return (OSVR)
        }

        If (LEqual (PICM, 0x00))
        {
            Store (0xAC, DBG8)
        }

        Store (0x01, OSVR)
        If (MCTH (\_OS, "Microsoft Windows NT"))
        {
            Store (0x00, OSVR)
        }
        Else
        {
            If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
            {
                Store (0x02, OSVR)
            }
        }

        Return (OSVR)
    }

    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

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

        Return (One)
    }

    Method (GPRW, 2, NotSerialized)
    {
        Name (PRWP, Package (0x02)
        {
            0x00, 
            0x00
        })
        Store (Arg0, Index (PRWP, 0x00))
        Store (Arg1, Index (PRWP, 0x01))
        Store (0x00, Local0)
        Or (Local0, ShiftLeft (SS1, 0x01), Local0)
        Or (Local0, ShiftLeft (SS2, 0x02), Local0)
        Or (Local0, ShiftLeft (SS3, 0x03), Local0)
        Or (Local0, ShiftLeft (SS4, 0x04), Local0)
        If (And (ShiftLeft (0x01, Arg1), Local0)) {}
        Else
        {
            ShiftRight (Local0, 0x01, Local0)
            If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
            {
                FindSetLeftBit (Local0, Index (PRWP, 0x01))
            }
            Else
            {
                FindSetRightBit (Local0, Index (PRWP, 0x01))
            }
        }

        Return (PRWP)
    }

    Name (WAKP, Package (0x02)
    {
        0x00, 
        0x00
    })
    OperationRegion (DEB0, SystemIO, 0x80, 0x01)
    Field (DEB0, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }

    OperationRegion (DEB1, SystemIO, 0x90, 0x02)
    Field (DEB1, WordAcc, NoLock, Preserve)
    {
        DBG9,   16
    }

    Scope (\_PR)
    {
        Processor (CPU1, 0x01, 0x00000000, 0x00) {}
        Processor (CPU2, 0x02, 0x00000000, 0x00) {}
    }

    Scope (\_SB)
    {
        Name (PR04, Package (0x18)
        {
            Package (0x04)
            {
                0x0008FFFF, 
                0x00, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x00, 
                LNKF, 
                0x00
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x01, 
                LNKG, 
                0x00
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x02, 
                LNKH, 
                0x00
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x03, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x00, 
                LNKG, 
                0x00
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x01, 
                LNKH, 
                0x00
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x02, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x03, 
                LNKF, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x00, 
                LNKH, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x01, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x02, 
                LNKF, 
                0x00
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x03, 
                LNKG, 
                0x00
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x00, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x01, 
                LNKF, 
                0x00
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x02, 
                LNKG, 
                0x00
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x03, 
                LNKH, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x00, 
                LNKF, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x01, 
                LNKG, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x02, 
                LNKH, 
                0x00
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x03, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x00, 
                LNKG, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x00, 
                LNKE, 
                0x00
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x00, 
                LNKH, 
                0x00
            }
        })
        Name (AR04, Package (0x18)
        {
            Package (0x04)
            {
                0x0008FFFF, 
                0x00, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x00, 
                0x00, 
                0x15
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x01, 
                0x00, 
                0x16
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x02, 
                0x00, 
                0x17
            }, 

            Package (0x04)
            {
                0x0009FFFF, 
                0x03, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x00, 
                0x00, 
                0x16
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x01, 
                0x00, 
                0x17
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x02, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x000AFFFF, 
                0x03, 
                0x00, 
                0x15
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x00, 
                0x00, 
                0x17
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x01, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x02, 
                0x00, 
                0x15
            }, 

            Package (0x04)
            {
                0x000BFFFF, 
                0x03, 
                0x00, 
                0x16
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x00, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x01, 
                0x00, 
                0x15
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x02, 
                0x00, 
                0x16
            }, 

            Package (0x04)
            {
                0x000CFFFF, 
                0x03, 
                0x00, 
                0x17
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x00, 
                0x00, 
                0x15
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x01, 
                0x00, 
                0x16
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x02, 
                0x00, 
                0x17
            }, 

            Package (0x04)
            {
                0x000DFFFF, 
                0x03, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x00, 
                0x00, 
                0x16
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x00, 
                0x00, 
                0x14
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x00, 
                0x00, 
                0x17
            }
        })
        Name (PR00, Package (0x0C)
        {
            Package (0x04)
            {
                0x001FFFFF, 
                0x00, 
                LNKC, 
                0x00
            }, 

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

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

            Package (0x04)
            {
                0x001DFFFF, 
                0x01, 
                LNKD, 
                0x00
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x03, 
                LNKH, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0001FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

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

            Package (0x04)
            {
                0x0003FFFF, 
                0x01, 
                LNKB, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                LNKC, 
                0x00
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                LNKD, 
                0x00
            }
        })
        Name (AR00, Package (0x0C)
        {
            Package (0x04)
            {
                0x001FFFFF, 
                0x00, 
                0x00, 
                0x12
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x01, 
                0x00, 
                0x11
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x00, 
                0x00, 
                0x10
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x01, 
                0x00, 
                0x13
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x02, 
                0x00, 
                0x12
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x03, 
                0x00, 
                0x17
            }, 

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

            Package (0x04)
            {
                0x0001FFFF, 
                0x01, 
                0x00, 
                0x11
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x00, 
                0x00, 
                0x10
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x01, 
                0x00, 
                0x11
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                0x00, 
                0x12
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                0x00, 
                0x13
            }
        })
        Name (PR02, Package (0x01)
        {
            Package (0x04)
            {
                0x0001FFFF, 
                0x00, 
                LNKC, 
                0x00
            }
        })
        Name (AR02, Package (0x01)
        {
            Package (0x04)
            {
                0x0001FFFF, 
                0x00, 
                0x00, 
                0x12
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,12,14,15}
        })
        Alias (PRSA, PRSB)
        Alias (PRSA, PRSC)
        Alias (PRSA, PRSD)
        Alias (PRSA, PRSE)
        Alias (PRSA, PRSF)
        Alias (PRSA, PRSG)
        Alias (PRSA, PRSH)
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_BBN, 0x00)
            Name (_UID, 0x00)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Device (P0P4)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0B, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }

                    Return (PR04)
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x001F0001)
                Name (REGF, 0x01)
                Method (_REG, 2, NotSerialized)
                {
                    If (LEqual (Arg0, 0x02))
                    {
                        Store (Arg1, REGF)
                    }
                }

                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, 
                        0x0F
                    }, 

                    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)
                {
                    PMPT,   4, 
                    PSPT,   4, 
                    PMRI,   6, 
                    Offset (0x02), 
                    SMPT,   4, 
                    SSPT,   4, 
                    SMRI,   6, 
                    Offset (0x04), 
                    PSRI,   4, 
                    SSRI,   4, 
                    Offset (0x08), 
                    PM3E,   1, 
                    PS3E,   1, 
                    SM3E,   1, 
                    SS3E,   1, 
                    Offset (0x0A), 
                    PMUT,   2, 
                        ,   2, 
                    PSUT,   2, 
                    Offset (0x0B), 
                    SMUT,   2, 
                        ,   2, 
                    SSUT,   2, 
                    Offset (0x0C), 
                    Offset (0x14), 
                    PM6E,   1, 
                    PS6E,   1, 
                    SM6E,   1, 
                    SS6E,   1, 
                    PMCR,   1, 
                    PSCR,   1, 
                    SMCR,   1, 
                    SSCR,   1, 
                        ,   4, 
                    PMAE,   1, 
                    PSAE,   1, 
                    SMAE,   1, 
                    SSAE,   1
                }

                Name (GMPT, 0x00)
                Name (GMUE, 0x00)
                Name (GMUT, 0x00)
                Name (GMCR, 0x00)
                Name (GSPT, 0x00)
                Name (GSUE, 0x00)
                Name (GSUT, 0x00)
                Name (GSCR, 0x00)
                Device (CHN0)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        ShiftLeft (PSCR, 0x01, Local1)
                        Or (PMCR, Local1, Local0)
                        ShiftLeft (PMAE, 0x02, Local3)
                        ShiftLeft (PM6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (PM3E, Local3, Local1)
                        ShiftLeft (PMPT, 0x04, Local3)
                        Or (Local1, Local3, Local1)
                        ShiftLeft (PSAE, 0x02, Local3)
                        ShiftLeft (PS6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (PS3E, Local3, Local2)
                        ShiftLeft (PSPT, 0x04, Local3)
                        Or (Local2, Local3, Local2)
                        Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        ShiftLeft (PMAE, 0x02, Local3)
                        ShiftLeft (PM6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (PM3E, Local3, Local0)
                        ShiftLeft (PMPT, 0x04, Local3)
                        Or (Local0, Local3, Local0)
                        ShiftLeft (PSAE, 0x02, Local3)
                        ShiftLeft (PS6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (PS3E, Local3, Local1)
                        ShiftLeft (PSPT, 0x04, Local3)
                        Or (Local1, Local3, Local1)
                        Store (PMRI, GMPT)
                        Store (Local0, GMUE)
                        Store (PMUT, GMUT)
                        Store (PMCR, GMCR)
                        Store (PSRI, GSPT)
                        Store (Local1, GSUE)
                        Store (PSUT, GSUT)
                        Store (PSCR, GSCR)
                        STM ()
                        Store (GMPT, PMRI)
                        Store (GMUE, Local0)
                        Store (GMUT, PMUT)
                        Store (GMCR, PMCR)
                        Store (GSUE, Local1)
                        Store (GSUT, PSUT)
                        Store (GSCR, PSCR)
                        If (And (Local0, 0x01))
                        {
                            Store (0x01, PM3E)
                        }
                        Else
                        {
                            Store (0x00, PM3E)
                        }

                        If (And (Local0, 0x02))
                        {
                            Store (0x01, PM6E)
                        }
                        Else
                        {
                            Store (0x00, PM6E)
                        }

                        If (And (Local0, 0x04))
                        {
                            Store (0x01, PMAE)
                        }
                        Else
                        {
                            Store (0x00, PMAE)
                        }

                        If (And (Local1, 0x01))
                        {
                            Store (0x01, PS3E)
                        }
                        Else
                        {
                            Store (0x00, PS3E)
                        }

                        If (And (Local1, 0x02))
                        {
                            Store (0x01, PS6E)
                        }
                        Else
                        {
                            Store (0x00, PS6E)
                        }

                        If (And (Local1, 0x04))
                        {
                            Store (0x01, PSAE)
                        }
                        Else
                        {
                            Store (0x00, PSAE)
                        }

                        Store (GTF (0x00, Arg1), ATA0)
                        Store (GTF (0x01, Arg2), ATA1)
                    }

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

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

                Device (CHN1)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        ShiftLeft (SSCR, 0x01, Local1)
                        Or (SMCR, Local1, Local0)
                        ShiftLeft (SMAE, 0x02, Local3)
                        ShiftLeft (SM6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (SM3E, Local3, Local1)
                        ShiftLeft (SMPT, 0x04, Local3)
                        Or (Local1, Local3, Local1)
                        ShiftLeft (SSAE, 0x02, Local3)
                        ShiftLeft (SS6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (SS3E, Local3, Local2)
                        ShiftLeft (SSPT, 0x04, Local3)
                        Or (Local2, Local3, Local2)
                        Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        ShiftLeft (SMAE, 0x02, Local3)
                        ShiftLeft (SM6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (SM3E, Local3, Local0)
                        ShiftLeft (SMPT, 0x04, Local3)
                        Or (Local0, Local3, Local0)
                        ShiftLeft (SSAE, 0x02, Local3)
                        ShiftLeft (SS6E, 0x01, Local4)
                        Or (Local3, Local4, Local3)
                        Or (SS3E, Local3, Local1)
                        ShiftLeft (SSPT, 0x04, Local3)
                        Or (Local1, Local3, Local1)
                        Store (SMRI, GMPT)
                        Store (Local0, GMUE)
                        Store (SMUT, GMUT)
                        Store (SMCR, GMCR)
                        Store (SSRI, GSPT)
                        Store (Local1, GSUE)
                        Store (SSUT, GSUT)
                        Store (SSCR, GSCR)
                        STM ()
                        Store (GMPT, SMRI)
                        Store (GMUE, Local0)
                        Store (GMUT, SMUT)
                        Store (GMCR, SMCR)
                        Store (GSUE, Local1)
                        Store (GSUT, SSUT)
                        Store (GSCR, SSCR)
                        If (And (Local0, 0x01))
                        {
                            Store (0x01, SM3E)
                        }
                        Else
                        {
                            Store (0x00, SM3E)
                        }

                        If (And (Local0, 0x02))
                        {
                            Store (0x01, SM6E)
                        }
                        Else
                        {
                            Store (0x00, SM6E)
                        }

                        If (And (Local0, 0x04))
                        {
                            Store (0x01, SMAE)
                        }
                        Else
                        {
                            Store (0x00, SMAE)
                        }

                        If (And (Local1, 0x01))
                        {
                            Store (0x01, SS3E)
                        }
                        Else
                        {
                            Store (0x00, SS3E)
                        }

                        If (And (Local1, 0x02))
                        {
                            Store (0x01, SS6E)
                        }
                        Else
                        {
                            Store (0x00, SS6E)
                        }

                        If (And (Local1, 0x04))
                        {
                            Store (0x01, SSAE)
                        }
                        Else
                        {
                            Store (0x00, SSAE)
                        }

                        Store (GTF (0x00, Arg1), ATA2)
                        Store (GTF (0x01, Arg2), ATA3)
                    }

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

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

                Method (GTM, 7, Serialized)
                {
                    Store (Ones, PIO0)
                    Store (Ones, PIO1)
                    Store (Ones, DMA0)
                    Store (Ones, DMA1)
                    Store (0x10, CHNF)
                    If (REGF) {}
                    Else
                    {
                        Return (TMD0)
                    }

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

                    Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg0, MTR, 0x00, 0x00), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
                    Store (Local7, DMA0)
                    Store (Local7, PIO0)
                    If (And (Arg4, 0x20))
                    {
                        Or (CHNF, 0x08, CHNF)
                    }

                    Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, 0x00, 0x00), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
                    Store (Local7, DMA1)
                    Store (Local7, PIO1)
                    If (And (Arg1, 0x07))
                    {
                        Store (Arg2, Local5)
                        If (And (Arg1, 0x02))
                        {
                            Add (Local5, 0x02, Local5)
                        }

                        If (And (Arg1, 0x04))
                        {
                            Add (Local5, 0x04, Local5)
                        }

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

                    If (And (Arg4, 0x07))
                    {
                        Store (Arg5, Local5)
                        If (And (Arg4, 0x02))
                        {
                            Add (Local5, 0x02, Local5)
                        }

                        If (And (Arg4, 0x04))
                        {
                            Add (Local5, 0x04, Local5)
                        }

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

                    Store (TMD0, Debug)
                    Return (TMD0)
                }

                Method (STM, 0, Serialized)
                {
                    If (REGF) {}
                    Else
                    {
                        Return (TMD0)
                    }

                    Store (0x00, GMUE)
                    Store (0x00, GMUT)
                    Store (0x00, GSUE)
                    Store (0x00, GSUT)
                    If (And (CHNF, 0x01))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0)
                        If (LGreater (Local0, 0x05))
                        {
                            Store (0x05, Local0)
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT)
                        Or (GMUE, 0x01, GMUE)
                        If (LGreater (Local0, 0x02))
                        {
                            Or (GMUE, 0x02, GMUE)
                        }

                        If (LGreater (Local0, 0x04))
                        {
                            And (GMUE, 0xFD, GMUE)
                            Or (GMUE, 0x04, GMUE)
                        }
                    }
                    Else
                    {
                        If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00)))
                        {
                            If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00)))
                            {
                                Store (DMA0, PIO0)
                                Or (GMUE, 0x80, GMUE)
                            }
                        }
                    }

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

                        Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT)
                        Or (GSUE, 0x01, GSUE)
                        If (LGreater (Local0, 0x02))
                        {
                            Or (GSUE, 0x02, GSUE)
                        }

                        If (LGreater (Local0, 0x04))
                        {
                            And (GSUE, 0xFD, GSUE)
                            Or (GSUE, 0x04, GSUE)
                        }
                    }
                    Else
                    {
                        If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00)))
                        {
                            If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00)))
                            {
                                Store (DMA1, PIO1)
                                Or (GSUE, 0x80, GSUE)
                            }
                        }
                    }

                    If (And (CHNF, 0x02))
                    {
                        Or (GMUE, 0x20, GMUE)
                    }

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

                    And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x07, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
                    Store (Local1, GMPT)
                    If (LLess (Local0, 0x03))
                    {
                        Or (GMUE, 0x50, GMUE)
                    }

                    And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x07, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1)
                    Store (Local1, GSPT)
                    If (LLess (Local0, 0x03))
                    {
                        Or (GSUE, 0x50, GSUE)
                    }
                }

                Name (AT01, Buffer (0x07)
                {
                    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT02, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
                })
                Name (AT03, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
                })
                Name (AT04, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
                })
                Name (ATA0, Buffer (0x1D) {})
                Name (ATA1, Buffer (0x1D) {})
                Name (ATA2, Buffer (0x1D) {})
                Name (ATA3, Buffer (0x1D) {})
                Name (ATAB, Buffer (0x1D) {})
                CreateByteField (ATAB, 0x00, CMDC)
                Method (GTFB, 3, Serialized)
                {
                    Multiply (CMDC, 0x38, Local0)
                    Add (Local0, 0x08, Local1)
                    CreateField (ATAB, Local1, 0x38, CMDX)
                    Multiply (CMDC, 0x07, Local0)
                    CreateByteField (ATAB, Add (Local0, 0x02), A001)
                    CreateByteField (ATAB, Add (Local0, 0x06), A005)
                    Store (Arg0, CMDX)
                    Store (Arg1, A001)
                    Store (Arg2, A005)
                    Increment (CMDC)
                }

                Method (GTF, 2, Serialized)
                {
                    Store (Arg1, Debug)
                    Store (0x00, CMDC)
                    Name (ID49, 0x0C00)
                    Name (ID59, 0x00)
                    Name (ID53, 0x04)
                    Name (ID63, 0x0F00)
                    Name (ID88, 0x0F00)
                    Name (IRDY, 0x01)
                    Name (PIOT, 0x00)
                    Name (DMAT, 0x00)
                    If (LEqual (SizeOf (Arg1), 0x0200))
                    {
                        CreateWordField (Arg1, 0x62, IW49)
                        Store (IW49, ID49)
                        CreateWordField (Arg1, 0x6A, IW53)
                        Store (IW53, ID53)
                        CreateWordField (Arg1, 0x7E, IW63)
                        Store (IW63, ID63)
                        CreateWordField (Arg1, 0x76, IW59)
                        Store (IW59, ID59)
                        CreateWordField (Arg1, 0xB0, IW88)
                        Store (IW88, ID88)
                    }

                    Store (0xA0, Local7)
                    If (Arg0)
                    {
                        Store (0xB0, Local7)
                        And (CHNF, 0x08, IRDY)
                        If (And (CHNF, 0x10))
                        {
                            Store (PIO1, PIOT)
                        }
                        Else
                        {
                            Store (PIO0, PIOT)
                        }

                        If (And (CHNF, 0x04))
                        {
                            If (And (CHNF, 0x10))
                            {
                                Store (DMA1, DMAT)
                            }
                            Else
                            {
                                Store (DMA0, DMAT)
                            }
                        }
                    }
                    Else
                    {
                        And (CHNF, 0x02, IRDY)
                        Store (PIO0, PIOT)
                        If (And (CHNF, 0x01))
                        {
                            Store (DMA0, DMAT)
                        }
                    }

                    If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1)
                        If (LGreater (Local1, 0x05))
                        {
                            Store (0x05, Local1)
                        }

                        GTFB (AT01, Or (0x40, Local1), Local7)
                    }
                    Else
                    {
                        If (LAnd (And (ID63, 0xFF00), PIOT))
                        {
                            And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0)
                            Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1)
                            GTFB (AT01, Local1, Local7)
                        }
                    }

                    If (IRDY)
                    {
                        And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x07, Local0)
                        Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1)
                        GTFB (AT01, Local1, Local7)
                    }
                    Else
                    {
                        If (And (ID49, 0x0400))
                        {
                            GTFB (AT01, 0x01, Local7)
                        }
                    }

                    If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
                    {
                        GTFB (AT03, And (ID59, 0xFF), Local7)
                    }

                    Store (ATAB, Debug)
                    Return (ATAB)
                }

                Method (RATA, 1, NotSerialized)
                {
                    CreateByteField (Arg0, 0x00, CMDN)
                    Multiply (CMDN, 0x38, Local0)
                    CreateField (Arg0, 0x08, Local0, RETB)
                    Store (RETB, Debug)
                    Return (RETB)
                }
            }

            Device (IDE1)
            {
                Name (_ADR, 0x001F0002)
            }

            Device (MC97)
            {
                Name (_ADR, 0x001F0006)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x05, 0x04))
                }
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x03, 0x04))
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0001)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x04, 0x04))
                }
            }

            Device (USB3)
            {
                Name (_ADR, 0x001D0002)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0C, 0x04))
                }
            }

            Device (USB4)
            {
                Name (_ADR, 0x001D0003)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0E, 0x04))
                }
            }

            Device (EUSB)
            {
                Name (_ADR, 0x001D0007)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x04))
                }
            }

            Device (SBRG)
            {
                Name (_ADR, 0x001F0000)
                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x00, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02)
                        IRQNoFlags () {2}
                    })
                }

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

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

                Device (RTC0)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
                        IRQNoFlags () {8}
                    })
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, 0x0B03D041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {1}
                    })
                }

                Method (PS2K._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x1D, 0x04))
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F03"))
                    Name (_CID, 0x130FD041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0C, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Name (CRS1, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Name (CRS2, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
                        IRQNoFlags () {12}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        ShiftLeft (0x01, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS2)
                        }
                    }
                }

                Method (PS2M._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x1D, 0x04))
                }

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

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

                Device (UAR1)
                {
                    Name (_UID, 0x01)
                    Name (_HID, EisaId ("PNP0501"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x00))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x00, 0x00)
                    }

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

                    Method (_SRS, 1, NotSerialized)
                    {
                        PSRS (Arg0, 0x00)
                    }

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

                    Name (CMPR, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08)
                            IRQNoFlags () {4}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        EndDependentFn ()
                    })
                    Name (PBUF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                        IRQNoFlags () {0}
                    })
                    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 (CGLD (Arg0))
                        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)
                        CreateWordField (Arg0, 0x09, PIRQ)
                        ENFG (CGLD (Arg1))
                        Store (POLB, IOAL)
                        Store (POHB, IOAH)
                        FindSetRightBit (PIRQ, Local0)
                        Subtract (Local0, 0x01, INTR)
                        Store (One, ACTR)
                        EXFG ()
                    }
                }

                Device (UAR2)
                {
                    Name (_UID, 0x02)
                    Name (_HID, EisaId ("PNP0501"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x01))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x01, 0x00)
                    }

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

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x01)
                    }

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

                    Name (CMPR, ResourceTemplate ()
                    {
                        IRQNoFlags () {3,4,5,6,7,10,11,12}
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            DMA (Compatibility, NotBusMaster, Transfer8) {}
                            IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                        }
                        EndDependentFn ()
                    })
                }

                Device (FDC)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Name (_FDE, Package (0x05)
                    {
                        0x01, 
                        0x00, 
                        0x02, 
                        0x02, 
                        0x02
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x03))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x03, 0x00)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        DCRS (0x03)
                        Store (IRQM, IRQE)
                        Store (DMAM, DMAE)
                        Store (IO11, IO21)
                        Store (IO12, IO22)
                        Store (0x06, LEN2)
                        Add (IO21, 0x07, IO31)
                        Store (IO31, IO32)
                        Store (0x01, LEN3)
                        Return (CRS2)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x03)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IRQNoFlags () {6}
                            DMA (Compatibility, NotBusMaster, Transfer8) {2}
                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                            IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                        }
                        StartDependentFnNoPri ()
                        {
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3}
                            IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
                            IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
                        }
                        EndDependentFn ()
                    })
                }

                Device (LPTE)
                {
                    Name (_UID, 0x01)
                    Method (_HID, 0, NotSerialized)
                    {
                        If (LPTM (0x02))
                        {
                            Return (0x0104D041)
                        }
                        Else
                        {
                            Return (0x0004D041)
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x02))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x02, 0x00)
                    }

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

                    Method (_SRS, 1, NotSerialized)
                    {
                        ESRS (Arg0, 0x02)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        If (LPTM (0x02))
                        {
                            Return (EPPR)
                        }
                        Else
                        {
                            Return (LPPR)
                        }
                    }

                    Name (LPPR, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                        }
                        EndDependentFn ()
                    })
                    Name (EPPR, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                            IRQNoFlags () {7}
                            DMA (Compatibility, NotBusMaster, Transfer8) {3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                            IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                            IO (Decode16, 0x0678, 0x0678, 0x01, 0x04)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                            IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                            IRQNoFlags () {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3}
                        }
                        EndDependentFn ()
                    })
                    Name (EBUF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IO (Decode16, 0x0778, 0x0778, 0x01, 0x04)
                        IRQNoFlags () {7}
                        DMA (Compatibility, NotBusMaster, Transfer8) {}
                    })
                    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, 0x0E, ELNG)
                    CreateWordField (EBUF, 0x11, EIRQ)
                    CreateByteField (EBUF, 0x14, EDMA)
                    Name (PBUF, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                        IRQNoFlags () {7}
                    })
                    CreateByteField (PBUF, 0x02, PPLO)
                    CreateByteField (PBUF, 0x03, PPHI)
                    CreateWordField (PBUF, 0x02, PPHL)
                    CreateWordField (PBUF, 0x04, PPRL)
                    CreateWordField (PBUF, 0x06, ALM0)
                    CreateWordField (PBUF, 0x09, PIRQ)
                    Method (ECRS, 1, NotSerialized)
                    {
                        ENFG (CGLD (Arg0))
                        Store (IOAH, EPHI)
                        Store (IOAL, EPLO)
                        Store (IOAH, PPHI)
                        Store (IOAL, PPLO)
                        Store (EPHL, EPRL)
                        Store (PPHL, PPRL)
                        And (OPT0, 0x02, Local0)
                        If (Local0)
                        {
                            Add (EPHL, 0x0400, E4LO)
                            Store (E4LO, E4RL)
                        }

                        If (LEqual (EPHL, 0x03BC))
                        {
                            Store (0x0401, ALM1)
                            Store (0x0401, ALM0)
                        }
                        Else
                        {
                            Store (0x0801, ALM1)
                            Store (0x0801, ALM0)
                        }

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

                        And (OPT0, 0x02, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            Return (EBUF)
                        }
                        Else
                        {
                            Return (PBUF)
                        }
                    }

                    Method (ESRS, 2, NotSerialized)
                    {
                        ENFG (CGLD (Arg1))
                        CreateByteField (Arg0, 0x02, LOEP)
                        CreateByteField (Arg0, 0x03, HIEP)
                        And (OPT0, 0x02, Local0)
                        If (Local0)
                        {
                            CreateWordField (Arg0, 0x11, IRQE)
                            CreateByteField (Arg0, 0x14, DMAE)
                        }
                        Else
                        {
                            CreateWordField (Arg0, 0x09, IRQP)
                        }

                        Store (LOEP, IOAL)
                        Store (HIEP, IOAH)
                        And (OPT0, 0x02, Local0)
                        If (Local0)
                        {
                            If (IRQE)
                            {
                                FindSetRightBit (IRQE, Local0)
                                Subtract (Local0, 0x01, INTR)
                            }
                            Else
                            {
                                Store (0x00, INTR)
                            }
                        }
                        Else
                        {
                            If (IRQP)
                            {
                                FindSetRightBit (IRQP, Local0)
                                Subtract (Local0, 0x01, INTR)
                            }
                            Else
                            {
                                Store (0x00, INTR)
                            }
                        }

                        And (OPT0, 0x02, Local0)
                        If (Local0)
                        {
                            If (DMAE)
                            {
                                FindSetRightBit (DMAE, Local0)
                                Subtract (Local0, 0x01, DMCH)
                            }
                            Else
                            {
                                Store (0x04, DMCH)
                            }
                        }

                        Store (One, ACTR)
                        EXFG ()
                    }
                }

                Device (GAME)
                {
                    Name (_HID, EisaId ("PNPB02F"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x08))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x08, 0x00)
                    }

                    Name (GMCR, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0200, 0x0200, 0x01, 0x08)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateByteField (GMCR, 0x02, IOLO)
                        CreateByteField (GMCR, 0x03, IOHI)
                        CreateWordField (GMCR, 0x02, IOHL)
                        CreateWordField (GMCR, 0x04, IORL)
                        ENFG (CGLD (0x08))
                        Store (IOAH, IOHI)
                        Store (IOAL, IOLO)
                        Store (IOHL, IORL)
                        EXFG ()
                        Return (GMCR)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, POLB)
                        CreateByteField (Arg0, 0x03, POHB)
                        ENFG (CGLD (0x08))
                        Store (POLB, IOAL)
                        Store (POHB, IOAH)
                        DCNT (0x08, 0x01)
                        EXFG ()
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16, 0x0200, 0x0200, 0x01, 0x08)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0208, 0x0208, 0x01, 0x08)
                        }
                        EndDependentFn ()
                    })
                }

                Device (MIDI)
                {
                    Name (_HID, EisaId ("PNPB006"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x05))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x05, 0x00)
                    }

                    Name (MDCR, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0300, 0x0300, 0x01, 0x02)
                        IRQNoFlags () {5}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateByteField (MDCR, 0x02, IOLO)
                        CreateByteField (MDCR, 0x03, IOHI)
                        CreateWordField (MDCR, 0x02, IOHL)
                        CreateWordField (MDCR, 0x04, IORL)
                        CreateWordField (MDCR, 0x09, MIRQ)
                        ENFG (CGLD (0x05))
                        Store (IOH2, IOHI)
                        Store (IOL2, IOLO)
                        Store (IOHL, IORL)
                        ShiftLeft (0x01, INTR, MIRQ)
                        EXFG ()
                        Return (MDCR)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, POLB)
                        CreateByteField (Arg0, 0x03, POHB)
                        CreateWordField (Arg0, 0x09, MIRQ)
                        ENFG (CGLD (0x05))
                        Store (POLB, IOL2)
                        Store (POHB, IOH2)
                        FindSetRightBit (MIRQ, Local0)
                        Subtract (Local0, 0x01, INTR)
                        DCNT (0x05, 0x01)
                        EXFG ()
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0300, 0x0300, 0x01, 0x02)
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16, 0x0330, 0x0330, 0x01, 0x02)
                        }
                        EndDependentFn ()
                        IRQNoFlags () {5,9,10,11}
                    })
                }

                Device (SIOR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Method (_UID, 0, NotSerialized)
                    {
                        Return (SPIO)
                    }

                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0290, 0x0290, 0x00, 0x08)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0)))
                        {
                            CreateWordField (CRS, 0x02, GP10)
                            CreateWordField (CRS, 0x04, GP11)
                            CreateByteField (CRS, 0x07, GPL1)
                            Store (SPIO, GP10)
                            Store (SPIO, GP11)
                            Store (0x02, GPL1)
                        }

                        If (IO1B)
                        {
                            CreateWordField (CRS, 0x0A, GP20)
                            CreateWordField (CRS, 0x0C, GP21)
                            CreateByteField (CRS, 0x0F, GPL2)
                            Store (IO1B, GP20)
                            Store (IO1B, GP21)
                            Store (IO1L, GPL2)
                        }

                        Return (CRS)
                    }
                }

                Name (DCAT, Package (0x15)
                {
                    0x02, 
                    0x03, 
                    0x01, 
                    0x00, 
                    0xFF, 
                    0x07, 
                    0xFF, 
                    0xFF, 
                    0x07, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0xFF, 
                    0x06, 
                    0x08, 
                    0x09, 
                    0xFF, 
                    0xFF
                })
                Method (ENFG, 1, NotSerialized)
                {
                    Store (0x87, INDX)
                    Store (0x87, INDX)
                    Store (Arg0, LDN)
                }

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

                Method (LPTM, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    And (OPT0, 0x02, Local0)
                    EXFG ()
                    Return (Local0)
                }

                Method (UHID, 1, NotSerialized)
                {
                    If (LEqual (Arg0, 0x01))
                    {
                        ENFG (CGLD (Arg0))
                        And (OPT1, 0x38, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            Return (0x1005D041)
                        }
                    }

                    Return (0x0105D041)
                }

                Method (SIOK, 1, NotSerialized)
                {
                    ENFG (0x0A)
                    And (0xFF, OPT3, OPT3)
                    And (Arg0, 0x30, Local0)
                    And (OPT6, 0xCF, OPT6)
                    Or (OPT6, Local0, OPT6)
                    Store (Arg0, Local1)
                    And (Arg0, 0x05, Local0)
                    And (OPT9, 0xFA, OPT9)
                    Or (OPT9, Local0, OPT9)
                    If (LEqual (Arg0, Zero))
                    {
                        Store (0x00, ACTR)
                        Store (0x08, LDN)
                        And (OPT5, 0x3F, OPT5)
                    }
                    Else
                    {
                        Store (0x01, ACTR)
                    }

                    EXFG ()
                }

                Method (PS2K._PSW, 1, NotSerialized)
                {
                    ENFG (0x0A)
                    And (OPT6, 0xEF, OPT6)
                    If (Arg0)
                    {
                        Or (OPT6, 0x10, OPT6)
                    }

                    EXFG ()
                }

                Method (PS2M._PSW, 1, NotSerialized)
                {
                    ENFG (0x0A)
                    And (OPT6, 0xDF, OPT6)
                    If (Arg0)
                    {
                        Or (OPT6, 0x20, OPT6)
                    }

                    EXFG ()
                }

                Method (SIOS, 1, NotSerialized)
                {
                    Store ("SIOS", Debug)
                    SIOK (Ones)
                }

                Method (SIOW, 1, NotSerialized)
                {
                    Store ("SIOW", Debug)
                    SIOK (Zero)
                }

                Method (SIOH, 0, NotSerialized)
                {
                    Store ("SIOH", Debug)
                    ENFG (0x0A)
                    If (And (OPT3, 0x10))
                    {
                        Notify (PS2K, 0x02)
                    }

                    If (And (OPT3, 0x20))
                    {
                        Notify (PS2M, 0x02)
                    }

                    SIOK (Zero)
                }

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

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x07), 
                    LDN,    8, 
                    Offset (0x22), 
                    FDCP,   1, 
                        ,   2, 
                    LPTP,   1, 
                    URAP,   1, 
                    URBP,   1, 
                    Offset (0x30), 
                    ACTR,   8, 
                    Offset (0x60), 
                    IOAH,   8, 
                    IOAL,   8, 
                    IOH2,   8, 
                    IOL2,   8, 
                    Offset (0x70), 
                    INTR,   8, 
                    Offset (0x74), 
                    DMCH,   8, 
                    Offset (0xE0), 
                    CRE0,   8, 
                    CRE1,   8, 
                    CRE2,   8, 
                    CRE3,   8, 
                    CRE4,   8, 
                    Offset (0xF0), 
                    OPT0,   8, 
                    OPT1,   8, 
                    OPT2,   8, 
                    OPT3,   8, 
                    Offset (0xF5), 
                    OPT5,   8, 
                    OPT6,   8, 
                    Offset (0xF9), 
                    OPT9,   8
                }

                Method (CGLD, 1, NotSerialized)
                {
                    Return (DerefOf (Index (DCAT, Arg0)))
                }

                Method (DSTA, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    Store (ACTR, Local0)
                    EXFG ()
                    If (LEqual (Local0, 0xFF))
                    {
                        Return (0x00)
                    }

                    If (LEqual (Arg0, 0x05))
                    {
                        ShiftRight (Local0, 0x02, Local0)
                    }

                    If (LEqual (Arg0, 0x08))
                    {
                        ShiftRight (Local0, 0x01, Local0)
                    }

                    And (Local0, 0x01, Local0)
                    Or (IOST, ShiftLeft (Local0, Arg0), IOST)
                    If (Local0)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        If (And (ShiftLeft (0x01, Arg0), IOST))
                        {
                            Return (0x0D)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

                Method (DCNT, 2, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, Local1)
                    Or (IOAL, Local1, Local1)
                    RRIO (Arg0, Arg1, Local1, 0x08)
                    If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00))))
                    {
                        RDMA (Arg0, Arg1, Increment (Local1))
                    }

                    Store (Arg1, Local1)
                    Store (0x01, Local2)
                    If (LEqual (Arg0, 0x05))
                    {
                        ShiftLeft (Arg1, 0x02, Local1)
                        ShiftLeft (Local2, 0x02, Local2)
                    }

                    If (LEqual (Arg0, 0x08))
                    {
                        ShiftLeft (Arg1, 0x01, Local1)
                        ShiftLeft (Local2, 0x01, Local2)
                    }

                    Store (ACTR, Local0)
                    Not (Local2, Local3)
                    And (Local0, Local3, Local0)
                    Or (Local0, Local1, Local0)
                    Store (Local0, ACTR)
                    EXFG ()
                }

                Name (CRS1, ResourceTemplate ()
                {
                    IRQNoFlags () {}
                    DMA (Compatibility, NotBusMaster, Transfer8) {}
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                })
                CreateWordField (CRS1, 0x01, IRQM)
                CreateByteField (CRS1, 0x04, DMAM)
                CreateWordField (CRS1, 0x08, IO11)
                CreateWordField (CRS1, 0x0A, IO12)
                CreateByteField (CRS1, 0x0D, LEN1)
                Name (CRS2, ResourceTemplate ()
                {
                    IRQNoFlags () {6}
                    DMA (Compatibility, NotBusMaster, Transfer8) {2}
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                    IO (Decode16, 0x0000, 0x0000, 0x01, 0x00)
                })
                CreateWordField (CRS2, 0x01, IRQE)
                CreateByteField (CRS2, 0x04, DMAE)
                CreateWordField (CRS2, 0x08, IO21)
                CreateWordField (CRS2, 0x0A, IO22)
                CreateByteField (CRS2, 0x0D, LEN2)
                CreateWordField (CRS2, 0x10, IO31)
                CreateWordField (CRS2, 0x12, IO32)
                CreateByteField (CRS2, 0x15, LEN3)
                Method (DCRS, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, IO11)
                    Or (IOAL, IO11, IO11)
                    Store (IO11, IO12)
                    Subtract (FindSetRightBit (IO11), 0x01, Local0)
                    ShiftLeft (0x01, Local0, LEN1)
                    If (INTR)
                    {
                        ShiftLeft (0x01, INTR, IRQM)
                    }
                    Else
                    {
                        Store (0x00, IRQM)
                    }

                    If (Or (LGreater (DMCH, 0x03), LEqual (And (DMCH, 0x03, Local1), 0x00)))
                    {
                        Store (0x00, DMAM)
                    }
                    Else
                    {
                        ShiftLeft (0x01, Local1, DMAM)
                    }

                    EXFG ()
                    Return (CRS1)
                }

                Method (DSRS, 2, NotSerialized)
                {
                    CreateWordField (Arg0, 0x01, IRQM)
                    CreateByteField (Arg0, 0x04, DMAM)
                    CreateWordField (Arg0, 0x08, IO11)
                    ENFG (CGLD (Arg1))
                    And (IO11, 0xFF, IOAL)
                    ShiftRight (IO11, 0x08, IOAH)
                    If (IRQM)
                    {
                        FindSetRightBit (IRQM, Local0)
                        Subtract (Local0, 0x01, INTR)
                    }
                    Else
                    {
                        Store (0x00, INTR)
                    }

                    If (DMAM)
                    {
                        FindSetRightBit (DMAM, Local0)
                        Subtract (Local0, 0x01, DMCH)
                    }
                    Else
                    {
                        Store (0x04, DMCH)
                    }

                    EXFG ()
                    DCNT (Arg1, 0x01)
                }

                Device (RMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x10)
                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
                        IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
                        IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
                        IO (Decode16, 0x0062, 0x0062, 0x00, 0x02)
                        IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B)
                        IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
                        IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
                        IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
                        IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
                        IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
                        IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
                        IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
                        IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
                        IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
                        Memory32Fixed (ReadWrite, 0xFED20000, 0x00070000)
                        Memory32Fixed (ReadWrite, 0xFFB00000, 0x00100000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (CRS, 0x72, GP00)
                        CreateWordField (CRS, 0x74, GP01)
                        CreateByteField (CRS, 0x77, GP0L)
                        Store (PMBS, GP00)
                        Store (PMBS, GP01)
                        Store (PMLN, GP0L)
                        If (SMBS)
                        {
                            CreateWordField (CRS, 0x7A, GP10)
                            CreateWordField (CRS, 0x7C, GP11)
                            CreateByteField (CRS, 0x7F, GP1L)
                            Store (SMBS, GP10)
                            Store (SMBS, GP11)
                            Store (SMBL, GP1L)
                        }

                        If (GPBS)
                        {
                            CreateWordField (CRS, 0x82, GP20)
                            CreateWordField (CRS, 0x84, GP21)
                            CreateByteField (CRS, 0x87, GP2L)
                            Store (GPBS, GP20)
                            Store (GPBS, GP21)
                            Store (GPLN, GP2L)
                        }

                        Return (CRS)
                    }
                }

                Device (P3F6)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x03F6)
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (0x0F, Local1)
                        Store (\_SB.PCI0.IDE0.PAMD, Local0)
                        If (LEqual (Local0, 0x8A))
                        {
                            Store (0x00, Local1)
                        }

                        Store (\_SB.PCI0.IDE1.SAMD, Local0)
                        If (LEqual (Local0, 0x8A))
                        {
                            Store (0x00, Local1)
                        }

                        Return (Local1)
                    }

                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x03F6, 0x03F6, 0x00, 0x01)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS)
                    }
                }

                Device (OMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x00)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (APCB)
                        {
                            CreateDWordField (CRS, 0x08, ML01)
                            CreateDWordField (CRS, 0x04, MB01)
                            CreateDWordField (CRS, 0x14, ML02)
                            CreateDWordField (CRS, 0x10, MB02)
                            Store (APCB, MB01)
                            Store (APCL, ML01)
                            Store (0xFEE00000, MB02)
                            Store (0x1000, ML02)
                        }

                        Return (CRS)
                    }
                }

                Device (\_SB.RMEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, 0x01)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
                        Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, 0x10, BAS1)
                        CreateDWordField (CRS, 0x14, LEN1)
                        CreateDWordField (CRS, 0x1C, BAS2)
                        CreateDWordField (CRS, 0x20, LEN2)
                        CreateDWordField (CRS, 0x2C, LEN3)
                        CreateDWordField (CRS, 0x34, BAS4)
                        CreateDWordField (CRS, 0x38, LEN4)
                        If (OSFL ()) {}
                        Else
                        {
                            If (MG1B)
                            {
                                If (LGreater (MG1B, 0x000C0000))
                                {
                                    Store (0x000C0000, BAS1)
                                    Subtract (MG1B, BAS1, LEN1)
                                }
                            }
                            Else
                            {
                                Store (0x000C0000, BAS1)
                                Store (0x00020000, LEN1)
                            }

                            If (Add (MG1B, MG1L, Local0))
                            {
                                Store (Local0, BAS2)
                                Subtract (0x00100000, BAS2, LEN2)
                            }
                        }

                        Subtract (MG2B, 0x00100000, LEN3)
                        Add (MG2B, MG2L, BAS4)
                        Subtract (0x00, BAS4, LEN4)
                        Return (CRS)
                    }
                }
            }

            Device (P0P1)
            {
                Name (_ADR, 0x00010000)
            }

            Device (P0P2)
            {
                Name (_ADR, 0x00030000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR02)
                    }

                    Return (PR02)
                }

                Device (ILAN)
                {
                    Name (_ADR, 0x00010000)
                    Method (_PRW, 0, NotSerialized)
                    {
                        Return (GPRW (0x18, 0x04))
                    }
                }
            }
        }

        Scope (\_GPE)
        {
            Method (_L0B, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.P0P4, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L05, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.MC97, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L03, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB1, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L04, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB2, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0C, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB3, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0E, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB4, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0D, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.EUSB, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L1D, 0, NotSerialized)
            {
                \_SB.PCI0.SBRG.SIOH ()
            }

            Method (_L18, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.P0P2.ILAN, 0x02)
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_UID, 0xAA)
            Name (_STA, 0x0B)
        }
    }

    OperationRegion (\_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C)
    Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve)
    {
        PIRA,   8, 
        PIRB,   8, 
        PIRC,   8, 
        PIRD,   8, 
        Offset (0x08), 
        PIRE,   8, 
        PIRF,   8, 
        PIRG,   8, 
        PIRH,   8
    }

    Scope (\_SB)
    {
        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 (PRSA)
            }

            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 (PRSB)
            }

            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 (PRSC)
            }

            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 (PRSD)
            }

            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 (PRSE)
            }

            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 (PRSF)
            }

            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 (PRSG)
            }

            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 (PRSH)
            }

            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)
            }
        }
    }

    Scope (\_SB)
    {
        Scope (PCI0)
        {
            OperationRegion (IOB2, SystemIO, 0xB2, 0x02)
            Field (IOB2, ByteAcc, NoLock, Preserve)
            {
                SMIC,   8, 
                SMIS,   8
            }

            Method (_INI, 0, NotSerialized)
            {
                If (CondRefOf (_OSI, Local0))
                {
                    Store (0x58, SMIC)
                }
                Else
                {
                    Store (0x85, SMIC)
                }
            }
        }
    }

    Scope (\_SB)
    {
        Scope (PCI0)
        {
            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,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000)
            })
            CreateDWordField (CRS, 0x5C, MIN5)
            CreateDWordField (CRS, 0x60, MAX5)
            CreateDWordField (CRS, 0x68, LEN5)
            CreateDWordField (CRS, 0x76, MIN6)
            CreateDWordField (CRS, 0x7A, MAX6)
            CreateDWordField (CRS, 0x82, LEN6)
            Method (_CRS, 0, NotSerialized)
            {
                Store (MG1B, MIN5)
                Store (MG1L, LEN5)
                Store (MG1L, Local0)
                If (Local0)
                {
                    Add (MIN5, Decrement (Local0), MAX5)
                }

                Store (MG2B, MIN6)
                Add (MIN6, 0x00010000, MIN6)
                Store (MG2L, LEN6)
                Subtract (LEN6, 0x00010000, LEN6)
                Store (LEN6, Local0)
                Add (MIN6, Decrement (Local0), MAX6)
                Return (CRS)
            }

            Method (_S3D, 0, NotSerialized)
            {
                If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Method (USB1._S3D, 0, NotSerialized)
            {
                If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Method (USB2._S3D, 0, NotSerialized)
            {
                If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Method (USB3._S3D, 0, NotSerialized)
            {
                If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Method (USB4._S3D, 0, NotSerialized)
            {
                If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Name (NATA, Package (0x01)
            {
                0x001F0001
            })
        }

        Name (SLPS, 0x00)
    }

    Name (WR00, 0x00)
    Name (WR01, 0x00)
    Name (WR02, 0x00)
    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        PTS (Arg0)
        Store (0x00, Index (WAKP, 0x00))
        Store (0x00, Index (WAKP, 0x01))
        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
        {
            Sleep (0x0BB8)
        }

        Store (APWR, WR00)
        Store (SPLV, WR01)
        Store (OSFG, WR02)
        Store (Arg0, SPLV)
        Store (OSFL (), OSFG)
        Store (One, PS1S)
        Store (One, PS1E)
        Store (One, \_SB.SLPS)
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        Store (Zero, PS1E)
        If (IOWK) {}
        Else
        {
            Notify (\_SB.PWRB, 0x02)
        }

        If (And (APWR, 0x02))
        {
            Notify (\_SB.PWRB, 0x02)
        }

        Store (One, PWBT)
        Store (WR00, APWR)
        Store (WR01, SPLV)
        Store (WR02, OSFG)
        Store (Zero, \_SB.SLPS)
        WAK (Arg0)
        If (DerefOf (Index (WAKP, 0x00)))
        {
            Store (0x00, Index (WAKP, 0x01))
        }
        Else
        {
            Store (Arg0, Index (WAKP, 0x01))
        }

        Return (WAKP)
    }

    OperationRegion (PMS0, SystemIO, PMBS, 0x04)
    Field (PMS0, ByteAcc, NoLock, Preserve)
    {
            ,   10, 
        RTCS,   1, 
            ,   4, 
        WAKS,   1, 
        Offset (0x03), 
        PWBT,   1, 
            ,   1, 
        RTCE,   1, 
        Offset (0x04)
    }

    OperationRegion (SMIE, SystemIO, PM30, 0x08)
    Field (SMIE, ByteAcc, NoLock, Preserve)
    {
            ,   4, 
        PS1E,   1, 
            ,   31, 
        PS1S,   1, 
        Offset (0x08)
    }

    OperationRegion (\_SB.PCI0.SKPD, PCI_Config, ACPH, 0x02)
    Field (\_SB.PCI0.SKPD, ByteAcc, NoLock, Preserve)
    {
        APWR,   8, 
        SPLV,   3, 
        OSFG,   2, 
        Offset (0x02)
    }

    OperationRegion (CMOS, SystemIO, 0x70, 0x02)
    Field (CMOS, ByteAcc, NoLock, Preserve)
    {
        CIDX,   8, 
        CDAT,   8
    }

    IndexField (CIDX, CDAT, ByteAcc, NoLock, Preserve)
    {
        Offset (0x6E), 
        WKTP,   8
    }

    OperationRegion (IORK, SystemIO, 0xB3, 0x01)
    Field (IORK, ByteAcc, NoLock, Preserve)
    {
        IOWK,   8
    }

    Scope (\_SB.PCI0.IDE0)
    {
        OperationRegion (PAR9, PCI_Config, 0x09, 0x01)
        Field (PAR9, ByteAcc, NoLock, Preserve)
        {
            PAMD,   8
        }
    }

    Scope (\_SB.PCI0.IDE1)
    {
        OperationRegion (SAR9, PCI_Config, 0x09, 0x01)
        Field (SAR9, ByteAcc, NoLock, Preserve)
        {
            SAMD,   8
        }
    }

    Name (\_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    If (SS1)
    {
        Name (\_S1, Package (0x04)
        {
            0x01, 
            0x00, 
            0x00, 
            0x00
        })
    }

    If (SS3)
    {
        Name (\_S3, Package (0x04)
        {
            0x05, 
            0x00, 
            0x00, 
            0x00
        })
    }

    If (SS4)
    {
        Name (\_S4, Package (0x04)
        {
            0x06, 
            0x00, 
            0x00, 
            0x00
        })
    }

    Name (\_S5, Package (0x04)
    {
        0x07, 
        0x00, 
        0x00, 
        0x00
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0)
        {
            \_SB.PCI0.SBRG.SIOS (Arg0)
        }
    }

    Method (WAK, 1, NotSerialized)
    {
        \_SB.PCI0.SBRG.SIOW (Arg0)
    }
}


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