Supermicro X7DBR-8+ hang at boot

Guy Helmer ghelmer at palisadesys.com
Tue Jan 23 17:23:16 UTC 2007


Using FreeBSD 6.2, I'm having trouble with the Supermicro X7DBR-8+ 
motherboard (dual Xeon 5130 CPUs on the Blackford chipset - 
http://www.supermicro.com/products/motherboard/Xeon1333/5000P/X7DBR-8+.cfm) 
hanging after printing the "Waiting 5 seconds for SCSI devices to 
settle" message.  The hang doesn't always happen - sometimes we have to 
go through several reboot cycles for it to happen - but sometimes it 
happens with every reboot.  For those who would suggest that this 
happens because I'm using Seagate drives, it happens even if we totally 
remove the SCSI drive (but leave the aic7902 SCSI interfaces enabled) 
and boot from a SATA disk.  Using FreeBSD 6.1, the Intel gigabit 
ethernet NICs aren't found but the hang doesn't occur.

I've built a kernel with kdb/ddb in it, and cause an NMI to drop into 
the debugger when it seems hung.  If I don't boot with the -v flag, then 
I'm able to use "n" a few times and seem to wind up in em0's interrupt 
handler, then issuing "c" results in "Interrupt storm detected on 
"irq18:"; throttling interrupt source" followed by a message from ahd0 
beginning with "Recovery Initiated - Card was not paused" and by a dump 
of the card state, and then the kernel finishes booting!

If I boot with the -v flag, then after the NMI the machine hangs again 
no matter where I issue the "c" command.  If I keep issuing the "n" 
command instead of "c", it hangs here:

...
After 9 instructions (0 loads, 0 stores),
[thread pid 25 tid 100819 ]
Stopped at      intr_execute_handlers+0x...:     ret
db> n
After 2 instructions (0 loads, 0 stores),
[thread pid 25 tid 100819 ]
Stopped at      lapic_handle_intr+0x22: ret
db> n

"ps" shows pid 25 is running on cpu 0 and handling irq30: ahd0.
Full dmesg and acpidump follow.  If anyone has any ideas or would like 
more details, please let me know!

Guy Helmer

Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RC2 #1: Mon Jan 22 18:51:58 UTC 2007
    support at palisadesys.com:/usr/src/sys/amd64/compile/PALISADE-SMP-DEBUG
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(R) CPU            5130  @ 2.00GHz (2000.08-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x6f6  Stepping = 6
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x4e33d<SSE3,RSVD2,MON,DS_CPL,VMX,TM2,<b9>,CX16,<b14>,<b15>,<b18>>
  AMD Features=0x20000800<SYSCALL,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 2
real memory  = 5368709120 (5120 MB)
avail memory = 4116361216 (3925 MB)
ACPI APIC Table: <PTLTD  	 APIC  >
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  6
 cpu3 (AP): APIC ID:  7
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 24-47 on motherboard
kbd1 at kbdmux0
acpi0: <PTLTD   RSDT> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
cpu1: <ACPI CPU> on acpi0
acpi_throttle1: <ACPI CPU Throttling> on cpu1
acpi_throttle1: failed to attach P_CNT
device_attach: acpi_throttle1 attach returned 6
cpu2: <ACPI CPU> on acpi0
acpi_throttle2: <ACPI CPU Throttling> on cpu2
acpi_throttle2: failed to attach P_CNT
device_attach: acpi_throttle2 attach returned 6
cpu3: <ACPI CPU> on acpi0
acpi_throttle3: <ACPI CPU Throttling> on cpu3
acpi_throttle3: failed to attach P_CNT
device_attach: acpi_throttle3 attach returned 6
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 0.0 on pci1
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 16 at device 0.0 on pci2
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> irq 18 at device 2.0 on pci2
pci4: <ACPI PCI bus> on pcib4
em0: <Intel(R) PRO/1000 Network Connection Version - 6.2.9> port 0x2000-0x201f mem 0xc8200000-0xc821ffff irq 18 at device 0.0 on pci4
em0: Ethernet address: 00:30:48:31:1f:76
em1: <Intel(R) PRO/1000 Network Connection Version - 6.2.9> port 0x2020-0x203f mem 0xc8220000-0xc823ffff irq 19 at device 0.1 on pci4
em1: Ethernet address: 00:30:48:31:1f:77
pcib5: <ACPI PCI-PCI bridge> at device 0.3 on pci1
pci5: <ACPI PCI bus> on pcib5
ahd0: <Adaptec AIC7902 Ultra320 SCSI adapter> port 0x3400-0x34ff,0x3000-0x30ff mem 0xc8300000-0xc8301fff irq 30 at device 2.0 on pci5
ahd0: [GIANT-LOCKED]
aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 67-100Mhz, 512 SCBs
ahd1: <Adaptec AIC7902 Ultra320 SCSI adapter> port 0x3c00-0x3cff,0x3800-0x38ff mem 0xc8302000-0xc8303fff irq 31 at device 2.1 on pci5
ahd1: [GIANT-LOCKED]
aic7902: Ultra320 Wide Channel B, SCSI Id=7, PCI-X 67-100Mhz, 512 SCBs
pcib6: <ACPI PCI-PCI bridge> at device 4.0 on pci0
pci6: <ACPI PCI bus> on pcib6
pcib7: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci7: <ACPI PCI bus> on pcib7
pci0: <base peripheral> at device 8.0 (no driver attached)
pcib8: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
pci8: <ACPI PCI bus> on pcib8
pcib9: <ACPI PCI-PCI bridge> at device 0.0 on pci8
pci9: <ACPI PCI bus> on pcib9
uhci0: <UHCI (generic) USB controller> port 0x1800-0x181f irq 17 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <UHCI (generic) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <UHCI (generic) USB controller> port 0x1820-0x183f irq 19 at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <UHCI (generic) USB controller> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <UHCI (generic) USB controller> port 0x1840-0x185f irq 18 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <UHCI (generic) USB controller> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3: <UHCI (generic) USB controller> port 0x1860-0x187f irq 16 at device 29.3 on pci0
uhci3: [GIANT-LOCKED]
usb3: <UHCI (generic) USB controller> on uhci3
usb3: USB revision 1.0
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xc8000000-0xc80003ff irq 17 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
usb4: EHCI version 1.0
usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
usb4: <EHCI (generic) USB 2.0 controller> on ehci0
usb4: USB revision 2.0
uhub4: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
pcib10: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci10: <ACPI PCI bus> on pcib10
pci10: <display, VGA> at device 1.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel 63XXESB2 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1880-0x188f at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_button0: <Power Button> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FAST]
orm0: <ISA Option ROMs> at iomem 0xc0000-0xcafff,0xcb000-0xcbfff,0xcc000-0xccfff on isa0
ppc0: cannot reserve I/O port range
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounters tick every 1.000 msec
ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding disabled, default to deny, logging limited to 100 packets/entry by default
acd0: DMA limited to UDMA33, controller found non-ATA66 cable
acd0: DVDROM <MATSHITADVD-ROM SR-8178/PZ16> at ata0-slave UDMA33
Waiting 5 seconds for SCSI devices to settle
NMI ... going to debugger
NMI ... going to debugger
Interrupt storm detected on "irq18:"; throttling interrupt source
ahd0: Recovery Initiated - Card was not paused
>>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<<
ahd0: Dumping Card State at program address 0x5 Mode 0x33
INTSTAT[0x0] SELOID[0xa] SELID[0x0] HS_MAILBOX[0x0] 
INTCTL[0x80]:(SWTMINTMASK) SEQINTSTAT[0x0] SAVED_MODE[0x11] 
DFFSTAT[0x33]:(CURRFIFO_NONE|FIFO0FREE|FIFO1FREE) 
SCSISIGI[0x18]:(P_DATAOUT|SELI|ATNI) SCSIPHASE[0x0] 
SCSIBUS[0x80] LASTPHASE[0x1]:(P_DATAOUT|P_BUSFREE) 
SCSISEQ0[0x40]:(ENSELO) SCSISEQ1[0x12]:(ENAUTOATNP|ENRSELI) 
SEQCTL0[0x0] SEQINTCTL[0x0] SEQ_FLAGS[0xc0]:(NO_CDB_SENT|NOT_IDENTIFIED) 
SEQ_FLAGS2[0x0] QFREEZE_COUNT[0x0] KERNEL_QFREEZE_COUNT[0x0] 
MK_MESSAGE_SCB[0xff00] MK_MESSAGE_SCSIID[0xff] SSTAT0[0x10]:(SELINGO) 
SSTAT1[0x0] SSTAT2[0x0] SSTAT3[0x0] PERRDIAG[0x0] 
SIMODE1[0xa4]:(ENSCSIPERR|ENSCSIRST|ENSELTIMO) LQISTAT0[0x0] 
LQISTAT1[0x0] LQISTAT2[0x0] LQOSTAT0[0x0] LQOSTAT1[0x0] 
LQOSTAT2[0x0] 

SCB Count = 16 CMDS_PENDING = 8 LASTSCB 0xffff CURRSCB 0x6 NEXTSCB 0x0
qinstart = 17 qinfifonext = 17
QINFIFO:
WAITING_TID_QUEUES:
       10 ( 0x6 )
       11 ( 0x5 )
       12 ( 0x4 )
       13 ( 0x3 )
       14 ( 0x2 )
       15 ( 0x1 )
       0 ( 0xf )
       6 ( 0x8 )
Pending list:
  8 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0x67] 
 15 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0x7] 
  1 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xf7]:(TID) 
  2 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xe7] 
  3 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xd7] 
  4 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xc7] 
  5 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xb7] 
  6 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xa7] 
Total 8
Kernel Free SCB list: 7 9 10 11 12 13 14 0 
Sequencer Complete DMA-inprog list: 
Sequencer Complete list: 
Sequencer DMA-Up and Complete list: 
Sequencer On QFreeze and Complete list: 


ahd0: FIFO0 Free, LONGJMP == 0x80ff, SCB 0x0
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 

ahd0: FIFO1 Free, LONGJMP == 0x8063, SCB 0x9
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 
LQIN: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
ahd0: LQISTATE = 0x0, LQOSTATE = 0x0, OPTIONMODE = 0x42
ahd0: OS_SPACE_CNT = 0x20 MAXCMDCNT = 0x0
ahd0: SAVED_SCSIID = 0x0 SAVED_LUN = 0x0

SIMODE0[0xc]:(ENOVERRUN|ENIOERR) 
CCSCBCTL[0x4]:(CCSCBDIR) 
ahd0: REG0 == 0xf, SINDEX = 0x10e, DINDEX = 0x10e
ahd0: SCBPTR == 0x6, SCB_NEXT == 0xff80, SCB_NEXT2 == 0x5
CDB 12 0 0 0 24 0
STACK: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
<<<<<<<<<<<<<<<<< Dump Card State Ends >>>>>>>>>>>>>>>>>>
(probe0:ahd0:0:0:0): SCB 15 - timed out
(probe0:ahd0:0:0:0): Other SCB Timeout
(probe14:ahd0:0:15:0): SCB 1 - timed out
(probe14:ahd0:0:15:0): Other SCB Timeout
(probe13:ahd0:0:14:0): SCB 2 - timed out
(probe13:ahd0:0:14:0): Other SCB Timeout
(probe12:ahd0:0:13:0): SCB 3 - timed out
(probe12:ahd0:0:13:0): Other SCB Timeout
(probe11:ahd0:0:12:0): SCB 4 - timed out
(probe11:ahd0:0:12:0): Other SCB Timeout
(probe10:ahd0:0:11:0): SCB 5 - timed out
(probe10:ahd0:0:11:0): Other SCB Timeout
(probe9:ahd0:0:10:0): SCB 6 - timed out
(probe9:ahd0:0:10:0): Other SCB Timeout
ahd1: Recovery Initiated - Card was not paused
>>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<<
ahd1: Dumping Card State at program address 0x4 Mode 0x22
INTSTAT[0x0] SELOID[0x6] SELID[0x0] HS_MAILBOX[0x0] 
INTCTL[0x0] SEQINTSTAT[0x0] SAVED_MODE[0x0] DFFSTAT[0x33]:(CURRFIFO_NONE|FIFO0FREE|FIFO1FREE) 
SCSISIGI[0x18]:(P_DATAOUT|SELI|ATNI) SCSIPHASE[0x0] 
SCSIBUS[0xc0] LASTPHASE[0x1]:(P_DATAOUT|P_BUSFREE) 
SCSISEQ0[0x40]:(ENSELO) SCSISEQ1[0x12]:(ENAUTOATNP|ENRSELI) 
SEQCTL0[0x0] SEQINTCTL[0x0] SEQ_FLAGS[0x0] SEQ_FLAGS2[0x0] 
QFREEZE_COUNT[0x0] KERNEL_QFREEZE_COUNT[0x0] MK_MESSAGE_SCB[0xff00] 
MK_MESSAGE_SCSIID[0xff] SSTAT0[0x10]:(SELINGO) SSTAT1[0x0] 
SSTAT2[0x0] SSTAT3[0x0] PERRDIAG[0x0] SIMODE1[0xa4]:(ENSCSIPERR|ENSCSIRST|ENSELTIMO) 
LQISTAT0[0x0] LQISTAT1[0x0] LQISTAT2[0x0] LQOSTAT0[0x0] 
LQOSTAT1[0x0] LQOSTAT2[0x0] 

SCB Count = 16 CMDS_PENDING = 9 LASTSCB 0xffff CURRSCB 0x9 NEXTSCB 0x0
qinstart = 15 qinfifonext = 15
QINFIFO:
WAITING_TID_QUEUES:
       6 ( 0x9 )
       8 ( 0x8 )
       9 ( 0x7 )
       10 ( 0x6 )
       11 ( 0x5 )
       12 ( 0x4 )
       13 ( 0x3 )
       14 ( 0x2 )
       15 ( 0x1 )
Pending list:
  1 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xf7]:(TID) 
  2 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xe7] 
  3 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xd7] 
  4 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xc7] 
  5 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xb7] 
  6 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0xa7] 
  7 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0x97] 
  8 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0x87] 
  9 FIFO_USE[0x0] SCB_CONTROL[0x40]:(DISCENB) SCB_SCSIID[0x67] 
Total 9
Kernel Free SCB list: 10 11 12 13 14 15 0 
Sequencer Complete DMA-inprog list: 
Sequencer Complete list: 
Sequencer DMA-Up and Complete list: 
Sequencer On QFreeze and Complete list: 


ahd1: FIFO0 Free, LONGJMP == 0x80ff, SCB 0x0
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 

ahd1: FIFO1 Free, LONGJMP == 0x80ff, SCB 0x0
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 
LQIN: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
ahd1: LQISTATE = 0x0, LQOSTATE = 0x0, OPTIONMODE = 0x42
ahd1: OS_SPACE_CNT = 0x20 MAXCMDCNT = 0x0
ahd1: SAVED_SCSIID = 0x0 SAVED_LUN = 0x0

SIMODE0[0xc]:(ENOVERRUN|ENIOERR) 
CCSCBCTL[0x4]:(CCSCBDIR) 
ahd1: REG0 == 0x1, SINDEX = 0x120, DINDEX = 0x120
ahd1: SCBPTR == 0x2, SCB_NEXT == 0xff80, SCB_NEXT2 == 0x1
CDB 12 0 0 0 24 0
STACK: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
<<<<<<<<<<<<<<<<< Dump Card State Ends >>>>>>>>>>>>>>>>>>
(probe29:ahd1:0:15:0): SCB 1 - timed out
(probe29:ahd1:0:15:0): Other SCB Timeout
(probe29:ahd1:0:15:0): No other SCB worth waiting for...
ahd1: Issued Channel A Bus Reset. 9 SCBs aborted
ses0 at ahd0 bus 0 target 6 lun 0
ses0: <SUPER GEM318 0> Fixed Processor SCSI-2 device 
ses0: 3.300MB/s transfers
ses0: SAF-TE Compliant Device
SMP: AP CPU #1 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #3 Launched!
da0 at ahd0 bus 0 target 0 lun 0
da0: <SEAGATE ST3146707LC 0005> Fixed Direct Access SCSI-3 device 
da0: 320.000MB/s transfers (160.000MHz, offset 63, 16bit), Tagged Queueing Enabled
da0: 140014MB (286749488 512 byte sectors: 255H 63S/T 17849C)
Trying to mount root from ufs:/dev/da0s1a
em0: link state changed to UP
em1: link state changed to UP



/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20041119
 *
 * Disassembly of /tmp/acpidump.KdSAue, Tue Jan 23 08:48:00 2007
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "Intel", "BLAKFORD", 100925440)
{
    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
    Field (RCRB, DWordAcc, Lock, Preserve)
    {
        Offset (0x1000), 
        Offset (0x3000), 
        Offset (0x3404), 
        HPAS,   2, 
            ,   5, 
        HPAE,   1, 
        Offset (0x3418), 
            ,   1, 
        PATD,   1, 
        SATD,   1, 
        SMBD,   1, 
        AZAD,   1, 
        A97D,   1, 
        Offset (0x341A), 
        RE1D,   1, 
        RE2D,   1, 
        RE3D,   1, 
        RE4D,   1
    }

    Scope (_GPE)
    {
        Method (_L03, 0, NotSerialized)
        {
            Store (0x03, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.USB1, 0x02)
        }

        Method (_L04, 0, NotSerialized)
        {
            Store (0x04, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.USB2, 0x02)
        }

        Method (_L08, 0, NotSerialized)
        {
            Store (0x08, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.LPC0.SIO.COM1, 0x02)
            Notify (\_SB.PCI0.LPC0.SIO.COM2, 0x02)
        }

        Method (_L09, 0, NotSerialized)
        {
            Store (0x09, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.P0P2.BMD0.BPD0, 0x02)
            Notify (\_SB.PCI0.P0P2.BMD0.BPD1, 0x02)
            Notify (\_SB.PCI0.P0P2.BMD0.BPD2, 0x02)
            Notify (\_SB.PCI0.P0P4, 0x02)
            Notify (\_SB.PCI0.P0P6, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Store (0x0B, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.PCIB, 0x02)
        }

        Method (_L0C, 0, NotSerialized)
        {
            Store (0x0C, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.USB3, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Store (0x0D, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.EUSB, 0x02)
        }

        Method (_L18, 0, NotSerialized)
        {
            Store (0x18, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.PEX0.PXH0, 0x02)
        }

        Method (_L1E, 0, NotSerialized)
        {
            Store (0x1E, \_SB.PCI0.PT80)
            Notify (\_SB.PCI0.LPC0.SIO.KBC0, 0x02)
            Notify (\_SB.PCI0.LPC0.SIO.MSE0, 0x02)
        }
    }

    Scope (_PR)
    {
        Processor (CPU0, 0x00, 0x00001010, 0x06) {}
        Processor (CPU1, 0x01, 0x00001010, 0x06) {}
        Processor (CPU2, 0x02, 0x00001010, 0x06) {}
        Processor (CPU3, 0x03, 0x00001010, 0x06) {}
        Processor (CPU4, 0x04, 0x00001010, 0x06) {}
        Processor (CPU5, 0x05, 0x00001010, 0x06) {}
        Processor (CPU6, 0x06, 0x00001010, 0x06) {}
        Processor (CPU7, 0x07, 0x00001010, 0x06) {}
    }

    Scope (_SB)
    {
        OperationRegion (ACB, SystemMemory, 0xBFF69EBC, 0x00000090)
        Field (ACB, AnyAcc, NoLock, Preserve)
        {
            BCMD,   8, 
            DID,    32, 
            INFO,   1104
        }

        Field (ACB, AnyAcc, NoLock, Preserve)
        {
            DMY,    40, 
            INF,    8
        }

        OperationRegion (SMIB, SystemIO, 0x0000FE00, 0x02)
        Field (SMIB, AnyAcc, NoLock, Preserve)
        {
            SMIC,   8
        }

        Name (OSTB, 0xFFFFFFFF)
        Method (OSTP, 0, NotSerialized)
        {
            If (LEqual (^OSTB, 0xFFFFFFFF))
            {
                If (CondRefOf (\_OSI, Local0))
                {
                    If (\_OSI ("Windows 2001"))
                    {
                        Store (0x08, ^OSTB)
                    }
                    Else
                    {
                        Store (0x00, ^OSTB)
                    }
                }
                Else
                {
                    If (CondRefOf (\_OS, Local0))
                    {
                        If (^SEQL (\_OS, "Microsoft Windows"))
                        {
                            Store (0x01, ^OSTB)
                        }
                        Else
                        {
                            If (^SEQL (\_OS, "Microsoft WindowsME: Millennium Edition"))
                            {
                                Store (0x02, ^OSTB)
                            }
                            Else
                            {
                                If (^SEQL (\_OS, "Microsoft Windows NT"))
                                {
                                    Store (0x04, ^OSTB)
                                }
                                Else
                                {
                                    Store (0x00, ^OSTB)
                                }
                            }
                        }
                    }
                    Else
                    {
                        Store (0x00, ^OSTB)
                    }
                }
            }

            Return (^OSTB)
        }

        Method (SEQL, 2, Serialized)
        {
            Noop
            Store (SizeOf (Arg0), Local0)
            Store (SizeOf (Arg1), Local1)
            If (LNot (LEqual (Local0, Local1)))
            {
                Return (Zero)
            }

            Name (BUF0, Buffer (Local0) {})
            Store (Arg0, BUF0)
            Name (BUF1, Buffer (Local0) {})
            Store (Arg1, BUF1)
            Store (Zero, Local2)
            While (LLess (Local2, Local0))
            {
                Store (DerefOf (Index (BUF0, Local2)), Local3)
                Store (DerefOf (Index (BUF1, Local2)), Local4)
                If (LNot (LEqual (Local3, Local4)))
                {
                    Return (Zero)
                }

                Increment (Local2)
            }

            Return (One)
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_BBN, 0x00)
            Name (_ADR, 0x00)
            Name (RSRC, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100, 0x00)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0000,
                    0x0CF7,
                    0x0000,
                    0x0CF8, 0x00)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,
                    0x0D00,
                    0xFFFF,
                    0x0000,
                    0xF300, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C0000,
                    0x000C3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C4000,
                    0x000C7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C8000,
                    0x000CBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000CC000,
                    0x000CFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D0000,
                    0x000D3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D4000,
                    0x000D7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D8000,
                    0x000DBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000DC000,
                    0x000DFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E0000,
                    0x000E3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E4000,
                    0x000E7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E8000,
                    0x000EBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000EC000,
                    0x000EFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000,
                    0x00000000, 0x00)
            })
            Method (_CRS, 0, Serialized)
            {
                CreateDWordField (RSRC, 0x01A4, BTMN)
                CreateDWordField (RSRC, 0x01A8, BTMX)
                CreateDWordField (RSRC, 0x01B0, BTLN)
                And (TOLM, 0xF000, Local0)
                ShiftLeft (Local0, 0x10, Local0)
                Store (Local0, BTMN)
                Subtract (0xFEC00000, Local0, BTLN)
                Subtract (Add (BTMN, BTLN), 0x01, BTMX)
                CreateBitField (RSRC, 0x02D8, C0RW)
                CreateDWordField (RSRC, 0x60, C0MN)
                CreateDWordField (RSRC, 0x64, C0MX)
                CreateDWordField (RSRC, 0x6C, C0LN)
                Store (One, C0RW)
                If (LEqual (And (PAM1, 0x03), 0x01))
                {
                    Store (Zero, C0RW)
                }

                Store (Zero, C0LN)
                If (LNot (And (PAM1, 0x03)))
                {
                    Store (0x4000, C0LN)
                }

                CreateBitField (RSRC, 0x03B0, C4RW)
                CreateDWordField (RSRC, 0x7B, C4MN)
                CreateDWordField (RSRC, 0x7F, C4MX)
                CreateDWordField (RSRC, 0x87, C4LN)
                Store (One, C4RW)
                If (LEqual (And (PAM1, 0x30), 0x10))
                {
                    Store (Zero, C4RW)
                }

                Store (Zero, C4LN)
                If (LNot (And (PAM1, 0x30)))
                {
                    Store (0x4000, C4LN)
                }

                CreateBitField (RSRC, 0x0488, C8RW)
                CreateDWordField (RSRC, 0x96, C8MN)
                CreateDWordField (RSRC, 0x9A, C8MX)
                CreateDWordField (RSRC, 0xA2, C8LN)
                Store (One, C8RW)
                If (LEqual (And (PAM2, 0x03), 0x01))
                {
                    Store (Zero, C8RW)
                }

                Store (Zero, C8LN)
                If (LNot (And (PAM2, 0x03)))
                {
                    Store (0x4000, C8LN)
                }

                CreateBitField (RSRC, 0x0560, CCRW)
                CreateDWordField (RSRC, 0xB1, CCMN)
                CreateDWordField (RSRC, 0xB5, CCMX)
                CreateDWordField (RSRC, 0xBD, CCLN)
                Store (One, CCRW)
                If (LEqual (And (PAM2, 0x30), 0x10))
                {
                    Store (Zero, CCRW)
                }

                Store (Zero, CCLN)
                If (LNot (And (PAM2, 0x30)))
                {
                    Store (0x4000, CCLN)
                }

                CreateBitField (RSRC, 0x0638, D0RW)
                CreateDWordField (RSRC, 0xCC, D0MN)
                CreateDWordField (RSRC, 0xD0, D0MX)
                CreateDWordField (RSRC, 0xD8, D0LN)
                Store (One, D0RW)
                If (LEqual (And (PAM3, 0x03), 0x01))
                {
                    Store (Zero, D0RW)
                }

                Store (Zero, D0LN)
                If (LNot (And (PAM3, 0x03)))
                {
                    Store (0x4000, D0LN)
                }

                CreateBitField (RSRC, 0x0710, D4RW)
                CreateDWordField (RSRC, 0xE7, D4MN)
                CreateDWordField (RSRC, 0xEB, D4MX)
                CreateDWordField (RSRC, 0xF3, D4LN)
                Store (One, D4RW)
                If (LEqual (And (PAM3, 0x30), 0x10))
                {
                    Store (Zero, D4RW)
                }

                Store (Zero, D4LN)
                If (LNot (And (PAM3, 0x30)))
                {
                    Store (0x4000, D4LN)
                }

                CreateBitField (RSRC, 0x07E8, D8RW)
                CreateDWordField (RSRC, 0x0102, D8MN)
                CreateDWordField (RSRC, 0x0106, D8MX)
                CreateDWordField (RSRC, 0x010E, D8LN)
                Store (One, D8RW)
                If (LEqual (And (PAM4, 0x03), 0x01))
                {
                    Store (Zero, D8RW)
                }

                Store (Zero, D8LN)
                If (LNot (And (PAM4, 0x03)))
                {
                    Store (0x4000, D8LN)
                }

                CreateBitField (RSRC, 0x08C0, DCRW)
                CreateDWordField (RSRC, 0x011D, DCMN)
                CreateDWordField (RSRC, 0x0121, DCMX)
                CreateDWordField (RSRC, 0x0129, DCLN)
                Store (One, DCRW)
                If (LEqual (And (PAM4, 0x30), 0x10))
                {
                    Store (Zero, DCRW)
                }

                Store (Zero, DCLN)
                If (LNot (And (PAM4, 0x30)))
                {
                    Store (0x4000, DCLN)
                }

                CreateBitField (RSRC, 0x0998, E0RW)
                CreateDWordField (RSRC, 0x0138, E0MN)
                CreateDWordField (RSRC, 0x013C, E0MX)
                CreateDWordField (RSRC, 0x0144, E0LN)
                Store (One, E0RW)
                If (LEqual (And (PAM5, 0x03), 0x01))
                {
                    Store (Zero, E0RW)
                }

                Store (Zero, E0LN)
                If (LNot (And (PAM5, 0x03)))
                {
                    Store (0x4000, E0LN)
                }

                CreateBitField (RSRC, 0x0A70, E4RW)
                CreateDWordField (RSRC, 0x0153, E4MN)
                CreateDWordField (RSRC, 0x0157, E4MX)
                CreateDWordField (RSRC, 0x015F, E4LN)
                Store (One, E4RW)
                If (LEqual (And (PAM5, 0x30), 0x10))
                {
                    Store (Zero, E4RW)
                }

                Store (Zero, E4LN)
                If (LNot (And (PAM5, 0x30)))
                {
                    Store (0x4000, E4LN)
                }

                CreateBitField (RSRC, 0x0B48, E8RW)
                CreateDWordField (RSRC, 0x016E, E8MN)
                CreateDWordField (RSRC, 0x0172, E8MX)
                CreateDWordField (RSRC, 0x017A, E8LN)
                Store (One, E8RW)
                If (LEqual (And (PAM6, 0x03), 0x01))
                {
                    Store (Zero, E8RW)
                }

                Store (Zero, E8LN)
                If (LNot (And (PAM6, 0x03)))
                {
                    Store (0x4000, E8LN)
                }

                CreateBitField (RSRC, 0x0C20, ECRW)
                CreateDWordField (RSRC, 0x0189, ECMN)
                CreateDWordField (RSRC, 0x018D, ECMX)
                CreateDWordField (RSRC, 0x0195, ECLN)
                Store (One, ECRW)
                If (LEqual (And (PAM6, 0x30), 0x10))
                {
                    Store (Zero, ECRW)
                }

                Store (Zero, ECLN)
                If (LNot (And (PAM6, 0x30)))
                {
                    Store (0x4000, ECLN)
                }

                Return (RSRC)
            }

            Method (_INI, 0, NotSerialized)
            {
                \_SB.OSTP ()
            }

            Device (P0P2)
            {
                Name (_ADR, 0x00020000)
                OperationRegion (PCE2, PCI_Config, 0x00, 0xFF)
                Field (PCE2, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x48), 
                        ,   9, 
                    PGPE,   1, 
                    Offset (0x88), 
                        ,   3, 
                    PMEI,   1, 
                    Offset (0x8E), 
                    PMES,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (\PICF))
                    {
                        Return (Package (0x01)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                0x00, 
                                \_SB.PCI0.LPC0.LNKA, 
                                0x00
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x01)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                0x00, 
                                0x00, 
                                0x10
                            }
                        })
                    }
                }

                Device (BMD0)
                {
                    Name (_ADR, 0x00)
                    Method (_PRT, 0, NotSerialized)
                    {
                        If (LNot (\PICF))
                        {
                            Return (Package (0x03)
                            {
                                Package (0x04)
                                {
                                    0xFFFF, 
                                    0x00, 
                                    \_SB.PCI0.LPC0.LNKA, 
                                    0x00
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x00, 
                                    \_SB.PCI0.LPC0.LNKB, 
                                    0x00
                                }, 

                                Package (0x04)
                                {
                                    0x0002FFFF, 
                                    0x00, 
                                    \_SB.PCI0.LPC0.LNKC, 
                                    0x00
                                }
                            })
                        }
                        Else
                        {
                            Return (Package (0x03)
                            {
                                Package (0x04)
                                {
                                    0xFFFF, 
                                    0x00, 
                                    0x00, 
                                    0x10
                                }, 

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

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

                    Device (BPD0)
                    {
                        Name (_ADR, 0x00)
                        Name (_PRW, Package (0x02)
                        {
                            0x09, 
                            0x05
                        })
                        Method (_PRT, 0, NotSerialized)
                        {
                            If (LNot (\PICF))
                            {
                                Return (Package (0x04)
                                {
                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x00, 
                                        \_SB.PCI0.LPC0.LNKA, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x01, 
                                        \_SB.PCI0.LPC0.LNKB, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x02, 
                                        \_SB.PCI0.LPC0.LNKC, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x03, 
                                        \_SB.PCI0.LPC0.LNKD, 
                                        0x00
                                    }
                                })
                            }
                            Else
                            {
                                Return (Package (0x04)
                                {
                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x00, 
                                        0x00, 
                                        0x10
                                    }, 

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

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

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x03, 
                                        0x00, 
                                        0x13
                                    }
                                })
                            }
                        }
                    }

                    Device (BPD1)
                    {
                        Name (_ADR, 0x00010000)
                        Name (_PRW, Package (0x02)
                        {
                            0x09, 
                            0x05
                        })
                        Method (_PRT, 0, NotSerialized)
                        {
                            If (LNot (\PICF))
                            {
                                Return (Package (0x04)
                                {
                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x00, 
                                        \_SB.PCI0.LPC0.LNKB, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x01, 
                                        \_SB.PCI0.LPC0.LNKC, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x02, 
                                        \_SB.PCI0.LPC0.LNKD, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x03, 
                                        \_SB.PCI0.LPC0.LNKA, 
                                        0x00
                                    }
                                })
                            }
                            Else
                            {
                                Return (Package (0x04)
                                {
                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x00, 
                                        0x00, 
                                        0x11
                                    }, 

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

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

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x03, 
                                        0x00, 
                                        0x10
                                    }
                                })
                            }
                        }
                    }

                    Device (BPD2)
                    {
                        Name (_ADR, 0x00020000)
                        Name (_PRW, Package (0x02)
                        {
                            0x09, 
                            0x05
                        })
                        Method (_PRT, 0, NotSerialized)
                        {
                            If (LNot (\PICF))
                            {
                                Return (Package (0x02)
                                {
                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x00, 
                                        \_SB.PCI0.LPC0.LNKC, 
                                        0x00
                                    }, 

                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x01, 
                                        \_SB.PCI0.LPC0.LNKD, 
                                        0x00
                                    }
                                })
                            }
                            Else
                            {
                                Return (Package (0x02)
                                {
                                    Package (0x04)
                                    {
                                        0xFFFF, 
                                        0x00, 
                                        0x00, 
                                        0x12
                                    }, 

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

                Device (BMF3)
                {
                    Name (_ADR, 0x03)
                    Method (_PRT, 0, NotSerialized)
                    {
                        If (LNot (\PICF))
                        {
                            Return (Package (0x03)
                            {
                                Package (0x04)
                                {
                                    0x0003FFFF, 
                                    0x00, 
                                    \_SB.PCI0.LPC0.LNKA, 
                                    0x00
                                }, 

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

                                Package (0x04)
                                {
                                    0x0002FFFF, 
                                    0x01, 
                                    \_SB.PCI0.LPC0.LNKD, 
                                    0x00
                                }
                            })
                        }
                        Else
                        {
                            Return (Package (0x03)
                            {
                                Package (0x04)
                                {
                                    0x0003FFFF, 
                                    0x00, 
                                    0x00, 
                                    0x1C
                                }, 

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

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

            Device (P0P4)
            {
                Name (_ADR, 0x00040000)
                OperationRegion (PCE4, PCI_Config, 0x00, 0xFF)
                Field (PCE4, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x48), 
                        ,   9, 
                    PGPE,   1, 
                    Offset (0x88), 
                        ,   3, 
                    PMEI,   1, 
                    Offset (0x8E), 
                    PMES,   1
                }

                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x05
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (\PICF))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                0x00, 
                                \_SB.PCI0.LPC0.LNKA, 
                                0x00
                            }, 

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x01, 
                                \_SB.PCI0.LPC0.LNKB, 
                                0x00
                            }, 

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x02, 
                                \_SB.PCI0.LPC0.LNKC, 
                                0x00
                            }, 

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                \_SB.PCI0.LPC0.LNKD, 
                                0x00
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                0x00, 
                                0x00, 
                                0x10
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                0x00, 
                                0x13
                            }
                        })
                    }
                }
            }

            Device (P0P6)
            {
                Name (_ADR, 0x00060000)
                OperationRegion (PCE6, PCI_Config, 0x00, 0xFF)
                Field (PCE6, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x48), 
                        ,   9, 
                    PGPE,   1, 
                    Offset (0x88), 
                        ,   3, 
                    PMEI,   1, 
                    Offset (0x8E), 
                    PMES,   1
                }

                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x05
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (\PICF))
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                0x00, 
                                \_SB.PCI0.LPC0.LNKC, 
                                0x00
                            }, 

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x01, 
                                \_SB.PCI0.LPC0.LNKD, 
                                0x00
                            }, 

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x02, 
                                \_SB.PCI0.LPC0.LNKA, 
                                0x00
                            }, 

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                \_SB.PCI0.LPC0.LNKB, 
                                0x00
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x04)
                        {
                            Package (0x04)
                            {
                                0xFFFF, 
                                0x00, 
                                0x00, 
                                0x12
                            }, 

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

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

                            Package (0x04)
                            {
                                0xFFFF, 
                                0x03, 
                                0x00, 
                                0x11
                            }
                        })
                    }
                }
            }

            Method (_PRT, 0, NotSerialized)
            {
                If (LNot (\PICF))
                {
                    Return (Package (0x14)
                    {
                        Package (0x04)
                        {
                            0xFFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x01, 
                            \_SB.PCI0.LPC0.LNKB, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x02, 
                            \_SB.PCI0.LPC0.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x03, 
                            \_SB.PCI0.LPC0.LNKD, 
                            0x00
                        }, 

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

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

                        Package (0x04)
                        {
                            0x0006FFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x0008FFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKB, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x01, 
                            \_SB.PCI0.LPC0.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x02, 
                            \_SB.PCI0.LPC0.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x03, 
                            \_SB.PCI0.LPC0.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKB, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x01, 
                            \_SB.PCI0.LPC0.LNKD, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x02, 
                            \_SB.PCI0.LPC0.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x03, 
                            \_SB.PCI0.LPC0.LNKA, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001EFFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKB, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001EFFFF, 
                            0x01, 
                            \_SB.PCI0.LPC0.LNKE, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x00, 
                            \_SB.PCI0.LPC0.LNKC, 
                            0x00
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x01, 
                            \_SB.PCI0.LPC0.LNKD, 
                            0x00
                        }
                    })
                }
                Else
                {
                    Return (Package (0x14)
                    {
                        Package (0x04)
                        {
                            0xFFFF, 
                            0x00, 
                            0x00, 
                            0x10
                        }, 

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

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

                        Package (0x04)
                        {
                            0xFFFF, 
                            0x03, 
                            0x00, 
                            0x13
                        }, 

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

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

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

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

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x00, 
                            0x00, 
                            0x11
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x01, 
                            0x00, 
                            0x10
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x02, 
                            0x00, 
                            0x12
                        }, 

                        Package (0x04)
                        {
                            0x001CFFFF, 
                            0x03, 
                            0x00, 
                            0x13
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x00, 
                            0x00, 
                            0x11
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x01, 
                            0x00, 
                            0x13
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x02, 
                            0x00, 
                            0x12
                        }, 

                        Package (0x04)
                        {
                            0x001DFFFF, 
                            0x03, 
                            0x00, 
                            0x10
                        }, 

                        Package (0x04)
                        {
                            0x001EFFFF, 
                            0x00, 
                            0x00, 
                            0x11
                        }, 

                        Package (0x04)
                        {
                            0x001EFFFF, 
                            0x01, 
                            0x00, 
                            0x14
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x00, 
                            0x00, 
                            0x12
                        }, 

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x01, 
                            0x00, 
                            0x13
                        }
                    })
                }
            }

            Method (_S1D, 0, NotSerialized)
            {
                Return (0x01)
            }

            OperationRegion (DB80, SystemIO, 0x80, 0x01)
            Field (DB80, ByteAcc, NoLock, Preserve)
            {
                PT80,   8
            }

            OperationRegion (DB90, SystemIO, 0x90, 0x01)
            Field (DB90, ByteAcc, NoLock, Preserve)
            {
                PT90,   8
            }

            OperationRegion (REGS, SystemMemory, 0xE0080059, 0x08)
            Field (REGS, AnyAcc, NoLock, Preserve)
            {
                PAM0,   8, 
                PAM1,   8, 
                PAM2,   8, 
                PAM3,   8, 
                PAM4,   8, 
                PAM5,   8, 
                PAM6,   8
            }

            OperationRegion (LMEM, SystemMemory, 0xE008106C, 0x02)
            Field (LMEM, AnyAcc, NoLock, Preserve)
            {
                TOLM,   16
            }

            Device (PEX0)
            {
                Name (_ADR, 0x001C0000)
                Device (PXH0)
                {
                    Name (_ADR, 0x00)
                    Name (_PRW, Package (0x02)
                    {
                        0x18, 
                        0x05
                    })
                    Method (_PRT, 0, NotSerialized)
                    {
                        If (LNot (\PICF))
                        {
                            Return (Package (0x04)
                            {
                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x00, 
                                    \_SB.PCI0.LPC0.LNKA, 
                                    0x00
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x01, 
                                    \_SB.PCI0.LPC0.LNKB, 
                                    0x00
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x02, 
                                    \_SB.PCI0.LPC0.LNKC, 
                                    0x00
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x03, 
                                    \_SB.PCI0.LPC0.LNKD, 
                                    0x00
                                }
                            })
                        }
                        Else
                        {
                            Return (Package (0x04)
                            {
                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x00, 
                                    0x00, 
                                    0x10
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x01, 
                                    0x00, 
                                    0x11
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x02, 
                                    0x00, 
                                    0x12
                                }, 

                                Package (0x04)
                                {
                                    0x0001FFFF, 
                                    0x03, 
                                    0x00, 
                                    0x13
                                }
                            })
                        }
                    }
                }
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0000)
                OperationRegion (US1W, PCI_Config, 0xC4, 0x04)
                Field (US1W, DWordAcc, Lock, Preserve)
                {
                    W1EN,   2
                }

                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x05
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, W1EN)
                    }
                    Else
                    {
                        Store (0x00, W1EN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0001)
                OperationRegion (US2W, PCI_Config, 0xC4, 0x04)
                Field (US2W, DWordAcc, Lock, Preserve)
                {
                    W2EN,   2
                }

                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x05
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, W2EN)
                    }
                    Else
                    {
                        Store (0x00, W2EN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }

            Device (USB3)
            {
                Name (_ADR, 0x001D0002)
                OperationRegion (USBO, PCI_Config, 0xC4, 0x04)
                Field (USBO, DWordAcc, Lock, Preserve)
                {
                    RSEN,   2
                }

                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x05
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, RSEN)
                    }
                    Else
                    {
                        Store (0x00, RSEN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }

            Device (USB4)
            {
                Name (_ADR, 0x001D0003)
                OperationRegion (USBO, PCI_Config, 0xC4, 0x04)
                Field (USBO, DWordAcc, Lock, Preserve)
                {
                    RSEN,   2
                }

                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x05
                })
                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, RSEN)
                    }
                    Else
                    {
                        Store (0x00, RSEN)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }

            Device (EUSB)
            {
                Name (_ADR, 0x001D0007)
                Name (_S1D, 0x02)
                Name (_S3D, 0x02)
                Name (_S4D, 0x02)
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x05
                })
            }

            Device (PCIB)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (\PICF))
                    {
                        Return (Package (0x03)
                        {
                            Package (0x04)
                            {
                                0x0001FFFF, 
                                0x00, 
                                \_SB.PCI0.LPC0.LNKC, 
                                0x00
                            }, 

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

                            Package (0x04)
                            {
                                0x0002FFFF, 
                                0x01, 
                                \_SB.PCI0.LPC0.LNKB, 
                                0x00
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x03)
                        {
                            Package (0x04)
                            {
                                0x0001FFFF, 
                                0x00, 
                                0x00, 
                                0x12
                            }, 

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

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

                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x05
                })
            }

            Device (LPC0)
            {
                Name (_ADR, 0x001F0000)
                Name (DVEN, 0x00)
                Method (DECD, 4, Serialized)
                {
                    Noop
                }

                Device (MBRD)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x1F)
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0010, 0x0010, 0x01, 0x10)
                        IO (Decode16, 0x0024, 0x0024, 0x01, 0x02)
                        IO (Decode16, 0x0028, 0x0028, 0x01, 0x02)
                        IO (Decode16, 0x002C, 0x002C, 0x01, 0x02)
                        IO (Decode16, 0x002E, 0x002E, 0x01, 0x02)
                        IO (Decode16, 0x0030, 0x0030, 0x01, 0x02)
                        IO (Decode16, 0x0034, 0x0034, 0x01, 0x02)
                        IO (Decode16, 0x0038, 0x0038, 0x01, 0x02)
                        IO (Decode16, 0x003C, 0x003C, 0x01, 0x02)
                        IO (Decode16, 0x004E, 0x004E, 0x01, 0x02)
                        IO (Decode16, 0x0050, 0x0050, 0x01, 0x04)
                        IO (Decode16, 0x0063, 0x0063, 0x01, 0x01)
                        IO (Decode16, 0x0065, 0x0065, 0x01, 0x01)
                        IO (Decode16, 0x0067, 0x0067, 0x01, 0x01)
                        IO (Decode16, 0x0072, 0x0072, 0x01, 0x06)
                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
                        IO (Decode16, 0x0090, 0x0090, 0x01, 0x10)
                        IO (Decode16, 0x00A4, 0x00A4, 0x01, 0x02)
                        IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
                        IO (Decode16, 0x00AC, 0x00AC, 0x01, 0x02)
                        IO (Decode16, 0x00B0, 0x00B0, 0x01, 0x06)
                        IO (Decode16, 0x00B8, 0x00B8, 0x01, 0x02)
                        IO (Decode16, 0x00BC, 0x00BC, 0x01, 0x02)
                        IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
                        IO (Decode16, 0x0295, 0x0295, 0x01, 0x02)
                        IO (Decode16, 0x0CA2, 0x0CA2, 0x01, 0x02)
                        IO (Decode16, 0x0CA8, 0x0CA8, 0x01, 0x08)
                        IO (Decode16, 0x1000, 0x1000, 0x01, 0x80)
                        IO (Decode16, 0x1180, 0x1180, 0x01, 0x40)
                        IO (Decode16, 0x0800, 0x0800, 0x01, 0x10)
                        IO (Decode16, 0xFE00, 0xFE00, 0x01, 0x01)
                        Memory32Fixed (ReadWrite, 0xE0000000, 0x10000000)
                        Memory32Fixed (ReadWrite, 0xFEE00000, 0x00010000)
                        Memory32Fixed (ReadWrite, 0xFEC80000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xFED1C000, 0x00004000)
                        Memory32Fixed (ReadWrite, 0xFE000000, 0x00020000)
                        Memory32Fixed (ReadWrite, 0xFE600000, 0x00100000)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0xDA, PMMN)
                        CreateWordField (RSRC, 0xDC, PMMX)
                        And (^^PMBA, 0xFF80, PMMN)
                        Store (PMMN, PMMX)
                        CreateWordField (RSRC, 0xE2, GPMN)
                        CreateWordField (RSRC, 0xE4, GPMX)
                        And (^^GPBA, 0xFFC0, GPMN)
                        Store (GPMN, GPMX)
                        Return (RSRC)
                    }
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x20)
                        IO (Decode16, 0x0081, 0x0081, 0x01, 0x11)
                        IO (Decode16, 0x0093, 0x0093, 0x01, 0x0D)
                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
                        DMA (Compatibility, NotBusMaster, Transfer8_16) {4}
                    })
                }

                Device (MATH)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x0F)
                        IRQ (Edge, ActiveHigh, Exclusive) {13}
                    })
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
                        IRQ (Edge, ActiveHigh, Exclusive) {2}
                    })
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags () {0}
                        IRQNoFlags () {8}
                        Memory32Fixed (ReadOnly, 0xFED00000, 0x00000400)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LNot (LLess (\_SB.OSTB, 0x08)))
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPAE)
                            {
                                Return (0x0B)
                            }
                        }

                        Return (0x00)
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            CreateDWordField (BUF0, 0x0A, HPT0)
                            If (LEqual (HPAS, 0x01))
                            {
                                Store (0xFED01000, HPT0)
                            }

                            If (LEqual (HPAS, 0x02))
                            {
                                Store (0xFED02000, HPT0)
                            }

                            If (LEqual (HPAS, 0x03))
                            {
                                Store (0xFED03000, HPT0)
                            }
                        }

                        Return (BUF0)
                    }
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x02)
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x02)
                        IRQ (Edge, ActiveHigh, Exclusive) {8}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (LNot (LLess (\_SB.OSTB, 0x08)))
                        {
                            If (HPAE)
                            {
                                Return (BUF0)
                            }
                        }

                        Return (BUF1)
                    }
                }

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

                Device (TIME)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                        IRQ (Edge, ActiveHigh, Exclusive) {0}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (LNot (LLess (\_SB.OSTB, 0x08)))
                        {
                            If (HPAE)
                            {
                                Return (BUF0)
                            }
                        }

                        Return (BUF1)
                    }
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x01)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRA, 0x80, PIRA)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRA, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRA, 0x70), PIRA)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRA, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKB)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x02)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRB, 0x80, PIRB)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRB, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRB, 0x70), PIRB)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRB, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKC)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x03)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRC, 0x80, PIRC)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRC, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRC, 0x70), PIRC)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRC, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKD)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRD, 0x80, PIRD)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRD, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRD, 0x70), PIRD)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRD, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKE)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x05)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRE, 0x80, PIRE)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRE, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRE, 0x70), PIRE)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRE, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKF)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x06)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRF, 0x80, PIRF)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRF, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRF, 0x70), PIRF)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRF, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKG)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x07)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRG, 0x80, PIRG)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRG, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRG, 0x70), PIRG)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRG, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                Device (LNKH)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x08)
                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {4,5,6,7,10,11,14,15}
                    })
                    Name (RSRC, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {}
                    })
                    Method (_DIS, 0, NotSerialized)
                    {
                        Or (PIRH, 0x80, PIRH)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x01, IRQ0)
                        And (PIRH, 0x0F, Local0)
                        ShiftLeft (0x01, Local0, IRQ0)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Or (Local0, And (PIRH, 0x70), PIRH)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (And (PIRH, 0x80))
                        {
                            Return (0x09)
                        }

                        Return (0x0B)
                    }
                }

                OperationRegion (PIRX, PCI_Config, 0x60, 0x04)
                Field (PIRX, DWordAcc, Lock, Preserve)
                {
                    AccessAs (ByteAcc, 0x00), 
                    PIRA,   8, 
                    PIRB,   8, 
                    PIRC,   8, 
                    PIRD,   8
                }

                OperationRegion (PIRY, PCI_Config, 0x68, 0x04)
                Field (PIRY, DWordAcc, Lock, Preserve)
                {
                    AccessAs (ByteAcc, 0x00), 
                    PIRE,   8, 
                    PIRF,   8, 
                    PIRG,   8, 
                    PIRH,   8
                }

                OperationRegion (REGS, PCI_Config, 0x40, 0x10)
                Field (REGS, DWordAcc, Lock, Preserve)
                {
                    PMBA,   16, 
                    Offset (0x08), 
                    GPBA,   16
                }

                OperationRegion (PMRG, PCI_Config, 0xA0, 0x04)
                Field (PMRG, DWordAcc, Lock, Preserve)
                {
                        ,   10, 
                    BPEE,   1
                }

                OperationRegion (LIOE, PCI_Config, 0x80, 0x02)
                Field (LIOE, WordAcc, Lock, Preserve)
                {
                    CAPD,   3, 
                        ,   1, 
                    CBPD,   3, 
                    Offset (0x01), 
                    LPPD,   2
                }

                Method (IODE, 2, NotSerialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        If (LEqual (Arg1, 0x03F8))
                        {
                            Store (0x00, CAPD)
                        }

                        If (LEqual (Arg1, 0x02F8))
                        {
                            Store (0x01, CAPD)
                        }

                        If (LEqual (Arg1, 0x03E8))
                        {
                            Store (0x07, CAPD)
                        }

                        If (LEqual (Arg1, 0x02E8))
                        {
                            Store (0x05, CAPD)
                        }
                    }

                    If (LEqual (Arg0, 0x01))
                    {
                        If (LEqual (Arg1, 0x03F8))
                        {
                            Store (0x00, CBPD)
                        }

                        If (LEqual (Arg1, 0x02F8))
                        {
                            Store (0x01, CBPD)
                        }

                        If (LEqual (Arg1, 0x03E8))
                        {
                            Store (0x07, CBPD)
                        }

                        If (LEqual (Arg1, 0x02E8))
                        {
                            Store (0x05, CBPD)
                        }
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        If (LEqual (Arg1, 0x0378))
                        {
                            Store (0x00, LPPD)
                        }

                        If (LEqual (Arg1, 0x0278))
                        {
                            Store (0x01, LPPD)
                        }

                        If (LEqual (Arg1, 0x03BC))
                        {
                            Store (0x02, LPPD)
                        }
                    }
                }

                Device (FWHD)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0xFF000000, 0x01000000)
                    })
                }

                Device (SIO)
                {
                    Name (_HID, EisaId ("PNP0A05"))
                    Mutex (W627, 0x00)
                    OperationRegion (SIBP, SystemIO, 0x2E, 0x02)
                    Field (SIBP, ByteAcc, NoLock, Preserve)
                    {
                        BPIO,   8
                    }

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

                    IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x07), 
                        LDN,    8, 
                        Offset (0x22), 
                        POW,    8, 
                        Offset (0x30), 
                        ACT,    1, 
                        Offset (0x60), 
                        IOBH,   8, 
                        IOBL,   8, 
                        IO2H,   8, 
                        IO2L,   8, 
                        Offset (0x70), 
                        INT,    4, 
                        Offset (0x74), 
                        DMAS,   3, 
                        Offset (0xE0), 
                        Z000,   8, 
                        Offset (0xE4), 
                        Z001,   8, 
                        Offset (0xF0), 
                        MODE,   3, 
                        Offset (0xF1), 
                            ,   3, 
                        IRMD,   3, 
                        Offset (0xF3), 
                            ,   6, 
                        SLED,   2, 
                        Offset (0xF5), 
                            ,   6, 
                        PLED,   2
                    }

                    Method (CFG, 1, NotSerialized)
                    {
                        Store (0x87, BPIO)
                        Store (0x87, BPIO)
                        Store (Arg0, LDN)
                    }

                    Method (XCFG, 0, NotSerialized)
                    {
                        Store (0xAA, BPIO)
                    }

                    Method (STA, 1, NotSerialized)
                    {
                        Acquire (W627, 0x5000)
                        CFG (Arg0)
                        Store (0x00, Local1)
                        If (ACT)
                        {
                            Store (0x0F, Local1)
                        }
                        Else
                        {
                            If (LOr (IOBH, IOBL))
                            {
                                Store (0x0D, Local1)
                            }
                        }

                        XCFG ()
                        Release (W627)
                        Return (Local1)
                    }

                    Method (DIS, 1, NotSerialized)
                    {
                        Acquire (W627, 0x1388)
                        CFG (Arg0)
                        Store (0x00, ACT)
                        XCFG ()
                        Release (W627)
                        Return (0x00)
                    }

                    Method (PS0, 1, NotSerialized)
                    {
                        Acquire (W627, 0x1388)
                        CFG (Arg0)
                        Store (0x01, ACT)
                        XCFG ()
                        Release (W627)
                        Return (0x00)
                    }

                    Method (PS3, 1, NotSerialized)
                    {
                        Acquire (W627, 0x1388)
                        CFG (Arg0)
                        Store (0x00, ACT)
                        XCFG ()
                        Release (W627)
                        Return (0x00)
                    }

                    Device (KBC0)
                    {
                        Name (_HID, EisaId ("PNP0303"))
                        Name (_CID, 0x0B03D041)
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Name (_CRS, ResourceTemplate ()
                        {
                            IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                            IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                            IRQ (Edge, ActiveHigh, Exclusive) {1}
                        })
                        Name (_PRW, Package (0x02)
                        {
                            0x1E, 
                            0x05
                        })
                    }

                    Device (MSE0)
                    {
                        Name (_HID, EisaId ("PNP0F13"))
                        Name (_CID, 0x130FD041)
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Name (_CRS, ResourceTemplate ()
                        {
                            IRQ (Edge, ActiveHigh, Exclusive) {12}
                        })
                        Name (_PRW, Package (0x02)
                        {
                            0x1E, 
                            0x05
                        })
                    }

                    Device (COM1)
                    {
                        Name (_HID, EisaId ("PNP0501"))
                        Name (_UID, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            Store (STA (0x02), Local1)
                            Return (Local1)
                        }

                        Name (_PRW, Package (0x02)
                        {
                            0x08, 
                            0x05
                        })
                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x02)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (RSRC, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x08, 0x08)
                                IRQNoFlags () {}
                            })
                            CreateByteField (RSRC, 0x02, IO1)
                            CreateByteField (RSRC, 0x03, IO2)
                            CreateByteField (RSRC, 0x04, IO3)
                            CreateByteField (RSRC, 0x05, IO4)
                            CreateWordField (RSRC, 0x09, IRQV)
                            Acquire (W627, 0x1388)
                            CFG (0x02)
                            If (ACT)
                            {
                                Store (IOBL, IO1)
                                Store (IOBH, IO2)
                                Store (IOBL, IO3)
                                Store (IOBH, IO4)
                                Store (0x01, Local0)
                                ShiftLeft (Local0, INT, IRQV)
                            }

                            XCFG ()
                            Release (W627)
                            Return (RSRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IO1)
                            CreateByteField (Arg0, 0x03, IO2)
                            CreateWordField (Arg0, 0x09, IRQV)
                            Acquire (W627, 0x1388)
                            CFG (0x02)
                            Store (IO1, IOBL)
                            Store (IO2, IOBH)
                            FindSetRightBit (IRQV, Local0)
                            Subtract (Local0, 0x01, INT)
                            Store (0x01, ACT)
                            XCFG ()
                            Release (W627)
                            CreateWordField (Arg0, 0x02, IORG)
                            \_SB.PCI0.LPC0.IODE (0x00, IORG)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x02)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x02)
                        }
                    }

                    Device (COM2)
                    {
                        Method (_HID, 0, NotSerialized)
                        {
                            Acquire (W627, 0x1388)
                            CFG (0x03)
                            If (LAnd (IRMD, 0x38))
                            {
                                Store (0x1005D041, Local1)
                            }
                            Else
                            {
                                Store (0x0105D041, Local1)
                            }

                            XCFG ()
                            Release (W627)
                            Return (Local1)
                        }

                        Name (_UID, 0x02)
                        Method (_STA, 0, NotSerialized)
                        {
                            Store (STA (0x03), Local1)
                            Return (Local1)
                        }

                        Name (_PRW, Package (0x02)
                        {
                            0x08, 
                            0x05
                        })
                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x03)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (RSRC, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x08, 0x08)
                                IRQNoFlags () {}
                            })
                            CreateByteField (RSRC, 0x02, IO1)
                            CreateByteField (RSRC, 0x03, IO2)
                            CreateByteField (RSRC, 0x04, IO3)
                            CreateByteField (RSRC, 0x05, IO4)
                            CreateWordField (RSRC, 0x09, IRQV)
                            Acquire (W627, 0x1388)
                            CFG (0x03)
                            If (ACT)
                            {
                                Store (IOBL, IO1)
                                Store (IOBH, IO2)
                                Store (IOBL, IO3)
                                Store (IOBH, IO4)
                                Store (0x01, Local0)
                                ShiftLeft (Local0, INT, IRQV)
                            }

                            XCFG ()
                            Release (W627)
                            Return (RSRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {3}
                            }
                            StartDependentFn (0x02, 0x02)
                            {
                                IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {4}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IO1)
                            CreateByteField (Arg0, 0x03, IO2)
                            CreateWordField (Arg0, 0x09, IRQV)
                            Acquire (W627, 0x1388)
                            CFG (0x03)
                            Store (IO1, IOBL)
                            Store (IO2, IOBH)
                            FindSetRightBit (IRQV, Local0)
                            Subtract (Local0, 0x01, INT)
                            Store (0x01, ACT)
                            XCFG ()
                            Release (W627)
                            CreateWordField (Arg0, 0x02, IORG)
                            \_SB.PCI0.LPC0.IODE (0x01, IORG)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x03)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x03)
                        }
                    }

                    Device (FDC)
                    {
                        Name (_HID, EisaId ("PNP0700"))
                        Name (_UID, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            Store (STA (0x00), Local1)
                            Return (Local1)
                        }

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

                        Method (_CRS, 0, NotSerialized)
                        {
                            Name (RSRC, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x06)
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x01)
                                IRQNoFlags () {}
                                DMA (Compatibility, NotBusMaster, Transfer8) {}
                            })
                            Acquire (W627, 0x1388)
                            CFG (0x00)
                            If (ACT)
                            {
                                CreateByteField (RSRC, 0x02, IO1)
                                CreateByteField (RSRC, 0x03, IO2)
                                CreateByteField (RSRC, 0x04, IO3)
                                CreateByteField (RSRC, 0x05, IO4)
                                CreateByteField (RSRC, 0x0A, IO5)
                                CreateByteField (RSRC, 0x0B, IO6)
                                CreateByteField (RSRC, 0x0C, IO7)
                                CreateByteField (RSRC, 0x0D, IO8)
                                CreateWordField (RSRC, 0x11, IRQV)
                                CreateByteField (RSRC, 0x14, DMAV)
                                Store (IOBL, IO1)
                                Store (IOBH, IO2)
                                Store (IOBL, IO3)
                                Store (IOBH, IO4)
                                Add (IOBL, 0x07, IO5)
                                Store (IOBH, IO6)
                                Add (IOBL, 0x07, IO7)
                                Store (IOBH, IO8)
                                Store (0x01, Local0)
                                ShiftLeft (Local0, INT, IRQV)
                                Store (0x01, Local0)
                                ShiftLeft (Local0, DMAS, DMAV)
                            }

                            XCFG ()
                            Release (W627)
                            Return (RSRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
                                IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
                                IRQ (Edge, ActiveHigh, Exclusive) {6}
                                DMA (Compatibility, NotBusMaster, Transfer8) {2}
                            }
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
                                IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
                                IRQ (Edge, ActiveHigh, Exclusive) {6}
                                DMA (Compatibility, NotBusMaster, Transfer8) {2}
                            }
                            EndDependentFn ()
                        })
                        Method (_SRS, 1, NotSerialized)
                        {
                            CreateByteField (Arg0, 0x02, IO1)
                            CreateByteField (Arg0, 0x03, IO2)
                            CreateWordField (Arg0, 0x11, IRQV)
                            CreateByteField (Arg0, 0x14, DMAV)
                            Acquire (W627, 0x1388)
                            CFG (0x00)
                            Store (IO1, IOBL)
                            Store (IO2, IOBH)
                            FindSetRightBit (IRQV, Local0)
                            Subtract (Local0, 0x01, INT)
                            FindSetRightBit (DMAV, Local0)
                            Subtract (Local0, 0x01, DMAS)
                            Store (0x01, ACT)
                            XCFG ()
                            Release (W627)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x00)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x00)
                        }
                    }

                    Device (PRT)
                    {
                        Method (_HID, 0, NotSerialized)
                        {
                            Acquire (W627, 0x1388)
                            CFG (0x01)
                            If (LEqual (MODE, 0x02))
                            {
                                Store (0x0104D041, Local1)
                            }
                            Else
                            {
                                Store (0x0004D041, Local1)
                            }

                            XCFG ()
                            Release (W627)
                            Return (Local1)
                        }

                        Name (_UID, 0x02)
                        Method (_STA, 0, NotSerialized)
                        {
                            Store (STA (0x01), Local1)
                            Return (Local1)
                        }

                        Method (_DIS, 0, NotSerialized)
                        {
                            DIS (0x01)
                        }

                        Method (_CRS, 0, NotSerialized)
                        {
                            Acquire (W627, 0x1388)
                            CFG (0x01)
                            Name (CRSA, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                            })
                            CreateByteField (CRSA, 0x02, IOA1)
                            CreateByteField (CRSA, 0x03, IOA2)
                            CreateByteField (CRSA, 0x04, IOA3)
                            CreateByteField (CRSA, 0x05, IOA4)
                            CreateByteField (CRSA, 0x06, ALA1)
                            CreateByteField (CRSA, 0x07, LNA1)
                            CreateWordField (CRSA, 0x09, IRQA)
                            Name (CRSB, ResourceTemplate ()
                            {
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IO (Decode16, 0x0000, 0x0000, 0x01, 0x08)
                                IRQNoFlags () {}
                                DMA (Compatibility, NotBusMaster, Transfer16) {}
                            })
                            CreateByteField (CRSB, 0x02, IOB1)
                            CreateByteField (CRSB, 0x03, IOB2)
                            CreateByteField (CRSB, 0x04, IOB3)
                            CreateByteField (CRSB, 0x05, IOB4)
                            CreateByteField (CRSB, 0x06, ALB1)
                            CreateByteField (CRSB, 0x07, LNB1)
                            CreateByteField (CRSB, 0x0A, IOB5)
                            CreateByteField (CRSB, 0x0B, IOB6)
                            CreateByteField (CRSB, 0x0C, IOB7)
                            CreateByteField (CRSB, 0x0D, IOB8)
                            CreateByteField (CRSB, 0x0E, ALB2)
                            CreateByteField (CRSB, 0x0F, LNB2)
                            CreateWordField (CRSB, 0x11, IRQB)
                            CreateWordField (CRSB, 0x14, DMAV)
                            If (ACT)
                            {
                                If (LEqual (MODE, 0x02))
                                {
                                    Store (IOBL, IOB1)
                                    Store (IOBH, IOB2)
                                    Store (IOBL, IOB3)
                                    Store (IOBH, IOB4)
                                    Store (IOBL, IOB5)
                                    Add (IOBH, 0x04, IOB6)
                                    Store (IOBL, IOB7)
                                    Add (IOBH, 0x04, IOB8)
                                    If (LEqual (IOBL, 0xBC))
                                    {
                                        Store (0x01, ALB1)
                                        Store (0x04, LNB1)
                                        Store (0x01, ALB2)
                                        Store (0x04, LNB2)
                                    }

                                    Store (0x01, Local0)
                                    ShiftLeft (Local0, INT, IRQB)
                                    Store (0x01, Local0)
                                    ShiftLeft (Local0, DMAS, DMAV)
                                    Return (CRSB)
                                }
                                Else
                                {
                                    Store (IOBL, IOA1)
                                    Store (IOBH, IOA2)
                                    Store (IOBL, IOA3)
                                    Store (IOBH, IOA4)
                                    Store (0x01, Local0)
                                    ShiftLeft (Local0, INT, IRQA)
                                    If (LEqual (IOBL, 0xBC))
                                    {
                                        Store (0x01, ALA1)
                                        Store (0x04, LNA1)
                                    }

                                    Return (CRSA)
                                }
                            }
                            Else
                            {
                                If (LEqual (MODE, 0x02))
                                {
                                    Return (CRSB)
                                }
                                Else
                                {
                                    Return (CRSA)
                                }
                            }

                            XCFG ()
                            Release (W627)
                        }

                        Name (PRSA, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {7}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {7}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IRQ (Edge, ActiveHigh, Exclusive) {7}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IRQ (Edge, ActiveHigh, Exclusive) {5}
                            }
                            EndDependentFn ()
                        })
                        Name (PRSB, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {7}
                                DMA (Compatibility, NotBusMaster, Transfer16) {0,1,3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
                                IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5}
                                DMA (Compatibility, NotBusMaster, Transfer16) {0,1,3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {7}
                                DMA (Compatibility, NotBusMaster, Transfer16) {0,1,3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
                                IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
                                IRQ (Edge, ActiveHigh, Exclusive) {5}
                                DMA (Compatibility, NotBusMaster, Transfer16) {0,1,3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                                IRQ (Edge, ActiveHigh, Exclusive) {7}
                                DMA (Compatibility, NotBusMaster, Transfer16) {0,1,3}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
                                IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
                                IRQ (Edge, ActiveHigh, Exclusive) {5}
                                DMA (Compatibility, NotBusMaster, Transfer16) {0,1,3}
                            }
                            EndDependentFn ()
                        })
                        Method (_PRS, 0, NotSerialized)
                        {
                            Acquire (W627, 0x1388)
                            CFG (0x01)
                            If (LEqual (MODE, 0x02))
                            {
                                Store (PRSB, Local0)
                            }
                            Else
                            {
                                Store (PRSA, Local0)
                            }

                            XCFG ()
                            Release (W627)
                            Return (Local0)
                        }

                        Method (_SRS, 1, NotSerialized)
                        {
                            Acquire (W627, 0x1388)
                            CFG (0x01)
                            If (LEqual (MODE, 0x02))
                            {
                                CreateByteField (Arg0, 0x02, IOB1)
                                CreateByteField (Arg0, 0x03, IOB2)
                                CreateByteField (Arg0, 0x04, IOB3)
                                CreateByteField (Arg0, 0x05, IOB4)
                                CreateByteField (Arg0, 0x06, ALB1)
                                CreateByteField (Arg0, 0x07, LNB1)
                                CreateByteField (Arg0, 0x0A, IOB5)
                                CreateByteField (Arg0, 0x0B, IOB6)
                                CreateByteField (Arg0, 0x0C, IOB7)
                                CreateByteField (Arg0, 0x0D, IOB8)
                                CreateByteField (Arg0, 0x0E, ALB2)
                                CreateByteField (Arg0, 0x0F, LNB2)
                                CreateWordField (Arg0, 0x11, IRQB)
                                CreateWordField (Arg0, 0x14, DMAV)
                                Store (IOB1, IOBL)
                                Store (IOB2, IOBH)
                                FindSetLeftBit (IRQB, Local0)
                                Subtract (Local0, 0x01, INT)
                                FindSetLeftBit (DMAV, Local0)
                                Subtract (Local0, 0x01, DMAS)
                            }
                            Else
                            {
                                CreateByteField (Arg0, 0x02, IOA1)
                                CreateByteField (Arg0, 0x03, IOA2)
                                CreateByteField (Arg0, 0x04, IOA3)
                                CreateByteField (Arg0, 0x05, IOA4)
                                CreateByteField (Arg0, 0x06, ALA1)
                                CreateByteField (Arg0, 0x07, LNA1)
                                CreateWordField (Arg0, 0x09, IRQA)
                                Store (IOA1, IOBL)
                                Store (IOA2, IOBH)
                                FindSetLeftBit (IRQA, Local0)
                                Subtract (Local0, 0x01, INT)
                            }

                            Store (0x01, ACT)
                            XCFG ()
                            Release (W627)
                            CreateWordField (Arg0, 0x02, IORG)
                            \_SB.PCI0.LPC0.IODE (0x02, IORG)
                        }

                        Method (_PS0, 0, NotSerialized)
                        {
                            PS0 (0x01)
                        }

                        Method (_PS3, 0, NotSerialized)
                        {
                            PS3 (0x01)
                        }
                    }

                    Method (ENWK, 0, NotSerialized)
                    {
                        Acquire (W627, 0x1388)
                        CFG (0x0A)
                        Store (0x01, ACT)
                        Store (0xF3, INDX)
                        Store (0x3F, DATA)
                        Store (0xF6, INDX)
                        Store (0x33, DATA)
                        Store (0xF9, INDX)
                        Store (0x05, DATA)
                        XCFG ()
                        Release (W627)
                    }

                    Method (DSWK, 0, NotSerialized)
                    {
                        Acquire (W627, 0x1388)
                        CFG (0x0A)
                        Store (0x00, ACT)
                        Store (0xF6, INDX)
                        Store (0x00, DATA)
                        Store (0xF9, INDX)
                        Store (0x00, DATA)
                        Store (0xF3, INDX)
                        Store (0x3F, DATA)
                        XCFG ()
                        Release (W627)
                    }

                    Method (CLED, 1, NotSerialized)
                    {
                        Acquire (W627, 0x1388)
                        CFG (0x09)
                        Store (Arg0, SLED)
                        XCFG ()
                        Release (W627)
                    }
                }
            }

            Name (NATA, Package (0x01)
            {
                0x001F0001
            })
            Device (IDEC)
            {
                Name (_ADR, 0x001F0001)
                OperationRegion (IDEC, PCI_Config, 0x40, 0x18)
                Field (IDEC, DWordAcc, NoLock, Preserve)
                {
                    PRIT,   16, 
                    SECT,   16, 
                    PSIT,   4, 
                    SSIT,   4, 
                    Offset (0x08), 
                    SDMA,   4, 
                    Offset (0x0A), 
                    SDT0,   2, 
                        ,   2, 
                    SDT1,   2, 
                    Offset (0x0B), 
                    SDT2,   2, 
                        ,   2, 
                    SDT3,   2, 
                    Offset (0x14), 
                    ICR0,   4, 
                    ICR1,   4, 
                    ICR2,   4, 
                    ICR3,   4, 
                    ICR4,   4, 
                    ICR5,   4
                }

                Method (GETP, 1, NotSerialized)
                {
                    Noop
                    If (LEqual (And (Arg0, 0x09), 0x00))
                    {
                        Return (0xFFFFFFFF)
                    }

                    If (LEqual (And (Arg0, 0x09), 0x08))
                    {
                        Return (0x0384)
                    }

                    ShiftRight (And (Arg0, 0x0300), 0x08, Local0)
                    ShiftRight (And (Arg0, 0x3000), 0x0C, Local1)
                    Return (Multiply (0x1E, Subtract (0x09, Add (Local0, Local1))))
                }

                Method (GETD, 4, NotSerialized)
                {
                    Noop
                    If (Arg0)
                    {
                        If (Arg1)
                        {
                            Return (0x14)
                        }

                        If (Arg2)
                        {
                            Return (Multiply (Subtract (0x04, Arg3), 0x0F))
                        }

                        Return (Multiply (Subtract (0x04, Arg3), 0x1E))
                    }

                    Return (0xFFFFFFFF)
                }

                Method (GETT, 1, NotSerialized)
                {
                    Noop
                    Return (Multiply (0x1E, Subtract (0x09, Add (And (ShiftRight (Arg0, 0x02), 0x03), And (Arg0, 0x03)))))
                }

                Method (GETF, 3, NotSerialized)
                {
                    Noop
                    Name (TMPF, 0x00)
                    If (Arg0)
                    {
                        Or (TMPF, 0x01, TMPF)
                    }

                    If (And (Arg2, 0x02))
                    {
                        Or (TMPF, 0x02, TMPF)
                    }

                    If (Arg1)
                    {
                        Or (TMPF, 0x04, TMPF)
                    }

                    If (And (Arg2, 0x20))
                    {
                        Or (TMPF, 0x08, TMPF)
                    }

                    If (And (Arg2, 0x4000))
                    {
                        Or (TMPF, 0x10, TMPF)
                    }

                    Return (TMPF)
                }

                Method (SETP, 3, NotSerialized)
                {
                    Noop
                    If (LNot (LLess (Arg0, 0xF0)))
                    {
                        Return (0x08)
                    }
                    Else
                    {
                        If (And (Arg1, 0x02))
                        {
                            If (LAnd (LNot (LGreater (Arg0, 0x78)), And (Arg2, 0x02)))
                            {
                                Return (0x2301)
                            }

                            If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
                            {
                                Return (0x2101)
                            }
                        }

                        Return (0x1001)
                    }
                }

                Method (SETD, 1, NotSerialized)
                {
                    Noop
                    If (LNot (LGreater (Arg0, 0x14)))
                    {
                        Return (0x01)
                    }

                    If (LNot (LGreater (Arg0, 0x1E)))
                    {
                        Return (0x02)
                    }

                    If (LNot (LGreater (Arg0, 0x2D)))
                    {
                        Return (0x01)
                    }

                    If (LNot (LGreater (Arg0, 0x3C)))
                    {
                        Return (0x02)
                    }

                    If (LNot (LGreater (Arg0, 0x5A)))
                    {
                        Return (0x01)
                    }

                    Return (0x00)
                }

                Method (SETT, 3, NotSerialized)
                {
                    Noop
                    If (And (Arg1, 0x02))
                    {
                        If (LAnd (LNot (LGreater (Arg0, 0x78)), And (Arg2, 0x02)))
                        {
                            Return (0x0B)
                        }

                        If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
                        {
                            Return (0x09)
                        }
                    }

                    Return (0x04)
                }

                Device (PRID)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Noop
                        Name (PBUF, Buffer (0x14)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00
                        })
                        CreateDWordField (PBUF, 0x00, PIO0)
                        CreateDWordField (PBUF, 0x04, DMA0)
                        CreateDWordField (PBUF, 0x08, PIO1)
                        CreateDWordField (PBUF, 0x0C, DMA1)
                        CreateDWordField (PBUF, 0x10, FLAG)
                        Store (GETP (PRIT), PIO0)
                        Store (GETD (And (SDMA, 0x01), And (ICR3, 0x01), And (ICR0, 0x01), SDT0), DMA0)
                        If (LEqual (DMA0, 0xFFFFFFFF))
                        {
                            Store (PIO0, DMA0)
                        }

                        If (And (PRIT, 0x4000))
                        {
                            If (LEqual (And (PRIT, 0x90), 0x80))
                            {
                                Store (0x0384, PIO1)
                            }
                            Else
                            {
                                Store (GETT (PSIT), PIO1)
                            }
                        }
                        Else
                        {
                            Store (0xFFFFFFFF, PIO1)
                        }

                        Store (GETD (And (SDMA, 0x02), And (ICR3, 0x02), And (ICR0, 0x02), SDT1), DMA1)
                        If (LEqual (DMA1, 0xFFFFFFFF))
                        {
                            Store (PIO1, DMA1)
                        }

                        Store (GETF (And (SDMA, 0x01), And (SDMA, 0x02), PRIT), FLAG)
                        Return (PBUF)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Noop
                        CreateDWordField (Arg0, 0x00, PIO0)
                        CreateDWordField (Arg0, 0x04, DMA0)
                        CreateDWordField (Arg0, 0x08, PIO1)
                        CreateDWordField (Arg0, 0x0C, DMA1)
                        CreateDWordField (Arg0, 0x10, FLAG)
                        Store (0x04, ICR2)
                        If (LEqual (SizeOf (Arg1), 0x0200))
                        {
                            And (PRIT, 0x4CF0, PRIT)
                            And (SDMA, 0x0E, SDMA)
                            Store (0x00, SDT0)
                            And (ICR0, 0x0E, ICR0)
                            And (ICR1, 0x0E, ICR1)
                            And (ICR3, 0x0E, ICR3)
                            And (ICR5, 0x0E, ICR5)
                            CreateWordField (Arg1, 0x62, W490)
                            CreateWordField (Arg1, 0x6A, W530)
                            CreateWordField (Arg1, 0x7E, W630)
                            CreateWordField (Arg1, 0x80, W640)
                            CreateWordField (Arg1, 0xB0, W880)
                            Or (PRIT, 0x8004, PRIT)
                            If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                            {
                                Or (PRIT, 0x02, PRIT)
                            }

                            Or (PRIT, SETP (PIO0, W530, W640), PRIT)
                            If (And (FLAG, 0x01))
                            {
                                Or (SDMA, 0x01, SDMA)
                                Store (SETD (DMA0), SDT0)
                                If (And (W880, 0x20))
                                {
                                    Or (ICR1, 0x01, ICR1)
                                    Or (ICR5, 0x01, ICR5)
                                }

                                If (And (W880, 0x10))
                                {
                                    Or (ICR1, 0x01, ICR1)
                                }

                                If (LLess (DMA0, 0x1E))
                                {
                                    Or (ICR3, 0x01, ICR3)
                                }

                                If (LLess (DMA0, 0x3C))
                                {
                                    Or (ICR0, 0x01, ICR0)
                                }
                            }
                        }

                        If (LEqual (SizeOf (Arg2), 0x0200))
                        {
                            And (PRIT, 0x3F0F, PRIT)
                            Store (0x00, PSIT)
                            And (SDMA, 0x0D, SDMA)
                            Store (0x00, SDT1)
                            And (ICR0, 0x0D, ICR0)
                            And (ICR1, 0x0D, ICR1)
                            And (ICR3, 0x0D, ICR3)
                            And (ICR5, 0x0D, ICR5)
                            CreateWordField (Arg2, 0x62, W491)
                            CreateWordField (Arg2, 0x6A, W531)
                            CreateWordField (Arg2, 0x7E, W631)
                            CreateWordField (Arg2, 0x80, W641)
                            CreateWordField (Arg2, 0xB0, W881)
                            Or (PRIT, 0x8040, PRIT)
                            If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                            {
                                Or (PRIT, 0x20, PRIT)
                            }

                            If (And (FLAG, 0x10))
                            {
                                Or (PRIT, 0x4000, PRIT)
                                If (LGreater (PIO1, 0xF0))
                                {
                                    Or (PRIT, 0x80, PRIT)
                                }
                                Else
                                {
                                    Or (PRIT, 0x10, PRIT)
                                    Store (SETT (PIO1, W531, W641), PSIT)
                                }
                            }

                            If (And (FLAG, 0x04))
                            {
                                Or (SDMA, 0x02, SDMA)
                                Store (SETD (DMA1), SDT1)
                                If (And (W881, 0x20))
                                {
                                    Or (ICR1, 0x02, ICR1)
                                    Or (ICR5, 0x02, ICR5)
                                }

                                If (And (W881, 0x10))
                                {
                                    Or (ICR1, 0x02, ICR1)
                                }

                                If (LLess (DMA0, 0x1E))
                                {
                                    Or (ICR3, 0x02, ICR3)
                                }

                                If (LLess (DMA0, 0x3C))
                                {
                                    Or (ICR0, 0x02, ICR0)
                                }
                            }
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Noop
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Noop
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Noop
                            Name (PIB0, Buffer (0x0E)
                            {
                                0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                            })
                            CreateByteField (PIB0, 0x01, PMD0)
                            CreateByteField (PIB0, 0x08, DMD0)
                            If (And (PRIT, 0x02))
                            {
                                If (LEqual (And (PRIT, 0x09), 0x08))
                                {
                                    Store (0x08, PMD0)
                                }
                                Else
                                {
                                    Store (0x0A, PMD0)
                                    ShiftRight (And (PRIT, 0x0300), 0x08, Local0)
                                    ShiftRight (And (PRIT, 0x3000), 0x0C, Local1)
                                    Add (Local0, Local1, Local2)
                                    If (LEqual (0x03, Local2))
                                    {
                                        Store (0x0B, PMD0)
                                    }

                                    If (LEqual (0x05, Local2))
                                    {
                                        Store (0x0C, PMD0)
                                    }
                                }
                            }
                            Else
                            {
                                Store (0x01, PMD0)
                            }

                            If (And (SDMA, 0x01))
                            {
                                Store (Or (SDT0, 0x40), DMD0)
                                If (And (ICR0, 0x01))
                                {
                                    Add (DMD0, 0x02, DMD0)
                                }

                                If (And (ICR3, 0x01))
                                {
                                    Store (0x45, DMD0)
                                }
                            }
                            Else
                            {
                                Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0)
                            }

                            Return (PIB0)
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Noop
                            Name (PIB1, Buffer (0x0E)
                            {
                                0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                            })
                            CreateByteField (PIB1, 0x01, PMD1)
                            CreateByteField (PIB1, 0x08, DMD1)
                            If (And (PRIT, 0x20))
                            {
                                If (LEqual (And (PRIT, 0x90), 0x80))
                                {
                                    Store (0x08, PMD1)
                                }
                                Else
                                {
                                    Add (And (PSIT, 0x03), ShiftRight (And (PSIT, 0x0C), 0x02), Local0)
                                    If (LEqual (0x05, Local0))
                                    {
                                        Store (0x0C, PMD1)
                                    }
                                    Else
                                    {
                                        If (LEqual (0x03, Local0))
                                        {
                                            Store (0x0B, PMD1)
                                        }
                                        Else
                                        {
                                            Store (0x0A, PMD1)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Store (0x01, PMD1)
                            }

                            If (And (SDMA, 0x02))
                            {
                                Store (Or (SDT1, 0x40), DMD1)
                                If (And (ICR0, 0x02))
                                {
                                    Add (DMD1, 0x02, DMD1)
                                }

                                If (And (ICR3, 0x02))
                                {
                                    Store (0x45, DMD1)
                                }
                            }
                            Else
                            {
                                Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1)
                            }

                            Return (PIB1)
                        }
                    }
                }
            }

            Device (SMBS)
            {
                Name (_ADR, 0x001F0003)
            }

            Device (PWRB)
            {
                Name (_HID, EisaId ("PNP0C0C"))
            }
        }
    }

    Scope (_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
        }
    }

    Scope (_TZ)
    {
    }

    Name (_S0, Package (0x02)
    {
        0x00, 
        0x00
    })
    Name (_S1, Package (0x02)
    {
        0x01, 
        0x01
    })
    Name (_S4, Package (0x02)
    {
        0x06, 
        0x06
    })
    Name (_S5, Package (0x02)
    {
        0x07, 
        0x07
    })
    Name (PICF, 0x00)
    Method (_PIC, 1, NotSerialized)
    {
        Store (Arg0, \PICF)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, \_SB.PCI0.PT80)
        Store (0x01, \_SB.PCI0.P0P2.PMES)
        Store (0x01, \_SB.PCI0.P0P2.PMES)
        Store (0x01, \_SB.PCI0.P0P4.PMES)
        Store (0x01, \_SB.PCI0.P0P4.PMES)
        Store (0x01, \_SB.PCI0.P0P6.PMES)
        Store (0x01, \_SB.PCI0.P0P6.PMES)
        If (LEqual (Arg0, 0x01))
        {
            Store (0x01, \_SB.PCI0.P0P2.PMEI)
            Store (0x01, \_SB.PCI0.P0P2.PGPE)
            Store (0x01, \_SB.PCI0.P0P4.PMEI)
            Store (0x01, \_SB.PCI0.P0P4.PGPE)
            Store (0x01, \_SB.PCI0.P0P6.PMEI)
            Store (0x01, \_SB.PCI0.P0P6.PGPE)
            Store (0x01, \_SB.PCI0.LPC0.BPEE)
            \_SB.PCI0.LPC0.SIO.ENWK ()
            \_SB.PCI0.LPC0.SIO.CLED (0x02)
        }

        If (LNot (LLess (Arg0, 0x04)))
        {
            \_SB.PCI0.LPC0.SIO.CLED (0x00)
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, \_SB.PCI0.PT80)
        \_SB.PCI0.LPC0.SIO.CLED (0x01)
        Notify (\_SB.PCI0.PWRB, 0x02)
        If (LEqual (Arg0, 0x01))
        {
            Store (0x00, \_SB.PCI0.P0P2.PMEI)
            Store (0x00, \_SB.PCI0.P0P2.PGPE)
            Store (0x00, \_SB.PCI0.P0P4.PMEI)
            Store (0x00, \_SB.PCI0.P0P4.PGPE)
            Store (0x00, \_SB.PCI0.P0P6.PMEI)
            Store (0x00, \_SB.PCI0.P0P6.PGPE)
            Store (0x00, \_SB.PCI0.LPC0.BPEE)
            \_SB.PCI0.LPC0.SIO.ENWK ()
        }

        \_SB.PCI0.LPC0.SIO.DSWK ()
        Return (Package (0x02)
        {
            0x00, 
            0x00
        })
    }

    Scope (\)
    {
        Name (SSDT, Package (0x30)
        {
            "CPU0IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU1IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU0CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU1CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU2IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU3IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU2CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU3CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU4IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU5IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU4CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU5CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU6IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU7IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU6CST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU7CST ", 
            0x00000000, 
            0xF000FF53
        })
        Name (CFGD, 0x09010000)
        Name (\PDC0, 0x80000000)
        Name (\PDC1, 0x80000000)
        Name (\PDC2, 0x80000000)
        Name (\PDC3, 0x80000000)
        Name (\PDC4, 0x80000000)
        Name (\PDC5, 0x80000000)
        Name (\PDC6, 0x80000000)
        Name (\PDC7, 0x80000000)
        Name (\SDTL, 0x00)
    }

    Scope (\_PR.CPU0)
    {
        Name (HI0, 0x00)
        Name (HC0, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS0, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS0, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS0)
            CreateDWordField (Arg3, 0x04, CAP0)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID0, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID0, 0x00, EID0)
            CreateDWordField (UID0, 0x04, EID1)
            CreateDWordField (UID0, 0x08, EID2)
            CreateDWordField (UID0, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS0, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS0, 0x00))
                Return (Arg3)
            }

            Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC0, 0x09), 0x09)), LNot (And (SDTL, 0x01))))
                {
                    Or (SDTL, 0x01, SDTL)
                    OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02)))
                    Load (IST0, HI0)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18)), LNot (And (SDTL, 0x02))))
                {
                    Or (SDTL, 0x02, SDTL)
                    OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08)))
                    Load (CST0, HC0)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU1)
    {
        Name (HI1, 0x00)
        Name (HC1, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS1, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS1, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS1)
            CreateDWordField (Arg3, 0x04, CAP1)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS1, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS1, 0x00))
                Return (Arg3)
            }

            Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC1, 0x09), 0x09)), LNot (And (SDTL, 0x10))))
                {
                    Or (SDTL, 0x10, SDTL)
                    OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05)))
                    Load (IST1, HI1)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC1, 0x18)), LNot (And (SDTL, 0x20))))
                {
                    Or (SDTL, 0x20, SDTL)
                    OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B)))
                    Load (CST1, HC1)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU2)
    {
        Name (HI2, 0x00)
        Name (HC2, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS2, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS2, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS2)
            CreateDWordField (Arg3, 0x04, CAP2)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS2, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS2, 0x00))
                Return (Arg3)
            }

            Or (And (PDC2, 0x7FFFFFFF), CAP2, PDC2)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC2, 0x09), 0x09)), LNot (And (SDTL, 0x04))))
                {
                    Or (SDTL, 0x04, SDTL)
                    OperationRegion (IST2, SystemMemory, DerefOf (Index (SSDT, 0x0D)), DerefOf (Index (SSDT, 0x0E)))
                    Load (IST2, HI2)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC2, 0x18)), LNot (And (SDTL, 0x08))))
                {
                    Or (SDTL, 0x08, SDTL)
                    OperationRegion (CST2, SystemMemory, DerefOf (Index (SSDT, 0x13)), DerefOf (Index (SSDT, 0x14)))
                    Load (CST2, HC2)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU3)
    {
        Name (HI3, 0x00)
        Name (HC3, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS3, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS3, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS3)
            CreateDWordField (Arg3, 0x04, CAP3)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS3, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS3, 0x00))
                Return (Arg3)
            }

            Or (And (PDC3, 0x7FFFFFFF), CAP3, PDC3)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC3, 0x09), 0x09)), LNot (And (SDTL, 0x40))))
                {
                    Or (SDTL, 0x40, SDTL)
                    OperationRegion (IST3, SystemMemory, DerefOf (Index (SSDT, 0x10)), DerefOf (Index (SSDT, 0x11)))
                    Load (IST3, HI3)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC3, 0x18)), LNot (And (SDTL, 0x80))))
                {
                    Or (SDTL, 0x80, SDTL)
                    OperationRegion (CST3, SystemMemory, DerefOf (Index (SSDT, 0x16)), DerefOf (Index (SSDT, 0x17)))
                    Load (CST3, HC3)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU4)
    {
        Name (HI4, 0x00)
        Name (HC4, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS4, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS4, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS4)
            CreateDWordField (Arg3, 0x04, CAP4)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS4, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS4, 0x00))
                Return (Arg3)
            }

            Or (And (PDC4, 0x7FFFFFFF), CAP4, PDC4)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC4, 0x09), 0x09)), LNot (And (SDTL, 0x0100))))
                {
                    Or (SDTL, 0x0100, SDTL)
                    OperationRegion (IST4, SystemMemory, DerefOf (Index (SSDT, 0x19)), DerefOf (Index (SSDT, 0x1A)))
                    Load (IST4, HI4)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC4, 0x18)), LNot (And (SDTL, 0x0200))))
                {
                    Or (SDTL, 0x0200, SDTL)
                    OperationRegion (CST4, SystemMemory, DerefOf (Index (SSDT, 0x1F)), DerefOf (Index (SSDT, 0x20)))
                    Load (CST4, HC4)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU5)
    {
        Name (HI5, 0x00)
        Name (HC5, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS5, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS5, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS5)
            CreateDWordField (Arg3, 0x04, CAP5)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS5, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS5, 0x00))
                Return (Arg3)
            }

            Or (And (PDC5, 0x7FFFFFFF), CAP5, PDC5)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC5, 0x09), 0x09)), LNot (And (SDTL, 0x0400))))
                {
                    Or (SDTL, 0x0400, SDTL)
                    OperationRegion (IST5, SystemMemory, DerefOf (Index (SSDT, 0x1C)), DerefOf (Index (SSDT, 0x1D)))
                    Load (IST5, HI5)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC5, 0x18)), LNot (And (SDTL, 0x0800))))
                {
                    Or (SDTL, 0x0800, SDTL)
                    OperationRegion (CST5, SystemMemory, DerefOf (Index (SSDT, 0x22)), DerefOf (Index (SSDT, 0x23)))
                    Load (CST5, HC5)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU6)
    {
        Name (HI6, 0x00)
        Name (HC6, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS6, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS6, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS6)
            CreateDWordField (Arg3, 0x04, CAP6)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS6, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS6, 0x00))
                Return (Arg3)
            }

            Or (And (PDC6, 0x7FFFFFFF), CAP6, PDC6)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC6, 0x09), 0x09)), LNot (And (SDTL, 0x1000))))
                {
                    Or (SDTL, 0x1000, SDTL)
                    OperationRegion (IST6, SystemMemory, DerefOf (Index (SSDT, 0x25)), DerefOf (Index (SSDT, 0x26)))
                    Load (IST6, HI6)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC6, 0x18)), LNot (And (SDTL, 0x2000))))
                {
                    Or (SDTL, 0x2000, SDTL)
                    OperationRegion (CST6, SystemMemory, DerefOf (Index (SSDT, 0x2B)), DerefOf (Index (SSDT, 0x2C)))
                    Load (CST6, HC6)
                }
            }

            Return (Arg3)
        }
    }

    Scope (\_PR.CPU7)
    {
        Name (HI7, 0x00)
        Name (HC7, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x00, REVS)
            CreateDWordField (Arg0, 0x04, SIZE)
            Store (SizeOf (Arg0), Local0)
            Store (Subtract (Local0, 0x08), Local1)
            CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
            Name (STS7, Buffer (0x04)
            {
                0x00, 0x00, 0x00, 0x00
            })
            Concatenate (STS7, TEMP, Local2)
            _OSC (Buffer (0x10)
                {
                    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                }, REVS, SIZE, Local2)
        }

        Method (_OSC, 4, NotSerialized)
        {
            CreateDWordField (Arg3, 0x00, STS7)
            CreateDWordField (Arg3, 0x04, CAP7)
            CreateDWordField (Arg0, 0x00, IID0)
            CreateDWordField (Arg0, 0x04, IID1)
            CreateDWordField (Arg0, 0x08, IID2)
            CreateDWordField (Arg0, 0x0C, IID3)
            Name (UID1, Buffer (0x10)
            {
                0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 
                0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            CreateDWordField (UID1, 0x00, EID0)
            CreateDWordField (UID1, 0x04, EID1)
            CreateDWordField (UID1, 0x08, EID2)
            CreateDWordField (UID1, 0x0C, EID3)
            If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
            {
                Store (0x06, Index (STS7, 0x00))
                Return (Arg3)
            }

            If (LNot (LEqual (Arg1, 0x01)))
            {
                Store (0x0A, Index (STS7, 0x00))
                Return (Arg3)
            }

            Or (And (PDC7, 0x7FFFFFFF), CAP7, PDC7)
            If (And (CFGD, 0x01))
            {
                If (LAnd (LAnd (Or (Or (And (CFGD, 0x08000000), And (CFGD, 0x04000000)), Or (And (CFGD, 0x01000000), And (CFGD, 0x02000000))), LEqual (And (PDC7, 0x09), 0x09)), LNot (And (SDTL, 0x4000))))
                {
                    Or (SDTL, 0x4000, SDTL)
                    OperationRegion (IST7, SystemMemory, DerefOf (Index (SSDT, 0x28)), DerefOf (Index (SSDT, 0x29)))
                    Load (IST7, HI7)
                }
            }

            If (And (CFGD, 0xF0))
            {
                If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC7, 0x18)), LNot (And (SDTL, 0x8000))))
                {
                    Or (SDTL, 0x8000, SDTL)
                    OperationRegion (CST7, SystemMemory, DerefOf (Index (SSDT, 0x2E)), DerefOf (Index (SSDT, 0x2F)))
                    Load (CST7, HC7)
                }
            }

            Return (Arg3)
        }
    }
}





More information about the freebsd-stable mailing list