At present if the command line is very long it is truncated by the
printf() statement, which works within a limited buffer. Use puts()
instead. Also show better debugging with the command-line setup
fails.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 arch/x86/lib/zimage.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index 3e9ee12400f..602788e016d 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -109,8 +109,11 @@ static void build_command_line(char *command_line, int 
auto_boot)
 
        if (env_command_line)
                strcat(command_line, env_command_line);
-
-       printf("Kernel command line: \"%s\"\n", command_line);
+#ifdef DEBUG
+       printf("Kernel command line:");
+       puts(command_line);
+       printf("\n");
+#endif
 }
 
 static int kernel_magic_ok(struct setup_header *hdr)
@@ -354,7 +357,8 @@ int setup_zimage(struct boot_params *setup_base, char 
*cmd_line, int auto_boot,
                        build_command_line(cmd_line, auto_boot);
                ret = bootm_process_cmdline(cmd_line, max_size, BOOTM_CL_ALL);
                if (ret) {
-                       printf("Cmdline setup failed (err=%d)\n", ret);
+                       printf("Cmdline setup failed (max_size=%x, 
bootproto=%x, err=%d)\n",
+                              max_size, bootproto, ret);
                        return ret;
                }
                printf("Kernel command line: \"");
-- 
2.30.0.284.gd98b1dd5eaa7-goog

Reply via email to