* 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.
diff --git a/common/main.c b/common/main.c
index 014804b..08d54c5 100644
--- a/common/main.c
+++ b/common/main.c
@@ -179,11 +179,19 @@
 
 # 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 @@
 			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 @@
 		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
 	 */