diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-13 15:11:01 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-13 15:11:01 -0500 |
commit | b78b499a67c3f77aeb6cd0b54724bc38b141255d (patch) | |
tree | 8ebdb5303bb1552577182d9fe4086910b8648d22 /Documentation/trace | |
parent | 098c30557a9a19827240aaadc137e4668157dc6b (diff) | |
parent | 190cc65e912de7e8f7ebddcecfbf55a610281a8c (diff) |
Merge tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH:
"Here's the big char/misc driver patches for 4.10-rc1. Lots of tiny
changes over lots of "minor" driver subsystems, the largest being some
new FPGA drivers. Other than that, a few other new drivers, but no new
driver subsystems added for this kernel cycle, a nice change.
All of these have been in linux-next with no reported issues"
* tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (107 commits)
uio-hv-generic: store physical addresses instead of virtual
Tools: hv: kvp: configurable external scripts path
uio-hv-generic: new userspace i/o driver for VMBus
vmbus: add support for dynamic device id's
hv: change clockevents unbind tactics
hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
hyperv: Fix spelling of HV_UNKOWN
mei: bus: enable non-blocking RX
mei: fix the back to back interrupt handling
mei: synchronize irq before initiating a reset.
VME: Remove shutdown entry from vme_driver
auxdisplay: ht16k33: select framebuffer helper modules
MAINTAINERS: add git url for fpga
fpga: Clarify how write_init works streaming modes
fpga zynq: Fix incorrect ISR state on bootup
fpga zynq: Remove priv->dev
fpga zynq: Add missing \n to messages
fpga: Add COMPILE_TEST to all drivers
uio: pruss: add clk_disable()
char/pcmcia: add some error checking in scr24x_read()
...
Diffstat (limited to 'Documentation/trace')
-rw-r--r-- | Documentation/trace/intel_th.txt | 22 | ||||
-rw-r--r-- | Documentation/trace/stm.txt | 37 |
2 files changed, 56 insertions, 3 deletions
diff --git a/Documentation/trace/intel_th.txt b/Documentation/trace/intel_th.txt index f7fc5ba5df8d..f92070e7dde0 100644 --- a/Documentation/trace/intel_th.txt +++ b/Documentation/trace/intel_th.txt | |||
@@ -97,3 +97,25 @@ $ echo 0 > /sys/bus/intel_th/devices/0-msc0/active | |||
97 | # and now you can collect the trace from the device node: | 97 | # and now you can collect the trace from the device node: |
98 | 98 | ||
99 | $ cat /dev/intel_th0/msc0 > my_stp_trace | 99 | $ cat /dev/intel_th0/msc0 > my_stp_trace |
100 | |||
101 | Host Debugger Mode | ||
102 | ================== | ||
103 | |||
104 | It is possible to configure the Trace Hub and control its trace | ||
105 | capture from a remote debug host, which should be connected via one of | ||
106 | the hardware debugging interfaces, which will then be used to both | ||
107 | control Intel Trace Hub and transfer its trace data to the debug host. | ||
108 | |||
109 | The driver needs to be told that such an arrangement is taking place | ||
110 | so that it does not touch any capture/port configuration and avoids | ||
111 | conflicting with the debug host's configuration accesses. The only | ||
112 | activity that the driver will perform in this mode is collecting | ||
113 | software traces to the Software Trace Hub (an stm class device). The | ||
114 | user is still responsible for setting up adequate master/channel | ||
115 | mappings that the decoder on the receiving end would recognize. | ||
116 | |||
117 | In order to enable the host mode, set the 'host_mode' parameter of the | ||
118 | 'intel_th' kernel module to 'y'. None of the virtual output devices | ||
119 | will show up on the intel_th bus. Also, trace configuration and | ||
120 | capture controlling attribute groups of the 'gth' device will not be | ||
121 | exposed. The 'sth' device will operate as usual. | ||
diff --git a/Documentation/trace/stm.txt b/Documentation/trace/stm.txt index ea035f9dbfd7..11cff47eecce 100644 --- a/Documentation/trace/stm.txt +++ b/Documentation/trace/stm.txt | |||
@@ -69,12 +69,43 @@ stm device's channel mmio region is 64 bytes and hardware page size is | |||
69 | width==64, you should be able to mmap() one page on this file | 69 | width==64, you should be able to mmap() one page on this file |
70 | descriptor and obtain direct access to an mmio region for 64 channels. | 70 | descriptor and obtain direct access to an mmio region for 64 channels. |
71 | 71 | ||
72 | Examples of STM devices are Intel(R) Trace Hub [1] and Coresight STM | ||
73 | [2]. | ||
74 | |||
75 | stm_source | ||
76 | ========== | ||
77 | |||
72 | For kernel-based trace sources, there is "stm_source" device | 78 | For kernel-based trace sources, there is "stm_source" device |
73 | class. Devices of this class can be connected and disconnected to/from | 79 | class. Devices of this class can be connected and disconnected to/from |
74 | stm devices at runtime via a sysfs attribute. | 80 | stm devices at runtime via a sysfs attribute called "stm_source_link" |
81 | by writing the name of the desired stm device there, for example: | ||
75 | 82 | ||
76 | Examples of STM devices are Intel(R) Trace Hub [1] and Coresight STM | 83 | $ echo dummy_stm.0 > /sys/class/stm_source/console/stm_source_link |
77 | [2]. | 84 | |
85 | For examples on how to use stm_source interface in the kernel, refer | ||
86 | to stm_console or stm_heartbeat drivers. | ||
87 | |||
88 | Each stm_source device will need to assume a master and a range of | ||
89 | channels, depending on how many channels it requires. These are | ||
90 | allocated for the device according to the policy configuration. If | ||
91 | there's a node in the root of the policy directory that matches the | ||
92 | stm_source device's name (for example, "console"), this node will be | ||
93 | used to allocate master and channel numbers. If there's no such policy | ||
94 | node, the stm core will pick the first contiguous chunk of channels | ||
95 | within the first available master. Note that the node must exist | ||
96 | before the stm_source device is connected to its stm device. | ||
97 | |||
98 | stm_console | ||
99 | =========== | ||
100 | |||
101 | One implementation of this interface also used in the example above is | ||
102 | the "stm_console" driver, which basically provides a one-way console | ||
103 | for kernel messages over an stm device. | ||
104 | |||
105 | To configure the master/channel pair that will be assigned to this | ||
106 | console in the STP stream, create a "console" policy entry (see the | ||
107 | beginning of this text on how to do that). When initialized, it will | ||
108 | consume one channel. | ||
78 | 109 | ||
79 | [1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf | 110 | [1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf |
80 | [2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0444b/index.html | 111 | [2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0444b/index.html |