xref: /rk3399_ARM-atf/lib/cpus/aarch64/neoverse_e1.S (revision fd7b287cbe9147ca9e07dd9f30c49c58bbdd92a8)
1/*
2 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6#include <arch.h>
7#include <asm_macros.S>
8#include <common/bl_common.h>
9#include <common/debug.h>
10#include <neoverse_e1.h>
11#include <cpu_macros.S>
12#include <plat_macros.S>
13
14func neoverse_e1_cpu_pwr_dwn
15	mrs	x0, NEOVERSE_E1_CPUPWRCTLR_EL1
16	orr	x0, x0, #NEOVERSE_E1_CPUPWRCTLR_EL1_CORE_PWRDN_BIT
17	msr	NEOVERSE_E1_CPUPWRCTLR_EL1, x0
18	isb
19	ret
20endfunc neoverse_e1_cpu_pwr_dwn
21
22#if REPORT_ERRATA
23/*
24 * Errata printing function for Neoverse N1. Must follow AAPCS.
25 */
26func neoverse_e1_errata_report
27	ret
28endfunc neoverse_e1_errata_report
29#endif
30
31
32.section .rodata.neoverse_e1_regs, "aS"
33neoverse_e1_regs:  /* The ascii list of register names to be reported */
34	.asciz	"cpuectlr_el1", ""
35
36func neoverse_e1_cpu_reg_dump
37	adr	x6, neoverse_e1_regs
38	mrs	x8, NEOVERSE_E1_ECTLR_EL1
39	ret
40endfunc neoverse_e1_cpu_reg_dump
41
42declare_cpu_ops neoverse_e1, NEOVERSE_E1_MIDR, \
43	CPU_NO_RESET_FUNC, \
44	neoverse_e1_cpu_pwr_dwn
45