]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit278e92d8a8f93f6ba18a4750f2337f6daa755cb2
tree24400395a4d56de0499f61e423529769f46fd83f
parent9e9da84285ea454a1e2a55d834de26d21bb5ba9e
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]