1*4da6f6cdSSathees Balya /* 2*4da6f6cdSSathees Balya * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. 3*4da6f6cdSSathees Balya * 4*4da6f6cdSSathees Balya * SPDX-License-Identifier: BSD-3-Clause 5*4da6f6cdSSathees Balya */ 6*4da6f6cdSSathees Balya 7*4da6f6cdSSathees Balya #include <arch_helpers.h> 8*4da6f6cdSSathees Balya #include <errno.h> 9*4da6f6cdSSathees Balya #include <platform.h> 10*4da6f6cdSSathees Balya #include <v2m_def.h> 11*4da6f6cdSSathees Balya 12*4da6f6cdSSathees Balya /* 13*4da6f6cdSSathees Balya * Juno error handler 14*4da6f6cdSSathees Balya */ 15*4da6f6cdSSathees Balya void __dead2 plat_arm_error_handler(int err) 16*4da6f6cdSSathees Balya { 17*4da6f6cdSSathees Balya uint32_t *flags_ptr = (uint32_t *)V2M_SYS_NVFLAGS_ADDR; 18*4da6f6cdSSathees Balya 19*4da6f6cdSSathees Balya /* Propagate the err code in the NV-flags register */ 20*4da6f6cdSSathees Balya *flags_ptr = err; 21*4da6f6cdSSathees Balya 22*4da6f6cdSSathees Balya /* Loop until the watchdog resets the system */ 23*4da6f6cdSSathees Balya for (;;) 24*4da6f6cdSSathees Balya wfi(); 25*4da6f6cdSSathees Balya } 26