From owner-freebsd-usb@FreeBSD.ORG Mon Jan 12 18:05:26 2009 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7761F106566B for ; Mon, 12 Jan 2009 18:05:26 +0000 (UTC) (envelope-from fabien.lementec@gmail.com) Received: from mail-bw0-f20.google.com (mail-bw0-f20.google.com [209.85.218.20]) by mx1.freebsd.org (Postfix) with ESMTP id 02D838FC20 for ; Mon, 12 Jan 2009 18:05:25 +0000 (UTC) (envelope-from fabien.lementec@gmail.com) Received: by bwz13 with SMTP id 13so6746932bwz.19 for ; Mon, 12 Jan 2009 10:05:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=tveo0y/VabQctXBY2dQc28FshGCf7As0E/VIduotneo=; b=C6cGW2Ia4I6pCo/6ScWctGl5xltBXDIs+IAFsD/+pjp8JTCd7AfCC2nsxBhCuCESSr IfkQGd+u6AZjabzfgwG0QlWvTl5dykpPNZ4FYZx2YMbK60HYvzNdY+9xMbKIUGykRAoc /fvfkTFpM5dltURhTUBRFiu87cpq61L3nVlWc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=RhKvywyDMHF2ktqvMyglpAcBQ40Uusv+O5bEkW3E5N73rSTn3wXRpsqg5uQLsrkMGU uIMK2LHYtJccMLvmQ/QT+1q2N3YjojnxgkVFfC7UiwSH9qNcW6XVuqjmM9RvshZidbEW IBbTYWAP3AZrF0bZmNOM65ROhhncKhMquDVPA= Received: by 10.223.127.8 with SMTP id e8mr21128405fas.10.1231781907010; Mon, 12 Jan 2009 09:38:27 -0800 (PST) Received: by 10.223.122.10 with HTTP; Mon, 12 Jan 2009 09:38:26 -0800 (PST) Message-ID: Date: Mon, 12 Jan 2009 18:38:26 +0100 From: "lementec fabien" To: freebsd-usb@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [ prevent ehci_takecontroller from looping at infinite ] 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: Mon, 12 Jan 2009 18:05:26 -0000 Hi, On an Acer Aspire 5500, freebsd is hanging in usb/ehci_pci in the ehci_takecontroller function. The device pci conf space reads invalid values 0xffffffff, making the function looping at infinite, thus never entering ehci_init. I dont know if the problem does not come from earlier, but I did the following patch: --- orig/sys/dev/usb/ehci_pci.c 2009-01-11 06:14:12.000000000 +0100 +++ new/sys/dev/usb/ehci_pci.c 2009-01-11 06:15:14.000000000 +0100 @@ -549,6 +549,10 @@ cparams = EREAD4(sc, EHCI_HCCPARAMS); + /* prevent from looping ad infinite. ehci_init will fail. */ + if (cparams == 0xffffffff) + return ; + /* Synchronise with the BIOS if it owns the controller. */ for (eecp = EHCI_HCC_EECP(cparams); eecp != 0; eecp = EHCI_EECP_NEXT(eec)) { @@ -584,6 +588,9 @@ int eecp; cparams = EREAD4(sc, EHCI_HCCPARAMS); + if (cparams == 0xffffffff) + return ; + for (eecp = EHCI_HCC_EECP(cparams); eecp >= 0x40; eecp = EHCI_EECP_NEXT(eec)) { eec = pci_read_config(self, eecp, 4); I hop it helps, Fabien. -- "What I cannot create I dont understand"