diff --git a/hw/pc.c b/hw/pc.c index eef120e0ee..788854b293 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -396,8 +396,18 @@ void pc_init(int ram_size, int vga_ram_size, int boot_device, register_ioport_write(0xf0, 1, 1, ioportF0_write, NULL); - vga_initialize(ds, phys_ram_base + ram_size, ram_size, - vga_ram_size, pci_enabled); + if (cirrus_vga_enabled) { + if (pci_enabled) { + pci_cirrus_vga_init(ds, phys_ram_base + ram_size, ram_size, + vga_ram_size); + } else { + isa_cirrus_vga_init(ds, phys_ram_base + ram_size, ram_size, + vga_ram_size); + } + } else { + vga_initialize(ds, phys_ram_base + ram_size, ram_size, + vga_ram_size, pci_enabled); + } rtc_state = rtc_init(0x70, 8); register_ioport_read(0x61, 1, 1, speaker_ioport_read, NULL); diff --git a/vl.c b/vl.c index b424ed11ef..cdebcc2035 100644 --- a/vl.c +++ b/vl.c @@ -130,6 +130,7 @@ int audio_enabled = 0; int pci_enabled = 0; int prep_enabled = 0; int rtc_utc = 1; +int cirrus_vga_enabled = 0; /***********************************************************/ /* x86 ISA bus support */ @@ -2053,6 +2054,7 @@ enum { QEMU_OPTION_pci, QEMU_OPTION_prep, QEMU_OPTION_localtime, + QEMU_OPTION_cirrusvga, }; typedef struct QEMUOption { @@ -2097,13 +2099,14 @@ const QEMUOption qemu_options[] = { { "hdachs", HAS_ARG, QEMU_OPTION_hdachs }, { "L", HAS_ARG, QEMU_OPTION_L }, { "no-code-copy", 0, QEMU_OPTION_no_code_copy }, - - /* temporary options */ - { "pci", 0, QEMU_OPTION_pci }, #ifdef TARGET_PPC { "prep", 0, QEMU_OPTION_prep }, #endif { "localtime", 0, QEMU_OPTION_localtime }, + + /* temporary options */ + { "pci", 0, QEMU_OPTION_pci }, + { "cirrusvga", 0, QEMU_OPTION_cirrusvga }, { NULL }, }; @@ -2383,6 +2386,9 @@ int main(int argc, char **argv) case QEMU_OPTION_localtime: rtc_utc = 0; break; + case QEMU_OPTION_cirrusvga: + cirrus_vga_enabled = 1; + break; } } } diff --git a/vl.h b/vl.h index 1b5c3cfd48..fc16f47c65 100644 --- a/vl.h +++ b/vl.h @@ -171,6 +171,7 @@ extern int audio_enabled; extern int ram_size; extern int bios_size; extern int rtc_utc; +extern int cirrus_vga_enabled; /* XXX: make it dynamic */ #if defined (TARGET_PPC)