SIO Interrupt storms and unhanded interrupts
Mike Tancsa
mike at sentex.net
Wed Sep 8 16:23:41 PDT 2004
I think we have been bouncing around this issue for the past few months
both on RELENG_4 and now RELENG_5. In the past it has been somewhat
difficult to reproduce, but now we can do it reliably. I dont think its
a hardware issue as I can take the exact same 2 boxes with the exact same
IRQ assignments and boot with OpenBSD and not run into an interrupt storm
or freeze up the box. Swap back the RELENG_4 or RELENG_5 HD and again, I
can produce an interrupt storm at will.
I can also reproduce it on 2 different chipsets as well (VIA and
Intel). The problem seems to be around how a PUC device (either a PCI
modem or a PCI serial card) and the sharing of an interrupt (usually an USB
controller, but not always).
On RELENG_4, the box just locks up in a race trying to service an interrupt
on IRQ 12 but remains unhandled.
On RELENG_5, I actually catch an interrupt storm. e.g. I attach to sio4
(PUC modem) and
Interrupt storm detected on "irq12: uhci1"; throttling interrupt source
Looking at vmstat -i does indeed show a the rate getting throttled
releng-5-pioneer# vmstat -i
interrupt total rate
irq0: clk 596719 99
irq1: atkbd0 2 0
irq4: sio0 1079 0
irq6: fdc0 1 0
irq8: rtc 763812 127
irq12: uhci1 5825 0
irq13: npx0 1 0
irq14: ata0 38727 6
irq15: vr0 ata1 1984 0
Total 1408150 235
releng-5-pioneer#
where irq12 is the IRQ shared by the modem and the USB port. However,
because all IRQ 12s get throttled, the modem is unusable. e.g. trying to cu
-l /dev/cuaa4 and typing atz takes about 5 seconds.
Is there some way to safely tell the kernel that the PUC device that its
shareable ? We did this perhaps very ugly hack on RELENG_4
@@ -1431,15 +1431,19 @@
rid = 0;
com->irqres = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0ul, ~0ul, 1,
- RF_ACTIVE);
+/* RF_ACTIVE); */
+ RF_SHAREABLE);
to /usr/src/sys/isa/sio.c
and at least we can talk to the sio device. However, on RELENG_5 there
does not seem to be the same fix.
My question is this-- Is the root cause the same issue on RELENG_4 and
RELENG_5 ? Are we going about it the best way to fix the problem ? Or is
the underlying problem something else ?
Attached is a dmesg and acpidump
---Mike
--------------------------------------------------------------------
Mike Tancsa, tel +1 519 651 3400
Sentex Communications, mike at sentex.net
Providing Internet since 1994 www.sentex.net
Cambridge, Ontario Canada www.sentex.net/mike
-------------- next part --------------
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.3-BETA3 #1: Wed Sep 8 18:54:01 EDT 2004
mdtancsa at releng-5-pioneer.sentex.ca:/usr/obj/usr/src/sys/pioneer
Preloaded elf kernel "/boot/kernel/kernel" at 0xc082c000.
Preloaded elf module "/boot/modules/acpi.ko" at 0xc082c1d8.
Calibrating clock(s) ... i8254 clock: 1193179 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 1002280114 Hz
CPU: VIA C3 Nehemiah (1002.28-MHz 686-class CPU)
Origin = "CentaurHauls" Id = 0x691 Stepping = 1
Features=0x380b035<FPU,DE,TSC,MSR,MTRR,PGE,CMOV,MMX,FXSR,SSE>
real memory = 251592704 (239 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009ffff, 651264 bytes (159 pages)
0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages)
0x0000000000c26000 - 0x000000000eb87fff, 234233856 bytes (57186 pages)
avail memory = 236654592 (225 MB)
bios32: Found BIOS32 Service Directory header at 0xc00fab90
bios32: Entry = 0xfb000 (c00fb000) Rev = 0 Len = 1
pcibios: PCI BIOS entry at 0xf0000+0xb050
pnpbios: Found PnP BIOS data at 0xc00fba50
pnpbios: Entry = f0000:ba80 Rev = 1.0
Other BIOS signatures found:
null: <null device, zero device>
random: <entropy source, Software, Yarrow>
ichwd module loaded
io: <I/O>
mem: <memory>
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <VT9174 AWRDACPI> on motherboard
acpi0: [MPSAFE]
pci_open(1): mode 1 addr port (0x0cf8) is 0x80000060
pci_open(1a): mode1res=0x80000000 (0x80000000)
pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=31231106)
pcibios: BIOS version 2.10
Found $PIR table, 7 entries at 0xc00fdeb0
PCI-Only Interrupts: 7 11 12 15
Location Bus Device Pin Link IRQs
slot 1 0 20 A 0x02 3 4 5 7 9 10 11 12 14 15
slot 1 0 20 B 0x03 3 4 5 7 9 10 11 12 14 15
slot 1 0 20 C 0x05 3 4 5 7 9 10 11 12 14 15
slot 1 0 20 D 0x01 3 4 5 7 9 10 11 12 14 15
slot 2 0 19 A 0x05 3 4 5 7 9 10 11 12 14 15
slot 2 0 19 B 0x01 3 4 5 7 9 10 11 12 14 15
slot 2 0 19 C 0x02 3 4 5 7 9 10 11 12 14 15
slot 2 0 19 D 0x03 3 4 5 7 9 10 11 12 14 15
embedded 0 1 A 0x01 3 4 5 7 9 10 11 12 14 15
embedded 0 1 B 0x02 3 4 5 7 9 10 11 12 14 15
embedded 0 1 C 0x03 3 4 5 7 9 10 11 12 14 15
embedded 0 1 D 0x05 3 4 5 7 9 10 11 12 14 15
embedded 0 16 A 0x01 3 4 5 7 9 10 11 12 14 15
embedded 0 16 B 0x02 3 4 5 7 9 10 11 12 14 15
embedded 0 16 C 0x03 3 4 5 7 9 10 11 12 14 15
embedded 0 16 D 0x05 3 4 5 7 9 10 11 12 14 15
embedded 0 17 A 0x01 3 4 5 7 9 10 11 12 14 15
embedded 0 17 C 0x03 3 4 5 7 9 10 11 12 14 15
embedded 0 18 A 0x01 3 4 5 7 9 10 11 12 14 15
embedded 0 15 A 0x05 3 4 5 7 9 10 11 12 14 15
embedded 0 15 B 0x01 3 4 5 7 9 10 11 12 14 15
embedded 0 15 C 0x02 3 4 5 7 9 10 11 12 14 15
embedded 0 15 D 0x03 3 4 5 7 9 10 11 12 14 15
AcpiOsDerivePciId: bus 0 dev 10 func 0
AcpiOsDerivePciId: bus 0 dev 10 func 1
AcpiOsDerivePciId: bus 0 dev 17 func 0
acpi0: Power Button (fixed)
ACPI timer looks BAD min = 2, max = 5, width = 3
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
ACPI timer looks GOOD min = 2, max = 3, width = 1
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
unknown: not probed (disabled)
cpu0: <ACPI CPU (3 Cx states)> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
ACPI PCI link initial configuration:
\\_SB_.PCI0.LNKB irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 12+ low,level,sharable 0.20.0
\\_SB_.PCI0.LNKC irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 7+ low,level,sharable 0.20.1
\\_SB_.PCI0.LNKD irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 15+ low,level,sharable 0.20.2
\\_SB_.PCI0.LNKA irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 0.20.3
\\_SB_.PCI0.LNKD irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 15+ low,level,sharable 0.19.0
\\_SB_.PCI0.LNKA irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 0.19.1
\\_SB_.PCI0.LNKB irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 12+ low,level,sharable 0.19.2
\\_SB_.PCI0.LNKC irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 7+ low,level,sharable 0.19.3
\\_SB_.PCI0.LNKA irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 0.16.0
\\_SB_.PCI0.LNKB irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 12+ low,level,sharable 0.16.1
\\_SB_.PCI0.LNKC irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 7+ low,level,sharable 0.16.2
\\_SB_.PCI0.LNKD irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 15+ low,level,sharable 0.16.3
\\_SB_.PCI0.LNKA irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 0.17.0
\\_SB_.PCI0.LNKC irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 7+ low,level,sharable 0.17.2
\\_SB_.PCI0.LNKA irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 0.18.0
\\_SB_.PCI0.LNKD irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 15+ low,level,sharable 0.15.0
\\_SB_.PCI0.LNKA irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 0.15.1
\\_SB_.PCI0.LNKB irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 12+ low,level,sharable 0.15.2
\\_SB_.PCI0.LNKC irq 0: [ 1 3 4 5 6 7 10 11 12 14 15] 7+ low,level,sharable 0.15.3
pci0: <ACPI PCI bus> on pcib0
pci0: physical bus=0
map[10]: type 3, range 32, base e6000000, size 22, enabled
found-> vendor=0x1106, dev=0x3123, revid=0x00
bus=0, slot=0, func=0
class=06-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x2230, cachelnsz=0 (dwords)
lattimer=0x08 (240 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
powerspec 2 supports D0 D3 current D0
found-> vendor=0x1106, dev=0xb091, revid=0x00
bus=0, slot=1, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0107, statreg=0xa230, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x0c (3000 ns), maxlat=0x00 (0 ns)
map[10]: type 4, range 32, base 0000d000, size 8, enabled
map[14]: type 1, range 32, base e6400000, size 8, enabled
pcib0: matched entry for 0.15.INTA (src \\_SB_.PCI0.LNKD)
pcib0: possible interrupts: 1 3 4 5 6 7 10 11 12 14 15
ACPI PCI link arbitrated settings:
\\_SB_.PCI0.LNKA (references 6, priority 123894):
interrupts: 11 10 5 12 7 6 4 3 15 14 1
penalty: 190 190 240 5190 5190 5190 5190 5190 50190 50190100190
\\_SB_.PCI0.LNKC (references 5, priority 103245):
interrupts: 11 10 5 12 7 6 4 3 15 14 1
penalty: 190 190 240 5190 5190 5190 5190 5190 50190 50190100190
\\_SB_.PCI0.LNKB (references 4, priority 82596):
interrupts: 11 10 5 12 7 6 4 3 15 14 1
penalty: 190 190 240 5190 5190 5190 5190 5190 50190 50190100190
\\_SB_.PCI0.LNKD (references 4, priority 82596):
interrupts: 11 10 5 12 7 6 4 3 15 14 1
penalty: 190 190 240 5190 5190 5190 5190 5190 50190 50190100190
pcib0: slot 15 INTA routed to irq 15 via \\_SB_.PCI0.LNKD
found-> vendor=0x1106, dev=0x3106, revid=0x8b
bus=0, slot=15, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
lattimer=0x20 (960 ns), mingnt=0x03 (750 ns), maxlat=0x08 (2000 ns)
intpin=a, irq=15
powerspec 2 supports D0 D1 D2 D3 current D0
map[20]: type 4, range 32, base 0000d400, size 5, enabled
pcib0: matched entry for 0.16.INTA (src \\_SB_.PCI0.LNKA)
pcib0: possible interrupts: 1 3 4 5 6 7 10 11 12 14 15
ACPI PCI link arbitrated settings:
\\_SB_.PCI0.LNKA (references 6, priority 125056):
interrupts: 11 10 5 12 7 6 4 3 14 15 1
penalty: 380 380 430 5380 5380 5380 5380 5380 50380 50420100380
\\_SB_.PCI0.LNKC (references 5, priority 104213):
interrupts: 11 10 5 12 7 6 4 3 14 15 1
penalty: 380 380 430 5380 5380 5380 5380 5380 50380 50420100380
\\_SB_.PCI0.LNKB (references 4, priority 83370):
interrupts: 11 10 5 12 7 6 4 3 14 15 1
penalty: 380 380 430 5380 5380 5380 5380 5380 50380 50420100380
pcib0: slot 16 INTA routed to irq 11 via \\_SB_.PCI0.LNKA
found-> vendor=0x1106, dev=0x3038, revid=0x80
bus=0, slot=16, func=0
class=0c-03-00, hdrtype=0x00, mfdev=1
cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
map[20]: type 4, range 32, base 0000d800, size 5, enabled
pcib0: matched entry for 0.16.INTB (src \\_SB_.PCI0.LNKB)
pcib0: possible interrupts: 1 3 4 5 6 7 10 11 12 14 15
ACPI PCI link arbitrated settings:
\\_SB_.PCI0.LNKC (references 5, priority 105190):
interrupts: 10 5 11 12 7 6 4 3 14 15 1
penalty: 570 620 630 5570 5570 5570 5570 5570 50570 50610100570
\\_SB_.PCI0.LNKB (references 4, priority 84152):
interrupts: 10 5 11 12 7 6 4 3 14 15 1
penalty: 570 620 630 5570 5570 5570 5570 5570 50570 50610100570
pcib0: slot 16 INTB routed to irq 12 via \\_SB_.PCI0.LNKB
found-> vendor=0x1106, dev=0x3038, revid=0x80
bus=0, slot=16, func=1
class=0c-03-00, hdrtype=0x00, mfdev=1
cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=12
powerspec 2 supports D0 D1 D2 D3 current D0
map[20]: type 4, range 32, base 0000dc00, size 5, enabled
pcib0: matched entry for 0.16.INTC (src \\_SB_.PCI0.LNKC)
pcib0: possible interrupts: 1 3 4 5 6 7 10 11 12 14 15
ACPI PCI link arbitrated settings:
\\_SB_.PCI0.LNKC (references 5, priority 106159):
interrupts: 10 5 11 7 6 4 3 12 14 15 1
penalty: 760 810 820 5760 5760 5760 5760 5800 50760 50800100760
pcib0: slot 16 INTC routed to irq 7 via \\_SB_.PCI0.LNKC
found-> vendor=0x1106, dev=0x3038, revid=0x80
bus=0, slot=16, func=2
class=0c-03-00, hdrtype=0x00, mfdev=1
cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=c, irq=7
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type 1, range 32, base e6401000, size 8, enabled
pcib0: matched entry for 0.16.INTD (src \\_SB_.PCI0.LNKD)
pcib0: slot 16 INTD is already routed to irq 15
found-> vendor=0x1106, dev=0x3104, revid=0x82
bus=0, slot=16, func=3
class=0c-03-20, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=d, irq=15
powerspec 2 supports D0 D1 D2 D3 current D0
found-> vendor=0x1106, dev=0x3177, revid=0x00
bus=0, slot=17, func=0
class=06-01-00, hdrtype=0x00, mfdev=1
cmdreg=0x0087, statreg=0x0210, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
powerspec 2 supports D0 D3 current D0
map[20]: type 4, range 32, base 0000e000, size 4, enabled
found-> vendor=0x1106, dev=0x0571, revid=0x06
bus=0, slot=17, func=1
class=01-01-8a, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=255
powerspec 2 supports D0 D3 current D0
map[10]: type 4, range 32, base 0000e400, size 8, enabled
map[14]: type 1, range 32, base e6402000, size 8, enabled
pcib0: matched entry for 0.18.INTA (src \\_SB_.PCI0.LNKA)
pcib0: slot 18 INTA is already routed to irq 11
found-> vendor=0x1106, dev=0x3065, revid=0x74
bus=0, slot=18, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
lattimer=0x20 (960 ns), mingnt=0x03 (750 ns), maxlat=0x08 (2000 ns)
intpin=a, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type 4, range 32, base 0000e800, size 3, enabled
pcib0: matched entry for 0.20.INTA (src \\_SB_.PCI0.LNKB)
pcib0: slot 20 INTA is already routed to irq 12
found-> vendor=0x151f, dev=0x0000, revid=0x00
bus=0, slot=20, func=0
class=07-80-00, hdrtype=0x00, mfdev=0
cmdreg=0x0001, statreg=0x0200, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=12
agp0: <VIA Generic host to PCI bridge> mem 0xe6000000-0xe63fffff at device 0.0 on pci0
agp0: Reserved 0x400000 bytes for rid 0x10 type 3 at 0xe6000000
agp0: allocating GATT for aperture of size 228M
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pcib1: secondary bus 1
pcib1: subordinate bus 1
pcib1: I/O decode 0xf000-0xfff
pcib1: memory decode 0xe4000000-0xe5ffffff
pcib1: prefetched decode 0xe0000000-0xe3ffffff
ACPI PCI link initial configuration:
\\_SB_.PCI0.LNKA irq*11: [ 1 3 4 5 6 7 10 11 12 14 15] 11+ low,level,sharable 1.0.0
\\_SB_.PCI0.LNKB irq*12: [ 1 3 4 5 6 7 10 11 12 14 15] 12+ low,level,sharable 1.0.1
\\_SB_.PCI0.LNKC irq* 7: [ 1 3 4 5 6 7 10 11 12 14 15] 7+ low,level,sharable 1.0.2
\\_SB_.PCI0.LNKD irq*15: [ 1 3 4 5 6 7 10 11 12 14 15] 15+ low,level,sharable 1.0.3
pci1: <ACPI PCI bus> on pcib1
pci1: physical bus=1
map[10]: type 3, range 32, base e0000000, size 26, enabled
pcib1: device (null) requested decoded memory range 0xe0000000-0xe3ffffff
map[14]: type 1, range 32, base e4000000, size 24, enabled
pcib1: device (null) requested decoded memory range 0xe4000000-0xe4ffffff
pcib1: matched entry for 1.0.INTA (src \\_SB_.PCI0.LNKA)
pcib1: slot 0 INTA is already routed to irq 11
found-> vendor=0x1106, dev=0x3122, revid=0x03
bus=1, slot=0, func=0
class=03-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x02 (500 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
pci1: <display, VGA> at device 0.0 (no driver attached)
vr0: <VIA VT6105 Rhine III 10/100BaseTX> port 0xd000-0xd0ff mem 0xe6400000-0xe64000ff irq 15 at device 15.0 on pci0
vr0: Reserved 0x100 bytes for rid 0x10 type 4 at 0xd000
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: OUI 0x004063, model 0x0034, rev. 9
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: bpf attached
vr0: Ethernet address: 00:40:63:c9:fa:99
vr0: [MPSAFE]
uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 11 at device 16.0 on pci0
uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd400
uhci0: [GIANT-LOCKED]
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xd800-0xd81f irq 12 at device 16.1 on pci0
uhci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd800
uhci1: [GIANT-LOCKED]
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhid0: APC Back-UPS ES 500 FW:801.e5.D USB FW:e5, rev 1.10/1.06, addr 2, iclass 3/0
uhci2: <VIA 83C572 USB controller> port 0xdc00-0xdc1f irq 7 at device 16.2 on pci0
uhci2: Reserved 0x20 bytes for rid 0x20 type 4 at 0xdc00
uhci2: [GIANT-LOCKED]
usb2: <VIA 83C572 USB controller> on uhci2
usb2: USB revision 1.0
uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
pci0: <serial bus, USB> at device 16.3 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8235 UDMA133 controller> port 0xe000-0xe00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 17.1 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xe000
ata0: channel #0 on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0-master: stat=0x90 err=0x90 lsb=0x90 msb=0x90
ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0-slave: stat=0x00 err=0x01 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ata0: [MPSAFE]
ata1: channel #1 on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=00 ostat0=ff ostat1=ff
ata1: [MPSAFE]
vr1: <VIA VT6102 Rhine II 10/100BaseTX> port 0xe400-0xe4ff mem 0xe6402000-0xe64020ff irq 11 at device 18.0 on pci0
vr1: Reserved 0x100 bytes for rid 0x10 type 4 at 0xe400
miibus1: <MII bus> on vr1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1: OUI 0x004063, model 0x0032, rev. 5
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr1: bpf attached
vr1: Ethernet address: 00:40:63:c9:fa:98
vr1: [MPSAFE]
sio0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xe800
sio0: irq maps: 0x1 0x1001 0x1 0x1
sio0: <SmartLink 5634PCV SurfRider> port 0xe800-0xe807 irq 12 at device 20.0 on pci0
sio0: moving to sio4
sio4: type 16550A
fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
sio0: irq maps: 0x1 0x11 0x1 0x1
can't re-use a leaf (%desc)!
can't re-use a leaf (%driver)!
can't re-use a leaf (%location)!
can't re-use a leaf (%pnpinfo)!
can't re-use a leaf (%parent)!
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A, console
sio1: irq maps: 0x1 0x9 0x1 0x1
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
unknown: not probed (disabled)
unknown: not probed (disabled)
unknown: not probed (disabled)
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0067
atkbd: keyboard ID 0x41ab (2)
kbd0 at atkbd0
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x1d0000
atkbd0: [GIANT-LOCKED]
psm0: unable to allocate IRQ
unknown: not probed (disabled)
sio2: irq maps: 0x1 0x21 0x1 0x1
sio2 port 0x3e8-0x3ef irq 5 on acpi0
sio2: type 16550A
sio3: irq maps: 0x1 0x401 0x1 0x1
sio3 port 0x2e8-0x2ef irq 10 on acpi0
sio3: type 16550A
unknown: not probed (disabled)
unknown: not probed (disabled)
unknown: not probed (disabled)
unknown: not probed (disabled)
unknown: not probed (disabled)
ata: ata0 already exists; skipping it
ata: ata1 already exists; skipping it
atkbdc: atkbdc0 already exists; skipping it
fdc: fdc0 already exists; skipping it
sc: sc0 already exists; skipping it
sio: sio0 already exists; skipping it
sio: sio1 already exists; skipping it
sio: sio2 already exists; skipping it
sio: sio3 already exists; skipping it
vga: vga0 already exists; skipping it
Trying Read_Port at 203
Trying Read_Port at 243
Trying Read_Port at 283
Trying Read_Port at 2c3
Trying Read_Port at 303
Trying Read_Port at 343
Trying Read_Port at 383
Trying Read_Port at 3c3
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
orm0: <ISA Option ROM> at iomem 0xc0000-0xcdfff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x0>
sc0: fb0, kbd0, terminal emulator: sc (syscons terminal)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
fb0: vga0, vga, type:VGA (5), flags:0x7007f
fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000
fb0: init mode:24, bios mode:3, current mode:24
fb0: window:0xc00b8000 size:32k gran:32k, buf:0 size:32k
VGA parameters upon power-up
50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 55 81
bf 1f 00 4f 0e 0f 00 00 07 80 9c ee 8f 28 1f 96
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff
VGA parameters in BIOS for mode 24
50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81
bf 1f 00 4f 0d 0e 00 00 00 00 9c 6e 8f 28 1f 96
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff
EGA/VGA parameters to be used for mode 24
50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 55 81
bf 1f 00 4f 0e 0f 00 00 07 80 9c ee 8f 28 1f 96
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff
adv0: not probed (disabled)
aha0: not probed (disabled)
aic0: not probed (disabled)
bt0: not probed (disabled)
cs0: not probed (disabled)
ed0: not probed (disabled)
fe0: not probed (disabled)
ie0: not probed (disabled)
lnc0: not probed (disabled)
pcic0 failed to probe at port 0x3e0 iomem 0xd0000 on isa0
pcic1: not probed (disabled)
ppc0 failed to probe at irq 7 on isa0
sn0: not probed (disabled)
vt0: not probed (disabled)
isa_probe_children: probing PnP devices
Device configuration finished.
procfs registered
Timecounter "TSC" frequency 1002280114 Hz quality 800
Timecounters tick every 10.000 msec
ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to accept, logging limited to 2100 packets/entry by default
lo0: bpf attached
cpu0: set speed to 100.0%
acpi_cpu: throttling enabled, 2 steps (100% to 50.0%), currently 100.0%
ata0-master: pio=0x0c wdma=0x22 udma=0x45 cable=80pin
ata0-master: setting PIO4 on VIA 8235 chip
ata0-master: setting UDMA100 on VIA 8235 chip
ad0: <ST340014A/3.06> ATA-6 disk at ata0-master
ad0: 38166MB (78165360 sectors), 77545 C, 16 H, 63 S, 512 B
ad0: 16 secs/int, 1 depth queue, UDMA100
GEOM: new disk ad0
ar: FreeBSD check1 failed
[0] f:80 typ:165 s(CHS):0/1/1 e(CHS):1023/254/63 s:63 l:78156162
[1] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
[2] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
[3] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
GEOM: Configure ad0s1, start 32256 length 40015954944 end 40015987199
GEOM: Configure ad0s1a, start 0 length 524288000 end 524287999
GEOM: Configure ad0s1b, start 524288000 length 1073741824 end 1598029823
GEOM: Configure ad0s1c, start 0 length 40015954944 end 40015954943
GEOM: Configure ad0s1d, start 1598029824 length 2147483648 end 3745513471
GEOM: Configure ad0s1e, start 3745513472 length 21474836480 end 25220349951
GEOM: Configure ad0s1f, start 25220349952 length 14795604992 end 40015954943
Mounting root from ufs:/dev/ad0s1a
start_init: trying /sbin/init
-------------- next part --------------
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20040527
*
* Disassembly of /tmp/acpidump.5bh0ZF, Wed Sep 8 19:16:35 2004
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "VT9174", "AWRDACPI", 4096)
{
Scope (\_PR)
{
Processor (\_PR.CPU0, 0x00, 0x00000410, 0x06) {}
}
Name (U3DX, 0x00)
Name (U4DX, 0x00)
Name (U5DX, 0x00)
Name (U6DX, 0x00)
Name (\_S0, Package (0x04)
{
0x00,
0x00,
0x00,
0x00
})
Name (\_S1, Package (0x04)
{
0x04,
0x04,
0x04,
0x04
})
Name (\SS3, Package (0x04)
{
0x01,
0x01,
0x01,
0x01
})
Name (\_S4, Package (0x04)
{
0x02,
0x02,
0x02,
0x02
})
Name (\_S5, Package (0x04)
{
0x02,
0x02,
0x02,
0x02
})
OperationRegion (\DEBG, SystemIO, 0x80, 0x01)
Field (\DEBG, ByteAcc, NoLock, Preserve)
{
DBG1, 8
}
OperationRegion (EXTM, SystemMemory, 0x000FF830, 0x10)
Field (EXTM, WordAcc, NoLock, Preserve)
{
ROM1, 16,
RMS1, 16,
ROM2, 16,
RMS2, 16,
ROM3, 16,
RMS3, 16,
AMEM, 32
}
OperationRegion (\GPST, SystemIO, 0x0420, 0x02)
Field (\GPST, ByteAcc, NoLock, Preserve)
{
GS00, 1,
GS01, 1,
GS02, 1,
GS03, 1,
GS04, 1,
GS05, 1,
GS06, 1,
GS07, 1,
GS08, 1,
GS09, 1,
GS10, 1,
GS11, 1,
GS12, 1,
GS13, 1,
GS14, 1,
GS15, 1
}
OperationRegion (ELCR, SystemIO, 0x04D0, 0x02)
Field (ELCR, ByteAcc, NoLock, Preserve)
{
ELC1, 8,
ELC2, 8
}
OperationRegion (\PMS, SystemIO, 0x0400, 0x02)
Field (\PMS, ByteAcc, NoLock, Preserve)
{
AITS, 1,
Offset (0x01),
PBTS, 1,
, 6,
WAKE, 1
}
OperationRegion (\GPSE, SystemIO, 0x0424, 0x02)
Field (\GPSE, ByteAcc, NoLock, Preserve)
{
GPS0, 1,
GPS1, 1,
KBCE, 1,
LANE, 1,
EXTE, 1,
PME, 1,
Offset (0x01),
RING, 1,
, 5,
USBE, 1,
Offset (0x02)
}
OperationRegion (\GLOS, SystemIO, 0x0428, 0x02)
Field (\GLOS, ByteAcc, NoLock, Preserve)
{
, 6,
SSMI, 1,
PRII, 1,
, 2,
SLPE, 1,
SIRS, 1,
Offset (0x02)
}
OperationRegion (\WIRQ, SystemIO, 0x042A, 0x01)
Field (\WIRQ, ByteAcc, NoLock, Preserve)
{
IRQR, 8
}
OperationRegion (\SMIC, SystemIO, 0x042F, 0x01)
Field (\SMIC, ByteAcc, NoLock, Preserve)
{
SCP, 8
}
OperationRegion (\STUS, SystemIO, 0x0430, 0x01)
Field (\STUS, ByteAcc, NoLock, Preserve)
{
PADS, 8
}
OperationRegion (GPOB, SystemIO, 0x044C, 0x04)
Field (GPOB, ByteAcc, NoLock, Preserve)
{
GP00, 1,
GP01, 1,
GP02, 1,
GP03, 1,
GP04, 1,
GP05, 1,
GP06, 1,
GP07, 1,
GP08, 1,
GP09, 1,
GP10, 1,
GP11, 1,
GP12, 1,
GP13, 1,
GP14, 1,
GP15, 1,
GP16, 1,
GP17, 1,
GP18, 1,
GP19, 1,
GP20, 1,
GP21, 1,
GP22, 1,
GP23, 1,
GP24, 1,
GP25, 1,
GP26, 1,
GP27, 1,
GP28, 1,
GP29, 1,
GP30, 1,
GPXX, 1
}
Name (OSFX, 0x01)
Name (OSFL, 0x01)
Method (STRC, 2, NotSerialized)
{
If (LNot (LEqual (SizeOf (Arg0), SizeOf (Arg1))))
{
Return (0x00)
}
Add (SizeOf (Arg0), 0x01, Local0)
Name (BUF0, Buffer (Local0) {})
Name (BUF1, Buffer (Local0) {})
Store (Arg0, BUF0)
Store (Arg1, BUF1)
While (Local0)
{
Decrement (Local0)
If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0)))))
{
Return (Zero)
}
}
Return (One)
}
OperationRegion (RTCM, SystemIO, 0x70, 0x02)
Field (RTCM, ByteAcc, NoLock, Preserve)
{
CMIN, 8,
CMDA, 8
}
IndexField (CMIN, CMDA, ByteAcc, NoLock, Preserve)
{
Offset (0x0F),
SHUT, 8
}
OperationRegion (INFO, SystemMemory, 0x000FF840, 0x01)
Field (INFO, ByteAcc, NoLock, Preserve)
{
KBDI, 1,
RTCW, 1,
PS2F, 1,
IRFL, 2,
DISE, 1,
SSHU, 1
}
OperationRegion (BEEP, SystemIO, 0x61, 0x01)
Field (BEEP, ByteAcc, NoLock, Preserve)
{
S1B, 8
}
OperationRegion (CONT, SystemIO, 0x40, 0x04)
Field (CONT, ByteAcc, NoLock, Preserve)
{
CNT0, 8,
CNT1, 8,
CNT2, 8,
CTRL, 8
}
Method (SPKR, 1, NotSerialized)
{
Store (S1B, Local0)
Store (0xB6, CTRL)
Store (0x55, CNT2)
Store (0x03, CNT2)
Store (Arg0, Local2)
While (LGreater (Local2, 0x00))
{
Or (S1B, 0x03, S1B)
Store (0x5FFF, Local3)
While (LGreater (Local3, 0x00))
{
Decrement (Local3)
}
And (S1B, 0xFC, S1B)
Store (0x0EFF, Local3)
While (LGreater (Local3, 0x00))
{
Decrement (Local3)
}
Decrement (Local2)
}
Store (Local0, S1B)
}
Method (\_PTS, 1, NotSerialized)
{
Or (Arg0, 0xF0, Local0)
Store (Local0, DBG1)
\_SB.PCI0.OSTP ()
If (LEqual (Arg0, 0x01))
{
If (LNot (LEqual (OSFL, 0x00)))
{
Store (\_SB.PCI0.USB3.ECDX, U3DX)
Store (\_SB.PCI0.USB4.ECDX, U4DX)
Store (\_SB.PCI0.USB5.ECDX, U5DX)
Store (0x02, \_SB.PCI0.USB3.ECDX)
Store (0x02, \_SB.PCI0.USB4.ECDX)
Store (0x02, \_SB.PCI0.USB5.ECDX)
}
Store (0x03, \_SB.PCI0.USB6.ECDX)
While (PRII)
{
Store (One, PRII)
}
While (LNot (LEqual (PADS, 0x00)))
{
Store (PADS, PADS)
}
Or (IRQR, 0x80, IRQR)
}
If (LEqual (Arg0, 0x03))
{
Or (Arg0, 0x50, Local1)
Store (Local1, SCP)
}
If (LEqual (Arg0, 0x04))
{
Sleep (0x64)
Store (One, LANE)
Or (Arg0, 0x50, Local2)
Store (Local2, SCP)
}
If (LEqual (Arg0, 0x05))
{
Store (One, LANE)
}
If (LEqual (Arg0, 0x01)) {}
If (LEqual (Arg0, 0x03)) {}
If (LEqual (Arg0, 0x04)) {}
If (LEqual (Arg0, 0x05)) {}
}
Method (\_WAK, 1, NotSerialized)
{
Store (0xFF, DBG1)
If (LEqual (Arg0, 0x01)) {}
If (LEqual (Arg0, 0x03)) {}
If (LEqual (Arg0, 0x01))
{
If (LNot (LEqual (OSFL, 0x00)))
{
Store (U3DX, \_SB.PCI0.USB3.ECDX)
Store (U4DX, \_SB.PCI0.USB4.ECDX)
Store (U5DX, \_SB.PCI0.USB5.ECDX)
}
Store (U6DX, \_SB.PCI0.USB6.ECDX)
And (IRQR, 0x7F, IRQR)
While (PRII)
{
Store (One, PRII)
}
While (LNot (LEqual (PADS, 0x00)))
{
Store (PADS, PADS)
}
}
If (OSFL)
{
Notify (\_SB.PWRB, 0x02)
}
Else
{
If (LEqual (RTCW, 0x00))
{
Notify (\_SB.PWRB, 0x02)
}
}
}
Scope (\_SI)
{
Method (_MSG, 1, NotSerialized)
{
Store (Local0, Local0)
}
Method (_SST, 1, NotSerialized)
{
If (LEqual (Arg0, 0x03)) {}
If (LEqual (Arg0, 0x01)) {}
If (LEqual (Arg0, Zero)) {}
Store (Local0, Local0)
}
}
Scope (\_GPE)
{
Method (_L03, 0, NotSerialized)
{
Notify (\_SB.PCI0.LAN0, 0x02)
}
Method (_L0E, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB0, 0x02)
Notify (\_SB.PCI0.USB3, 0x02)
Notify (\_SB.PCI0.USB4, 0x02)
Notify (\_SB.PCI0.USB5, 0x02)
Notify (\_SB.PCI0.USB6, 0x02)
}
Method (_L05, 0, NotSerialized)
{
Store (0x01, \_SB.PCI0.CRD0.PMST)
Store (0x01, \_SB.PCI0.CRD1.PMST)
Notify (\_SB.PCI0, 0x02)
}
Method (_L08, 0, NotSerialized)
{
Notify (\_SB.PCI0.UAR1, 0x02)
}
Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.AC97, 0x02)
}
}
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Method (_STA, 0, NotSerialized)
{
Return (0x0B)
}
}
Device (MEM)
{
Name (_HID, EisaId ("PNP0C01"))
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
Memory32Fixed (ReadWrite, 0x000F0000, 0x00004000)
Memory32Fixed (ReadWrite, 0x000F4000, 0x00004000)
Memory32Fixed (ReadWrite, 0x000F8000, 0x00004000)
Memory32Fixed (ReadWrite, 0x000FC000, 0x00004000)
Memory32Fixed (ReadWrite, 0x00000000, 0x00010000)
Memory32Fixed (ReadWrite, 0xFFFF0000, 0x00010000)
Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
Memory32Fixed (ReadWrite, 0xFEE00000, 0x00001000)
Memory32Fixed (ReadWrite, 0xFFF80000, 0x00070000)
})
CreateDWordField (BUF0, 0x34, ACMM)
CreateDWordField (BUF0, 0x04, RMA1)
CreateDWordField (BUF0, 0x08, RSS1)
CreateDWordField (BUF0, 0x10, RMA2)
CreateDWordField (BUF0, 0x14, RSS2)
CreateDWordField (BUF0, 0x1C, RMA3)
CreateDWordField (BUF0, 0x20, RSS3)
CreateDWordField (BUF0, 0x28, RMA4)
CreateDWordField (BUF0, 0x2C, RSS4)
CreateDWordField (BUF0, 0x5C, EXTM)
Subtract (AMEM, 0x00100000, EXTM)
If (LNot (LEqual (ROM1, Zero)))
{
Store (RMA1, RMA2)
ShiftLeft (ROM1, 0x08, Local0)
Store (Local0, RMA1)
ShiftLeft (RMS1, 0x08, Local0)
Store (Local0, RSS1)
Store (0x8000, RSS2)
}
If (LNot (LEqual (ROM2, Zero)))
{
Store (RMA2, RMA3)
ShiftLeft (ROM2, 0x08, Local0)
Store (Local0, RMA2)
ShiftLeft (RMS2, 0x08, Local0)
Store (Local0, RSS2)
Store (0xC000, RSS3)
}
If (LNot (LEqual (ROM3, Zero)))
{
Store (RMA3, RMA4)
ShiftLeft (ROM3, 0x08, Local0)
Store (Local0, RMA3)
ShiftLeft (RMS3, 0x08, Local0)
Store (Local0, RSS3)
Store (0x00010000, RSS4)
}
Store (AMEM, ACMM)
Return (BUF0)
}
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
Name (_UID, 0x00)
Name (_BBN, 0x00)
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
OperationRegion (GART, PCI_Config, 0x80, 0x01)
Scope (\)
{
Field (\_SB.PCI0.GART, ByteAcc, NoLock, Preserve)
{
GAR1, 8
}
}
OperationRegion (GARA, PCI_Config, 0x88, 0x01)
Scope (\)
{
Field (\_SB.PCI0.GARA, ByteAcc, NoLock, Preserve)
{
GAR2, 8
}
}
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Name (_PRW, Package (0x02)
{
0x05,
0x05
})
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
WordBusNumber (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode,
0x0000,
0x0000,
0x00FF,
0x0000,
0x0100)
IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000,
0x0000,
0x0CF7,
0x0000,
0x0CF8)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000,
0x0D00,
0xFFFF,
0x0000,
0xF300)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000A0000,
0x000BFFFF,
0x00000000,
0x00020000)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x000C0000,
0x000DFFFF,
0x00000000,
0x00020000)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000,
0x00100000,
0xFFEFFFFF,
0x00000000,
0xFFF00000)
})
CreateDWordField (BUF0, 0x76, TCMM)
CreateDWordField (BUF0, 0x82, TOMM)
Add (AMEM, 0x00010000, TCMM)
Subtract (0xFFF00000, TCMM, TOMM)
Return (BUF0)
}
Name (PICM, Package (0x13)
{
Package (0x04)
{
0x0014FFFF,
0x00,
\_SB.PCI0.LNKB,
0x00
},
Package (0x04)
{
0x0014FFFF,
0x01,
\_SB.PCI0.LNKC,
0x00
},
Package (0x04)
{
0x0014FFFF,
0x02,
\_SB.PCI0.LNKD,
0x00
},
Package (0x04)
{
0x0014FFFF,
0x03,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0x0013FFFF,
0x00,
\_SB.PCI0.LNKD,
0x00
},
Package (0x04)
{
0x0013FFFF,
0x01,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0x0013FFFF,
0x02,
\_SB.PCI0.LNKB,
0x00
},
Package (0x04)
{
0x0013FFFF,
0x03,
\_SB.PCI0.LNKC,
0x00
},
Package (0x04)
{
0x0010FFFF,
0x00,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0x0010FFFF,
0x01,
\_SB.PCI0.LNKB,
0x00
},
Package (0x04)
{
0x0010FFFF,
0x02,
\_SB.PCI0.LNKC,
0x00
},
Package (0x04)
{
0x0010FFFF,
0x03,
\_SB.PCI0.LNKD,
0x00
},
Package (0x04)
{
0x0011FFFF,
0x00,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0x0011FFFF,
0x02,
\_SB.PCI0.LNKC,
0x00
},
Package (0x04)
{
0x0012FFFF,
0x00,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0x000FFFFF,
0x00,
\_SB.PCI0.LNKD,
0x00
},
Package (0x04)
{
0x000FFFFF,
0x01,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0x000FFFFF,
0x02,
\_SB.PCI0.LNKB,
0x00
},
Package (0x04)
{
0x000FFFFF,
0x03,
\_SB.PCI0.LNKC,
0x00
}
})
Method (_PRT, 0, NotSerialized)
{
Return (PICM)
}
Device (AGPB)
{
Name (_ADR, 0x00010000)
Name (PICM, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.PCI0.LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
\_SB.PCI0.LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
\_SB.PCI0.LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
\_SB.PCI0.LNKD,
0x00
}
})
Method (_PRT, 0, NotSerialized)
{
Return (PICM)
}
}
Device (PMIO)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x02)
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IO (Decode16, 0x0400, 0x0400, 0x01, 0x80)
IO (Decode16, 0x0500, 0x0500, 0x01, 0x10)
})
Return (BUF0)
}
}
Device (VT86)
{
Name (_ADR, 0x00110000)
OperationRegion (VTSB, PCI_Config, 0x00, 0xE8)
Scope (\)
{
Field (\_SB.PCI0.VT86.VTSB, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
DEID, 16,
Offset (0x52),
SIRQ, 8,
Offset (0x55),
PIRA, 8,
PIBC, 8,
PIRD, 8,
Offset (0x94),
PWC1, 8
}
}
}
Device (IDE0)
{
Name (_ADR, 0x00110001)
Name (REGF, 0x01)
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x02))
{
Store (Arg1, REGF)
}
}
OperationRegion (VIDE, PCI_Config, 0x00, 0xC2)
Scope (\)
{
Field (\_SB.PCI0.IDE0.VIDE, ByteAcc, NoLock, Preserve)
{
Offset (0x09),
ENAT, 4,
Offset (0x3C),
IDEI, 4
}
}
Method (A133, 0, NotSerialized)
{
If (LNot (LEqual (DEID, 0x3177)))
{
If (LEqual (DEID, 0x3147))
{
Return (One)
}
Else
{
Return (Zero)
}
}
Else
{
Return (One)
}
}
Name (TIM0, Package (0x0F)
{
Package (0x04)
{
0x78,
0xB4,
0xF0,
0x0258
},
Package (0x04)
{
0x20,
0x31,
0x65,
0xA8
},
Package (0x08)
{
0x02,
0x01,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
},
Package (0x08)
{
0x04,
0x03,
0x02,
0x02,
0x01,
0x01,
0x00,
0x00
},
Package (0x06)
{
0x78,
0x50,
0x3C,
0x2D,
0x1E,
0x14
},
Package (0x05)
{
0x02,
0x01,
0x00,
0x00,
0x00
},
Package (0x05)
{
0x06,
0x04,
0x02,
0x01,
0x00
},
Package (0x05)
{
0x00,
0x00,
0x00,
0x01,
0x01
},
Package (0x04)
{
0x04,
0x03,
0x02,
0x00
},
Package (0x04)
{
0x02,
0x01,
0x00,
0x00
},
Package (0x0B)
{
0x05,
0x04,
0x03,
0x03,
0x02,
0x02,
0x01,
0x01,
0x01,
0x01,
0x00
},
Package (0x06)
{
0x0A,
0x06,
0x04,
0x02,
0x01,
0x00
},
Package (0x07)
{
0x78,
0x50,
0x3C,
0x2D,
0x1E,
0x14,
0x0F
},
Package (0x0F)
{
0x06,
0x05,
0x04,
0x04,
0x03,
0x03,
0x02,
0x02,
0x01,
0x01,
0x01,
0x01,
0x01,
0x01,
0x00
},
Package (0x07)
{
0x0E,
0x08,
0x06,
0x04,
0x02,
0x01,
0x00
}
})
Name (TMD0, Buffer (0x14) {})
CreateDWordField (TMD0, 0x00, PIO0)
CreateDWordField (TMD0, 0x04, DMA0)
CreateDWordField (TMD0, 0x08, PIO1)
CreateDWordField (TMD0, 0x0C, DMA1)
CreateDWordField (TMD0, 0x10, CHNF)
OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
Field (CFG2, DWordAcc, NoLock, Preserve)
{
Offset (0x08),
SSPT, 8,
SMPT, 8,
PSPT, 8,
PMPT, 8,
Offset (0x10),
SSUT, 4,
SSCT, 1,
SSUE, 3,
SMUT, 4,
SMCT, 1,
SMUE, 3,
PSUT, 4,
PSCT, 1,
PSUE, 3,
PMUT, 4,
PMCT, 1,
PMUE, 3
}
Name (GMPT, 0x00)
Name (GMUE, 0x00)
Name (GMUT, 0x00)
Name (GSPT, 0x00)
Name (GSUE, 0x00)
Name (GSUT, 0x00)
Name (GBCS, 0x00)
Device (CHN0)
{
Name (_ADR, 0x00)
Method (_GTM, 0, NotSerialized)
{
Return (GTM (PMPT, PMUE, PMUT, PSPT, PSUE, PSUT))
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, TMD0)
Store (PMPT, GMPT)
Store (PMUE, GMUE)
Store (PMUT, GMUT)
Store (PSPT, GSPT)
Store (PSUE, GSUE)
Store (PSUT, GSUT)
STM ()
Store (GMPT, PMPT)
Store (GMUE, PMUE)
Store (GMUT, PMUT)
Store (GSPT, PSPT)
Store (GSUE, PSUE)
Store (GSUT, PSUT)
}
Device (DRV0)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Return (GTF (0x00, PMUE, PMUT, PMPT))
}
}
Device (DRV1)
{
Name (_ADR, 0x01)
Method (_GTF, 0, NotSerialized)
{
Return (GTF (0x01, PSUE, PSUT, PSPT))
}
}
}
Device (CHN1)
{
Name (_ADR, 0x01)
Method (_GTM, 0, NotSerialized)
{
Return (GTM (SMPT, SMUE, SMUT, SSPT, SSUE, SSUT))
}
Method (_STM, 3, NotSerialized)
{
Store (Arg0, TMD0)
Store (SMPT, GMPT)
Store (SMUE, GMUE)
Store (SMUT, GMUT)
Store (SSPT, GSPT)
Store (SSUE, GSUE)
Store (SSUT, GSUT)
STM ()
Store (GMPT, SMPT)
Store (GMUE, SMUE)
Store (GMUT, SMUT)
Store (GSPT, SSPT)
Store (GSUE, SSUE)
Store (GSUT, SSUT)
}
Device (DRV0)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Return (GTF (0x02, SMUE, SMUT, SMPT))
}
}
Device (DRV1)
{
Name (_ADR, 0x01)
Method (_GTF, 0, NotSerialized)
{
Return (GTF (0x03, SSUE, SSUT, SSPT))
}
}
}
Method (GTF, 4, Serialized)
{
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local1)
Store (Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
}, Local2)
CreateByteField (Local1, 0x01, MODE)
CreateByteField (Local2, 0x01, UMOD)
CreateByteField (Local1, 0x05, PCHA)
CreateByteField (Local2, 0x05, UCHA)
And (Arg0, 0x03, Local3)
If (LEqual (And (Local3, 0x01), 0x01))
{
Store (0xB0, PCHA)
Store (0xB0, UCHA)
}
If (Arg1)
{
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0D)), Arg2)), UMOD)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0A)), Arg2)), UMOD)
}
Or (UMOD, 0x40, UMOD)
}
Else
{
Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg3, MTR, 0x00, 0x00), Local0)
Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x09)), Local0)), UMOD)
}
Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg3, MTR, 0x00, 0x00), Local0)
Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x08)), Local0)), MODE)
Concatenate (Local1, Local2, Local6)
Return (Local6)
}
Method (GTM, 6, Serialized)
{
Store (Ones, PIO0)
Store (Ones, PIO1)
Store (Ones, DMA0)
Store (Ones, DMA1)
Store (0x10, CHNF)
If (REGF) {}
Else
{
Return (TMD0)
}
Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg0, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
Store (Local7, DMA0)
Store (Local7, PIO0)
Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg3, MTR, 0x00, 0x00), Local6)
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7)
Store (Local7, DMA1)
Store (Local7, PIO1)
If (Arg1)
{
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0D)), Arg2)), Local5)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0A)), Arg2)), Local5)
}
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0C)), Local5)), DMA0)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local5)), DMA0)
}
Or (CHNF, 0x01, CHNF)
}
If (Arg4)
{
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0D)), Arg5)), Local5)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0A)), Arg5)), Local5)
}
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0C)), Local5)), DMA1)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local5)), DMA1)
}
Or (CHNF, 0x04, CHNF)
}
Return (TMD0)
}
Method (STM, 0, Serialized)
{
If (REGF) {}
Else
{
Return (TMD0)
}
Store (0x00, GMUE)
Store (0x00, GSUE)
Store (0x07, GMUT)
Store (0x07, GSUT)
If (And (CHNF, 0x01))
{
If (A133 ())
{
Store (Match (DerefOf (Index (TIM0, 0x0C)), MLE, DMA0, MTR, 0x00, 0x00), Local0)
}
Else
{
Store (Match (DerefOf (Index (TIM0, 0x04)), MLE, DMA0, MTR, 0x00, 0x00), Local0)
}
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0E)), Local0)), GMUT)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0B)), Local0)), GMUT)
}
Or (GMUE, 0x07, GMUE)
}
Else
{
If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00)))
{
If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00)))
{
Store (DMA0, PIO0)
}
}
}
If (And (CHNF, 0x04))
{
If (A133 ())
{
Store (Match (DerefOf (Index (TIM0, 0x0C)), MLE, DMA1, MTR, 0x00, 0x00), Local0)
}
Else
{
Store (Match (DerefOf (Index (TIM0, 0x04)), MLE, DMA1, MTR, 0x00, 0x00), Local0)
}
If (A133 ())
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0E)), Local0)), GSUT)
}
Else
{
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x0B)), Local0)), GSUT)
}
Or (GSUE, 0x07, GSUE)
}
Else
{
If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00)))
{
If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00)))
{
Store (DMA1, PIO1)
}
}
}
And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x03, Local0)
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
Store (Local1, GMPT)
And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x03, Local0)
Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1)
Store (Local1, GSPT)
}
}
Device (USB0)
{
Name (_ADR, 0x00110002)
Name (_PRW, Package (0x02)
{
0x0E,
0x05
})
Method (SS3D, 0, NotSerialized)
{
Store (0x55, DBG1)
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (USB1)
{
Name (_ADR, 0x00110003)
Name (_PRW, Package (0x02)
{
0x0E,
0x05
})
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (USB2)
{
Name (_ADR, 0x00110004)
Name (_PRW, Package (0x02)
{
0x0E,
0x05
})
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (USB3)
{
Name (_ADR, 0x00100000)
OperationRegion (U2F0, PCI_Config, 0x00, 0xC2)
Field (U2F0, ByteAcc, NoLock, Preserve)
{
Offset (0x84),
ECDX, 2
}
Name (_PRW, Package (0x02)
{
0x0E,
0x03
})
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (USB4)
{
Name (_ADR, 0x00100001)
OperationRegion (U2F1, PCI_Config, 0x00, 0xC2)
Field (U2F1, ByteAcc, NoLock, Preserve)
{
Offset (0x84),
ECDX, 2
}
Name (_PRW, Package (0x02)
{
0x0E,
0x03
})
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (USB5)
{
Name (_ADR, 0x00100002)
OperationRegion (U2F2, PCI_Config, 0x00, 0xC2)
Field (U2F2, ByteAcc, NoLock, Preserve)
{
Offset (0x84),
ECDX, 2
}
Name (_PRW, Package (0x02)
{
0x0E,
0x03
})
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (USB6)
{
Name (_ADR, 0x00100003)
OperationRegion (U2F3, PCI_Config, 0x00, 0xC2)
Field (U2F3, ByteAcc, NoLock, Preserve)
{
Offset (0x84),
ECDX, 2
}
Name (_PRW, Package (0x02)
{
0x0E,
0x03
})
Method (SS3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
}
Device (LAN0)
{
Name (_ADR, 0x00120000)
Name (_PRW, Package (0x02)
{
0x03,
0x05
})
}
Device (AC97)
{
Name (_ADR, 0x00110005)
Name (_PRW, Package (0x02)
{
0x0D,
0x05
})
}
Device (CRD0)
{
Name (_ADR, 0x000A0000)
Method (_INI, 0, NotSerialized)
{
Store (0x01, PMST)
}
Method (_PSC, 0, NotSerialized)
{
Return (PWST)
}
Method (_PS0, 0, NotSerialized)
{
Store (0x01, PMST)
}
Method (_PS2, 0, NotSerialized)
{
Store (0x01, PMST)
}
Method (_PS3, 0, NotSerialized)
{
Store (0x01, PMST)
}
OperationRegion (CCRA, PCI_Config, 0xE0, 0x04)
Field (CCRA, DWordAcc, Lock, Preserve)
{
PWST, 2,
Offset (0x01),
, 7,
PMST, 1
}
}
Device (CRD1)
{
Name (_ADR, 0x000A0001)
Method (_INI, 0, NotSerialized)
{
Store (0x01, PMST)
}
Method (_PSC, 0, NotSerialized)
{
Return (PWST)
}
Method (_PS0, 0, NotSerialized)
{
Store (0x01, PMST)
}
Method (_PS2, 0, NotSerialized)
{
Store (0x01, PMST)
}
Method (_PS3, 0, NotSerialized)
{
Store (0x01, PMST)
}
OperationRegion (CCRB, PCI_Config, 0xE0, 0x04)
Field (CCRB, DWordAcc, Lock, Preserve)
{
PWST, 2,
Offset (0x01),
, 7,
PMST, 1
}
}
Scope (\)
{
Method (DISD, 1, NotSerialized)
{
}
Method (CKIO, 2, NotSerialized)
{
}
Method (SLDM, 2, NotSerialized)
{
}
}
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x01)
Method (_STA, 0, NotSerialized)
{
And (PIRA, 0xF0, Local0)
If (LEqual (Local0, 0x00))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Name (BUFB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {1,3,4,5,6,7,10,11,12,14,15}
})
Return (BUFB)
}
Method (_DIS, 0, NotSerialized)
{
And (PIRA, 0x0F, PIRA)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
CreateByteField (BUFB, 0x01, IRB1)
CreateByteField (BUFB, 0x02, IRB2)
Store (0x00, Local3)
Store (0x00, Local4)
And (PIRA, 0xF0, Local1)
ShiftRight (Local1, 0x04, Local1)
If (LNot (LEqual (Local1, 0x00)))
{
If (LGreater (Local1, 0x07))
{
Subtract (Local1, 0x08, Local2)
ShiftLeft (One, Local2, Local4)
}
Else
{
If (LGreater (Local1, 0x00))
{
ShiftLeft (One, Local1, Local3)
}
}
Store (Local3, IRB1)
Store (Local4, IRB2)
}
Return (BUFB)
}
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x01, IRB1)
CreateByteField (Arg0, 0x02, IRB2)
ShiftLeft (IRB2, 0x08, Local0)
Or (Local0, IRB1, Local0)
Store (0x00, Local1)
ShiftRight (Local0, 0x01, Local0)
While (LGreater (Local0, 0x00))
{
Increment (Local1)
ShiftRight (Local0, 0x01, Local0)
}
And (PIRA, 0x0F, PIRA)
ShiftLeft (Local1, 0x04, Local1)
Or (PIRA, Local1, PIRA)
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
And (PIBC, 0x0F, Local0)
If (LEqual (Local0, 0x00))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {1,3,4,5,6,7,10,11,12,14,15}
})
Return (BUFA)
}
Method (_DIS, 0, NotSerialized)
{
And (PIBC, 0xF0, PIBC)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
CreateByteField (BUFA, 0x01, IRA1)
CreateByteField (BUFA, 0x02, IRA2)
Store (0x00, Local3)
Store (0x00, Local4)
And (PIBC, 0x0F, Local1)
If (LNot (LEqual (Local1, 0x00)))
{
If (LGreater (Local1, 0x07))
{
Subtract (Local1, 0x08, Local2)
ShiftLeft (One, Local2, Local4)
}
Else
{
If (LGreater (Local1, 0x00))
{
ShiftLeft (One, Local1, Local3)
}
}
Store (Local3, IRA1)
Store (Local4, IRA2)
}
Return (BUFA)
}
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x01, IRA1)
CreateByteField (Arg0, 0x02, IRA2)
ShiftLeft (IRA2, 0x08, Local0)
Or (Local0, IRA1, Local0)
Store (0x00, Local1)
ShiftRight (Local0, 0x01, Local0)
While (LGreater (Local0, 0x00))
{
Increment (Local1)
ShiftRight (Local0, 0x01, Local0)
}
And (PIBC, 0xF0, PIBC)
Or (PIBC, Local1, PIBC)
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
And (PIBC, 0xF0, Local0)
If (LEqual (Local0, 0x00))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Name (BUFC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {1,3,4,5,6,7,10,11,12,14,15}
})
Return (BUFC)
}
Method (_DIS, 0, NotSerialized)
{
And (PIBC, 0x0F, PIBC)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
CreateByteField (BUFC, 0x01, IRC1)
CreateByteField (BUFC, 0x02, IRC2)
Store (0x00, Local3)
Store (0x00, Local4)
And (PIBC, 0xF0, Local1)
ShiftRight (Local1, 0x04, Local1)
If (LNot (LEqual (Local1, 0x00)))
{
If (LGreater (Local1, 0x07))
{
Subtract (Local1, 0x08, Local2)
ShiftLeft (One, Local2, Local4)
}
Else
{
If (LGreater (Local1, 0x00))
{
ShiftLeft (One, Local1, Local3)
}
}
Store (Local3, IRC1)
Store (Local4, IRC2)
}
Return (BUFC)
}
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x01, IRC1)
CreateByteField (Arg0, 0x02, IRC2)
ShiftLeft (IRC2, 0x08, Local0)
Or (Local0, IRC1, Local0)
Store (0x00, Local1)
ShiftRight (Local0, 0x01, Local0)
While (LGreater (Local0, 0x00))
{
Increment (Local1)
ShiftRight (Local0, 0x01, Local0)
}
And (PIBC, 0x0F, PIBC)
ShiftLeft (Local1, 0x04, Local1)
Or (PIBC, Local1, PIBC)
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
And (PIRD, 0xF0, Local0)
If (LEqual (Local0, 0x00))
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized)
{
Name (BUFD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {1,3,4,5,6,7,10,11,12,14,15}
})
Return (BUFD)
}
Method (_DIS, 0, NotSerialized)
{
And (PIRD, 0x0F, PIRD)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUFD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {}
})
CreateByteField (BUFD, 0x01, IRD1)
CreateByteField (BUFD, 0x02, IRD2)
Store (0x00, Local3)
Store (0x00, Local4)
And (PIRD, 0xF0, Local1)
ShiftRight (Local1, 0x04, Local1)
If (LNot (LEqual (Local1, 0x00)))
{
If (LGreater (Local1, 0x07))
{
Subtract (Local1, 0x08, Local2)
ShiftLeft (One, Local2, Local4)
}
Else
{
If (LGreater (Local1, 0x00))
{
ShiftLeft (One, Local1, Local3)
}
}
Store (Local3, IRD1)
Store (Local4, IRD2)
}
Return (BUFD)
}
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x01, IRD1)
CreateByteField (Arg0, 0x02, IRD2)
ShiftLeft (IRD2, 0x08, Local0)
Or (Local0, IRD1, Local0)
Store (0x00, Local1)
ShiftRight (Local0, 0x01, Local0)
While (LGreater (Local0, 0x00))
{
Increment (Local1)
ShiftRight (Local0, 0x01, Local0)
}
And (PIRD, 0x0F, PIRD)
ShiftLeft (Local1, 0x04, Local1)
Or (PIRD, Local1, PIRD)
}
}
OperationRegion (\SCPP, SystemIO, 0x042F, 0x01)
Field (\SCPP, ByteAcc, NoLock, Preserve)
{
SMIP, 8
}
Method (\_SB.PCI0._INI, 0, NotSerialized)
{
If (STRC (\_OS, "Microsoft Windows"))
{
Store (0x56, SMIP)
}
Else
{
If (STRC (\_OS, "Microsoft Windows NT"))
{
Store (0x58, SMIP)
Store (0x00, OSFL)
}
Else
{
Store (0x57, SMIP)
Store (0x02, OSFL)
}
}
}
Method (OSTP, 0, NotSerialized)
{
If (LEqual (OSFL, 0x01))
{
Store (0x56, SMIP)
}
If (LEqual (OSFL, 0x02))
{
Store (0x57, SMIP)
}
If (LEqual (OSFL, 0x00))
{
Store (0x58, SMIP)
}
}
Device (SYSR)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x01)
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0010, 0x0010, 0x01, 0x10)
IO (Decode16, 0x0022, 0x0022, 0x01, 0x1E)
IO (Decode16, 0x0044, 0x0044, 0x01, 0x1C)
IO (Decode16, 0x0062, 0x0062, 0x01, 0x02)
IO (Decode16, 0x0065, 0x0065, 0x01, 0x0B)
IO (Decode16, 0x0074, 0x0074, 0x01, 0x0C)
IO (Decode16, 0x0091, 0x0091, 0x01, 0x03)
IO (Decode16, 0x00A2, 0x00A2, 0x01, 0x1E)
IO (Decode16, 0x00E0, 0x00E0, 0x01, 0x10)
IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
})
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
IRQNoFlags () {2}
})
}
Device (DMA1)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8) {4}
IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
IO (Decode16, 0x0080, 0x0080, 0x01, 0x11)
IO (Decode16, 0x0094, 0x0094, 0x01, 0x0C)
IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
IRQNoFlags () {0}
})
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0070, 0x0070, 0x04, 0x04)
IRQNoFlags () {8}
})
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
})
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x10)
IRQNoFlags () {13}
})
}
Scope (\)
{
OperationRegion (WIN1, SystemIO, 0x2E, 0x02)
Field (WIN1, ByteAcc, NoLock, Preserve)
{
INDP, 8,
DATA, 8
}
IndexField (INDP, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
CFG, 8,
Offset (0x07),
LDN, 8,
Offset (0x20),
IDHI, 8,
IDLO, 8,
POWC, 8,
Offset (0x30),
ACTR, 8,
Offset (0x60),
IOAH, 8,
IOAL, 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,
OPT6, 8,
OPT7, 8
}
Method (ENFG, 0, NotSerialized)
{
Store (0x87, INDP)
Store (0x87, INDP)
}
Method (EXFG, 0, NotSerialized)
{
Store (0xAA, INDP)
}
}
OperationRegion (COM1, SystemIO, 0x03F8, 0x08)
Field (COM1, ByteAcc, NoLock, Preserve)
{
P3F8, 8,
P3F9, 8,
P3FA, 8,
P3FB, 8,
P3FC, 8,
P3FD, 8,
P3FE, 8,
P3FF, 8
}
OperationRegion (COM2, SystemIO, 0x02F8, 0x08)
Field (COM2, ByteAcc, NoLock, Preserve)
{
P2F8, 8,
P2F9, 8,
P2FA, 8,
P2FB, 8,
P2FC, 8,
P2FD, 8,
P2FE, 8,
P2FF, 8
}
OperationRegion (COM3, SystemIO, 0x03E8, 0x08)
Field (COM3, ByteAcc, NoLock, Preserve)
{
P3E8, 8,
P3E9, 8,
P3EA, 8,
P3EB, 8,
P3EC, 8,
P3ED, 8,
P3EE, 8,
P3EF, 8
}
OperationRegion (COM4, SystemIO, 0x02E8, 0x08)
Field (COM4, ByteAcc, NoLock, Preserve)
{
P2E8, 8,
P2E9, 8,
P2EA, 8,
P2EB, 8,
P2EC, 8,
P2ED, 8,
P2EE, 8,
P2EF, 8
}
Method (ICOM, 1, NotSerialized)
{
Store (Arg0, Local0)
If (LEqual (Local0, 0x03F8))
{
Store (P3FD, Local0)
Store (P3FD, Local0)
Store (0xC3, P3FA)
While (LNot (LEqual (P3FA, 0xC1)))
{
Store (P3FE, Local0)
}
}
Else
{
If (LEqual (Local0, 0x02F8))
{
Store (P2FD, Local0)
Store (P2FD, Local0)
Store (0xC3, P2FA)
While (LNot (LEqual (P2FA, 0xC1)))
{
Store (P2FE, Local0)
}
}
Else
{
If (LEqual (Local0, 0x03E8))
{
Store (P3ED, Local0)
Store (P3ED, Local0)
Store (0xC3, P3EA)
While (LNot (LEqual (P3EA, 0xC1)))
{
Store (P3EE, Local0)
}
}
Else
{
If (LEqual (Local0, 0x02E8))
{
Store (P2ED, Local0)
Store (P2ED, Local0)
Store (0xC3, P2EA)
While (LNot (LEqual (P2EA, 0xC1)))
{
Store (P2EE, Local0)
}
}
}
}
}
}
Device (FDC0)
{
Name (_HID, EisaId ("PNP0700"))
Method (_STA, 0, NotSerialized)
{
ENFG ()
Store (Zero, LDN)
If (ACTR)
{
EXFG ()
Return (0x0F)
}
Else
{
If (LOr (IOAH, IOAL))
{
EXFG ()
Return (0x0D)
}
Else
{
EXFG ()
Return (0x00)
}
}
}
Method (_DIS, 0, NotSerialized)
{
ENFG ()
Store (0x00, LDN)
Store (Zero, ACTR)
SLDM (DMCH, 0x04)
EXFG ()
DISD (0x03)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
IO (Decode16, 0x03F0, 0x03F0, 0x00, 0x06)
IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
IRQNoFlags () {6}
DMA (Compatibility, NotBusMaster, Transfer8) {2}
})
CreateByteField (BUF0, 0x02, IOLO)
CreateByteField (BUF0, 0x03, IOHI)
CreateByteField (BUF0, 0x04, IORL)
CreateByteField (BUF0, 0x05, IORH)
ENFG ()
EXFG ()
Return (BUF0)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x03F0, 0x03F0, 0x00, 0x06)
IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
IRQNoFlags () {6}
DMA (Compatibility, NotBusMaster, Transfer8) {2}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x02, IOAD)
CreateWordField (Arg0, 0x19, IRQL)
CreateByteField (Arg0, 0x1C, DMAV)
ENFG ()
Store (Zero, LDN)
Store (One, ACTR)
SLDM (DMCH, DMCH)
EXFG ()
CKIO (IOAD, 0x03)
}
}
Device (UAR1)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x01)
Method (_STA, 0, NotSerialized)
{
ENFG ()
Store (0x02, LDN)
If (ACTR)
{
EXFG ()
Return (0x0F)
}
Else
{
If (LNot (LEqual (IOAH, 0x00)))
{
EXFG ()
Return (0x0D)
}
Else
{
EXFG ()
Return (0x00)
}
}
}
Method (_DIS, 0, NotSerialized)
{
ENFG ()
Store (0x02, LDN)
Store (Zero, ACTR)
EXFG ()
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF1, ResourceTemplate ()
{
IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
IRQNoFlags () {4}
})
CreateWordField (BUF1, 0x02, IMIN)
CreateWordField (BUF1, 0x04, IMAX)
CreateWordField (BUF1, 0x09, IRQW)
ENFG ()
Store (0x02, LDN)
Store (IOAH, Local0)
ShiftLeft (Local0, 0x02, Local0)
Store (Local0, IMIN)
Store (Local0, IMAX)
Store (INTR, Local0)
And (Local0, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRQW)
EXFG ()
Return (BUF1)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
IRQNoFlags () {4}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
IRQNoFlags () {3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
IRQNoFlags () {4}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
IRQNoFlags () {3}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x09, IRQW)
ENFG ()
Store (0x02, LDN)
Store (IOLO, Local0)
ShiftRight (Local0, 0x02, Local0)
And (Local0, 0xFE, Local0)
Store (IOHI, Local1)
ShiftLeft (Local1, 0x06, Local1)
Or (Local0, Local1, Local0)
Store (Local0, IOAH)
FindSetRightBit (IRQW, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, INTR)
Store (One, ACTR)
EXFG ()
}
}
Device (UAR2)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x02)
Method (_STA, 0, NotSerialized)
{
ENFG ()
Store (0x03, LDN)
If (ACTR)
{
EXFG ()
Return (0x0F)
}
Else
{
If (LNot (LEqual (IOAH, 0x00)))
{
EXFG ()
Return (0x0D)
}
Else
{
EXFG ()
Return (0x00)
}
}
}
Method (_DIS, 0, NotSerialized)
{
ENFG ()
Store (0x03, LDN)
Store (Zero, ACTR)
EXFG ()
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF2, ResourceTemplate ()
{
IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
IRQNoFlags () {3}
})
CreateWordField (BUF2, 0x02, IMIN)
CreateWordField (BUF2, 0x04, IMAX)
CreateWordField (BUF2, 0x09, IRQ0)
ENFG ()
Store (0x03, LDN)
Store (IOAH, Local0)
ShiftLeft (Local0, 0x02, Local0)
Store (Local0, IMIN)
Store (Local0, IMAX)
Store (INTR, Local0)
And (Local0, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRQ0)
EXFG ()
Return (BUF2)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
IRQNoFlags () {4}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
IRQNoFlags () {3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
IRQNoFlags () {4}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
IRQNoFlags () {3}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x09, IRQW)
ENFG ()
Store (0x03, LDN)
Store (IOLO, Local0)
ShiftRight (Local0, 0x02, Local0)
And (Local0, 0xFE, Local0)
Store (IOHI, Local1)
ShiftLeft (Local1, 0x06, Local1)
Or (Local0, Local1, Local0)
Store (Local0, IOAH)
FindSetRightBit (IRQW, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, INTR)
Store (One, ACTR)
EXFG ()
}
}
Device (LPT1)
{
Name (PIOM, Buffer (0x01)
{
0x00
})
CreateByteField (PIOM, 0x00, LPTM)
Name (_HID, EisaId ("PNP0400"))
Method (_STA, 0, NotSerialized)
{
ENFG ()
Store (One, LDN)
Store (ACTR, Local0)
And (Local0, 0x03, Local0)
If (LEqual (Local0, 0x01))
{
EXFG ()
Return (0x00)
}
If (LEqual (Local0, 0x03))
{
Store (IOAH, Local1)
If (LNot (LEqual (Local1, 0x00)))
{
EXFG ()
Return (0x0D)
}
Else
{
EXFG ()
Return (0x00)
}
}
Else
{
Store (Local0, LPTM)
EXFG ()
Return (0x0F)
}
}
Method (_DIS, 0, NotSerialized)
{
ENFG ()
Store (One, LDN)
Store (0x03, ACTR)
EXFG ()
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF5, ResourceTemplate ()
{
IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
IRQNoFlags () {7}
})
CreateWordField (BUF5, 0x02, IMIN)
CreateWordField (BUF5, 0x04, IMAX)
CreateByteField (BUF5, 0x06, LALN)
CreateByteField (BUF5, 0x07, LLEN)
CreateWordField (BUF5, 0x09, IRQ0)
ENFG ()
Store (One, LDN)
Store (IOAH, Local0)
ShiftLeft (Local0, 0x02, Local0)
Store (Local0, IMIN)
Store (Local0, IMAX)
If (LEqual (IMIN, 0x03BC))
{
Store (0x04, LALN)
Store (0x04, LLEN)
}
Else
{
Store (0x08, LALN)
Store (0x08, LLEN)
}
Store (INTR, Local0)
Store (0x01, Local1)
ShiftLeft (Local1, Local0, IRQ0)
EXFG ()
Return (BUF5)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
IRQNoFlags () {7}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
IRQNoFlags () {7}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x09, IRQ0)
ENFG ()
Store (One, LDN)
Store (IOLO, Local0)
ShiftRight (Local0, 0x02, Local0)
Store (IOHI, Local1)
ShiftLeft (Local1, 0x06, Local1)
Or (Local0, Local1, Local0)
Store (Local0, IOAH)
FindSetRightBit (IRQ0, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, INTR)
Store (ACTR, Local0)
And (Local0, 0xFC, Local0)
Store (LPTM, Local1)
Or (Local0, Local1, Local1)
Store (Local1, ACTR)
EXFG ()
}
}
Device (ECP1)
{
Name (_HID, EisaId ("PNP0401"))
Method (_STA, 0, NotSerialized)
{
ENFG ()
Store (One, LDN)
Store (ACTR, Local0)
And (Local0, 0x03, Local0)
If (LOr (LEqual (Local0, 0x00), LEqual (Local0, 0x02)))
{
EXFG ()
Return (0x00)
}
If (LEqual (Local0, 0x01))
{
EXFG ()
Return (0x0F)
}
If (LEqual (Local0, 0x03))
{
If (LNot (LEqual (DMCH, 0x00)))
{
EXFG ()
Return (0x0D)
}
Else
{
EXFG ()
Return (0x00)
}
}
}
Method (_DIS, 0, NotSerialized)
{
ENFG ()
Store (One, LDN)
Store (0x03, ACTR)
EXFG ()
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF6, ResourceTemplate ()
{
IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
IO (Decode16, 0x0778, 0x0778, 0x04, 0x04)
IRQNoFlags () {7}
DMA (Compatibility, NotBusMaster, Transfer8) {3}
})
CreateWordField (BUF6, 0x02, IMI1)
CreateWordField (BUF6, 0x04, IMA1)
CreateByteField (BUF6, 0x06, ALN1)
CreateByteField (BUF6, 0x07, LEN1)
CreateWordField (BUF6, 0x0A, IMI2)
CreateWordField (BUF6, 0x0C, IMA2)
CreateWordField (BUF6, 0x11, IRQ0)
CreateByteField (BUF6, 0x14, DMA0)
ENFG ()
Store (One, LDN)
Store (IOAH, Local0)
ShiftLeft (Local0, 0x02, Local0)
Store (Local0, IMI1)
Store (Local0, IMA1)
Add (Local0, 0x0400, Local0)
Store (Local0, IMI2)
Store (Local0, IMA2)
If (LEqual (IMI1, 0x03BC))
{
Store (0x04, ALN1)
Store (0x04, LEN1)
}
Else
{
Store (0x08, ALN1)
Store (0x08, LEN1)
}
Store (INTR, Local0)
Store (0x01, Local1)
ShiftLeft (Local1, Local0, IRQ0)
Store (DMCH, Local0)
And (Local0, 0x03, Local0)
Store (0x01, Local1)
ShiftLeft (Local1, Local0, DMA0)
EXFG ()
Return (BUF6)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
IO (Decode16, 0x0778, 0x0778, 0x04, 0x04)
IRQNoFlags () {7}
DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x08, 0x08)
IO (Decode16, 0x0678, 0x0678, 0x04, 0x04)
IRQNoFlags () {5}
DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x04, 0x04)
IO (Decode16, 0x07BC, 0x07BC, 0x04, 0x04)
IRQNoFlags () {7}
DMA (Compatibility, NotBusMaster, Transfer8) {1,3}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x11, IRQ0)
CreateByteField (Arg0, 0x14, DMA0)
ENFG ()
Store (One, LDN)
Store (IOLO, Local0)
ShiftRight (Local0, 0x02, Local0)
Store (IOHI, Local1)
ShiftLeft (Local1, 0x06, Local1)
Or (Local0, Local1, Local0)
Store (Local0, IOAH)
FindSetRightBit (IRQ0, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, INTR)
FindSetRightBit (DMA0, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, DMCH)
Store (ACTR, Local0)
And (Local0, 0xFC, Local0)
Or (Local0, 0x01, Local0)
Store (Local0, ACTR)
EXFG ()
}
}
OperationRegion (KBCT, SystemIO, 0x60, 0x05)
Field (KBCT, ByteAcc, NoLock, Preserve)
{
P060, 8,
Offset (0x04),
P064, 8
}
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F13"))
Method (_STA, 0, NotSerialized)
{
If (LEqual (PS2F, 0x00))
{
Return (0x0F)
}
Else
{
Return (0x00)
}
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF1, ResourceTemplate ()
{
IRQNoFlags () {12}
})
Name (BUF2, ResourceTemplate ()
{
IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
IRQNoFlags () {12}
})
If (LEqual (KBDI, 0x01))
{
If (LEqual (OSFL, 0x02))
{
Return (BUF1)
}
If (LEqual (OSFL, 0x01))
{
Return (BUF1)
}
Else
{
Return (BUF2)
}
}
Else
{
Return (BUF1)
}
}
}
Device (PS2K)
{
Name (_HID, EisaId ("PNP0303"))
Method (_STA, 0, NotSerialized)
{
If (LEqual (KBDI, 0x01))
{
Return (0x00)
}
Else
{
Return (0x0F)
}
}
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
IRQNoFlags () {1}
})
}
Device (PSMR)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
If (LEqual (KBDI, 0x00))
{
Return (0x00)
}
If (LEqual (PS2F, 0x00))
{
If (LEqual (OSFL, 0x02))
{
Return (0x0F)
}
If (LEqual (OSFL, 0x01))
{
Return (0x0F)
}
Return (0x00)
}
Return (0x0F)
}
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
})
}
Device (FIR1)
{
Name (_HID, EisaId ("VIA3076"))
Method (_STA, 0, NotSerialized)
{
ENFG ()
Store (0x0C, LDN)
If (ACTR)
{
EXFG ()
Return (0x0F)
}
Else
{
If (LOr (IOAH, IOAL))
{
EXFG ()
Return (0x0D)
}
Else
{
EXFG ()
Return (0x00)
}
}
EXFG ()
}
Method (_DIS, 0, NotSerialized)
{
ENFG ()
Store (0x0C, LDN)
Store (Zero, ACTR)
EXFG ()
DISD (0x00)
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF1, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x80)
IRQNoFlags () {}
DMA (Compatibility, NotBusMaster, Transfer8) {}
})
CreateByteField (BUF1, 0x02, IOLO)
CreateByteField (BUF1, 0x03, IOHI)
CreateByteField (BUF1, 0x04, IORL)
CreateByteField (BUF1, 0x05, IORH)
CreateWordField (BUF1, 0x09, IRQW)
CreateByteField (BUF1, 0x0C, DMA0)
ENFG ()
Store (0x0C, LDN)
Store (IOAL, IOLO)
Store (IOAL, IORL)
Store (IOAH, IOHI)
Store (IOAH, IORH)
Store (One, Local0)
ShiftLeft (Local0, INTR, IRQW)
Store (DMCH, Local0)
And (Local0, 0x0F, Local1)
If (LEqual (Local1, 0x0A))
{
Store (0x06, Local0)
}
Store (One, Local1)
ShiftLeft (Local1, Local0, DMA0)
EXFG ()
Return (BUF1)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0xE600, 0xE600, 0x01, 0x80)
IRQNoFlags () {3,4,5,7,9,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {5,6}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x02, IOAD)
CreateWordField (Arg0, 0x09, IRQW)
CreateByteField (Arg0, 0x0C, DMA0)
ENFG ()
Store (0x0C, LDN)
Store (One, ACTR)
Store (IOLO, IOAL)
Store (IOHI, IOAH)
FindSetRightBit (IRQW, Local0)
Subtract (Local0, 0x01, INTR)
Store (DMA0, Local0)
If (LEqual (Local0, 0x40))
{
Store (0x0A, DMCH)
}
Else
{
FindSetRightBit (DMA0, Local0)
Subtract (Local0, 0x01, DMCH)
}
EXFG ()
CKIO (IOAD, 0x00)
}
}
Scope (\)
{
OperationRegion (WIN2, SystemIO, 0x4E, 0x02)
Field (WIN2, ByteAcc, NoLock, Preserve)
{
SINP, 8,
SDAT, 8
}
IndexField (SINP, SDAT, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
SCFG, 8,
Offset (0x07),
SLDN, 8,
Offset (0x20),
SDHI, 8,
SDLO, 8,
SOWC, 8,
Offset (0x30),
SCTR, 8,
Offset (0x60),
SOAH, 8,
SOAL, 8,
Offset (0x70),
SNTR, 8,
Offset (0x72),
SNT1, 8,
Offset (0x74),
SMCH, 8,
Offset (0xC0),
SP40, 8,
Offset (0xF0),
SPT1, 8,
SPT2, 8,
SPT3, 8,
SPT4, 8,
SPT5, 8,
SPT6, 8,
SPT7, 8
}
Method (SENF, 0, NotSerialized)
{
Store (0x87, SINP)
Store (0x87, SINP)
}
Method (SEXF, 0, NotSerialized)
{
Store (0xAA, SINP)
}
}
OperationRegion (COM5, SystemIO, 0x03F8, 0x08)
Field (COM5, ByteAcc, NoLock, Preserve)
{
S3F8, 8,
S3F9, 8,
S3FA, 8,
S3FB, 8,
S3FC, 8,
S3FD, 8,
S3FE, 8,
S3FF, 8
}
OperationRegion (COM6, SystemIO, 0x02F8, 0x08)
Field (COM6, ByteAcc, NoLock, Preserve)
{
S2F8, 8,
S2F9, 8,
S2FA, 8,
S2FB, 8,
S2FC, 8,
S2FD, 8,
S2FE, 8,
S2FF, 8
}
OperationRegion (COM7, SystemIO, 0x03E8, 0x08)
Field (COM7, ByteAcc, NoLock, Preserve)
{
S3E8, 8,
S3E9, 8,
S3EA, 8,
S3EB, 8,
S3EC, 8,
S3ED, 8,
S3EE, 8,
S3EF, 8
}
OperationRegion (COM8, SystemIO, 0x02E8, 0x08)
Field (COM8, ByteAcc, NoLock, Preserve)
{
S2E8, 8,
S2E9, 8,
S2EA, 8,
S2EB, 8,
S2EC, 8,
S2ED, 8,
S2EE, 8,
S2EF, 8
}
Method (SICO, 1, NotSerialized)
{
Store (Arg0, Local0)
If (LEqual (Local0, 0x03F8))
{
Store (S3FD, Local0)
Store (S3FD, Local0)
Store (0xC3, S3FA)
While (LNot (LEqual (S3FA, 0xC1)))
{
Store (S3FE, Local0)
}
}
Else
{
If (LEqual (Local0, 0x02F8))
{
Store (S2FD, Local0)
Store (S2FD, Local0)
Store (0xC3, S2FA)
While (LNot (LEqual (S2FA, 0xC1)))
{
Store (S2FE, Local0)
}
}
Else
{
If (LEqual (Local0, 0x03E8))
{
Store (S3ED, Local0)
Store (S3ED, Local0)
Store (0xC3, S3EA)
While (LNot (LEqual (S3EA, 0xC1)))
{
Store (S3EE, Local0)
}
}
Else
{
If (LEqual (Local0, 0x02E8))
{
Store (S2ED, Local0)
Store (S2ED, Local0)
Store (0xC3, S2EA)
While (LNot (LEqual (S2EA, 0xC1)))
{
Store (S2EE, Local0)
}
}
}
}
}
}
Device (UAR3)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x03)
Method (_STA, 0, NotSerialized)
{
SENF ()
Store (0x02, SLDN)
If (SCTR)
{
SEXF ()
Return (0x0F)
}
Else
{
If (LNot (LEqual (SOAH, 0x00)))
{
SEXF ()
Return (0x0D)
}
Else
{
SEXF ()
Return (0x00)
}
}
}
Method (_DIS, 0, NotSerialized)
{
SENF ()
Store (0x02, SLDN)
Store (Zero, SCTR)
SEXF ()
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF1, ResourceTemplate ()
{
IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
IRQNoFlags () {5}
})
CreateWordField (BUF1, 0x02, IMIN)
CreateWordField (BUF1, 0x04, IMAX)
CreateWordField (BUF1, 0x09, IRQW)
SENF ()
Store (0x02, SLDN)
Store (SOAH, Local0)
ShiftLeft (Local0, 0x02, Local0)
Store (Local0, IMIN)
Store (Local0, IMAX)
Store (SNTR, Local0)
And (Local0, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRQW)
SEXF ()
Return (BUF1)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
IRQNoFlags () {10}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
IRQNoFlags () {10}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x09, IRQW)
SENF ()
Store (0x02, SLDN)
Store (IOLO, Local0)
ShiftRight (Local0, 0x02, Local0)
And (Local0, 0xFE, Local0)
Store (IOHI, Local1)
ShiftLeft (Local1, 0x06, Local1)
Or (Local0, Local1, Local0)
Store (Local0, SOAH)
FindSetRightBit (IRQW, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, SNTR)
Store (One, SCTR)
SEXF ()
}
}
Device (UAR4)
{
Name (_HID, EisaId ("PNP0501"))
Name (_UID, 0x04)
Method (_STA, 0, NotSerialized)
{
SENF ()
Store (0x03, SLDN)
If (SCTR)
{
SEXF ()
Return (0x0F)
}
Else
{
If (LNot (LEqual (SOAH, 0x00)))
{
SEXF ()
Return (0x0D)
}
Else
{
SEXF ()
Return (0x00)
}
}
}
Method (_DIS, 0, NotSerialized)
{
SENF ()
Store (0x03, SLDN)
Store (Zero, SCTR)
SEXF ()
}
Method (_CRS, 0, NotSerialized)
{
Name (BUF2, ResourceTemplate ()
{
IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
IRQNoFlags () {10}
})
CreateWordField (BUF2, 0x02, IMIN)
CreateWordField (BUF2, 0x04, IMAX)
CreateWordField (BUF2, 0x09, IRQ0)
SENF ()
Store (0x03, SLDN)
Store (SOAH, Local0)
ShiftLeft (Local0, 0x02, Local0)
Store (Local0, IMIN)
Store (Local0, IMAX)
Store (SNTR, Local0)
And (Local0, 0x0F, Local0)
Store (One, Local1)
ShiftLeft (Local1, Local0, IRQ0)
SEXF ()
Return (BUF2)
}
Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02F8, 0x02F8, 0x08, 0x08)
IRQNoFlags () {10}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03E8, 0x03E8, 0x08, 0x08)
IRQNoFlags () {5}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x02E8, 0x02E8, 0x08, 0x08)
IRQNoFlags () {10}
}
EndDependentFn ()
})
Method (_SRS, 1, NotSerialized)
{
CreateByteField (Arg0, 0x02, IOLO)
CreateByteField (Arg0, 0x03, IOHI)
CreateWordField (Arg0, 0x09, IRQW)
SENF ()
Store (0x03, SLDN)
Store (IOLO, Local0)
ShiftRight (Local0, 0x02, Local0)
And (Local0, 0xFE, Local0)
Store (IOHI, Local1)
ShiftLeft (Local1, 0x06, Local1)
Or (Local0, Local1, Local0)
Store (Local0, SOAH)
FindSetRightBit (IRQW, Local0)
If (LGreater (Local0, 0x00))
{
Decrement (Local0)
}
Store (Local0, SNTR)
Store (One, SCTR)
SEXF ()
}
}
Method (\_SB.PCI0.UAR1._PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x08,
0x05
})
}
}
}
}
More information about the freebsd-current
mailing list