Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Oct 2006 22:35:07 +0200
From:      Erik Norgaard <norgaard@locolomo.org>
To:        questions@freebsd.org
Subject:   IRQ conflicts on USB controlers
Message-ID:  <452AB27B.5060607@locolomo.org>

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

I have a problem with this buggy hardware (Sony VAIO, don't buy).

Background:

Booting with both acpi and apic enabled (if the system doesn't die with 
some fatal trap) the system grinds to a halt with 85% interrupt activity.

Booting with apic disabled solves that problem, but then the system 
freezes after a while and while the system is still functional there is 
3.5-4% interrupt when running top.

Disabling pci_link boots the system up stable, but not all devices are 
configured correctly. There are IRQ conflicts and interrupt storms.

Without pcilink irq's are not configured correctly and with the system 
eventually freezes. I do not know if I can assume the irq's assigned 
with pcilink enabled as I don't know if this is what causes the conflict.

The problem:

Without pcilink two UHCI controlers are not assigned valid irqs and USB 
is slow, a usb stick takes a long time before it appears as a mountable 
device.

There is an irq storm at irq 9, both with and without pcilink. The 
devices (with pcilink) which get irq 9 are the ichsmb and a USB 
controler (UHCI).

Things get more messy: There's a built in web cam (USB 2.0) attached to 
the usb port.

   addr 1: UHCI root hub, Intel
   addr 1: UHCI root hub, Intel
   addr 1: EHCI root hub, Intel
    addr 2: USB2.0 Web Camera, Vimicro Corp.

I believe irqs changes when I boot with/without pcilink:

with pcilink I have:

00:1d.0 USB Controller: USB UHCI #1 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 5

00:1d.1 USB Controller: USB UHCI #2 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 9

00:1d.2 USB Controller: USB UHCI #3 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 3

00:1d.3 USB Controller: USB UHCI #4 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 10

00:1d.7 USB Controller: USB2 EHCI (rev 03) (prog-if 20 [EHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 5

and without pcilink:

00:1d.0 USB Controller: USB UHCI #1 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 5

00:1d.1 USB Controller: USB UHCI #2 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 10

00:1d.2 USB Controller: USB UHCI #3 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 255

00:1d.3 USB Controller: USB UHCI #4 (rev 03) (prog-if 00 [UHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 255

00:1d.7 USB Controller: USB2 EHCI (rev 03) (prog-if 20 [EHCI])
         Flags: bus master, medium devsel, latency 0, IRQ 5

Question:

How do I assign IRQs to the usb controlers? pciconf shows the controlers 
on pci0:29:0 .. pci0:29:3 (UHCI) and pci0:29:7 (EHCI).

How do I determine which IRQs to assign - apart from trial and error?

Thansk for reading all the way down to the questions :) double up for 
any help :D

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




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