463dbc60f180ecdcfb1e9ad01e1e044f66a491f1
[openwrt/svn-archive/archive.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 @@ -804,6 +804,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 NO_IOPORT
12 def_bool n
13 --- a/arch/mips/kernel/head.S
14 +++ b/arch/mips/kernel/head.S
15 @@ -143,6 +143,15 @@ FEXPORT(__kernel_entry)
16 j kernel_entry
17 #endif
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 @@ -183,6 +192,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