--- a/arch/mips/cavium-octeon/setup.c +++ b/arch/mips/cavium-octeon/setup.c @@ -653,6 +653,35 @@ void octeon_user_io_init(void) write_c0_derraddr1(0); } +#ifdef CONFIG_IMAGE_CMDLINE_HACK +extern char __image_cmdline[]; + +static int __init octeon_use_image_cmdline(void) +{ + char *p = __image_cmdline; + int replace = 0; + + if (*p == '-') { + replace = 1; + p++; + } + + if (*p == '\0') + return 0; + + if (replace) { + strlcpy(arcs_cmdline, p, sizeof(arcs_cmdline)); + } else { + strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline)); + strlcat(arcs_cmdline, p, sizeof(arcs_cmdline)); + } + + return 1; +} +#else +static inline int octeon_use_image_cmdline(void) { return 0; } +#endif + /** * prom_init - Early entry point for arch setup */ @@ -896,6 +925,8 @@ void __init prom_init(void) } } + octeon_use_image_cmdline(); + if (strstr(arcs_cmdline, "console=") == NULL) { if (octeon_uart == 1) strcat(arcs_cmdline, " console=ttyS1,115200");