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

Reply via email to