kern/55094: Intel USB 2.0 unrecognized (partial patch provided)

Craig Boston craig at meoqu.gank.org
Thu Jul 31 21:50:22 PDT 2003


The following reply was made to PR kern/55094; it has been noted by GNATS.

From: Craig Boston <craig at meoqu.gank.org>
To: freebsd-gnats-submit at FreeBSD.org, b.j.casavant at ieee.org
Cc: freebsd-stable at freebsd.org
Subject: Re: kern/55094: Intel USB 2.0 unrecognized (partial patch provided)
Date: Thu, 31 Jul 2003 23:40:45 -0500

 --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/--
 


More information about the freebsd-bugs mailing list