Commit 992e5acd4d0c08d397c39c80acc8203fd394bd9c

Authored by blueswir1
1 parent fe096129

Use OpenBIOS for g3bw machine

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6128 c046a42c-6fe2-441c-8c8c-71466251a162
hw/ppc_mac.h
@@ -31,6 +31,8 @@ @@ -31,6 +31,8 @@
31 #define BIOS_FILENAME "ppc_rom.bin" 31 #define BIOS_FILENAME "ppc_rom.bin"
32 #define VGABIOS_FILENAME "video.x" 32 #define VGABIOS_FILENAME "video.x"
33 #define NVRAM_SIZE 0x2000 33 #define NVRAM_SIZE 0x2000
  34 +#define PROM_FILENAME "openbios-ppc32"
  35 +#define PROM_ADDR 0xfff00000
34 36
35 #define KERNEL_LOAD_ADDR 0x01000000 37 #define KERNEL_LOAD_ADDR 0x01000000
36 #define INITRD_LOAD_ADDR 0x01800000 38 #define INITRD_LOAD_ADDR 0x01800000
hw/ppc_oldworld.c
@@ -164,19 +164,16 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, @@ -164,19 +164,16 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
164 /* allocate and load BIOS */ 164 /* allocate and load BIOS */
165 bios_offset = qemu_ram_alloc(BIOS_SIZE); 165 bios_offset = qemu_ram_alloc(BIOS_SIZE);
166 if (bios_name == NULL) 166 if (bios_name == NULL)
167 - bios_name = BIOS_FILENAME; 167 + bios_name = PROM_FILENAME;
168 snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); 168 snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
169 - bios_size = load_image(buf, phys_ram_base + bios_offset); 169 + cpu_register_physical_memory(PROM_ADDR, BIOS_SIZE, bios_offset | IO_MEM_ROM);
  170 +
  171 + /* Load OpenBIOS (ELF) */
  172 + bios_size = load_elf(buf, 0, NULL, NULL, NULL);
170 if (bios_size < 0 || bios_size > BIOS_SIZE) { 173 if (bios_size < 0 || bios_size > BIOS_SIZE) {
171 cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf); 174 cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf);
172 exit(1); 175 exit(1);
173 } 176 }
174 - if (bios_size > 0x00080000) {  
175 - /* As the NVRAM is located at 0xFFF04000, we cannot use 1 MB BIOSes */  
176 - cpu_abort(env, "G3BW Mac hardware can not handle 1 MB BIOS\n");  
177 - }  
178 - cpu_register_physical_memory((uint32_t)(-bios_size),  
179 - bios_size, bios_offset | IO_MEM_ROM);  
180 177
181 /* allocate and load VGA BIOS */ 178 /* allocate and load VGA BIOS */
182 vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE); 179 vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE);
qemu-doc.texi
@@ -2328,6 +2328,11 @@ PC compatible keyboard and mouse. @@ -2328,6 +2328,11 @@ PC compatible keyboard and mouse.
2328 QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at 2328 QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at
2329 @url{http://perso.magic.fr/l_indien/OpenHackWare/index.htm}. 2329 @url{http://perso.magic.fr/l_indien/OpenHackWare/index.htm}.
2330 2330
  2331 +Since version 0.9.1, QEMU uses OpenBIOS @url{http://www.openbios.org/}
  2332 +for the g3bw PowerMac machine. OpenBIOS is a free (GPL v2) portable
  2333 +firmware implementation. The goal is to implement a 100% IEEE
  2334 +1275-1994 (referred to as Open Firmware) compliant firmware.
  2335 +
2331 @c man begin OPTIONS 2336 @c man begin OPTIONS
2332 2337
2333 The following options are specific to the PowerPC emulation: 2338 The following options are specific to the PowerPC emulation: