I am working with a custom OMAP3 based platform. The hardware design is close to that of the OMAP3EVM. This custom platform is compatible with both the OMAP3530 and the OMAP3730 processors.
Objective
The OMAP's OTG port (HSUSB0) has to be configured for device functionality. The objective is to enable USB Gadget driver on this port and have either CDC Ethernet or RNDIS supported on it, thereby providing a TCP/IP link between the host system and the target platform.
Hardware Interface
OMAP's OTG port on the custom platform is interfaced to USB tranceiver on TPS65950 over the ULPI interface
Software Setup
1. Host PC
- runs on Ubuntu 9.04 (kernel version 2.6.28-11)
2. Target platform
- runs on linux-2.6.32
- custom busybox based Root File System
- Kernel source
- base: git://arago-project.org/git/projects/linux-omap3.git
- tag: v2.6.32_OMAPPSP_03.00.01.06
Test Setup-1
- OMAP3 Based custom platform
- Host PC running Ubuntu 9.04
- Connect the OTG port termination on the target board to the USB port on the Host PC
- Host PC detects the custom platform as CDC Ether or RNDIS (whichever is configured on the target)
- Setup an IP address for usb0 interface on either side
- Run 'ping' on either side to test the link
Support for CDC Ethernet and RNDIS has been tested and proven working with both OMAP3530 and 3730 based custom boards.
Issue
While testing for compatibility with USB 1.1 compliant host, the OMAP3730 based custom boards fail.
In order to test support for compliance with USB 1.1 host, Test Setup-1 is modified as follows:
Test Setup-2
- OMAP3 Based custom platform
- Host PC running Ubuntu 9.04
- Externally powered USB 1.1 hub
- Connect the OTG port termination on the target board to a port on the USB Hub
- Connect the USB termination on the host PC to a port on the USB Hub
- Host PC detects the custom platform as CDC Ether or RNDIS (whichever is configured on the target)
- Setup an IP address for usb0 interface on either side
- Run 'ping' on either side to test the link
Though the remote host (linux PC) has detected the target platform and accepts an IP address for the usb0 interface, when a ping is initiated, it reports failure saying that the remote system is not reachable.
Note:
- This problem in Test Setup-2 is seen only with the OMAP3730 based platforms and not seen with the OMAP3530 platforms.
- In Test Setup-2, if the USB 1.1 hub is replaced with USB 2.0 hub, tests (ping) works on the OMAP3730 platform.
- seen similar issues (related to slower USB interfaces) with the OMAP3730?
- tested USB Gadget functionality with a slower USB host system?
- tested USB Host port on OMAP3730 with slower USB peripherals (Eg. USB 1.1 compliant memory disk?)