xref: /rk3399_ARM-atf/include/lib/cpus/aarch64/neoverse_n2.h (revision cc152a38daf32f45837a74bae43261d48b9d5d97)
125bbbd2dSJavier Almansa Sobrino /*
2adea6e52SGovindraj Raja  * Copyright (c) 2020-2025, Arm Limited. All rights reserved.
325bbbd2dSJavier Almansa Sobrino  *
425bbbd2dSJavier Almansa Sobrino  * SPDX-License-Identifier: BSD-3-Clause
525bbbd2dSJavier Almansa Sobrino  */
625bbbd2dSJavier Almansa Sobrino 
725bbbd2dSJavier Almansa Sobrino #ifndef NEOVERSE_N2_H
825bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_H
925bbbd2dSJavier Almansa Sobrino 
1025bbbd2dSJavier Almansa Sobrino /* Neoverse N2 ID register for revision r0p0 */
1125bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_MIDR				U(0x410FD490)
1225bbbd2dSJavier Almansa Sobrino 
131fe4a9d1SBipin Ravi /* Neoverse N2 loop count for CVE-2022-23960 mitigation */
141fe4a9d1SBipin Ravi #define NEOVERSE_N2_BHB_LOOP_COUNT			U(32)
151fe4a9d1SBipin Ravi 
1625bbbd2dSJavier Almansa Sobrino /*******************************************************************************
1725bbbd2dSJavier Almansa Sobrino  * CPU Power control register
1825bbbd2dSJavier Almansa Sobrino  ******************************************************************************/
1925bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_CPUPWRCTLR_EL1			S3_0_C15_C2_7
2025bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_CORE_PWRDN_EN_BIT			(ULL(1) << 0)
2125bbbd2dSJavier Almansa Sobrino 
2225bbbd2dSJavier Almansa Sobrino /*******************************************************************************
2325bbbd2dSJavier Almansa Sobrino  * CPU Extended Control register specific definitions.
2425bbbd2dSJavier Almansa Sobrino  ******************************************************************************/
2525bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_CPUECTLR_EL1			S3_0_C15_C1_4
2625bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_CPUECTLR_EL1_EXTLLC_BIT		(ULL(1) << 0)
274618b2bfSBipin Ravi #define NEOVERSE_N2_CPUECTLR_EL1_PFSTIDIS_BIT		(ULL(1) << 8)
28*75384389SRohit Ner #define NEOVERSE_N2_CPUECTLR_EL1_PFDIS_BIT		(ULL(1) << 15)
2925bbbd2dSJavier Almansa Sobrino 
3025bbbd2dSJavier Almansa Sobrino /*******************************************************************************
3125bbbd2dSJavier Almansa Sobrino  * CPU Auxiliary Control register specific definitions.
3225bbbd2dSJavier Almansa Sobrino  ******************************************************************************/
3365e04f27SBipin Ravi #define NEOVERSE_N2_CPUACTLR_EL1			S3_0_C15_C1_0
3465e04f27SBipin Ravi #define NEOVERSE_N2_CPUACTLR_EL1_BIT_46			(ULL(1) << 46)
355819e23bSnayanpatel-arm #define NEOVERSE_N2_CPUACTLR_EL1_BIT_22			(ULL(1) << 22)
3665e04f27SBipin Ravi 
3765e04f27SBipin Ravi /*******************************************************************************
3865e04f27SBipin Ravi  * CPU Auxiliary Control register 2 specific definitions.
3965e04f27SBipin Ravi  ******************************************************************************/
4025bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_CPUACTLR2_EL1			S3_0_C15_C1_1
41e6602d4bSAkram Ahmad #define NEOVERSE_N2_CPUACTLR2_EL1_BIT_0			(ULL(1) << 0)
4225bbbd2dSJavier Almansa Sobrino #define NEOVERSE_N2_CPUACTLR2_EL1_BIT_2			(ULL(1) << 2)
4343438ad1SBoyan Karatotev #define NEOVERSE_N2_CPUACTLR2_EL1_BIT_36		(ULL(1) << 36)
44884d5156SDaniel Boulby #define NEOVERSE_N2_CPUACTLR2_EL1_BIT_40		(ULL(1) << 40)
4525bbbd2dSJavier Almansa Sobrino 
467cfae932SBipin Ravi /*******************************************************************************
4712d28067SArvind Ram Prakash  * CPU Auxiliary Control register 3 specific definitions.
4812d28067SArvind Ram Prakash  ******************************************************************************/
4912d28067SArvind Ram Prakash #define NEOVERSE_N2_CPUACTLR3_EL1			S3_0_C15_C1_2
5012d28067SArvind Ram Prakash #define NEOVERSE_N2_CPUACTLR3_EL1_BIT_47		(ULL(1) << 47)
5112d28067SArvind Ram Prakash 
5212d28067SArvind Ram Prakash /*******************************************************************************
537cfae932SBipin Ravi  * CPU Auxiliary Control register 5 specific definitions.
547cfae932SBipin Ravi  ******************************************************************************/
557cfae932SBipin Ravi #define NEOVERSE_N2_CPUACTLR5_EL1			S3_0_C15_C8_0
56eb44035cSArvind Ram Prakash #define NEOVERSE_N2_CPUACTLR5_EL1_BIT_56		(ULL(1) << 56)
57eb44035cSArvind Ram Prakash #define NEOVERSE_N2_CPUACTLR5_EL1_BIT_55		(ULL(1) << 55)
587cfae932SBipin Ravi #define NEOVERSE_N2_CPUACTLR5_EL1_BIT_44		(ULL(1) << 44)
59c948185cSnayanpatel-arm #define NEOVERSE_N2_CPUACTLR5_EL1_BIT_13		(ULL(1) << 13)
60603806d1Snayanpatel-arm #define NEOVERSE_N2_CPUACTLR5_EL1_BIT_17		(ULL(1) << 17)
61ef8f0c52Snayanpatel-arm 
62ef8f0c52Snayanpatel-arm /*******************************************************************************
63ef8f0c52Snayanpatel-arm  * CPU Auxiliary Control register specific definitions.
64ef8f0c52Snayanpatel-arm  ******************************************************************************/
65ef8f0c52Snayanpatel-arm #define NEOVERSE_N2_CPUECTLR2_EL1			S3_0_C15_C1_5
666cb8be17SBipin Ravi #define CPUECTLR2_EL1_TXREQ_STATIC_FULL 		ULL(0)
676cb8be17SBipin Ravi #define CPUECTLR2_EL1_TXREQ_LSB				U(0)
686cb8be17SBipin Ravi #define CPUECTLR2_EL1_TXREQ_WIDTH			U(3)
697cfae932SBipin Ravi 
70adea6e52SGovindraj Raja #ifndef __ASSEMBLER__
71adea6e52SGovindraj Raja long check_erratum_neoverse_n2_3701773(long cpu_rev);
72adea6e52SGovindraj Raja #endif /* __ASSEMBLER__ */
73adea6e52SGovindraj Raja 
7425bbbd2dSJavier Almansa Sobrino #endif /* NEOVERSE_N2_H */
75