main.c 1.6 KB
Newer Older
wdenk's avatar
wdenk committed
1 2 3 4
/*
 * (C) Copyright 2000
 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 *
5
 * SPDX-License-Identifier:	GPL-2.0+
wdenk's avatar
wdenk committed
6 7
 */

8 9
/* #define	DEBUG	*/

wdenk's avatar
wdenk committed
10
#include <common.h>
11
#include <autoboot.h>
12
#include <cli.h>
13
#include <console.h>
Simon Glass's avatar
Simon Glass committed
14
#include <version.h>
15

16 17
DECLARE_GLOBAL_DATA_PTR;

18 19 20
/*
 * Board-specific Platform code can reimplement show_boot_progress () if needed
 */
21
__weak void show_boot_progress(int val) {}
22

Simon Glass's avatar
Simon Glass committed
23 24
static void run_preboot_environment_command(void)
{
25
#ifdef CONFIG_PREBOOT
Simon Glass's avatar
Simon Glass committed
26 27
	char *p;

28 29 30 31 32 33 34 35 36 37 38 39 40
	p = getenv("preboot");
	if (p != NULL) {
# ifdef CONFIG_AUTOBOOT_KEYED
		int prev = disable_ctrlc(1);	/* disable Control C checking */
# endif

		run_command_list(p, -1, 0);

# ifdef CONFIG_AUTOBOOT_KEYED
		disable_ctrlc(prev);	/* restore Control C checking */
# endif
	}
#endif /* CONFIG_PREBOOT */
Simon Glass's avatar
Simon Glass committed
41 42
}

43
/* We come here after U-Boot is initialised and ready to process commands */
Simon Glass's avatar
Simon Glass committed
44 45
void main_loop(void)
{
46 47
	const char *s;

Simon Glass's avatar
Simon Glass committed
48 49 50 51 52 53 54 55 56 57 58 59
	bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");

#ifndef CONFIG_SYS_GENERIC_BOARD
	puts("Warning: Your board does not use generic board. Please read\n");
	puts("doc/README.generic-board and take action. Boards not\n");
	puts("upgraded by the late 2014 may break or be removed.\n");
#endif

#ifdef CONFIG_VERSION_VARIABLE
	setenv("ver", version_string);  /* set version variable */
#endif /* CONFIG_VERSION_VARIABLE */

60
	cli_init();
Simon Glass's avatar
Simon Glass committed
61 62

	run_preboot_environment_command();
63 64

#if defined(CONFIG_UPDATE_TFTP)
65
	update_tftp(0UL, NULL, NULL);
66 67
#endif /* CONFIG_UPDATE_TFTP */

68 69 70 71 72
	s = bootdelay_process();
	if (cli_process_fdt(&s))
		cli_secure_boot_cmd(s);

	autoboot_command(s);
73

74
	cli_loop();
75
	panic("No CLI available");
wdenk's avatar
wdenk committed
76
}