Home |
Function RTURegisterEHCI Function RTUWaitInitialEnumDone |
Function RTURegisterEHCIRTURegisterEHCI registers an EHCI USB host controller with RTUSB-32: void RTURegisterEHCI(void * MemBase, BYTE IRQ); ParametersMemBasePointer to the host controller's memory mapped registers. This pointer must refer to the virtual address space and must allow read/write access. IRQInterrupt request number used by the host controller. For PCI-based host controllers, the register address and IRQ value can be read from the PCI configuration space, as done by all demo programs in function FindUSBControllers in source file UsbInit.cpp. The root hub of EHCI controllers can only handle USB 2.0 compatible High-Speed devices. If you also need to support Low-Speed and Full-Speed devices connected to the root hub (as opposed to external hubs), the EHCI's companion UHCI and/or OHCI controllers (usually present on the same PCI card) must be registered after the EHCI controller. Note that Low-Speed and Full-Speed devices are supported by the EHCI host controller even if no companion controller has been registered if such devices are only connected behind a High-Speed hub. EHCI controllers are PCI resource hogs and exhibit a higher I/O latency for Full-Speed devices than UHCI and OHCI controllers. Therefore, it is recommended to register EHCI controllers only if the application will use High-Speed devices or if it needs more total bandwidth than available on a Full-Speed bus. EHCI controllers usually have companion UHCI/OHCI controllers which can be used even if the EHCI controller is not initialized. All High-Speed devices are required to also work in Full-Speed mode. For more information see function FindUSBControllers.
|