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