1/* 2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9#include <config.h> 10#ifdef CONFIG_ENABLE_BENCHMARKS 11 12#define CCNT "PMCCNTR_EL0" 13#define PMCR "PMCR_EL0" 14#define PMCNTENSET "PMCNTENSET_EL0" 15#define PMINTENSET "PMINTENSET_EL1" 16#define PMOVSR "PMOVSCLR_EL0" 17#define CCNT_INDEX 31 18 19static inline void armv_enableOverflowIRQ(void) 20{ 21 uint32_t val; 22 MRS(PMINTENSET, val); 23 val |= BIT(CCNT_INDEX); 24 MSR(PMINTENSET, val); 25} 26 27static inline void armv_handleOverflowIRQ(void) 28{ 29 uint32_t val = BIT(CCNT_INDEX); 30 MSR(PMOVSR, val); 31} 32 33#endif /* CONFIG_ENABLE_BENCHMARKS */ 34 35