q-firmware.c 435 B

123456789101112131415161718
  1. #include <linux/init.h>
  2. #include <linux/string.h>
  3. #include <asm/addrspace.h>
  4. #include <asm/bootinfo.h>
  5. void __init prom_init(void)
  6. {
  7. int *cmdline;
  8. cmdline = (int *) (CKSEG0 + (0x10 << 20) - 260);
  9. if (*cmdline == 0x12345678) {
  10. if (*(char *)(cmdline + 1))
  11. strcpy(arcs_cmdline, (char *)(cmdline + 1));
  12. add_memory_region(0x0<<20, cmdline[-1], BOOT_MEM_RAM);
  13. } else {
  14. add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM);
  15. }
  16. }