q-firmware.c 527 B

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