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