aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/lib/hang.c
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/lib/hang.c')
-rw-r--r--roms/u-boot/lib/hang.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/roms/u-boot/lib/hang.c b/roms/u-boot/lib/hang.c
new file mode 100644
index 000000000..578ac78d4
--- /dev/null
+++ b/roms/u-boot/lib/hang.c
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2013
+ * Andreas Bießmann <andreas@biessmann.org>
+ *
+ * This file consolidates all the different hang() functions implemented in
+ * u-boot.
+ */
+
+#include <common.h>
+#include <bootstage.h>
+#include <hang.h>
+#include <os.h>
+
+/**
+ * hang - stop processing by staying in an endless loop
+ *
+ * The purpose of this function is to stop further execution of code cause
+ * something went completely wrong. To catch this and give some feedback to
+ * the user one needs to catch the bootstage_error (see show_boot_progress())
+ * in the board code.
+ */
+void hang(void)
+{
+#if !defined(CONFIG_SPL_BUILD) || \
+ (CONFIG_IS_ENABLED(LIBCOMMON_SUPPORT) && \
+ CONFIG_IS_ENABLED(SERIAL_SUPPORT))
+ puts("### ERROR ### Please RESET the board ###\n");
+#endif
+ bootstage_error(BOOTSTAGE_ID_NEED_RESET);
+ if (IS_ENABLED(CONFIG_SANDBOX))
+ os_exit(1);
+ for (;;)
+ ;
+}