usb/74989: (regression) Lost USB support between 5.2.1-RELEASE
and 5.3-RELEASE on K7T266 Pro2.
John Baldwin
jhb at freebsd.org
Tue Nov 29 22:00:26 GMT 2005
The following reply was made to PR usb/74989; it has been noted by GNATS.
From: John Baldwin <jhb at freebsd.org>
To: jpeg at thilelli.net
Cc: freebsd-acpi at freebsd.org, bug-followup at freebsd.org,
freebsd-usb at freebsd.org
Subject: Re: usb/74989: (regression) Lost USB support between 5.2.1-RELEASE and 5.3-RELEASE on K7T266 Pro2.
Date: Tue, 29 Nov 2005 16:50:06 -0500
On Friday 15 April 2005 09:31 am, Julien Gabel wrote:
> >> I made some progress here. After playing with BIOS settings, i am now
> >> able to:
> >> - Boot with ACPI enable (shutdown -p works as expected now);
> >> - Use USB devices.
> >>
> >> In order to do that, i had to totally disable "APIC Function" in the
> >> BIOS. With "APIC Function" enabled, neither version 1.4 nor 1.1 of the
> >> "MPS Table Version" settings solved my problem.
> >>
> >> So, although i need to disable "APIC Function", all seems to works
> >> correctly together: ACPI support and USB support. As a side note, i
> >> did not encountered anymore the interrupt storm on the uhci USB host
> >> controller driver.
> >>
> >> Maybe can someone explain me what may be wrong with "APIC Function",
> >> and if there is some drawbacks to disable it (or what is the purpose
> >> of this setting)?
> >
> > APIC is used to route interrupts differently. You can also disable it
> > from the loader with 'hint.apic.0.disabled=1'. I've looked at your
> > dmesg's, and the problem is that in the ACPI case the IRQ 10 that your
> > USB controllers are using is configured as an ISA IRQ (edge/high). For
> > now you can either disable APIC or ACPI as a workaround until I figure
> > out a better solution.
>
> Thanks. I effectively prefer turn APIC off via the loader configuration
> than from the BIOS settings, i think it is far more easily to remember
> what i have done from this place.
>
> I can try patch(es) or make test(s) without problem on this machine, if
> any. Thanks a lot.
Actually, can you try this patch:
Index: acpi_pci_link.c
===================================================================
RCS file: /host/cvs/usr/cvs/src/sys/dev/acpica/acpi_pci_link.c,v
retrieving revision 1.48
diff -u -r1.48 acpi_pci_link.c
--- acpi_pci_link.c 1 Nov 2005 22:44:07 -0000 1.48
+++ acpi_pci_link.c 28 Nov 2005 13:03:29 -0000
@@ -859,7 +859,18 @@
if (!link->l_routed &&
PCI_INTERRUPT_VALID(link->l_irq)) {
link->l_routed = TRUE;
+ /*
+ * Some BIOSen are broken and actually set
+ * some interrupts to active-high with level
+ * trigger. Workaround this by hard-coding
+ * active-low and level-trigger.
+ */
+#if 0
acpi_config_intr(dev, resource);
+#else
+ BUS_CONFIG_INTR(dev, link->l_irq,
+ INTR_TRIGGER_LEVEL, INTR_POLARITY_LOW);
+#endif
pci_link_interrupt_weights[link->l_irq] +=
link->l_references;
}
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-usb
mailing list