mbox series

[v4,0/3] Update AMBA driver for enhanced component ID spec.

Message ID 20190130234051.2294-1-mike.leach@linaro.org
Headers show
Series Update AMBA driver for enhanced component ID spec. | expand

Message

Mike Leach Jan. 30, 2019, 11:40 p.m. UTC
The latest ARM CoreSight specification updates the component identification
requirements for all components attached to an AMBA bus. (ARM IHI 0029E)

This specification defines bits 15:12 in the ComponentID (CID) value as the
device class. Identification requirements now depend on this class.
Class 0xF: Traditional components identified by Peripheral ID (PID) only.
Class 0x9: CoreSight components may be identified by a Universal Component
Identifier (UCI) consisting of the PID plus CoreSight DevType and DevArch
values.

Current and future ARM CoreSight IP will now use the same PID for
components on the same function - e.g. the ETM, CTI, PMU and Debug elements
associated with a core. The first core to use this UCI method is the A35,
which currently has binding entries in the ETMv4 driver.

This patchset prepares for the addition of the upcoming CTI driver, which
will need to correctly bind with A35, and reported new devices that share
PID for multiple components, while overcoming the limitation of binding by
PID alone, which cannot now work.

Patch 0001: Adds new UCI data structure and uses it with existing drivers
that use private data field in amba_id. This fixes issue from prior set.
Patch 0002: Implements the UCI matching code in the AMBA core code.
Patch 0003: Update ETMv4 driver to use UCI as appropriate. 

Thanks
Mike

Tested on DB410, Juno; kernel 5.0-rc4

Changes since v3:
Fix UCI structure to allow CoreSight drivers to set private data. This
fixes bug where none-UCI private data would cause a driver binding
mismatch. (e.g. STM).

Add CS_AMBA macros to simplify building AMBA ID tables, with and without
UCI settings.

Changes since v2:
Simplification of amba_cs_uci_id_match().
Fix CID class bitfield comments.
Dropped RFC tag on patchset.

Mike Leach (3):
  drivers: amba: Updates to component identification for driver
    matching.
  drivers: amba: Update component matching to use the CoreSight UCI
    values.
  coresight: etmv4: Update ID register table to add UCI support

 drivers/amba/bus.c                            | 45 +++++++++++++++----
 drivers/hwtracing/coresight/coresight-etm3x.c | 44 ++++++------------
 drivers/hwtracing/coresight/coresight-etm4x.c | 21 +++++----
 drivers/hwtracing/coresight/coresight-priv.h  | 40 +++++++++++++++++
 drivers/hwtracing/coresight/coresight-stm.c   | 14 ++----
 drivers/hwtracing/coresight/coresight-tmc.c   | 30 ++++---------
 include/linux/amba/bus.h                      | 39 ++++++++++++++++
 7 files changed, 153 insertions(+), 80 deletions(-)

-- 
2.19.1

Comments

Mathieu Poirier Feb. 6, 2019, 8:58 p.m. UTC | #1
On Wed, 30 Jan 2019 at 16:40, Mike Leach <mike.leach@linaro.org> wrote:
>

> The latest ARM CoreSight specification updates the component identification

> requirements for all components attached to an AMBA bus. (ARM IHI 0029E)

>

> This specification defines bits 15:12 in the ComponentID (CID) value as the

> device class. Identification requirements now depend on this class.

> Class 0xF: Traditional components identified by Peripheral ID (PID) only.

> Class 0x9: CoreSight components may be identified by a Universal Component

> Identifier (UCI) consisting of the PID plus CoreSight DevType and DevArch

> values.

>

> Current and future ARM CoreSight IP will now use the same PID for

> components on the same function - e.g. the ETM, CTI, PMU and Debug elements

> associated with a core. The first core to use this UCI method is the A35,

> which currently has binding entries in the ETMv4 driver.

>

> This patchset prepares for the addition of the upcoming CTI driver, which

> will need to correctly bind with A35, and reported new devices that share

> PID for multiple components, while overcoming the limitation of binding by

> PID alone, which cannot now work.

>

> Patch 0001: Adds new UCI data structure and uses it with existing drivers

> that use private data field in amba_id. This fixes issue from prior set.

> Patch 0002: Implements the UCI matching code in the AMBA core code.

> Patch 0003: Update ETMv4 driver to use UCI as appropriate.

>

> Thanks

> Mike

>

> Tested on DB410, Juno; kernel 5.0-rc4

>

> Changes since v3:

> Fix UCI structure to allow CoreSight drivers to set private data. This

> fixes bug where none-UCI private data would cause a driver binding

> mismatch. (e.g. STM).

>

> Add CS_AMBA macros to simplify building AMBA ID tables, with and without

> UCI settings.

>

> Changes since v2:

> Simplification of amba_cs_uci_id_match().

> Fix CID class bitfield comments.

> Dropped RFC tag on patchset.

>

> Mike Leach (3):

>   drivers: amba: Updates to component identification for driver

>     matching.

>   drivers: amba: Update component matching to use the CoreSight UCI

>     values.

>   coresight: etmv4: Update ID register table to add UCI support

>

>  drivers/amba/bus.c                            | 45 +++++++++++++++----

>  drivers/hwtracing/coresight/coresight-etm3x.c | 44 ++++++------------

>  drivers/hwtracing/coresight/coresight-etm4x.c | 21 +++++----

>  drivers/hwtracing/coresight/coresight-priv.h  | 40 +++++++++++++++++

>  drivers/hwtracing/coresight/coresight-stm.c   | 14 ++----

>  drivers/hwtracing/coresight/coresight-tmc.c   | 30 ++++---------

>  include/linux/amba/bus.h                      | 39 ++++++++++++++++

>  7 files changed, 153 insertions(+), 80 deletions(-)


Reviewed-and-tested-by: Mathieu Poirier <mathieu.poirier@linaro.org>

I am looking for guidance on how to proceed here.  Russell, can pickup
the AMBA bits in my coresight tree or perharps you'd prefer to see the
whole set added to the patch tracker?  Please let me know.

Thanks,
Mathieu


>

> --

> 2.19.1

>