]> git.ipfire.org Git - people/ms/u-boot.git/blame - common/main.c
Merge branch 'master' of git://git.denx.de/u-boot-nios
[people/ms/u-boot.git] / common / main.c
CommitLineData
c609719b
WD
1/*
2 * (C) Copyright 2000
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
1a459660 5 * SPDX-License-Identifier: GPL-2.0+
c609719b
WD
6 */
7
a6c7ad2f
WD
8/* #define DEBUG */
9
c609719b 10#include <common.h>
66ded17d 11#include <autoboot.h>
18d66533 12#include <cli.h>
24b852a7 13#include <console.h>
fbcdf32a 14#include <version.h>
bdccc4fe 15
9272a9b4
SG
16DECLARE_GLOBAL_DATA_PTR;
17
fad63407
HS
18/*
19 * Board-specific Platform code can reimplement show_boot_progress () if needed
20 */
3422299d 21__weak void show_boot_progress(int val) {}
fad63407 22
1364a0e4 23static void modem_init(void)
bc2b4c27 24{
bc2b4c27 25#ifdef CONFIG_MODEM_SUPPORT
9272a9b4
SG
26 debug("DEBUG: main_loop: gd->do_mdm_init=%lu\n", gd->do_mdm_init);
27 if (gd->do_mdm_init) {
95856248
SG
28 char *str = getenv("mdm_cmd");
29
bc2b4c27 30 setenv("preboot", str); /* set or delete definition */
bc2b4c27
SG
31 mdm_init(); /* wait for modem connection */
32 }
33#endif /* CONFIG_MODEM_SUPPORT */
1364a0e4 34}
bc2b4c27 35
1364a0e4
SG
36static void run_preboot_environment_command(void)
37{
bc2b4c27 38#ifdef CONFIG_PREBOOT
1364a0e4
SG
39 char *p;
40
bc2b4c27
SG
41 p = getenv("preboot");
42 if (p != NULL) {
43# ifdef CONFIG_AUTOBOOT_KEYED
44 int prev = disable_ctrlc(1); /* disable Control C checking */
45# endif
46
47 run_command_list(p, -1, 0);
48
49# ifdef CONFIG_AUTOBOOT_KEYED
50 disable_ctrlc(prev); /* restore Control C checking */
51# endif
52 }
53#endif /* CONFIG_PREBOOT */
1364a0e4
SG
54}
55
affb2156 56/* We come here after U-Boot is initialised and ready to process commands */
1364a0e4
SG
57void main_loop(void)
58{
affb2156
SG
59 const char *s;
60
1364a0e4
SG
61 bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
62
63#ifndef CONFIG_SYS_GENERIC_BOARD
64 puts("Warning: Your board does not use generic board. Please read\n");
65 puts("doc/README.generic-board and take action. Boards not\n");
66 puts("upgraded by the late 2014 may break or be removed.\n");
67#endif
68
69 modem_init();
70#ifdef CONFIG_VERSION_VARIABLE
71 setenv("ver", version_string); /* set version variable */
72#endif /* CONFIG_VERSION_VARIABLE */
73
c1bb2cd0 74 cli_init();
1364a0e4
SG
75
76 run_preboot_environment_command();
bc2b4c27
SG
77
78#if defined(CONFIG_UPDATE_TFTP)
c7ff5528 79 update_tftp(0UL, NULL, NULL);
bc2b4c27
SG
80#endif /* CONFIG_UPDATE_TFTP */
81
affb2156
SG
82 s = bootdelay_process();
83 if (cli_process_fdt(&s))
84 cli_secure_boot_cmd(s);
85
86 autoboot_command(s);
c1bb2cd0 87
6493ccc7 88 cli_loop();
c609719b 89}