usb/74989: (regression) Lost USB support between 5.2.1-RELEASE
and 5.3-RELEASE on K7T266 Pro2.
Julien Gabel
jpeg at thilelli.net
Wed Nov 30 19:50:07 GMT 2005
The following reply was made to PR usb/74989; it has been noted by GNATS.
From: "Julien Gabel" <jpeg at thilelli.net>
To: "John Baldwin" <jhb at freebsd.org>
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: Wed, 30 Nov 2005 20:49:36 +0100 (CET)
>>>> 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.
--
-jpeg.
More information about the freebsd-usb
mailing list