mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 02:24:18 +00:00

The AMU extension code was using its own feature detection routines. Replace them with the generic CPU feature handlers (defined in arch_features.h), which get updated to cover the v1p1 variant as well. Change-Id: I8540f1e745d7b02a25a6c6cdf2a39d6f5e21f2aa Signed-off-by: Andre Przywara <andre.przywara@arm.com>
59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef AMU_H
|
|
#define AMU_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
#include <context.h>
|
|
|
|
#include <platform_def.h>
|
|
|
|
#if ENABLE_FEAT_AMU
|
|
#if __aarch64__
|
|
void amu_enable(bool el2_unused, cpu_context_t *ctx);
|
|
#else
|
|
void amu_enable(bool el2_unused);
|
|
#endif
|
|
#else
|
|
#if __aarch64__
|
|
static inline void amu_enable(bool el2_unused, cpu_context_t *ctx)
|
|
{
|
|
}
|
|
#else
|
|
static inline void amu_enable(bool el2_unused)
|
|
{
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
#if ENABLE_AMU_AUXILIARY_COUNTERS
|
|
/*
|
|
* AMU data for a single core.
|
|
*/
|
|
struct amu_core {
|
|
uint16_t enable; /* Mask of auxiliary counters to enable */
|
|
};
|
|
|
|
/*
|
|
* Topological platform data specific to the AMU.
|
|
*/
|
|
struct amu_topology {
|
|
struct amu_core cores[PLATFORM_CORE_COUNT]; /* Per-core data */
|
|
};
|
|
|
|
#if !ENABLE_AMU_FCONF
|
|
/*
|
|
* Retrieve the platform's AMU topology. A `NULL` return value is treated as a
|
|
* non-fatal error, in which case no auxiliary counters will be enabled.
|
|
*/
|
|
const struct amu_topology *plat_amu_topology(void);
|
|
#endif /* ENABLE_AMU_FCONF */
|
|
#endif /* ENABLE_AMU_AUXILIARY_COUNTERS */
|
|
|
|
#endif /* AMU_H */
|