xref: /rk3399_ARM-atf/include/lib/cpus/aarch64/cortex_a510.h (revision 3b06438dd1e038a7453d3b812ca6ef2da54f6ba8)
1 /*
2  * Copyright (c) 2022-2025, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef CORTEX_A510_H
8 #define CORTEX_A510_H
9 
10 #define CORTEX_A510_MIDR					U(0x410FD460)
11 
12 /*******************************************************************************
13  * CPU Extended Control register specific definitions
14  ******************************************************************************/
15 #define CORTEX_A510_CPUECTLR_EL1				S3_0_C15_C1_4
16 #define CORTEX_A510_CPUECTLR_EL1_READPREFERUNIQUE_SHIFT		U(19)
17 #define CORTEX_A510_CPUECTLR_EL1_READPREFERUNIQUE_WIDTH		U(1)
18 #define CORTEX_A510_CPUECTLR_EL1_READPREFERUNIQUE_DISABLE	U(1)
19 #define CORTEX_A510_CPUECTLR_EL1_RSCTL_SHIFT			U(23)
20 #define CORTEX_A510_CPUECTLR_EL1_NTCTL_SHIFT			U(46)
21 #define CORTEX_A510_CPUECTLR_EL1_ATOM_EXECALLINSTRNEAR		U(2)
22 #define CORTEX_A510_CPUECTLR_EL1_ATOM_SHIFT			U(38)
23 #define CORTEX_A510_CPUECTLR_EL1_ATOM_WIDTH			U(3)
24 
25 /*******************************************************************************
26  * CPU Power Control register specific definitions
27  ******************************************************************************/
28 #define CORTEX_A510_CPUPWRCTLR_EL1				S3_0_C15_C2_7
29 #define CORTEX_A510_CPUPWRCTLR_EL1_CORE_PWRDN_BIT		U(1)
30 
31 /*******************************************************************************
32  * Complex auxiliary control register specific definitions
33  ******************************************************************************/
34 #define CORTEX_A510_CMPXACTLR_EL1				S3_0_C15_C1_3
35 #define CORTEX_A510_CMPXACTLR_EL1_ALIAS_LOADSTORE_DISABLE	U(1)
36 #define CORTEX_A510_CMPXACTLR_EL1_ALIAS_LOADSTORE_SHIFT		U(25)
37 #define CORTEX_A510_CMPXACTLR_EL1_ALIAS_LOADSTORE_WIDTH		U(1)
38 #define CORTEX_A510_CMPXACTLR_EL1_SNPPREFERUNIQUE_DISABLE	U(3)
39 #define CORTEX_A510_CMPXACTLR_EL1_SNPPREFERUNIQUE_SHIFT		U(10)
40 #define CORTEX_A510_CMPXACTLR_EL1_SNPPREFERUNIQUE_WIDTH		U(2)
41 
42 /*******************************************************************************
43  * Auxiliary control register specific definitions
44  ******************************************************************************/
45 #define CORTEX_A510_CPUACTLR_EL1				S3_0_C15_C1_0
46 #define CORTEX_A510_CPUACTLR_EL1_BIT_17				(ULL(1) << 17)
47 #define CORTEX_A510_CPUACTLR_EL1_BIT_38				(ULL(1) << 38)
48 #define CORTEX_A510_CPUACTLR_EL1_ALIAS_LOADSTORE_DISABLE	U(1)
49 #define CORTEX_A510_CPUACTLR_EL1_ALIAS_LOADSTORE_SHIFT		U(18)
50 #define CORTEX_A510_CPUACTLR_EL1_ALIAS_LOADSTORE_WIDTH		U(1)
51 #define CORTEX_A510_CPUACTLR_EL1_DATA_CORRUPT_DISABLE		U(1)
52 #define CORTEX_A510_CPUACTLR_EL1_DATA_CORRUPT_SHIFT		U(18)
53 #define CORTEX_A510_CPUACTLR_EL1_DATA_CORRUPT_WIDTH		U(1)
54 
55 #ifndef __ASSEMBLER__
56 
57 #if ERRATA_A510_2971420
58 long check_erratum_cortex_a510_2971420(long cpu_rev);
59 #endif
60 
61 #endif /* __ASSEMBLER__ */
62 
63 #endif /* CORTEX_A510_H */
64