Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jun 2003 07:22:57 -0500 (CDT)
From:      none <noone@siu.edu>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   i386/53200: 5.1-RC1 SMP kernel boot gags at "APIC_IO: Testing 8254 interrupt delivery"
Message-ID:  <200306111222.h5BCMvH7090475@freebsd2.localnet10>
Resent-Message-ID: <200306111230.h5BCU4pe040175@freefall.freebsd.org>

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

>Number:         53200
>Category:       i386
>Synopsis:       5.1-RC1 SMP kernel boot gags at "APIC_IO: Testing 8254 interrupt delivery"
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 11 05:30:04 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     none
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD freebsd2.localnet10 5.1-CURRENT FreeBSD 5.1-CURRENT #3: Wed Jun 11 05:07:40 CDT 2003 root@freebsd2.localnet10:/usr/src/sys/i386/compile/5.1-RC1 i386

(system and kernel sources CVSupped and installed 06/11/2003)

================== boot dmesgs =========================
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.1-CURRENT #0: Wed Jun 11 04:53:32 CDT 2003
    root@freebsd2.localnet10:/usr/src/sys/i386/compile/5.1-SMP-RC1
Preloaded elf kernel "/boot/kernel/kernel" at 0xc0830000.
Preloaded elf module "/boot/kernel/linux.ko" at 0xc0830294.
Preloaded elf module "/boot/kernel/nvidia.ko" at 0xc0830340.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc08303ec.
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 3080965424 Hz
CPU: Intel(R) Pentium(R) 4 CPU 3.06GHz (3080.97-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf27  Stepping = 7
  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>
  Hyperthreading: 2 logical CPUs
real memory  = 1073676288 (1023 MB)
avail memory = 1034321920 (986 MB)
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): apic id:  0, version: 0x00050014, at 0xfee00000
 cpu1 (AP):  apic id:  1, version: 0x00050014, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00178011, at 0xfec00000
Pentium Pro MTRR support enabled
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <AMIINT SiS645XX> on motherboard
pcibios: BIOS version 2.10
Using $PIR table, 12 entries at 0xc00f79a0
acpi0: power button is handled as a fixed feature programming model.
Timecounter "ACPI-fast"  frequency 3579545 Hz
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_cpu1: <CPU> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
IOAPIC #0 intpin 18 -> irq 2
IOAPIC #0 intpin 20 -> irq 5
IOAPIC #0 intpin 21 -> irq 10
IOAPIC #0 intpin 23 -> irq 11
IOAPIC #0 intpin 19 -> irq 16
agp0: <SIS Generic host to PCI bridge> mem 0xe0000000-0xe7ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
IOAPIC #0 intpin 16 -> irq 17
nvidia0: <GeForce4 Ti 4600> mem 0xddb80000-0xddbfffff,0xd0000000-0xd7ffffff,0xde000000-0xdeffffff irq 17 at device 0.0 on pci1
isab0: <PCI-ISA bridge> at device 2.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <SiS 96X UDMA133 controller> port 0xff00-0xff0f at device 2.5 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <multimedia, audio> at device 2.7 (no driver attached)
ohci0: <SiS 5571 USB controller> mem 0xdfffc000-0xdfffcfff irq 5 at device 3.0 on pci0
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <SiS 5571 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
ohci1: <SiS 5571 USB controller> mem 0xdfffd000-0xdfffdfff irq 10 at device 3.1 on pci0
usb1: OHCI version 1.0, legacy support
usb1: SMM does not respond, resetting
usb1: <SiS 5571 USB controller> on ohci1
usb1: USB revision 1.0
uhub1: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
pci0: <serial bus, USB> at device 3.3 (no driver attached)
pci0: <multimedia, audio> at device 7.0 (no driver attached)
pci0: <input device> at device 7.1 (no driver attached)
sis0: <NatSemi DP83815 10/100BaseTX> port 0xc800-0xc8ff mem 0xdfffa000-0xdfffafff irq 16 at device 8.0 on pci0
sis0: Ethernet address: 00:09:5b:1e:62:ec
miibus0: <MII bus> on sis0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ahc0: <Adaptec 29160N Ultra160 SCSI adapter> port 0xd800-0xd8ff mem 0xdffff000-0xdfffffff irq 2 at device 11.0 on pci0
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
pci0: <network, ethernet> at device 15.0 (no driver attached)
fdc0: cmd 3 failed at out byte 1 of 3
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0 port 0x778-0x77b,0x378-0x37f irq 7 drq 3 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
fdc0: cmd 3 failed at out byte 1 of 3
orm0: <Option ROM> at iomem 0xc0000-0xce7ff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3
fdc0: cannot reserve I/O port range (6 ports)
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
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.1-CURRENT #0: Wed Jun 11 04:53:32 CDT 2003
    root@freebsd2.localnet10:/usr/src/sys/i386/compile/5.1-SMP-RC1
Preloaded elf kernel "/boot/kernel/kernel" at 0xc06ed000.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc06ed294.
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 3080964504 Hz
CPU: Intel(R) Pentium(R) 4 CPU 3.06GHz (3080.96-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf27  Stepping = 7
  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>
  Hyperthreading: 2 logical CPUs
real memory  = 1073676288 (1023 MB)
avail memory = 1035649024 (987 MB)
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): apic id:  0, version: 0x00050014, at 0xfee00000
 cpu1 (AP):  apic id:  1, version: 0x00050014, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00178011, at 0xfec00000
Pentium Pro MTRR support enabled
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <AMIINT SiS645XX> on motherboard
pcibios: BIOS version 2.10
Using $PIR table, 12 entries at 0xc00f79a0
acpi0: power button is handled as a fixed feature programming model.
Timecounter "ACPI-fast"  frequency 3579545 Hz
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_cpu1: <CPU> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
IOAPIC #0 intpin 18 -> irq 2
IOAPIC #0 intpin 20 -> irq 5
IOAPIC #0 intpin 21 -> irq 10
IOAPIC #0 intpin 23 -> irq 11
IOAPIC #0 intpin 19 -> irq 16
agp0: <SIS Generic host to PCI bridge> mem 0xe0000000-0xe7ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
IOAPIC #0 intpin 16 -> irq 17
pci1: <display, VGA> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 2.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <SiS 96X UDMA133 controller> port 0xff00-0xff0f at device 2.5 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <multimedia, audio> at device 2.7 (no driver attached)
ohci0: <SiS 5571 USB controller> mem 0xdfffc000-0xdfffcfff irq 5 at device 3.0 on pci0
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <SiS 5571 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
ohci1: <SiS 5571 USB controller> mem 0xdfffd000-0xdfffdfff irq 10 at device 3.1 on pci0
usb1: OHCI version 1.0, legacy support
usb1: SMM does not respond, resetting
usb1: <SiS 5571 USB controller> on ohci1
usb1: USB revision 1.0
uhub1: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
pci0: <serial bus, USB> at device 3.3 (no driver attached)
pci0: <multimedia, audio> at device 7.0 (no driver attached)
pci0: <input device> at device 7.1 (no driver attached)
sis0: <NatSemi DP83815 10/100BaseTX> port 0xc800-0xc8ff mem 0xdfffa000-0xdfffafff irq 16 at device 8.0 on pci0
sis0: Ethernet address: 00:09:5b:1e:62:ec
miibus0: <MII bus> on sis0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ahc0: <Adaptec 29160N Ultra160 SCSI adapter> port 0xd800-0xd8ff mem 0xdffff000-0xdfffffff irq 2 at device 11.0 on pci0
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
pci0: <network, ethernet> at device 15.0 (no driver attached)
fdc0: cmd 3 failed at out byte 1 of 3
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0 port 0x778-0x77b,0x378-0x37f irq 7 drq 3 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
fdc0: cmd 3 failed at out byte 1 of 3
orm0: <Option ROM> at iomem 0xc0000-0xce7ff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3
fdc0: cannot reserve I/O port range (6 ports)
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
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.1-CURRENT #0: Wed Jun 11 04:23:26 CDT 2003
    root@freebsd2.localnet10:/usr/obj/usr/src/sys/5.1-RC1
Preloaded elf kernel "/kernel.OLD" at 0xc06dc000.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc06dc28c.
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 3080965384 Hz
CPU: Intel(R) Pentium(R) 4 CPU 3.06GHz (3080.97-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf27  Stepping = 7
  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>
  Hyperthreading: 2 logical CPUs
real memory  = 1073676288 (1023 MB)
avail memory = 1035735040 (987 MB)
Pentium Pro MTRR support enabled
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <AMIINT SiS645XX> on motherboard
pcibios: BIOS version 2.10
Using $PIR table, 12 entries at 0xc00f79a0
acpi0: power button is handled as a fixed feature programming model.
Timecounter "ACPI-fast"  frequency 3579545 Hz
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_cpu1: <CPU> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib0: slot 2 INTC is routed to irq 5
pcib0: slot 3 INTA is routed to irq 5
pcib0: slot 3 INTB is routed to irq 11
pcib0: slot 3 INTD is routed to irq 10
pcib0: slot 7 INTA is routed to irq 5
pcib0: slot 8 INTA is routed to irq 5
pcib0: slot 11 INTA is routed to irq 5
pcib0: slot 15 INTA is routed to irq 5
agp0: <SIS Generic host to PCI bridge> mem 0xe0000000-0xe7ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pcib0: slot 1 INTA is routed to irq 11
pcib1: slot 0 INTA is routed to irq 11
pci1: <display, VGA> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 2.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <SiS 96X UDMA133 controller> port 0xff00-0xff0f at device 2.5 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <multimedia, audio> at device 2.7 (no driver attached)
ohci0: <SiS 5571 USB controller> mem 0xdfffc000-0xdfffcfff irq 5 at device 3.0 on pci0
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <SiS 5571 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
ohci1: <SiS 5571 USB controller> mem 0xdfffd000-0xdfffdfff irq 11 at device 3.1 on pci0
usb1: OHCI version 1.0, legacy support
usb1: SMM does not respond, resetting
usb1: <SiS 5571 USB controller> on ohci1
usb1: USB revision 1.0
uhub1: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
pci0: <serial bus, USB> at device 3.3 (no driver attached)
pci0: <multimedia, audio> at device 7.0 (no driver attached)
pci0: <input device> at device 7.1 (no driver attached)
sis0: <NatSemi DP83815 10/100BaseTX> port 0xc800-0xc8ff mem 0xdfffa000-0xdfffafff irq 5 at device 8.0 on pci0
sis0: Ethernet address: 00:09:5b:1e:62:ec
miibus0: <MII bus> on sis0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ahc0: <Adaptec 29160N Ultra160 SCSI adapter> port 0xd800-0xd8ff mem 0xdffff000-0xdfffffff irq 5 at device 11.0 on pci0
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
pci0: <network, ethernet> at device 15.0 (no driver attached)
fdc0: cmd 3 failed at out byte 1 of 3
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0 port 0x778-0x77b,0x378-0x37f irq 7 drq 3 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
fdc0: cmd 3 failed at out byte 1 of 3
orm0: <Option ROM> at iomem 0xc0000-0xce7ff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3
fdc0: cannot reserve I/O port range (6 ports)
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 10.000 msec
IP Filter: v3.4.31 initialized.  Default = pass all, Logging = enabled
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
ad2: 38204MB <SAMSUNG SV4002H> [77622/16/63] at ata1-master UDMA100
acd0: CD-RW <SAMSUNG CDRW/DVD SM-348B> at ata0-master PIO4
Waiting 15 seconds for SCSI devices to settle
sa0 at ahc0 bus 0 target 2 lun 0
sa0: <ECRIX VXA-1 2C8C> Removable Sequential Access SCSI-2 device 
sa0: 80.000MB/s transfers (40.000MHz, offset 32, 16bit)
da0 at ahc0 bus 0 target 0 lun 0
da0: <SEAGATE ST336752LW 0004> Fixed Direct Access SCSI-3 device 
da0: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing Enabled
da0: 35003MB (71687369 512 byte sectors: 255H 63S/T 4462C)
da1 at ahc0 bus 0 target 4 lun 0
da1: <SEAGATE ST34501N 0015> Fixed Direct Access SCSI-2 device 
da1: 20.000MB/s transfers (20.000MHz, offset 15), Tagged Queueing Enabled
da1: 4339MB (8887200 512 byte sectors: 255H 63S/T 553C)
da2 at ahc0 bus 0 target 6 lun 0
da2: <  S7Z0> Fixed Direct Access SCSI-3 device 
da2: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing Enabled
da2: 35003MB (71687340 512 byte sectors: 255H 63S/T 4462C)
Mounting root from ufs:/dev/da2s1a
IP Filter: already initialized
IP Filter: already initialized

================== acpidump.asl =================
/*
RSD PTR: Checksum=108, OEMID=AMI, RsdtAddress=0x3fff0000
 */
/*
RSDT: Length=44, Revision=1, Checksum=180,
	OEMID=AMIINT, OEM Table ID=SiS645XX, OEM Revision=0x10,
	Creator ID=MSFT, Creator Revision=0x100000b
 */
/*
	Entries={ 0x3fff0030, 0x3fff00c0 }
 */
/*
	DSDT=0x3fff0120
	INT_MODEL=APIC
	SCI_INT=9
	SMI_CMD=0x848, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x1f
	PM1a_EVT_BLK=0x800-0x803
	PM1a_CNT_BLK=0x804-0x805
	PM2_CNT_BLK=0x816-0x816
	PM2_TMR_BLK=0x808-0x80b
	PM2_GPE0_BLK=0x820-0x823
	PM2_GPE1_BLK=0x830-0x833, GPE1_BASE=16
	P_LVL2_LAT=10ms, P_LVL3_LAT=10ms
	FLUSH_SIZE=1024, FLUSH_STRIDE=16
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=0
	Flags={WBINVD,SLP_BUTTON,RTC_S4}
 */
/*
DSDT: Length=13726, Revision=1, Checksum=57,
	OEMID=SiS, OEM Table ID=648, OEM Revision=0x1000,
	Creator ID=MSFT, Creator Revision=0x100000d
 */
DefinitionBlock (
    "acpi_dsdt.aml",	//Output filename
    "DSDT",		//Signature
    0x1,		//DSDT Revision
    "SiS",		//OEMID
    "648",		//TABLE ID
    0x1000		//OEM Revision
)

{
Name(APIC, 0x0)
Method(_PIC, 1) {
    Store(Arg0, APIC)
}
Scope(\_PR_) {
    Processor(CPU1, 1, 0x0, 0x0) {
    }
    Processor(CPU2, 2, 0x0, 0x0) {
    }
}
Name(\_S0_, Package(0x4) {
    0x0,
    0x0,
    0x0,
    0x0,
})
Name(\_S1_, Package(0x4) {
    0x1,
    0x0,
    0x0,
    0x0,
})
Name(\SS3_, Package(0x4) {
    0x3,
    0x0,
    0x0,
    0x0,
})
Name(\_S4_, Package(0x4) {
    0x4,
    0x0,
    0x0,
    0x0,
})
Name(\_S5_, Package(0x4) {
    0x5,
    0x0,
    0x0,
    0x0,
})
Method(MCTH, 2) {
    If(LLess(SizeOf(Arg0), SizeOf(Arg1))) {
        Return(0x0)
    }
    Add(SizeOf(Arg0), 0x1, Local0)
    Name(BUF0, Buffer(Local0) { })
    Name(BUF1, Buffer(Local0) { })
    Store(Arg0, BUF0)
    Store(Arg1, BUF1)
    While(Local0) {
        Decrement(Local0)
        If(LEqual(DerefOf(Index(BUF0, Local0, )), DerefOf(Index(BUF1, Local0, )))) {
        }
        Else {
            Return(Zero)
        }
    }
    Return(One)
}
Scope(\_SB_) {
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Method(_STA) {
            Return(0xb)
        }
    }
    Device(PCI0) {
        Name(_HID, 0x030ad041)
        Name(_ADR, 0x0)
        Name(_BBN, 0x0)
        Method(USXD) {
            If(OSFL) {
                Return(0x2)
            }
            Else {
                Return(0x3)
            }
        }
        Name(CRS_, Buffer(0xa2) {0x88, 0xd, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf3, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xc, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x1, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xff, 0xff, 0xdf, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xdf, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0xe0, 0xfe, 0xff, 0xff, 0xdf, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0x0, 0x79, 0x0 })
        OperationRegion(TMEM, PCI_Config, 0x8e, 0x2)
        Field(TMEM, ByteAcc, NoLock, Preserve) {
            MEMS,	16
        }
        Name(TOM_, 0x0)
        Method(MDET) {
            Store(MEMS, Local0)
            Multiply(Local0, 0x00010000, Local0)
            Store(Local0, TOM_)
            Return(TOM_)
        }
        Method(TFCS) {
            Subtract(MDET(), 0x7fc0, Local0)
            Return(Local0)
        }
        Name(FLAG, 0x1)
        Name(OSFL, 0x0)
        Method(_INI) {
            \_SB_.PCI0.SBRG.IODT()
            If(MCTH(\_OS_, "Microsoft Windows NT")) {
            }
            Else {
                Store(0x1, OSFL)
            }
        }
        Method(_REG, 2) {
            If(LEqual(Arg0, 0x2)) {
                Store(Arg1, FLAG)
            }
        }
        Method(_CRS) {
            CreateDWordField(CRS_, 0x76, TMEM)
            CreateDWordField(CRS_, 0x82, TLEN)
            Store(MDET(), TMEM)
            Subtract(0xfec00000, TMEM, TLEN)
            Return(CRS_)
        }
        Method(_PRT) {
            If(APIC) {
                Return(PIC0)
            }
            Else {
                Return(PIC1)
            }
        }
        Name(PIC0, Package(0x2d) {
            Package(0x4) {
                0x0001ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0001ffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0001ffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0001ffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0002ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0002ffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0002ffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0002ffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0003ffff,
                0x0,
                0x0,
                0x14,
            },
            Package(0x4) {
                0x0003ffff,
                0x1,
                0x0,
                0x15,
            },
            Package(0x4) {
                0x0003ffff,
                0x2,
                0x0,
                0x16,
            },
            Package(0x4) {
                0x0003ffff,
                0x3,
                0x0,
                0x17,
            },
            Package(0x4) {
                0x0004ffff,
                0x0,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0006ffff,
                0x0,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0006ffff,
                0x1,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0006ffff,
                0x2,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0006ffff,
                0x3,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0007ffff,
                0x0,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0007ffff,
                0x1,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0007ffff,
                0x2,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0007ffff,
                0x3,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0008ffff,
                0x0,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0008ffff,
                0x1,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0008ffff,
                0x2,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0008ffff,
                0x3,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0009ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0009ffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0009ffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0009ffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x000affff,
                0x0,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x000affff,
                0x1,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x000affff,
                0x2,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x000affff,
                0x3,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x000bffff,
                0x0,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x000bffff,
                0x1,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x000bffff,
                0x2,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x000bffff,
                0x3,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x000cffff,
                0x0,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x000cffff,
                0x1,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x000cffff,
                0x2,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x000cffff,
                0x3,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x000fffff,
                0x0,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x000fffff,
                0x1,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x000fffff,
                0x2,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x000fffff,
                0x3,
                0x0,
                0x11,
            },
        })
        Name(PIC1, Package(0x2d) {
            Package(0x4) {
                0x0001ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x0,
                \_SB_.LNKE,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x1,
                \_SB_.LNKF,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x2,
                \_SB_.LNKG,
                0x0,
            },
            Package(0x4) {
                0x0003ffff,
                0x3,
                \_SB_.LNKH,
                0x0,
            },
            Package(0x4) {
                0x0004ffff,
                0x0,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x0,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x1,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x2,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x3,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x0,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x1,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x2,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x3,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x0,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x1,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x2,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x3,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x0,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x1,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x2,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x3,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x0,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x1,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x2,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x3,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x0,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x1,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x2,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x3,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000fffff,
                0x0,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000fffff,
                0x1,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000fffff,
                0x2,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000fffff,
                0x3,
                \_SB_.LNKB,
                0x0,
            },
        })
        Device(SBRG) {
            Name(_ADR, 0x00020000)
            Name(\_SB_.PRSA, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSB, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSC, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSD, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSE, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSF, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSG, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            Name(\_SB_.PRSH, Buffer(0x8) {0x30, 0x23, 0xb8, 0xdc, 0x18, 0x38, 0x79, 0x0 })
            OperationRegion(PIX0, PCI_Config, 0x41, 0x4)
            OperationRegion(PIX1, PCI_Config, 0x60, 0x4)
            Scope(\_SB_) {
                Field(PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve) {
                    PIRA,	8,
                    PIRB,	8,
                    PIRC,	8,
                    PIRD,	8
                }
                Field(PCI0.SBRG.PIX1, ByteAcc, NoLock, Preserve) {
                    PIRE,	8,
                    PIRF,	8,
                    PIRG,	8,
                    PIRH,	8
                }
                Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x80, 0x18, 0x79, 0x0 })
                Device(LNKA) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x1)
                    Method(_STA) {
                        And(PIRA, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSA)
                    }
                    Method(_DIS) {
                        Or(PIRA, 0x80, PIRA)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRA, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRA)
                    }
                }
                Device(LNKB) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x2)
                    Method(_STA) {
                        And(PIRB, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSB)
                    }
                    Method(_DIS) {
                        Or(PIRB, 0x80, PIRB)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRB, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRB)
                    }
                }
                Device(LNKC) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x3)
                    Method(_STA) {
                        And(PIRC, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSC)
                    }
                    Method(_DIS) {
                        Or(PIRC, 0x80, PIRC)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRC, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRC)
                    }
                }
                Device(LNKD) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x4)
                    Method(_STA) {
                        And(PIRD, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSD)
                    }
                    Method(_DIS) {
                        Or(PIRD, 0x80, PIRD)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRD, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRD)
                    }
                }
                Device(LNKE) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x5)
                    Method(_STA) {
                        And(PIRE, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSE)
                    }
                    Method(_DIS) {
                        Or(PIRE, 0x80, PIRE)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRE, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRE)
                    }
                }
                Device(LNKF) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x6)
                    Method(_STA) {
                        And(PIRF, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSF)
                    }
                    Method(_DIS) {
                        Or(PIRF, 0x80, PIRF)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRF, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRF)
                    }
                }
                Device(LNKG) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x7)
                    Method(_STA) {
                        And(PIRG, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSG)
                    }
                    Method(_DIS) {
                        Or(PIRG, 0x80, PIRG)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRG, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRG)
                    }
                }
                Device(LNKH) {
                    Name(_HID, 0x0f0cd041)
                    Name(_UID, 0x8)
                    Method(_STA) {
                        And(PIRH, 0x80, Local0)
                        If(Local0) {
                            Return(0x9)
                        }
                        Else {
                            Return(0xb)
                        }
                    }
                    Method(_PRS) {
                        Return(PRSH)
                    }
                    Method(_DIS) {
                        Or(PIRH, 0x80, PIRH)
                    }
                    Method(_CRS) {
                        CreateWordField(BUFA, 0x1, IRA0)
                        And(PIRH, 0xf, Local0)
                        Store(One, Local1)
                        ShiftLeft(Local1, Local0, IRA0)
                        Return(BUFA)
                    }
                    Method(_SRS, 1) {
                        CreateWordField(Arg0, 0x1, IRA_)
                        FindSetRightBit(IRA_, Local0)
                        Decrement(Local0)
                        Store(Local0, PIRH)
                    }
                }
            }
            Device(SYSR) {
                Name(_HID, 0x020cd041)
                Method(_STA) {
                    If(OSFL) {
                        Return(0xf)
                    }
                    Return(0xf)
                }
                Name(IORG, Buffer(0x66) {0x4b, 0x10, 0x0, 0x10, 0x4b, 0x20, 0x0, 0x20, 0x4b, 0x44, 0x0, 0x1c, 0x4b, 0x62, 0x0, 0x2, 0x4b, 0x65, 0x0, 0xb, 0x4b, 0x72, 0x0, 0xe, 0x4b, 0x80, 0x0, 0x1, 0x4b, 0x84, 0x0, 0x3, 0x4b, 0x88, 0x0, 0x1, 0x4b, 0x8c, 0x0, 0x3, 0x4b, 0x90, 0x0, 0x10, 0x4b, 0xa0, 0x0, 0x20, 0x4b, 0xe0, 0x0, 0x10, 0x4b, 0x90, 0x2, 0x8, 0x47, 0x1, 0x80, 0x4, 0x80, 0x4, 0x0, 0x10, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x0, 0x2, 0x47, 0x1, 0x0, 0xc, 0x0, 0xc, 0x0, 0x20, 0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x0, 0x2, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x0, 0x10, 0x0, 0x79, 0x0 })
                Name(IO98, Buffer(0x7a) {0x4b, 0x10, 0x0, 0x10, 0x4b, 0x22, 0x0, 0x1e, 0x4b, 0x44, 0x0, 0x1c, 0x4b, 0x62, 0x0, 0x2, 0x4b, 0x65, 0x0, 0xb, 0x4b, 0x72, 0x0, 0xe, 0x4b, 0x80, 0x0, 0x1, 0x4b, 0x84, 0x0, 0x3, 0x4b, 0x88, 0x0, 0x1, 0x4b, 0x8c, 0x0, 0x3, 0x4b, 0x90, 0x0, 0x10, 0x4b, 0xa2, 0x0, 0x1e, 0x4b, 0xe0, 0x0, 0x10, 0x4b, 0x90, 0x2, 0x8, 0x47, 0x1, 0x80, 0x4, 0x80, 0x4, 0x0, 0x10, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x0, 0x2, 0x47, 0x1, 0x0, 0x8, 0x0, 0x8, 0x0, 0x80, 0x4b, 0x80, 0x8, 0x80, 0x47, 0x1, 0x0, 0xc, 0x0, 0xc, 0x0, 0x20, 0x85, 0x11, 0x0, 0x0, 0x0, 0x0, 0xe8, 0xff, 0x0, 0x0, 0xe8, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x0, 0x2, 0x79, 0x0 })
                Method(_CRS) {
                    If(OSFL) {
                        CreateWordField(IO98, 0x4a, PMIN)
                        CreateWordField(IO98, 0x4c, PMAX)
                        CreateByteField(IO98, 0x4f, PLEN)
                        CreateWordField(IO98, 0x56, SMIN)
                        CreateWordField(IO98, 0x58, SMAX)
                        CreateByteField(IO98, 0x5b, SLEN)
                        Store(\_SB_.PCI0.SBRG.PMBS(), PMIN)
                        Store(PMIN, PMAX)
                        If(PMIN) {
                            Store(0x80, PLEN)
                        }
                        Store(\_SB_.PCI0.SBRG.SMBS(), SMIN)
                        Store(SMIN, SMAX)
                        If(SMIN) {
                            Store(0x20, SLEN)
                        }
                        Return(IO98)
                    }
                    Else {
                        CreateWordField(IORG, 0x4a, SM00)
                        CreateWordField(IORG, 0x4c, SM01)
                        CreateByteField(IORG, 0x4f, SMLN)
                        Store(\_SB_.PCI0.SBRG.SMBS(), SM00)
                        Store(SM00, SM01)
                        If(SM00) {
                            Store(0x20, SMLN)
                        }
                        Return(IORG)
                    }
                }
            }
            Device(\_SB_.MEM_) {
                Name(_HID, 0x010cd041)
                Method(_STA) {
                    If(\_SB_.PCI0.OSFL) {
                        Return(0xf)
                    }
                    Return(0x0)
                }
                Name(MEM1, Buffer(0x4a) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x2, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xfe, 0x0, 0x0, 0x10, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x0, 0x10, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xff, 0x0, 0x0, 0x4, 0x0, 0x79, 0x0 })
                Method(_CRS) {
                    CreateDWordField(MEM1, 0x20, TOP1)
                    Subtract(\_SB_.PCI0.MDET(), 0x00100000, TOP1)
                    Return(MEM1)
                }
            }
            Device(PIC_) {
                Name(_HID, 0xd041)
                Method(_STA) {
                    If(OSFL) {
                        Return(0xf)
                    }
                    Return(0x0)
                }
                Name(_CRS, Buffer(0xd) {0x4b, 0x20, 0x0, 0x2, 0x4b, 0xa0, 0x0, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0 })
            }
            Device(DMAD) {
                Name(_HID, 0x0002d041)
                Name(_CRS, Buffer(0x1d) {0x2a, 0x10, 0x4, 0x4b, 0x0, 0x0, 0x10, 0x4b, 0x81, 0x0, 0x3, 0x4b, 0x87, 0x0, 0x1, 0x4b, 0x89, 0x0, 0x3, 0x4b, 0x8f, 0x0, 0x1, 0x4b, 0xc0, 0x0, 0x20, 0x79, 0x0 })
            }
            Device(TMR_) {
                Name(_HID, 0x0001d041)
                Name(_CRS, Buffer(0x9) {0x4b, 0x40, 0x0, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
            }
            Device(RTC_) {
                Name(_HID, 0x000bd041)
                Name(_CRS, Buffer(0x9) {0x4b, 0x70, 0x0, 0x2, 0x22, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(SPKR) {
                Name(_HID, 0x0008d041)
                Name(_CRS, Buffer(0x6) {0x4b, 0x61, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(COPR) {
                Name(_HID, 0x040cd041)
                Name(_CRS, Buffer(0x9) {0x4b, 0xf0, 0x0, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
            }
            OperationRegion(PSRG, SystemMemory, 0x000fe2c2, 0x1)
            Field(PSRG, ByteAcc, NoLock, Preserve) {
                PK2E,	1,
                PM2E,	1,
                Offset(0x1)
            }
            Device(PS2M) {
                Name(_HID, 0x030fd041)
                Name(_CID, 0x130fd041)
                Method(_STA) {
                    If(PM2E) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Name(M2R0, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
                Name(M2R1, Buffer(0xd) {0x4b, 0x60, 0x0, 0x1, 0x4b, 0x64, 0x0, 0x1, 0x22, 0x0, 0x10, 0x79, 0x0 })
                Method(_CRS) {
                    If(PK2E) {
                        Return(M2R0)
                    }
                    Else {
                        Return(M2R1)
                    }
                }
            }
            Device(PS2K) {
                Name(_HID, 0x0b03d041)
                Method(_STA) {
                    If(PK2E) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Name(_CRS, Buffer(0xd) {0x4b, 0x60, 0x0, 0x1, 0x4b, 0x64, 0x0, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
            }
            Name(PS2K._PRW, Package(0x2) {
                0xf,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L0F) {
                    Notify(\_SB_.PCI0.SBRG.PS2K, 0x2)
                }
            }
            Name(PS2M._PRW, Package(0x2) {
                0xd,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L0D) {
                    Notify(\_SB_.PCI0.SBRG.PS2M, 0x2)
                }
            }
            Method(RRIO, 4) {
                Noop
            }
            Method(RGNR, 4) {
                Noop
            }
            Method(RDMA, 3) {
                Noop
            }
            Name(SPIO, 0x2e)
            OperationRegion(WIN1, SystemIO, SPIO, 0x2)
            Field(WIN1, ByteAcc, NoLock, Preserve) {
                INDX,	8,
                DATA,	8
            }
            IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0x2),
                CFG_,	8,
                Offset(0x7),
                LDN_,	8,
                Offset(0x30),
                ACTR,	8,
                Offset(0x60),
                IOAH,	8,
                IOAL,	8,
                IOEH,	8,
                IOEL,	8,
                Offset(0x70),
                INTR,	8,
                Offset(0x72),
                INT1,	8,
                Offset(0x74),
                DMCH,	8,
                Offset(0xc0),
                GP40,	8,
                Offset(0xf0),
                OPT1,	8,
                OPT2,	8,
                OPT3,	8,
                OPT4,	8,
                OPT5,	8
            }
            Method(ENFG) {
                Store(0x87, INDX)
                Store(0x87, INDX)
            }
            Method(EXFG) {
                Store(0xaa, INDX)
            }
            Name(LDFD, 0x0)
            Name(LDLP, 0x1)
            Name(LDU1, 0x2)
            Name(LDU2, 0x3)
            Name(LDIR, 0x6)
            Name(LDGM, 0x7)
            Name(LDMD, 0x8)
            Name(LDPM, 0xa)
            Device(FDC0) {
                Name(_HID, 0x0007d041)
                Method(_STA) {
                    If(FDST) {
                        Return(GSTA(LDFD))
                    }
                    Return(0x0)
                }
                Method(_DIS) {
                    DDIS(LDFD)
                }
                Method(_CRS) {
                    Return(FCRS)
                }
                Method(_PRS) {
                    Return(FPRS)
                }
                Method(_SRS, 1) {
                    DENB(LDFD)
                }
            }
            Device(UAR1) {
                Name(_HID, 0x0105d041)
                Name(_UID, 0x1)
                Method(_STA) {
                    If(U1ST) {
                        Return(GSTA(LDU1))
                    }
                    Return(0x0)
                }
                Method(_DIS) {
                    DDIS(LDU1)
                }
                Method(_CRS) {
                    Return(PCRS(LDU1, 0x1, 0x8))
                }
                Method(_SRS, 1) {
                    PSRS(Arg0, LDU1)
                    ENFG()
                    EXFG()
                }
                Method(_PRS) {
                    Return(C1PR)
                }
            }
            Device(UAR2) {
                Method(_HID) {
                    ENFG()
                    Store(LDU2, LDN_)
                    And(OPT2, 0x30, Local0)
                    EXFG()
                    If(Local0) {
                        Return(0x1005d041)
                    }
                    Else {
                        Return(0x0105d041)
                    }
                }
                Name(_UID, 0x2)
                Method(_STA) {
                    If(U2ST) {
                        Return(GSTA(LDU2))
                    }
                    Return(0x0)
                }
                Method(_DIS) {
                    DDIS(LDU2)
                }
                Method(_CRS) {
                    Return(PCRS(LDU2, 0x1, 0x8))
                }
                Method(_SRS, 1) {
                    PSRS(Arg0, LDU2)
                    ENFG()
                    EXFG()
                }
                Method(_PRS) {
                    Return(C2PR)
                }
            }
            Device(IRDA) {
                Name(_HID, 0x1005d041)
                Method(_STA) {
                    If(IRST) {
                        Return(GSTA(LDIR))
                    }
                    Return(0x0)
                }
                Method(_DIS) {
                    DDIS(LDIR)
                }
                Method(_CRS) {
                    Name(BUF6, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x8, 0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF6, 0x2, IOLO)
                    CreateByteField(BUF6, 0x3, IOHI)
                    CreateByteField(BUF6, 0x4, IORL)
                    CreateByteField(BUF6, 0x5, IORH)
                    CreateWordField(BUF6, 0x9, IRQM)
                    ENFG()
                    Store(LDIR, LDN_)
                    If(ACTR) {
                        Store(0x10, IOLO)
                        Store(0x3, IOHI)
                    }
                    Else {
                        Store(0x0, IOLO)
                        Store(0x0, IOHI)
                    }
                    Store(IOLO, IORL)
                    Store(IOHI, IORH)
                    ShiftLeft(0x1, INTR, IRQM)
                    EXFG()
                    Return(BUF6)
                }
                Method(_SRS, 1) {
                    PSRS(Arg0, LDIR)
                }
                Name(_PRS, Buffer(0xf) {0x30, 0x47, 0x1, 0x10, 0x3, 0x10, 0x3, 0x8, 0x8, 0x22, 0x20, 0xc, 0x38, 0x79, 0x0 })
            }
            Device(LPT_) {
                Name(_HID, 0x0004d041)
                Method(_STA) {
                    ENFG()
                    Store(LDLP, LDN_)
                    And(OPT1, 0x2, Local0)
                    EXFG()
                    If(Or(Local0, And(Not(LPST, ), 0x1, ), )) {
                        Return(Zero)
                    }
                    Else {
                        Return(GSTA(LDLP))
                    }
                }
                Method(_DIS) {
                    DDIS(LDLP)
                }
                Method(_CRS) {
                    Return(PCRS(LDLP, 0x1, 0x8))
                }
                Method(_SRS, 1) {
                    PSRS(Arg0, LDLP)
                    ENFG()
                    EXFG()
                }
                Method(_PRS) {
                    Return(LPPR)
                }
            }
            Device(ECP_) {
                Name(_HID, 0x0104d041)
                Method(_STA) {
                    ENFG()
                    Store(LDLP, LDN_)
                    And(OPT1, 0x2, Local0)
                    EXFG()
                    If(Local0) {
                        Return(GSTA(LDLP))
                    }
                    Else {
                        Return(Zero)
                    }
                }
                Method(_DIS) {
                    DDIS(LDLP)
                }
                Method(_CRS) {
                    Return(ECRS(LDLP))
                }
                Method(_SRS, 1) {
                    ESRS(Arg0, LDLP)
                    ENFG()
                    EXFG()
                }
                Method(_PRS) {
                    Return(EPRS)
                }
            }
            Device(GAME) {
                Name(_HID, 0x2fb0d041)
                Method(_STA) {
                    ENFG()
                    Store(LDGM, LDN_)
                    Return(GSTA(LDGM))
                    EXFG()
                }
                Method(_DIS) {
                    DDIS(LDGM)
                }
                Method(_CRS) {
                    Name(BUF6, Buffer(0xa) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x8, 0x8, 0x79, 0x0 })
                    CreateByteField(BUF6, 0x2, IOLO)
                    CreateByteField(BUF6, 0x3, IOHI)
                    CreateByteField(BUF6, 0x4, IORL)
                    CreateByteField(BUF6, 0x5, IORH)
                    ENFG()
                    Store(LDGM, LDN_)
                    If(LNot(LEqual(IOAL, 0x8))) {
                        Store(0x0, IOLO)
                        Store(0x2, IOHI)
                    }
                    Else {
                        Store(0x8, IOLO)
                        Store(0x2, IOHI)
                    }
                    Store(IOLO, IORL)
                    Store(IOHI, IORH)
                    EXFG()
                    Return(BUF6)
                }
                Name(_PRS, Buffer(0x15) {0x30, 0x47, 0x1, 0x0, 0x2, 0x0, 0x2, 0x8, 0x8, 0x30, 0x47, 0x1, 0x8, 0x2, 0x8, 0x2, 0x8, 0x8, 0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    ENFG()
                    Store(LDGM, LDN_)
                    If(LNot(LEqual(IOLO, 0x8))) {
                        Store(0x2, IOAH)
                        Store(0x0, IOAL)
                    }
                    Else {
                        Store(0x2, IOAH)
                        Store(0x8, IOAL)
                    }
                    DENB(LDGM)
                }
            }
            Device(MIDI) {
                Name(_HID, 0x06b0d041)
                Method(_STA) {
                    Return(GSTA(LDMD))
                }
                Method(_DIS) {
                    DDIS(LDMD)
                }
                Method(_CRS) {
                    Name(BUF6, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x2, 0x22, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF6, 0x2, IOLO)
                    CreateByteField(BUF6, 0x3, IOHI)
                    CreateByteField(BUF6, 0x4, IORL)
                    CreateByteField(BUF6, 0x5, IORH)
                    CreateWordField(BUF6, 0x9, IRQM)
                    ENFG()
                    Store(LDMD, LDN_)
                    If(LEqual(IOAL, 0x30)) {
                        Store(0x30, IOLO)
                        Store(0x3, IOHI)
                    }
                    Else {
                        Store(0x0, IOLO)
                        Store(0x3, IOHI)
                    }
                    Store(IOLO, IORL)
                    Store(IOHI, IORH)
                    ShiftLeft(0x1, INTR, IRQM)
                    EXFG()
                    Return(BUF6)
                }
                Name(_PRS, Buffer(0x1b) {0x30, 0x47, 0x1, 0x30, 0x3, 0x30, 0x3, 0x2, 0x2, 0x22, 0x20, 0xc, 0x30, 0x47, 0x1, 0x0, 0x3, 0x0, 0x3, 0x2, 0x2, 0x22, 0x20, 0xc, 0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateWordField(Arg0, 0x9, IRQM)
                    ENFG()
                    Store(LDMD, LDN_)
                    If(LEqual(IOLO, 0x30)) {
                        Store(0x3, IOAH)
                        Store(0x30, IOAL)
                    }
                    Else {
                        Store(0x3, IOAH)
                        Store(0x0, IOAL)
                    }
                    FindSetRightBit(IRQM, Local0)
                    Subtract(Local0, 0x1, INTR)
                    DENB(LDMD)
                }
            }
            Name(FDST, 0x0)
            Name(U1ST, 0x0)
            Name(U2ST, 0x0)
            Name(IRST, 0x0)
            Name(LPST, 0x0)
            Method(IODT) {
                If(LEqual(GSTA(LDFD), 0xf)) {
                    Store(0x1, FDST)
                }
                If(LEqual(GSTA(LDU1), 0xf)) {
                    Store(0x1, U1ST)
                }
                If(LEqual(GSTA(LDU2), 0xf)) {
                    Store(0x1, U2ST)
                }
                If(LEqual(GSTA(LDIR), 0xf)) {
                    Store(0x1, IRST)
                }
                If(LEqual(GSTA(LDLP), 0xf)) {
                    Store(0x1, LPST)
                }
            }
            Method(GSTA, 1) {
                ENFG()
                Store(Arg0, LDN_)
                If(ACTR) {
                    Store(0xf, Local0)
                }
                Else {
                    If(Or(IOAH, IOAL, )) {
                        Store(0xd, Local0)
                    }
                    Else {
                        Store(0x0, Local0)
                    }
                }
                EXFG()
                Return(Local0)
            }
            Method(DDIS, 1) {
                ENFG()
                Store(Arg0, LDN_)
                Store(Zero, ACTR)
                EXFG()
            }
            Method(DENB, 1) {
                ENFG()
                Store(Arg0, LDN_)
                Store(One, ACTR)
                EXFG()
            }
            Method(PCRS, 3) {
                CreateByteField(PBUF, 0x2, IOLO)
                CreateByteField(PBUF, 0x3, IOHI)
                CreateWordField(PBUF, 0x2, IOHL)
                CreateWordField(PBUF, 0x4, IORL)
                CreateByteField(PBUF, 0x6, ALMN)
                CreateByteField(PBUF, 0x7, LENG)
                CreateByteField(PBUF, 0x9, IRQL)
                ENFG()
                Store(Arg0, LDN_)
                Store(IOAH, IOHI)
                Store(IOAL, IOLO)
                Store(IOHL, IORL)
                Store(Arg1, ALMN)
                If(LEqual(IOLO, 0xbc)) {
                    Store(0x4, LENG)
                }
                Else {
                    Store(Arg2, LENG)
                }
                Store(One, Local0)
                ShiftLeft(Local0, INTR, IRQL)
                EXFG()
                Return(PBUF)
            }
            Method(PSRS, 2) {
                CreateByteField(Arg0, 0x2, POLB)
                CreateByteField(Arg0, 0x3, POHB)
                CreateByteField(Arg0, 0x9, PIRQ)
                ENFG()
                Store(Arg1, LDN_)
                Store(POLB, IOAL)
                Store(POHB, IOAH)
                FindSetRightBit(PIRQ, Local0)
                Subtract(Local0, 0x1, INTR)
                Store(One, ACTR)
                EXFG()
            }
            Method(ECRS, 1) {
                CreateByteField(EBUF, 0x2, EPLO)
                CreateByteField(EBUF, 0x3, EPHI)
                CreateWordField(EBUF, 0x2, EPHL)
                CreateWordField(EBUF, 0x4, EPRL)
                CreateWordField(EBUF, 0x6, ALM1)
                CreateWordField(EBUF, 0xa, E4LO)
                CreateWordField(EBUF, 0xc, E4RL)
                CreateWordField(EBUF, 0x11, EIRQ)
                CreateWordField(EBUF, 0x14, EDMA)
                ENFG()
                Store(Arg0, LDN_)
                Store(IOAH, EPHI)
                Store(IOAL, EPLO)
                Store(EPHL, EPRL)
                Add(EPHL, 0x0400, E4LO)
                Store(E4LO, E4RL)
                If(LEqual(EPHL, 0x03bc)) {
                    Store(0x0401, ALM1)
                }
                Else {
                    Store(0x0801, ALM1)
                }
                Store(One, Local0)
                Store(INTR, Local1)
                ShiftLeft(Local0, Local1, EIRQ)
                Store(DMCH, Local1)
                If(LGreater(Local1, 0x3)) {
                    Store(0x0, EDMA)
                }
                Else {
                    Store(One, Local0)
                    ShiftLeft(Local0, Local1, EDMA)
                }
                EXFG()
                Return(EBUF)
            }
            Method(ESRS, 2) {
                CreateByteField(Arg0, 0x2, LOEP)
                CreateByteField(Arg0, 0x3, HIEP)
                CreateWordField(Arg0, 0x11, IRQE)
                CreateWordField(Arg0, 0x14, DMAE)
                ENFG()
                Store(Arg1, LDN_)
                Store(LOEP, IOAL)
                Store(HIEP, IOAH)
                FindSetRightBit(IRQE, Local0)
                Subtract(Local0, 0x1, INTR)
                If(DMAE) {
                    FindSetRightBit(DMAE, Local0)
                    Subtract(Local0, 0x1, DMCH)
                }
                Else {
                    Store(0x4, DMCH)
                }
                Store(One, ACTR)
                EXFG()
            }
            Name(CNBF, Buffer(0x2) {0xf8, 0x3 })
            Method(UABS, 1) {
                ENFG()
                Store(Arg0, LDN_)
                CreateByteField(CNBF, 0x0, IOLO)
                CreateByteField(CNBF, 0x1, IOHI)
                CreateWordField(CNBF, 0x0, IOAD)
                Store(IOAL, IOLO)
                Store(IOAH, IOHI)
                EXFG()
                Return(IOAD)
            }
            Name(CSCP, 0x0)
            PowerResource(URP1, 0, 0) {
                Method(_STA) {
                    Return(CSCP)
                }
                Method(_ON_) {
                    Store(0x1, CSCP)
                }
                Method(_OFF) {
                    Store(0x0, CSCP)
                }
            }
            PowerResource(URP2, 0, 0) {
                Method(_STA) {
                    Return(CSCP)
                }
                Method(_ON_) {
                    Store(0x1, CSCP)
                }
                Method(_OFF) {
                    Store(0x0, CSCP)
                }
            }
            PowerResource(FDDP, 0, 0) {
                Method(_STA) {
                    Return(CSCP)
                }
                Method(_ON_) {
                    Store(0x1, CSCP)
                }
                Method(_OFF) {
                    Store(0x0, CSCP)
                }
            }
            PowerResource(LPTP, 0, 0) {
                Method(_STA) {
                    Return(CSCP)
                }
                Method(_ON_) {
                    Store(0x1, CSCP)
                }
                Method(_OFF) {
                    Store(0x0, CSCP)
                }
            }
            Name(FCRS, Buffer(0x20) {0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x1, 0x2, 0x47, 0x1, 0xf4, 0x3, 0xf4, 0x3, 0x1, 0x2, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x79, 0x0 })
            Name(PBUF, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x22, 0x1, 0x0, 0x79, 0x0 })
            Name(EBUF, Buffer(0x18) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x4, 0x22, 0x80, 0x0, 0x2a, 0x0, 0x0, 0x79, 0x0 })
            Name(FPRS, Buffer(0x23) {0x31, 0x0, 0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x1, 0x2, 0x47, 0x1, 0xf4, 0x3, 0xf4, 0x3, 0x1, 0x2, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x38, 0x79, 0x0 })
            Name(C1PR, Buffer(0x40) {0x31, 0x0, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x4, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x4, 0x8, 0x22, 0x18, 0xc, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x4, 0x8, 0x22, 0x18, 0xc, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x4, 0x8, 0x22, 0x18, 0xc, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x4, 0x8, 0x22, 0x18, 0xc, 0x38, 0x79, 0x0 })
            Name(C2PR, Buffer(0x40) {0x31, 0x0, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x4, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x4, 0x8, 0x22, 0x18, 0xc, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x4, 0x8, 0x22, 0x18, 0xc, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x4, 0x8, 0x22, 0x18, 0xc, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x4, 0x8, 0x22, 0x18, 0xc, 0x38, 0x79, 0x0 })
            Name(LPPR, Buffer(0x34) {0x31, 0x0, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x22, 0xa0, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x22, 0xa0, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x38, 0x79, 0x0 })
            Name(EPRS, Buffer(0xa5) {0x31, 0x0, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x4, 0x22, 0x80, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x1, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x1, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x2a, 0x0, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x1, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x2a, 0x0, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x1, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x1, 0x4, 0x22, 0xa0, 0x0, 0x2a, 0x0, 0x0, 0x38, 0x79, 0x0 })
            Name(UAR1._PR0, Package(0x1) {
                URP1,
            })
            Name(UAR2._PR0, Package(0x1) {
                URP2,
            })
            Name(FDC0._PR0, Package(0x1) {
                FDDP,
            })
            Name(ECP_._PR0, Package(0x1) {
                LPTP,
            })
            Name(LPT_._PR0, Package(0x1) {
                LPTP,
            })
            Name(UAR1._PRW, Package(0x2) {
                0x8,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L08) {
                    Notify(\_SB_.PCI0.SBRG.UAR1, 0x2)
                }
            }
            Name(UAR2._PRW, Package(0x2) {
                0x8,
                0x4,
            })
            Method(PMBS) {
                Or(ShiftLeft(0x8, 0x8, ), 0x0, Local0)
                Return(Local0)
            }
            Method(SMBS) {
                Or(ShiftLeft(0xc, 0x8, ), 0x0, Local0)
                Return(Local0)
            }
            OperationRegion(PWRG, SystemIO, PMBS, 0x80)
            OperationRegion(SMRG, SystemIO, SMBS, 0x20)
        }
        Device(IDEC) {
            Name(_ADR, 0x00020005)
            Name(IO5T, Package(0x3) {
                Package(0x7) {
                    0x78,
                    0xb4,
                    0x014a,
                    0x0186,
                    0x0258,
                    0x78,
                    0x96,
                },
                Package(0x7) {
                    0x6,
                    0x7,
                    0x1c,
                    0x1c,
                    0x1c,
                    0x6,
                    0x7,
                },
                Package(0x7) {
                    0x4,
                    0x9,
                    0x3,
                    0x9,
                    0x1e,
                    0x4,
                    0x6,
                },
            })
            Name(IO6T, Package(0x3) {
                Package(0x7) {
                    0x78,
                    0xb4,
                    0x014a,
                    0x0186,
                    0x0258,
                    0x78,
                    0xb4,
                },
                Package(0x7) {
                    0x9,
                    0xa,
                    0x26,
                    0x26,
                    0x26,
                    0x9,
                    0xa,
                },
                Package(0x7) {
                    0x5,
                    0xc,
                    0x4,
                    0xc,
                    0x28,
                    0x5,
                    0xc,
                },
            })
            Name(UM5T, Package(0x6) {
                0xb,
                0x7,
                0x5,
                0x4,
                0x2,
                0x1,
            })
            Name(UM6T, Package(0x7) {
                0xf,
                0xa,
                0x7,
                0x5,
                0x3,
                0x2,
                0x1,
            })
            Name(PIO5, Package(0x5) {
                0x3a,
                0x25,
                0x1f,
                0x10,
                0xa,
            })
            Name(PIO6, Package(0x5) {
                0x4e,
                0x32,
                0x2a,
                0x16,
                0xe,
            })
            Name(CRCT, Package(0x7) {
                0x6,
                0x4,
                0x3,
                0x1,
                0x1,
                0x1,
                0x1,
            })
            Name(INTT, Package(0x5) {
                0x2,
                0x2,
                0x2,
                0x4,
                0x6,
            })
            Name(DMAT, Package(0x5) {
                0x0,
                0x1,
                0x1,
                0x1,
                0x2,
            })
            Name(RMFL, 0x1)
            OperationRegion(CF40, PCI_Config, 0x40, 0x18)
            Field(CF40, WordAcc, NoLock, Preserve) {
                ,	1,
                IOR0,	1,
                UDM0,	1,
                UM60,	1,
                UCT0,	4,
                CRC0,	4,
                INI0,	4,
                ATT0,	6,
                Offset(0x3),
                RCT0,	6,
                Offset(0x4),
                ,	1,
                IOR1,	1,
                UDM1,	1,
                UM61,	1,
                UCT1,	4,
                CRC1,	4,
                INI1,	4,
                ATT1,	6,
                Offset(0x7),
                RCT1,	6,
                Offset(0x8),
                ,	1,
                IOR2,	1,
                UDM2,	1,
                UM62,	1,
                UCT2,	4,
                CRC2,	4,
                INI2,	4,
                ATT2,	6,
                Offset(0xb),
                RCT2,	6,
                Offset(0xc),
                ,	1,
                IOR3,	1,
                UDM3,	1,
                UM63,	1,
                UCT3,	4,
                CRC3,	4,
                INI3,	4,
                ATT3,	6,
                Offset(0xf),
                RCT3,	6,
                Offset(0x10),
                ,	1,
                CHE0,	1,
                Offset(0x12),
                ,	1,
                CHE1,	1,
                Offset(0x14),
                ,	30,
                REMP,	1,
                Offset(0x18)
            }
            Name(IDEP, Buffer(0x14) { })
            CreateDWordField(IDEP, 0x0, GTM0)
            CreateDWordField(IDEP, 0x4, GTM1)
            CreateDWordField(IDEP, 0x8, GTM2)
            CreateDWordField(IDEP, 0xc, GTM3)
            CreateDWordField(IDEP, 0x10, GTM4)
            Device(IDE0) {
                Name(_ADR, 0x0)
                Method(_GTM) {
                    Store(0xffffffff, Local0)
                    Store(0xffffffff, Local1)
                    Store(0xffffffff, Local2)
                    Store(0xffffffff, Local3)
                    Store(0x10, Local4)
                    Store(REMP, RMFL)
                    Store(0x0, REMP)
                    If(CHE0) {
                        If(LNot(LEqual(ATT0, 0x0))) {
                            Add(RCT0, 0x1, Local5)
                            Add(ATT0, 0x1, Local6)
                            Add(Local5, Local6, Local5)
                            Multiply(UM60, 0x5, Local6)
                            Subtract(0x14, Local6, Local7)
                            Multiply(Local5, Local7, Local0)
                            ShiftRight(Local0, 0x1, Local0)
                            If(LNot(LGreater(Local0, 0xb4))) {
                                Store(Local0, Local1)
                            }
                            If(IOR0) {
                                Or(Local4, 0x2, Local4)
                            }
                            If(UDM0) {
                                Add(UCT0, 0x1, Local5)
                                Multiply(Local5, Local7, Local6)
                                ShiftRight(Local6, 0x1, Local1)
                                Or(Local4, 0x1, Local4)
                            }
                        }
                        If(LNot(LEqual(ATT1, 0x0))) {
                            Add(RCT1, 0x1, Local5)
                            Add(ATT1, 0x1, Local6)
                            Add(Local5, Local6, Local5)
                            Multiply(UM61, 0x5, Local6)
                            Subtract(0x14, Local6, Local7)
                            Multiply(Local5, Local7, Local2)
                            ShiftRight(Local2, 0x1, Local2)
                            If(LNot(LGreater(Local2, 0xb4))) {
                                Store(Local2, Local3)
                            }
                            If(IOR1) {
                                Or(Local4, 0x8, Local4)
                            }
                            If(UDM1) {
                                Add(UCT1, 0x1, Local5)
                                Multiply(Local5, Local7, Local6)
                                ShiftRight(Local6, 0x1, Local3)
                                Or(Local4, 0x4, Local4)
                            }
                        }
                    }
                    Store(RMFL, REMP)
                    Store(Local0, GTM0)
                    Store(Local1, GTM1)
                    Store(Local2, GTM2)
                    Store(Local3, GTM3)
                    Store(Local4, GTM4)
                    Return(IDEP)
                }
                Method(_STM, 3) {
                    Store(Arg0, IDEP)
                    Store(GTM0, Local0)
                    Store(GTM1, Local1)
                    Store(GTM2, Local2)
                    Store(GTM3, Local3)
                    Store(GTM4, Local4)
                    Store(REMP, RMFL)
                    Store(0x0, REMP)
                    If(LAnd(LNot(LEqual(Local1, 0xffffffff)), LNot(LEqual(Local1, 0x0)))) {
                        If(And(Local4, 0x1, )) {
                            Store(0x1, UDM0)
                            If(LLess(Local1, 0x14)) {
                                Store(0x1, UM60)
                                Store(0x1, UCT0)
                            }
                            Else {
                                Store(0x0, UM60)
                                Divide(Local1, 0xa, Local6, Local5)
                                Decrement(Local5)
                                Store(Local5, UCT0)
                                Store(Match(UM5T, MEQ, Local5, MTR, 0x0, 0x0), Local5)
                                Store(DerefOf(Index(CRCT, Local5, )), CRC0)
                            }
                        }
                    }
                    If(LAnd(LNot(LEqual(Local0, 0xffffffff)), LNot(LEqual(Local0, 0x0)))) {
                        If(UM60) {
                            Store(Match(DerefOf(Index(IO6T, 0x0, )), MEQ, Local0, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x1, )), Local6, )), ATT0)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x2, )), Local6, )), RCT0)
                        }
                        Else {
                            Store(Match(DerefOf(Index(IO5T, 0x0, )), MEQ, Local0, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x1, )), Local6, )), ATT0)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x2, )), Local6, )), RCT0)
                            Store(DerefOf(Index(INTT, Local6, )), INI0)
                        }
                    }
                    If(LAnd(LNot(LEqual(Local3, 0xffffffff)), LNot(LEqual(Local3, 0x0)))) {
                        If(And(Local4, 0x4, )) {
                            Store(0x1, UDM1)
                            If(LLess(Local3, 0x14)) {
                                Store(0x1, UM61)
                                Store(0x1, UCT1)
                            }
                            Else {
                                Store(0x0, UM61)
                                Divide(Local3, 0xa, Local6, Local5)
                                Decrement(Local5)
                                Store(Local5, UCT1)
                                Store(Match(UM5T, MEQ, Local5, MTR, 0x0, 0x0), Local5)
                                Store(DerefOf(Index(CRCT, Local5, )), CRC1)
                            }
                        }
                    }
                    If(LAnd(LNot(LEqual(Local2, 0xffffffff)), LNot(LEqual(Local2, 0x0)))) {
                        If(UM61) {
                            Store(Match(DerefOf(Index(IO6T, 0x0, )), MEQ, Local2, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x1, )), Local6, )), ATT1)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x2, )), Local6, )), RCT1)
                        }
                        Else {
                            Store(Match(DerefOf(Index(IO5T, 0x0, )), MEQ, Local2, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x1, )), Local6, )), ATT1)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x2, )), Local6, )), RCT1)
                            Store(DerefOf(Index(INTT, Local6, )), INI1)
                        }
                    }
                    Store(RMFL, REMP)
                }
                Device(DRV0) {
                    Name(_ADR, 0x0)
                    Method(_GTF) {
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, Local6)
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, Local7)
                        CreateByteField(Local6, 0x1, MODE)
                        CreateByteField(Local7, 0x1, UMOD)
                        Store(REMP, RMFL)
                        Store(0x0, REMP)
                        If(LNot(LEqual(ATT0, 0x0))) {
                            Add(ATT0, RCT0, Local5)
                            If(UM60) {
                                Store(Match(PIO6, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            Else {
                                Store(Match(PIO5, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            If(UDM0) {
                                If(UM60) {
                                    Store(Match(UM6T, MEQ, UCT0, MTR, 0x0, 0x0), UMOD)
                                }
                                Else {
                                    Store(Match(UM5T, MEQ, UCT0, MTR, 0x0, 0x0), UMOD)
                                }
                                Or(UMOD, 0x40, UMOD)
                            }
                            Else {
                                Store(DerefOf(Index(DMAT, MODE, )), UMOD)
                                Or(UMOD, 0x20, UMOD)
                            }
                            Or(MODE, 0x8, MODE)
                        }
                        Store(RMFL, REMP)
                        Concatenate(Local6, Local7, Local5)
                        Return(Local5)
                    }
                }
                Device(DRV1) {
                    Name(_ADR, 0x1)
                    Method(_GTF) {
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }, Local6)
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }, Local7)
                        CreateByteField(Local6, 0x1, MODE)
                        CreateByteField(Local7, 0x1, UMOD)
                        Store(REMP, RMFL)
                        Store(0x0, REMP)
                        If(LNot(LEqual(ATT1, 0x0))) {
                            Add(ATT1, RCT1, Local5)
                            If(UM61) {
                                Store(Match(PIO6, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            Else {
                                Store(Match(PIO5, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            If(UDM1) {
                                If(UM61) {
                                    Store(Match(UM6T, MEQ, UCT1, MTR, 0x0, 0x0), UMOD)
                                }
                                Else {
                                    Store(Match(UM5T, MEQ, UCT1, MTR, 0x0, 0x0), UMOD)
                                }
                                Or(UMOD, 0x40, UMOD)
                            }
                            Else {
                                Store(DerefOf(Index(DMAT, MODE, )), UMOD)
                                Or(UMOD, 0x20, UMOD)
                            }
                            Or(MODE, 0x8, MODE)
                        }
                        Store(RMFL, REMP)
                        Concatenate(Local6, Local7, Local5)
                        Return(Local5)
                    }
                }
            }
            Device(IDE1) {
                Name(_ADR, 0x1)
                Method(_GTM) {
                    Store(0xffffffff, Local0)
                    Store(0xffffffff, Local1)
                    Store(0xffffffff, Local2)
                    Store(0xffffffff, Local3)
                    Store(0x10, Local4)
                    Store(REMP, RMFL)
                    Store(0x0, REMP)
                    If(CHE1) {
                        If(LNot(LEqual(ATT2, 0x0))) {
                            Add(RCT2, 0x1, Local5)
                            Add(ATT2, 0x1, Local6)
                            Add(Local5, Local6, Local5)
                            Multiply(UM62, 0x5, Local6)
                            Subtract(0x14, Local6, Local7)
                            Multiply(Local5, Local7, Local0)
                            ShiftRight(Local0, 0x1, Local0)
                            If(LNot(LGreater(Local0, 0xb4))) {
                                Store(Local0, Local1)
                            }
                            If(IOR2) {
                                Or(Local4, 0x2, Local4)
                            }
                            If(UDM2) {
                                Add(UCT2, 0x1, Local5)
                                Multiply(Local5, Local7, Local6)
                                ShiftRight(Local6, 0x1, Local1)
                                Or(Local4, 0x1, Local4)
                            }
                        }
                        If(LNot(LEqual(ATT3, 0x0))) {
                            Add(RCT3, 0x1, Local5)
                            Add(ATT3, 0x1, Local6)
                            Add(Local5, Local6, Local5)
                            Multiply(UM63, 0x5, Local6)
                            Subtract(0x14, Local6, Local7)
                            Multiply(Local5, Local7, Local2)
                            ShiftRight(Local2, 0x1, Local2)
                            If(LNot(LGreater(Local2, 0xb4))) {
                                Store(Local2, Local3)
                            }
                            If(IOR3) {
                                Or(Local4, 0x8, Local4)
                            }
                            If(UDM3) {
                                Add(UCT3, 0x1, Local5)
                                Multiply(Local5, Local7, Local6)
                                ShiftRight(Local6, 0x1, Local3)
                                Or(Local4, 0x4, Local4)
                            }
                        }
                    }
                    Store(RMFL, REMP)
                    Store(Local0, GTM0)
                    Store(Local1, GTM1)
                    Store(Local2, GTM2)
                    Store(Local3, GTM3)
                    Store(Local4, GTM4)
                    Return(IDEP)
                }
                Method(_STM, 3) {
                    Store(Arg0, IDEP)
                    Store(GTM0, Local0)
                    Store(GTM1, Local1)
                    Store(GTM2, Local2)
                    Store(GTM3, Local3)
                    Store(GTM4, Local4)
                    Store(REMP, RMFL)
                    Store(0x0, REMP)
                    If(LAnd(LNot(LEqual(Local1, 0xffffffff)), LNot(LEqual(Local1, 0x0)))) {
                        If(And(Local4, 0x1, )) {
                            Store(0x1, UDM2)
                            If(LLess(Local1, 0x14)) {
                                Store(0x1, UM62)
                                Store(0x1, UCT2)
                            }
                            Else {
                                Store(0x0, UM62)
                                Divide(Local1, 0xa, Local6, Local5)
                                Decrement(Local5)
                                Store(Local5, UCT2)
                                Store(Match(UM5T, MEQ, Local5, MTR, 0x0, 0x0), Local5)
                                Store(DerefOf(Index(CRCT, Local5, )), CRC2)
                            }
                        }
                    }
                    If(LAnd(LNot(LEqual(Local0, 0xffffffff)), LNot(LEqual(Local0, 0x0)))) {
                        If(UM62) {
                            Store(Match(DerefOf(Index(IO6T, 0x0, )), MEQ, Local0, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x1, )), Local6, )), ATT2)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x2, )), Local6, )), RCT2)
                        }
                        Else {
                            Store(Match(DerefOf(Index(IO5T, 0x0, )), MEQ, Local0, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x1, )), Local6, )), ATT2)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x2, )), Local6, )), RCT2)
                            Store(DerefOf(Index(INTT, Local6, )), INI2)
                        }
                    }
                    If(LAnd(LNot(LEqual(Local3, 0xffffffff)), LNot(LEqual(Local3, 0x0)))) {
                        If(And(Local4, 0x4, )) {
                            Store(0x1, UDM3)
                            If(LLess(Local3, 0x14)) {
                                Store(0x1, UM63)
                                Store(0x1, UCT3)
                            }
                            Else {
                                Store(0x0, UM63)
                                Divide(Local3, 0xa, Local6, Local5)
                                Decrement(Local5)
                                Store(Local5, UCT3)
                                Store(Match(UM5T, MEQ, Local5, MTR, 0x0, 0x0), Local5)
                                Store(DerefOf(Index(CRCT, Local5, )), CRC3)
                            }
                        }
                    }
                    If(LAnd(LNot(LEqual(Local2, 0xffffffff)), LNot(LEqual(Local2, 0x0)))) {
                        If(UM63) {
                            Store(Match(DerefOf(Index(IO6T, 0x0, )), MEQ, Local2, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x1, )), Local6, )), ATT3)
                            Store(DerefOf(Index(DerefOf(Index(IO6T, 0x2, )), Local6, )), RCT3)
                        }
                        Else {
                            Store(Match(DerefOf(Index(IO5T, 0x0, )), MEQ, Local2, MTR, 0x0, 0x0), Local6)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x1, )), Local6, )), ATT3)
                            Store(DerefOf(Index(DerefOf(Index(IO5T, 0x2, )), Local6, )), RCT3)
                            Store(DerefOf(Index(INTT, Local6, )), INI3)
                        }
                    }
                    Store(RMFL, REMP)
                }
                Device(DRV0) {
                    Name(_ADR, 0x0)
                    Method(_GTF) {
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, Local6)
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, Local7)
                        CreateByteField(Local6, 0x1, MODE)
                        CreateByteField(Local7, 0x1, UMOD)
                        Store(REMP, RMFL)
                        Store(0x0, REMP)
                        If(LNot(LEqual(ATT2, 0x0))) {
                            Add(ATT2, RCT2, Local5)
                            If(UM62) {
                                Store(Match(PIO6, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            Else {
                                Store(Match(PIO5, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            If(UDM2) {
                                If(UM62) {
                                    Store(Match(UM6T, MEQ, UCT2, MTR, 0x0, 0x0), UMOD)
                                }
                                Else {
                                    Store(Match(UM5T, MEQ, UCT2, MTR, 0x0, 0x0), UMOD)
                                }
                                Or(UMOD, 0x40, UMOD)
                            }
                            Else {
                                Store(DerefOf(Index(DMAT, MODE, )), UMOD)
                                Or(UMOD, 0x20, UMOD)
                            }
                            Or(MODE, 0x8, MODE)
                        }
                        Store(RMFL, REMP)
                        Concatenate(Local6, Local7, Local5)
                        Return(Local5)
                    }
                }
                Device(DRV1) {
                    Name(_ADR, 0x1)
                    Method(_GTF) {
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }, Local6)
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }, Local7)
                        CreateByteField(Local6, 0x1, MODE)
                        CreateByteField(Local7, 0x1, UMOD)
                        Store(REMP, RMFL)
                        Store(0x0, REMP)
                        If(LNot(LEqual(ATT3, 0x0))) {
                            Add(ATT3, RCT3, Local5)
                            If(UM63) {
                                Store(Match(PIO6, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            Else {
                                Store(Match(PIO5, MEQ, Local5, MTR, 0x0, 0x0), MODE)
                            }
                            If(UDM3) {
                                If(UM63) {
                                    Store(Match(UM6T, MEQ, UCT3, MTR, 0x0, 0x0), UMOD)
                                }
                                Else {
                                    Store(Match(UM5T, MEQ, UCT3, MTR, 0x0, 0x0), UMOD)
                                }
                                Or(UMOD, 0x40, UMOD)
                            }
                            Else {
                                Store(DerefOf(Index(DMAT, MODE, )), UMOD)
                                Or(UMOD, 0x20, UMOD)
                            }
                            Or(MODE, 0x8, MODE)
                        }
                        Store(RMFL, REMP)
                        Concatenate(Local6, Local7, Local5)
                        Return(Local5)
                    }
                }
            }
        }
        Device(USB1) {
            Name(_ADR, 0x00030000)
            Method(USXD) {
                If(OSFL) {
                    Return(0x2)
                }
                Else {
                    Return(0x3)
                }
            }
            Method(_PRW) {
                If(OSFL) {
                    Return(Package(0x2) {
                        0xe,
                        0x4,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0xe,
                        0x3,
                    })
                }
            }
            Scope(\_GPE) {
                Method(_L0E) {
                    Notify(\_SB_.PCI0.USB1, 0x2)
                }
            }
        }
        Device(USB2) {
            Name(_ADR, 0x00030001)
            Method(USXD) {
                If(OSFL) {
                    Return(0x2)
                }
                Else {
                    Return(0x3)
                }
            }
            Method(_PRW) {
                If(OSFL) {
                    Return(Package(0x2) {
                        0x4,
                        0x4,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0x4,
                        0x3,
                    })
                }
            }
            Scope(\_GPE) {
                Method(_L04) {
                    Notify(\_SB_.PCI0.USB2, 0x2)
                }
            }
        }
        Device(USB3) {
            Name(_ADR, 0x00030002)
            Method(USXD) {
                If(OSFL) {
                    Return(0x2)
                }
                Else {
                    Return(0x3)
                }
            }
            Method(_PRW) {
                If(OSFL) {
                    Return(Package(0x2) {
                        0x7,
                        0x4,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0x7,
                        0x3,
                    })
                }
            }
            Scope(\_GPE) {
                Method(_L07) {
                    Notify(\_SB_.PCI0.USB3, 0x2)
                }
            }
        }
        Device(USB4) {
            Name(_ADR, 0x00030003)
            Method(USXD) {
                If(OSFL) {
                    Return(0x2)
                }
                Else {
                    Return(0x3)
                }
            }
            Method(_PRW) {
                If(OSFL) {
                    Return(Package(0x2) {
                        0x6,
                        0x4,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0x6,
                        0x3,
                    })
                }
            }
            Scope(\_GPE) {
                Method(_L06) {
                    Notify(\_SB_.PCI0.USB4, 0x2)
                }
            }
        }
        Device(S139) {
            Name(_ADR, 0x00020003)
            Name(_PRW, Package(0x2) {
                0x3,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L03) {
                    Notify(\_SB_.PCI0.S139, 0x2)
                }
            }
        }
        Device(LAN_) {
            Name(_ADR, 0x00040000)
            Name(_PRW, Package(0x2) {
                0xc,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L0C) {
                    Notify(\_SB_.PCI0.LAN_, 0x2)
                }
            }
        }
        Device(MDM_) {
            Name(_ADR, 0x00020006)
            Name(_PRW, Package(0x2) {
                0x5,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L05) {
                    Notify(\_SB_.PCI0.MDM_, 0x2)
                }
            }
        }
        Device(AUD_) {
            Name(_ADR, 0x00020007)
            Name(_PRW, Package(0x2) {
                0xa,
                0x4,
            })
            Scope(\_GPE) {
                Method(_L0A) {
                    Notify(\_SB_.PCI0.AUD_, 0x2)
                }
            }
        }
        Name(_PRW, Package(0x2) {
            0xb,
            0x4,
        })
        Scope(\_GPE) {
            Method(_L0B) {
                Notify(\_SB_.PCI0, 0x2)
            }
        }
    }
}
OperationRegion(FNOR, SystemIO, 0x0434, 0x4)
OperationRegion(SIOR, SystemIO, 0x0370, 0x2)
Field(SIOR, ByteAcc, NoLock, Preserve) {
    SIND,	8,
    SDTA,	8
}
OperationRegion(SLED, SystemIO, 0x0862, 0x1)
Field(SLED, ByteAcc, NoLock, Preserve) {
    ,	6,
    R062,	2
}
Scope(_SI_) {
    Method(_SST, 1) {
        If(Arg0) {
            If(LEqual(Arg0, 0x1)) {
                Store(0x0, R062)
            }
            If(LEqual(Arg0, 0x2)) {
                Store(0x0, R062)
            }
            If(LEqual(Arg0, 0x3)) {
                Store(0x1, R062)
            }
            If(LEqual(Arg0, 0x4)) {
                Store(0x2, R062)
            }
        }
        Else {
            Store(0x0, R062)
        }
    }
}
Method(_PTS, 1) {
    Store(Arg0, DBG8)
    If(LNot(LEqual(Arg0, 0x4))) {
        Or(Arg0, 0xa0, Local0)
        Store(Local0, P48_)
    }
    Or(P42_, 0x40, P42_)
    Store(\_SB_.PCI0.OSFL, P49_)
}
Method(_WAK, 1) {
    ShiftLeft(Arg0, 0x4, DBG8)
    If(LEqual(Arg0, 0x1)) {
        And(RTCE, RTC1, RTCE)
        If(RTCE) {
            Store(0xc1, DBG8)
        }
        Else {
            Notify(\_SB_.PWRB, 0x2)
            Sleep(0x0294)
        }
    }
    Else {
        If(RTC3) {
            Store(0xc3, DBG8)
        }
        Else {
            Notify(\_SB_.PWRB, 0x2)
            Sleep(0x0294)
        }
    }
    If(LNot(LEqual(Arg0, 0x4))) {
        Add(Arg0, 0x6, Local0)
        Or(Local0, 0xa0, Local0)
        Store(Local0, P48_)
    }
}
OperationRegion(PR48, SystemIO, 0x0848, 0x1)
Field(PR48, ByteAcc, NoLock, Preserve) {
    P48_,	8
}
OperationRegion(PR42, SystemIO, 0x0842, 0x1)
Field(PR42, ByteAcc, NoLock, Preserve) {
    P42_,	8
}
OperationRegion(PR49, SystemIO, 0x0849, 0x1)
Field(PR49, ByteAcc, NoLock, Preserve) {
    P49_,	8
}
OperationRegion(PP49, SystemIO, 0x0849, 0x1)
Field(PP49, ByteAcc, NoLock, Preserve) {
    ,	1,
    RTCE,	1
}
OperationRegion(S1WK, SystemIO, 0x0800, 0x2)
Field(S1WK, ByteAcc, NoLock, Preserve) {
    ,	10,
    RTC1,	1
}
OperationRegion(S3WK, SystemIO, 0x0860, 0x2)
Field(S3WK, ByteAcc, NoLock, Preserve) {
    ,	14,
    RTC3,	1
}
OperationRegion(TEMP, SystemIO, 0x80, 0x1)
Field(TEMP, ByteAcc, NoLock, Preserve) {
    DBG8,	8
}
OperationRegion(DEB0, SystemIO, 0x90, 0x2)
Field(DEB0, WordAcc, NoLock, Preserve) {
    DBG9,	16
}

}
/*
APIC: Length=92, Revision=1, Checksum=19,
	OEMID=AMIINT, OEM Table ID=SiS645XX, OEM Revision=0x1000,
	Creator ID=MSFT, Creator Revision=0x100000b
 */
/*
	Local APIC ADDR=0xfee00000
	Flags={PC-AT}

	Type=Local APIC
	ACPI CPU=1
	Flags={ENABLED}
	APIC ID=0

	Type=Local APIC
	ACPI CPU=2
	Flags={ENABLED}
	APIC ID=1

	Type=IO APIC
	APIC ID=2
	INT BASE=0
	ADDR=0xfec00000

	Type=INT Override
	BUS=0
	IRQ=0
	INTR=2
	Flags={Polarity=conforming, Trigger=conforming}

	Type=INT Override
	BUS=0
	IRQ=9
	INTR=9
	Flags={Polarity=active-lo, Trigger=level}
 */


	The motherboard BIOS supports mptable-1.4
	
>Description:
	During the boot process, the "APIC_IO: Testing" message is displayed on
	the console and then nothing else appears to happen. The boot never
	completes.
>How-To-Repeat:
	Re-boot with SMP/APIC enabled kernel.
	
>Fix:

	


>Release-Note:
>Audit-Trail:
>Unformatted:



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