Vxworks USB host controller drivers - VxWorks

This is a discussion on Vxworks USB host controller drivers - VxWorks ; Hi All, This was regarding the Vxworks USB Host Controller drivers. The USB Host Controller drivers in Vxworks are attached to the USB Core(USBD) by the API '...HcdAttach()'. If any new devices are attached to the USB ports, the request ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Vxworks USB host controller drivers

  1. Vxworks USB host controller drivers

    Hi All,
    This was regarding the Vxworks USB Host Controller drivers.

    The USB Host Controller drivers in Vxworks are attached to the USB
    Core(USBD) by the API '...HcdAttach()'. If any new devices are attached
    to the USB ports, the request for the same gets routed through the host
    controller driver to the USBD from wherein the corresponding class
    driver for the device is loaded so as to perform communication with the
    device. These class drivers in turn are registered to the io system as
    they are loaded in to the system.

    I had a query regarding an implementation of a customized USB driver
    which has functionalities of the host controller driver, USBD and also
    the class driver within it. There is a single layer implementing all of
    these three drivers within a single driver and this driver is supposed
    to communicate with a customized application that we are going to
    develop(not supposed to work with any standard applications like the
    file system etc.).

    Is it necessary that for our this customized driver, we register the
    driver with the io system? or is it that we need not require doing the
    driver registration to the io system and implement the
    application-driver interface through a function call
    interface(considering that in Vxworks there is no concept of user space
    and kernel space and the global address space can be shared with both
    the application and the driver)?

    If we do not register with the driver with io system will it be
    possible to register the interrupt handler for the USB host controller
    driver through the 'intConnect' system call? Will the handler provided
    through the API 'intConnect' in this case get invoked when we get an
    interrupt for the USB Host controller?

    Please help provide the info if any.

    Thanks,
    Monisha.


  2. Re: Vxworks USB host controller drivers

    If think you'd be ok using your own API and bypassing the driver layer
    provided by vxWorks. The ISR mechanism should be independent of the io
    drivers. Assuming the usb is connected via PCI, you should use
    pciIntConnect . pci interrupts done this way are chained - ie
    all the ISR on the same level will all get called. Using intConnect,
    depending on the BSP vendor, sometimes they chain all the ISRs, and
    sometimes they just replace the one ISR on the vector.

    If your BSP has it, so a sysIsrShow after the "connect" is called - it
    may list them all. Otherwise, you have to write a command to go
    throught the intTable yourself.

    As a test, you can do an "connect" from the shell, and make logMsg the
    ISR - that should output a message after the interrrupt.

    Note someone will still have to "clear" the interrupt, otherwise,
    you'll soon get a workQpanic.

    Good luck,
    lc


+ Reply to Thread