brintos

brintos / linux-shallow public Read only

0
0
Text · 3.7 KiB · e794f2e Raw
155 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * Copyright(C) 2020 Linaro Limited. All rights reserved.4 * Author: Mike Leach <mike.leach@linaro.org>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#include "coresight-cfg-preload.h"13 14/* preload configurations and features */15 16/* preload in features for ETMv4 */17 18/* strobe feature */19static struct cscfg_parameter_desc strobe_params[] = {20	{21		.name = "window",22		.value = 5000,23	},24	{25		.name = "period",26		.value = 10000,27	},28};29 30static struct cscfg_regval_desc strobe_regs[] = {31	/* resource selectors */32	{33		.type = CS_CFG_REG_TYPE_RESOURCE,34		.offset = TRCRSCTLRn(2),35		.hw_info = ETM4_CFG_RES_SEL,36		.val32 = 0x20001,37	},38	{39		.type = CS_CFG_REG_TYPE_RESOURCE,40		.offset = TRCRSCTLRn(3),41		.hw_info = ETM4_CFG_RES_SEQ,42		.val32 = 0x20002,43	},44	/* strobe window counter 0 - reload from param 0 */45	{46		.type = CS_CFG_REG_TYPE_RESOURCE | CS_CFG_REG_TYPE_VAL_SAVE,47		.offset = TRCCNTVRn(0),48		.hw_info = ETM4_CFG_RES_CTR,49	},50	{51		.type = CS_CFG_REG_TYPE_RESOURCE | CS_CFG_REG_TYPE_VAL_PARAM,52		.offset = TRCCNTRLDVRn(0),53		.hw_info = ETM4_CFG_RES_CTR,54		.val32 = 0,55	},56	{57		.type = CS_CFG_REG_TYPE_RESOURCE,58		.offset = TRCCNTCTLRn(0),59		.hw_info = ETM4_CFG_RES_CTR,60		.val32 = 0x10001,61	},62	/* strobe period counter 1 - reload from param 1 */63	{64		.type = CS_CFG_REG_TYPE_RESOURCE | CS_CFG_REG_TYPE_VAL_SAVE,65		.offset = TRCCNTVRn(1),66		.hw_info = ETM4_CFG_RES_CTR,67	},68	{69		.type = CS_CFG_REG_TYPE_RESOURCE | CS_CFG_REG_TYPE_VAL_PARAM,70		.offset = TRCCNTRLDVRn(1),71		.hw_info = ETM4_CFG_RES_CTR,72		.val32 = 1,73	},74	{75		.type = CS_CFG_REG_TYPE_RESOURCE,76		.offset = TRCCNTCTLRn(1),77		.hw_info = ETM4_CFG_RES_CTR,78		.val32 = 0x8102,79	},80	/* sequencer */81	{82		.type = CS_CFG_REG_TYPE_RESOURCE,83		.offset = TRCSEQEVRn(0),84		.hw_info = ETM4_CFG_RES_SEQ,85		.val32 = 0x0081,86	},87	{88		.type = CS_CFG_REG_TYPE_RESOURCE,89		.offset = TRCSEQEVRn(1),90		.hw_info = ETM4_CFG_RES_SEQ,91		.val32 = 0x0000,92	},93	/* view-inst */94	{95		.type = CS_CFG_REG_TYPE_STD | CS_CFG_REG_TYPE_VAL_MASK,96		.offset = TRCVICTLR,97		.val32 = 0x0003,98		.mask32 = 0x0003,99	},100	/* end of regs */101};102 103struct cscfg_feature_desc strobe_etm4x = {104	.name = "strobing",105	.description = "Generate periodic trace capture windows.\n"106		       "parameter \'window\': a number of CPU cycles (W)\n"107		       "parameter \'period\': trace enabled for W cycles every period x W cycles\n",108	.match_flags = CS_CFG_MATCH_CLASS_SRC_ETM4,109	.nr_params = ARRAY_SIZE(strobe_params),110	.params_desc = strobe_params,111	.nr_regs = ARRAY_SIZE(strobe_regs),112	.regs_desc = strobe_regs,113};114 115/* create an autofdo configuration */116 117/* we will provide 9 sets of preset parameter values */118#define AFDO_NR_PRESETS	9119/* the total number of parameters in used features */120#define AFDO_NR_PARAMS	ARRAY_SIZE(strobe_params)121 122static const char *afdo_ref_names[] = {123	"strobing",124};125 126/*127 * set of presets leaves strobing window constant while varying period to allow128 * experimentation with mark / space ratios for various workloads129 */130static u64 afdo_presets[AFDO_NR_PRESETS][AFDO_NR_PARAMS] = {131	{ 5000, 2 },132	{ 5000, 4 },133	{ 5000, 8 },134	{ 5000, 16 },135	{ 5000, 64 },136	{ 5000, 128 },137	{ 5000, 512 },138	{ 5000, 1024 },139	{ 5000, 4096 },140};141 142struct cscfg_config_desc afdo_etm4x = {143	.name = "autofdo",144	.description = "Setup ETMs with strobing for autofdo\n"145	"Supplied presets allow experimentation with mark-space ratio for various loads\n",146	.nr_feat_refs = ARRAY_SIZE(afdo_ref_names),147	.feat_ref_names = afdo_ref_names,148	.nr_presets = AFDO_NR_PRESETS,149	.nr_total_params = AFDO_NR_PARAMS,150	.presets = &afdo_presets[0][0],151};152 153/* end of ETM4x configurations */154#endif	/* IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) */155