Annotation of qemu/hw/dummy_m68k.c, revision 1.1

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: 
        !            17: static void dummy_m68k_init(int ram_size, int vga_ram_size,
        !            18:                      const char *boot_device, DisplayState *ds,
        !            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) {
        !            47:             kernel_size = load_uboot(kernel_filename, &entry, NULL);
        !            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 = {
        !            66:     "dummy",
        !            67:     "Dummy board",
        !            68:     dummy_m68k_init,
        !            69: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.