Files
opensbi/platform/generic/include/andes/andes_pmu.h
Yu Chien Peter Lin 1b9e743c3d platform: andes: Add Andes custom PMU support
Before the ratification of Sscofpmf, the Andes PMU extension
was designed to support the sampling and filtering with hardware
performance counters (zihpm), it works with the current SBI PMU
extension and Linux SBI PMU driver.

We implement 1) the PMU device callbacks that update the
corresponding bits on custom CSRs, 2) extentions_init() to detect
the hardware support of Andes PMU and initialize the per-hart
PMU related CSR, and 3) pmu_init() to register PMU device and
populate event mappings.

Also define a andes_pmu_setup() function which is in preparation
for adding default PMU mappings in andes_hpm.h

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
2023-12-06 17:53:45 +05:30

35 lines
743 B
C

/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) Copyright (c) 2023 Andes Technology Corporation
*/
#ifndef _RISCV_ANDES_PMU_H
#define _RISCV_ANDES_PMU_H
#include <sbi/sbi_hart.h>
#include <sbi_utils/fdt/fdt_helper.h>
#include <sbi_utils/fdt/fdt_pmu.h>
#ifdef CONFIG_ANDES_PMU
int andes_pmu_init(const struct fdt_match *match);
int andes_pmu_extensions_init(const struct fdt_match *match,
struct sbi_hart_features *hfeatures);
#else
static inline int andes_pmu_init(const struct fdt_match *match)
{
return 0;
}
static inline int andes_pmu_extensions_init(const struct fdt_match *match,
struct sbi_hart_features *hfeatures)
{
return 0;
}
#endif /* CONFIG_ANDES_PMU */
#endif /* _RISCV_ANDES_PMU_H */