MIPS: bootm: add mem, rd_start and rd_size to kernel command line
authorDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
Wed, 14 Jan 2015 20:44:13 +0000 (21:44 +0100)
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
Wed, 21 Jan 2015 13:02:48 +0000 (14:02 +0100)
If the user wants to boot a kernel without legacy environment,
information like memory size, initrd address and size should be
handed over to the kernel in the command line.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
arch/mips/lib/bootm.c

index fa579b36e49709fad660f09d82b82656e2fd1c85..7a98f1513137f278e12eb2fd8d60274033ed36db 100644 (file)
@@ -144,10 +144,36 @@ static void linux_cmdline_legacy(bootm_headers_t *images)
        }
 }
 
+static void linux_cmdline_append(bootm_headers_t *images)
+{
+       char buf[24];
+       ulong mem, rd_start, rd_size;
+
+       /* append mem */
+       mem = gd->ram_size >> 20;
+       sprintf(buf, "mem=%luM", mem);
+       linux_cmdline_set(buf, strlen(buf));
+
+       /* append rd_start and rd_size */
+       rd_start = images->initrd_start;
+       rd_size = images->initrd_end - images->initrd_start;
+
+       if (rd_size) {
+               sprintf(buf, "rd_start=0x%08lX", rd_start);
+               linux_cmdline_set(buf, strlen(buf));
+               sprintf(buf, "rd_size=0x%lX", rd_size);
+               linux_cmdline_set(buf, strlen(buf));
+       }
+}
+
 static void boot_cmdline_linux(bootm_headers_t *images)
 {
        if (mips_boot_cmdline_legacy) {
                linux_cmdline_legacy(images);
+
+               if (!mips_boot_env_legacy)
+                       linux_cmdline_append(images);
+
                linux_cmdline_dump();
        }
 }