Commit 006f3a48e0793caae62c002636c9cd0c5334ae24
1 parent
aa71cf80
Switch Mac99 to OpenBIOS
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6560 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
17 additions
and
16 deletions
hw/ppc_newworld.c
... | ... | @@ -32,10 +32,12 @@ |
32 | 32 | #include "net.h" |
33 | 33 | #include "sysemu.h" |
34 | 34 | #include "boards.h" |
35 | +#include "fw_cfg.h" | |
35 | 36 | #include "escc.h" |
36 | 37 | |
37 | 38 | #define MAX_IDE_BUS 2 |
38 | 39 | #define VGA_BIOS_SIZE 65536 |
40 | +#define CFG_ADDR 0xf0000510 | |
39 | 41 | |
40 | 42 | /* debug UniNorth */ |
41 | 43 | //#define DEBUG_UNIN |
... | ... | @@ -103,6 +105,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, |
103 | 105 | int ppc_boot_device; |
104 | 106 | int index; |
105 | 107 | BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; |
108 | + void *fw_cfg; | |
106 | 109 | void *dbdma; |
107 | 110 | |
108 | 111 | linux_boot = (kernel_filename != NULL); |
... | ... | @@ -135,20 +138,16 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, |
135 | 138 | /* allocate and load BIOS */ |
136 | 139 | bios_offset = qemu_ram_alloc(BIOS_SIZE); |
137 | 140 | if (bios_name == NULL) |
138 | - bios_name = BIOS_FILENAME; | |
141 | + bios_name = PROM_FILENAME; | |
139 | 142 | snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name); |
140 | - bios_size = load_image(buf, phys_ram_base + bios_offset); | |
143 | + cpu_register_physical_memory(PROM_ADDR, BIOS_SIZE, bios_offset | IO_MEM_ROM); | |
144 | + | |
145 | + /* Load OpenBIOS (ELF) */ | |
146 | + bios_size = load_elf(buf, 0, NULL, NULL, NULL); | |
141 | 147 | if (bios_size < 0 || bios_size > BIOS_SIZE) { |
142 | 148 | cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf); |
143 | 149 | exit(1); |
144 | 150 | } |
145 | - bios_size = (bios_size + 0xfff) & ~0xfff; | |
146 | - if (bios_size > 0x00080000) { | |
147 | - /* As the NVRAM is located at 0xFFF04000, we cannot use 1 MB BIOSes */ | |
148 | - cpu_abort(env, "Mac99 hardware can not handle 1 MB BIOS\n"); | |
149 | - } | |
150 | - cpu_register_physical_memory((uint32_t)(-bios_size), | |
151 | - bios_size, bios_offset | IO_MEM_ROM); | |
152 | 151 | |
153 | 152 | /* allocate and load VGA BIOS */ |
154 | 153 | vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE); |
... | ... | @@ -337,8 +336,10 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, |
337 | 336 | graphic_width, graphic_height, graphic_depth); |
338 | 337 | /* No PCI init: the BIOS will do it */ |
339 | 338 | |
340 | - /* Special port to get debug messages from Open-Firmware */ | |
341 | - register_ioport_write(0x0F00, 4, 1, &PPC_debug_write, NULL); | |
339 | + fw_cfg = fw_cfg_init(0, 0, CFG_ADDR, CFG_ADDR + 2); | |
340 | + fw_cfg_add_i32(fw_cfg, FW_CFG_ID, 1); | |
341 | + fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); | |
342 | + fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, ARCH_MAC99); | |
342 | 343 | } |
343 | 344 | |
344 | 345 | QEMUMachine core99_machine = { | ... | ... |
pc-bios/README
... | ... | @@ -42,7 +42,7 @@ |
42 | 42 | firmware implementation. The goal is to implement a 100% IEEE |
43 | 43 | 1275-1994 (referred to as Open Firmware) compliant firmware. |
44 | 44 | The included Sparc32 and Sparc64 images are built from SVN revision 395. |
45 | - The included PowerPC image is built from SVN revision 418. | |
45 | + The included PowerPC image is built from SVN revision 450. | |
46 | 46 | |
47 | 47 | - The PXE roms come from Rom-o-Matic etherboot 5.4.2. |
48 | 48 | pcnet32:pcnet32 -- [0x1022,0x2000] | ... | ... |
pc-bios/openbios-ppc
No preview for this file type
qemu-doc.texi
... | ... | @@ -2433,7 +2433,7 @@ QEMU emulates the following PowerMac peripherals: |
2433 | 2433 | |
2434 | 2434 | @itemize @minus |
2435 | 2435 | @item |
2436 | -UniNorth PCI Bridge | |
2436 | +UniNorth or Grackle PCI Bridge | |
2437 | 2437 | @item |
2438 | 2438 | PCI VGA compatible card with VESA Bochs Extensions |
2439 | 2439 | @item |
... | ... | @@ -2471,9 +2471,9 @@ QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at |
2471 | 2471 | @url{http://perso.magic.fr/l_indien/OpenHackWare/index.htm}. |
2472 | 2472 | |
2473 | 2473 | Since version 0.9.1, QEMU uses OpenBIOS @url{http://www.openbios.org/} |
2474 | -for the g3beige PowerMac machine. OpenBIOS is a free (GPL v2) portable | |
2475 | -firmware implementation. The goal is to implement a 100% IEEE | |
2476 | -1275-1994 (referred to as Open Firmware) compliant firmware. | |
2474 | +for the g3beige and mac99 PowerMac machines. OpenBIOS is a free (GPL | |
2475 | +v2) portable firmware implementation. The goal is to implement a 100% | |
2476 | +IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. | |
2477 | 2477 | |
2478 | 2478 | @c man begin OPTIONS |
2479 | 2479 | ... | ... |