2003-11-14 00:17:06

by Brian Beattie

[permalink] [raw]
Subject: serverworks usb under 2.4.22

I've got a system with a Super Micro P3 dual processor board. This
board uses the Serverworks chipset and the 2.4.22 kernel is unable to
allocate an IRQ when initializing the USB (usb-ohic) interface. This
board works fine under 2.4.20 and 2.4.21.

Any ideas?
--
Brian Beattie | Experienced kernel hacker/embedded systems
[email protected] | programmer, direct or contract, short or
http://www.beattie-home.net | long term, available immediately.

"Honor isn't about making the right choices.
It's about dealing with the consequences." -- Midori Koto



2003-11-14 01:24:29

by rico-linux-kernel

[permalink] [raw]
Subject: Re: serverworks usb under 2.4.22

>From: Brian Beattie <[email protected]>
>Date: Thu, 13 Nov 2003 19:17:02 -0500
>...
>I've got a system with a Super Micro P3 dual processor board. This
>board uses the Serverworks chipset and the 2.4.22 kernel is unable to
>allocate an IRQ when initializing the USB (usb-ohic) interface. This
>board works fine under 2.4.20 and 2.4.21.

Transcript of kernel messages...?

2003-11-14 07:52:48

by Ingo Oeser

[permalink] [raw]
Subject: Re: serverworks usb under 2.4.22

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Brian,
hi lkml,

On Friday 14 November 2003 01:17, Brian Beattie wrote:
> I've got a system with a Super Micro P3 dual processor board. This
> board uses the Serverworks chipset and the 2.4.22 kernel is unable to
> allocate an IRQ when initializing the USB (usb-ohic) interface. This
> board works fine under 2.4.20 and 2.4.21.

Which Serverworks chipset? There are various.

I for one need to pass "noapic" on the kernel command line. Otherwise
the IRQ routing is broken, I can't get the USB IRQ and the kernel complains.
a lot about a broken APIC IRQ routing.

My board is an ASUS CUR-CLS. The chipset there is "ServerWorks LE".

Hop that helps.


Regards

Ingo Oeser


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/tIlrU56oYWuOrkARAsPBAKDVHqTnQHRlgB7CdMphY70GpVn3fQCdE8bQ
U4/gpKuad2q40FAPqmAeC6I=
=kUSh
-----END PGP SIGNATURE-----

2003-11-14 08:58:45

by rico-linux-kernel

[permalink] [raw]
Subject: Re: serverworks usb under 2.4.22

>From: Ingo Oeser <[email protected]>
>Date: Fri, 14 Nov 2003 08:51:00 +0100
>...
>I for one need to pass "noapic" on the kernel command line. Otherwise
>the IRQ routing is broken, I can't get the USB IRQ and the kernel complains.
>a lot about a broken APIC IRQ routing.
>
>My board is an ASUS CUR-CLS. The chipset there is "ServerWorks LE".

Ingo,

My ServerWorks HE chipset is a close cousin. The common BIOS was written
by Intergraph, and marketed by Phoenix. It somehow fails to communicate
its decisions about IRQ routing to Linux. One may get lucky by moving
hardware around but, with the following patch, you are guaranteed use
of the chipset USB while still enjoying the IO-APIC. Patch has been
necessary from 2.4.0 through 2.4.17 and, by the sounds of it, to current
2.4 versions.

You must edit the patch to use the correct IRQ for your hardware config
(11 in my case). To determine the IRQ, access USB hardware while
monitoring interrupt counts in /proc/stat

--------start of patch--------------------------------------------------
*** usb-ohci.c.orig Mon Dec 31 11:35:13 2001
--- usb-ohci.c Mon Dec 31 12:10:39 2001
***************
*** 2581,2601 ****
--- 2581,2605 ----

mem_base = ioremap_nocache (mem_resource, mem_len);
if (!mem_base) {
err("Error mapping OHCI memory");
return -EFAULT;
}

/* controller writes into our memory */
pci_set_master (dev);

+ #if 0
return hc_found_ohci (dev, dev->irq, mem_base, id);
+ #else
+ return hc_found_ohci (dev, 11, mem_base, id);
+ #endif
}

/*-------------------------------------------------------------------------*/

/* may be called from interrupt context [interface spec] */
/* may be called without controller present */
/* may be called with controller, bus, and devices active */

static void __devexit
ohci_pci_remove (struct pci_dev *dev)
--------end of patch--------------------------------------------------

2003-11-14 14:57:26

by Brian Beattie

[permalink] [raw]
Subject: Re: serverworks usb under 2.4.22

On Thu, 2003-11-13 at 20:24, [email protected]
wrote:
> >From: Brian Beattie <[email protected]>
> >Date: Thu, 13 Nov 2003 19:17:02 -0500
> >...
> >I've got a system with a Super Micro P3 dual processor board. This
> >board uses the Serverworks chipset and the 2.4.22 kernel is unable to
> >allocate an IRQ when initializing the USB (usb-ohic) interface. This
> >board works fine under 2.4.20 and 2.4.21.
>
> Transcript of kernel messages...?

from dmesg:

usb.c: registered new driver hub
host/usb-uhci.c: $Revision: 1.275 $ time 09:19:46 Nov 14 2003
host/usb-uhci.c: High bandwidth mode enabled
host/usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
host/usb-ohci.c: USB OHCI at membase 0xf88a8000, IRQ -19
host/usb-ohci.c: usb-00:0f.2, ServerWorks OSB4/CSB5 OHCI USB Controller
usb.c: new USB bus registered, assigned bus number 1
host/usb-ohci.c: request interrupt -19 failed
usb.c: USB bus 1 deregistered


from lspci

00:0f.2 USB Controller: ServerWorks OSB4/CSB5 USB Controller (rev 04)
(prog-if 10 [OHCI])
Subsystem: ServerWorks: Unknown device 0220
Flags: medium devsel, IRQ -19
Memory at fcafe000 (32-bit, non-prefetchable) [size=4K]

--
Brian Beattie | Experienced kernel hacker/embedded systems
[email protected] | programmer, direct or contract, short or
http://www.beattie-home.net | long term, available immediately.

"Honor isn't about making the right choices.
It's about dealing with the consequences." -- Midori Koto


2003-11-14 16:04:09

by Brian Beattie

[permalink] [raw]
Subject: Re: serverworks usb under 2.4.22

On Fri, 2003-11-14 at 02:51, Ingo Oeser wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi Brian,
> hi lkml,
>
> On Friday 14 November 2003 01:17, Brian Beattie wrote:
> > I've got a system with a Super Micro P3 dual processor board. This
> > board uses the Serverworks chipset and the 2.4.22 kernel is unable to
> > allocate an IRQ when initializing the USB (usb-ohic) interface. This
> > board works fine under 2.4.20 and 2.4.21.
>
> Which Serverworks chipset? There are various.

I posted that info ealier today.
>
> I for one need to pass "noapic" on the kernel command line. Otherwise
> the IRQ routing is broken, I can't get the USB IRQ and the kernel complains.
> a lot about a broken APIC IRQ routing.

nopic did not seem to help

--
Brian Beattie | Experienced kernel hacker/embedded systems
[email protected] | programmer, direct or contract, short or
http://www.beattie-home.net | long term, available immediately.

"Honor isn't about making the right choices.
It's about dealing with the consequences." -- Midori Koto