xref: /rk3399_ARM-atf/include/arch/aarch64/arch_features.h (revision 2559b2c8256f798e7e9fc9eef58257b13b9e8514)
1*2559b2c8SAntonio Nino Diaz /*
2*2559b2c8SAntonio Nino Diaz  * Copyright (c) 2019, Arm Limited. All rights reserved.
3*2559b2c8SAntonio Nino Diaz  *
4*2559b2c8SAntonio Nino Diaz  * SPDX-License-Identifier: BSD-3-Clause
5*2559b2c8SAntonio Nino Diaz  */
6*2559b2c8SAntonio Nino Diaz 
7*2559b2c8SAntonio Nino Diaz #ifndef ARCH_FEATURES_H
8*2559b2c8SAntonio Nino Diaz #define ARCH_FEATURES_H
9*2559b2c8SAntonio Nino Diaz 
10*2559b2c8SAntonio Nino Diaz #include <stdbool.h>
11*2559b2c8SAntonio Nino Diaz 
12*2559b2c8SAntonio Nino Diaz #include <arch_helpers.h>
13*2559b2c8SAntonio Nino Diaz 
14*2559b2c8SAntonio Nino Diaz static inline bool is_armv8_2_ttcnp_present(void)
15*2559b2c8SAntonio Nino Diaz {
16*2559b2c8SAntonio Nino Diaz 	return ((read_id_aa64mmfr2_el1() >> ID_AA64MMFR2_EL1_CNP_SHIFT) &
17*2559b2c8SAntonio Nino Diaz 		ID_AA64MMFR2_EL1_CNP_MASK) != 0U;
18*2559b2c8SAntonio Nino Diaz }
19*2559b2c8SAntonio Nino Diaz 
20*2559b2c8SAntonio Nino Diaz #endif /* ARCH_FEATURES_H */
21