Revision b3783731 hw/sun4u.c
b/hw/sun4u.c | ||
---|---|---|
27 | 27 |
#define KERNEL_LOAD_ADDR 0x00404000 |
28 | 28 |
#define CMDLINE_ADDR 0x003ff000 |
29 | 29 |
#define INITRD_LOAD_ADDR 0x00300000 |
30 |
#define PROM_SIZE_MAX (256 * 1024) |
|
30 | 31 |
#define PROM_ADDR 0x1fff0000000ULL |
31 | 32 |
#define APB_SPECIAL_BASE 0x1fe00000000ULL |
32 | 33 |
#define APB_MEM_BASE 0x1ff00000000ULL |
... | ... | |
277 | 278 |
cpu_register_physical_memory(0, ram_size, 0); |
278 | 279 |
|
279 | 280 |
prom_offset = ram_size + vga_ram_size; |
281 |
cpu_register_physical_memory(PROM_ADDR, |
|
282 |
(PROM_SIZE_MAX + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK, |
|
283 |
prom_offset | IO_MEM_ROM); |
|
280 | 284 |
|
281 | 285 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEE); |
282 |
ret = load_elf(buf, phys_ram_base + prom_offset);
|
|
286 |
ret = load_elf(buf, 0);
|
|
283 | 287 |
if (ret < 0) { |
284 | 288 |
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEB); |
285 | 289 |
ret = load_image(buf, phys_ram_base + prom_offset); |
... | ... | |
289 | 293 |
buf); |
290 | 294 |
exit(1); |
291 | 295 |
} |
292 |
cpu_register_physical_memory(PROM_ADDR, (ret + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK, |
|
293 |
prom_offset | IO_MEM_ROM); |
|
294 | 296 |
|
295 | 297 |
kernel_size = 0; |
296 | 298 |
initrd_size = 0; |
297 | 299 |
if (linux_boot) { |
298 |
kernel_size = load_elf(kernel_filename, phys_ram_base + KERNEL_LOAD_ADDR); |
|
300 |
/* XXX: put correct offset */ |
|
301 |
kernel_size = load_elf(kernel_filename, 0); |
|
299 | 302 |
if (kernel_size < 0) |
300 | 303 |
kernel_size = load_aout(kernel_filename, phys_ram_base + KERNEL_LOAD_ADDR); |
301 | 304 |
if (kernel_size < 0) |
Also available in: Unified diff