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