mirror of
https://github.com/torvalds/linux.git
synced 2025-04-12 06:49:52 +00:00

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 <lcherian@marvell.com> Reviewed-by: James Clark <james.clark@arm.com> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20250212114918.548431-8-lcherian@marvell.com
39 lines
900 B
C
39 lines
900 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright(C) 2020 Linaro Limited. All rights reserved.
|
|
* Author: Mike Leach <mike.leach@linaro.org>
|
|
*/
|
|
|
|
#include "coresight-cfg-preload.h"
|
|
#include "coresight-config.h"
|
|
#include "coresight-syscfg.h"
|
|
|
|
/* Basic features and configurations pre-loaded on initialisation */
|
|
|
|
static struct cscfg_feature_desc *preload_feats[] = {
|
|
#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X)
|
|
&strobe_etm4x,
|
|
&gen_etrig_etm4x,
|
|
#endif
|
|
NULL
|
|
};
|
|
|
|
static struct cscfg_config_desc *preload_cfgs[] = {
|
|
#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X)
|
|
&afdo_etm4x,
|
|
&pstop_etm4x,
|
|
#endif
|
|
NULL
|
|
};
|
|
|
|
static struct cscfg_load_owner_info preload_owner = {
|
|
.type = CSCFG_OWNER_PRELOAD,
|
|
};
|
|
|
|
/* preload called on initialisation */
|
|
int cscfg_preload(void *owner_handle)
|
|
{
|
|
preload_owner.owner_handle = owner_handle;
|
|
return cscfg_load_config_sets(preload_cfgs, preload_feats, &preload_owner);
|
|
}
|