diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-12-24 20:23:51 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-12-24 20:23:51 +0000 |
commit | 992e5acd4d0c08d397c39c80acc8203fd394bd9c (patch) | |
tree | 929d43423e820bce59861e9bd20870136ae91f2e | |
parent | fe09612978318b456558826ef2635ce914eb00b6 (diff) |
Use OpenBIOS for g3bw machine
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6128 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | hw/ppc_mac.h | 2 | ||||
-rw-r--r-- | hw/ppc_oldworld.c | 13 | ||||
-rw-r--r-- | qemu-doc.texi | 5 |
3 files changed, 12 insertions, 8 deletions
diff --git a/hw/ppc_mac.h b/hw/ppc_mac.h index 3a26cdef99..c833d1758f 100644 --- a/hw/ppc_mac.h +++ b/hw/ppc_mac.h @@ -31,6 +31,8 @@ #define BIOS_FILENAME "ppc_rom.bin" #define VGABIOS_FILENAME "video.x" #define NVRAM_SIZE 0x2000 +#define PROM_FILENAME "openbios-ppc32" +#define PROM_ADDR 0xfff00000 #define KERNEL_LOAD_ADDR 0x01000000 #define INITRD_LOAD_ADDR 0x01800000 diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index c8ef97a58c..9d922be57a 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -164,19 +164,16 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, /* allocate and load BIOS */ bios_offset = qemu_ram_alloc(BIOS_SIZE); if (bios_name == NULL) - bios_name = BIOS_FILENAME; + bios_name = PROM_FILENAME; snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); - bios_size = load_image(buf, phys_ram_base + bios_offset); + cpu_register_physical_memory(PROM_ADDR, BIOS_SIZE, bios_offset | IO_MEM_ROM); + + /* Load OpenBIOS (ELF) */ + bios_size = load_elf(buf, 0, NULL, NULL, NULL); if (bios_size < 0 || bios_size > BIOS_SIZE) { cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf); exit(1); } - if (bios_size > 0x00080000) { - /* As the NVRAM is located at 0xFFF04000, we cannot use 1 MB BIOSes */ - cpu_abort(env, "G3BW Mac hardware can not handle 1 MB BIOS\n"); - } - cpu_register_physical_memory((uint32_t)(-bios_size), - bios_size, bios_offset | IO_MEM_ROM); /* allocate and load VGA BIOS */ vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE); diff --git a/qemu-doc.texi b/qemu-doc.texi index 698e0d57bc..7156b2db2d 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -2328,6 +2328,11 @@ PC compatible keyboard and mouse. QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at @url{http://perso.magic.fr/l_indien/OpenHackWare/index.htm}. +Since version 0.9.1, QEMU uses OpenBIOS @url{http://www.openbios.org/} +for the g3bw PowerMac machine. OpenBIOS is a free (GPL v2) portable +firmware implementation. The goal is to implement a 100% IEEE +1275-1994 (referred to as Open Firmware) compliant firmware. + @c man begin OPTIONS The following options are specific to the PowerPC emulation: |