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