xref: /arm-trusted-firmware/plat/qti/common/src/aarch64/qti_kryo4_silver.S (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu/*
2*91f16700Schasinglulu * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
4*91f16700Schasinglulu *
5*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause
6*91f16700Schasinglulu */
7*91f16700Schasinglulu
8*91f16700Schasinglulu#include <arch.h>
9*91f16700Schasinglulu#include <asm_macros.S>
10*91f16700Schasinglulu#include <cpu_macros.S>
11*91f16700Schasinglulu
12*91f16700Schasinglulu#include <plat_macros.S>
13*91f16700Schasinglulu#include <qti_cpu.h>
14*91f16700Schasinglulu
15*91f16700Schasinglulu	.p2align 3
16*91f16700Schasinglulu
17*91f16700Schasinglulu/* -------------------------------------------------
18*91f16700Schasinglulu * The CPU Ops reset function for Kryo-3 Silver
19*91f16700Schasinglulu * -------------------------------------------------
20*91f16700Schasinglulu */
21*91f16700Schasinglulufunc qti_kryo4_silver_reset_func
22*91f16700Schasinglulu	mov	x19, x30
23*91f16700Schasinglulu
24*91f16700Schasinglulu	bl	qtiseclib_kryo4_silver_reset_asm
25*91f16700Schasinglulu	mov	x30, x19
26*91f16700Schasinglulu	b	cortex_a55_reset_func
27*91f16700Schasinglulu
28*91f16700Schasingluluendfunc qti_kryo4_silver_reset_func
29*91f16700Schasinglulu
30*91f16700Schasinglulu/* ---------------------------------------------------------
31*91f16700Schasinglulu * The CPU Ops cluster power down function for Kryo-3 Silver
32*91f16700Schasinglulu * ---------------------------------------------------------
33*91f16700Schasinglulu */
34*91f16700Schasinglulufunc qti_kryo4_silver_cluster_pwr_dwn
35*91f16700Schasinglulu	ret
36*91f16700Schasingluluendfunc qti_kryo4_silver_cluster_pwr_dwn
37*91f16700Schasinglulu
38*91f16700Schasinglulu#if REPORT_ERRATA
39*91f16700Schasinglulu/*
40*91f16700Schasinglulu * Errata printing function for Kryo4 Silver. Must follow AAPCS.
41*91f16700Schasinglulu */
42*91f16700Schasinglulufunc qti_kryo4_silver_errata_report
43*91f16700Schasinglulu	/* TODO : Need to add support. Required only for debug bl31 image.*/
44*91f16700Schasinglulu	ret
45*91f16700Schasingluluendfunc qti_kryo4_silver_errata_report
46*91f16700Schasinglulu#endif
47*91f16700Schasinglulu
48*91f16700Schasinglulu
49*91f16700Schasinglulu/* ---------------------------------------------
50*91f16700Schasinglulu * This function provides kryo4_silver specific
51*91f16700Schasinglulu * register information for crash reporting.
52*91f16700Schasinglulu * It needs to return with x6 pointing to
53*91f16700Schasinglulu * a list of register names in ASCII and
54*91f16700Schasinglulu * x8 - x15 having values of registers to be
55*91f16700Schasinglulu * reported.
56*91f16700Schasinglulu * ---------------------------------------------
57*91f16700Schasinglulu */
58*91f16700Schasinglulu.section .rodata.qti_kryo4_silver_regs, "aS"
59*91f16700Schasingluluqti_kryo4_silver_regs:  /* The ASCII list of register names to be reported */
60*91f16700Schasinglulu	.asciz	""
61*91f16700Schasinglulu
62*91f16700Schasinglulufunc qti_kryo4_silver_cpu_reg_dump
63*91f16700Schasinglulu	adr	x6, qti_kryo4_silver_regs
64*91f16700Schasinglulu	ret
65*91f16700Schasingluluendfunc qti_kryo4_silver_cpu_reg_dump
66*91f16700Schasinglulu
67*91f16700Schasinglulu
68*91f16700Schasingluludeclare_cpu_ops	qti_kryo4_silver, QTI_KRYO4_SILVER_MIDR,	\
69*91f16700Schasinglulu		qti_kryo4_silver_reset_func,		\
70*91f16700Schasinglulu		cortex_a55_core_pwr_dwn,		\
71*91f16700Schasinglulu		qti_kryo4_silver_cluster_pwr_dwn
72