Dedicated debug interfaces In the early stages of product development, it is common to use development boards with dedicated and readily accessible debug interfaces for connecting the debug tools. SoCs employed in the mobile market rely on two debug technologies: stop-mode debugging via a scan chain and stop-mode debugging via memory-mapped debug registers. The following non-MIPI debug standards are well established in the embedded market:
IEEE 1149.1 JTAG (5-pin) and ARM
Serial Wire Debug (2-pin), both using single-ended pins. Thus, there was no need for the MIPI Debug Working Group to specify a stop-mode debug protocol or to specify a debug interface. Trace data generated and merged to a trace stream within the SoC can be streamed, via a dedicated unidirectional trace interface, off-chip to a trace analysis tool. The MIPI Debug Architecture provides specifications for both parallel and serial trace ports. The
MIPI Parallel Trace Interface (MIPI PTI) specifies how to pass the trace data to multiple data pins and a clock pin (single-ended). The specification includes signal names and functions, timing, and electrical constraints. The last MIPI board-adopted version of
Specification for Parallel Trace Interface is version 2.0 (October 2011). The
MIPI High-Speed Trace Interface (MIPI HTI) specifies how to stream trace data over the physical layer of standard interfaces, such as
PCI Express,
DisplayPort,
HDMI, or USB. The current version of the specification allows for one to six lanes. The specification includes: • The PHY layer, which represents the electrical and clocking characteristics of the serial lanes. • The LINK layer, which defines how the trace is packaged into the Aurora
8B/10B protocol. • A programmer's model for controlling the HTI and providing status information. The HTI is a subset of the
High Speed Serial Trace Port (HSSTP) specification defined by ARM. The last MIPI board-adopted version of
Specification for High-speed Trace Interface is version 1.0 (July 2016). Board developers and debug tool vendors benefit from standard debug connectors and standard pin mappings. The
MIPI Recommendation for Debug and Trace Connectors recommends 10-/20-/34-pin board-level connectors (MIPI10/20/34). Seven different pin mappings that address a wide variety of debug scenarios have been specified. They include standard JTAG (IEEE 1149.1), cJTAG (IEEE 1149.7) and 4-bit parallel trace interfaces (mainly used for system traces), supplemented by the ARM-specific Serial Wire Debug (SWD) standard. MIPI10/20/34 debug connectors became the standard for ARM-based embedded designs. Many embedded designs in the mobile space use high-speed parallel trace ports (up to 600 megabits per second per pin). MIPI recommends a 60-pin Samtec QSH/QTH connector named MIPI60, which 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. The last MIPI board-adopted version of
MIPI Alliance Recommendation for Debug and Trace Connectors is version 1.1 (March 2011).
PHY and pin overlaid interfaces ,
USB2 pins used for SWD debug
multiplexer switches
USB2 pins to SWD pins Readily-accessible debug interfaces are not available in 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 with a multiplexer that allows for accessing the debug logic. The switching between the interface's essential function and the debug function can be initiated by the connected debug tool or by the mobile terminal's software. Standard debug tools can be used under the following conditions: • A switching protocol is implemented on the debug tool and in the mobile terminal. • A debug adapter exists that connects the debug tool to the standard interface. The debug adapter has to assist the switching protocol if required. • A mapping from the standard interface pins to the debug pins is specified. The
MIPI Narrow Interface for Debug and Test (MIPI NIDnT) covers debugging via the following standard interfaces:
microSD, USB 2.0 Micro-B/-AB receptacle, USB Type-C receptacle, and DisplayPort. The last MIPI board-adopted version of
Specification for Narrow Interface for Debug and Test (NIDnTSM) is version 1.2 (December 2017).
Network interfaces Instead of re-using the pins, debugging can also be done via the
protocol stack of a standard interface or network. Here debug traffic co-exists with the traffic of other applications using the same communication link. The MIPI Debug Working Group named this approach
GigaBit Debug. Since no debug protocol existed for this approach, the MIPI Debug Working Group specified its SneakPeak debug protocol.
MIPI SneakPeek Protocol (MIPI SPP) moved from a dedicated interface for basic debugging towards a protocol-driven interface: • It translates incoming command packets into read/write accesses to memory, memory-mapped debug registers, and other memory-mapped system resources. • It translates command results (status information and read data coming from memory, memory-mapped debug registers, and other memory-mapped system resources) to outgoing response packets. • 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. The last MIPI board-adopted version of
Specification for SneakPeek Protocol (SPPSM) is version 1.0 (August 2015). The
MIPI 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: endpoint addressing, link initialization and management, data packaging, data-flow management, and error detection and recovery. The last MIPI board-adopted version of
Specification for Gigabit Debug for USB (MIPI GbD USB) is version 1.1 (March 2018). The last MIPI board-adopted version of
Specification for Gigabit Debug for Internet Protocol Sockets (MIPI GbD IPS) is version 1.0 (July 2016). == I3C as debug bus ==