FILE
coresight-cfg-pstop.c
File preview with syntax highlighting.
linux-6.19.14/drivers/hwtracing/coresight/coresight-cfg-pstop.c
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright(C) 2023 Marvell. 4 * Based on coresight-cfg-afdo.c 5 */ 6 7#include "coresight-config.h" 8 9/* ETMv4 includes and features */ 10#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) 11#include "coresight-etm4x-cfg.h" 12 13/* preload configurations and features */ 14 15/* preload in features for ETMv4 */ 16 17/* panic_stop feature */ 18static struct cscfg_parameter_desc gen_etrig_params[] = { 19 { 20 .name = "address", 21 .value = (u64)panic, 22 }, 23}; 24 25static struct cscfg_regval_desc gen_etrig_regs[] = { 26 /* resource selector */ 27 { 28 .type = CS_CFG_REG_TYPE_RESOURCE, 29 .offset = TRCRSCTLRn(2), 30 .hw_info = ETM4_CFG_RES_SEL, 31 .val32 = 0x40001, 32 }, 33 /* single address comparator */ 34 { 35 .type = CS_CFG_REG_TYPE_RESOURCE | CS_CFG_REG_TYPE_VAL_64BIT | 36 CS_CFG_REG_TYPE_VAL_PARAM, 37 .offset = TRCACVRn(0), 38 .val32 = 0x0, 39 }, 40 { 41 .type = CS_CFG_REG_TYPE_RESOURCE, 42 .offset = TRCACATRn(0), 43 .val64 = 0xf00, 44 }, 45 /* Driver external output[0] with comparator out */ 46 { 47 .type = CS_CFG_REG_TYPE_RESOURCE, 48 .offset = TRCEVENTCTL0R, 49 .val32 = 0x2, 50 }, 51 /* end of regs */ 52}; 53 54struct cscfg_feature_desc gen_etrig_etm4x = { 55 .name = "gen_etrig", 56 .description = "Generate external trigger on address match\n" 57 "parameter \'address\': address of kernel address\n", 58 .match_flags = CS_CFG_MATCH_CLASS_SRC_ETM4, 59 .nr_params = ARRAY_SIZE(gen_etrig_params), 60 .params_desc = gen_etrig_params, 61 .nr_regs = ARRAY_SIZE(gen_etrig_regs), 62 .regs_desc = gen_etrig_regs, 63}; 64 65/* create a panic stop configuration */ 66 67/* the total number of parameters in used features */ 68#define PSTOP_NR_PARAMS ARRAY_SIZE(gen_etrig_params) 69 70static const char *pstop_ref_names[] = { 71 "gen_etrig", 72}; 73 74struct cscfg_config_desc pstop_etm4x = { 75 .name = "panicstop", 76 .description = "Stop ETM on kernel panic\n", 77 .nr_feat_refs = ARRAY_SIZE(pstop_ref_names), 78 .feat_ref_names = pstop_ref_names, 79 .nr_total_params = PSTOP_NR_PARAMS, 80}; 81 82/* end of ETM4x configurations */ 83#endif /* IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) */
~/
Read-only file preview.