diff options
Diffstat (limited to 'arch/mips/qemu/q-firmware.c')
-rw-r--r-- | arch/mips/qemu/q-firmware.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/mips/qemu/q-firmware.c b/arch/mips/qemu/q-firmware.c index 5980f02b..fb2a8673 100644 --- a/arch/mips/qemu/q-firmware.c +++ b/arch/mips/qemu/q-firmware.c @@ -1,7 +1,18 @@ #include <linux/init.h> +#include <linux/string.h> +#include <asm/addrspace.h> #include <asm/bootinfo.h> void __init prom_init(void) { - add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM); + int *cmdline; + + cmdline = (int *) (CKSEG0 + (0x10 << 20) - 260); + if (*cmdline == 0x12345678) { + if (*(char *)(cmdline + 1)) + strcpy (arcs_cmdline, (char *)(cmdline + 1)); + add_memory_region(0x0<<20, cmdline[-1], BOOT_MEM_RAM); + } else { + add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM); + } } |