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
Contents
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]
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.
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)