|
|
1.1 root 1: /*
2: * Dummy board with just RAM and CPU for use as an ISS.
3: *
4: * Copyright (c) 2007 CodeSourcery.
5: *
6: * This code is licenced under the GPL
7: */
8:
9: #include "hw.h"
10: #include "sysemu.h"
11: #include "boards.h"
12:
13: #define KERNEL_LOAD_ADDR 0x10000
14:
15: /* Board init. */
16:
1.1.1.2 ! root 17: static void dummy_m68k_init(ram_addr_t ram_size, int vga_ram_size,
! 18: const char *boot_device,
1.1 root 19: const char *kernel_filename, const char *kernel_cmdline,
20: const char *initrd_filename, const char *cpu_model)
21: {
22: CPUState *env;
23: int kernel_size;
24: uint64_t elf_entry;
25: target_ulong entry;
26:
27: if (!cpu_model)
28: cpu_model = "cfv4e";
29: env = cpu_init(cpu_model);
30: if (!env) {
31: fprintf(stderr, "Unable to find m68k CPU definition\n");
32: exit(1);
33: }
34:
35: /* Initialize CPU registers. */
36: env->vbr = 0;
37:
38: /* RAM at address zero */
39: cpu_register_physical_memory(0, ram_size,
40: qemu_ram_alloc(ram_size) | IO_MEM_RAM);
41:
42: /* Load kernel. */
43: if (kernel_filename) {
44: kernel_size = load_elf(kernel_filename, 0, &elf_entry, NULL, NULL);
45: entry = elf_entry;
46: if (kernel_size < 0) {
1.1.1.2 ! root 47: kernel_size = load_uimage(kernel_filename, &entry, NULL, NULL);
1.1 root 48: }
49: if (kernel_size < 0) {
50: kernel_size = load_image(kernel_filename,
51: phys_ram_base + KERNEL_LOAD_ADDR);
52: entry = KERNEL_LOAD_ADDR;
53: }
54: if (kernel_size < 0) {
55: fprintf(stderr, "qemu: could not load kernel '%s'\n",
56: kernel_filename);
57: exit(1);
58: }
59: } else {
60: entry = 0;
61: }
62: env->pc = entry;
63: }
64:
65: QEMUMachine dummy_m68k_machine = {
1.1.1.2 ! root 66: .name = "dummy",
! 67: .desc = "Dummy board",
! 68: .init = dummy_m68k_init,
1.1 root 69: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.