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.

DM81xx AM38XX USB User Guide

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

DM816x refers to DM816x/AM389x devices unless specified.
DM814x refers to DM814x/AM387x devices unless specified.
DM81xx refers to both DM816x, DM814x and DM813x.

Introduction[edit]

The USB User's Guide provides information about

  • overview of USB hardware/software
  • supported driver features for USB host and device mode of operation.
  • Limitation of hardware/software constraints.
  • The Linux USB configuration through menuconfig refer to USB configuration

Hardware Overview [edit]

DM816X/DM814X[edit]

USBSS Overview[edit]

  • The subsystem includes
  • two instances of USB (mentor) 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 5 V generation

MUSB Controller Overview[edit]

The salient features of the MUSB OTG controller are:

  • High/full speed operation as USB peripheral.
  • High/full/low speed operation as Host controller.
  • Compliant with OTG spec. (Note: This feature not supported on PG1.X).
  • 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.

Hardware Limitation (Not supported feature) DM816X [edit]

  • multipoint/hub support (applicable for PG1.X) : The multipoint support in musb controller IP is disabled. Due to this limitation only one usb device can be connected to one usb port and HUB cannot be supported.
  • OTG Support : This limitation is due to the external USB-ID pin from the USB connector is not pinned out of SoC. The USB-ID pin (or iddig pin) is made software configurable to configure the controller as host mode (iddig = 0) or device mode (iddig = 1). Hence dynamic iddig pin sensing based on external USB cable connector is not possible.

DM816X USBx_ID pin configuration[edit]

  • The USB0_ID/USB1_ID pin is always configured through software in DM816X silicon revisions. This configuration is done by chosing appropriate configuration through USBx_ID menuconfig selection. more information refers to USB Configuration Page

Hardware Limitation (Not supported feature) DM814X [edit]

  • OTG Support : This limitation is due to the external USB-ID pin from the USB connector is not used for detection of host/device mode. The USB-ID pin (or iddig pin) is made software configurable to configure the controller as host mode (iddig = 0) or device mode (iddig = 1). Hence dynamic iddig pin sensing based on external USB cable connector is not possible.

USB_ID configuration for DM814x [edit]

The USB0-ID/USB1_ID input to DM814X decides the role of usb mode to be either host or device for USB0/USB1 mentor usb controllers. USBx_ID should be floating (open) for device mode and grounded for host mode operations The configuration of USBx_ID pin can be done by

  • software control (only supported on DM814X PG1.x revision)
  • usb plug type inserted to usb connector (micro/mini-A plug for host mode, micro/mini-B plug for device mode).
  • by on board USBx_ID jumper setting to either short/open the ID pin for force host/device mode respectively.

The USBx_ID is always software controlled for DM814X PG1.x silicon. In PG2.0 onwards USBx_ID is configured through either external usb plug type or onboard jumper setting. This configuration is done by chosing appropriate configuration through USBx_ID menuconfig selection. more information refers to USB Configuration page

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). DM81XX USBOTG subsytem uses CPPI 4.1 DMA for all the transfers. The musb driver confirms to linux usb framework support both in PIO/DMA mode of operation. The musb host controller driver (HCD) binds the controller hardware and linux usb core stack. The musb device/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 an layered architecture, musb controller being the lowest layer, the musb host/device controller driver binds the musb controller hardware to linux usb stack frame work. The CPPI4.1 DMA controller driver responsible 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 host mode (both usb0 and usb1 controller in host mode).
  • Support USB gadget/device mode (Only USB0 controller can be configured as Gadget and USB1 cannot be configured as gadget mode)
  • Concurrent usage of one port as USB host and other port as USB device (refer USB Userguide for details)

The driver supports the following features for USB Host (DM816X/DM814X)[edit]

Host Mode Feature DM816x PG1.X DM816x PG2.X DM814x
HUB class support No Yes Yes
Human Interface Class (HID) Yes Yes Yes
Mass Storage Class (MSC) Yes Yes Yes
USB Video Class (UVC) Yes Yes Yes
USB Audio Class (UAC) Yes Yes Yes
USB CDC Host Yes Yes Yes

The driver supports the following features for USB Gadget (DM816X/DM814X)[edit]

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

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

Dual Mode Feature DM816x DM814x
USB0 as host, USB1 as gadget Yes Yes
USB0 as gadget, USB1 as host Yes Yes
USB0 as host, USB1 as host Yes Yes

Note: This feature not supported for DM814x PG1.x silicon version (refer known issues at release notes)

Not Supported driver features of DM816X[edit]

The following features are not supported for DM816X

Not Supported driver features of DM814X[edit]

The following features are not supported for DM814X

References [edit]

  • DM816x Technical Reference Manual
  • DM814x Technical Reference Manual

USB Configuration through menuconfig [edit]

  • The Mentor USB driver can be built as module or built into kernel. For more information refer to USB general Page
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 DM81xx AM38XX USB User 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 DM81xx AM38XX USB User Guide here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article DM81xx AM38XX USB User Guide here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article DM81xx AM38XX USB User Guide here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article DM81xx AM38XX USB User Guide here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article DM81xx AM38XX USB User Guide here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article DM81xx AM38XX USB User Guide here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article DM81xx AM38XX USB User Guide here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article DM81xx AM38XX USB User 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