blob: b98abdf4dd4a132936777e8f3bcd838c988c4552 [file] [log] [blame]
Varun Wadekar28463b92015-07-14 17:11:20 +05301/*
Varun Wadekar2b914122018-06-25 11:36:47 -07002 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
Varun Wadekar28463b92015-07-14 17:11:20 +05303 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Varun Wadekar28463b92015-07-14 17:11:20 +05305 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef DENVER_H
8#define DENVER_H
Varun Wadekar28463b92015-07-14 17:11:20 +05309
Varun Wadekar3c337a62015-09-03 17:15:06 +053010/* MIDR values for Denver */
Varun Wadekarc6a11f62017-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 Wadekar3c337a62015-09-03 17:15:06 +053016
17/* Implementer code in the MIDR register */
Varun Wadekarc6a11f62017-05-25 18:04:48 -070018#define DENVER_IMPL U(0x4E)
Varun Wadekar28463b92015-07-14 17:11:20 +053019
20/* CPU state ids - implementation defined */
Varun Wadekarc6a11f62017-05-25 18:04:48 -070021#define DENVER_CPU_STATE_POWER_DOWN U(0x3)
Varun Wadekar28463b92015-07-14 17:11:20 +053022
Varun Wadekarcd38e6e2018-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 Wadekar2b914122018-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 Chidambaramfcd1e882018-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 Werner53456fc2019-07-09 13:49:11 -070042#ifndef __ASSEMBLER__
Varun Wadekard43583c2016-02-22 11:09:41 -080043
44/* Disable Dynamic Code Optimisation */
45void denver_disable_dco(void);
46
Julius Werner53456fc2019-07-09 13:49:11 -070047#endif /* __ASSEMBLER__ */
Varun Wadekard43583c2016-02-22 11:09:41 -080048
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000049#endif /* DENVER_H */