14486d586SSumit Garg /* SPDX-License-Identifier: BSD-2-Clause */ 24486d586SSumit Garg /* 34486d586SSumit Garg * Copyright (c) 2019, Linaro Limited 44486d586SSumit Garg */ 54486d586SSumit Garg #ifndef ARM_USER_SYSREG_H 64486d586SSumit Garg #define ARM_USER_SYSREG_H 74486d586SSumit Garg 84486d586SSumit Garg #include <util.h> 94486d586SSumit Garg 104486d586SSumit Garg #ifdef ARM32 114486d586SSumit Garg #include <arm32_user_sysreg.h> 124486d586SSumit Garg #endif 134486d586SSumit Garg 144486d586SSumit Garg #ifdef ARM64 154486d586SSumit Garg #include <arm64_user_sysreg.h> 164486d586SSumit Garg #endif 174486d586SSumit Garg 18739fd3abSJens Wiklander #ifndef __ASSEMBLER__ isb(void)19739fd3abSJens Wiklanderstatic inline __noprof void isb(void) 20739fd3abSJens Wiklander { 21739fd3abSJens Wiklander asm volatile ("isb"); 22739fd3abSJens Wiklander } 23739fd3abSJens Wiklander barrier_read_counter_timer(void)24c6e827c0SJens Wiklanderstatic inline __noprof uint64_t barrier_read_counter_timer(void) 25739fd3abSJens Wiklander { 26739fd3abSJens Wiklander isb(); 27*fb19e98eSJens Wiklander #ifdef CFG_CORE_SEL2_SPMC 28*fb19e98eSJens Wiklander return read_cntvct(); 29*fb19e98eSJens Wiklander #else 30739fd3abSJens Wiklander return read_cntpct(); 31*fb19e98eSJens Wiklander #endif 32739fd3abSJens Wiklander } 33739fd3abSJens Wiklander #endif 34739fd3abSJens Wiklander 354486d586SSumit Garg #endif /*ARM_USER_SYSREG_H*/ 36