14da6f6cdSSathees Balya /* 2*609e053cSAmbroise Vincent * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved. 34da6f6cdSSathees Balya * 44da6f6cdSSathees Balya * SPDX-License-Identifier: BSD-3-Clause 54da6f6cdSSathees Balya */ 64da6f6cdSSathees Balya 74da6f6cdSSathees Balya #include <errno.h> 809d40e0eSAntonio Nino Diaz 909d40e0eSAntonio Nino Diaz #include <arch_helpers.h> 10*609e053cSAmbroise Vincent #include <plat/arm/common/plat_arm.h> 1109d40e0eSAntonio Nino Diaz #include <plat/common/platform.h> 12234bc7f8SAntonio Nino Diaz #include <platform_def.h> 134da6f6cdSSathees Balya 144da6f6cdSSathees Balya /* 154da6f6cdSSathees Balya * Juno error handler 164da6f6cdSSathees Balya */ 174da6f6cdSSathees Balya void __dead2 plat_arm_error_handler(int err) 184da6f6cdSSathees Balya { 194da6f6cdSSathees Balya uint32_t *flags_ptr = (uint32_t *)V2M_SYS_NVFLAGS_ADDR; 204da6f6cdSSathees Balya 214da6f6cdSSathees Balya /* Propagate the err code in the NV-flags register */ 224da6f6cdSSathees Balya *flags_ptr = err; 234da6f6cdSSathees Balya 244da6f6cdSSathees Balya /* Loop until the watchdog resets the system */ 254da6f6cdSSathees Balya for (;;) 264da6f6cdSSathees Balya wfi(); 274da6f6cdSSathees Balya } 28