main: Make the execution path a little clearer in main.c

bootdelay_process() never returns in some circumstances, whichs makes the
control flow confusing. Change it so that the decision about how to execute
the boot command is made in the main_loop() code, so it is easier to follow.
Move CLI stuff to cli.c.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/common/main.c b/common/main.c
index 8c846c8..ce45127 100644
--- a/common/main.c
+++ b/common/main.c
@@ -55,8 +55,11 @@
 #endif /* CONFIG_PREBOOT */
 }
 
+/* We come here after U-Boot is initialised and ready to process commands */
 void main_loop(void)
 {
+	const char *s;
+
 	bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
 
 #ifndef CONFIG_SYS_GENERIC_BOARD
@@ -78,10 +81,11 @@
 	update_tftp(0UL);
 #endif /* CONFIG_UPDATE_TFTP */
 
-	bootdelay_process();
-	/*
-	 * Main Loop for Monitor Command Processing
-	 */
+	s = bootdelay_process();
+	if (cli_process_fdt(&s))
+		cli_secure_boot_cmd(s);
+
+	autoboot_command(s);
 
 	cli_loop();
 }