xref: /rk3399_ARM-atf/plat/marvell/armada/a3k/common/a3700_ea.c (revision b5c850d48d49fd1afc3b8189bc2390f53770d4de)
1*b5c850d4SMarcin Wojtas /*
2*b5c850d4SMarcin Wojtas  * Copyright (C) 2019 Repk repk@triplefau.lt
3*b5c850d4SMarcin Wojtas  *
4*b5c850d4SMarcin Wojtas  * SPDX-License-Identifier:	BSD-3-Clause
5*b5c850d4SMarcin Wojtas  * https://spdx.org/licenses
6*b5c850d4SMarcin Wojtas  */
7*b5c850d4SMarcin Wojtas #include <common/bl_common.h>
8*b5c850d4SMarcin Wojtas #include <common/debug.h>
9*b5c850d4SMarcin Wojtas #include <arch_helpers.h>
10*b5c850d4SMarcin Wojtas 
11*b5c850d4SMarcin Wojtas #define ADVK_SERROR_SYNDROME 0xbf000002
12*b5c850d4SMarcin Wojtas 
13*b5c850d4SMarcin Wojtas void plat_ea_handler(unsigned int ea_reason, uint64_t syndrome, void *cookie,
14*b5c850d4SMarcin Wojtas 		void *handle, uint64_t flags)
15*b5c850d4SMarcin Wojtas {
16*b5c850d4SMarcin Wojtas 	if (syndrome != ADVK_SERROR_SYNDROME) {
17*b5c850d4SMarcin Wojtas 		ERROR("Unhandled External Abort received on 0x%lx at EL3!\n",
18*b5c850d4SMarcin Wojtas 			read_mpidr_el1());
19*b5c850d4SMarcin Wojtas 		ERROR(" exception reason=%u syndrome=0x%llx\n", ea_reason,
20*b5c850d4SMarcin Wojtas 				syndrome);
21*b5c850d4SMarcin Wojtas 		panic();
22*b5c850d4SMarcin Wojtas 	}
23*b5c850d4SMarcin Wojtas }
24