Revision b5334159 hw/mips_mipssim.c
b/hw/mips_mipssim.c | ||
---|---|---|
82 | 82 |
char buf[1024]; |
83 | 83 |
unsigned long bios_offset; |
84 | 84 |
CPUState *env; |
85 |
int ret;
|
|
85 |
int bios_size;
|
|
86 | 86 |
mips_def_t *def; |
87 | 87 |
|
88 | 88 |
/* Init CPUs. */ |
... | ... | |
103 | 103 |
/* Allocate RAM. */ |
104 | 104 |
cpu_register_physical_memory(0, ram_size, IO_MEM_RAM); |
105 | 105 |
|
106 |
/* Map the BIOS / boot exception handler. */ |
|
107 |
bios_offset = ram_size + vga_ram_size; |
|
108 |
|
|
109 | 106 |
/* Load a BIOS / boot exception handler image. */ |
107 |
bios_offset = ram_size + vga_ram_size; |
|
110 | 108 |
if (bios_name == NULL) |
111 | 109 |
bios_name = BIOS_FILENAME; |
112 | 110 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
113 |
ret = load_image(buf, phys_ram_base + bios_offset);
|
|
114 |
if ((ret < 0 || ret > BIOS_SIZE) && !kernel_filename) {
|
|
111 |
bios_size = load_image(buf, phys_ram_base + bios_offset);
|
|
112 |
if ((bios_size < 0 || bios_size > BIOS_SIZE) && !kernel_filename) {
|
|
115 | 113 |
/* Bail out if we have neither a kernel image nor boot vector code. */ |
116 | 114 |
fprintf(stderr, |
117 | 115 |
"qemu: Could not load MIPS bios '%s', and no -kernel argument was specified\n", |
118 | 116 |
buf); |
119 | 117 |
exit(1); |
120 | 118 |
} else { |
121 |
/* We have a boot vector start address. */ |
|
122 |
env->PC[env->current_tc] = (target_long)0xbfc00000; |
|
119 |
/* Map the BIOS / boot exception handler. */ |
|
123 | 120 |
cpu_register_physical_memory(0x1fc00000LL, |
124 |
ret, bios_offset | IO_MEM_ROM); |
|
121 |
bios_size, bios_offset | IO_MEM_ROM); |
|
122 |
/* We have a boot vector start address. */ |
|
123 |
env->PC[env->current_tc] = (target_long)(int32_t)0xbfc00000; |
|
125 | 124 |
} |
126 | 125 |
|
127 | 126 |
if (kernel_filename) { |
Also available in: Unified diff