MIPI Debug Architecture

MIPI Alliance Debug Architecture provides a standardized infrastructure for debugging deeply embedded systems in the mobile space. The MIPI Debug Working Group[1] released therefore a portfolio of specifications.

Their objective is to provide:

The whitepaper Architecture Overview for Debug [2] summarizes all efforts of the MIPI Debug Working Group.

The Term "Debug"

Debug is used within the MIPI Debug Architecture for standard debug and trace.

Standard Debug

Standard Debug includes:

Standard debug is performed via classic JTAG or via memory-mapped debug registers:

Both, classic JTAG debugging and debugging via memory-mapped debug registers, can provide read/write access to system components (e.g. memory). This requires that Scan Interface/Bus Interface is connected to System Interconnect. If this connection is not available the external debug tool can only access the system components via the core(s) under debug.

Standard debug is currently always performed via a dedicated interface.

Trace

Trace infrastructure

Traces allow an in-depth analysis of the behavior and the timing characteristics of the embedded system. Trace data is generated by two types of trace sources within a SoC.

Trace data streams from different trace sources are usually merged (Instrumentation Interconnect):

Trace data are usually postprocessed with a debug tool.

SneakPeek Protocol

MIPI Approved Specification: Specification for SneakPeek Protocol (SPP)[3]

SneakPeek opens up a path away from a dedicated interface for basic debug towards a protocol-driven interface.

Since SneakPeek accepts packets coming through an input buffer and delivers packets through an output buffer it can be easily connected to any standard I/O or network.

The MIPI Alliance Specification for SneakPeek Protocol describes the basic concepts, the required infrastructure, the packets and the data flow.

Trace Protocols

System Trace Protocol

System trace

MIPI Approved Specification: Specification for System Trace Protocol (STP)[4]

For a deeply embedded system with multiple cores a system trace is an indispensable mean to find and eliminate inefficiencies. A system trace provides the following features:

The MIPI System Trace Protocol provides the following trace facilities:

The protocol generates packets with the following content:

ARM´s CoreSight System Trace Macrocell [5] which is compliant with MIPI STP is today an integral part of most multi-core chips used in the mobile space.

Trace Wrapper Protocol

MIPI Approved Specification: MIPI Alliance Specification for Trace Wrapper Protocol,[6]

The Trace Wrapper Protocol (TWP) enables multiple source trace streams to be merged into a single trace stream. The basic principle is that the source trace streams (byte streams) can be assigned system unique IDs. The following features are provided by the Trace Wrapper Protocol:

Trace export via high-speed I/Os


The Trace Wrapper Protocol merges multiple source trace streams

Trace Wrapper Protocol is based on ARM´s Trace Formatter Protocol [7] specified for ARM® CoreSightTM.

Dedicated Interfaces

Debug Connectors

MIPI34 pin mapping

MIPI Approved Recommendation: MIPI Alliance Recommendation for Debug and Trace Connectors [8]

Board developers and debug tools vendors benefit from standard debug connectors and standard pin mappings.

Standard Debug Connectors

Recommended are 10-/20-/34-pin board-level connectors (1.27 mm 050"). Seven different pin mappings are specified that address a wide variety of debug use scenarios. They include:

Supplemented by the ARM-specific standard SWD [9] (Serial Wire Debug) MIPI10/20/34 debug connector became the standard debug connectors for ARM-based embedded designs.

High-speed Parallel Trace Connector

Many embedded designs in the mobile space use high-speed parallel trace ports (up to 600 Mbit/s/pin). MIPI recommends a 60-pin Samtec QSH/QTH connector named MIPI60. It allows JTAG/cJTAG for run control, up to 40 trace data signals and up to 4 trace clocks. To minimize complexity, the recommendation defines four standard configurations with one, two, three or four trace channels of varying width.

Debugging via a Functional Interface

Debugging a mobile terminal by remapping the Micro SD interface

MIPI Approved Specification: Specification for Narrow Interface for Debug and Test (NIDnT) [10]

Historically product development in the mobile space is done using development boards. These boards provide dedicated and readily-accessible interfaces for connecting the debug tools. These interfaces are not available at the product’s final form factor. This hampers the identification of bugs and performance optimization in the end product.

Since the debug logic is still present in the end product, an alternative access path is needed. An effective way is to equip a mobile terminal´s standard interface (e.g. Micro SD) with a multiplexer that allows access the debug logic. The switching between the interface´s native function and the added debug function can be done by the connected debug tool or by the mobile terminal’s software.

This solution allows the use of standard debug tools:

Parallel Trace Interface

MIPI Approved Specification: MIPI Alliance Specification for Parallel Trace Interface [11]

A standard practice to export trace data off-chip is to use a dedicated Debug Export Interface (single-ended pins). The task of the Debug Export Interface is to pass the trace data to multiple data and a clock pin (parallel trace interface). The MIPI Alliance Specification for Parallel Trace Interface specifies the behavior of a MIPI Parallel Trace Interface. This includes:

Interfaces to Standard I/Os or Networks

The Gigabit Debug Specification Family is providing details for mapping debug and trace protocols to standard I/Os or networks available in mobile terminals.
These details include (not an exhaustive list):

MIPI Approved Specification: Specification for Gigabit Debug for USB [12]
MIPI Approved Specification: Specification for Gigabit Debug for Internet Protocol Sockets [13]

References

  1. MIPI Debug Working Group
  2. Architecture Overview for Debug, 17-Aug-2016, publicly available
  3. Specification for SneakPeek Protocol (SPP), 03-Mar-2016], MIPI membership required
  4. Specification for System Trace Protocol (STP), 21-Aug-2015, MIPI membership required
  5. ARM® CoreSight STM-500 System Trace Macrocell
  6. MIPI Alliance Specification for Trace Wrapper Protocol, 03-Sept-2014, MIPI membership required
  7. ARM® CoreSight Architecture
  8. MIPI Alliance Recommendation for Debug and Trace Connectors, 16-Mar-2011, publicly available
  9. ARM® Serial Wire Debug
  10. Specification for Narrow Interface for Debug and Test (NIDnT), 26-Aug-2015, MIPI membership required
  11. MIPI Alliance Specification for Parallel Trace Interface, 03-May-2011, MIPI membership required
  12. Specification for Gigabit Debug for USB, 17-Aug-2015, MIPI membership required
  13. Specification for Gigabit Debug for Internet Protocol Sockets, 20-May-2016, MIPI membership required

Presentations

This article is issued from Wikipedia - version of the 11/18/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.