aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6/patches-2.6.31
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic-2.6/patches-2.6.31')
-rw-r--r--target/linux/generic-2.6/patches-2.6.31/021-mips_image_cmdline_hack.patch59
-rw-r--r--target/linux/generic-2.6/patches-2.6.31/021-mips_simple_prom_emulator.patch12
2 files changed, 65 insertions, 6 deletions
diff --git a/target/linux/generic-2.6/patches-2.6.31/021-mips_image_cmdline_hack.patch b/target/linux/generic-2.6/patches-2.6.31/021-mips_image_cmdline_hack.patch
new file mode 100644
index 0000000000..6b27264162
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.31/021-mips_image_cmdline_hack.patch
@@ -0,0 +1,59 @@
+--- a/arch/mips/kernel/setup.c
++++ b/arch/mips/kernel/setup.c
+@@ -546,8 +546,28 @@ static void __init resource_init(void)
+ }
+ }
+
++#ifdef CONFIG_IMAGE_CMDLINE_HACK
++static void __init process__image_cmdline(void)
++{
++ extern char __image_cmdline[];
++
++ if (__image_cmdline[0] == '\0')
++ return;
++
++ if (__image_cmdline[0] == '-') {
++ strlcpy(arcs_cmdline, __image_cmdline, sizeof(arcs_cmdline));
++ } else {
++ strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
++ strlcat(arcs_cmdline, __image_cmdline, sizeof(arcs_cmdline));
++ }
++}
++#else
++static void inline process__image_cmdline(void) {}
++#endif
++
+ void __init setup_arch(char **cmdline_p)
+ {
++ process__image_cmdline();
+ cpu_probe();
+ prom_init();
+
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -840,6 +840,10 @@ config SYNC_R4K
+ config MIPS_MACHINE
+ def_bool n
+
++config IMAGE_CMDLINE_HACK
++ bool "OpenWrt specific image command line hack"
++ default n
++
+ config NO_IOPORT
+ def_bool n
+
+--- a/arch/mips/kernel/head.S
++++ b/arch/mips/kernel/head.S
+@@ -143,6 +143,12 @@ FEXPORT(__kernel_entry)
+ j kernel_entry
+ #endif
+
++#ifdef CONFIG_IMAGE_CMDLINE_HACK
++ .ascii "CMDLINE:"
++EXPORT(__image_cmdline)
++ .fill 0x400
++#endif /* CONFIG_IMAGE_CMDLINE_HACK */
++
+ __REF
+
+ NESTED(kernel_entry, 16, sp) # kernel entry point
diff --git a/target/linux/generic-2.6/patches-2.6.31/021-mips_simple_prom_emulator.patch b/target/linux/generic-2.6/patches-2.6.31/021-mips_simple_prom_emulator.patch
index b53ca3f505..3119420dd0 100644
--- a/target/linux/generic-2.6/patches-2.6.31/021-mips_simple_prom_emulator.patch
+++ b/target/linux/generic-2.6/patches-2.6.31/021-mips_simple_prom_emulator.patch
@@ -8,13 +8,13 @@
+config PROM_EMU
+ def_bool n
- config NO_IOPORT
- def_bool n
+ config IMAGE_CMDLINE_HACK
+ bool "OpenWrt specific image command line hack"
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
-@@ -143,6 +143,15 @@ FEXPORT(__kernel_entry)
- j kernel_entry
- #endif
+@@ -149,6 +149,15 @@ EXPORT(__image_cmdline)
+ .fill 0x400
+ #endif /* CONFIG_IMAGE_CMDLINE_HACK */
+#ifdef CONFIG_PROM_EMU
+EXPORT(prom_emu_argv)
@@ -28,7 +28,7 @@
__REF
NESTED(kernel_entry, 16, sp) # kernel entry point
-@@ -183,6 +192,19 @@ NESTED(kernel_entry, 16, sp) # kernel
+@@ -189,6 +198,19 @@ NESTED(kernel_entry, 16, sp) # kernel
LONG_S zero, (t0)
bne t0, t1, 1b