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/adm5120/prom.c linux.dev/arch/mips/adm5120/prom.c --- linux.old/arch/mips/adm5120/prom.c 2006-12-06 17:30:27.000000000 +0100 +++ linux.dev/arch/mips/adm5120/prom.c 2006-12-06 17:41:40.000000000 +0100 @@ -100,6 +100,7 @@ } +extern char _image_cmdline; /* * initialize the prom module. */ @@ -112,8 +112,10 @@ mips_machtype = adm5120_board.mach_type; /* init command line, register a default kernel command line */ - strcpy(&(arcs_cmdline[0]), CONFIG_CMDLINE); + char *cmd = &_image_cmdline + 8; + if( strlen(cmd) > 0) strcpy( &(arcs_cmdline[0]), cmd); + else strcpy(&(arcs_cmdline[0]), CONFIG_CMDLINE); /* init memory map */ prom_meminit(); }