Skip to content
Snippets Groups Projects
hang.c 1.55 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * (C) Copyright 2013
     * Andreas Bießmann <andreas.devel@googlemail.com>
     *
     * This file consolidates all the different hang() functions implemented in
     * u-boot.
     *
     * See file CREDITS for list of people who contributed to this
     * project.
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License as
     * published by the Free Software Foundation; either version 2 of
     * the License, or (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
     * MA 02111-1307 USA
     */
    
    #include <common.h>
    #include <bootstage.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) || (defined(CONFIG_SPL_LIBCOMMON_SUPPORT) && \
    		defined(CONFIG_SPL_SERIAL_SUPPORT))
    	puts("### ERROR ### Please RESET the board ###\n");
    #endif
    	bootstage_error(BOOTSTAGE_ID_NEED_RESET);
    	for (;;)
    		;
    }