From owner-freebsd-usb@FreeBSD.ORG Tue Nov 29 21:50:51 2005 Return-Path: X-Original-To: freebsd-usb@freebsd.org Delivered-To: freebsd-usb@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4306F16A41F; Tue, 29 Nov 2005 21:50:51 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail6.speedfactory.net [66.23.216.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id 22A0843D75; Tue, 29 Nov 2005 21:50:44 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.5b3) with ESMTP id 2828839 for multiple; Tue, 29 Nov 2005 16:50:27 -0500 Received: from localhost (john@localhost [127.0.0.1]) by server.baldwin.cx (8.13.1/8.13.1) with ESMTP id jATLoZ77074918; Tue, 29 Nov 2005 16:50:38 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: jpeg@thilelli.net Date: Tue, 29 Nov 2005 16:50:06 -0500 User-Agent: KMail/1.8.2 References: <49704.192.168.1.18.1113475314.squirrel@webmail.thilelli.net> <200504150217.37985.jhb@FreeBSD.org> <60391.192.168.1.18.1113571878.squirrel@webmail.thilelli.net> In-Reply-To: <60391.192.168.1.18.1113571878.squirrel@webmail.thilelli.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200511291650.08922.jhb@freebsd.org> X-Spam-Status: No, score=-2.8 required=4.2 tests=ALL_TRUSTED autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on server.baldwin.cx X-Server: High Performance Mail Server - http://surgemail.com r=1653887525 Cc: freebsd-acpi@freebsd.org, freebsd-usb@freebsd.org, bug-followup@freebsd.org Subject: Re: usb/74989: (regression) Lost USB support between 5.2.1-RELEASE and 5.3-RELEASE on K7T266 Pro2. X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Nov 2005 21:50:51 -0000 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 <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org