stm class: Introduce an abstraction for System Trace Module devices
authorAlexander Shishkin <alexander.shishkin@linux.intel.com>
Tue, 22 Sep 2015 12:47:10 +0000 (15:47 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Oct 2015 19:28:58 +0000 (20:28 +0100)
commit7bd1d4093c2fa37d1ecab05da3c9d48ea2af2264
tree24400395a4d56de0499f61e423529769f46fd83f
parent9b76968db6869666c9b30ea99894e9dd88a0ab13
stm class: Introduce an abstraction for System Trace Module devices

A System Trace Module (STM) is a device exporting data in System Trace
Protocol (STP) format as defined by MIPI STP standards. Examples of such
devices are Intel(R) Trace Hub and Coresight STM.

This abstraction provides a unified interface for software trace sources
to send their data over an STM device to a debug host. In order to do
that, such a trace source needs to be assigned a pair of master/channel
identifiers that all the data from this source will be tagged with. The
STP decoder on the debug host side will use these master/channel tags to
distinguish different trace streams from one another inside one STP
stream.

This abstraction provides a configfs-based policy management mechanism
for dynamic allocation of these master/channel pairs based on trace
source-supplied string identifier. It has the flexibility of being
defined at runtime and at the same time (provided that the policy
definition is aligned with the decoding end) consistency.

For userspace trace sources, this abstraction provides write()-based and
mmap()-based (if the underlying stm device allows this) output mechanism.

For kernel-side trace sources, we provide "stm_source" device class that
can be connected to an stm device at run time.

Cc: linux-api@vger.kernel.org
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
14 files changed:
Documentation/ABI/testing/configfs-stp-policy [new file with mode: 0644]
Documentation/ABI/testing/sysfs-class-stm [new file with mode: 0644]
Documentation/ABI/testing/sysfs-class-stm_source [new file with mode: 0644]
Documentation/ioctl/ioctl-number.txt
Documentation/trace/stm.txt [new file with mode: 0644]
drivers/Kconfig
drivers/Makefile
drivers/hwtracing/stm/Kconfig [new file with mode: 0644]
drivers/hwtracing/stm/Makefile [new file with mode: 0644]
drivers/hwtracing/stm/core.c [new file with mode: 0644]
drivers/hwtracing/stm/policy.c [new file with mode: 0644]
drivers/hwtracing/stm/stm.h [new file with mode: 0644]
include/linux/stm.h [new file with mode: 0644]
include/uapi/linux/stm.h [new file with mode: 0644]