ACPI Problems: IRQ conflicts on USB controllers and SATA controller
Erik Norgaard
norgaard at locolomo.org
Thu Oct 12 13:09:01 UTC 2006
Hi:
I have previously written about my buggy Sony VAIO (FJ3S) and some
problems was resolved.
In brief:
I have IRQ conflicts on the USB controllers causing two controllers to
be non-functional:
uhci0 at pci0:29:0: IRQ 5
uhci1 at pci0:29:1: IRQ 10
uhci2 at pci0:29:2: IRQ 255
uhci3 at pci0:29:3: IRQ 255
ehci0 at pci0:29:7: IRQ 5
Further USB devices are slow or not found, it takes 30 seconds before
da0s1 on a USB stick appears among the devices, and it may not be mountable.
Also, atapci0 at pci0:31:2 Intel Corporation 82801FBM (ICH6M) SATA
Controller seems to cause an IRQ storm on IRQ 9 and is disabled. (wonder
how I can boot then).
I believe this relates to the IRQ problems. How do I manually assign
IRQ's to these? Which IRQ's should I assign?
Background:
ACPI and APIC conflicts on this hardware, /if/ system successfully boots
it grinds almost to a halt with 85% interrupt activity. Disabling apic
solves the problem.
Booting with apic disabled, /if/ successful, the system freezes after a
while, but all devices are configured, there is still some 3.5%
interrupt activity. Disabling acpi pci_link solves the issue.
There remains interrupt conflicts and interrupt storms: The wireless iwi
card caused interrupt storm on IRQ 5, this has been resolved by setting
it manually in loader.conf.
The problem:
USB Controllers:
As described above, two of the 4 UCHI controllers are not assigned IRQ's
when pci_link is disabled (dmesg):
uhci2: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-C> at
device 29.2 on pci0
uhci2: Could not allocate irq
device_attach: uhci2 attach returned 6
uhci3: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-D> at
device 29.3 on pci0
uhci3: Could not allocate irq
device_attach: uhci3 attach returned 6
If booting with pci_link enabled IRQ's are assigned to all 4
controllers, but I do not know if device numbering change or IRQ's are
assigned differently, the devices get the following IRQ's:
uhci0 at pci0:29:0: IRQ 5
uhci1 at pci0:29:1: IRQ 9
uhci2 at pci0:29:2: IRQ 3
uhci3 at pci0:29:3: IRQ 10
ehci0 at pci0:29:7: IRQ 5
I do not know if these IRQ's are the correct ones, afterall, the system
freezes after a while when pci_link is enabled. Things get more messy,
there is a built in USB web cam attached to the ehci controler. I do not
know if this interferes or causes problems, but I can't physically
disconnect it.
SATA Controller:
There is an interrupt storm on IRQ 9 right before the ATA disks are
identified. With pci_link disabled I have the following:
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface
Subsystem: Sony Corporation Unknown device 81f1
Flags: bus master, medium devsel, latency 0
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA
Subsystem: Sony Corporation Unknown device 81f1
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 255
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
Subsystem: Sony Corporation Unknown device 81f1
Flags: medium devsel, IRQ 10
Enabling pci_link I have:
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface
Subsystem: Sony Corporation Unknown device 81f1
Flags: bus master, medium devsel, latency 0
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA
Subsystem: Sony Corporation Unknown device 81f1
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 255
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
Subsystem: Sony Corporation Unknown device 81f1
Flags: medium devsel, IRQ 9
This interrupt storm ALSO occurs with pci_link enabled.
QUESTION:
How do I resolve the conflicts: How do I specify IRQ's for the above
devices? Which IRQ's should I assign?
The correct solution may be to load a custom ASL to load. I tried to
dump and compile the existing ASL and got only one warning:
/tmp/sony.asl 3527: Method (SODV, 1, NotSerialized)
Warning 2019 - ^ Not all control
paths return a value (SODV)
ASL Input: /tmp/sony.asl - 5293 lines, 169636 bytes, 2529 keywords
AML Output: DSDT.aml - 20447 bytes 586 named objects 1943 executable opcodes
Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 584 Optimizations
Is there any documentation on how to debug/write the ASL code?
Thanks for reading all the way to the bottom, double up thanks if you
can provide any hints or help resolving these issues.
Cheers, Erik
--
Ph: +34.666334818 web: http://www.locolomo.org
X.509 Certificate: http://www.locolomo.org/crt/8D03551FFCE04F0C.crt
Key ID: 69:79:B8:2C:E3:8F:E7:BE:5D:C3:C3:B1:74:62:B8:3F:9F:1F:69:B9
More information about the freebsd-mobile
mailing list