1*91f16700Schasinglulu/* 2*91f16700Schasinglulu * Copyright (c) 2021, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu#include <arch.h> 8*91f16700Schasinglulu#include <asm_macros.S> 9*91f16700Schasinglulu#include <common/debug.h> 10*91f16700Schasinglulu 11*91f16700Schasinglulu .globl el2_panic 12*91f16700Schasinglulu 13*91f16700Schasinglulu /*********************************************************** 14*91f16700Schasinglulu * The common implementation of el3_panic for all BL stages 15*91f16700Schasinglulu ***********************************************************/ 16*91f16700Schasinglulu 17*91f16700Schasinglulu.section .rodata.panic_str, "aS" 18*91f16700Schasinglulu panic_msg: .asciz "PANIC at PC : 0x" 19*91f16700Schasinglulu 20*91f16700Schasinglulu/* 21*91f16700Schasinglulu * el2_panic will be redefined by the 22*91f16700Schasinglulu * crash reporting mechanism (if enabled) 23*91f16700Schasinglulu */ 24*91f16700Schasingluluel2_panic: 25*91f16700Schasinglulu mov x6, x30 26*91f16700Schasinglulu bl plat_crash_console_init 27*91f16700Schasinglulu 28*91f16700Schasinglulu /* Check if the console is initialized */ 29*91f16700Schasinglulu cbz x0, _panic_handler 30*91f16700Schasinglulu 31*91f16700Schasinglulu /* The console is initialized */ 32*91f16700Schasinglulu adr x4, panic_msg 33*91f16700Schasinglulu bl asm_print_str 34*91f16700Schasinglulu mov x4, x6 35*91f16700Schasinglulu 36*91f16700Schasinglulu /* The panic location is lr -4 */ 37*91f16700Schasinglulu sub x4, x4, #4 38*91f16700Schasinglulu bl asm_print_hex 39*91f16700Schasinglulu 40*91f16700Schasinglulu bl plat_crash_console_flush 41*91f16700Schasinglulu 42*91f16700Schasinglulu_panic_handler: 43*91f16700Schasinglulu /* Pass to plat_panic_handler the address from where el2_panic was 44*91f16700Schasinglulu * called, not the address of the call from el2_panic. 45*91f16700Schasinglulu */ 46*91f16700Schasinglulu mov x30, x6 47*91f16700Schasinglulu b plat_panic_handler 48