hang.c 902 B

1234567891011121314151617181920212223242526272829303132333435
  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. #include <common.h>
  10. #include <bootstage.h>
  11. #include <hang.h>
  12. #include <os.h>
  13. /**
  14. * hang - stop processing by staying in an endless loop
  15. *
  16. * The purpose of this function is to stop further execution of code cause
  17. * something went completely wrong. To catch this and give some feedback to
  18. * the user one needs to catch the bootstage_error (see show_boot_progress())
  19. * in the board code.
  20. */
  21. void hang(void)
  22. {
  23. #if !defined(CONFIG_SPL_BUILD) || \
  24. (CONFIG_IS_ENABLED(LIBCOMMON_SUPPORT) && \
  25. CONFIG_IS_ENABLED(SERIAL_SUPPORT))
  26. puts("### ERROR ### Please RESET the board ###\n");
  27. #endif
  28. bootstage_error(BOOTSTAGE_ID_NEED_RESET);
  29. if (IS_ENABLED(CONFIG_SANDBOX))
  30. os_exit(1);
  31. for (;;)
  32. ;
  33. }