usb/74989: (regression) Lost USB support between 5.2.1-RELEASE and 5.3-RELEASE on K7T266 Pro2.

John Baldwin jhb at freebsd.org
Thu Dec 1 17:08:52 GMT 2005


On Wednesday 30 November 2005 02:49 pm, 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;
> >  			}
>
> 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, USB 
works for you so long as you have APIC disabled, both with ACPI enabled and 
disabled correct?  And USB is broken if you have both ACPI and APIC enabled.  
Have you tried booting with ACPI disabled (hint.acpi.0.disabled=1) but with 
APIC enabled?  Does it work then or break?

-- 
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