Revision dcac9679
b/hw/an5206.c | ||
---|---|---|
72 | 72 |
kernel_size = load_uimage(kernel_filename, &entry, NULL, NULL); |
73 | 73 |
} |
74 | 74 |
if (kernel_size < 0) { |
75 |
kernel_size = load_image(kernel_filename,
|
|
76 |
phys_ram_base + KERNEL_LOAD_ADDR);
|
|
75 |
kernel_size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR,
|
|
76 |
ram_size - KERNEL_LOAD_ADDR);
|
|
77 | 77 |
entry = KERNEL_LOAD_ADDR; |
78 | 78 |
} |
79 | 79 |
if (kernel_size < 0) { |
b/hw/armv7m.c | ||
---|---|---|
170 | 170 |
#endif |
171 | 171 |
|
172 | 172 |
/* Flash programming is done via the SCU, so pretend it is ROM. */ |
173 |
cpu_register_physical_memory(0, flash_size, IO_MEM_ROM); |
|
173 |
cpu_register_physical_memory(0, flash_size, |
|
174 |
qemu_ram_alloc(flash_size) | IO_MEM_ROM); |
|
174 | 175 |
cpu_register_physical_memory(0x20000000, sram_size, |
175 |
flash_size + IO_MEM_RAM);
|
|
176 |
qemu_ram_alloc(sram_size) | IO_MEM_RAM);
|
|
176 | 177 |
armv7m_bitband_init(); |
177 | 178 |
|
178 | 179 |
pic = armv7m_nvic_init(env); |
179 | 180 |
|
180 | 181 |
image_size = load_elf(kernel_filename, 0, &entry, &lowaddr, NULL); |
181 | 182 |
if (image_size < 0) { |
182 |
image_size = load_image(kernel_filename, phys_ram_base);
|
|
183 |
image_size = load_image_targphys(kernel_filename, 0, flash_size);
|
|
183 | 184 |
lowaddr = 0; |
184 | 185 |
} |
185 | 186 |
if (image_size < 0) { |
... | ... | |
203 | 204 |
/* Hack to map an additional page of ram at the top of the address |
204 | 205 |
space. This stops qemu complaining about executing code outside RAM |
205 | 206 |
when returning from an exception. */ |
206 |
cpu_register_physical_memory(0xfffff000, 0x1000, IO_MEM_RAM + ram_size); |
|
207 |
cpu_register_physical_memory(0xfffff000, 0x1000, |
|
208 |
qemu_ram_alloc(0x1000) | IO_MEM_RAM); |
|
207 | 209 |
|
208 | 210 |
return pic; |
209 | 211 |
} |
b/hw/axis_dev88.c | ||
---|---|---|
338 | 338 |
bootstrap_pc = entry; |
339 | 339 |
if (kernel_size < 0) { |
340 | 340 |
/* Takes a kimage from the axis devboard SDK. */ |
341 |
kernel_size = load_image(kernel_filename, phys_ram_base + 0x4000); |
|
341 |
kernel_size = load_image_targphys(kernel_filename, 0x40004000, |
|
342 |
ram_size); |
|
342 | 343 |
bootstrap_pc = 0x40004000; |
343 | 344 |
env->regs[9] = 0x40004000 + kernel_size; |
344 | 345 |
} |
b/hw/dummy_m68k.c | ||
---|---|---|
47 | 47 |
kernel_size = load_uimage(kernel_filename, &entry, NULL, NULL); |
48 | 48 |
} |
49 | 49 |
if (kernel_size < 0) { |
50 |
kernel_size = load_image(kernel_filename, |
|
51 |
phys_ram_base + KERNEL_LOAD_ADDR); |
|
50 |
kernel_size = load_image_targphys(kernel_filename, |
|
51 |
KERNEL_LOAD_ADDR, |
|
52 |
ram_size - KERNEL_LOAD_ADDR); |
|
52 | 53 |
entry = KERNEL_LOAD_ADDR; |
53 | 54 |
} |
54 | 55 |
if (kernel_size < 0) { |
b/hw/etraxfs.c | ||
---|---|---|
129 | 129 |
bootstrap_pc = entry; |
130 | 130 |
if (kernel_size < 0) { |
131 | 131 |
/* Takes a kimage from the axis devboard SDK. */ |
132 |
kernel_size = load_image(kernel_filename, phys_ram_base + 0x4000); |
|
132 |
kernel_size = load_image_targphys(kernel_filename, 0x40004000, |
|
133 |
ram_size); |
|
133 | 134 |
bootstrap_pc = 0x40004000; |
134 | 135 |
env->regs[9] = 0x40004000 + kernel_size; |
135 | 136 |
} |
b/hw/mcf5208.c | ||
---|---|---|
220 | 220 |
env->vbr = 0; |
221 | 221 |
/* TODO: Configure BARs. */ |
222 | 222 |
|
223 |
/* DRAM at 0x20000000 */
|
|
223 |
/* DRAM at 0x40000000 */
|
|
224 | 224 |
cpu_register_physical_memory(0x40000000, ram_size, |
225 | 225 |
qemu_ram_alloc(ram_size) | IO_MEM_RAM); |
226 | 226 |
|
... | ... | |
278 | 278 |
kernel_size = load_uimage(kernel_filename, &entry, NULL, NULL); |
279 | 279 |
} |
280 | 280 |
if (kernel_size < 0) { |
281 |
kernel_size = load_image(kernel_filename, phys_ram_base); |
|
282 |
entry = 0x20000000; |
|
281 |
kernel_size = load_image_targphys(kernel_filename, 0x40000000, |
|
282 |
ram_size); |
|
283 |
entry = 0x40000000; |
|
283 | 284 |
} |
284 | 285 |
if (kernel_size < 0) { |
285 | 286 |
fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_filename); |
b/hw/mips_jazz.c | ||
---|---|---|
129 | 129 |
enum jazz_model_e jazz_model) |
130 | 130 |
{ |
131 | 131 |
char buf[1024]; |
132 |
unsigned long bios_offset; |
|
133 | 132 |
int bios_size, n; |
134 | 133 |
CPUState *env; |
135 | 134 |
qemu_irq *rc4030, *i8259; |
... | ... | |
141 | 140 |
PITState *pit; |
142 | 141 |
BlockDriverState *fds[MAX_FD]; |
143 | 142 |
qemu_irq esp_reset; |
143 |
ram_addr_t ram_offset; |
|
144 |
ram_addr_t bios_offset; |
|
145 |
ram_addr_t vga_ram_offset; |
|
144 | 146 |
|
145 | 147 |
/* init CPUs */ |
146 | 148 |
if (cpu_model == NULL) { |
... | ... | |
159 | 161 |
qemu_register_reset(main_cpu_reset, env); |
160 | 162 |
|
161 | 163 |
/* allocate RAM */ |
162 |
cpu_register_physical_memory(0, ram_size, IO_MEM_RAM); |
|
164 |
ram_offset = qemu_ram_alloc(ram_size); |
|
165 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
|
166 |
|
|
167 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
168 |
bios_offset = qemu_ram_alloc(MAGNUM_BIOS_SIZE); |
|
169 |
cpu_register_physical_memory(0x1fc00000LL, |
|
170 |
MAGNUM_BIOS_SIZE, bios_offset | IO_MEM_ROM); |
|
171 |
cpu_register_physical_memory(0xfff00000LL, |
|
172 |
MAGNUM_BIOS_SIZE, bios_offset | IO_MEM_ROM); |
|
163 | 173 |
|
164 | 174 |
/* load the BIOS image. */ |
165 |
bios_offset = ram_size + vga_ram_size; |
|
166 | 175 |
if (bios_name == NULL) |
167 | 176 |
bios_name = BIOS_FILENAME; |
168 | 177 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
169 |
bios_size = load_image(buf, phys_ram_base + bios_offset);
|
|
178 |
bios_size = load_image_targphys(buf, 0xfff00000LL, MAGNUM_BIOS_SIZE);
|
|
170 | 179 |
if (bios_size < 0 || bios_size > MAGNUM_BIOS_SIZE) { |
171 | 180 |
fprintf(stderr, "qemu: Could not load MIPS bios '%s'\n", |
172 | 181 |
buf); |
173 | 182 |
exit(1); |
174 | 183 |
} |
175 | 184 |
|
176 |
cpu_register_physical_memory(0x1fc00000LL, |
|
177 |
MAGNUM_BIOS_SIZE, bios_offset | IO_MEM_ROM); |
|
178 |
cpu_register_physical_memory(0xfff00000LL, |
|
179 |
MAGNUM_BIOS_SIZE, bios_offset | IO_MEM_ROM); |
|
180 |
|
|
181 | 185 |
/* Init CPU internal devices */ |
182 | 186 |
cpu_mips_irq_init_cpu(env); |
183 | 187 |
cpu_mips_clock_init(env); |
... | ... | |
201 | 205 |
/* Video card */ |
202 | 206 |
switch (jazz_model) { |
203 | 207 |
case JAZZ_MAGNUM: |
204 |
g364fb_mm_init(phys_ram_base + ram_size, ram_size, vga_ram_size,
|
|
208 |
g364fb_mm_init(phys_ram_base + vga_ram_offset, ram_size, vga_ram_size,
|
|
205 | 209 |
0x40000000, 0x60000000, 0, rc4030[3]); |
206 | 210 |
break; |
207 | 211 |
case JAZZ_PICA61: |
208 |
isa_vga_mm_init(phys_ram_base + ram_size, ram_size, vga_ram_size,
|
|
212 |
isa_vga_mm_init(phys_ram_base + vga_ram_offset, ram_size, vga_ram_size,
|
|
209 | 213 |
0x40000000, 0x60000000, 0); |
210 | 214 |
break; |
211 | 215 |
default: |
b/hw/mips_malta.c | ||
---|---|---|
717 | 717 |
loaderparams.initrd_filename); |
718 | 718 |
exit(1); |
719 | 719 |
} |
720 |
initrd_size = load_image(loaderparams.initrd_filename, |
|
721 |
phys_ram_base + initrd_offset); |
|
720 |
initrd_size = load_image_targphys(loaderparams.initrd_filename, |
|
721 |
initrd_offset, |
|
722 |
ram_size - initrd_offset); |
|
722 | 723 |
} |
723 | 724 |
if (initrd_size == (target_ulong) -1) { |
724 | 725 |
fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", |
... | ... | |
767 | 768 |
const char *initrd_filename, const char *cpu_model) |
768 | 769 |
{ |
769 | 770 |
char buf[1024]; |
770 |
unsigned long bios_offset; |
|
771 |
ram_addr_t ram_offset; |
|
772 |
ram_addr_t vga_ram_offset; |
|
773 |
ram_addr_t bios_offset; |
|
771 | 774 |
target_long bios_size; |
772 | 775 |
int64_t kernel_entry; |
773 | 776 |
PCIBus *pci_bus; |
... | ... | |
808 | 811 |
((unsigned int)ram_size / (1 << 20))); |
809 | 812 |
exit(1); |
810 | 813 |
} |
811 |
cpu_register_physical_memory(0, ram_size, IO_MEM_RAM); |
|
814 |
ram_offset = qemu_ram_alloc(ram_size); |
|
815 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
816 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
|
817 |
|
|
818 |
|
|
819 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
|
812 | 820 |
|
813 | 821 |
/* Map the bios at two physical locations, as on the real board. */ |
814 |
bios_offset = ram_size + vga_ram_size; |
|
815 | 822 |
cpu_register_physical_memory(0x1e000000LL, |
816 | 823 |
BIOS_SIZE, bios_offset | IO_MEM_ROM); |
817 | 824 |
cpu_register_physical_memory(0x1fc00000LL, |
... | ... | |
851 | 858 |
if (bios_name == NULL) |
852 | 859 |
bios_name = BIOS_FILENAME; |
853 | 860 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
854 |
bios_size = load_image(buf, phys_ram_base + bios_offset);
|
|
861 |
bios_size = load_image_targphys(buf, 0x1fc00000LL, BIOS_SIZE);
|
|
855 | 862 |
if ((bios_size < 0 || bios_size > BIOS_SIZE) && !kernel_filename) { |
856 | 863 |
fprintf(stderr, |
857 | 864 |
"qemu: Could not load MIPS bios '%s', and no -kernel argument was specified\n", |
... | ... | |
942 | 949 |
|
943 | 950 |
/* Optional PCI video card */ |
944 | 951 |
if (cirrus_vga_enabled) { |
945 |
pci_cirrus_vga_init(pci_bus, phys_ram_base + ram_size,
|
|
952 |
pci_cirrus_vga_init(pci_bus, phys_ram_base + vga_ram_offset,
|
|
946 | 953 |
ram_size, vga_ram_size); |
947 | 954 |
} else if (vmsvga_enabled) { |
948 |
pci_vmsvga_init(pci_bus, phys_ram_base + ram_size,
|
|
955 |
pci_vmsvga_init(pci_bus, phys_ram_base + vga_ram_offset,
|
|
949 | 956 |
ram_size, vga_ram_size); |
950 | 957 |
} else if (std_vga_enabled) { |
951 |
pci_vga_init(pci_bus, phys_ram_base + ram_size,
|
|
958 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset,
|
|
952 | 959 |
ram_size, vga_ram_size, 0, 0); |
953 | 960 |
} |
954 | 961 |
} |
b/hw/mips_mipssim.c | ||
---|---|---|
86 | 86 |
loaderparams.initrd_filename); |
87 | 87 |
exit(1); |
88 | 88 |
} |
89 |
initrd_size = load_image(loaderparams.initrd_filename, |
|
90 |
phys_ram_base + initrd_offset);
|
|
89 |
initrd_size = load_image_targphys(loaderparams.initrd_filename,
|
|
90 |
initrd_offset, loaderparams.ram_size - initrd_offset);
|
|
91 | 91 |
} |
92 | 92 |
if (initrd_size == (target_ulong) -1) { |
93 | 93 |
fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", |
... | ... | |
113 | 113 |
const char *initrd_filename, const char *cpu_model) |
114 | 114 |
{ |
115 | 115 |
char buf[1024]; |
116 |
unsigned long bios_offset; |
|
116 |
ram_addr_t ram_offset; |
|
117 |
ram_addr_t bios_offset; |
|
117 | 118 |
CPUState *env; |
118 | 119 |
int bios_size; |
119 | 120 |
|
... | ... | |
133 | 134 |
qemu_register_reset(main_cpu_reset, env); |
134 | 135 |
|
135 | 136 |
/* Allocate RAM. */ |
136 |
cpu_register_physical_memory(0, ram_size, IO_MEM_RAM); |
|
137 |
ram_offset = qemu_ram_alloc(ram_size); |
|
138 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
|
137 | 139 |
|
140 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
|
141 |
|
|
142 |
/* Map the BIOS / boot exception handler. */ |
|
143 |
cpu_register_physical_memory(0x1fc00000LL, |
|
144 |
BIOS_SIZE, bios_offset | IO_MEM_ROM); |
|
138 | 145 |
/* Load a BIOS / boot exception handler image. */ |
139 |
bios_offset = ram_size + vga_ram_size; |
|
140 | 146 |
if (bios_name == NULL) |
141 | 147 |
bios_name = BIOS_FILENAME; |
142 | 148 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
143 |
bios_size = load_image(buf, phys_ram_base + bios_offset);
|
|
149 |
bios_size = load_image_targphys(buf, 0x1fc00000LL, BIOS_SIZE);
|
|
144 | 150 |
if ((bios_size < 0 || bios_size > BIOS_SIZE) && !kernel_filename) { |
145 | 151 |
/* Bail out if we have neither a kernel image nor boot vector code. */ |
146 | 152 |
fprintf(stderr, |
... | ... | |
148 | 154 |
buf); |
149 | 155 |
exit(1); |
150 | 156 |
} else { |
151 |
/* Map the BIOS / boot exception handler. */ |
|
152 |
cpu_register_physical_memory(0x1fc00000LL, |
|
153 |
bios_size, bios_offset | IO_MEM_ROM); |
|
154 | 157 |
/* We have a boot vector start address. */ |
155 | 158 |
env->active_tc.PC = (target_long)(int32_t)0xbfc00000; |
156 | 159 |
} |
b/hw/mips_r4k.c | ||
---|---|---|
107 | 107 |
loaderparams.initrd_filename); |
108 | 108 |
exit(1); |
109 | 109 |
} |
110 |
initrd_size = load_image(loaderparams.initrd_filename, |
|
111 |
phys_ram_base + initrd_offset); |
|
110 |
initrd_size = load_image_targphys(loaderparams.initrd_filename, |
|
111 |
initrd_offset, |
|
112 |
ram_size - initrd_offset); |
|
112 | 113 |
} |
113 | 114 |
if (initrd_size == (target_ulong) -1) { |
114 | 115 |
fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", |
... | ... | |
153 | 154 |
const char *initrd_filename, const char *cpu_model) |
154 | 155 |
{ |
155 | 156 |
char buf[1024]; |
156 |
unsigned long bios_offset; |
|
157 |
ram_addr_t ram_offset; |
|
158 |
ram_addr_t vga_ram_offset; |
|
159 |
ram_addr_t bios_offset; |
|
157 | 160 |
int bios_size; |
158 | 161 |
CPUState *env; |
159 | 162 |
RTCState *rtc_state; |
... | ... | |
184 | 187 |
((unsigned int)ram_size / (1 << 20))); |
185 | 188 |
exit(1); |
186 | 189 |
} |
187 |
cpu_register_physical_memory(0, ram_size, IO_MEM_RAM); |
|
190 |
ram_offset = qemu_ram_alloc(ram_size); |
|
191 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
192 |
|
|
193 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
|
188 | 194 |
|
189 | 195 |
if (!mips_qemu_iomemtype) { |
190 | 196 |
mips_qemu_iomemtype = cpu_register_io_memory(0, mips_qemu_read, |
... | ... | |
196 | 202 |
but initialize the hardware ourselves. When a kernel gets |
197 | 203 |
preloaded we also initialize the hardware, since the BIOS wasn't |
198 | 204 |
run. */ |
199 |
bios_offset = ram_size + vga_ram_size; |
|
200 | 205 |
if (bios_name == NULL) |
201 | 206 |
bios_name = BIOS_FILENAME; |
202 | 207 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
203 |
bios_size = load_image(buf, phys_ram_base + bios_offset);
|
|
208 |
bios_size = get_image_size(buf);
|
|
204 | 209 |
if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) { |
205 |
cpu_register_physical_memory(0x1fc00000, |
|
206 |
BIOS_SIZE, bios_offset | IO_MEM_ROM); |
|
210 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
|
211 |
cpu_register_physical_memory(0x1fc00000, BIOS_SIZE, |
|
212 |
bios_offset | IO_MEM_ROM); |
|
213 |
|
|
214 |
load_image_targphys(buf, 0x1fc00000, BIOS_SIZE); |
|
207 | 215 |
} else if ((index = drive_get_index(IF_PFLASH, 0, 0)) > -1) { |
208 | 216 |
uint32_t mips_rom = 0x00400000; |
209 |
cpu_register_physical_memory(0x1fc00000, mips_rom, |
|
210 |
qemu_ram_alloc(mips_rom) | IO_MEM_ROM); |
|
211 |
if (!pflash_cfi01_register(0x1fc00000, qemu_ram_alloc(mips_rom), |
|
217 |
bios_offset = qemu_ram_alloc(mips_rom); |
|
218 |
if (!pflash_cfi01_register(0x1fc00000, bios_offset, |
|
212 | 219 |
drives_table[index].bdrv, sector_len, mips_rom / sector_len, |
213 | 220 |
4, 0, 0, 0, 0)) { |
214 | 221 |
fprintf(stderr, "qemu: Error registering flash memory.\n"); |
... | ... | |
250 | 257 |
} |
251 | 258 |
} |
252 | 259 |
|
253 |
isa_vga_init(phys_ram_base + ram_size, ram_size,
|
|
260 |
isa_vga_init(phys_ram_base + vga_ram_offset, ram_size,
|
|
254 | 261 |
vga_ram_size); |
255 | 262 |
|
256 | 263 |
if (nd_table[0].vlan) |
b/hw/nseries.c | ||
---|---|---|
1341 | 1341 |
} |
1342 | 1342 |
|
1343 | 1343 |
if (option_rom[0] && (boot_device[0] == 'n' || !kernel_filename)) { |
1344 |
int rom_size; |
|
1344 | 1345 |
/* No, wait, better start at the ROM. */ |
1345 | 1346 |
s->cpu->env->regs[15] = OMAP2_Q2_BASE + 0x400000; |
1346 | 1347 |
|
... | ... | |
1353 | 1354 |
* |
1354 | 1355 |
* The code above is for loading the `zImage' file from Nokia |
1355 | 1356 |
* images. */ |
1356 |
printf("%i bytes of image loaded\n", load_image(option_rom[0], |
|
1357 |
phys_ram_base + 0x400000)); |
|
1357 |
rom_size = load_image_targphys(option_rom[0], |
|
1358 |
OMAP2_Q2_BASE + 0x400000, |
|
1359 |
sdram_size - 0x400000); |
|
1360 |
printf("%i bytes of image loaded\n", rom_size); |
|
1358 | 1361 |
|
1359 | 1362 |
n800_setup_nolo_tags(phys_ram_base + sdram_size); |
1360 | 1363 |
} |
b/hw/palm.c | ||
---|---|---|
247 | 247 |
/* Setup initial (reset) machine state */ |
248 | 248 |
if (nb_option_roms) { |
249 | 249 |
rom_size = get_image_size(option_rom[0]); |
250 |
if (rom_size > flash_size) |
|
250 |
if (rom_size > flash_size) {
|
|
251 | 251 |
fprintf(stderr, "%s: ROM image too big (%x > %x)\n", |
252 | 252 |
__FUNCTION__, rom_size, flash_size); |
253 |
else if (rom_size > 0 && load_image(option_rom[0], |
|
254 |
phys_ram_base + phys_flash) > 0) { |
|
253 |
rom_size = 0; |
|
254 |
} |
|
255 |
if (rom_size > 0) { |
|
256 |
rom_size = load_image_targphys(option_rom[0], OMAP_CS0_BASE, |
|
257 |
flash_size); |
|
255 | 258 |
rom_loaded = 1; |
256 | 259 |
cpu->env->regs[15] = 0x00000000; |
257 |
} else |
|
260 |
} |
|
261 |
if (rom_size < 0) { |
|
258 | 262 |
fprintf(stderr, "%s: error loading '%s'\n", |
259 | 263 |
__FUNCTION__, option_rom[0]); |
264 |
} |
|
260 | 265 |
} |
261 | 266 |
|
262 | 267 |
if (!rom_loaded && !kernel_filename) { |
b/hw/ppc440_bamboo.c | ||
---|---|---|
148 | 148 |
/* Load initrd. */ |
149 | 149 |
if (initrd_filename) { |
150 | 150 |
initrd_base = kernel_size + loadaddr; |
151 |
initrd_size = load_image(initrd_filename, phys_ram_base + initrd_base); |
|
151 |
initrd_size = load_image_targphys(initrd_filename, initrd_base, |
|
152 |
ram_size - initrd_base); |
|
152 | 153 |
|
153 | 154 |
if (initrd_size < 0) { |
154 | 155 |
fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", |
b/hw/ppc_oldworld.c | ||
---|---|---|
231 | 231 |
/* load initrd */ |
232 | 232 |
if (initrd_filename) { |
233 | 233 |
initrd_base = INITRD_LOAD_ADDR; |
234 |
initrd_size = load_image(initrd_filename,
|
|
235 |
phys_ram_base + initrd_base);
|
|
234 |
initrd_size = load_image_targphys(initrd_filename, initrd_base,
|
|
235 |
ram_size - initrd_base);
|
|
236 | 236 |
if (initrd_size < 0) { |
237 | 237 |
cpu_abort(env, "qemu: could not load initial ram disk '%s'\n", |
238 | 238 |
initrd_filename); |
b/hw/ppc_prep.c | ||
---|---|---|
588 | 588 |
if (bios_name == NULL) |
589 | 589 |
bios_name = BIOS_FILENAME; |
590 | 590 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
591 |
bios_size = load_image(buf, phys_ram_base + bios_offset); |
|
591 |
bios_size = get_image_size(buf); |
|
592 |
if (bios_size > 0 && bios_size <= BIOS_SIZE) { |
|
593 |
target_phys_addr_t bios_addr; |
|
594 |
bios_size = (bios_size + 0xfff) & ~0xfff; |
|
595 |
bios_addr = (uint32_t)(-bios_size); |
|
596 |
cpu_register_physical_memory(bios_addr, bios_size, |
|
597 |
bios_offset | IO_MEM_ROM); |
|
598 |
bios_size = load_image_targphys(buf, bios_addr, bios_size); |
|
599 |
} |
|
592 | 600 |
if (bios_size < 0 || bios_size > BIOS_SIZE) { |
593 | 601 |
cpu_abort(env, "qemu: could not load PPC PREP bios '%s'\n", buf); |
594 | 602 |
exit(1); |
... | ... | |
596 | 604 |
if (env->nip < 0xFFF80000 && bios_size < 0x00100000) { |
597 | 605 |
cpu_abort(env, "PowerPC 601 / 620 / 970 need a 1MB BIOS\n"); |
598 | 606 |
} |
599 |
bios_size = (bios_size + 0xfff) & ~0xfff; |
|
600 |
cpu_register_physical_memory((uint32_t)(-bios_size), |
|
601 |
bios_size, bios_offset | IO_MEM_ROM); |
|
602 | 607 |
|
603 | 608 |
if (linux_boot) { |
604 | 609 |
kernel_base = KERNEL_LOAD_ADDR; |
605 | 610 |
/* now we can load the kernel */ |
606 |
kernel_size = load_image(kernel_filename, phys_ram_base + kernel_base); |
|
611 |
kernel_size = load_image_targphys(kernel_filename, kernel_base, |
|
612 |
ram_size - kernel_base); |
|
607 | 613 |
if (kernel_size < 0) { |
608 | 614 |
cpu_abort(env, "qemu: could not load kernel '%s'\n", |
609 | 615 |
kernel_filename); |
... | ... | |
612 | 618 |
/* load initrd */ |
613 | 619 |
if (initrd_filename) { |
614 | 620 |
initrd_base = INITRD_LOAD_ADDR; |
615 |
initrd_size = load_image(initrd_filename,
|
|
616 |
phys_ram_base + initrd_base);
|
|
621 |
initrd_size = load_image_targphys(initrd_filename, initrd_base,
|
|
622 |
ram_size - initrd_base);
|
|
617 | 623 |
if (initrd_size < 0) { |
618 | 624 |
cpu_abort(env, "qemu: could not load initial ram disk '%s'\n", |
619 | 625 |
initrd_filename); |
b/hw/shix.c | ||
---|---|---|
73 | 73 |
if (bios_name == NULL) |
74 | 74 |
bios_name = BIOS_FILENAME; |
75 | 75 |
printf("%s: load BIOS '%s'\n", __func__, bios_name); |
76 |
ret = load_image(bios_name, phys_ram_base);
|
|
76 |
ret = load_image_targphys(bios_name, 0, 0x4000);
|
|
77 | 77 |
if (ret < 0) { /* Check bios size */ |
78 | 78 |
fprintf(stderr, "ret=%d\n", ret); |
79 | 79 |
fprintf(stderr, "qemu: could not load SHIX bios '%s'\n", |
Also available in: Unified diff