On Wed, 27 Nov 2019 at 15:36, Mike Leach mike.leach@linaro.org wrote:
Update the CoreSight documents to describe the new connections directory and the links between CoreSight devices in this directory.
Signed-off-by: Mike Leach mike.leach@linaro.org
.../trace/coresight/coresight-ect.rst | 5 +- Documentation/trace/coresight/coresight.rst | 85 +++++++++++++++++++ 2 files changed, 89 insertions(+), 1 deletion(-)
diff --git a/Documentation/trace/coresight/coresight-ect.rst b/Documentation/trace/coresight/coresight-ect.rst index 6448cf910f20..8840444459d8 100644 --- a/Documentation/trace/coresight/coresight-ect.rst +++ b/Documentation/trace/coresight/coresight-ect.rst @@ -71,7 +71,7 @@ capable of generating or using trigger signals.::
$ ls /sys/bus/coresight/devices/etm0/cti_cpu0
channels ctmid enable nr_trigger_cons mgmt power regs subsystem
- triggers0 triggers1 uevent
- connections triggers0 triggers1 uevent
*Key file items are:-* * ``enable``: enables/disables the CTI. @@ -84,6 +84,9 @@ capable of generating or using trigger signals.:: * ``channels``: Contains the channel API - CTI main programming interface. * ``regs``: Gives access to the raw programmable CTI regs. * ``mgmt``: the standard CoreSight management registers.
- ``connections``: Links to connected *CoreSight* devices. The number of
links can be 0 to ``nr_trigger_cons``. Actual number given by ``nr_links``
in this directory.
triggers<N> directories diff --git a/Documentation/trace/coresight/coresight.rst b/Documentation/trace/coresight/coresight.rst index 108600ee1e12..0b73acb44efa 100644 --- a/Documentation/trace/coresight/coresight.rst +++ b/Documentation/trace/coresight/coresight.rst @@ -241,6 +241,91 @@ to the newer scheme, to give a confirmation that what you see on your system is not unexpected. One must use the "names" as they appear on the system under specified locations.
+Topology Representation +-----------------------
+Each CoreSight component has a ``connections`` directory which will contain +links to other CoreSight components. This allows the user to explore the trace +topology and for larger systems, determine the most appropriate sink for a +given source. The connection information can also be used to establish +which CTI devices are connected to a given component. This directory contains a +``nr_links`` attribute detailing the number of links in the directory.
+For an ETM source, in this case ``etm0`` on a Juno platform, a typical +arrangement will be::
- linaro-developer:~# ls - l /sys/bus/coresight/devices/etm0/connections
- <file details> cti_cpu0 -> ../../../23020000.cti/cti_cpu0
- <file details> nr_links
- <file details> out:0 -> ../../../230c0000.funnel/funnel2
+Following the out port to ``funnel2``::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/funnel2/connections
- <file details> in:0 -> ../../../23040000.etm/etm0
- <file details> in:1 -> ../../../23140000.etm/etm3
- <file details> in:2 -> ../../../23240000.etm/etm4
- <file details> in:3 -> ../../../23340000.etm/etm5
- <file details> nr_links
- <file details> out:0 -> ../../../20040000.funnel/funnel0
+And again to ``funnel0``::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/funnel0/connections
- <file details> in:0 -> ../../../220c0000.funnel/funnel1
- <file details> in:1 -> ../../../230c0000.funnel/funnel2
- <file details> nr_links
- <file details> out:0 -> ../../../20010000.etf/tmc_etf0
+Finding the first sink ``tmc_etf0``. This can be used to collect data +as a sink, or as a link to propagate further along the chain::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/tmc_etf0/connections
- <file details> cti_sys0 -> ../../../20020000.cti/cti_sys0
- <file details> in:0 -> ../../../20040000.funnel/funnel0
- <file details> nr_links
- <file details> out:0 -> ../../../20150000.funnel/funnel4
+via ``funnel4``::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/funnel4/connections
- <file details> in:0 -> ../../../20010000.etf/tmc_etf0
- <file details> in:1 -> ../../../20140000.etf/tmc_etf1
- <file details> nr_links
- <file details> out:0 -> ../../../20120000.replicator/replicator0
+and a ``replicator0``::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/replicator0/connections
- <file details> in:0 -> ../../../20150000.funnel/funnel4
- <file details> nr_links
- <file details> out:0 -> ../../../20030000.tpiu/tpiu0
- <file details> out:1 -> ../../../20070000.etr/tmc_etr0
+Arriving at the final sink in the chain, ``tmc_etr0``::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/tmc_etr0/connections
- <file details> cti_sys0 -> ../../../20020000.cti/cti_sys0
- <file details> in:0 -> ../../../20120000.replicator/replicator0
- <file details> nr_links
+As described below, when using sysfs it is sufficient to enable a sink and +a source for successful trace. The framework will correctly enable all +intermediate links as required.
+Note: ``cti_sys0`` appears in two of the connections lists above. +CTIs can connect to multiple devices and are arranged in a star topology +via the CTM. See (:doc:`coresight-ect`) [#fourth]_ for further details. +Looking at this device we see 4 connections::
- linaro-developer:~# ls -l /sys/bus/coresight/devices/cti_sys0/connections
- <file details> nr_links
- <file details> stm0 -> ../../../20100000.stm/stm0
- <file details> tmc_etf0 -> ../../../20010000.etf/tmc_etf0
- <file details> tmc_etr0 -> ../../../20070000.etr/tmc_etr0
- <file details> tpiu0 -> ../../../20030000.tpiu/tpiu0
Thank you for adding this, I find the example quite convincing. Other than the comment Suzuki and I have posted, I think this set is ready for prime-time action. Please post the next revision to lakml when your work on CTI/CTM has been updated and rebased to the latest 5.5-rcX release.
Mathieu
How to use the tracer modules
-- 2.20.1