diff mbox

[U-Boot] bootm: fixup silent Linux out of BOOTM_STATE_LOADOS state

Message ID 1468233277-17052-1-git-send-email-hector.palacios@digi.com
State Accepted
Commit 19e8649e59f5632792ecccbf04a2401eddb03e44
Delegated to: Tom Rini
Headers show

Commit Message

Hector Palacios July 11, 2016, 10:34 a.m. UTC
The function fixup_silent_linux() is called in status BOOTM_STATE_LOADOS
to silence Linux if variable 'silent' is set.
Currently only the 'bootm' command state machine contains
BOOTM_STATE_LOADOS, but others like 'booti' or 'bootz' commands do not.
This means silent Linux does not work with these commands.

This patch moves the fixup_silent_linux() call out of the
BOOTM_STATE_LOADOS state and into BOOTM_STATE_OS_PREP, to silence Linux
independently of the used command (booti, bootm or bootz).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
---
 common/bootm.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Comments

Tom Rini July 16, 2016, 1:51 p.m. UTC | #1
On Mon, Jul 11, 2016 at 12:34:37PM +0200, Hector Palacios wrote:

> The function fixup_silent_linux() is called in status BOOTM_STATE_LOADOS
> to silence Linux if variable 'silent' is set.
> Currently only the 'bootm' command state machine contains
> BOOTM_STATE_LOADOS, but others like 'booti' or 'bootz' commands do not.
> This means silent Linux does not work with these commands.
> 
> This patch moves the fixup_silent_linux() call out of the
> BOOTM_STATE_LOADOS state and into BOOTM_STATE_OS_PREP, to silence Linux
> independently of the used command (booti, bootm or bootz).
> 
> Signed-off-by: Hector Palacios <hector.palacios@digi.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/common/bootm.c b/common/bootm.c
index 81a522eec348..521468c1ecd0 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -668,10 +668,6 @@  int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
 			goto err;
 		else if (ret == BOOTM_ERR_OVERLAP)
 			ret = 0;
-#if defined(CONFIG_SILENT_CONSOLE) && !defined(CONFIG_SILENT_U_BOOT_ONLY)
-		if (images->os.os == IH_OS_LINUX)
-			fixup_silent_linux();
-#endif
 	}
 
 	/* Relocate the ramdisk */
@@ -711,13 +707,19 @@  int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
 		return 1;
 	}
 
+
 	/* Call various other states that are not generally used */
 	if (!ret && (states & BOOTM_STATE_OS_CMDLINE))
 		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, argc, argv, images);
 	if (!ret && (states & BOOTM_STATE_OS_BD_T))
 		ret = boot_fn(BOOTM_STATE_OS_BD_T, argc, argv, images);
-	if (!ret && (states & BOOTM_STATE_OS_PREP))
+	if (!ret && (states & BOOTM_STATE_OS_PREP)) {
+#if defined(CONFIG_SILENT_CONSOLE) && !defined(CONFIG_SILENT_U_BOOT_ONLY)
+		if (images->os.os == IH_OS_LINUX)
+			fixup_silent_linux();
+#endif
 		ret = boot_fn(BOOTM_STATE_OS_PREP, argc, argv, images);
+	}
 
 #ifdef CONFIG_TRACE
 	/* Pretend to run the OS, then run a user command */