Documentation: coresight: Update coresight configuration docs

Update the CoreSight System Configuration document to cover the
use of loadable modules to add configurations and features
to the system.

Signed-off-by: Mike Leach <mike.leach@linaro.org>
Link: https://lore.kernel.org/r/20211124200038.28662-7-mike.leach@linaro.org
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
Mike Leach 2021-11-24 20:00:38 +00:00 committed by Mathieu Poirier
parent 7ebd0ec6cf
commit f9809d5651
1 changed files with 59 additions and 3 deletions

View File

@ -155,14 +155,14 @@ follows::
autofdo autofdo
$ cd autofdo/ $ cd autofdo/
$ ls $ ls
description preset1 preset3 preset5 preset7 preset9 description feature_refs preset1 preset3 preset5 preset7 preset9
feature_refs preset2 preset4 preset6 preset8 enable preset preset2 preset4 preset6 preset8
$ cat description $ cat description
Setup ETMs with strobing for autofdo Setup ETMs with strobing for autofdo
$ cat feature_refs $ cat feature_refs
strobing strobing
Each preset declared has a preset<n> subdirectory declared. The values for Each preset declared has a 'preset<n>' subdirectory declared. The values for
the preset can be examined:: the preset can be examined::
$ cat preset1/values $ cat preset1/values
@ -170,6 +170,9 @@ the preset can be examined::
$ cat preset2/values $ cat preset2/values
strobing.window = 0x1388 strobing.period = 0x4 strobing.window = 0x1388 strobing.period = 0x4
The 'enable' and 'preset' files allow the control of a configuration when
using CoreSight with sysfs.
The features referenced by the configuration can be examined in the features The features referenced by the configuration can be examined in the features
directory:: directory::
@ -236,3 +239,56 @@ A preset to override the current parameter values can also be selected::
When configurations are selected in this way, then the trace sink used is When configurations are selected in this way, then the trace sink used is
automatically selected. automatically selected.
Using Configurations in sysfs
=============================
Coresight can be controlled using sysfs. When this is in use then a configuration
can be made active for the devices that are used in the sysfs session.
In a configuration there are 'enable' and 'preset' files.
To enable a configuration for use with sysfs::
$ cd configurations/autofdo
$ echo 1 > enable
This will then use any default parameter values in the features - which can be
adjusted as described above.
To use a preset<n> set of parameter values::
$ echo 3 > preset
This will select preset3 for the configuration.
The valid values for preset are 0 - to deselect presets, and any value of
<n> where a preset<n> sub-directory is present.
Note that the active sysfs configuration is a global parameter, therefore
only a single configuration can be active for sysfs at any one time.
Attempting to enable a second configuration will result in an error.
Additionally, attempting to disable the configuration while in use will
also result in an error.
The use of the active configuration by sysfs is independent of the configuration
used in perf.
Creating and Loading Custom Configurations
==========================================
Custom configurations and / or features can be dynamically loaded into the
system by using a loadable module.
An example of a custom configuration is found in ./samples/coresight.
This creates a new configuration that uses the existing built in
strobing feature, but provides a different set of presets.
When the module is loaded, then the configuration appears in the configfs
file system and is selectable in the same way as the built in configuration
described above.
Configurations can use previously loaded features. The system will ensure
that it is not possible to unload a feature that is currently in use, by
enforcing the unload order as the strict reverse of the load order.