| // 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 <bootstage.h> | |
| #include <hang.h> | |
| #include <stdio.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_XPL_BUILD) || \ | |
| (CONFIG_IS_ENABLED(LIBCOMMON_SUPPORT) && \ | |
| CONFIG_IS_ENABLED(SERIAL)) | |
| puts("### ERROR ### Please RESET the board ###\n"); | |
| #endif | |
| bootstage_error(BOOTSTAGE_ID_NEED_RESET); | |
| if (IS_ENABLED(CONFIG_SANDBOX)) | |
| os_exit(1); | |
| for (;;) | |
| ; | |
| } |