Re: USB host controller and client driver



On Jan 24, 11:34 am, "aman" <amitjob...@xxxxxxxxx> wrote:
Henrik

Realy appreciate your reply on Host controller and Function controller
Drivers.

Well I am absolutelly clear now with host controller driver

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.

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 Viklund
http://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 -

.



Relevant Pages

  • ieee1394 and fbdev oops in 2.6.3rc2
    ... Found UniNorth PCI host bridge at 0xf0000000. ... Firmware bus number: 0->0 ... PMU driver 2 initialized for Core99, ... ohci_hcd 0001:02:08.0: new USB bus registered, ...
    (Linux-Kernel)
  • SunBlade150 (Sparc64) random system freeze
    ... 00:08.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link ... 00:0c.3 USB Controller: Sun Microsystems Computer Corp. RIO USB ... usbcore: registered new driver usbfs ...
    (Debian-User)
  • limited bandwidth with SiS900 onboard NIC
    ... 00:02.7 Multimedia audio controller: Silicon Integrated Systems ... 00:03.0 USB Controller: Silicon Integrated Systems USB 1.0 ... Real Time Clock Driver v1.12 ... hub 1-0:1.0: USB hub found ...
    (Linux-Kernel)
  • Nforce2 sporadic hangs/freezes
    ... USB logitech quickcam express ... 00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev ... Serial driver version 5.05c with MANY_PORTS SHARE_IRQ ...
    (comp.os.linux.hardware)
  • Re: USBIP protocol
    ... 'Client' and 'Server' are totally not clear. ... machine in the closet without USB devices, or is the machine with the ... The controller machine now gets a device 9-2 which accesses the target ... client and hci-hcd is a host controller driver on the server. ...
    (Linux-Kernel)