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.

Template:USBIntroductionPage

From Texas Instruments Wiki
Jump to: navigation, search

Description[edit]

This template have USB introduction and Acronyms & definitions.

Parameters[edit]

This template takes 1 parameter

  • The Mnemonic that specifies SoC type. The existing Mnemnoics are
    • DM8148/DM813X/DM811X
    • AM335X

Example[edit]

To use this template simply add the following line to your wiki page. Change the mnemonic according to the desired SoC. This example is for the AM335x SoC.

{{USBIntroductionPage|TI811x}}

Here's how it will look in your wiki page:


Introduction[edit]

The TI811x USBSS consists of two instance of mentor usb controller (musb controller). Each controller supports USB2.0 standards supporting HS/FS/LS speed. Each musb controller uses CPPI4.1 (Communication programming port interface 4.1 compliance) based DMA controller to transfer of data to/from between the external memory and endpoint FIFO. There are 15 Tx/Rx endpoints for each controller and each Tx/Rx endpoint uses dedicated Tx/Rx CPPI4.1 DMA channel for transfer of data. The endpoint-0 used for control transfer. For more information please refer to Technical reference manual at here


References[edit]

  • The USB2.0 specification standard at USB 2.0 spec
  • Refer corresponding TI811x Technical Reference Manual at here
  • Refer approved usb class specification documents here


Acronyms & Definitions[edit]

USB Driver: Acronyms
Acronym Definition
USB Universal Serial Bus
OTG On The Go
HS/FS/LS Highspeed/Fullspeed/LowSpeed
UAC USB Audio Class
UVC USB Video Class
HID Human Interface Devices
CDC Communication Device Class
RNDIS Remote Network Device Interface Specification
DTM Driver Test Manager
CPPI Communication programming port interface
USBSS USB subsystem


Software Architecture [edit]

Mentor graphics usb otg 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). TI811x 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 is responsible for transmission/reception of packets over the musb endpoints.

Usb-stack-arch-image.JPG


Features[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 (In this gadget only mode, only USB0 controller can be configured as Gadget and USB1 cannot be configured as gadget mode)
  • Dual role support : Concurrent usage of one port as USB host and other port as USB device (refer USB Userguide for details)