cortex_a77.S 1.91 KB
Newer Older
1
/*
2
 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3
4
5
6
7
8
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <arch.h>
#include <asm_macros.S>
9
#include <common/bl_common.h>
10
#include <cortex_a77.h>
11
12
13
#include <cpu_macros.S>
#include <plat_macros.S>

14
15
/* Hardware handled coherency */
#if HW_ASSISTED_COHERENCY == 0
16
#error "Cortex-A77 must be compiled with HW_ASSISTED_COHERENCY enabled"
17
18
19
20
#endif

/* 64-bit only core */
#if CTX_INCLUDE_AARCH32_REGS == 1
21
#error "Cortex-A77 supports only AArch64. Compile with CTX_INCLUDE_AARCH32_REGS=0"
22
23
#endif

24
25
26
27
	/* ---------------------------------------------
	 * HW will do the cache maintenance while powering down
	 * ---------------------------------------------
	 */
28
func cortex_a77_core_pwr_dwn
29
30
31
32
	/* ---------------------------------------------
	 * Enable CPU power down bit in power control register
	 * ---------------------------------------------
	 */
33
34
35
	mrs	x0, CORTEX_A77_CPUPWRCTLR_EL1
	orr	x0, x0, #CORTEX_A77_CPUPWRCTLR_EL1_CORE_PWRDN_BIT
	msr	CORTEX_A77_CPUPWRCTLR_EL1, x0
36
37
	isb
	ret
38
endfunc cortex_a77_core_pwr_dwn
39

40
41
#if REPORT_ERRATA
/*
42
 * Errata printing function for Cortex-A77. Must follow AAPCS.
43
 */
44
func cortex_a77_errata_report
45
	ret
46
endfunc cortex_a77_errata_report
47
48
49
#endif


50
	/* ---------------------------------------------
51
	 * This function provides Cortex-A77 specific
52
53
54
55
56
57
58
	 * register information for crash reporting.
	 * It needs to return with x6 pointing to
	 * a list of register names in ascii and
	 * x8 - x15 having values of registers to be
	 * reported.
	 * ---------------------------------------------
	 */
59
60
.section .rodata.cortex_a77_regs, "aS"
cortex_a77_regs:  /* The ascii list of register names to be reported */
61
62
	.asciz	"cpuectlr_el1", ""

63
64
65
func cortex_a77_cpu_reg_dump
	adr	x6, cortex_a77_regs
	mrs	x8, CORTEX_A77_CPUECTLR_EL1
66
	ret
67
endfunc cortex_a77_cpu_reg_dump
68

69
declare_cpu_ops cortex_a77, CORTEX_A77_MIDR, \
70
	CPU_NO_RESET_FUNC, \
71
	cortex_a77_core_pwr_dwn