NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

AM335x USB Driver's Guide

From Texas Instruments Wiki
Jump to: navigation, search
TIBanner.png
AM33XX USB User Guide
Linux PSP

Quick Start Guide[edit]

This section is a quick guide on how to start using usb ports on TI platform with supplied pre-built binaries. Please refer to USB Quick Start

Introduction[edit]

The USB User's Guide provides information about

  • Overview of USB hardware and software
  • Supported linux driver features for USB host and device mode of operation
  • The Linux USB configuration through menuconfig. Please refer to USB configuration

Hardware Overview [edit]

USBSS Overview[edit]

  • The USB subsystem includes
  • Two instances of USB (Mentor Graphic's USB2.0 OTG) controllers. Each MUSB controller supports USB 1.1 and USB 2.0 standard.
  • CPPI 4.1 compliant DMA controller sub-module with 30 RX and 30 TX simultaneous DMA channels
  • CPPI 4.1 DMA scheduler
  • CPPI Queue Manager module with 92 queues for queuing/dequeuing packets
  • Interfaces to the CPU via 3 OCP interfaces
  • Master OCP HP interface for the DMA (for data transfers)
  • Master OCP HP interface for the Queue manager (to manage CPPI descriptors)
  • Slave OCP MMR interface (for CPU to access USBSS/MUSB registers)
  • Signals the standard Charge Pump (part of EVM BOM) for VBUS 5V generation

MUSB Controller Overview[edit]

The salient features of the MUSB USB2.0 OTG controller are:

  • High/full speed operation as USB peripheral.
  • High/full/low speed operation as Host controller.
  • Compliant with OTG spec.
  • 15 Transmit and 15 Receive Endpoints other than the mandatory Control Endpoint 0.
  • Double buffering support in FIFO.
  • Support for high bandwidth Isochronous transfer
  • 32 Kilobytes of Endpoint FIFO RAM for USB packet buffering.
  • Interfaced with CPPI4.1 DMA controller with 15 Rx and 15 Tx channels (for each usb controller).
  • Defer interrupt enable feature is supported for each packet descriptor of cppi-dma.

Software Overview [edit]

Mentor graphics controller driver (or MUSB driver) [edit]

The MUSB driver is implemented on top of Mentor controller IP which supports all the speeds (High, Full and Low). AM33XX USBOTG subsytem uses CPPI 4.1 DMA for all the transfers. The musb driver conforms to linux usb framework and supports both PIO and DMA mode of operation. The musb host controller driver (HCD) binds the controller hardware to linux usb core stack. The musb device or gadget controller driver binds the controller hardware and specific gadget driver (filestorage, cdc/rndis etc).

Linux USB Stack Architecture [edit]

As shown in the figure, linux usb stack is a layered architecture, with musb controller at the lowest layer, the musb host/device controller driver binds the musb controller hardware to linux usb stack framework. The CPPI4.1 DMA controller driver is responsible for transmit/receive of packets over the musb endpoints.

Usb-stack-arch-image.JPG

Driver Features List[edit]

  • The Mentor USB driver can be built as module or built-in to kernel
  • Support both PIO and DMA mode (The DMA mode not applicable for control endpoint)
  • Support two instances musb controller in otg mode (both usb0 and usb1 controller in otg mode. This will allow host or device operation on each port simultaneously.

The driver supports the following features for USB Host (AM33XX)[edit]

Host Mode Feature AM33xx
HUB class support Yes
Human Interface Class (HID) Yes
Mass Storage Class (MSC) Yes

The driver supports the following features for USB Gadget (AM33XX)[edit]

Gadget Mode Feature AM33xx
Mass Storage Class (MSC) Yes
USB Networking - RNDIS Yes
USB Networking - CDC Yes

The driver supports the following features for Dual host/gadget (AM33xx)[edit]

Dual Mode Feature AM33x
USB0 as OTG, USB1 as OTG Yes

Not verified features of AM33xx[edit]

Not verified features am33x
Wifi support Not verified
Serial device Not verified

References[edit]

USB Configuration through menuconfig [edit]

  • The Mentor USB driver can be built as module or built into kernel. For more information refer to USB Configuration
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article AM335x USB Driver's Guide here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article AM335x USB Driver's Guide here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article AM335x USB Driver's Guide here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article AM335x USB Driver's Guide here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article AM335x USB Driver's Guide here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x USB Driver's Guide here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x USB Driver's Guide here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article AM335x USB Driver's Guide here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article AM335x USB Driver's Guide here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity