lkml.org 
[lkml]   [2015]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v1 00/11] Introduce Intel Trace Hub support
    Date
    Hi Greg and everybody,

    Here's a patchset adding support for Intel Trace Hub (TH) [1] to the
    kernel. It's been a couple of weeks since the first version, so here's
    the second one. Full description follows the changelog.

    Changes since v0:

    * filter-branch'ed everything under drivers/hwtracing where Mathieu
    is also moving coresight drivers,
    * added some more comments to the stm class code to address
    Mathieu's questions,
    * fixed CONFIG_STM=m case, which failed to build in the previous
    version as pointed out by Paul Bolle,
    * fixed a rather embarrassing memory leak in the error path of
    stm_char_policy_set_ioctl(),
    * added ioctl() callback to struct stm_data so that downstream
    stm drivers can serve their own commands on top of the same file
    descriptor, as suggested by Mathieu.

    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 is also useful for the Coresight STM driver 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/hwtracing/intel_th/Kconfig | 72 +
    drivers/hwtracing/intel_th/Makefile | 18 +
    drivers/hwtracing/intel_th/core.c | 692 ++++++++++
    drivers/hwtracing/intel_th/debug.c | 36 +
    drivers/hwtracing/intel_th/debug.h | 34 +
    drivers/hwtracing/intel_th/gth.c | 673 ++++++++++
    drivers/hwtracing/intel_th/gth.h | 63 +
    drivers/hwtracing/intel_th/intel_th.h | 244 ++++
    drivers/hwtracing/intel_th/msu.c | 1403 ++++++++++++++++++++
    drivers/hwtracing/intel_th/msu.h | 115 ++
    drivers/hwtracing/intel_th/pci.c | 82 ++
    drivers/hwtracing/intel_th/pti.c | 252 ++++
    drivers/hwtracing/intel_th/pti.h | 29 +
    drivers/hwtracing/intel_th/sth.c | 215 +++
    drivers/hwtracing/intel_th/sth.h | 37 +
    drivers/hwtracing/stm/Kconfig | 27 +
    drivers/hwtracing/stm/Makefile | 7 +
    drivers/hwtracing/stm/console.c | 80 ++
    drivers/hwtracing/stm/core.c | 897 +++++++++++++
    drivers/hwtracing/stm/dummy_stm.c | 60 +
    drivers/hwtracing/stm/policy.c | 467 +++++++
    drivers/hwtracing/stm/stm.h | 79 ++
    include/linux/stm.h | 102 ++
    include/uapi/linux/stm.h | 47 +
    36 files changed, 6109 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/hwtracing/intel_th/Kconfig
    create mode 100644 drivers/hwtracing/intel_th/Makefile
    create mode 100644 drivers/hwtracing/intel_th/core.c
    create mode 100644 drivers/hwtracing/intel_th/debug.c
    create mode 100644 drivers/hwtracing/intel_th/debug.h
    create mode 100644 drivers/hwtracing/intel_th/gth.c
    create mode 100644 drivers/hwtracing/intel_th/gth.h
    create mode 100644 drivers/hwtracing/intel_th/intel_th.h
    create mode 100644 drivers/hwtracing/intel_th/msu.c
    create mode 100644 drivers/hwtracing/intel_th/msu.h
    create mode 100644 drivers/hwtracing/intel_th/pci.c
    create mode 100644 drivers/hwtracing/intel_th/pti.c
    create mode 100644 drivers/hwtracing/intel_th/pti.h
    create mode 100644 drivers/hwtracing/intel_th/sth.c
    create mode 100644 drivers/hwtracing/intel_th/sth.h
    create mode 100644 drivers/hwtracing/stm/Kconfig
    create mode 100644 drivers/hwtracing/stm/Makefile
    create mode 100644 drivers/hwtracing/stm/console.c
    create mode 100644 drivers/hwtracing/stm/core.c
    create mode 100644 drivers/hwtracing/stm/dummy_stm.c
    create mode 100644 drivers/hwtracing/stm/policy.c
    create mode 100644 drivers/hwtracing/stm/stm.h
    create mode 100644 include/linux/stm.h
    create mode 100644 include/uapi/linux/stm.h

    --
    2.1.4



    \
     
     \ /
      Last update: 2015-03-20 18:41    [W:6.118 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site