diff -ur linux.old/arch/mips/kernel/head.S linux.dev/arch/mips/kernel/head.S --- linux.old/arch/mips/kernel/head.S 2006-12-06 17:30:27.000000000 +0100 +++ linux.dev/arch/mips/kernel/head.S 2006-12-06 18:34:43.000000000 +0100 @@ -129,15 +129,20 @@ #endif .endm - j kernel_entry nop - + nop + /* * Reserved space for exception handlers. * Necessary for machines which link their kernels at KSEG0. + * Use as temporary storage for the kernel command line, so that it + * can be updated easily without having to relink the kernel. */ - .fill 0x400 + +EXPORT(_image_cmdline) + .ascii "CMDLINE:" + .fill 0x3ec EXPORT(stext) # used for profiling EXPORT(_stext) diff -ur linux.old/arch/mips/rb500/prom.c linux.dev/arch/mips/rb500/prom.c --- linux.old/arch/mips/rb500/prom.c 2006-12-06 17:30:27.000000000 +0100 +++ linux.dev/arch/mips/rb500/prom.c 2006-12-06 17:41:40.000000000 +0100 @@ -128,6 +128,7 @@ /* FIXME: STUB */ } +extern char _image_cmdline; void __init prom_setup_cmdline(void){ char cmd_line[CL_SIZE]; char *cp; @@ -163,6 +164,9 @@ strcpy(cp,prom_argv[i]); cp+=strlen(prom_argv[i]); } + *(cp++) = ' '; + strcpy(cp,(&_image_cmdline + 8)); + cp += strlen(&_image_cmdline); i=strlen(arcs_cmdline); if (i>0){