146ee50e0SSaurabh Gorecha/* 2*3fb52e41SRyan Everett * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved. 346ee50e0SSaurabh Gorecha * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. 446ee50e0SSaurabh Gorecha * 546ee50e0SSaurabh Gorecha * SPDX-License-Identifier: BSD-3-Clause 646ee50e0SSaurabh Gorecha */ 746ee50e0SSaurabh Gorecha 846ee50e0SSaurabh Gorecha#include <arch.h> 946ee50e0SSaurabh Gorecha#include <asm_macros.S> 1046ee50e0SSaurabh Gorecha#include <cpu_macros.S> 1146ee50e0SSaurabh Gorecha 1246ee50e0SSaurabh Gorecha#include <plat_macros.S> 1346ee50e0SSaurabh Gorecha#include <qti_cpu.h> 1446ee50e0SSaurabh Gorecha 1546ee50e0SSaurabh Gorecha .p2align 3 1646ee50e0SSaurabh Gorecha 1746ee50e0SSaurabh Gorecha/* ------------------------------------------------- 1846ee50e0SSaurabh Gorecha * The CPU Ops reset function for Kryo-3 Gold 1946ee50e0SSaurabh Gorecha * ------------------------------------------------- 2046ee50e0SSaurabh Gorecha */ 2146ee50e0SSaurabh Gorechafunc qti_kryo6_gold_reset_func 2246ee50e0SSaurabh Gorecha#if IMAGE_BL31 && WORKAROUND_CVE_2017_5715 2346ee50e0SSaurabh Gorecha adr x0, wa_cve_2017_5715_bpiall_vbar 2446ee50e0SSaurabh Gorecha msr vbar_el3, x0 2546ee50e0SSaurabh Gorecha isb 2646ee50e0SSaurabh Gorecha#endif 2746ee50e0SSaurabh Gorecha 2846ee50e0SSaurabh Gorecha mov x19, x30 2946ee50e0SSaurabh Gorecha 3046ee50e0SSaurabh Gorecha bl qtiseclib_kryo6_gold_reset_asm 316cc743cfSSaurabh Gorecha mov x30, x19 326cc743cfSSaurabh Gorecha b cortex_a78_reset_func 3346ee50e0SSaurabh Gorecha 3446ee50e0SSaurabh Gorechaendfunc qti_kryo6_gold_reset_func 3546ee50e0SSaurabh Gorecha 3646ee50e0SSaurabh Gorecha/* ------------------------------------------------------- 3746ee50e0SSaurabh Gorecha * The CPU Ops cluster power down function for Kryo-3 Gold 3846ee50e0SSaurabh Gorecha * ------------------------------------------------------- 3946ee50e0SSaurabh Gorecha */ 4046ee50e0SSaurabh Gorechafunc qti_kryo6_gold_cluster_pwr_dwn 4146ee50e0SSaurabh Gorecha ret 4246ee50e0SSaurabh Gorechaendfunc qti_kryo6_gold_cluster_pwr_dwn 4346ee50e0SSaurabh Gorecha 4446ee50e0SSaurabh Gorecha/* --------------------------------------------- 4546ee50e0SSaurabh Gorecha * This function provides kryo4_gold specific 4646ee50e0SSaurabh Gorecha * register information for crash reporting. 4746ee50e0SSaurabh Gorecha * It needs to return with x6 pointing to 4846ee50e0SSaurabh Gorecha * a list of register names in ASCII and 4946ee50e0SSaurabh Gorecha * x8 - x15 having values of registers to be 5046ee50e0SSaurabh Gorecha * reported. 5146ee50e0SSaurabh Gorecha * --------------------------------------------- 5246ee50e0SSaurabh Gorecha */ 5346ee50e0SSaurabh Gorecha.section .rodata.qti_kryo4_gold_regs, "aS" 5446ee50e0SSaurabh Gorechaqti_kryo6_gold_regs: /* The ASCII list of register names to be reported */ 5546ee50e0SSaurabh Gorecha .asciz "" 5646ee50e0SSaurabh Gorecha 5746ee50e0SSaurabh Gorechafunc qti_kryo6_gold_cpu_reg_dump 5846ee50e0SSaurabh Gorecha adr x6, qti_kryo6_gold_regs 5946ee50e0SSaurabh Gorecha ret 6046ee50e0SSaurabh Gorechaendfunc qti_kryo6_gold_cpu_reg_dump 6146ee50e0SSaurabh Gorecha 6246ee50e0SSaurabh Gorechadeclare_cpu_ops qti_kryo6_gold, QTI_KRYO6_GOLD_MIDR, \ 6346ee50e0SSaurabh Gorecha qti_kryo6_gold_reset_func, \ 646cc743cfSSaurabh Gorecha cortex_a78_core_pwr_dwn, \ 6546ee50e0SSaurabh Gorecha qti_kryo6_gold_cluster_pwr_dwn 66