cryptospore / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone
9ae3a8
From 9010afecdea6872235b1692c4ee5f04cca2dbcf2 Mon Sep 17 00:00:00 2001
9ae3a8
From: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
Date: Wed, 31 Jul 2013 08:02:14 +0200
9ae3a8
Subject: pc: Add machine type "rhel6.0.0"
9ae3a8
9ae3a8
Message-id: <1375201922-6794-3-git-send-email-armbru@redhat.com>
9ae3a8
Patchwork-id: 52821
9ae3a8
O-Subject: [RHEL-7 PATCH v3 02/15] pc: Add machine type "rhel6.0.0"
9ae3a8
Bugzilla: 983991
9ae3a8
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
9ae3a8
RH-Acked-by: Bandan Das <bsd@redhat.com>
9ae3a8
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
9ae3a8
Make it a copy of upstream's pc-0.12 type.  Change name and desc.
9ae3a8
Collect the scattered compat_props in one place (no functional
9ae3a8
change).  Copy the init function.
9ae3a8
9ae3a8
The next few commits will morph compat_props and init function from
9ae3a8
"same as upstream's pc-0.12" into "compatible with RHEL-6's
9ae3a8
rhel6.0.0".
9ae3a8
9ae3a8
Signed-off-by: Markus Armbruster <armbru@redhat.com>
9ae3a8
9ae3a8
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
9ae3a8
index 070a50d..bdb1b11 100644
9ae3a8
--- a/hw/i386/pc_piix.c
9ae3a8
+++ b/hw/i386/pc_piix.c
9ae3a8
@@ -777,9 +777,252 @@ static QEMUMachine pc_machine_rhel700 = {
9ae3a8
     DEFAULT_MACHINE_OPTIONS,
9ae3a8
 };
9ae3a8
 
9ae3a8
+#define PC_RHEL6_0_COMPAT \
9ae3a8
+    {\
9ae3a8
+        .driver   = "Conroe-" TYPE_X86_CPU,\
9ae3a8
+        .property = "model",\
9ae3a8
+        .value    = stringify(2),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "Conroe-" TYPE_X86_CPU,\
9ae3a8
+        .property = "level",\
9ae3a8
+        .value    = stringify(2),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "Penryn-" TYPE_X86_CPU,\
9ae3a8
+        .property = "model",\
9ae3a8
+        .value    = stringify(2),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "Penryn-" TYPE_X86_CPU,\
9ae3a8
+        .property = "level",\
9ae3a8
+        .value    = stringify(2),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "Nehalem-" TYPE_X86_CPU,\
9ae3a8
+        .property = "model",\
9ae3a8
+        .value    = stringify(2),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "Nehalem-" TYPE_X86_CPU,\
9ae3a8
+        .property = "level",\
9ae3a8
+        .value    = stringify(2),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "scsi-hd",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "scsi-cd",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "scsi-disk",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "ide-hd",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "ide-cd",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "ide-drive",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-blk-pci",\
9ae3a8
+        .property = "discard_granularity",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-serial-pci",\
9ae3a8
+        .property = "vectors",\
9ae3a8
+        /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string */\
9ae3a8
+        .value    = stringify(0xFFFFFFFF),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "e1000",\
9ae3a8
+        .property = "romfile",\
9ae3a8
+        .value    = "pxe-e1000.rom",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "ne2k_pci",\
9ae3a8
+        .property = "romfile",\
9ae3a8
+        .value    = "pxe-ne2k_pci.rom",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "pcnet",\
9ae3a8
+        .property = "romfile",\
9ae3a8
+        .value    = "pxe-pcnet.rom",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "rtl8139",\
9ae3a8
+        .property = "romfile",\
9ae3a8
+        .value    = "pxe-rtl8139.rom",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-net-pci",\
9ae3a8
+        .property = "romfile",\
9ae3a8
+        .value    = "pxe-virtio.rom",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "486-" TYPE_X86_CPU,\
9ae3a8
+        .property = "model",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "usb-tablet",\
9ae3a8
+        .property = "usb_version",\
9ae3a8
+        .value    = stringify(1),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-net-pci",\
9ae3a8
+        .property = "ctrl_mac_addr",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-net-pci",\
9ae3a8
+        .property = "mq",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "e1000",\
9ae3a8
+        .property = "autonegotiation",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "nec-usb-xhci",\
9ae3a8
+        .property = "msi",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "nec-usb-xhci",\
9ae3a8
+        .property = "msix",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "ivshmem",\
9ae3a8
+        .property = "use64",\
9ae3a8
+        .value    = "0",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "qxl",\
9ae3a8
+        .property = "revision",\
9ae3a8
+        .value    = stringify(3),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "qxl-vga",\
9ae3a8
+        .property = "revision",\
9ae3a8
+        .value    = stringify(3),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "VGA",\
9ae3a8
+        .property = "mmio",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-scsi-pci",\
9ae3a8
+        .property = "hotplug",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-scsi-pci",\
9ae3a8
+        .property = "param_change",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "VGA",\
9ae3a8
+        .property = "vgamem_mb",\
9ae3a8
+        .value    = stringify(8),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "vmware-svga",\
9ae3a8
+        .property = "vgamem_mb",\
9ae3a8
+        .value    = stringify(8),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "qxl-vga",\
9ae3a8
+        .property = "vgamem_mb",\
9ae3a8
+        .value    = stringify(8),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "qxl",\
9ae3a8
+        .property = "vgamem_mb",\
9ae3a8
+        .value    = stringify(8),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-blk-pci",\
9ae3a8
+        .property = "config-wce",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "pc-sysfw",\
9ae3a8
+        .property = "rom_only",\
9ae3a8
+        .value    = stringify(1),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = TYPE_ISA_FDC,\
9ae3a8
+        .property = "check_media_rate",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-balloon-pci",\
9ae3a8
+        .property = "class",\
9ae3a8
+        .value    = stringify(PCI_CLASS_MEMORY_RAM),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "apic",\
9ae3a8
+        .property = "vapic",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = TYPE_USB_DEVICE,\
9ae3a8
+        .property = "full-path",\
9ae3a8
+        .value    = "no",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-blk-pci",\
9ae3a8
+        .property = "event_idx",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-serial-pci",\
9ae3a8
+        .property = "event_idx",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-net-pci",\
9ae3a8
+        .property = "event_idx",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-balloon-pci",\
9ae3a8
+        .property = "event_idx",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = TYPE_PCI_DEVICE,\
9ae3a8
+        .property = "command_serr_enable",\
9ae3a8
+        .value    = "off",\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "AC97",\
9ae3a8
+        .property = "use_broken_id",\
9ae3a8
+        .value    = stringify(1),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-serial-pci",\
9ae3a8
+        .property = "max_ports",\
9ae3a8
+        .value    = stringify(1),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "virtio-serial-pci",\
9ae3a8
+        .property = "vectors",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "VGA",\
9ae3a8
+        .property = "rombar",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    },{\
9ae3a8
+        .driver   = "vmware-svga",\
9ae3a8
+        .property = "rombar",\
9ae3a8
+        .value    = stringify(0),\
9ae3a8
+    }
9ae3a8
+
9ae3a8
+static void pc_init_rhel600(QEMUMachineInitArgs *args)
9ae3a8
+{
9ae3a8
+    ram_addr_t ram_size = args->ram_size;
9ae3a8
+    const char *cpu_model = args->cpu_model;
9ae3a8
+    const char *kernel_filename = args->kernel_filename;
9ae3a8
+    const char *kernel_cmdline = args->kernel_cmdline;
9ae3a8
+    const char *initrd_filename = args->initrd_filename;
9ae3a8
+    const char *boot_device = args->boot_device;
9ae3a8
+    has_pvpanic = false;
9ae3a8
+    disable_kvm_pv_eoi();
9ae3a8
+    enable_compat_apic_id_mode();
9ae3a8
+    pc_init1(get_system_memory(),
9ae3a8
+             get_system_io(),
9ae3a8
+             ram_size, boot_device,
9ae3a8
+             kernel_filename, kernel_cmdline,
9ae3a8
+             initrd_filename, cpu_model, 1, 0);
9ae3a8
+}
9ae3a8
+
9ae3a8
+static QEMUMachine pc_machine_rhel600 = {
9ae3a8
+    .name = "rhel6.0.0",
9ae3a8
+    .desc = "RHEL 6.0.0 PC",
9ae3a8
+    .init = pc_init_rhel600,
9ae3a8
+    .max_cpus = 255,
9ae3a8
+    .compat_props = (GlobalProperty[]) {
9ae3a8
+        PC_RHEL6_0_COMPAT,
9ae3a8
+        { /* end of list */ }
9ae3a8
+    },
9ae3a8
+    DEFAULT_MACHINE_OPTIONS,
9ae3a8
+};
9ae3a8
+
9ae3a8
 static void rhel_machine_init(void)
9ae3a8
 {
9ae3a8
     qemu_register_machine(&pc_machine_rhel700);
9ae3a8
+    qemu_register_machine(&pc_machine_rhel600);
9ae3a8
 }
9ae3a8
 
9ae3a8
 machine_init(rhel_machine_init);