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