All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/15] CoreSight CTI Driver
@ 2019-12-11 23:07 ` Mike Leach
  0 siblings, 0 replies; 10+ messages in thread
From: Mike Leach @ 2019-12-11 23:07 UTC (permalink / raw)
  To: mike.leach, linux-arm-kernel, coresight, devicetree
  Cc: mathieu.poirier, suzuki.poulose, robh+dt, liviu.dudau,
	sudeep.holla, lorenzo.pieralisi, agross

CTIs are defined in the device tree and associated with other CoreSight
devices. The core CoreSight code has been modified to enable the registration
of the CTI devices on the same bus as the other CoreSight components,
but as these are not actually trace generation / capture devices, they
are not part of the Coresight path when generating trace.

However, the definition of the standard CoreSight device has been extended
to include a reference to an associated CTI device, and the enable / disable
trace path operations will auto enable/disable any associated CTI devices at
the same time.

Programming is at present via sysfs - a full API is provided to utilise the
hardware capabilities. As CTI devices are unprogrammed by default, the auto
enable describe above will have no effect until explicit programming takes
place.

A set of device tree bindings specific to the CTI topology has been defined.
The driver accesses these in a platform agnostic manner, so ACPI bindings
can be added later, once they have been agreed and defined for the CTI device.

Documentation has been updated to describe both the CTI hardware, its use and
programming in sysfs, and the new dts bindings required.

Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.

Changes since v5:
1) Fixed up device tree .yaml file. Using extra compatible string for
v8 architecture CTI connections.
2) Ensure association code respects coresight mutex when setting cross
referenced pointers. Add in shutdown code.
3) Multiple minor code fixes & rationalisation. 

Changes since v4:
Multiple changes following feedback from Mathieu, Leo and Suzuki.
1) Dropped RFC tag - wider distribution
2) CTI bindings definition now presented as a .yaml file - tested with
with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
build tree with 'make dtbs_check' per kernel docs.
3) Sysfs links to other CoreSight devices moved out of this set into
a following set that deals with all CoreSight devices & sysfs links.
4) Documentation in .rst format and new directory following patchset in [1].
Extended example provided in docs.
5) Rationalised devicetree of_ specifics to use generic fwnode functions
where possible to enable easier addition of ACPI support later.
6) Other minor changes as requested in feedback from last patchset.

Changes since v3:
1) After discussion on CS mailing list, each CTI connection has a triggers<N>
   sysfs directory with name and trigger signals listed for the connection.
2) Initial code for creating sysfs links between CoreSight components is
  introduced and implementation for CTI provided. This allows exploration
  of the CoreSight topology within the sysfs infrastructure. Patches for
  links between other CoreSight components to follow.
3) Power management - CPU hotplug and idle omitted from this set as ongoing
   developments may define required direction. Additional patch set to follow.
4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
   and Leo. 

Changes since v2:
Updates to allow for new features on coresight/next and feedback from
Mathieu and Leo.

1) Rebase and restructuring to apply on top of ACPI support patch set,
currently on coresight/next. of_coresight_cti has been renamed to
coresight-cti-platform and device tree bindings added to this but accessed
in a platform agnostic manner using fwnode for later ACPI support
to be added.
2) Split the sysfs patch info a series of functional patches.
3) Revised the refcount and enabling support.
4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
cti_sysM
5) Various minor presentation /checkpatch issues highlighted in feedback.
6) revised CPU hotplug to cover missing cases needed by ETM.

Changes since v1:
1) Significant restructuring of the source code. Adds cti-sysfs file and
cti device tree file. Patches add per feature rather than per source
file.
2) CPU type power event handling for hotplug moved to CoreSight core,
with generic registration interface provided for all CPU bound CS devices
to use.
3) CTI signal interconnection details in sysfs now generated dynamically
from connection lists in driver. This to fix issue with multi-line sysfs
output in previous version.
4) Full device tree bindings for DB410 and Juno provided (to the extent
that CTI information is available).
5) AMBA driver update for UCI IDs are now upstream so no longer included
in this set.

Mike Leach (15):
  coresight: cti: Initial CoreSight CTI Driver
  coresight: cti: Add sysfs coresight mgmt reg access.
  coresight: cti: Add sysfs access to program function regs
  coresight: cti: Add sysfs trigger / channel programming API
  dt-bindings: arm: Adds CoreSight CTI hardware definitions.
  coresight: cti: Add device tree support for v8 arch CTI
  coresight: cti: Add device tree support for custom CTI.
  coresight: cti: Enable CTI associated with devices.
  coresight: cti: Add connection information to sysfs
  dt-bindings: qcom: Add CTI options for qcom msm8916
  dt-bindings: arm: Juno platform - add CTI entries to device tree.
  dt-bindings: hisilicon: Add CTI bindings for hi-6220
  docs: coresight: Update documentation for CoreSight to cover CTI.
  docs: sysfs: coresight: Add sysfs ABI documentation for CTI
  Update MAINTAINERS to add reviewer for CoreSight.

 .../testing/sysfs-bus-coresight-devices-cti   |  221 ++++
 .../bindings/arm/coresight-cti.yaml           |  303 +++++
 .../devicetree/bindings/arm/coresight.txt     |    7 +
 .../trace/coresight/coresight-ect.rst         |  211 +++
 Documentation/trace/coresight/coresight.rst   |   13 +
 MAINTAINERS                                   |    3 +
 arch/arm64/boot/dts/arm/juno-base.dtsi        |  149 ++-
 arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi     |   31 +-
 arch/arm64/boot/dts/arm/juno-r1.dts           |   25 +
 arch/arm64/boot/dts/arm/juno-r2.dts           |   25 +
 arch/arm64/boot/dts/arm/juno.dts              |   25 +
 .../boot/dts/hisilicon/hi6220-coresight.dtsi  |  130 +-
 arch/arm64/boot/dts/qcom/msm8916.dtsi         |   85 +-
 drivers/hwtracing/coresight/Kconfig           |   21 +
 drivers/hwtracing/coresight/Makefile          |    3 +
 .../coresight/coresight-cti-platform.c        |  485 +++++++
 .../hwtracing/coresight/coresight-cti-sysfs.c | 1175 +++++++++++++++++
 drivers/hwtracing/coresight/coresight-cti.c   |  748 +++++++++++
 drivers/hwtracing/coresight/coresight-cti.h   |  235 ++++
 .../hwtracing/coresight/coresight-platform.c  |   21 +
 drivers/hwtracing/coresight/coresight-priv.h  |   15 +
 drivers/hwtracing/coresight/coresight.c       |   86 +-
 include/dt-bindings/arm/coresight-cti-dt.h    |   37 +
 include/linux/coresight.h                     |   27 +
 24 files changed, 4050 insertions(+), 31 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-coresight-devices-cti
 create mode 100644 Documentation/devicetree/bindings/arm/coresight-cti.yaml
 create mode 100644 Documentation/trace/coresight/coresight-ect.rst
 create mode 100644 drivers/hwtracing/coresight/coresight-cti-platform.c
 create mode 100644 drivers/hwtracing/coresight/coresight-cti-sysfs.c
 create mode 100644 drivers/hwtracing/coresight/coresight-cti.c
 create mode 100644 drivers/hwtracing/coresight/coresight-cti.h
 create mode 100644 include/dt-bindings/arm/coresight-cti-dt.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v6 00/15] CoreSight CTI Driver
@ 2019-12-11 23:07 ` Mike Leach
  0 siblings, 0 replies; 10+ messages in thread
From: Mike Leach @ 2019-12-11 23:07 UTC (permalink / raw)
  To: mike.leach, linux-arm-kernel, coresight, devicetree
  Cc: lorenzo.pieralisi, mathieu.poirier, suzuki.poulose, liviu.dudau,
	agross, robh+dt, sudeep.holla

CTIs are defined in the device tree and associated with other CoreSight
devices. The core CoreSight code has been modified to enable the registration
of the CTI devices on the same bus as the other CoreSight components,
but as these are not actually trace generation / capture devices, they
are not part of the Coresight path when generating trace.

However, the definition of the standard CoreSight device has been extended
to include a reference to an associated CTI device, and the enable / disable
trace path operations will auto enable/disable any associated CTI devices at
the same time.

Programming is at present via sysfs - a full API is provided to utilise the
hardware capabilities. As CTI devices are unprogrammed by default, the auto
enable describe above will have no effect until explicit programming takes
place.

A set of device tree bindings specific to the CTI topology has been defined.
The driver accesses these in a platform agnostic manner, so ACPI bindings
can be added later, once they have been agreed and defined for the CTI device.

Documentation has been updated to describe both the CTI hardware, its use and
programming in sysfs, and the new dts bindings required.

Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.

Changes since v5:
1) Fixed up device tree .yaml file. Using extra compatible string for
v8 architecture CTI connections.
2) Ensure association code respects coresight mutex when setting cross
referenced pointers. Add in shutdown code.
3) Multiple minor code fixes & rationalisation. 

Changes since v4:
Multiple changes following feedback from Mathieu, Leo and Suzuki.
1) Dropped RFC tag - wider distribution
2) CTI bindings definition now presented as a .yaml file - tested with
with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
build tree with 'make dtbs_check' per kernel docs.
3) Sysfs links to other CoreSight devices moved out of this set into
a following set that deals with all CoreSight devices & sysfs links.
4) Documentation in .rst format and new directory following patchset in [1].
Extended example provided in docs.
5) Rationalised devicetree of_ specifics to use generic fwnode functions
where possible to enable easier addition of ACPI support later.
6) Other minor changes as requested in feedback from last patchset.

Changes since v3:
1) After discussion on CS mailing list, each CTI connection has a triggers<N>
   sysfs directory with name and trigger signals listed for the connection.
2) Initial code for creating sysfs links between CoreSight components is
  introduced and implementation for CTI provided. This allows exploration
  of the CoreSight topology within the sysfs infrastructure. Patches for
  links between other CoreSight components to follow.
3) Power management - CPU hotplug and idle omitted from this set as ongoing
   developments may define required direction. Additional patch set to follow.
4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
   and Leo. 

Changes since v2:
Updates to allow for new features on coresight/next and feedback from
Mathieu and Leo.

1) Rebase and restructuring to apply on top of ACPI support patch set,
currently on coresight/next. of_coresight_cti has been renamed to
coresight-cti-platform and device tree bindings added to this but accessed
in a platform agnostic manner using fwnode for later ACPI support
to be added.
2) Split the sysfs patch info a series of functional patches.
3) Revised the refcount and enabling support.
4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
cti_sysM
5) Various minor presentation /checkpatch issues highlighted in feedback.
6) revised CPU hotplug to cover missing cases needed by ETM.

Changes since v1:
1) Significant restructuring of the source code. Adds cti-sysfs file and
cti device tree file. Patches add per feature rather than per source
file.
2) CPU type power event handling for hotplug moved to CoreSight core,
with generic registration interface provided for all CPU bound CS devices
to use.
3) CTI signal interconnection details in sysfs now generated dynamically
from connection lists in driver. This to fix issue with multi-line sysfs
output in previous version.
4) Full device tree bindings for DB410 and Juno provided (to the extent
that CTI information is available).
5) AMBA driver update for UCI IDs are now upstream so no longer included
in this set.

Mike Leach (15):
  coresight: cti: Initial CoreSight CTI Driver
  coresight: cti: Add sysfs coresight mgmt reg access.
  coresight: cti: Add sysfs access to program function regs
  coresight: cti: Add sysfs trigger / channel programming API
  dt-bindings: arm: Adds CoreSight CTI hardware definitions.
  coresight: cti: Add device tree support for v8 arch CTI
  coresight: cti: Add device tree support for custom CTI.
  coresight: cti: Enable CTI associated with devices.
  coresight: cti: Add connection information to sysfs
  dt-bindings: qcom: Add CTI options for qcom msm8916
  dt-bindings: arm: Juno platform - add CTI entries to device tree.
  dt-bindings: hisilicon: Add CTI bindings for hi-6220
  docs: coresight: Update documentation for CoreSight to cover CTI.
  docs: sysfs: coresight: Add sysfs ABI documentation for CTI
  Update MAINTAINERS to add reviewer for CoreSight.

 .../testing/sysfs-bus-coresight-devices-cti   |  221 ++++
 .../bindings/arm/coresight-cti.yaml           |  303 +++++
 .../devicetree/bindings/arm/coresight.txt     |    7 +
 .../trace/coresight/coresight-ect.rst         |  211 +++
 Documentation/trace/coresight/coresight.rst   |   13 +
 MAINTAINERS                                   |    3 +
 arch/arm64/boot/dts/arm/juno-base.dtsi        |  149 ++-
 arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi     |   31 +-
 arch/arm64/boot/dts/arm/juno-r1.dts           |   25 +
 arch/arm64/boot/dts/arm/juno-r2.dts           |   25 +
 arch/arm64/boot/dts/arm/juno.dts              |   25 +
 .../boot/dts/hisilicon/hi6220-coresight.dtsi  |  130 +-
 arch/arm64/boot/dts/qcom/msm8916.dtsi         |   85 +-
 drivers/hwtracing/coresight/Kconfig           |   21 +
 drivers/hwtracing/coresight/Makefile          |    3 +
 .../coresight/coresight-cti-platform.c        |  485 +++++++
 .../hwtracing/coresight/coresight-cti-sysfs.c | 1175 +++++++++++++++++
 drivers/hwtracing/coresight/coresight-cti.c   |  748 +++++++++++
 drivers/hwtracing/coresight/coresight-cti.h   |  235 ++++
 .../hwtracing/coresight/coresight-platform.c  |   21 +
 drivers/hwtracing/coresight/coresight-priv.h  |   15 +
 drivers/hwtracing/coresight/coresight.c       |   86 +-
 include/dt-bindings/arm/coresight-cti-dt.h    |   37 +
 include/linux/coresight.h                     |   27 +
 24 files changed, 4050 insertions(+), 31 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-coresight-devices-cti
 create mode 100644 Documentation/devicetree/bindings/arm/coresight-cti.yaml
 create mode 100644 Documentation/trace/coresight/coresight-ect.rst
 create mode 100644 drivers/hwtracing/coresight/coresight-cti-platform.c
 create mode 100644 drivers/hwtracing/coresight/coresight-cti-sysfs.c
 create mode 100644 drivers/hwtracing/coresight/coresight-cti.c
 create mode 100644 drivers/hwtracing/coresight/coresight-cti.h
 create mode 100644 include/dt-bindings/arm/coresight-cti-dt.h

-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
  2019-12-11 23:07 ` Mike Leach
@ 2019-12-16 21:22   ` Mathieu Poirier
  -1 siblings, 0 replies; 10+ messages in thread
From: Mathieu Poirier @ 2019-12-16 21:22 UTC (permalink / raw)
  To: Mike Leach
  Cc: linux-arm-kernel, Coresight ML, devicetree, Suzuki K. Poulose,
	Rob Herring, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Andy Gross

On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
>
> CTIs are defined in the device tree and associated with other CoreSight
> devices. The core CoreSight code has been modified to enable the registration
> of the CTI devices on the same bus as the other CoreSight components,
> but as these are not actually trace generation / capture devices, they
> are not part of the Coresight path when generating trace.
>
> However, the definition of the standard CoreSight device has been extended
> to include a reference to an associated CTI device, and the enable / disable
> trace path operations will auto enable/disable any associated CTI devices at
> the same time.
>
> Programming is at present via sysfs - a full API is provided to utilise the
> hardware capabilities. As CTI devices are unprogrammed by default, the auto
> enable describe above will have no effect until explicit programming takes
> place.
>
> A set of device tree bindings specific to the CTI topology has been defined.
> The driver accesses these in a platform agnostic manner, so ACPI bindings
> can be added later, once they have been agreed and defined for the CTI device.
>
> Documentation has been updated to describe both the CTI hardware, its use and
> programming in sysfs, and the new dts bindings required.
>
> Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
>
> Changes since v5:
> 1) Fixed up device tree .yaml file. Using extra compatible string for
> v8 architecture CTI connections.
> 2) Ensure association code respects coresight mutex when setting cross
> referenced pointers. Add in shutdown code.
> 3) Multiple minor code fixes & rationalisation.
>
> Changes since v4:
> Multiple changes following feedback from Mathieu, Leo and Suzuki.
> 1) Dropped RFC tag - wider distribution
> 2) CTI bindings definition now presented as a .yaml file - tested with
> with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> build tree with 'make dtbs_check' per kernel docs.
> 3) Sysfs links to other CoreSight devices moved out of this set into
> a following set that deals with all CoreSight devices & sysfs links.
> 4) Documentation in .rst format and new directory following patchset in [1].
> Extended example provided in docs.
> 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> where possible to enable easier addition of ACPI support later.
> 6) Other minor changes as requested in feedback from last patchset.
>
> Changes since v3:
> 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
>    sysfs directory with name and trigger signals listed for the connection.
> 2) Initial code for creating sysfs links between CoreSight components is
>   introduced and implementation for CTI provided. This allows exploration
>   of the CoreSight topology within the sysfs infrastructure. Patches for
>   links between other CoreSight components to follow.
> 3) Power management - CPU hotplug and idle omitted from this set as ongoing
>    developments may define required direction. Additional patch set to follow.
> 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
>    and Leo.
>
> Changes since v2:
> Updates to allow for new features on coresight/next and feedback from
> Mathieu and Leo.
>
> 1) Rebase and restructuring to apply on top of ACPI support patch set,
> currently on coresight/next. of_coresight_cti has been renamed to
> coresight-cti-platform and device tree bindings added to this but accessed
> in a platform agnostic manner using fwnode for later ACPI support
> to be added.
> 2) Split the sysfs patch info a series of functional patches.
> 3) Revised the refcount and enabling support.
> 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> cti_sysM
> 5) Various minor presentation /checkpatch issues highlighted in feedback.
> 6) revised CPU hotplug to cover missing cases needed by ETM.
>
> Changes since v1:
> 1) Significant restructuring of the source code. Adds cti-sysfs file and
> cti device tree file. Patches add per feature rather than per source
> file.
> 2) CPU type power event handling for hotplug moved to CoreSight core,
> with generic registration interface provided for all CPU bound CS devices
> to use.
> 3) CTI signal interconnection details in sysfs now generated dynamically
> from connection lists in driver. This to fix issue with multi-line sysfs
> output in previous version.
> 4) Full device tree bindings for DB410 and Juno provided (to the extent
> that CTI information is available).
> 5) AMBA driver update for UCI IDs are now upstream so no longer included
> in this set.
>
> Mike Leach (15):
>   coresight: cti: Initial CoreSight CTI Driver
>   coresight: cti: Add sysfs coresight mgmt reg access.
>   coresight: cti: Add sysfs access to program function regs
>   coresight: cti: Add sysfs trigger / channel programming API
>   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
>   coresight: cti: Add device tree support for v8 arch CTI
>   coresight: cti: Add device tree support for custom CTI.
>   coresight: cti: Enable CTI associated with devices.
>   coresight: cti: Add connection information to sysfs
>   dt-bindings: qcom: Add CTI options for qcom msm8916
>   dt-bindings: arm: Juno platform - add CTI entries to device tree.
>   dt-bindings: hisilicon: Add CTI bindings for hi-6220
>   docs: coresight: Update documentation for CoreSight to cover CTI.
>   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
>   Update MAINTAINERS to add reviewer for CoreSight.
>

All that needs to be sorted out in this set are the comments made by
Maxime.  When you do address those please only resend that patch.
Since Maxime's comments are related to yaml syntax rather than the
bindings themselves, I have added your set to my next tree so that it
can soak in linux-next over the next few weeks.

Thanks,
Mathieu

>  .../testing/sysfs-bus-coresight-devices-cti   |  221 ++++
>  .../bindings/arm/coresight-cti.yaml           |  303 +++++
>  .../devicetree/bindings/arm/coresight.txt     |    7 +
>  .../trace/coresight/coresight-ect.rst         |  211 +++
>  Documentation/trace/coresight/coresight.rst   |   13 +
>  MAINTAINERS                                   |    3 +
>  arch/arm64/boot/dts/arm/juno-base.dtsi        |  149 ++-
>  arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi     |   31 +-
>  arch/arm64/boot/dts/arm/juno-r1.dts           |   25 +
>  arch/arm64/boot/dts/arm/juno-r2.dts           |   25 +
>  arch/arm64/boot/dts/arm/juno.dts              |   25 +
>  .../boot/dts/hisilicon/hi6220-coresight.dtsi  |  130 +-
>  arch/arm64/boot/dts/qcom/msm8916.dtsi         |   85 +-
>  drivers/hwtracing/coresight/Kconfig           |   21 +
>  drivers/hwtracing/coresight/Makefile          |    3 +
>  .../coresight/coresight-cti-platform.c        |  485 +++++++
>  .../hwtracing/coresight/coresight-cti-sysfs.c | 1175 +++++++++++++++++
>  drivers/hwtracing/coresight/coresight-cti.c   |  748 +++++++++++
>  drivers/hwtracing/coresight/coresight-cti.h   |  235 ++++
>  .../hwtracing/coresight/coresight-platform.c  |   21 +
>  drivers/hwtracing/coresight/coresight-priv.h  |   15 +
>  drivers/hwtracing/coresight/coresight.c       |   86 +-
>  include/dt-bindings/arm/coresight-cti-dt.h    |   37 +
>  include/linux/coresight.h                     |   27 +
>  24 files changed, 4050 insertions(+), 31 deletions(-)
>  create mode 100644 Documentation/ABI/testing/sysfs-bus-coresight-devices-cti
>  create mode 100644 Documentation/devicetree/bindings/arm/coresight-cti.yaml
>  create mode 100644 Documentation/trace/coresight/coresight-ect.rst
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti-platform.c
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti-sysfs.c
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti.c
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti.h
>  create mode 100644 include/dt-bindings/arm/coresight-cti-dt.h
>
> --
> 2.17.1
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
@ 2019-12-16 21:22   ` Mathieu Poirier
  0 siblings, 0 replies; 10+ messages in thread
From: Mathieu Poirier @ 2019-12-16 21:22 UTC (permalink / raw)
  To: Mike Leach
  Cc: devicetree, Lorenzo Pieralisi, Suzuki K. Poulose, Coresight ML,
	Liviu Dudau, Andy Gross, Rob Herring, Sudeep Holla,
	linux-arm-kernel

On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
>
> CTIs are defined in the device tree and associated with other CoreSight
> devices. The core CoreSight code has been modified to enable the registration
> of the CTI devices on the same bus as the other CoreSight components,
> but as these are not actually trace generation / capture devices, they
> are not part of the Coresight path when generating trace.
>
> However, the definition of the standard CoreSight device has been extended
> to include a reference to an associated CTI device, and the enable / disable
> trace path operations will auto enable/disable any associated CTI devices at
> the same time.
>
> Programming is at present via sysfs - a full API is provided to utilise the
> hardware capabilities. As CTI devices are unprogrammed by default, the auto
> enable describe above will have no effect until explicit programming takes
> place.
>
> A set of device tree bindings specific to the CTI topology has been defined.
> The driver accesses these in a platform agnostic manner, so ACPI bindings
> can be added later, once they have been agreed and defined for the CTI device.
>
> Documentation has been updated to describe both the CTI hardware, its use and
> programming in sysfs, and the new dts bindings required.
>
> Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
>
> Changes since v5:
> 1) Fixed up device tree .yaml file. Using extra compatible string for
> v8 architecture CTI connections.
> 2) Ensure association code respects coresight mutex when setting cross
> referenced pointers. Add in shutdown code.
> 3) Multiple minor code fixes & rationalisation.
>
> Changes since v4:
> Multiple changes following feedback from Mathieu, Leo and Suzuki.
> 1) Dropped RFC tag - wider distribution
> 2) CTI bindings definition now presented as a .yaml file - tested with
> with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> build tree with 'make dtbs_check' per kernel docs.
> 3) Sysfs links to other CoreSight devices moved out of this set into
> a following set that deals with all CoreSight devices & sysfs links.
> 4) Documentation in .rst format and new directory following patchset in [1].
> Extended example provided in docs.
> 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> where possible to enable easier addition of ACPI support later.
> 6) Other minor changes as requested in feedback from last patchset.
>
> Changes since v3:
> 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
>    sysfs directory with name and trigger signals listed for the connection.
> 2) Initial code for creating sysfs links between CoreSight components is
>   introduced and implementation for CTI provided. This allows exploration
>   of the CoreSight topology within the sysfs infrastructure. Patches for
>   links between other CoreSight components to follow.
> 3) Power management - CPU hotplug and idle omitted from this set as ongoing
>    developments may define required direction. Additional patch set to follow.
> 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
>    and Leo.
>
> Changes since v2:
> Updates to allow for new features on coresight/next and feedback from
> Mathieu and Leo.
>
> 1) Rebase and restructuring to apply on top of ACPI support patch set,
> currently on coresight/next. of_coresight_cti has been renamed to
> coresight-cti-platform and device tree bindings added to this but accessed
> in a platform agnostic manner using fwnode for later ACPI support
> to be added.
> 2) Split the sysfs patch info a series of functional patches.
> 3) Revised the refcount and enabling support.
> 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> cti_sysM
> 5) Various minor presentation /checkpatch issues highlighted in feedback.
> 6) revised CPU hotplug to cover missing cases needed by ETM.
>
> Changes since v1:
> 1) Significant restructuring of the source code. Adds cti-sysfs file and
> cti device tree file. Patches add per feature rather than per source
> file.
> 2) CPU type power event handling for hotplug moved to CoreSight core,
> with generic registration interface provided for all CPU bound CS devices
> to use.
> 3) CTI signal interconnection details in sysfs now generated dynamically
> from connection lists in driver. This to fix issue with multi-line sysfs
> output in previous version.
> 4) Full device tree bindings for DB410 and Juno provided (to the extent
> that CTI information is available).
> 5) AMBA driver update for UCI IDs are now upstream so no longer included
> in this set.
>
> Mike Leach (15):
>   coresight: cti: Initial CoreSight CTI Driver
>   coresight: cti: Add sysfs coresight mgmt reg access.
>   coresight: cti: Add sysfs access to program function regs
>   coresight: cti: Add sysfs trigger / channel programming API
>   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
>   coresight: cti: Add device tree support for v8 arch CTI
>   coresight: cti: Add device tree support for custom CTI.
>   coresight: cti: Enable CTI associated with devices.
>   coresight: cti: Add connection information to sysfs
>   dt-bindings: qcom: Add CTI options for qcom msm8916
>   dt-bindings: arm: Juno platform - add CTI entries to device tree.
>   dt-bindings: hisilicon: Add CTI bindings for hi-6220
>   docs: coresight: Update documentation for CoreSight to cover CTI.
>   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
>   Update MAINTAINERS to add reviewer for CoreSight.
>

All that needs to be sorted out in this set are the comments made by
Maxime.  When you do address those please only resend that patch.
Since Maxime's comments are related to yaml syntax rather than the
bindings themselves, I have added your set to my next tree so that it
can soak in linux-next over the next few weeks.

Thanks,
Mathieu

>  .../testing/sysfs-bus-coresight-devices-cti   |  221 ++++
>  .../bindings/arm/coresight-cti.yaml           |  303 +++++
>  .../devicetree/bindings/arm/coresight.txt     |    7 +
>  .../trace/coresight/coresight-ect.rst         |  211 +++
>  Documentation/trace/coresight/coresight.rst   |   13 +
>  MAINTAINERS                                   |    3 +
>  arch/arm64/boot/dts/arm/juno-base.dtsi        |  149 ++-
>  arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi     |   31 +-
>  arch/arm64/boot/dts/arm/juno-r1.dts           |   25 +
>  arch/arm64/boot/dts/arm/juno-r2.dts           |   25 +
>  arch/arm64/boot/dts/arm/juno.dts              |   25 +
>  .../boot/dts/hisilicon/hi6220-coresight.dtsi  |  130 +-
>  arch/arm64/boot/dts/qcom/msm8916.dtsi         |   85 +-
>  drivers/hwtracing/coresight/Kconfig           |   21 +
>  drivers/hwtracing/coresight/Makefile          |    3 +
>  .../coresight/coresight-cti-platform.c        |  485 +++++++
>  .../hwtracing/coresight/coresight-cti-sysfs.c | 1175 +++++++++++++++++
>  drivers/hwtracing/coresight/coresight-cti.c   |  748 +++++++++++
>  drivers/hwtracing/coresight/coresight-cti.h   |  235 ++++
>  .../hwtracing/coresight/coresight-platform.c  |   21 +
>  drivers/hwtracing/coresight/coresight-priv.h  |   15 +
>  drivers/hwtracing/coresight/coresight.c       |   86 +-
>  include/dt-bindings/arm/coresight-cti-dt.h    |   37 +
>  include/linux/coresight.h                     |   27 +
>  24 files changed, 4050 insertions(+), 31 deletions(-)
>  create mode 100644 Documentation/ABI/testing/sysfs-bus-coresight-devices-cti
>  create mode 100644 Documentation/devicetree/bindings/arm/coresight-cti.yaml
>  create mode 100644 Documentation/trace/coresight/coresight-ect.rst
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti-platform.c
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti-sysfs.c
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti.c
>  create mode 100644 drivers/hwtracing/coresight/coresight-cti.h
>  create mode 100644 include/dt-bindings/arm/coresight-cti-dt.h
>
> --
> 2.17.1
>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
  2019-12-16 21:22   ` Mathieu Poirier
@ 2019-12-17  4:01     ` Olof Johansson
  -1 siblings, 0 replies; 10+ messages in thread
From: Olof Johansson @ 2019-12-17  4:01 UTC (permalink / raw)
  To: Mathieu Poirier
  Cc: Mike Leach, linux-arm-kernel, Coresight ML, DTML,
	Suzuki K. Poulose, Rob Herring, Liviu Dudau, Sudeep Holla,
	Lorenzo Pieralisi, Andy Gross

On Mon, Dec 16, 2019 at 1:22 PM Mathieu Poirier
<mathieu.poirier@linaro.org> wrote:
>
> On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
> >
> > CTIs are defined in the device tree and associated with other CoreSight
> > devices. The core CoreSight code has been modified to enable the registration
> > of the CTI devices on the same bus as the other CoreSight components,
> > but as these are not actually trace generation / capture devices, they
> > are not part of the Coresight path when generating trace.
> >
> > However, the definition of the standard CoreSight device has been extended
> > to include a reference to an associated CTI device, and the enable / disable
> > trace path operations will auto enable/disable any associated CTI devices at
> > the same time.
> >
> > Programming is at present via sysfs - a full API is provided to utilise the
> > hardware capabilities. As CTI devices are unprogrammed by default, the auto
> > enable describe above will have no effect until explicit programming takes
> > place.
> >
> > A set of device tree bindings specific to the CTI topology has been defined.
> > The driver accesses these in a platform agnostic manner, so ACPI bindings
> > can be added later, once they have been agreed and defined for the CTI device.
> >
> > Documentation has been updated to describe both the CTI hardware, its use and
> > programming in sysfs, and the new dts bindings required.
> >
> > Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
> >
> > Changes since v5:
> > 1) Fixed up device tree .yaml file. Using extra compatible string for
> > v8 architecture CTI connections.
> > 2) Ensure association code respects coresight mutex when setting cross
> > referenced pointers. Add in shutdown code.
> > 3) Multiple minor code fixes & rationalisation.
> >
> > Changes since v4:
> > Multiple changes following feedback from Mathieu, Leo and Suzuki.
> > 1) Dropped RFC tag - wider distribution
> > 2) CTI bindings definition now presented as a .yaml file - tested with
> > with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> > build tree with 'make dtbs_check' per kernel docs.
> > 3) Sysfs links to other CoreSight devices moved out of this set into
> > a following set that deals with all CoreSight devices & sysfs links.
> > 4) Documentation in .rst format and new directory following patchset in [1].
> > Extended example provided in docs.
> > 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> > where possible to enable easier addition of ACPI support later.
> > 6) Other minor changes as requested in feedback from last patchset.
> >
> > Changes since v3:
> > 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
> >    sysfs directory with name and trigger signals listed for the connection.
> > 2) Initial code for creating sysfs links between CoreSight components is
> >   introduced and implementation for CTI provided. This allows exploration
> >   of the CoreSight topology within the sysfs infrastructure. Patches for
> >   links between other CoreSight components to follow.
> > 3) Power management - CPU hotplug and idle omitted from this set as ongoing
> >    developments may define required direction. Additional patch set to follow.
> > 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
> >    and Leo.
> >
> > Changes since v2:
> > Updates to allow for new features on coresight/next and feedback from
> > Mathieu and Leo.
> >
> > 1) Rebase and restructuring to apply on top of ACPI support patch set,
> > currently on coresight/next. of_coresight_cti has been renamed to
> > coresight-cti-platform and device tree bindings added to this but accessed
> > in a platform agnostic manner using fwnode for later ACPI support
> > to be added.
> > 2) Split the sysfs patch info a series of functional patches.
> > 3) Revised the refcount and enabling support.
> > 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> > cti_sysM
> > 5) Various minor presentation /checkpatch issues highlighted in feedback.
> > 6) revised CPU hotplug to cover missing cases needed by ETM.
> >
> > Changes since v1:
> > 1) Significant restructuring of the source code. Adds cti-sysfs file and
> > cti device tree file. Patches add per feature rather than per source
> > file.
> > 2) CPU type power event handling for hotplug moved to CoreSight core,
> > with generic registration interface provided for all CPU bound CS devices
> > to use.
> > 3) CTI signal interconnection details in sysfs now generated dynamically
> > from connection lists in driver. This to fix issue with multi-line sysfs
> > output in previous version.
> > 4) Full device tree bindings for DB410 and Juno provided (to the extent
> > that CTI information is available).
> > 5) AMBA driver update for UCI IDs are now upstream so no longer included
> > in this set.
> >
> > Mike Leach (15):
> >   coresight: cti: Initial CoreSight CTI Driver
> >   coresight: cti: Add sysfs coresight mgmt reg access.
> >   coresight: cti: Add sysfs access to program function regs
> >   coresight: cti: Add sysfs trigger / channel programming API
> >   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
> >   coresight: cti: Add device tree support for v8 arch CTI
> >   coresight: cti: Add device tree support for custom CTI.
> >   coresight: cti: Enable CTI associated with devices.
> >   coresight: cti: Add connection information to sysfs
> >   dt-bindings: qcom: Add CTI options for qcom msm8916
> >   dt-bindings: arm: Juno platform - add CTI entries to device tree.
> >   dt-bindings: hisilicon: Add CTI bindings for hi-6220
> >   docs: coresight: Update documentation for CoreSight to cover CTI.
> >   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
> >   Update MAINTAINERS to add reviewer for CoreSight.
> >
>
> All that needs to be sorted out in this set are the comments made by
> Maxime.  When you do address those please only resend that patch.
> Since Maxime's comments are related to yaml syntax rather than the
> bindings themselves, I have added your set to my next tree so that it
> can soak in linux-next over the next few weeks.

Please revert until you can bring in sufficient contents for the trees
to still build. arm64 allmodconfig is unhappy:

Per http://arm-soc.lixom.net/buildlogs/next/next-20191217/buildall.arm64.allmodconfig.log.failed:

/build/drivers/hwtracing/coresight/coresight-cti-platform.c:6:10:
fatal error: dt-bindings/arm/coresight-cti-dt.h: No such file or
directory

In this case, I'm guessing it means getting an ack from the DT
maintainers and either apply the patch in your tree, or get them to
apply it to a stable branch that you can also bring in.


-Olof

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
@ 2019-12-17  4:01     ` Olof Johansson
  0 siblings, 0 replies; 10+ messages in thread
From: Olof Johansson @ 2019-12-17  4:01 UTC (permalink / raw)
  To: Mathieu Poirier
  Cc: DTML, Lorenzo Pieralisi, Suzuki K. Poulose, Coresight ML,
	Liviu Dudau, Andy Gross, Rob Herring, Sudeep Holla,
	linux-arm-kernel, Mike Leach

On Mon, Dec 16, 2019 at 1:22 PM Mathieu Poirier
<mathieu.poirier@linaro.org> wrote:
>
> On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
> >
> > CTIs are defined in the device tree and associated with other CoreSight
> > devices. The core CoreSight code has been modified to enable the registration
> > of the CTI devices on the same bus as the other CoreSight components,
> > but as these are not actually trace generation / capture devices, they
> > are not part of the Coresight path when generating trace.
> >
> > However, the definition of the standard CoreSight device has been extended
> > to include a reference to an associated CTI device, and the enable / disable
> > trace path operations will auto enable/disable any associated CTI devices at
> > the same time.
> >
> > Programming is at present via sysfs - a full API is provided to utilise the
> > hardware capabilities. As CTI devices are unprogrammed by default, the auto
> > enable describe above will have no effect until explicit programming takes
> > place.
> >
> > A set of device tree bindings specific to the CTI topology has been defined.
> > The driver accesses these in a platform agnostic manner, so ACPI bindings
> > can be added later, once they have been agreed and defined for the CTI device.
> >
> > Documentation has been updated to describe both the CTI hardware, its use and
> > programming in sysfs, and the new dts bindings required.
> >
> > Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
> >
> > Changes since v5:
> > 1) Fixed up device tree .yaml file. Using extra compatible string for
> > v8 architecture CTI connections.
> > 2) Ensure association code respects coresight mutex when setting cross
> > referenced pointers. Add in shutdown code.
> > 3) Multiple minor code fixes & rationalisation.
> >
> > Changes since v4:
> > Multiple changes following feedback from Mathieu, Leo and Suzuki.
> > 1) Dropped RFC tag - wider distribution
> > 2) CTI bindings definition now presented as a .yaml file - tested with
> > with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> > build tree with 'make dtbs_check' per kernel docs.
> > 3) Sysfs links to other CoreSight devices moved out of this set into
> > a following set that deals with all CoreSight devices & sysfs links.
> > 4) Documentation in .rst format and new directory following patchset in [1].
> > Extended example provided in docs.
> > 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> > where possible to enable easier addition of ACPI support later.
> > 6) Other minor changes as requested in feedback from last patchset.
> >
> > Changes since v3:
> > 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
> >    sysfs directory with name and trigger signals listed for the connection.
> > 2) Initial code for creating sysfs links between CoreSight components is
> >   introduced and implementation for CTI provided. This allows exploration
> >   of the CoreSight topology within the sysfs infrastructure. Patches for
> >   links between other CoreSight components to follow.
> > 3) Power management - CPU hotplug and idle omitted from this set as ongoing
> >    developments may define required direction. Additional patch set to follow.
> > 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
> >    and Leo.
> >
> > Changes since v2:
> > Updates to allow for new features on coresight/next and feedback from
> > Mathieu and Leo.
> >
> > 1) Rebase and restructuring to apply on top of ACPI support patch set,
> > currently on coresight/next. of_coresight_cti has been renamed to
> > coresight-cti-platform and device tree bindings added to this but accessed
> > in a platform agnostic manner using fwnode for later ACPI support
> > to be added.
> > 2) Split the sysfs patch info a series of functional patches.
> > 3) Revised the refcount and enabling support.
> > 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> > cti_sysM
> > 5) Various minor presentation /checkpatch issues highlighted in feedback.
> > 6) revised CPU hotplug to cover missing cases needed by ETM.
> >
> > Changes since v1:
> > 1) Significant restructuring of the source code. Adds cti-sysfs file and
> > cti device tree file. Patches add per feature rather than per source
> > file.
> > 2) CPU type power event handling for hotplug moved to CoreSight core,
> > with generic registration interface provided for all CPU bound CS devices
> > to use.
> > 3) CTI signal interconnection details in sysfs now generated dynamically
> > from connection lists in driver. This to fix issue with multi-line sysfs
> > output in previous version.
> > 4) Full device tree bindings for DB410 and Juno provided (to the extent
> > that CTI information is available).
> > 5) AMBA driver update for UCI IDs are now upstream so no longer included
> > in this set.
> >
> > Mike Leach (15):
> >   coresight: cti: Initial CoreSight CTI Driver
> >   coresight: cti: Add sysfs coresight mgmt reg access.
> >   coresight: cti: Add sysfs access to program function regs
> >   coresight: cti: Add sysfs trigger / channel programming API
> >   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
> >   coresight: cti: Add device tree support for v8 arch CTI
> >   coresight: cti: Add device tree support for custom CTI.
> >   coresight: cti: Enable CTI associated with devices.
> >   coresight: cti: Add connection information to sysfs
> >   dt-bindings: qcom: Add CTI options for qcom msm8916
> >   dt-bindings: arm: Juno platform - add CTI entries to device tree.
> >   dt-bindings: hisilicon: Add CTI bindings for hi-6220
> >   docs: coresight: Update documentation for CoreSight to cover CTI.
> >   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
> >   Update MAINTAINERS to add reviewer for CoreSight.
> >
>
> All that needs to be sorted out in this set are the comments made by
> Maxime.  When you do address those please only resend that patch.
> Since Maxime's comments are related to yaml syntax rather than the
> bindings themselves, I have added your set to my next tree so that it
> can soak in linux-next over the next few weeks.

Please revert until you can bring in sufficient contents for the trees
to still build. arm64 allmodconfig is unhappy:

Per http://arm-soc.lixom.net/buildlogs/next/next-20191217/buildall.arm64.allmodconfig.log.failed:

/build/drivers/hwtracing/coresight/coresight-cti-platform.c:6:10:
fatal error: dt-bindings/arm/coresight-cti-dt.h: No such file or
directory

In this case, I'm guessing it means getting an ack from the DT
maintainers and either apply the patch in your tree, or get them to
apply it to a stable branch that you can also bring in.


-Olof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
  2019-12-16 21:22   ` Mathieu Poirier
@ 2019-12-17 11:51     ` Mike Leach
  -1 siblings, 0 replies; 10+ messages in thread
From: Mike Leach @ 2019-12-17 11:51 UTC (permalink / raw)
  To: Mathieu Poirier
  Cc: linux-arm-kernel, Coresight ML, devicetree, Suzuki K. Poulose,
	Rob Herring, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Andy Gross

Hi Mathieu,

On Mon, 16 Dec 2019 at 21:22, Mathieu Poirier
<mathieu.poirier@linaro.org> wrote:
>
> On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
> >
> > CTIs are defined in the device tree and associated with other CoreSight
> > devices. The core CoreSight code has been modified to enable the registration
> > of the CTI devices on the same bus as the other CoreSight components,
> > but as these are not actually trace generation / capture devices, they
> > are not part of the Coresight path when generating trace.
> >
> > However, the definition of the standard CoreSight device has been extended
> > to include a reference to an associated CTI device, and the enable / disable
> > trace path operations will auto enable/disable any associated CTI devices at
> > the same time.
> >
> > Programming is at present via sysfs - a full API is provided to utilise the
> > hardware capabilities. As CTI devices are unprogrammed by default, the auto
> > enable describe above will have no effect until explicit programming takes
> > place.
> >
> > A set of device tree bindings specific to the CTI topology has been defined.
> > The driver accesses these in a platform agnostic manner, so ACPI bindings
> > can be added later, once they have been agreed and defined for the CTI device.
> >
> > Documentation has been updated to describe both the CTI hardware, its use and
> > programming in sysfs, and the new dts bindings required.
> >
> > Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
> >
> > Changes since v5:
> > 1) Fixed up device tree .yaml file. Using extra compatible string for
> > v8 architecture CTI connections.
> > 2) Ensure association code respects coresight mutex when setting cross
> > referenced pointers. Add in shutdown code.
> > 3) Multiple minor code fixes & rationalisation.
> >
> > Changes since v4:
> > Multiple changes following feedback from Mathieu, Leo and Suzuki.
> > 1) Dropped RFC tag - wider distribution
> > 2) CTI bindings definition now presented as a .yaml file - tested with
> > with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> > build tree with 'make dtbs_check' per kernel docs.
> > 3) Sysfs links to other CoreSight devices moved out of this set into
> > a following set that deals with all CoreSight devices & sysfs links.
> > 4) Documentation in .rst format and new directory following patchset in [1].
> > Extended example provided in docs.
> > 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> > where possible to enable easier addition of ACPI support later.
> > 6) Other minor changes as requested in feedback from last patchset.
> >
> > Changes since v3:
> > 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
> >    sysfs directory with name and trigger signals listed for the connection.
> > 2) Initial code for creating sysfs links between CoreSight components is
> >   introduced and implementation for CTI provided. This allows exploration
> >   of the CoreSight topology within the sysfs infrastructure. Patches for
> >   links between other CoreSight components to follow.
> > 3) Power management - CPU hotplug and idle omitted from this set as ongoing
> >    developments may define required direction. Additional patch set to follow.
> > 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
> >    and Leo.
> >
> > Changes since v2:
> > Updates to allow for new features on coresight/next and feedback from
> > Mathieu and Leo.
> >
> > 1) Rebase and restructuring to apply on top of ACPI support patch set,
> > currently on coresight/next. of_coresight_cti has been renamed to
> > coresight-cti-platform and device tree bindings added to this but accessed
> > in a platform agnostic manner using fwnode for later ACPI support
> > to be added.
> > 2) Split the sysfs patch info a series of functional patches.
> > 3) Revised the refcount and enabling support.
> > 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> > cti_sysM
> > 5) Various minor presentation /checkpatch issues highlighted in feedback.
> > 6) revised CPU hotplug to cover missing cases needed by ETM.
> >
> > Changes since v1:
> > 1) Significant restructuring of the source code. Adds cti-sysfs file and
> > cti device tree file. Patches add per feature rather than per source
> > file.
> > 2) CPU type power event handling for hotplug moved to CoreSight core,
> > with generic registration interface provided for all CPU bound CS devices
> > to use.
> > 3) CTI signal interconnection details in sysfs now generated dynamically
> > from connection lists in driver. This to fix issue with multi-line sysfs
> > output in previous version.
> > 4) Full device tree bindings for DB410 and Juno provided (to the extent
> > that CTI information is available).
> > 5) AMBA driver update for UCI IDs are now upstream so no longer included
> > in this set.
> >
> > Mike Leach (15):
> >   coresight: cti: Initial CoreSight CTI Driver
> >   coresight: cti: Add sysfs coresight mgmt reg access.
> >   coresight: cti: Add sysfs access to program function regs
> >   coresight: cti: Add sysfs trigger / channel programming API
> >   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
> >   coresight: cti: Add device tree support for v8 arch CTI
> >   coresight: cti: Add device tree support for custom CTI.
> >   coresight: cti: Enable CTI associated with devices.
> >   coresight: cti: Add connection information to sysfs
> >   dt-bindings: qcom: Add CTI options for qcom msm8916
> >   dt-bindings: arm: Juno platform - add CTI entries to device tree.
> >   dt-bindings: hisilicon: Add CTI bindings for hi-6220
> >   docs: coresight: Update documentation for CoreSight to cover CTI.
> >   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
> >   Update MAINTAINERS to add reviewer for CoreSight.
> >
>
> All that needs to be sorted out in this set are the comments made by
> Maxime.  When you do address those please only resend that patch.
> Since Maxime's comments are related to yaml syntax rather than the
> bindings themselves, I have added your set to my next tree so that it
> can soak in linux-next over the next few weeks.
>

As a result of the changes requested by Maxime - there are necessary
changes to the .dts for the juno bindings as well as the .yaml file -
juno bindings need to respect the requirement for reg = <> entries in
the trig-conns@ child nodes.

These changes are still limited to devicetree so I will post just
these two patches next time.

Regards

Mike

> Thanks,
> Mathieu
>
> >  .../testing/sysfs-bus-coresight-devices-cti   |  221 ++++
> >  .../bindings/arm/coresight-cti.yaml           |  303 +++++
> >  .../devicetree/bindings/arm/coresight.txt     |    7 +
> >  .../trace/coresight/coresight-ect.rst         |  211 +++
> >  Documentation/trace/coresight/coresight.rst   |   13 +
> >  MAINTAINERS                                   |    3 +
> >  arch/arm64/boot/dts/arm/juno-base.dtsi        |  149 ++-
> >  arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi     |   31 +-
> >  arch/arm64/boot/dts/arm/juno-r1.dts           |   25 +
> >  arch/arm64/boot/dts/arm/juno-r2.dts           |   25 +
> >  arch/arm64/boot/dts/arm/juno.dts              |   25 +
> >  .../boot/dts/hisilicon/hi6220-coresight.dtsi  |  130 +-
> >  arch/arm64/boot/dts/qcom/msm8916.dtsi         |   85 +-
> >  drivers/hwtracing/coresight/Kconfig           |   21 +
> >  drivers/hwtracing/coresight/Makefile          |    3 +
> >  .../coresight/coresight-cti-platform.c        |  485 +++++++
> >  .../hwtracing/coresight/coresight-cti-sysfs.c | 1175 +++++++++++++++++
> >  drivers/hwtracing/coresight/coresight-cti.c   |  748 +++++++++++
> >  drivers/hwtracing/coresight/coresight-cti.h   |  235 ++++
> >  .../hwtracing/coresight/coresight-platform.c  |   21 +
> >  drivers/hwtracing/coresight/coresight-priv.h  |   15 +
> >  drivers/hwtracing/coresight/coresight.c       |   86 +-
> >  include/dt-bindings/arm/coresight-cti-dt.h    |   37 +
> >  include/linux/coresight.h                     |   27 +
> >  24 files changed, 4050 insertions(+), 31 deletions(-)
> >  create mode 100644 Documentation/ABI/testing/sysfs-bus-coresight-devices-cti
> >  create mode 100644 Documentation/devicetree/bindings/arm/coresight-cti.yaml
> >  create mode 100644 Documentation/trace/coresight/coresight-ect.rst
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti-platform.c
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti-sysfs.c
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti.c
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti.h
> >  create mode 100644 include/dt-bindings/arm/coresight-cti-dt.h
> >
> > --
> > 2.17.1
> >



-- 
Mike Leach
Principal Engineer, ARM Ltd.
Manchester Design Centre. UK

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
@ 2019-12-17 11:51     ` Mike Leach
  0 siblings, 0 replies; 10+ messages in thread
From: Mike Leach @ 2019-12-17 11:51 UTC (permalink / raw)
  To: Mathieu Poirier
  Cc: devicetree, Lorenzo Pieralisi, Suzuki K. Poulose, Coresight ML,
	Liviu Dudau, Andy Gross, Rob Herring, Sudeep Holla,
	linux-arm-kernel

Hi Mathieu,

On Mon, 16 Dec 2019 at 21:22, Mathieu Poirier
<mathieu.poirier@linaro.org> wrote:
>
> On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
> >
> > CTIs are defined in the device tree and associated with other CoreSight
> > devices. The core CoreSight code has been modified to enable the registration
> > of the CTI devices on the same bus as the other CoreSight components,
> > but as these are not actually trace generation / capture devices, they
> > are not part of the Coresight path when generating trace.
> >
> > However, the definition of the standard CoreSight device has been extended
> > to include a reference to an associated CTI device, and the enable / disable
> > trace path operations will auto enable/disable any associated CTI devices at
> > the same time.
> >
> > Programming is at present via sysfs - a full API is provided to utilise the
> > hardware capabilities. As CTI devices are unprogrammed by default, the auto
> > enable describe above will have no effect until explicit programming takes
> > place.
> >
> > A set of device tree bindings specific to the CTI topology has been defined.
> > The driver accesses these in a platform agnostic manner, so ACPI bindings
> > can be added later, once they have been agreed and defined for the CTI device.
> >
> > Documentation has been updated to describe both the CTI hardware, its use and
> > programming in sysfs, and the new dts bindings required.
> >
> > Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
> >
> > Changes since v5:
> > 1) Fixed up device tree .yaml file. Using extra compatible string for
> > v8 architecture CTI connections.
> > 2) Ensure association code respects coresight mutex when setting cross
> > referenced pointers. Add in shutdown code.
> > 3) Multiple minor code fixes & rationalisation.
> >
> > Changes since v4:
> > Multiple changes following feedback from Mathieu, Leo and Suzuki.
> > 1) Dropped RFC tag - wider distribution
> > 2) CTI bindings definition now presented as a .yaml file - tested with
> > with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> > build tree with 'make dtbs_check' per kernel docs.
> > 3) Sysfs links to other CoreSight devices moved out of this set into
> > a following set that deals with all CoreSight devices & sysfs links.
> > 4) Documentation in .rst format and new directory following patchset in [1].
> > Extended example provided in docs.
> > 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> > where possible to enable easier addition of ACPI support later.
> > 6) Other minor changes as requested in feedback from last patchset.
> >
> > Changes since v3:
> > 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
> >    sysfs directory with name and trigger signals listed for the connection.
> > 2) Initial code for creating sysfs links between CoreSight components is
> >   introduced and implementation for CTI provided. This allows exploration
> >   of the CoreSight topology within the sysfs infrastructure. Patches for
> >   links between other CoreSight components to follow.
> > 3) Power management - CPU hotplug and idle omitted from this set as ongoing
> >    developments may define required direction. Additional patch set to follow.
> > 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
> >    and Leo.
> >
> > Changes since v2:
> > Updates to allow for new features on coresight/next and feedback from
> > Mathieu and Leo.
> >
> > 1) Rebase and restructuring to apply on top of ACPI support patch set,
> > currently on coresight/next. of_coresight_cti has been renamed to
> > coresight-cti-platform and device tree bindings added to this but accessed
> > in a platform agnostic manner using fwnode for later ACPI support
> > to be added.
> > 2) Split the sysfs patch info a series of functional patches.
> > 3) Revised the refcount and enabling support.
> > 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> > cti_sysM
> > 5) Various minor presentation /checkpatch issues highlighted in feedback.
> > 6) revised CPU hotplug to cover missing cases needed by ETM.
> >
> > Changes since v1:
> > 1) Significant restructuring of the source code. Adds cti-sysfs file and
> > cti device tree file. Patches add per feature rather than per source
> > file.
> > 2) CPU type power event handling for hotplug moved to CoreSight core,
> > with generic registration interface provided for all CPU bound CS devices
> > to use.
> > 3) CTI signal interconnection details in sysfs now generated dynamically
> > from connection lists in driver. This to fix issue with multi-line sysfs
> > output in previous version.
> > 4) Full device tree bindings for DB410 and Juno provided (to the extent
> > that CTI information is available).
> > 5) AMBA driver update for UCI IDs are now upstream so no longer included
> > in this set.
> >
> > Mike Leach (15):
> >   coresight: cti: Initial CoreSight CTI Driver
> >   coresight: cti: Add sysfs coresight mgmt reg access.
> >   coresight: cti: Add sysfs access to program function regs
> >   coresight: cti: Add sysfs trigger / channel programming API
> >   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
> >   coresight: cti: Add device tree support for v8 arch CTI
> >   coresight: cti: Add device tree support for custom CTI.
> >   coresight: cti: Enable CTI associated with devices.
> >   coresight: cti: Add connection information to sysfs
> >   dt-bindings: qcom: Add CTI options for qcom msm8916
> >   dt-bindings: arm: Juno platform - add CTI entries to device tree.
> >   dt-bindings: hisilicon: Add CTI bindings for hi-6220
> >   docs: coresight: Update documentation for CoreSight to cover CTI.
> >   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
> >   Update MAINTAINERS to add reviewer for CoreSight.
> >
>
> All that needs to be sorted out in this set are the comments made by
> Maxime.  When you do address those please only resend that patch.
> Since Maxime's comments are related to yaml syntax rather than the
> bindings themselves, I have added your set to my next tree so that it
> can soak in linux-next over the next few weeks.
>

As a result of the changes requested by Maxime - there are necessary
changes to the .dts for the juno bindings as well as the .yaml file -
juno bindings need to respect the requirement for reg = <> entries in
the trig-conns@ child nodes.

These changes are still limited to devicetree so I will post just
these two patches next time.

Regards

Mike

> Thanks,
> Mathieu
>
> >  .../testing/sysfs-bus-coresight-devices-cti   |  221 ++++
> >  .../bindings/arm/coresight-cti.yaml           |  303 +++++
> >  .../devicetree/bindings/arm/coresight.txt     |    7 +
> >  .../trace/coresight/coresight-ect.rst         |  211 +++
> >  Documentation/trace/coresight/coresight.rst   |   13 +
> >  MAINTAINERS                                   |    3 +
> >  arch/arm64/boot/dts/arm/juno-base.dtsi        |  149 ++-
> >  arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi     |   31 +-
> >  arch/arm64/boot/dts/arm/juno-r1.dts           |   25 +
> >  arch/arm64/boot/dts/arm/juno-r2.dts           |   25 +
> >  arch/arm64/boot/dts/arm/juno.dts              |   25 +
> >  .../boot/dts/hisilicon/hi6220-coresight.dtsi  |  130 +-
> >  arch/arm64/boot/dts/qcom/msm8916.dtsi         |   85 +-
> >  drivers/hwtracing/coresight/Kconfig           |   21 +
> >  drivers/hwtracing/coresight/Makefile          |    3 +
> >  .../coresight/coresight-cti-platform.c        |  485 +++++++
> >  .../hwtracing/coresight/coresight-cti-sysfs.c | 1175 +++++++++++++++++
> >  drivers/hwtracing/coresight/coresight-cti.c   |  748 +++++++++++
> >  drivers/hwtracing/coresight/coresight-cti.h   |  235 ++++
> >  .../hwtracing/coresight/coresight-platform.c  |   21 +
> >  drivers/hwtracing/coresight/coresight-priv.h  |   15 +
> >  drivers/hwtracing/coresight/coresight.c       |   86 +-
> >  include/dt-bindings/arm/coresight-cti-dt.h    |   37 +
> >  include/linux/coresight.h                     |   27 +
> >  24 files changed, 4050 insertions(+), 31 deletions(-)
> >  create mode 100644 Documentation/ABI/testing/sysfs-bus-coresight-devices-cti
> >  create mode 100644 Documentation/devicetree/bindings/arm/coresight-cti.yaml
> >  create mode 100644 Documentation/trace/coresight/coresight-ect.rst
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti-platform.c
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti-sysfs.c
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti.c
> >  create mode 100644 drivers/hwtracing/coresight/coresight-cti.h
> >  create mode 100644 include/dt-bindings/arm/coresight-cti-dt.h
> >
> > --
> > 2.17.1
> >



-- 
Mike Leach
Principal Engineer, ARM Ltd.
Manchester Design Centre. UK

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
  2019-12-17 11:51     ` Mike Leach
@ 2019-12-17 22:27       ` Olof Johansson
  -1 siblings, 0 replies; 10+ messages in thread
From: Olof Johansson @ 2019-12-17 22:27 UTC (permalink / raw)
  To: Mike Leach
  Cc: Mathieu Poirier, linux-arm-kernel, Coresight ML, DTML,
	Suzuki K. Poulose, Rob Herring, Liviu Dudau, Sudeep Holla,
	Lorenzo Pieralisi, Andy Gross

On Tue, Dec 17, 2019 at 3:51 AM Mike Leach <mike.leach@linaro.org> wrote:
>
> Hi Mathieu,
>
> On Mon, 16 Dec 2019 at 21:22, Mathieu Poirier
> <mathieu.poirier@linaro.org> wrote:
> >
> > On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
> > >
> > > CTIs are defined in the device tree and associated with other CoreSight
> > > devices. The core CoreSight code has been modified to enable the registration
> > > of the CTI devices on the same bus as the other CoreSight components,
> > > but as these are not actually trace generation / capture devices, they
> > > are not part of the Coresight path when generating trace.
> > >
> > > However, the definition of the standard CoreSight device has been extended
> > > to include a reference to an associated CTI device, and the enable / disable
> > > trace path operations will auto enable/disable any associated CTI devices at
> > > the same time.
> > >
> > > Programming is at present via sysfs - a full API is provided to utilise the
> > > hardware capabilities. As CTI devices are unprogrammed by default, the auto
> > > enable describe above will have no effect until explicit programming takes
> > > place.
> > >
> > > A set of device tree bindings specific to the CTI topology has been defined.
> > > The driver accesses these in a platform agnostic manner, so ACPI bindings
> > > can be added later, once they have been agreed and defined for the CTI device.
> > >
> > > Documentation has been updated to describe both the CTI hardware, its use and
> > > programming in sysfs, and the new dts bindings required.
> > >
> > > Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
> > >
> > > Changes since v5:
> > > 1) Fixed up device tree .yaml file. Using extra compatible string for
> > > v8 architecture CTI connections.
> > > 2) Ensure association code respects coresight mutex when setting cross
> > > referenced pointers. Add in shutdown code.
> > > 3) Multiple minor code fixes & rationalisation.
> > >
> > > Changes since v4:
> > > Multiple changes following feedback from Mathieu, Leo and Suzuki.
> > > 1) Dropped RFC tag - wider distribution
> > > 2) CTI bindings definition now presented as a .yaml file - tested with
> > > with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> > > build tree with 'make dtbs_check' per kernel docs.
> > > 3) Sysfs links to other CoreSight devices moved out of this set into
> > > a following set that deals with all CoreSight devices & sysfs links.
> > > 4) Documentation in .rst format and new directory following patchset in [1].
> > > Extended example provided in docs.
> > > 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> > > where possible to enable easier addition of ACPI support later.
> > > 6) Other minor changes as requested in feedback from last patchset.
> > >
> > > Changes since v3:
> > > 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
> > >    sysfs directory with name and trigger signals listed for the connection.
> > > 2) Initial code for creating sysfs links between CoreSight components is
> > >   introduced and implementation for CTI provided. This allows exploration
> > >   of the CoreSight topology within the sysfs infrastructure. Patches for
> > >   links between other CoreSight components to follow.
> > > 3) Power management - CPU hotplug and idle omitted from this set as ongoing
> > >    developments may define required direction. Additional patch set to follow.
> > > 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
> > >    and Leo.
> > >
> > > Changes since v2:
> > > Updates to allow for new features on coresight/next and feedback from
> > > Mathieu and Leo.
> > >
> > > 1) Rebase and restructuring to apply on top of ACPI support patch set,
> > > currently on coresight/next. of_coresight_cti has been renamed to
> > > coresight-cti-platform and device tree bindings added to this but accessed
> > > in a platform agnostic manner using fwnode for later ACPI support
> > > to be added.
> > > 2) Split the sysfs patch info a series of functional patches.
> > > 3) Revised the refcount and enabling support.
> > > 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> > > cti_sysM
> > > 5) Various minor presentation /checkpatch issues highlighted in feedback.
> > > 6) revised CPU hotplug to cover missing cases needed by ETM.
> > >
> > > Changes since v1:
> > > 1) Significant restructuring of the source code. Adds cti-sysfs file and
> > > cti device tree file. Patches add per feature rather than per source
> > > file.
> > > 2) CPU type power event handling for hotplug moved to CoreSight core,
> > > with generic registration interface provided for all CPU bound CS devices
> > > to use.
> > > 3) CTI signal interconnection details in sysfs now generated dynamically
> > > from connection lists in driver. This to fix issue with multi-line sysfs
> > > output in previous version.
> > > 4) Full device tree bindings for DB410 and Juno provided (to the extent
> > > that CTI information is available).
> > > 5) AMBA driver update for UCI IDs are now upstream so no longer included
> > > in this set.
> > >
> > > Mike Leach (15):
> > >   coresight: cti: Initial CoreSight CTI Driver
> > >   coresight: cti: Add sysfs coresight mgmt reg access.
> > >   coresight: cti: Add sysfs access to program function regs
> > >   coresight: cti: Add sysfs trigger / channel programming API
> > >   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
> > >   coresight: cti: Add device tree support for v8 arch CTI
> > >   coresight: cti: Add device tree support for custom CTI.
> > >   coresight: cti: Enable CTI associated with devices.
> > >   coresight: cti: Add connection information to sysfs
> > >   dt-bindings: qcom: Add CTI options for qcom msm8916
> > >   dt-bindings: arm: Juno platform - add CTI entries to device tree.
> > >   dt-bindings: hisilicon: Add CTI bindings for hi-6220
> > >   docs: coresight: Update documentation for CoreSight to cover CTI.
> > >   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
> > >   Update MAINTAINERS to add reviewer for CoreSight.
> > >
> >
> > All that needs to be sorted out in this set are the comments made by
> > Maxime.  When you do address those please only resend that patch.
> > Since Maxime's comments are related to yaml syntax rather than the
> > bindings themselves, I have added your set to my next tree so that it
> > can soak in linux-next over the next few weeks.
> >
>
> As a result of the changes requested by Maxime - there are necessary
> changes to the .dts for the juno bindings as well as the .yaml file -
> juno bindings need to respect the requirement for reg = <> entries in
> the trig-conns@ child nodes.
>
> These changes are still limited to devicetree so I will post just
> these two patches next time.

Note that new driver features should not require updated DTS contents.
You might not get the new feature enabled, but continued function as
before needs to be maintained.


-Olof

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 00/15] CoreSight CTI Driver
@ 2019-12-17 22:27       ` Olof Johansson
  0 siblings, 0 replies; 10+ messages in thread
From: Olof Johansson @ 2019-12-17 22:27 UTC (permalink / raw)
  To: Mike Leach
  Cc: DTML, Lorenzo Pieralisi, Mathieu Poirier, Suzuki K. Poulose,
	Coresight ML, Liviu Dudau, Andy Gross, Rob Herring, Sudeep Holla,
	linux-arm-kernel

On Tue, Dec 17, 2019 at 3:51 AM Mike Leach <mike.leach@linaro.org> wrote:
>
> Hi Mathieu,
>
> On Mon, 16 Dec 2019 at 21:22, Mathieu Poirier
> <mathieu.poirier@linaro.org> wrote:
> >
> > On Wed, 11 Dec 2019 at 16:07, Mike Leach <mike.leach@linaro.org> wrote:
> > >
> > > CTIs are defined in the device tree and associated with other CoreSight
> > > devices. The core CoreSight code has been modified to enable the registration
> > > of the CTI devices on the same bus as the other CoreSight components,
> > > but as these are not actually trace generation / capture devices, they
> > > are not part of the Coresight path when generating trace.
> > >
> > > However, the definition of the standard CoreSight device has been extended
> > > to include a reference to an associated CTI device, and the enable / disable
> > > trace path operations will auto enable/disable any associated CTI devices at
> > > the same time.
> > >
> > > Programming is at present via sysfs - a full API is provided to utilise the
> > > hardware capabilities. As CTI devices are unprogrammed by default, the auto
> > > enable describe above will have no effect until explicit programming takes
> > > place.
> > >
> > > A set of device tree bindings specific to the CTI topology has been defined.
> > > The driver accesses these in a platform agnostic manner, so ACPI bindings
> > > can be added later, once they have been agreed and defined for the CTI device.
> > >
> > > Documentation has been updated to describe both the CTI hardware, its use and
> > > programming in sysfs, and the new dts bindings required.
> > >
> > > Tested on DB410 board and Juno board, against the Linux 5.5-rc1 tree.
> > >
> > > Changes since v5:
> > > 1) Fixed up device tree .yaml file. Using extra compatible string for
> > > v8 architecture CTI connections.
> > > 2) Ensure association code respects coresight mutex when setting cross
> > > referenced pointers. Add in shutdown code.
> > > 3) Multiple minor code fixes & rationalisation.
> > >
> > > Changes since v4:
> > > Multiple changes following feedback from Mathieu, Leo and Suzuki.
> > > 1) Dropped RFC tag - wider distribution
> > > 2) CTI bindings definition now presented as a .yaml file - tested with
> > > with 'dt-doc-validate' from devicetree.org/dt-schema project and in kernel
> > > build tree with 'make dtbs_check' per kernel docs.
> > > 3) Sysfs links to other CoreSight devices moved out of this set into
> > > a following set that deals with all CoreSight devices & sysfs links.
> > > 4) Documentation in .rst format and new directory following patchset in [1].
> > > Extended example provided in docs.
> > > 5) Rationalised devicetree of_ specifics to use generic fwnode functions
> > > where possible to enable easier addition of ACPI support later.
> > > 6) Other minor changes as requested in feedback from last patchset.
> > >
> > > Changes since v3:
> > > 1) After discussion on CS mailing list, each CTI connection has a triggers<N>
> > >    sysfs directory with name and trigger signals listed for the connection.
> > > 2) Initial code for creating sysfs links between CoreSight components is
> > >   introduced and implementation for CTI provided. This allows exploration
> > >   of the CoreSight topology within the sysfs infrastructure. Patches for
> > >   links between other CoreSight components to follow.
> > > 3) Power management - CPU hotplug and idle omitted from this set as ongoing
> > >    developments may define required direction. Additional patch set to follow.
> > > 4) Multiple fixes applied as requested by reviewers esp. Matthieu, Suzuki
> > >    and Leo.
> > >
> > > Changes since v2:
> > > Updates to allow for new features on coresight/next and feedback from
> > > Mathieu and Leo.
> > >
> > > 1) Rebase and restructuring to apply on top of ACPI support patch set,
> > > currently on coresight/next. of_coresight_cti has been renamed to
> > > coresight-cti-platform and device tree bindings added to this but accessed
> > > in a platform agnostic manner using fwnode for later ACPI support
> > > to be added.
> > > 2) Split the sysfs patch info a series of functional patches.
> > > 3) Revised the refcount and enabling support.
> > > 4) Adopted the generic naming protocol - CTIs are either cti_cpuN or
> > > cti_sysM
> > > 5) Various minor presentation /checkpatch issues highlighted in feedback.
> > > 6) revised CPU hotplug to cover missing cases needed by ETM.
> > >
> > > Changes since v1:
> > > 1) Significant restructuring of the source code. Adds cti-sysfs file and
> > > cti device tree file. Patches add per feature rather than per source
> > > file.
> > > 2) CPU type power event handling for hotplug moved to CoreSight core,
> > > with generic registration interface provided for all CPU bound CS devices
> > > to use.
> > > 3) CTI signal interconnection details in sysfs now generated dynamically
> > > from connection lists in driver. This to fix issue with multi-line sysfs
> > > output in previous version.
> > > 4) Full device tree bindings for DB410 and Juno provided (to the extent
> > > that CTI information is available).
> > > 5) AMBA driver update for UCI IDs are now upstream so no longer included
> > > in this set.
> > >
> > > Mike Leach (15):
> > >   coresight: cti: Initial CoreSight CTI Driver
> > >   coresight: cti: Add sysfs coresight mgmt reg access.
> > >   coresight: cti: Add sysfs access to program function regs
> > >   coresight: cti: Add sysfs trigger / channel programming API
> > >   dt-bindings: arm: Adds CoreSight CTI hardware definitions.
> > >   coresight: cti: Add device tree support for v8 arch CTI
> > >   coresight: cti: Add device tree support for custom CTI.
> > >   coresight: cti: Enable CTI associated with devices.
> > >   coresight: cti: Add connection information to sysfs
> > >   dt-bindings: qcom: Add CTI options for qcom msm8916
> > >   dt-bindings: arm: Juno platform - add CTI entries to device tree.
> > >   dt-bindings: hisilicon: Add CTI bindings for hi-6220
> > >   docs: coresight: Update documentation for CoreSight to cover CTI.
> > >   docs: sysfs: coresight: Add sysfs ABI documentation for CTI
> > >   Update MAINTAINERS to add reviewer for CoreSight.
> > >
> >
> > All that needs to be sorted out in this set are the comments made by
> > Maxime.  When you do address those please only resend that patch.
> > Since Maxime's comments are related to yaml syntax rather than the
> > bindings themselves, I have added your set to my next tree so that it
> > can soak in linux-next over the next few weeks.
> >
>
> As a result of the changes requested by Maxime - there are necessary
> changes to the .dts for the juno bindings as well as the .yaml file -
> juno bindings need to respect the requirement for reg = <> entries in
> the trig-conns@ child nodes.
>
> These changes are still limited to devicetree so I will post just
> these two patches next time.

Note that new driver features should not require updated DTS contents.
You might not get the new feature enabled, but continued function as
before needs to be maintained.


-Olof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-12-17 22:27 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-11 23:07 [PATCH v6 00/15] CoreSight CTI Driver Mike Leach
2019-12-11 23:07 ` Mike Leach
2019-12-16 21:22 ` Mathieu Poirier
2019-12-16 21:22   ` Mathieu Poirier
2019-12-17  4:01   ` Olof Johansson
2019-12-17  4:01     ` Olof Johansson
2019-12-17 11:51   ` Mike Leach
2019-12-17 11:51     ` Mike Leach
2019-12-17 22:27     ` Olof Johansson
2019-12-17 22:27       ` Olof Johansson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.