xref: /rk3399_ARM-atf/plat/qti/common/src/aarch64/qti_kryo4_silver.S (revision 270d5c5cd9ad6cecc4b581e8a257c6fcfe7d78d6)
1/*
2 * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
3 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#include <arch.h>
9#include <asm_macros.S>
10#include <cpu_macros.S>
11
12#include <plat_macros.S>
13#include <qti_cpu.h>
14
15	.p2align 3
16
17/* -------------------------------------------------
18 * The CPU Ops reset function for Kryo-3 Silver
19 * -------------------------------------------------
20 */
21func qti_kryo4_silver_reset_func
22	mov	x19, x30
23
24	bl	qtiseclib_kryo4_silver_reset_asm
25	mov	x30, x19
26	b	cortex_a55_reset_func
27
28endfunc qti_kryo4_silver_reset_func
29
30/* ---------------------------------------------------------
31 * The CPU Ops cluster power down function for Kryo-3 Silver
32 * ---------------------------------------------------------
33 */
34func qti_kryo4_silver_cluster_pwr_dwn
35	ret
36endfunc qti_kryo4_silver_cluster_pwr_dwn
37
38/* ---------------------------------------------
39 * This function provides kryo4_silver specific
40 * register information for crash reporting.
41 * It needs to return with x6 pointing to
42 * a list of register names in ASCII and
43 * x8 - x15 having values of registers to be
44 * reported.
45 * ---------------------------------------------
46 */
47.section .rodata.qti_kryo4_silver_regs, "aS"
48qti_kryo4_silver_regs:  /* The ASCII list of register names to be reported */
49	.asciz	""
50
51func qti_kryo4_silver_cpu_reg_dump
52	adr	x6, qti_kryo4_silver_regs
53	ret
54endfunc qti_kryo4_silver_cpu_reg_dump
55
56
57declare_cpu_ops	qti_kryo4_silver, QTI_KRYO4_SILVER_MIDR,	\
58		qti_kryo4_silver_reset_func,		\
59		cortex_a55_core_pwr_dwn,		\
60		qti_kryo4_silver_cluster_pwr_dwn
61