2015-03-07

Hi Greg and everybody,

Here's a patchset adding support for Intel Trace Hub (TH) [1] to the

kernel.

Intel Trace Hub (TH) is a set of hardware blocks that produce, switch

and output trace data from multiple hardware and software sources over

several types of trace output ports encoded in System Trace Protocol

(MIPI STPv2) and is intended to perform full system debugging.

The first part of this patchset introduces an abstraction for STM

devices, or the devices that combine trace data from multiple trace

sources into a STP trace stream. It provides a generic interface for

software writers to send their trace data and also solves the problem

of mapping STP master/channel asignments to trace sources between the

system under tracing and the STP decoder on the debug host end. This

part might also be interesting to the guys working on Coresight STM

support as it uses a similar interface and has the same channel

mapping problem.

The remainder of the patchset is Intel TH support. The core part is

platform independant and is called into by glue layers such as the pci

driver that follows. The core provides a bus, on which Intel TH

subdevices are allocated. Each subdevice has its own driver.

Subdevices are divided into 3 types: sources, outputs and a switch

(there's usually just one). The latter is the central component in

this scheme of things and is required for other drivers to load and

function. Other drivers, however, are optional. Sources are producers

of trace data. Outputs are means of exporting the resulting STP trace

to the debug host via trace ports or system memory.

All configuration is done via sysfs and doesn't require any specific

userspace beyond a shell.

Currently supported Intel TH subdevices are Software Trace Hub

(STH, source), Memory Storage Unit (MSU, output), Parallel Tracing

Interface unit (PTI, output), Global Trace Hub (GTH, switch). Support

for other subdevices can be added later.

Also this patchset adds MAINTAINERS entries for stm class and Intel TH

code.

[1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf

Alexander Shishkin (11):

stm class: Introduce an abstraction for System Trace Module devices

MAINTAINERS: add an entry for System Trace Module device class

stm class: dummy_stm: Add dummy driver for testing stm class

stm class: stm_console: Add kernel-console-over-stm driver

intel_th: Add driver infrastructure for Intel Trace Hub devices

intel_th: Add pci glue layer for Intel Trace Hub

intel_th: Add Global Trace Hub driver

intel_th: Add Software Trace Hub driver

intel_th: Add Memory Storage Unit driver

intel_th: Add PTI output driver

MAINTAINERS: add an entry for Intel(R) Trace Hub

Documentation/ABI/testing/configfs-stp-policy | 44 +

.../ABI/testing/sysfs-bus-intel_th-devices-gth | 43 +

.../ABI/testing/sysfs-bus-intel_th-devices-msc | 33 +

.../ABI/testing/sysfs-bus-intel_th-devices-pti | 24 +

.../ABI/testing/sysfs-bus-intel_th-output-devices | 13 +

Documentation/ABI/testing/sysfs-class-stm | 14 +

Documentation/ABI/testing/sysfs-class-stm_source | 11 +

Documentation/trace/intel_th.txt | 99 ++

Documentation/trace/stm.txt | 77 ++

MAINTAINERS | 14 +

drivers/Kconfig | 4 +

drivers/Makefile | 2 +

drivers/intel_th/Kconfig | 72 +

drivers/intel_th/Makefile | 18 +

drivers/intel_th/core.c | 692 ++++++++++

drivers/intel_th/debug.c | 36 +

drivers/intel_th/debug.h | 34 +

drivers/intel_th/gth.c | 673 ++++++++++

drivers/intel_th/gth.h | 63 +

drivers/intel_th/intel_th.h | 244 ++++

drivers/intel_th/msu.c | 1403 ++++++++++++++++++++

drivers/intel_th/msu.h | 115 ++

drivers/intel_th/pci.c | 82 ++

drivers/intel_th/pti.c | 252 ++++

drivers/intel_th/pti.h | 29 +

drivers/intel_th/sth.c | 215 +++

drivers/intel_th/sth.h | 37 +

drivers/stm/Kconfig | 27 +

drivers/stm/Makefile | 7 +

drivers/stm/console.c | 80 ++

drivers/stm/core.c | 839 ++++++++++++

drivers/stm/dummy_stm.c | 60 +

drivers/stm/policy.c | 470 +++++++

drivers/stm/stm.h | 77 ++

include/linux/stm.h | 87 ++

include/uapi/linux/stm.h | 47 +

36 files changed, 6037 insertions(+)

create mode 100644 Documentation/ABI/testing/configfs-stp-policy

create mode 100644 Documentation/ABI/testing/sysfs-bus-intel_th-devices-gth

create mode 100644 Documentation/ABI/testing/sysfs-bus-intel_th-devices-msc

create mode 100644 Documentation/ABI/testing/sysfs-bus-intel_th-devices-pti

create mode 100644 Documentation/ABI/testing/sysfs-bus-intel_th-output-devices

create mode 100644 Documentation/ABI/testing/sysfs-class-stm

create mode 100644 Documentation/ABI/testing/sysfs-class-stm_source

create mode 100644 Documentation/trace/intel_th.txt

create mode 100644 Documentation/trace/stm.txt

create mode 100644 drivers/intel_th/Kconfig

create mode 100644 drivers/intel_th/Makefile

create mode 100644 drivers/intel_th/core.c

create mode 100644 drivers/intel_th/debug.c

create mode 100644 drivers/intel_th/debug.h

create mode 100644 drivers/intel_th/gth.c

create mode 100644 drivers/intel_th/gth.h

create mode 100644 drivers/intel_th/intel_th.h

create mode 100644 drivers/intel_th/msu.c

create mode 100644 drivers/intel_th/msu.h

create mode 100644 drivers/intel_th/pci.c

create mode 100644 drivers/intel_th/pti.c

create mode 100644 drivers/intel_th/pti.h

create mode 100644 drivers/intel_th/sth.c

create mode 100644 drivers/intel_th/sth.h

create mode 100644 drivers/stm/Kconfig

create mode 100644 drivers/stm/Makefile

create mode 100644 drivers/stm/console.c

create mode 100644 drivers/stm/core.c

create mode 100644 drivers/stm/dummy_stm.c

create mode 100644 drivers/stm/policy.c

create mode 100644 drivers/stm/stm.h

create mode 100644 include/linux/stm.h

create mode 100644 include/uapi/linux/stm.h

--

2.1.4

--

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

the body of a message to majordomo@vger.kernel.org

More majordomo info at http://vger.kernel.org/majordomo-info.html

Please read the FAQ at http://www.tux.org/lkml/

Show more