From owner-freebsd-stable@FreeBSD.ORG Thu Jul 31 21:40:18 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1E2BB37B401; Thu, 31 Jul 2003 21:40:18 -0700 (PDT) Received: from ion.gank.org (ion.gank.org [198.78.66.164]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6D7B143F85; Thu, 31 Jul 2003 21:40:17 -0700 (PDT) (envelope-from craig@meoqu.gank.org) Received: from localhost (ion.gank.org [198.78.66.164]) by ion.gank.org (GankMail) with ESMTP id A57A02C95A; Thu, 31 Jul 2003 23:40:16 -0500 (CDT) Received: from ion.gank.org ([198.78.66.164]) by localhost (ion.gank.org [198.78.66.164]) (amavisd-new, port 10024) with LMTP id 37021-04; Thu, 31 Jul 2003 23:40:16 -0500 (CDT) Received: from aldaris.auir.gank.org (dsl081-113-221.dfw1.dsl.speakeasy.net [64.81.113.221]) by ion.gank.org (GankMail) with ESMTP id 9602C2BB86; Thu, 31 Jul 2003 23:40:15 -0500 (CDT) From: Craig Boston To: freebsd-gnats-submit@FreeBSD.org, b.j.casavant@ieee.org Date: Thu, 31 Jul 2003 23:40:45 -0500 User-Agent: KMail/1.5.2 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_N9eK/47zbbR/YX/" Message-Id: <200307312340.45844.craig@meoqu.gank.org> cc: freebsd-stable@freebsd.org Subject: Re: kern/55094: Intel USB 2.0 unrecognized (partial patch provided) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Aug 2003 04:40:18 -0000 --Boundary-00=_N9eK/47zbbR/YX/ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Saw your post on -stable about this, and decided to take a look since I'm about to get my hands on a similar (82801DB) motherboard. If it's the USB 2.0 controller that's isn't being detected, shouldn't ehci by patched instead of uhci...? You may want to give the attached, completely untested, patch a try. I.e. it compiles on my box, but I don't have any hardware to actually test it on yet. Might theoretically work depending on how closely Intel followed the EHCI spec. Note that the patch includes entries for both the DB and EB variants of the chip. I'm not sure why the code to pick up generic EHCI devices didn't find it though. Craig --Boundary-00=_N9eK/47zbbR/YX/ Content-Type: text/plain; charset="us-ascii"; name="intel-ehci.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="intel-ehci.patch" --- sys/dev/usb/ehci_pci.c.orig Thu Jul 31 23:22:28 2003 +++ sys/dev/usb/ehci_pci.c Thu Jul 31 23:28:03 2003 @@ -80,6 +80,7 @@ #define PCI_EHCI_VENDORID_AMD 0x1022 #define PCI_EHCI_VENDORID_APPLE 0x106b #define PCI_EHCI_VENDORID_CMDTECH 0x1095 +#define PCI_EHCI_VENDORID_INTEL 0x8086 #define PCI_EHCI_VENDORID_NEC 0x1033 #define PCI_EHCI_VENDORID_OPTI 0x1045 #define PCI_EHCI_VENDORID_SIS 0x1039 @@ -87,6 +88,13 @@ #define PCI_EHCI_DEVICEID_NEC 0x00e01033 static const char *ehci_device_nec = "NEC uPD 720100 USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_INTEL_DB 0x24cd8086 +static const char *ehci_device_ich5_db = + "Intel 82801DB (ICH5) USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_INTEL_EB 0x24dd8086 +static const char *ehci_device_ich5_eb = + "Intel 82801EB (ICH5) USB 2.0 controller"; + static const char *ehci_device_generic = "EHCI (generic) USB 2.0 controller"; #define PCI_EHCI_BASE_REG 0x10 @@ -103,6 +111,10 @@ switch (device_id) { case PCI_EHCI_DEVICEID_NEC: return (ehci_device_nec); + case PCI_EHCI_DEVICEID_INTEL_DB: + return (ehci_device_ich5_db); + case PCI_EHCI_DEVICEID_INTEL_EB: + return (ehci_device_ich5_eb); default: if (pci_get_class(self) == PCIC_SERIALBUS && pci_get_subclass(self) == PCIS_SERIALBUS_USB @@ -198,6 +210,9 @@ break; case PCI_EHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); + break; + case PCI_EHCI_VENDORID_INTEL: + sprintf(sc->sc_vendor, "Intel"); break; case PCI_EHCI_VENDORID_NEC: sprintf(sc->sc_vendor, "NEC"); --Boundary-00=_N9eK/47zbbR/YX/--