xref: /rk3399_ARM-atf/include/arch/aarch32/arch_features.h (revision f5360cfa819f13ed1caf1cfb774a876bc3f29377)
1 /*
2  * Copyright (c) 2019-2023, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef ARCH_FEATURES_H
8 #define ARCH_FEATURES_H
9 
10 #include <stdbool.h>
11 
12 #include <arch_helpers.h>
13 
14 #define ISOLATE_FIELD(reg, feat)					\
15 	((unsigned int)(((reg) >> (feat ## _SHIFT)) & (feat ## _MASK)))
16 
17 static inline bool is_armv7_gentimer_present(void)
18 {
19 	return ISOLATE_FIELD(read_id_pfr1(), ID_PFR1_GENTIMER) != 0U;
20 }
21 
22 static inline bool is_armv8_2_ttcnp_present(void)
23 {
24 	return ISOLATE_FIELD(read_id_mmfr4(), ID_MMFR4_CNP) != 0U;
25 }
26 
27 #endif /* ARCH_FEATURES_H */
28