Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp680967ybh; Wed, 22 Jul 2020 10:23:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwizouJQdahe02zPekE/iLt5QruPAkX//cXiGU4TvhLi3MNPIYs/NMuZOLxq4GGngIA824k X-Received: by 2002:a17:906:1688:: with SMTP id s8mr637595ejd.164.1595438627230; Wed, 22 Jul 2020 10:23:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595438627; cv=none; d=google.com; s=arc-20160816; b=NchDU0zM1bZj15j6SkgqtTy8VkaEZ78RKtpFsfOnGPDD5m+pT6YlZUGViB6Nazek04 ztS6hD+CM3mNip99JDF2AjRJ/c5fK/9XBykrVC/AvzqbL0TlztEu0GRbd6/ltQGE9Pme qcZBcPxZMN4YvhupvvMz+NpSiFiEltTrKHC9CCn+TfJVgDKq1K7SFfAp1HjAUs8lLQ+b TBD6HCkqlc8uvWsZelgObQ+AsbKwdkUhvjdmrYdbW+Lm++Yqe5R6mKEHsYm76pifIL1b 0FN4czDZGR8awcH5Ls4RPnIn5YaVNbpx9rJNmkf1IOfBFks5RdI4H1M84emUJaB9zj8c E28g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=4NI1AOMECgSFBbfS/yw7ZAFdf2sPNDCI4bpve3HV/6g=; b=yCD4mUke+s2OGBrjN5S23Xt87GFqHOlsf+iLMnSEhckLGzJYFAw5mmmPD80T8/gZdE fUk6vIQyC9j7UmWkSk8UYSfsp0lp7gZqZcMV3EdoDLrg/KnS3pb992Qi6TdRXB0YRkA8 uEDKkvVVCu9T8+zZea+YL9Yynim1G7f28k6KM6GV33SVlQgP/iOwg44h0cC8XWB6GYKx vEtyznKb5/7ZTmXvwmIitwszOlYgzJgRyG7mskW8t1twu55hd+qNwngY73zh3b4b3CqU FmI+BNMK0ESl+1xZeUDZpokHsA9V42v9kC4PF3upGEawoziC2WhfG5moN/9LnfISGrmv ydng== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b18si392694ejk.572.2020.07.22.10.23.24; Wed, 22 Jul 2020 10:23:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730802AbgGVRU5 (ORCPT + 99 others); Wed, 22 Jul 2020 13:20:57 -0400 Received: from foss.arm.com ([217.140.110.172]:59936 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726666AbgGVRU4 (ORCPT ); Wed, 22 Jul 2020 13:20:56 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B8C4D31B; Wed, 22 Jul 2020 10:20:55 -0700 (PDT) Received: from ewhatever.cambridge.arm.com (ewhatever.cambridge.arm.com [10.1.197.1]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id D2F8E3F66F; Wed, 22 Jul 2020 10:20:54 -0700 (PDT) From: Suzuki K Poulose To: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, mike.leach@linaro.org, mathieu.poirier@linaro.org, coresight@lists.linaro.org, Suzuki K Poulose Subject: [RFC PATCH 00/14] coresight: Support for ETMv4.4 system instructions Date: Wed, 22 Jul 2020 18:20:26 +0100 Message-Id: <20200722172040.1299289-1-suzuki.poulose@arm.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CoreSight ETMv4.4 introduced system instructions for accessing the ETM. This also implies that they may not be on the amba bus. Right now all the CoreSight components are accessed via memory map. Also, we have some common routines in coresight generic code driver (e.g, CS_LOCK, claim/disclaim), which assume the mmio. In order to preserve the generic algorithms at a single place and to allow dynamic switch for ETMs, this series introduces an abstraction layer for accessing a coresight device. It is designed such that the mmio access are fast tracked (i.e, without an indirect function call). This will also help us to get rid of the driver+attribute specific sysfs show/store routines and replace them with a single routine to access a given register offset (which can be embedded in the dev_ext_attribute). This is not currently implemented in the series, but can be achieved. Further we switch the generic routines to work with the abstraction. With this in place, we refactor the etm4x code a bit to allow for supporting the system instructions with very little new code. The changes also switch to using the system instructions by default even when we may have an MMIO. The series has been mildly tested on a model. I would really appreciate any testing on real hardware. Applies on coresight/next tree. The tree is also available here : git://linux-arm.org/linux-skp.git etm-4.4/rfc Suzuki K Poulose (14): coresight: etm4x: Skip save/restore before device registration coresight: Introduce device access abstraction coresight: tpiu: Use coresight device access abstraction coresight: etm4x: Free up argument of etm4_init_arch_data coresight: Convert coresight_timeout to use access abstraction coresight: Convert claim and lock operations to use access wrappers coresight: etm4x: Always read the registers on the host CPU coresight: etm4x: Convert all register accesses coresight: etm4x: Add sysreg access helpers coresight: etm4x: Define DEVARCH register fields coresight: etm4x: Detect system register access support coresight: etm4x: Refactor probing routine coresight: etm4x: Add support for sysreg only devices dts: bindings: coresight: ETMv4.4 system register access only units .../devicetree/bindings/arm/coresight.txt | 6 +- drivers/hwtracing/coresight/coresight-catu.c | 17 +- .../hwtracing/coresight/coresight-cpu-debug.c | 26 +- .../hwtracing/coresight/coresight-cti-sysfs.c | 4 +- drivers/hwtracing/coresight/coresight-cti.c | 31 +- drivers/hwtracing/coresight/coresight-etb10.c | 26 +- .../coresight/coresight-etm3x-sysfs.c | 8 +- drivers/hwtracing/coresight/coresight-etm3x.c | 45 +- .../coresight/coresight-etm4x-sysfs.c | 32 +- drivers/hwtracing/coresight/coresight-etm4x.c | 580 +++++++++++------- drivers/hwtracing/coresight/coresight-etm4x.h | 403 +++++++++++- .../hwtracing/coresight/coresight-funnel.c | 19 +- drivers/hwtracing/coresight/coresight-priv.h | 9 +- .../coresight/coresight-replicator.c | 28 +- drivers/hwtracing/coresight/coresight-stm.c | 49 +- .../hwtracing/coresight/coresight-tmc-etf.c | 36 +- .../hwtracing/coresight/coresight-tmc-etr.c | 19 +- drivers/hwtracing/coresight/coresight-tmc.c | 10 +- drivers/hwtracing/coresight/coresight-tpiu.c | 32 +- drivers/hwtracing/coresight/coresight.c | 130 +++- include/linux/coresight.h | 189 +++++- 21 files changed, 1273 insertions(+), 426 deletions(-) -- 2.24.1