blob: b98abdf4dd4a132936777e8f3bcd838c988c4552 [file] [log] [blame]
Varun Wadekar3a8c55f2015-07-14 17:11:20 +05301/*
Varun Wadekarcf3ed0d2018-06-25 11:36:47 -07002 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
Varun Wadekar3a8c55f2015-07-14 17:11:20 +05303 *
dp-arm82cb2c12017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Varun Wadekar3a8c55f2015-07-14 17:11:20 +05305 */
6
Antonio Nino Diazc3cf06f2018-11-08 10:20:19 +00007#ifndef DENVER_H
8#define DENVER_H
Varun Wadekar3a8c55f2015-07-14 17:11:20 +05309
Varun Wadekare956e222015-09-03 17:15:06 +053010/* MIDR values for Denver */
Varun Wadekar030567e2017-05-25 18:04:48 -070011#define DENVER_MIDR_PN0 U(0x4E0F0000)
12#define DENVER_MIDR_PN1 U(0x4E0F0010)
13#define DENVER_MIDR_PN2 U(0x4E0F0020)
14#define DENVER_MIDR_PN3 U(0x4E0F0030)
15#define DENVER_MIDR_PN4 U(0x4E0F0040)
Varun Wadekare956e222015-09-03 17:15:06 +053016
17/* Implementer code in the MIDR register */
Varun Wadekar030567e2017-05-25 18:04:48 -070018#define DENVER_IMPL U(0x4E)
Varun Wadekar3a8c55f2015-07-14 17:11:20 +053019
20/* CPU state ids - implementation defined */
Varun Wadekar030567e2017-05-25 18:04:48 -070021#define DENVER_CPU_STATE_POWER_DOWN U(0x3)
Varun Wadekar3a8c55f2015-07-14 17:11:20 +053022
Varun Wadekar6cf8d652018-08-28 09:11:30 -070023/* Speculative store buffering */
24#define DENVER_CPU_DIS_SSB_EL3 (U(1) << 11)
25#define DENVER_PN4_CPU_DIS_SSB_EL3 (U(1) << 18)
26
27/* Speculative memory disambiguation */
28#define DENVER_CPU_DIS_MD_EL3 (U(1) << 9)
29#define DENVER_PN4_CPU_DIS_MD_EL3 (U(1) << 17)
30
Varun Wadekarcf3ed0d2018-06-25 11:36:47 -070031/* Core power management states */
32#define DENVER_CPU_PMSTATE_C1 U(0x1)
33#define DENVER_CPU_PMSTATE_C6 U(0x6)
34#define DENVER_CPU_PMSTATE_C7 U(0x7)
35#define DENVER_CPU_PMSTATE_MASK U(0xF)
36
Kalyani Chidambaramd55b8f62018-09-12 14:59:08 -070037/* ACTRL_ELx bits to enable dual execution*/
38#define DENVER_CPU_ENABLE_DUAL_EXEC_EL2 (ULL(1) << 9)
39#define DENVER_CPU_ENABLE_DUAL_EXEC_EL3 (ULL(1) << 9)
40#define DENVER_CPU_ENABLE_DUAL_EXEC_EL1 (U(1) << 4)
41
Julius Wernerd5dfdeb2019-07-09 13:49:11 -070042#ifndef __ASSEMBLER__
Varun Wadekar9f1c5dd2016-02-22 11:09:41 -080043
44/* Disable Dynamic Code Optimisation */
45void denver_disable_dco(void);
46
Julius Wernerd5dfdeb2019-07-09 13:49:11 -070047#endif /* __ASSEMBLER__ */
Varun Wadekar9f1c5dd2016-02-22 11:09:41 -080048
Antonio Nino Diazc3cf06f2018-11-08 10:20:19 +000049#endif /* DENVER_H */