Mike Nuss wrote: > Hi, > > We are developing a board using the AMCC PPC440EPx CPU, and we've > included the NEC PD720101 host controller on the PCI bus. I've tested > a similar configuration using the Sequoia reference board with a > Belkin card containing the same NEC chip, and EHCI works fine there. > However, on our board, I am seeing some issues. > > When I plug in a high-speed hub, the EHCI driver hangs. I added a lot > of debugging to usbcore to try to find the failure, and it seems that > the very first URB sent to the device times out, and cannot be > reclaimed by the HCD. > > usb 2-1: new high speed USB device using ehci_hcd and address 2 > usb 2-1: done setting up TT records > usb 2-1: get descriptor, try 1/2 > usb 2-1: issue GET_DESCRIPTOR > start wait for urb (cf91c3c0/c05bde68), timeout 1000 > ehci_urb_enqueue cf91c3c0 > timed out
Are you sure that IRQs are properly routed? > usb 2-1: khubd timed out on ep0in len=0/64 > killing timed out urb > usb_kill_urb cf91c3c0 > usb_hcd_unlink urb cf91c3c0 > get urb lock > get hcd data lock > do unlink1 > ehci_urb_dequeue cf91c3c0 > unlink1 done > usb_hcd_unlink_urb is done > wait for use_count=0 > use_count is now 1 > > The final messages are in usb_kill_urb. The use_count on the urb never > reaches 0, and ehci-hcd can't be unloaded (rmmod hangs). I dumped the > async schedule using sysfs and saw: > > reclaim = > qh/ff106080 dev0 hs ep0 40406000 40000000 (00000000 data0 nak0) > ff107180+setup len=8 00080e80 urb cf91c3c0 > ff1070c0 in len=64 80400d80 urb cf91c3c0 > ff107120 out len=0 80008c80 urb cf91c3c0 > > So the URB is still outstanding, if I am reading this correctly. Any > idea what could be going on here? I'd speculate IRQ routing problems. > I'm very familiar with OHCI's queue > management now, but not at all with EHCI's, so I'm not sure what > condition the HCD is waiting for to free that URB. I'm hoping we made > an obvious mistake on our design but I'm not sure what to look for. > The only differences specific to the USB hardware that I know of are: > 1) we are using a 48MHz clock instead of 30MHz, and 2) we do not > support port power control. We have set the appropriate bits in the > device to reflect those changes. > > Thanks, > Mike Nuss > - To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
