kernel: add generic image_cmdline hack to MIPS targets
[openwrt.git] / target / linux / generic-2.6 / patches-2.6.30 / 021-mips_simple_prom_emulator.patch
1 --- a/arch/mips/Kconfig
2 +++ b/arch/mips/Kconfig
3 @@ -805,6 +805,9 @@ config SYNC_R4K
4  
5  config MIPS_MACHINE
6         def_bool n
7 +       
8 +config PROM_EMU
9 +       def_bool n
10  
11  config IMAGE_CMDLINE_HACK
12         bool "OpenWrt specific image command line hack"
13 --- a/arch/mips/kernel/head.S
14 +++ b/arch/mips/kernel/head.S
15 @@ -149,6 +149,15 @@ EXPORT(__image_cmdline)
16         .fill   0x400
17  #endif /* CONFIG_IMAGE_CMDLINE_HACK */
18  
19 +#ifdef CONFIG_PROM_EMU
20 +EXPORT(prom_emu_argv)
21 +       .word   0
22 +       .word   prom_emu_cmdline
23 +       .ascii  "CMDLINE:"
24 +EXPORT(prom_emu_cmdline)
25 +       .fill   0x400
26 +#endif
27 +
28         __REF
29  
30  NESTED(kernel_entry, 16, sp)                   # kernel entry point
31 @@ -189,6 +198,19 @@ NESTED(kernel_entry, 16, sp)                       # kernel 
32         LONG_S          zero, (t0)
33         bne             t0, t1, 1b
34  
35 +#ifdef CONFIG_PROM_EMU
36 +       PTR_LA          t0, prom_emu_cmdline
37 +       LONG_L          t1, 0(t0)
38 +       beqz            t1, 1f
39 +
40 +       li              a0, 2
41 +       PTR_LA          a1, prom_emu_argv
42 +       move            a2, zero
43 +       move            a3, zero
44 +
45 +1:
46 +#endif /* CONFIG_PROM_EMU */
47 +
48         LONG_S          a0, fw_arg0             # firmware arguments
49         LONG_S          a1, fw_arg1
50         LONG_S          a2, fw_arg2