Revision f3d6b95e hw/arm_boot.c

b/hw/arm_boot.c
24 24
  0  /* Kernel entry point.  Set by integratorcp_init.  */
25 25
};
26 26

  
27
static void main_cpu_reset(void *opaque)
28
{
29
    CPUState *env = opaque;
30

  
31
    cpu_reset(env);
32
    if (env->kernel_filename)
33
        arm_load_kernel(env, env->ram_size, env->kernel_filename, 
34
                        env->kernel_cmdline, env->initrd_filename, 
35
                        env->board_id);
36
}
37

  
27 38
static void set_kernel_args(uint32_t ram_size, int initrd_size,
28 39
                            const char *kernel_cmdline)
29 40
{
......
81 92
        exit(1);
82 93
    }
83 94

  
95
    if (!env->kernel_filename) {
96
        env->ram_size = ram_size;
97
        env->kernel_filename = kernel_filename;
98
        env->kernel_cmdline = kernel_cmdline;
99
        env->initrd_filename = initrd_filename;
100
        env->board_id = board_id;
101
        qemu_register_reset(main_cpu_reset, env);
102
    }
84 103
    /* Assume that raw images are linux kernels, and ELF images are not.  */
85 104
    kernel_size = load_elf(kernel_filename, 0, &elf_entry);
86 105
    entry = elf_entry;

Also available in: Unified diff