blob: 54e646c253cef04e6a448cc2bb2901be04423adc [file] [log] [blame]
Achin Gupta4f6ad662013-10-25 09:08:21 +01001/*
Antonio Nino Diaz96f16312019-02-11 13:34:54 +00002 * Copyright (c) 2014-2019, ARM Limited and Contributors. All rights reserved.
Achin Gupta4f6ad662013-10-25 09:08:21 +01003 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Achin Gupta4f6ad662013-10-25 09:08:21 +01005 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef CORTEX_A53_H
8#define CORTEX_A53_H
Achin Gupta4f6ad662013-10-25 09:08:21 +01009
Antonio Nino Diaz96f16312019-02-11 13:34:54 +000010#include <lib/utils_def.h>
11
Soby Mathew8e2f2872014-08-14 12:49:05 +010012/* Cortex-A53 midr for revision 0 */
Varun Wadekarc6a11f62017-05-25 18:04:48 -070013#define CORTEX_A53_MIDR U(0x410FD030)
Achin Gupta4f6ad662013-10-25 09:08:21 +010014
Varun Wadekar3ce4e882015-08-21 15:52:51 +053015/* Retention timer tick definitions */
Varun Wadekarc6a11f62017-05-25 18:04:48 -070016#define RETENTION_ENTRY_TICKS_2 U(0x1)
17#define RETENTION_ENTRY_TICKS_8 U(0x2)
18#define RETENTION_ENTRY_TICKS_32 U(0x3)
19#define RETENTION_ENTRY_TICKS_64 U(0x4)
20#define RETENTION_ENTRY_TICKS_128 U(0x5)
21#define RETENTION_ENTRY_TICKS_256 U(0x6)
22#define RETENTION_ENTRY_TICKS_512 U(0x7)
Varun Wadekar3ce4e882015-08-21 15:52:51 +053023
Soby Mathew8e2f2872014-08-14 12:49:05 +010024/*******************************************************************************
25 * CPU Extended Control register specific definitions.
26 ******************************************************************************/
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010027#define CORTEX_A53_ECTLR_EL1 S3_1_C15_C2_1
Soby Mathew38b4bc92014-08-14 13:36:41 +010028
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000029#define CORTEX_A53_ECTLR_SMP_BIT (ULL(1) << 6)
Achin Gupta4f6ad662013-10-25 09:08:21 +010030
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010031#define CORTEX_A53_ECTLR_CPU_RET_CTRL_SHIFT U(0)
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000032#define CORTEX_A53_ECTLR_CPU_RET_CTRL_MASK (ULL(0x7) << CORTEX_A53_ECTLR_CPU_RET_CTRL_SHIFT)
Varun Wadekar3ce4e882015-08-21 15:52:51 +053033
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010034#define CORTEX_A53_ECTLR_FPU_RET_CTRL_SHIFT U(3)
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000035#define CORTEX_A53_ECTLR_FPU_RET_CTRL_MASK (ULL(0x7) << CORTEX_A53_ECTLR_FPU_RET_CTRL_SHIFT)
Varun Wadekar3ce4e882015-08-21 15:52:51 +053036
developer4fceaca2015-07-29 20:55:31 +080037/*******************************************************************************
Naga Sureshkumar Relli6a72a912016-07-01 12:52:41 +053038 * CPU Memory Error Syndrome register specific definitions.
39 ******************************************************************************/
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010040#define CORTEX_A53_MERRSR_EL1 S3_1_C15_C2_2
Naga Sureshkumar Relli6a72a912016-07-01 12:52:41 +053041
42/*******************************************************************************
developer4fceaca2015-07-29 20:55:31 +080043 * CPU Auxiliary Control register specific definitions.
44 ******************************************************************************/
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010045#define CORTEX_A53_CPUACTLR_EL1 S3_1_C15_C2_0
developer4fceaca2015-07-29 20:55:31 +080046
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010047#define CORTEX_A53_CPUACTLR_EL1_ENDCCASCI_SHIFT U(44)
Antonio Nino Diaz96f16312019-02-11 13:34:54 +000048#define CORTEX_A53_CPUACTLR_EL1_ENDCCASCI (ULL(1) << CORTEX_A53_CPUACTLR_EL1_ENDCCASCI_SHIFT)
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010049#define CORTEX_A53_CPUACTLR_EL1_RADIS_SHIFT U(27)
Antonio Nino Diaz96f16312019-02-11 13:34:54 +000050#define CORTEX_A53_CPUACTLR_EL1_RADIS (ULL(3) << CORTEX_A53_CPUACTLR_EL1_RADIS_SHIFT)
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010051#define CORTEX_A53_CPUACTLR_EL1_L1RADIS_SHIFT U(25)
Antonio Nino Diaz96f16312019-02-11 13:34:54 +000052#define CORTEX_A53_CPUACTLR_EL1_L1RADIS (ULL(3) << CORTEX_A53_CPUACTLR_EL1_L1RADIS_SHIFT)
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010053#define CORTEX_A53_CPUACTLR_EL1_DTAH_SHIFT U(24)
Antonio Nino Diaz96f16312019-02-11 13:34:54 +000054#define CORTEX_A53_CPUACTLR_EL1_DTAH (ULL(1) << CORTEX_A53_CPUACTLR_EL1_DTAH_SHIFT)
Jiafei Pand8444a72021-10-21 15:02:08 +080055#define CORTEX_A53_CPUACTLR_EL1_L1PCTL_SHIFT U(13)
56#define CORTEX_A53_CPUACTLR_EL1_L1PCTL (ULL(7) << CORTEX_A53_CPUACTLR_EL1_L1PCTL_SHIFT)
developer4fceaca2015-07-29 20:55:31 +080057
58/*******************************************************************************
59 * L2 Auxiliary Control register specific definitions.
60 ******************************************************************************/
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010061#define CORTEX_A53_L2ACTLR_EL1 S3_1_C15_C0_0
developer4fceaca2015-07-29 20:55:31 +080062
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010063#define CORTEX_A53_L2ACTLR_ENABLE_UNIQUECLEAN (U(1) << 14)
64#define CORTEX_A53_L2ACTLR_DISABLE_CLEAN_PUSH (U(1) << 3)
Varun Wadekar3ce4e882015-08-21 15:52:51 +053065/*******************************************************************************
66 * L2 Extended Control register specific definitions.
67 ******************************************************************************/
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010068#define CORTEX_A53_L2ECTLR_EL1 S3_1_C11_C0_3
Varun Wadekar3ce4e882015-08-21 15:52:51 +053069
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010070#define CORTEX_A53_L2ECTLR_RET_CTRL_SHIFT U(0)
71#define CORTEX_A53_L2ECTLR_RET_CTRL_MASK (U(0x7) << L2ECTLR_RET_CTRL_SHIFT)
Varun Wadekar3ce4e882015-08-21 15:52:51 +053072
Naga Sureshkumar Relli6a72a912016-07-01 12:52:41 +053073/*******************************************************************************
74 * L2 Memory Error Syndrome register specific definitions.
75 ******************************************************************************/
Eleanor Bonnici41b61be2017-08-09 16:42:40 +010076#define CORTEX_A53_L2MERRSR_EL1 S3_1_C15_C2_3
77
developera21d47e2019-05-02 19:29:25 +080078/*******************************************************************************
79 * Helper function to access a53_cpuectlr_el1 register on Cortex-A53 CPUs
80 ******************************************************************************/
Balint Dobszayb6693612019-10-11 14:01:43 +020081#ifndef __ASSEMBLER__
developera21d47e2019-05-02 19:29:25 +080082DEFINE_RENAME_SYSREG_RW_FUNCS(a53_cpuectlr_el1, CORTEX_A53_ECTLR_EL1)
Balint Dobszayb6693612019-10-11 14:01:43 +020083#endif /* __ASSEMBLER__ */
developera21d47e2019-05-02 19:29:25 +080084
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000085#endif /* CORTEX_A53_H */