Commit aa6ad6fee28653943bb2ce2f48d7ed61c4d6d603

Authored by blueswir1
1 parent 12de9a39

Support for loading a real BIOS image (Robert Reif)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3336 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 7 additions and 5 deletions
hw/sun4m.c
... ... @@ -49,7 +49,7 @@
49 49 #define KERNEL_LOAD_ADDR 0x00004000
50 50 #define CMDLINE_ADDR 0x007ff000
51 51 #define INITRD_LOAD_ADDR 0x00800000
52   -#define PROM_SIZE_MAX (256 * 1024)
  52 +#define PROM_SIZE_MAX (512 * 1024)
53 53 #define PROM_PADDR 0xff0000000ULL
54 54 #define PROM_VADDR 0xffd00000
55 55 #define PROM_FILENAME "openbios-sparc32"
... ... @@ -434,10 +434,12 @@ static void sun4m_load_kernel(long vram_size, int RAM_size, int boot_device,
434 434 bios_name = PROM_FILENAME;
435 435 snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
436 436 ret = load_elf(buf, PROM_PADDR - PROM_VADDR, NULL, NULL, NULL);
437   - if (ret < 0) {
438   - fprintf(stderr, "qemu: could not load prom '%s'\n",
439   - buf);
440   - exit(1);
  437 + if (ret < 0 || ret > PROM_SIZE_MAX)
  438 + ret = load_image(buf, phys_ram_base + prom_offset);
  439 + if (ret < 0 || ret > PROM_SIZE_MAX) {
  440 + fprintf(stderr, "qemu: could not load prom '%s'\n",
  441 + buf);
  442 + exit(1);
441 443 }
442 444  
443 445 kernel_size = 0;
... ...