-cirrusvga option
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 5 Jun 2004 13:46:47 +0000 (13:46 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 5 Jun 2004 13:46:47 +0000 (13:46 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@897 c046a42c-6fe2-441c-8c8c-71466251a162

hw/pc.c
vl.c
vl.h

diff --git a/hw/pc.c b/hw/pc.c
index eef120e..788854b 100644 (file)
--- 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 b424ed1..cdebcc2 100644 (file)
--- 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 1b5c3cf..fc16f47 100644 (file)
--- 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)