The MIPI System Trace Protocol (MIPI STPSM) was developed as a generic base protocol that can be shared by multiple, application-specific trace protocols. It was not intended to supplant or replace the highly optimized protocols used to convey data about processor program flow, timing or low-level bus transactions, but rather, STP is designed so that its data streams coexist with these optimized protocols as part of a complete debug system.
The STP protocol is now in its second generation (v2.2), and is backward compatible with the first generation.
MIPI STP includes the following features:
- A trace stream composed of 4-bit frames
- Support for merging trace data from up to 65,536 independent data sources (masters)
- Up to 65,536 independent data channels per master
- Basic trace data messages that can convey 4-, 8-, 16-, 32-, or 64-bit wide data
- Time-stamped data packets using one of several timestamp formats including:
- Gray code
- Natural binary
- Natural binary delta
- Export buffer depth (legacy STPv1 timestamp that requires DTC support)
- Data packet markers to indicate packet usage by higher-level protocols
- Flag packets for marking points of interest (for higher-level protocols) in the stream
- Packets for aligning timestamps from different clock domains
- Packets for indicating to the DTC the position of a trigger event, which is typically used to control actions in the DTC (e.g., to control trace capture)
- Packets for cross-synchronization events across multiple STP sources
- Support for user-defined data packets
- Facilities for synchronizing the trace stream on bit and message boundaries
MIPI STP is developed by the MIPI Debug Working Group. It is available as v2.2.
Note: This specification is available to only to MIPI Alliance members. For information about MIPI Alliance membership, visit Join MIPI.