]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * (C) Copyright 2000 | |
3 | * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
4 | * | |
5 | * SPDX-License-Identifier: GPL-2.0+ | |
6 | */ | |
7 | ||
8 | /* #define DEBUG */ | |
9 | ||
10 | #include <common.h> | |
11 | #include <autoboot.h> | |
12 | #include <cli.h> | |
13 | #include <console.h> | |
14 | #include <version.h> | |
15 | ||
16 | DECLARE_GLOBAL_DATA_PTR; | |
17 | ||
18 | /* | |
19 | * Board-specific Platform code can reimplement show_boot_progress () if needed | |
20 | */ | |
21 | __weak void show_boot_progress(int val) {} | |
22 | ||
23 | static void run_preboot_environment_command(void) | |
24 | { | |
25 | #ifdef CONFIG_PREBOOT | |
26 | char *p; | |
27 | ||
28 | p = env_get("preboot"); | |
29 | if (p != NULL) { | |
30 | # ifdef CONFIG_AUTOBOOT_KEYED | |
31 | int prev = disable_ctrlc(1); /* disable Control C checking */ | |
32 | # endif | |
33 | ||
34 | run_command_list(p, -1, 0); | |
35 | ||
36 | # ifdef CONFIG_AUTOBOOT_KEYED | |
37 | disable_ctrlc(prev); /* restore Control C checking */ | |
38 | # endif | |
39 | } | |
40 | #endif /* CONFIG_PREBOOT */ | |
41 | } | |
42 | ||
43 | /* We come here after U-Boot is initialised and ready to process commands */ | |
44 | void main_loop(void) | |
45 | { | |
46 | const char *s; | |
47 | ||
48 | bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop"); | |
49 | ||
50 | #ifdef CONFIG_VERSION_VARIABLE | |
51 | env_set("ver", version_string); /* set version variable */ | |
52 | #endif /* CONFIG_VERSION_VARIABLE */ | |
53 | ||
54 | cli_init(); | |
55 | ||
56 | run_preboot_environment_command(); | |
57 | ||
58 | #if defined(CONFIG_UPDATE_TFTP) | |
59 | update_tftp(0UL, NULL, NULL); | |
60 | #endif /* CONFIG_UPDATE_TFTP */ | |
61 | ||
62 | s = bootdelay_process(); | |
63 | if (cli_process_fdt(&s)) | |
64 | cli_secure_boot_cmd(s); | |
65 | ||
66 | autoboot_command(s); | |
67 | ||
68 | cli_loop(); | |
69 | panic("No CLI available"); | |
70 | } |