Texas Instruments TMS320C6747 DSP User Manual

TMS320C6747 DSP Universal Serial Bus (USB) OHCI Host Controller
User's Guide
Literature Number: SPRUFM8
September 2008
2 SPRUFM8 – September 2008
Submit Documentation Feedback
Preface ........................................................................................................................................ 6
1 Introduction ......................................................................................................................... 7
1.1 Purpose of the Peripheral ................................................................................................ 7
2 Architecture ........................................................................................................................ 8
2.1 USB1 Module Clock and Reset ........................................................................................ 8
2.2 USB1 Module Open Host Controller Interface Functionality ........................................................ 9
2.3 USB1 Module Differences From OHCI Specification for USB ...................................................... 9
2.4 Implementation of OHCI Specification for USB ...................................................................... 10
2.5 OHCI Interrupts .......................................................................................................... 11
2.6 USB Host Controller Access to System Memory .................................................................... 11
2.7 Physical Addressing ..................................................................................................... 11
3 Registers ........................................................................................................................... 12
3.1 OHCI Revision Number Register (HCREVISION)................................................................... 13
3.2 HC Operating Mode Register (HCCONTROL) ...................................................................... 13
3.3 HC Command and Status Register (HCCOMMANDSTATUS) .................................................... 15
3.4 HC Interrupt and Status Register (HCINTERRUPTSTATUS) ..................................................... 16
3.5 HC Interrupt Enable Register (HCINTERRUPTENABLE) .......................................................... 17
3.6 HC Interrupt Disable Register (HCINTERRUPTDISABLE) ........................................................ 18
3.7 HC HCAA Address Register (HCHCCA) ............................................................................. 19
3.8 HC Current Periodic Register (HCPERIODCURRENTED) ........................................................ 19
3.9 HC Head Control Register (HCCONTROLHEADED) ............................................................... 20
3.10 HC Current Control Register (HCCONTROLCURRENTED) ...................................................... 21
3.11 HC Head Bulk Register (HCBULKHEADED) ........................................................................ 22
3.12 HC Current Bulk Register (HCBULKCURRENTED) ................................................................ 22
3.13 HC Head Done Register (HCDONEHEAD) .......................................................................... 23
3.14 HC Frame Interval Register (HCFMINTERVAL) .................................................................... 23
3.15 HC Frame Remaining Register (HCFMREMAINING) .............................................................. 24
3.16 HC Frame Number Register (HCFMNUMBER) ..................................................................... 24
3.17 HC Periodic Start Register (HCPERIODICSTART) ................................................................. 25
3.18 HC Low-Speed Threshold Register (HCLSTHRESHOLD) ......................................................... 26
3.19 HC Root Hub A Register (HCRHDESCRIPTORA) .................................................................. 27
3.20 HC Root Hub B Register (HCRHDESCRIPTORB) .................................................................. 28
3.21 HC Root Hub Status Register (HCRHSTATUS) ..................................................................... 29
3.22 HC Port 1 Status and Control Register (HCRHPORTSTATUS1) ................................................. 30
3.23 HC Port 2 Status and Control Register (HCRHPORTSTATUS2) ................................................. 32
SPRUFM8 – September 2008 Table of Contents 3
Submit Documentation Feedback
www.ti.com
List of Figures
1 Relationships Between Virtual Address Physical Address ............................................................ 11
2 OHCI Revision Number Register (HCREVISION) ..................................................................... 13
3 HC Operating Mode Register (HCCONTROL) ......................................................................... 13
4 HC Command and Status Register (HCCOMMANDSTATUS) ....................................................... 15
5 HC Interrupt and Status Register (HCINTERRUPTSTATUS) ........................................................ 16
6 HC Interrupt Enable Register (HCINTERRUPTENABLE) ............................................................ 17
7 HC Interrupt Disable Register (HCINTERRUPTDISABLE) ........................................................... 18
8 HC HCAA Address Register (HCHCCA) ................................................................................ 19
9 HC Current Periodic Register (HCPERIODCURRENTED) ........................................................... 19
10 HC Head Control Register (HCCONTROLHEADED) ................................................................. 20
11 HC Current Control Register (HCCONTROLCURRENTED) ......................................................... 21
12 HC Head Bulk Register (HCBULKHEADED) ........................................................................... 22
13 HC Current Bulk Register (HCBULKCURRENTED) ................................................................... 22
14 HC Head Done Register (HCDONEHEAD) ............................................................................. 23
15 HC Frame Interval Register (HCFMINTERVAL) ....................................................................... 23
16 HC Frame Remaining Register (HCFMREMAINING) ................................................................. 24
17 HC Frame Number Register (HCFMNUMBER) ........................................................................ 24
18 HC Periodic Start Register (HCPERIODICSTART) .................................................................... 25
19 HC Low-Speed Threshold Register (HCLSTHRESHOLD) ........................................................... 26
20 HC Root Hub A Register (HCRHDESCRIPTORA) .................................................................... 27
21 HC Root Hub B Register (HCRHDESCRIPTORB) .................................................................... 28
22 HC Root Hub Status Register (HCRHSTATUS) ....................................................................... 29
23 HC Port 1 Status and Control Register (HCRHPORTSTATUS1) .................................................... 30
24 HC Port 2 Status and Control Register (HCRHPORTSTATUS2) .................................................... 32
List of Figures4 SPRUFM8 – September 2008
Submit Documentation Feedback
www.ti.com
List of Tables
1 USB Host Controller Registers ........................................................................................... 12
2 OHCI Revision Number Register (HCREVISION) Field Descriptions ............................................... 13
3 HC Operating Mode Register (HCCONTROL) Field Descriptions ................................................... 14
4 HC Command and Status Register (HCCOMMANDSTATUS) Field Descriptions ................................ 15
5 HC Interrupt and Status Register (HCINTERRUPTSTATUS) Field Descriptions.................................. 16
6 HC Interrupt Enable Register (HCINTERRUPTENABLE) Field Descriptions ...................................... 17
7 HC Interrupt Disable Register (HCINTERRUPTDISABLE) Field Descriptions ..................................... 18
8 HC HCAA Address Register (HCHCCA) Field Descriptions .......................................................... 19
9 HC Current Periodic Register (HCPERIODCURRENTED) Field Descriptions ..................................... 19
10 HC Head Control Register (HCCONTROLHEADED) Field Descriptions ........................................... 20
11 HC Current Control Register (HCCONTROLCURRENTED) Field Descriptions ................................... 21
12 HC Head Bulk Register (HCBULKHEADED) Field Descriptions ..................................................... 22
13 HC Current Bulk Register (HCBULKCURRENTED) Field Descriptions ............................................ 22
14 HC Head Done Register (HCDONEHEAD) Field Descriptions ...................................................... 23
15 HC Frame Interval Register (HCFMINTERVAL) Field Descriptions ................................................. 23
16 HC Frame Remaining Register (HCFMREMAINING) Field Descriptions ........................................... 24
17 HC Frame Number Register (HCFMNUMBER) Field Descriptions .................................................. 24
18 HC Periodic Start Register (HCPERIODICSTART) Field Descriptions ............................................. 25
19 HC Low-Speed Threshold Register (HCLSTHRESHOLD) Field Descriptions ..................................... 26
20 HC Root Hub A Register (HCRHDESCRIPTORA) Field Descriptions .............................................. 27
21 HC Root Hub B Register (HCRHDESCRIPTORB) Field Descriptions .............................................. 28
22 HC Root Hub Status Register (HCRHSTATUS) Field Descriptions ................................................. 29
23 HC Port 1 Status and Control Register (HCRHPORTSTATUS1) Field Descriptions ............................. 30
24 HC Port 2 Status and Control Register (HCRHPORTSTATUS2) Field Descriptions ............................. 32
SPRUFM8 – September 2008 List of Tables 5
Submit Documentation Feedback
About This Manual
This document describes the universal serial bus OHCI host controller.
Notational Conventions
This document uses the following conventions.
Hexadecimal numbers are shown with the suffix h. For example, the following number is 40 hexadecimal (decimal 64): 40h.
Registers in this document are shown in figures and described in tables. Each register figure shows a rectangle divided into fields that represent the fields of the register.
Each field is labeled with its bit name, its beginning and ending bit numbers above, and its read/write properties below. A legend explains the notation used for the properties.
Reserved bits in a register figure designate a bit that is used for future device expansion.
Related Documentation From Texas Instruments
The following documents describe the TMS320C6745/C6747 DSP. Copies of these documents are available on the Internet at www.ti.com . Tip: Enter the literature number in the search box provided at www.ti.com.
The current documentation that describes the DSP, related peripherals, and other technical collateral, is available in the C6000 DSP product folder at: www.ti.com/c6000 .
SPRUFE8 TMS320C674x DSP CPU and Instruction Set Reference Guide. Describes the CPU
architecture, pipeline, instruction set, and interrupts for the TMS320C674x digital signal processors (DSPs). The C674x DSP is an enhancement of the C64x+ and C67x+ DSPs with added functionality and an expanded instruction set.

Preface

SPRUFM8 September 2008
Read This First
SPRUFK4 TMS320C6745/C6747 DSP System Reference Guide. Describes the System-on-Chip
(SoC) including the DSP subsystem, system memory, device clocking, phase-locked loop controller (PLLC), power and sleep controller (PSC), power management, and system configuration module.
SPRUFK5 TMS320C674x DSP Megamodule Reference Guide. Describes the TMS320C674x digital
signal processor (DSP) megamodule. Included is a discussion on the internal direct memory access (IDMA) controller, the interrupt controller, the power-down controller, memory protection, bandwidth management, and the memory and cache.
SPRUFK9 TMS320C6745/C6747 DSP Peripherals Overview Reference Guide. Provides an
overview and briefly describes the peripherals available on the TMS320C6745/C6747 DSP.
SPRUG82 TMS320C674x DSP Cache User's Guide. Explains the fundamentals of memory caches
and describes how the two-level cache-based internal memory architecture in the TMS320C674x digital signal processor (DSP) can be efficiently used in DSP applications. Shows how to maintain coherence with external memory, how to use DMA to reduce memory latencies, and how to optimize your code to improve cache efficiency. The internal memory architecture in the C674x DSP is organized in a two-level hierarchy consisting of a dedicated program cache (L1P) and a dedicated data cache (L1D) on the first level. Accesses by the CPU to the these first level caches can complete without CPU pipeline stalls. If the data requested by the CPU is not contained in cache, it is fetched from the next lower memory level, L2 or external memory.
6 Preface SPRUFM8 – September 2008
Submit Documentation Feedback

1 Introduction

This document describes the universal serial bus OHCI host controller.

1.1 Purpose of the Peripheral

The USB OHCI host controller (HC) is a single port controller that communicates with USB devices at the USB low-speed (1.5M bit-per-second maximum) and full-speed (12M bit-per-second maximum) data rates. It is compatible with the Universal Serial Bus Specification Revision 2.0 and the Open HCI—Open Host Controller Interface Specification for USB, Release 1.0a, available through the Compaq Computer Corporation web site, and hereafter called the OHCI Specification for USB. It is assumed that users of the USB host controller are already familiar with the USB Specification and OHCI Specification for USB.
The USB host controller implements the register set and makes use of the memory data structures defined in the OHCI Specification for USB. These registers and data structures are the mechanisms by which a USB host controller driver software package can control the USB host controller. The OHCI Specification for USB also defines how the USB host controller implementation must interact with those registers and data structures in system memory.
To reduce processor software and interrupt overhead, the USB host controller generates USB traffic based on data structures and data buffers stored in system memory. The USB host controller accesses these data structures without direct intervention by the processor using its bus master port. These data structures and data buffers can be located in internal or external system RAM.
The USB host controller provides an interrupt to both the ARM and DSP.
User's Guide
SPRUFM8 September 2008
Universal Serial Bus OHCI Host Controller
SPRUFM8 – September 2008 Universal Serial Bus OHCI Host Controller 7
Submit Documentation Feedback
Architecture

2 Architecture

2.1 USB1 Module Clock and Reset

The USB1 module requires that several different clocks are present before it can be accessed:
1. Internal system bus clocks for accesses by the ARM or DSP (Device SYSCLK2 and SYSCLK4)
2. Local bus clock to the USB Host controller (derived from SYSCLK4)
3. USB bus side 48-MHz reference clock must be present. Several options are available to source this clock.

2.1.1 Internal System Bus Clocks Needed by the USB1 Module

The internal system bus clocks SYSCLK2 and SYSCLK4 are normally configured during the device reset process; as the device PLL controller is initialized. The USB host controller operates in the SYSCLK4 domain but SYSCLK2 since most of the device level bus infrastructure operates on the SYSCLK2 domain. Normally one or both of the host CPU clock domains (SYSCLK6 for the ARM and SYSCLK1 for the DSP) will be enabled as well.

2.1.2 USB1 Module Local Bus Clock and Local Reset

The USB Host Controller actually operates from a local (gated) version of SYSCLK4. This allows the module be put into a low power state when not in use. The module also has its own local reset that is asserted during a device level reset and remains asserted until released by software. Additionally software can at any time assert a hardware reset on the USB Host Controller individually, causing it to reinitialize without affecting any of the other peripherals on the device.
Both the local clock and local reset of the USB Host Controller are under the control of the device level Power Sleep Controller 1 (PSC1) module. This module controls many local power sleep controller modules, and local power sleep controller 2 (LPSC2) of PSC1 controls the USB OHCI Host Controller.
www.ti.com

2.1.3 USB1 Module Bus 48-MHz Reference Clock

This device includes an integrated USB 1.1 Phy for the OHCI Host Controller's Root Hub (Port 0). This Phy requires a 48-MHz reference clock for proper operation. Two options are available to provide this reference clock:
Use the reference clock generated by the USB0 module integrated high-speed phy. The high-speed phy includes a phase locked loop (PLL) that is capable of generating a 48-MHz reference clock from multiple different input clock options. This method is probably the most convenient as it does not require an externally sourced clock, and the PLL in the USB0 module has flexibility in the frequency of its input clock. However when using this option, the USB0 phy must be operating in order to use the USB1 OHCI host controller. (This does not mean that the USB0 module must be running, only that its phy needs to be configured properly and enabled).
Provide the 48 MHz clock externally, on the USB_REFCLKIN pin.
For details on device level configuration of the 48-MHz reference clock, see the device clocking chapter in the TMS320C6745/C6747 DSP System Reference Guide (SPRUFK4 ).
The USB host controller completes its reset after the host controller clock is transitioned from disabled to enabled and the host controller reset is removed. After system software turns on the clock to the USB host controller and removes it from reset, it is necessary to wait until the USB host controller internal reset completes. To ensure that the USB host controller has completely reset, system software must wait until reads of both the HCREVISION register and the HCHCCA register return their correct reset default values.
Universal Serial Bus OHCI Host Controller8 SPRUFM8 – September 2008
Submit Documentation Feedback
www.ti.com

2.2 USB1 Module Open Host Controller Interface Functionality

2.2.1 OHCI Controller Overview

The Open HCI—Open Host Controller Interface Specification for USB, Release 1.0a defines a set of registers and data structures stored in system memory that control how a USB host controller interfaces to system software. This specification, in conjunction with the Universal Serial Bus Specification Version 2.0, defines most of the USB functionality that the USB host controller provides.
The OHCI Specification for USB focuses on two main aspects of the USB host controller hardware implementation: its register set and the memory data structures that define the appearance of USB bus activity. Other topics include interrupt generation, USB host controller state, USB frame management, and the hardware methods used to process the lists of data structures in system memory.
This document does not duplicate the information presented in the OHCI Specification for USB or the USB
Specification. USB host controller users can refer to the USB Specification and the OHCI Specification for USB for detailed discussions of USB requirements and OHCI controller operation.

2.3 USB1 Module Differences From OHCI Specification for USB

The USB1 Module OHCI compatible host controller implementation does not implement every aspect of the functionality defined in the OHCI Specification for USB. The differences focus on power switching, overcurrent reporting, and the OHCI ownership change interrupt. Other restrictions are imposed by the effects of the pin multiplexing options.
Architecture

2.3.1 Power Switching Output Pins Not Supported

The device does not provide pins that can be controlled directly by the USB host controller OHCI port power control features. The OHCI RHPORTSTATUS register port power control bits can be programmed by the USB host controller driver software, but this does not have any direct effect on any VBUS switching implemented on the board.
You can use software control of GPIO pins or other implementation-specific control mechanisms to control VBUS switching.

2.3.2 Overcurrent Protection Input Pins Not Supported

The device does not provide any pins that allow the USB host controller OHCI RHPORTSTATUS overcurrent protection status bits to be directly controlled by external hardware.
You can use software monitoring of GPIO pins or other implementation-specific control mechanisms to report port overcurrent information to the USB host controller driver.

2.3.3 No Ownership Change Interrupt

The USB host controller does not implement the OHCI ownership change interrupt.
SPRUFM8 – September 2008 Universal Serial Bus OHCI Host Controller 9
Submit Documentation Feedback
Architecture

2.4 Implementation of OHCI Specification for USB

2.4.1 USB Host Controller Endpoint Descriptor (ED) List Head Pointers

The OHCI Specification for USB provides a specific sequence of operations for the host controller driver to perform when setting up the host controller. Failure to follow that sequence can result in malfunction. As a specific example, the HCCONTROLHEADED and HCBULKHEADED pointer registers and the 32 HCCAINTERRUPTTABLE pointers must all point to valid physical addresses of valid endpoint descriptors.
The USB host controller does not check HCCONTROLHEADED registers, HCBULKHEADED registers, or the values in the 32 HCCAINTERRUPTTABLE pointers before using them to access EDs. In particular if any of these pointers are NULL when the corresponding list enable bit is set, the USB host controller attempts to access using the physical address of 0, which is not a valid memory region for the USB controller to access.

2.4.2 OHCI USB Suspend State

The USB host controller ignores upstream traffic from downstream devices for about 3 ms after the host controller state (HCCONTROL.HCFS) changes from USB resume state to USB operational state. If any TDs cause generation of downstream packets during that time, the downstream packets are sent, but downstream device responses are ignored. Any such TDs are aborted with completion codes marked as Device Not Responding. TDs on any of the lists (periodic, control, bulk, and isochronous) can cause such an occurrence.
The USB specification requires that system software must provide a 10-ms resume recovery time (TRSMRCY) after a bus segment transitions from resume signaling to normal operational mode. During that time, only start of frame packets are to be sent on the bus segment. The system software should disable all list enable bits (HCCONTROL.PLE, HCCONTROL.IE, HCCONTROL.CLE, and HCCONTROL.BLE) and then wait for at least 1 ms before setting the host controller into USB suspend state (via HCCONTROL.HCFS). When restoring from suspend, system software must set the host controller into USB resume state, and wait for the host controller to transition into USB operational state. System software must then wait 10 ms before enabling the host controller list enable bits.
When the host controller has been placed into the USB suspend state under software control, but is brought out by a remote wake-up, system software must monitor the HCRHPORTSTATUS[x].PSS and HCRHPORTSTATUS[x].PSSC bits. The HCRHPORTSTATUS[x].PSS bit changes to 0 only after completion of resume signaling on the bus segment, and completion of the 3-ms period (packets from downstream devices are ignored).
When using port-specific suspend, it is not necessary to disable the host controller lists, as long as there are no active EDs and TDs directed toward devices that are downstream of the suspended port. For port-specific suspend operations, the host controller does not issue a root hub status change interrupt (HCRHPORTSTATUS[n].PSSC bit = 1 and HCRHPORTSTATUS[n].PSS = 0), until the end of the approximately 3-ms delay after the resume signaling completes.
When using port-specific suspend, system software must ensure that there are no active EDs for devices that are downstream of the suspended port before setting the port into suspend mode. While the port is in suspend or being resumed, system software must not enable any EDs for any devices downstream of the suspended port. Once the root hub status change interrupt occurs as a result of the suspended port PSS bit changing to 0, EDs can be enabled for devices downstream of the operational port.
www.ti.com
10 Universal Serial Bus OHCI Host Controller SPRUFM8 – September 2008
Submit Documentation Feedback
Processor
physical address
Processor
virtual
address
Processor
MMU
00000000h
FFFFFFFFh
www.ti.com

2.5 OHCI Interrupts

The USB1 host controller can be controlled either by the ARM or the DSP. It has the ability to interrupt either processor.

2.6 USB Host Controller Access to System Memory

The USB1 module needs to access system memory to read and write the OHCI data structures and data buffers associated with USB traffic. The switch fabric allows the USB host controller to access system memory, as shown in .

2.7 Physical Addressing

Transactions on the internal bus use physical addresses, so all system memory accesses initiated by the USB host controller must use physical addresses. The ARM CPU can be configured to use virtual addressing. In this case, ARM side software manipulates virtual addresses that may or may not be identical to physical addresses. When virtual addressing is used, system software must perform the appropriate virtual address to physical address and physical address to virtual address conversions when manipulating the USB host controllers data structures and pointers to those data structures.
Figure 1 shows the ARM virtual address to physical address conversion.
Figure 1. Relationships Between Virtual Address Physical Address
Architecture
SPRUFM8 – September 2008 Universal Serial Bus OHCI Host Controller 11
Submit Documentation Feedback
Loading...
+ 23 hidden pages