On Thu, 2 Sep 2004, Patrick Agrain wrote: > Hi everybody, > > I'm trying to decode the start sequence of an UHCI controler in a 2.4.x > kernel version. Yes, I know, but we have to work with it ;-) > > All the reset and registers programming are clear in my mind, but there are > several thing on which I have a doubt. > > The register USBFLBASEADD associated with FRNUM represent the frame > currently processed ?
No, FRNUM is the current frame. FLBASEADD is the starting location in memory for the frame list (you must mask away the 12 low-order bits). > And FRNUM is automatically incremented after each frame ( under condition > the frame ends well ) ? Yes. > in usb-uhci.c : alloc_uhci( ) , we init_skel ( ). Why is there an incorrect > PID in the TD of the end_chain ? I think it doesn't matter. The TD isn't marked Active so the HC won't use it. > On the other hand, in usb-uhci() : start_hc(), I presume that the > controller is started as soon as the bit USBCMD_RS is set ? Yes. > So the controller goes along our skel and should stops working when it > encounters the TD with the incorrect PID. > Is it right ? No. See above. But you could change the code to store a valid PID there if you want. > If yes, that would explain why the bit HC_Halted is set in the Status register. > > I suppose that I have to restart the controller ( after filling the QH and > TDs and reset the FRNUM register ) if I wish to see anything goes out on > the bus ? Of course. If the controller is stopped it won't send anything to the bus. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel