From nobody Mon Feb 9 17:23:03 2026 Received: from mx0a-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC0C91C5495; Mon, 16 Dec 2024 05:31:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.148.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734327082; cv=none; b=nsP9SRRDI4NZMDwJp9SgmSJkWk/y3u5ZE6eR7HU9jZY6354q8b2PP6up7DTNOpGROZWjAmJySJU/lT87RE+Eq89bKsP6QT19YIeRfoUH1HTdrKihPtmkNK4Ui49WkQa1XBl7xPddBQpzSCMgYsZanLSsy/0CwFRrvAC3A5o47Oo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734327082; c=relaxed/simple; bh=ruOQzicYgz8EhH1GptcpdUsGvbQv9tgUNu8zB69Lu/A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uEq2m0Kbzta5zqgtMWixGxrpEbRLlo41tz3HVPIRVnk2DeozDrBtEz6U/1bPzVODHRx56ajQ1irZ9ODkURpVJSMXNsb8e3cwJ+c/b4AZUx4IWMU0oIOqKW08hHU0fisZk5h0oX1mVD9TxsBZKtv4ATtYytT+TmJg+jWO91SZiFI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=marvell.com; spf=pass smtp.mailfrom=marvell.com; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b=J3uJSrg+; arc=none smtp.client-ip=67.231.148.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=marvell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=marvell.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="J3uJSrg+" Received: from pps.filterd (m0431384.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4BG4Crhh014956; Sun, 15 Dec 2024 21:31:12 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pfpt0220; bh=A wTmg3JyBzSg86Y5oq81HdXHtJjSQ1TbJQIgsKxafrw=; b=J3uJSrg+Y4ENUXCvG +/G1lSKpAh7ypuPRTxzUuMNmYyG4uXSpjjB1gpzqZ4CETa3DJ/N9LLGJC4JAjQ9n l9iI5yTy4Tg3LAwFbSBq3XupFOIMVtbV0ni2lxkt2+jjLsnVsLeFSK2U0wyFu+bQ sGZTiXK5t9p8XrjrB3t3UsdTx0RNP/TyHg1krOqxcAg0Hxub4fErsjZ0OAw9sxGf xOr4UwmHxHKdNtJ8nfqtlXCq2YJOWXuLQWIO8D/nJCgWWRcfGZSySDpW6BHRvbMv bj9wFR6ursMMz8wtw4k12t+sMVmutckfq3P7mothCk/ff74C4S1Vu4mWpSdZjyIk Gb4pQ== Received: from dc6wp-exch02.marvell.com ([4.21.29.225]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 43jcyv072x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 15 Dec 2024 21:31:11 -0800 (PST) Received: from DC6WP-EXCH02.marvell.com (10.76.176.209) by DC6WP-EXCH02.marvell.com (10.76.176.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sun, 15 Dec 2024 21:31:10 -0800 Received: from maili.marvell.com (10.69.176.80) by DC6WP-EXCH02.marvell.com (10.76.176.209) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Sun, 15 Dec 2024 21:31:10 -0800 Received: from virtx40.. (unknown [10.28.34.196]) by maili.marvell.com (Postfix) with ESMTP id 82EBB3F704A; Sun, 15 Dec 2024 21:31:05 -0800 (PST) From: Linu Cherian To: , , CC: , , , , , , , , , , , Linu Cherian Subject: [PATCH v13 7/8] coresight: config: Add preloaded configuration Date: Mon, 16 Dec 2024 11:00:13 +0530 Message-ID: <20241216053014.3427909-8-lcherian@marvell.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241216053014.3427909-1-lcherian@marvell.com> References: <20241216053014.3427909-1-lcherian@marvell.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: xDwfxjKBQf8LeM_t8OlLQJMjQs_Qj_bJ X-Proofpoint-ORIG-GUID: xDwfxjKBQf8LeM_t8OlLQJMjQs_Qj_bJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.687,Hydra:6.0.235,FMLib:17.0.607.475 definitions=2020-10-13_15,2020-10-13_02,2020-04-07_01 Content-Type: text/plain; charset="utf-8" Add a preloaded configuration for generating external trigger on address match. This can be used by CTI and ETR blocks to stop trace capture on kernel panic. Kernel address for "panic" function is used as the default trigger address. This new configuration is available as, /sys/kernel/config/cs-syscfg/configurations/panicstop Signed-off-by: Linu Cherian Reviewed-by: James Clark --- Changelog from v12: No changes. drivers/hwtracing/coresight/Makefile | 2 +- .../coresight/coresight-cfg-preload.c | 2 + .../coresight/coresight-cfg-preload.h | 2 + .../hwtracing/coresight/coresight-cfg-pstop.c | 83 +++++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 drivers/hwtracing/coresight/coresight-cfg-pstop.c diff --git a/drivers/hwtracing/coresight/Makefile b/drivers/hwtracing/cores= ight/Makefile index 4ba478211b31..46ce7f39d05f 100644 --- a/drivers/hwtracing/coresight/Makefile +++ b/drivers/hwtracing/coresight/Makefile @@ -25,7 +25,7 @@ subdir-ccflags-y +=3D $(condflags) obj-$(CONFIG_CORESIGHT) +=3D coresight.o coresight-y :=3D coresight-core.o coresight-etm-perf.o coresight-platform= .o \ coresight-sysfs.o coresight-syscfg.o coresight-config.o \ - coresight-cfg-preload.o coresight-cfg-afdo.o \ + coresight-cfg-preload.o coresight-cfg-afdo.o coresight-cfg-pstop.o \ coresight-syscfg-configfs.o coresight-trace-id.o obj-$(CONFIG_CORESIGHT_LINK_AND_SINK_TMC) +=3D coresight-tmc.o coresight-tmc-y :=3D coresight-tmc-core.o coresight-tmc-etf.o \ diff --git a/drivers/hwtracing/coresight/coresight-cfg-preload.c b/drivers/= hwtracing/coresight/coresight-cfg-preload.c index e237a4edfa09..4980e68483c5 100644 --- a/drivers/hwtracing/coresight/coresight-cfg-preload.c +++ b/drivers/hwtracing/coresight/coresight-cfg-preload.c @@ -13,6 +13,7 @@ static struct cscfg_feature_desc *preload_feats[] =3D { #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) &strobe_etm4x, + &gen_etrig_etm4x, #endif NULL }; @@ -20,6 +21,7 @@ static struct cscfg_feature_desc *preload_feats[] =3D { static struct cscfg_config_desc *preload_cfgs[] =3D { #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) &afdo_etm4x, + &pstop_etm4x, #endif NULL }; diff --git a/drivers/hwtracing/coresight/coresight-cfg-preload.h b/drivers/= hwtracing/coresight/coresight-cfg-preload.h index 21299e175477..291ba530a6a5 100644 --- a/drivers/hwtracing/coresight/coresight-cfg-preload.h +++ b/drivers/hwtracing/coresight/coresight-cfg-preload.h @@ -10,4 +10,6 @@ #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) extern struct cscfg_feature_desc strobe_etm4x; extern struct cscfg_config_desc afdo_etm4x; +extern struct cscfg_feature_desc gen_etrig_etm4x; +extern struct cscfg_config_desc pstop_etm4x; #endif diff --git a/drivers/hwtracing/coresight/coresight-cfg-pstop.c b/drivers/hw= tracing/coresight/coresight-cfg-pstop.c new file mode 100644 index 000000000000..c2bfbd07bfaf --- /dev/null +++ b/drivers/hwtracing/coresight/coresight-cfg-pstop.c @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright(C) 2023 Marvell. + * Based on coresight-cfg-afdo.c + */ + +#include "coresight-config.h" + +/* ETMv4 includes and features */ +#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) +#include "coresight-etm4x-cfg.h" + +/* preload configurations and features */ + +/* preload in features for ETMv4 */ + +/* panic_stop feature */ +static struct cscfg_parameter_desc gen_etrig_params[] =3D { + { + .name =3D "address", + .value =3D (u64)panic, + }, +}; + +static struct cscfg_regval_desc gen_etrig_regs[] =3D { + /* resource selector */ + { + .type =3D CS_CFG_REG_TYPE_RESOURCE, + .offset =3D TRCRSCTLRn(2), + .hw_info =3D ETM4_CFG_RES_SEL, + .val32 =3D 0x40001, + }, + /* single address comparator */ + { + .type =3D CS_CFG_REG_TYPE_RESOURCE | CS_CFG_REG_TYPE_VAL_64BIT | + CS_CFG_REG_TYPE_VAL_PARAM, + .offset =3D TRCACVRn(0), + .val32 =3D 0x0, + }, + { + .type =3D CS_CFG_REG_TYPE_RESOURCE, + .offset =3D TRCACATRn(0), + .val64 =3D 0xf00, + }, + /* Driver external output[0] with comparator out */ + { + .type =3D CS_CFG_REG_TYPE_RESOURCE, + .offset =3D TRCEVENTCTL0R, + .val32 =3D 0x2, + }, + /* end of regs */ +}; + +struct cscfg_feature_desc gen_etrig_etm4x =3D { + .name =3D "gen_etrig", + .description =3D "Generate external trigger on address match\n" + "parameter \'address\': address of kernel address\n", + .match_flags =3D CS_CFG_MATCH_CLASS_SRC_ETM4, + .nr_params =3D ARRAY_SIZE(gen_etrig_params), + .params_desc =3D gen_etrig_params, + .nr_regs =3D ARRAY_SIZE(gen_etrig_regs), + .regs_desc =3D gen_etrig_regs, +}; + +/* create a panic stop configuration */ + +/* the total number of parameters in used features */ +#define PSTOP_NR_PARAMS ARRAY_SIZE(gen_etrig_params) + +static const char *pstop_ref_names[] =3D { + "gen_etrig", +}; + +struct cscfg_config_desc pstop_etm4x =3D { + .name =3D "panicstop", + .description =3D "Stop ETM on kernel panic\n", + .nr_feat_refs =3D ARRAY_SIZE(pstop_ref_names), + .feat_ref_names =3D pstop_ref_names, + .nr_total_params =3D PSTOP_NR_PARAMS, +}; + +/* end of ETM4x configurations */ +#endif /* IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) */ --=20 2.34.1