The USB 2.0 standard supports 3 speed levels:
USB 2.0 compatibility doesn't guarantee support of High Speed (480MBit/s) operation. In order to use High Speed with a Colibri module, an external controller (e.g. ISP1761) is needed.
Toradex provides schematics and a driver to add a ISP1761 or ISP1762 to the Colibri.
There is also the possibility to add a UTMI transceiver if you need only the USB 2.0 High Speed device function for the Colibri PXA300 or Colibri PXA320. (Toradex has not tested this function, yet)
The PXA310 has a USB 2.0 480MBit (High Speed) device. But only device, not Host.
The Colibri Tegra modules support USB 2.0 High Speed host and device.
Starting with WinCE 1.1 and Linux 2.0 images, USB speed is configured to run up to high speed by default.
Older images by default were configured to run at full speed only.
The following registry keys need to be present in order to enable high speed USB:
[HKLM\Drivers\Builtin\USBEHCI1] HighSpeed = dword:1 ;default=1 -> High Speed (BSP V1.1 and higher) [HKLM\Drivers\Builtin\USBEHCI3] HighSpeed = dword:1 ;default=1 -> High Speed (BSP V1.1 and higher) [HKLM\Drivers\Builtin\USBFN] HighSpeed = dword:1 ;default=1 -> High Speed (BSP V1.1 and higher)
In the bootloader V1.1b2 and newer the RNDIS download is by default set to high speed. To set it to full speed you need to change the configblock setting:
boot.usbhs=0
'usb_high_speed=1' must be present in the kernel command line. This can be achieved by changing the u-boot environment as follows:
U-Boot 2011.06 (Mar 22 2012 - 18:53:07) TEGRA2 DRAM: 512 MiB NAND: 1024 MiB MMC: Tegra2 SD/MMC: 0 Board: Toradex Colibri T20 Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 Tegra2 # Tegra2 # printenv defargs defargs=video=tegrafb vmalloc=248M Tegra2 # setenv defargs 'video=tegrafb vmalloc=248M usb_high_speed=1' Tegra2 # save Saving Environment to NAND... Erasing Nand... Erasing at 0xe00000 -- 100% complete. Writing to Nand... done Tegra2 # boot
The Apalis/Colibri iMX6, Colibri iMX7, Colibri iMX8X and Colibri Vybrid modules support USB 2.0 High Speed host and device.
USB speed is configured to run up to high speed by default. It is possible to force USB host and device to behave as full-speed only to avoid issues with carrier boards designed to support only 12MB/s transfers.
The i.MX 8X SoC used in the Colibri iMX8X does have support for USB 3.0. However, as stated in the Colibri iMX8X datasheet the Colibri Standard does not feature pins for the extra SuperSpeed signals. Therefore, the interface speed is limited to USB 2.0 High-Speed.
The following registry keys can be set to 0 to disable high-speed support.
[HKLM\Drivers\Builtin\HCD_HSH1] HighSpeed = dword:1 ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher) [HKLM\Drivers\Builtin\HCD_HSH2] HighSpeed = dword:1 ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher) [HKLM\Drivers\Builtin\USBFN] HighSpeed = dword:1 ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher) [HKLM\Drivers\Builtin\UsbOt\Hcd] HighSpeed = dword:1 ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher) [HKLM\Drivers\Builtin\UsbOt\USBFN] HighSpeed = dword:1 ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher)
USB speed can be selected using the maximum-speed
property (see Documentation/devicetree/bindings/usb/generic.txt). Please refer to the Device Tree Customization article on how to alter the device tree. In practice you should set that property in your Carrier Board level device tree with something like this:
&usbh1 {
maximum-speed = "full-speed";
}
Newer Carrier Boards like the Colibri Evaluation Board V3.1 or the Iris carrier board support USB 2.0 high speed.
The Colibri Evaluation Board V2.1, Orchid, and Protea carrier board are not designed for USB 2.0 high speed.
However, for test purposes, it is possible to modify the boards to support USB 2.0 High Speed. Please note that this modification voids the warranty. You will also remove the ESD protection from the USB port.