From owner-freebsd-current@FreeBSD.ORG Sun Aug 7 06:53:23 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7300C16A484 for ; Sun, 7 Aug 2005 06:53:23 +0000 (GMT) (envelope-from marcus@marcuscom.com) Received: from creme-brulee.marcuscom.com (creme-brulee.marcuscom.com [24.172.16.118]) by mx1.FreeBSD.org (Postfix) with ESMTP id 15EC743D9A for ; Sun, 7 Aug 2005 06:53:22 +0000 (GMT) (envelope-from marcus@marcuscom.com) Received: from shumai.marcuscom.com (shumai.marcuscom.com [192.168.1.4]) by creme-brulee.marcuscom.com (8.13.3/8.13.3) with ESMTP id j776sCul004474 for ; Sun, 7 Aug 2005 02:54:12 -0400 (EDT) (envelope-from marcus@marcuscom.com) From: Joe Marcus Clarke To: current@freebsd.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XWpQRvJ4oSugfyKShfc+" Organization: MarcusCom, Inc. Date: Sun, 07 Aug 2005 02:53:20 -0400 Message-Id: <1123397601.852.32.camel@shumai.marcuscom.com> Mime-Version: 1.0 X-Mailer: Evolution 2.2.3 FreeBSD GNOME Team Port Cc: Subject: USB not working on 6.0-BETA2 on ICH7 [long] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Aug 2005 06:53:23 -0000 --=-XWpQRvJ4oSugfyKShfc+ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I'm trying to get USB 2.0 working on my Dell Precision 380 that has a USB ICH7 chipset. FreeBSD detects the controllers, but they are all halted when devices are detected. Here is a verbose boot with USB_DEBUG enabled: http://www.marcuscom.com/downloads/NEW-SHUMAI.dmesg. Here is what I get when I insert a device after the machine has booted: usb0: host controller halted usb0 regs: cmd=3D0000, sts=3D0020, intr=3D000f, frnum=3D0771, flbase=3D0000= 0dc4, sof=3D0040, portsc1=3D0080, portsc2=3D0080 intrs=3D0 QH(0xc35e3f80) at 7d697f80: hlink=3D7d697fa2 elink=3D00000001 usb_new_device: set address 2 failed - trying a port reset usb_new_device: set address 2 failed - trying a port reset usb_new_device: set address 2 failed - trying a port reset usb_new_device: set address 2 failed uhub_explore: usb_new_device failed, error=3DSET_ADDR_FAILED uhub3: device problem (SET_ADDR_FAILED), disabling port 2 If I build a kernel without ehci, I get working USB, but only if the device is inserted prior to boot. That is, usbd does not see any ATTACH events. If I have ehci compiled in, and a device is present during boot, I get a panic: usb3: host controller halted usb3 regs: cmd=3D0000, sts=3D0020, intr=3D000f, frnum=3D0347, flbase=3D0000= 0d1c, sof=3D0040, portsc1=3D01a5, portsc2=3D0093 intrs=3D0 QH(0xc3659f80) at 7d5edf80: hlink=3D7d5ecf62 elink=3D00000001 usbd_new_device: addr=3D2, getting first desc failed uhub_explore: usb_new_device failed, error=3DIOERROR uhub3: device problem (IOERROR), disabling port 1 panic: usbd_transfer: not done cpuid =3D 0 KDB: enter: panic [thread pid 0 tid 0 ] Stopped at kdb_enter+0x2b: nop db> trace Tracing pid 0 tid 0 td 0xc06f7840 kdb_enter(c069f83d) at kdb_enter+0x2b panic(c069aa93,4,c35da43c,c35da400,0) at panic+0x127 usbd_transfer(c35da400,c0c20cd8,c04ca43d,c35da400,c36440b0) at usbd_transfe= r+0x13e usbd_sync_transfer(c35da400,c36440b0,1,c0c20cec,d) at usbd_sync_transfer+0x= 11 usbd_do_request_flags_pipe(c3644200,c3644180,c0c20d30,c36440c4,0) at usbd_d= o_request_flags_pipe+0x5d usbd_do_request_flags(c3644200,c0c20d30,c36440c4,0,0) at usbd_do_request_fl= ags+0x20 usbd_do_request(c3644200,c0c20d30,c36440c4,a3,40002) at usbd_do_request+0x1= a usbd_get_port_status(c3644200,2,c36440c4) at usbd_get_port_status+0x39 uhub_explore(c3644200,c34b7904,c0c20d88,c04e4556,0) at uhub_explore+0x85 usb_cold_explore(0,c1ec00,c1e000,0,c0434245) at usb_cold_explore+0x4f mi_startup() at mi_startup+0x96 begin() at begin+0x2c (gdb) l *usbd_transfer+0x13e 0xc04c9b16 is in usbd_transfer (/usr/src/sys/dev/usb/usbdi.c:343). 338 if (err !=3D USBD_IN_PROGRESS) 339 return (err); 340 s =3D splusb(); 341 if (!xfer->done) { 342 if (pipe->device->bus->use_polling) 343 panic("usbd_transfer: not done"); 344 tsleep(xfer, PRIBIO, "usbsyn", 0); 345 } 346 splx(s); 347 return (xfer->status); Any help would be appreciated. Thanks. Joe --=20 PGP Key : http://www.marcuscom.com/pgp.asc --=-XWpQRvJ4oSugfyKShfc+ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQBC9a/gb2iPiv4Uz4cRAvyPAJ9XOIVBcTD7oXoy9+MV7UTE8SXM5gCcCbpZ dsDpSKphflvnY9YIpIewFws= =yADY -----END PGP SIGNATURE----- --=-XWpQRvJ4oSugfyKShfc+--