summaryrefslogtreecommitdiff
path: root/common/main.c
diff options
context:
space:
mode:
authorwdenk <wdenk>2002-11-19 11:04:11 +0000
committerwdenk <wdenk>2002-11-19 11:04:11 +0000
commitc7de829c796978e519984df2f1c8cfcf921a39a4 (patch)
tree43e42aa9a09f5265783c1622a5cea080471ef50e /common/main.c
parent2262cfeef91458b01a1bfe3812ccbbfdf8b82807 (diff)
* Patch by Thomas Frieden, 13 Nov 2002:
Add code for AmigaOne board (preliminary merge to U-Boot, still WIP) * Patch by Jon Diekema, 12 Nov 2002: - Adding URL for IEEE OUI lookup - Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED being defined. - In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and root-on-nfs macros are designed to switch how the default boot method gets defined.
Diffstat (limited to 'common/main.c')
-rw-r--r--common/main.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/common/main.c b/common/main.c
index 014804b6ef5..08d54c5c140 100644
--- a/common/main.c
+++ b/common/main.c
@@ -179,11 +179,19 @@ static __inline__ int abortboot(int bootdelay)
# else /* !defined(CONFIG_AUTOBOOT_KEYED) */
+#ifdef CONFIG_MENUKEY
+static int menukey = 0;
+#endif
+
static __inline__ int abortboot(int bootdelay)
{
int abort = 0;
+#ifdef CONFIG_MENUPROMPT
+ printf(CONFIG_MENUPROMPT, bootdelay);
+#else
printf("Hit any key to stop autoboot: %2d ", bootdelay);
+#endif
#if defined CONFIG_ZERO_BOOTDELAY_CHECK
/*
@@ -208,7 +216,11 @@ static __inline__ int abortboot(int bootdelay)
if (tstc()) { /* we got a key press */
abort = 1; /* don't auto boot */
bootdelay = 0; /* no more delay */
+# ifdef CONFIG_MENUKEY
+ menukey = getc();
+# else
(void) getc(); /* consume input */
+# endif
break;
}
udelay (10000);
@@ -323,8 +335,31 @@ void main_loop (void)
disable_ctrlc(prev); /* restore Control C checking */
# endif
}
+
+# ifdef CONFIG_MENUKEY
+ if (menukey == CONFIG_MENUKEY)
+ {
+ s = getenv("menucmd");
+ if (s)
+ {
+# ifndef CFG_HUSH_PARSER
+ run_command (s, bd, 0);
+# else
+ parse_string_outer(s, FLAG_PARSE_SEMICOLON |
+ FLAG_EXIT_FROM_LOOP);
+# endif
+ }
+ }
+#endif /* CONFIG_MENUKEY */
#endif /* CONFIG_BOOTDELAY */
+#ifdef CONFIG_AMIGAONEG3SE
+ {
+ extern void video_banner(void);
+ video_banner();
+ }
+#endif
+
/*
* Main Loop for Monitor Command Processing
*/