usb/74989: (regression) Lost USB support between 5.2.1-RELEASE
and 5.3-RELEASE on K7T266 Pro2.
John Baldwin
jhb at freebsd.org
Fri Dec 2 13:11:54 GMT 2005
On Thursday 01 December 2005 04:34 pm, Julien Gabel wrote:
> >> I applied this patch, rebuild and installed the kernel, set the
> >> loader.conf directive `hint.apic.0.disabled' to "0" and reboot on the
> >> system. Sadly, the same behaviour happened (as before), i.e. USB mouse
> >> simply hang, USB thumbdrive doesn't work, etc.
> >>
> >> The patch was applied on src/sys/dev/acpica/acpi_pci_link.c before your
> >> last commit on RELENG_6 (version 1.44.2.4, 2005/11/30 16:03:55). Don't
> >> know if this may change something or not in this case.
> >
> > Well, I can't get to your dmesg's anymore. If I understand correctly,
>
> Yes, sorry: the layout of the website was changed recently. Here are
> the corresponding files (using RELENG_5 at this time):
> http://www.thilelli.net/~jgabel/store/pub/PR/74989/
Ok, yours is a more odd case. :) This is debatably a bug in your ASL, but I
think we can work around it. It is routing your USB interrupts to IRQ 10 but
is not using a link device to do it, and it is not including an INTR_OVERRIDE
entry in the MADT to change IRQ 10 from the default of edge/trigger to
level/low. The patch below forces all hard-wired PCI interrupts routed via
ACPI to be level/low. This patch should apply both to HEAD and 6.x and maybe
5.x.
Index: acpi_pcib.c
===================================================================
RCS file: /host/cvs/usr/cvs/src/sys/dev/acpica/acpi_pcib.c,v
retrieving revision 1.58
diff -u -r1.58 acpi_pcib.c
--- acpi_pcib.c 7 Nov 2005 21:48:45 -0000 1.58
+++ acpi_pcib.c 2 Dec 2005 13:08:16 -0000
@@ -252,9 +252,11 @@
if (bootverbose)
device_printf(pcib, "slot %d INT%c hardwired to IRQ %d\n",
pci_get_slot(dev), 'A' + pin, prt->SourceIndex);
- if (prt->SourceIndex)
+ if (prt->SourceIndex) {
interrupt = prt->SourceIndex;
- else
+ BUS_CONFIG_INTR(dev, interrupt, INTR_TRIGGER_LEVEL,
+ INTR_POLARITY_LOW);
+ } else
device_printf(pcib, "error: invalid hard-wired IRQ of 0\n");
goto out;
}
> More precisely, here is a little tab... to be more accurate (i hope):
>
> ---------------------------------------
> USB support | ACPI | APIC |
> ------------------------
>
> | on | off | on | off |
>
> ---------------------------------------
> Did not boot(*)| | XX | | XX |
> ---------------------------------------
> (*) The boot disk seems not be able to be used for the root mount, i.e.
> ufs:/dev/ad0s1a in my case.
If you could get a verbose dmesg for this case using a serial console I'd be
interested in looking at that too.
--
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