blob: 60ed957df2ca75840495e5592e0073ae1ebba75a [file] [log] [blame]
David Wang805c2c72016-11-09 16:29:02 +00001/*
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +00002 * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
David Wang805c2c72016-11-09 16:29:02 +00003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef CORTEX_A55_H
8#define CORTEX_A55_H
David Wang805c2c72016-11-09 16:29:02 +00009
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000010#include <lib/utils_def.h>
11
David Wang805c2c72016-11-09 16:29:02 +000012/* Cortex-A55 MIDR for revision 0 */
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000013#define CORTEX_A55_MIDR U(0x410fd050)
David Wang805c2c72016-11-09 16:29:02 +000014
15/*******************************************************************************
16 * CPU Extended Control register specific definitions.
17 ******************************************************************************/
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000018#define CORTEX_A55_CPUPWRCTLR_EL1 S3_0_C15_C2_7
David Wang805c2c72016-11-09 16:29:02 +000019#define CORTEX_A55_CPUECTLR_EL1 S3_0_C15_C1_4
20
Ambroise Vincent6f319602019-02-21 16:25:37 +000021#define CORTEX_A55_CPUECTLR_EL1_L1WSCTL (ULL(3) << 25)
22
Ambroise Vincent7927fa02019-02-21 16:20:43 +000023/*******************************************************************************
24 * CPU Auxiliary Control register specific definitions.
25 ******************************************************************************/
26#define CORTEX_A55_CPUACTLR_EL1 S3_0_C15_C1_0
27
Ambroise Vincent6f319602019-02-21 16:25:37 +000028#define CORTEX_A55_CPUACTLR_EL1_DISABLE_WRITE_STREAMING (ULL(1) << 24)
Ambroise Vincent7927fa02019-02-21 16:20:43 +000029#define CORTEX_A55_CPUACTLR_EL1_DISABLE_DUAL_ISSUE (ULL(1) << 31)
Ambroise Vincent6a77f052019-02-21 16:27:34 +000030#define CORTEX_A55_CPUACTLR_EL1_DISABLE_L1_PAGEWALKS (ULL(1) << 49)
Ambroise Vincent7927fa02019-02-21 16:20:43 +000031
Ambroise Vincent6f319602019-02-21 16:25:37 +000032/*******************************************************************************
33 * CPU Identification register specific definitions.
34 ******************************************************************************/
35#define CORTEX_A55_CLIDR_EL1 S3_1_C0_C0_1
36
37#define CORTEX_A55_CLIDR_EL1_CTYPE3 (ULL(7) << 6)
38
David Wang805c2c72016-11-09 16:29:02 +000039/* Definitions of register field mask in CORTEX_A55_CPUPWRCTLR_EL1 */
Antonio Nino Diaz5e79cfe2019-02-11 13:34:15 +000040#define CORTEX_A55_CORE_PWRDN_EN_MASK U(0x1)
David Wang805c2c72016-11-09 16:29:02 +000041
Ambroise Vincentb72fe7a2019-05-28 09:52:48 +010042/* Instruction patching registers */
43#define CPUPSELR_EL3 S3_6_C15_C8_0
44#define CPUPCR_EL3 S3_6_C15_C8_1
45#define CPUPOR_EL3 S3_6_C15_C8_2
46#define CPUPMR_EL3 S3_6_C15_C8_3
47
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000048#endif /* CORTEX_A55_H */