Question

I have a development board (FriendlyARM Mini210) with its respective BSP on WinCE R3. I need to connect the board to a USB device that, according to the vendor, requires the use of ehci as host driver. However the BSP uses OHCI instead.

My question is how can I "replace" OHCI for ehci driver on my platform?. For the record, this is what section USB section in platform.reg looks like:

IF BSP_NOUSBHCD !
IF BSP_NOUSBHCD
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\EHCI]
    "InterfaceType"=dword:0; Internal
    "Prefix"="HCD"
    "Dll"="ehci.dll"
    "Index"=dword:1
    "Order"=dword:2
    "Irq"=dword:90       ; USB EHCI Host Virtual IRQ = 144 (0x90), Physical IRQ = 55 (0x37)
    "SysIntr"=dword:12       ; (SYSINTR_FIRMWARE+1)
    "MemBase"=dword:EC200000    ;Physical Address
    "MemLen"=dword:1000
    "UseExistingSettings"=dword:0
    "HcdCapability"=dword:4      ; HCD_SUSPEND_ON_REQUEST
    "IntThreshCtrl"=dword:1      ; to check interrupt signal faster
ENDIF BSP_NOUSBHCD

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI]
    "InterfaceType"=dword:0; Internal
    "Prefix"="HCD"
    "Dll"="Ohci2.dll"
    "Index"=dword:2
    "Order"=dword:1
    "Irq"=dword:5b       ; USB OHCI Host Virtual IRQ = 91 (0x5B), Physical IRQ = 55 (0x37)
    "SysIntr"=dword:11       ; (SYSINTR_FIRMWARE+1)
    "MemBase"=dword:EC300000    ;Physical Address
    "MemLen"=dword:1000
    "UseExistingSettings"=dword:0
    "HcdCapability"=dword:4      ; HCD_SUSPEND_ON_REQUEST
ENDIF BSP_NOUSBHCD !
Était-ce utile?

La solution

Standard OHCI (and UHCI) or EHCI drivers are used for x86 devices and, of course, you need to have a compliant controller usually connected via PCI. On ARM devices you can have totally custom USB controllers or controllers that are similar to PC-based one but still you need a custom driver to manage things like clocks, GPIO muxing etc. If your SOC doesn't provide a USB 2.0 hi-speed controller (this is what it may be implied in the "ECHI" definition) you may not be able to connect that device or, at least, transfer data at the expected speed (the device may work also as USB 1.0 or 1.1, just reducing the speed and not using high-speed transfer but just full-speed ones).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top