Re: USB host controller and client driver



Henrik

Well now things seem to be much more clear now :) but much more
complicated also :(
We have "host" and "function" in WinCE

The WinCE ported processor(Intel Xscale processor) when acts as host ,
then the "host controller " and "host client driver " come into picture
within this WinCE ported processor.

And when the WinCE ported processor((Intel Xscale processor)) acts as
function , then "function controller" and "function client driver "
come into picture within the WinCE ported processor.

Is it correct.

And if this is correct, then

->let me know the software we need to have in "function" if it
communicates with "WinCE ported host processor".

->Whats the role of "function client driver" within WinCE ported
processor

Thanks & Regards

Aman


On Jan 24, 5:39 pm, "Henrik Viklund" <henrik.vikl...@xxxxxxxxx> wrote:
Doh! The last line should read:
The "client" (also called "class") is the layer that adds the
functionality to the
USB "function" and the "host" respectively, i.e RNDIS or MSD.

Henrik Viklundhttp://www.addlogic.se

On Jan 24, 1:35 pm, "Henrik Viklund" <henrik.vikl...@xxxxxxxxx> wrote:



On Jan 24, 1:07 pm, "Henrik Viklund" <henrik.vikl...@xxxxxxxxx> wrote:

On Jan 24, 11:34 am, "aman" <amitjob...@xxxxxxxxx> wrote:
What I have understood USB function drivers from your reply:-
"The USB function controller drvers come into picture only if your
WinCE ported processor (PXA27X) is to act as a client.

Correct.Um, I take that back, or rather, I realise we need to sort out some
definitions! With USB there's a certain amount of confusion when it
comes what one mean with "client". To avoid confusion I (and CE help
for the most part...) like to call the host "host", and the device that
connects to a host is called function (*not* client). The "client"
(also called "class") is the layer that adds the functionality to the
USB "function", i.e RNDIS or MSD.

Henrik Viklundhttp://www.addlogic.se

so the driver will load during boot time but since the USB protocol is
host centric , all the communications will be initiated by host so
"function controller client drivers" in client(WinCE ported processor
(PXA27X))doesnt make sense - although I am not sure about it. "Function
controller client drivers" should be in host only I suppose

Kindly vaklidate the above statement if I am correct.Um, No? There is no such thing as a "function controller client
driver", at least not in CE. There's the "function controller driver"
and there's the "function client driver" (sometimes refered to as the
function class driver). The same goes for CE's USB host -"host
controller driver" and "host client driver".

controller driver - abstracts hardware
client driver - adds useful functionality (MSD, RNDIS, HID etc.).

Also would appreciate if youu could make me available USB-OTG code for
Intel PXA27X processor for WinCE 5.0.
Please tell me about it since I have just started of with USB OTG
device driver development.AFAIK there is no OTG available. USB OTG is not supported by CE5 or
earlier so you're pretty much on your own I guess.

Henrik Viklundhttp://www.addlogic.se

Thanks & Regards

Aman

On Jan 24, 2:46 pm, "Henrik Viklund" <henrik.vikl...@xxxxxxxxx> wrote:

On Jan 24, 9:53 am, "aman" <amitjob...@xxxxxxxxx> wrote:

What I can assume that you are referring to client driver - that in
mine case will be a dll named - usbmsfn.dll which will actually be
available by building code corresping to client driver. So then how can
you diferentiate b/w Client driver and function drivers.There are host client drivers and there are function client drivers:

If we start with USB host. The USB host controller driver is
responsible for handling and abstracting the USB host controller
hardware into a well defined generic interface (in your case OHCI
compliant hardware controller). The host controller driver is loaded at
startup and is set up to detect any activity from the USB host
controller. When you plug in a usb device into the host connector the
host controller driver detects that something has been plugged in and
start to enumerate the device (figure out what device was plugged in).
Once it has figured that out it checks the registry for a suitable
*host* client driver and loads it. the client driver uses the host
controller driver's generic interface to communicate with the device.

In the case of USB function, the function controller driver is
responsible for handling and abstracting the USB function controller
hardware into a well defined generic interface. The USB function
controller driver loads at startup and also immediately load a
*function* client driver so that when plugged into a host it can
respond to the host's enumeration requests throgh the generic interface
exposed by the function controller driver.

Henrik Viklundhttp://www.addlogic.se

Also I would be greatful if you can validate my other statements :-

1. Always, during the boot time the USB host controller driver DLL -
ohci2.dll gets loaded. It is taken care by device manager.

2. This means that although my ohci2.dll gets loaded during boot time
but it starts its job only after device is attached . During this time
, control is given by device manager to HcdPdd_Init inbul_ohci.cpp
(C:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\INTEL\PXA27X\HCD)which then
initializes the OHCI card within host controller and then configures
the device.

Now I am not sure what exactly configuration check takes place ??
Whether its device id , vendor id only or subinterface class also ??

3. Then once this configuration check is over , Device ?Manager
actually loads the correponding client driver - ie maybe usbmsfn.dll by

means of ActivateDeviceex().

Thanks & Regards

Aman

On Jan 24, 12:36 pm, "Henrik Viklund" <henrik.vikl...@xxxxxxxxx>
wrote:

On Jan 24, 5:47 am, "aman" <amitjob...@xxxxxxxxx> wrote:

What is the role of function drivers ?? Are client drivers and host
drivers enough to handle all situations ??As you might know the USB protocol is asymetric -on one side you have
the USB host and to that you connect USB functions (in your case the
USB function is the USB mass storage device, and the host is your WinCE
device).

Now, due to the asymetry of the protocol (the host polls the
functions), if you want your device to be the USB function (think PDA
connecting to PC) you'd use the USB function drivers and special usb
function hardware rather than USB host drivers and hardware.

Henrik Viklundhttp://www.addlogic.se

Thanks & Regards

Amit- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -

.



Relevant Pages

  • Re: USB host controller and client driver
    ... Realy appreciate your reply on Host controller and Function controller ... Well I am absolutelly clear now with host controller driver ... "The USB function controller drvers come into picture only if your ...
    (microsoft.public.windowsce.platbuilder)
  • Re: USB host controller and client driver
    ... communicates with "WinCE ported host processor".Sorry, but the above sentence does not make any sense to me ... processorAs I've allready said, the function client driver ... Perhaps you should go get yourself a copy of "USB Complete" by Jan ... "The USB function controller drvers come into picture only if your ...
    (microsoft.public.windowsce.platbuilder)
  • Re: USB host controller and client driver
    ... "The USB function controller drvers come into picture only if your ... like to call the host "host", ... client driver - adds useful functionality. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: [2.6.30-rc2] usb reset during big file transfer and ext3 error
    ... main IDE HD to a USB external HD, I got errors from the USB host, the ... Controller during status update in the case where the host did not ...
    (Linux-Kernel)
  • Re: USB host controller and client driver
    ... The WinCE ported processorwhen acts as host, ... As I've allready said, the function client driver ... Perhaps you should go get yourself a copy of "USB Complete" by Jan ... "The USB function controller drvers come into picture only if your ...
    (microsoft.public.windowsce.platbuilder)