MIPI System Software – Trace (MIPI SyS-TSM), a system-level tracing protocol, is now easier for software developers to integrate in many mobile systems. An implementation of SyS-T has been added to the Linux kernel, making it instantly available for systems based on Linux, including IoT devices running embedded Linux.
SyS-T, developed by the MIPI Debug Working Group and released last year, provides a standard format for transmitting software trace and debug information from mobile and mobile-influenced systems to debug and test systems (DTSs). The specification works inside trace agents, including in the system OS and applications, to generate trace data. In the past, there was no common tracing solution for different software, firmware and hardware agents. SyS-T is designed to fill that gap.
Figure 1: SyS-T Instances in a Target System
Having this specification available alleviates the fragmentation of formats for debug and trace data, freeing software developers from the need to adopt different formats for each system or develop their own. The same format can be used with all MIPI debug tools and transports, so developers can use it in multiple software, firmware and hardware implementations. This commonality also allows hardware OEMs to use software from more providers, and it lets debug and test tooling vendors create generic devices for testing different types of products.
Useful across OSs and device types
SyS-T is most commonly an extension of MIPI System Trace Protocol (MIPI STPSM), though it can be used apart from STP. It is scalable for use in IoT devices, wearables, tablets and laptops, AR/VR systems and automotive applications. SyS-T is vendor- and OS-agnostic and works in bare-metal as well as OS environments.
MIPI makes SyS-T available to both MIPI members and non-members. An open-source SyS-T Implementation Library with APIs and documentation is available on GitHub for developers to use, modify and share.
Last year, Alexander Shishkin, a Linux engineer at MIPI member company Intel Corporation, used the MIPI SyS-T specification to create a SyS-T encoder for the Linux community. It can be used with any system trace module (STM) hardware supported by the Linux kernel. This encoder was included in the kernel last December, making SyS-T even easier for developers to implement.
Inclusion in Linux saves implementation time
The inclusion of SyS-T in the Linux kernel is a boon to developers integrating Linux-based software in STMs. Because SyS-T now comes with Linux, they no longer have to implement it separately. Developers who are used to working with SyS-T on one type of platform and later move to a Linux-based platform will find it already there.
SyS-T is an upper-layer element of MIPI Alliance's comprehensive debug and test architecture, which is designed to streamline system development.
Figure 2: SyS-T in the MIPI Debug Architecture
The introduction of SyS-T is part of MIPI Alliance's ongoing commitment to supporting software developers. In recent years, MIPI has introduced several specifications and tools intended for developers of software that operates above MIPI hardware interfaces. While most MIPI specifications are aimed at hardware developers, SyS-T operates at the application layer and was created for software developers. It is the most complete implementation of a MIPI standard yet included in the Linux kernel. At least one other MIPI specification, the subsystem for the MIPI I3C® bus interface, is also included in the kernel.
For best results, embrace the stack
The elements of the MIPI debug and test stack, including SyS-T and tools like MIPI SneakPeek Protocol (MIPI SPPSM) and MIPI Narrow Interface for Debug and Test (MIPI NIDnTSM), can be used separately. However, they deliver the most benefit when used together. The ecosystem provides ready-made solutions that save developers the time and effort of reinventing the wheel. This helps to bring test systems and DTSs to market more quickly and reliably, with better tested and higher quality code.
SyS-T is included in Linux distributions based on kernel 4.20 and later. If you want to help and influence the direction of efforts like SyS-T to unify debug solutions for mobile and mobile-influenced systems, please join the MIPI Debug Working Group.