summaryrefslogtreecommitdiffstats
path: root/hw/mips_jazz.c
diff options
context:
space:
mode:
authorHervé Poussineau2011-08-26 21:20:12 +0200
committerBlue Swirl2011-08-27 19:03:30 +0200
commit97a3f6ffbba66250d9a6f1ba7f8444f6bb8c6676 (patch)
tree92a2a8ae997236cb3ef7acc9ea30ec930f4802d8 /hw/mips_jazz.c
parentg364fb: use trace framework (diff)
downloadqemu-97a3f6ffbba66250d9a6f1ba7f8444f6bb8c6676.tar.gz
qemu-97a3f6ffbba66250d9a6f1ba7f8444f6bb8c6676.tar.xz
qemu-97a3f6ffbba66250d9a6f1ba7f8444f6bb8c6676.zip
g364fb: convert to qdev
Extract G364 ROM contents from device emulation to machine emulation, so device emulation can be reused in other machines (Commodore Amiga) Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/mips_jazz.c')
-rw-r--r--hw/mips_jazz.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index 84ce0613a3..f3c9f93204 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -195,7 +195,20 @@ void mips_jazz_init (ram_addr_t ram_size,
/* Video card */
switch (jazz_model) {
case JAZZ_MAGNUM:
- g364fb_mm_init(0x40000000, 0x60000000, 0, rc4030[3]);
+ dev = qdev_create(NULL, "sysbus-g364");
+ qdev_init_nofail(dev);
+ sysbus = sysbus_from_qdev(dev);
+ sysbus_mmio_map(sysbus, 0, 0x60080000);
+ sysbus_mmio_map(sysbus, 1, 0x40000000);
+ sysbus_connect_irq(sysbus, 0, rc4030[3]);
+ {
+ /* Simple ROM, so user doesn't have to provide one */
+ ram_addr_t rom_offset = qemu_ram_alloc(NULL, "g364fb.rom", 0x80000);
+ uint8_t *rom = qemu_get_ram_ptr(rom_offset);
+ cpu_register_physical_memory(0x60000000, 0x80000,
+ rom_offset | IO_MEM_ROM);
+ rom[0] = 0x10; /* Mips G364 */
+ }
break;
case JAZZ_PICA61:
isa_vga_mm_init(0x40000000, 0x60000000, 0, get_system_memory());