blob: 8e403062fe3ef9e734cfdbeb8257469d55ec31fc [file] [log] [blame]
Joel Hutton46e88702018-01-10 16:06:07 +00001/*
John Tsichritzis11088e32019-02-19 14:01:55 +00002 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
Joel Hutton46e88702018-01-10 16:06:07 +00003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6#include <arch.h>
7#include <asm_macros.S>
Antonio Nino Diaz09d40e02018-12-14 00:18:21 +00008#include <common/bl_common.h>
9#include <common/debug.h>
John Tsichritzis11088e32019-02-19 14:01:55 +000010#include <neoverse_e1.h>
Joel Hutton46e88702018-01-10 16:06:07 +000011#include <cpu_macros.S>
Joel Hutton46e88702018-01-10 16:06:07 +000012#include <plat_macros.S>
13
John Tsichritzis11088e32019-02-19 14:01:55 +000014func 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
Joel Hutton46e88702018-01-10 16:06:07 +000018 isb
19 ret
John Tsichritzis11088e32019-02-19 14:01:55 +000020endfunc neoverse_e1_cpu_pwr_dwn
Joel Hutton46e88702018-01-10 16:06:07 +000021
Soby Mathew12af5ed2018-09-17 04:34:35 +010022#if REPORT_ERRATA
23/*
John Tsichritzis11088e32019-02-19 14:01:55 +000024 * Errata printing function for Neoverse N1. Must follow AAPCS.
Soby Mathew12af5ed2018-09-17 04:34:35 +010025 */
John Tsichritzis11088e32019-02-19 14:01:55 +000026func neoverse_e1_errata_report
Soby Mathew12af5ed2018-09-17 04:34:35 +010027 ret
John Tsichritzis11088e32019-02-19 14:01:55 +000028endfunc neoverse_e1_errata_report
Soby Mathew12af5ed2018-09-17 04:34:35 +010029#endif
30
31
John Tsichritzis11088e32019-02-19 14:01:55 +000032.section .rodata.neoverse_e1_regs, "aS"
33neoverse_e1_regs: /* The ascii list of register names to be reported */
Joel Hutton46e88702018-01-10 16:06:07 +000034 .asciz "cpuectlr_el1", ""
35
John Tsichritzis11088e32019-02-19 14:01:55 +000036func neoverse_e1_cpu_reg_dump
37 adr x6, neoverse_e1_regs
38 mrs x8, NEOVERSE_E1_ECTLR_EL1
Joel Hutton46e88702018-01-10 16:06:07 +000039 ret
John Tsichritzis11088e32019-02-19 14:01:55 +000040endfunc neoverse_e1_cpu_reg_dump
Joel Hutton46e88702018-01-10 16:06:07 +000041
John Tsichritzis11088e32019-02-19 14:01:55 +000042declare_cpu_ops neoverse_e1, NEOVERSE_E1_MIDR, \
Joel Hutton46e88702018-01-10 16:06:07 +000043 CPU_NO_RESET_FUNC, \
John Tsichritzis11088e32019-02-19 14:01:55 +000044 neoverse_e1_cpu_pwr_dwn