xref: /rk3399_rockchip-uboot/lib/hang.c (revision 92916bd121af8b134bea5ebc3d9c2632184132dc)
1d2eae43bSAndreas Bießmann /*
2d2eae43bSAndreas Bießmann  * (C) Copyright 2013
309c2b8f3SAndreas Bießmann  * Andreas Bießmann <andreas@biessmann.org>
4d2eae43bSAndreas Bießmann  *
5d2eae43bSAndreas Bießmann  * This file consolidates all the different hang() functions implemented in
6d2eae43bSAndreas Bießmann  * u-boot.
7d2eae43bSAndreas Bießmann  *
81a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
9d2eae43bSAndreas Bießmann  */
10d2eae43bSAndreas Bießmann 
11d2eae43bSAndreas Bießmann #include <common.h>
12d2eae43bSAndreas Bießmann #include <bootstage.h>
13d2eae43bSAndreas Bießmann 
14*e663d2b5SJason Zhu #ifdef CONFIG_SPL_BUILD
spl_hang_reset(void)15*e663d2b5SJason Zhu __weak void spl_hang_reset(void) {}
16*e663d2b5SJason Zhu #endif
17d2eae43bSAndreas Bießmann /**
18d2eae43bSAndreas Bießmann  * hang - stop processing by staying in an endless loop
19d2eae43bSAndreas Bießmann  *
20d2eae43bSAndreas Bießmann  * The purpose of this function is to stop further execution of code cause
21d2eae43bSAndreas Bießmann  * something went completely wrong.  To catch this and give some feedback to
22d2eae43bSAndreas Bießmann  * the user one needs to catch the bootstage_error (see show_boot_progress())
23d2eae43bSAndreas Bießmann  * in the board code.
24d2eae43bSAndreas Bießmann  */
hang(void)25d2eae43bSAndreas Bießmann void hang(void)
26d2eae43bSAndreas Bießmann {
27d2eae43bSAndreas Bießmann #if !defined(CONFIG_SPL_BUILD) || (defined(CONFIG_SPL_LIBCOMMON_SUPPORT) && \
28d2eae43bSAndreas Bießmann 		defined(CONFIG_SPL_SERIAL_SUPPORT))
29d2eae43bSAndreas Bießmann 	puts("### ERROR ### Please RESET the board ###\n");
30d2eae43bSAndreas Bießmann #endif
31d2eae43bSAndreas Bießmann 	bootstage_error(BOOTSTAGE_ID_NEED_RESET);
32*e663d2b5SJason Zhu #ifdef CONFIG_SPL_BUILD
33*e663d2b5SJason Zhu 	spl_hang_reset();
34*e663d2b5SJason Zhu #endif
35d2eae43bSAndreas Bießmann 	for (;;)
36d2eae43bSAndreas Bießmann 		;
37d2eae43bSAndreas Bießmann }
38