Date: Sun, 07 Aug 2005 02:53:20 -0400 From: Joe Marcus Clarke <marcus@marcuscom.com> To: current@freebsd.org Subject: USB not working on 6.0-BETA2 on ICH7 [long] Message-ID: <1123397601.852.32.camel@shumai.marcuscom.com>
next in thread | raw e-mail | index | archive | help
--=-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+--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1123397601.852.32.camel>