| File: | hw/i386/../pc_piix.c |
| Location: | line 193, column 19 |
| Description: | Pass-by-value argument in function call is undefined |
| 1 | /* | ||
| 2 | * QEMU PC System Emulator | ||
| 3 | * | ||
| 4 | * Copyright (c) 2003-2004 Fabrice Bellard | ||
| 5 | * | ||
| 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 7 | * of this software and associated documentation files (the "Software"), to deal | ||
| 8 | * in the Software without restriction, including without limitation the rights | ||
| 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 10 | * copies of the Software, and to permit persons to whom the Software is | ||
| 11 | * furnished to do so, subject to the following conditions: | ||
| 12 | * | ||
| 13 | * The above copyright notice and this permission notice shall be included in | ||
| 14 | * all copies or substantial portions of the Software. | ||
| 15 | * | ||
| 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
| 19 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 22 | * THE SOFTWARE. | ||
| 23 | */ | ||
| 24 | |||
| 25 | #include <glib.h> | ||
| 26 | |||
| 27 | #include "hw.h" | ||
| 28 | #include "pc.h" | ||
| 29 | #include "apic.h" | ||
| 30 | #include "pci.h" | ||
| 31 | #include "pci_ids.h" | ||
| 32 | #include "usb.h" | ||
| 33 | #include "net.h" | ||
| 34 | #include "boards.h" | ||
| 35 | #include "ide.h" | ||
| 36 | #include "kvm.h" | ||
| 37 | #include "kvm/clock.h" | ||
| 38 | #include "sysemu.h" | ||
| 39 | #include "sysbus.h" | ||
| 40 | #include "arch_init.h" | ||
| 41 | #include "blockdev.h" | ||
| 42 | #include "smbus.h" | ||
| 43 | #include "xen.h" | ||
| 44 | #include "memory.h" | ||
| 45 | #include "exec-memory.h" | ||
| 46 | #ifdef CONFIG_XEN | ||
| 47 | # include <xen/hvm/hvm_info_table.h> | ||
| 48 | #endif | ||
| 49 | |||
| 50 | #define MAX_IDE_BUS2 2 | ||
| 51 | |||
| 52 | static const int ide_iobase[MAX_IDE_BUS2] = { 0x1f0, 0x170 }; | ||
| 53 | static const int ide_iobase2[MAX_IDE_BUS2] = { 0x3f6, 0x376 }; | ||
| 54 | static const int ide_irq[MAX_IDE_BUS2] = { 14, 15 }; | ||
| 55 | |||
| 56 | static void kvm_piix3_setup_irq_routing(bool_Bool pci_enabled) | ||
| 57 | { | ||
| 58 | #ifdef CONFIG_KVM1 | ||
| 59 | KVMState *s = kvm_state; | ||
| 60 | int i; | ||
| 61 | |||
| 62 | if (kvm_check_extension(s, KVM_CAP_IRQ_ROUTING25)) { | ||
| 63 | for (i = 0; i < 8; ++i) { | ||
| 64 | if (i == 2) { | ||
| 65 | continue; | ||
| 66 | } | ||
| 67 | kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_PIC_MASTER0, i); | ||
| 68 | } | ||
| 69 | for (i = 8; i < 16; ++i) { | ||
| 70 | kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_PIC_SLAVE1, i - 8); | ||
| 71 | } | ||
| 72 | if (pci_enabled) { | ||
| 73 | for (i = 0; i < 24; ++i) { | ||
| 74 | if (i == 0) { | ||
| 75 | kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_IOAPIC2, 2); | ||
| 76 | } else if (i != 2) { | ||
| 77 | kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_IOAPIC2, i); | ||
| 78 | } | ||
| 79 | } | ||
| 80 | } | ||
| 81 | } | ||
| 82 | #endif /* CONFIG_KVM */ | ||
| 83 | } | ||
| 84 | |||
| 85 | static void kvm_piix3_gsi_handler(void *opaque, int n, int level) | ||
| 86 | { | ||
| 87 | GSIState *s = opaque; | ||
| 88 | |||
| 89 | if (n < ISA_NUM_IRQS16) { | ||
| 90 | /* Kernel will forward to both PIC and IOAPIC */ | ||
| 91 | qemu_set_irq(s->i8259_irq[n], level); | ||
| 92 | } else { | ||
| 93 | qemu_set_irq(s->ioapic_irq[n], level); | ||
| 94 | } | ||
| 95 | } | ||
| 96 | |||
| 97 | static void ioapic_init(GSIState *gsi_state) | ||
| 98 | { | ||
| 99 | DeviceState *dev; | ||
| 100 | SysBusDevice *d; | ||
| 101 | unsigned int i; | ||
| 102 | |||
| 103 | if (kvm_irqchip_in_kernel()(kvm_kernel_irqchip)) { | ||
| 104 | dev = qdev_create(NULL((void *)0), "kvm-ioapic"); | ||
| 105 | } else { | ||
| 106 | dev = qdev_create(NULL((void *)0), "ioapic"); | ||
| 107 | } | ||
| 108 | /* FIXME: this should be under the piix3. */ | ||
| 109 | object_property_add_child(object_resolve_path("i440fx", NULL((void *)0)), | ||
| 110 | "ioapic", OBJECT(dev)((Object *)(dev)), NULL((void *)0)); | ||
| 111 | qdev_init_nofail(dev); | ||
| 112 | d = sysbus_from_qdev(dev)((SysBusDevice *)(dev)); | ||
| 113 | sysbus_mmio_map(d, 0, 0xfec00000); | ||
| 114 | |||
| 115 | for (i = 0; i < IOAPIC_NUM_PINS24; i++) { | ||
| 116 | gsi_state->ioapic_irq[i] = qdev_get_gpio_in(dev, i); | ||
| 117 | } | ||
| 118 | } | ||
| 119 | |||
| 120 | /* PC hardware initialisation */ | ||
| 121 | static void pc_init1(MemoryRegion *system_memory, | ||
| 122 | MemoryRegion *system_io, | ||
| 123 | ram_addr_t ram_size, | ||
| 124 | const char *boot_device, | ||
| 125 | const char *kernel_filename, | ||
| 126 | const char *kernel_cmdline, | ||
| 127 | const char *initrd_filename, | ||
| 128 | const char *cpu_model, | ||
| 129 | int pci_enabled, | ||
| 130 | int kvmclock_enabled) | ||
| 131 | { | ||
| 132 | int i; | ||
| 133 | ram_addr_t below_4g_mem_size, above_4g_mem_size; | ||
| 134 | PCIBus *pci_bus; | ||
| 135 | ISABus *isa_bus; | ||
| 136 | PCII440FXState *i440fx_state; | ||
| 137 | int piix3_devfn = -1; | ||
| 138 | qemu_irq *cpu_irq; | ||
| 139 | qemu_irq *gsi; | ||
| 140 | qemu_irq *i8259; | ||
| 141 | qemu_irq *smi_irq; | ||
| 142 | GSIState *gsi_state; | ||
| 143 | DriveInfo *hd[MAX_IDE_BUS2 * MAX_IDE_DEVS2]; | ||
| 144 | BusState *idebus[MAX_IDE_BUS2]; | ||
| 145 | ISADevice *rtc_state; | ||
| 146 | ISADevice *floppy; | ||
| 147 | MemoryRegion *ram_memory; | ||
| |||
| 148 | MemoryRegion *pci_memory; | ||
| 149 | MemoryRegion *rom_memory; | ||
| 150 | void *fw_cfg = NULL((void *)0); | ||
| 151 | |||
| 152 | pc_cpus_init(cpu_model); | ||
| 153 | |||
| 154 | if (kvmclock_enabled) { | ||
| |||
| 155 | kvmclock_create(); | ||
| 156 | } | ||
| 157 | |||
| 158 | if (ram_size >= 0xe0000000 ) { | ||
| |||
| 159 | above_4g_mem_size = ram_size - 0xe0000000; | ||
| 160 | below_4g_mem_size = 0xe0000000; | ||
| 161 | } else { | ||
| 162 | above_4g_mem_size = 0; | ||
| 163 | below_4g_mem_size = ram_size; | ||
| 164 | } | ||
| 165 | |||
| 166 | if (pci_enabled) { | ||
| |||
| 167 | pci_memory = g_new(MemoryRegion, 1)((MemoryRegion *) g_malloc_n ((1), sizeof (MemoryRegion))); | ||
| 168 | memory_region_init(pci_memory, "pci", INT64_MAX(9223372036854775807L)); | ||
| 169 | rom_memory = pci_memory; | ||
| 170 | } else { | ||
| 171 | pci_memory = NULL((void *)0); | ||
| 172 | rom_memory = system_memory; | ||
| 173 | } | ||
| 174 | |||
| 175 | /* allocate ram and load rom/bios */ | ||
| 176 | if (!xen_enabled()) { | ||
| |||
| 177 | fw_cfg = pc_memory_init(system_memory, | ||
| 178 | kernel_filename, kernel_cmdline, initrd_filename, | ||
| 179 | below_4g_mem_size, above_4g_mem_size, | ||
| 180 | pci_enabled ? rom_memory : system_memory, &ram_memory); | ||
| 181 | } | ||
| 182 | |||
| 183 | gsi_state = g_malloc0(sizeof(*gsi_state)); | ||
| 184 | if (kvm_irqchip_in_kernel()(kvm_kernel_irqchip)) { | ||
| |||
| 185 | kvm_piix3_setup_irq_routing(pci_enabled); | ||
| 186 | gsi = qemu_allocate_irqs(kvm_piix3_gsi_handler, gsi_state, | ||
| 187 | GSI_NUM_PINS24); | ||
| 188 | } else { | ||
| 189 | gsi = qemu_allocate_irqs(gsi_handler, gsi_state, GSI_NUM_PINS24); | ||
| 190 | } | ||
| 191 | |||
| 192 | if (pci_enabled) { | ||
| |||
| 193 | pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, &isa_bus, gsi, | ||
| |||
| 194 | system_memory, system_io, ram_size, | ||
| 195 | below_4g_mem_size, | ||
| 196 | 0x100000000ULL - below_4g_mem_size, | ||
| 197 | 0x100000000ULL + above_4g_mem_size, | ||
| 198 | (sizeof(target_phys_addr_t) == 4 | ||
| |||
| 199 | ? 0 | ||
| 200 | : ((uint64_t)1 << 62)), | ||
| 201 | pci_memory, ram_memory); | ||
| 202 | } else { | ||
| 203 | pci_bus = NULL((void *)0); | ||
| 204 | i440fx_state = NULL((void *)0); | ||
| 205 | isa_bus = isa_bus_new(NULL((void *)0), system_io); | ||
| 206 | no_hpet = 1; | ||
| 207 | } | ||
| 208 | isa_bus_irqs(isa_bus, gsi); | ||
| 209 | |||
| 210 | if (kvm_irqchip_in_kernel()(kvm_kernel_irqchip)) { | ||
| 211 | i8259 = kvm_i8259_init(isa_bus); | ||
| 212 | } else if (xen_enabled()) { | ||
| 213 | i8259 = xen_interrupt_controller_init(); | ||
| 214 | } else { | ||
| 215 | cpu_irq = pc_allocate_cpu_irq(); | ||
| 216 | i8259 = i8259_init(isa_bus, cpu_irq[0]); | ||
| 217 | } | ||
| 218 | |||
| 219 | for (i = 0; i < ISA_NUM_IRQS16; i++) { | ||
| 220 | gsi_state->i8259_irq[i] = i8259[i]; | ||
| 221 | } | ||
| 222 | if (pci_enabled) { | ||
| 223 | ioapic_init(gsi_state); | ||
| 224 | } | ||
| 225 | |||
| 226 | pc_register_ferr_irq(gsi[13]); | ||
| 227 | |||
| 228 | pc_vga_init(isa_bus, pci_enabled ? pci_bus : NULL((void *)0)); | ||
| 229 | if (xen_enabled()) { | ||
| 230 | pci_create_simple(pci_bus, -1, "xen-platform"); | ||
| 231 | } | ||
| 232 | |||
| 233 | /* init basic PC hardware */ | ||
| 234 | pc_basic_device_init(isa_bus, gsi, &rtc_state, &floppy, xen_enabled()); | ||
| 235 | |||
| 236 | for(i = 0; i < nb_nics; i++) { | ||
| 237 | NICInfo *nd = &nd_table[i]; | ||
| 238 | |||
| 239 | if (!pci_enabled || (nd->model && strcmp(nd->model, "ne2k_isa") == 0)) | ||
| 240 | pc_init_ne2k_isa(isa_bus, nd); | ||
| 241 | else | ||
| 242 | pci_nic_init_nofail(nd, "e1000", NULL((void *)0)); | ||
| 243 | } | ||
| 244 | |||
| 245 | ide_drive_get(hd, MAX_IDE_BUS2); | ||
| 246 | if (pci_enabled) { | ||
| 247 | PCIDevice *dev; | ||
| 248 | if (xen_enabled()) { | ||
| 249 | dev = pci_piix3_xen_ide_init(pci_bus, hd, piix3_devfn + 1); | ||
| 250 | } else { | ||
| 251 | dev = pci_piix3_ide_init(pci_bus, hd, piix3_devfn + 1); | ||
| 252 | } | ||
| 253 | idebus[0] = qdev_get_child_bus(&dev->qdev, "ide.0"); | ||
| 254 | idebus[1] = qdev_get_child_bus(&dev->qdev, "ide.1"); | ||
| 255 | } else { | ||
| 256 | for(i = 0; i < MAX_IDE_BUS2; i++) { | ||
| 257 | ISADevice *dev; | ||
| 258 | dev = isa_ide_init(isa_bus, ide_iobase[i], ide_iobase2[i], | ||
| 259 | ide_irq[i], | ||
| 260 | hd[MAX_IDE_DEVS2 * i], hd[MAX_IDE_DEVS2 * i + 1]); | ||
| 261 | idebus[i] = qdev_get_child_bus(&dev->qdev, "ide.0"); | ||
| 262 | } | ||
| 263 | } | ||
| 264 | |||
| 265 | audio_init(isa_bus, pci_enabled ? pci_bus : NULL((void *)0)); | ||
| 266 | |||
| 267 | pc_cmos_init(below_4g_mem_size, above_4g_mem_size, boot_device, | ||
| 268 | floppy, idebus[0], idebus[1], rtc_state); | ||
| 269 | |||
| 270 | if (pci_enabled && usb_enabled) { | ||
| 271 | pci_create_simple(pci_bus, piix3_devfn + 2, "piix3-usb-uhci"); | ||
| 272 | } | ||
| 273 | |||
| 274 | if (pci_enabled && acpi_enabled) { | ||
| 275 | i2c_bus *smbus; | ||
| 276 | |||
| 277 | smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, first_cpu, 1); | ||
| 278 | /* TODO: Populate SPD eeprom data. */ | ||
| 279 | smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100, | ||
| 280 | gsi[9], *smi_irq, | ||
| 281 | kvm_enabled()(kvm_allowed), fw_cfg); | ||
| 282 | smbus_eeprom_init(smbus, 8, NULL((void *)0), 0); | ||
| 283 | } | ||
| 284 | |||
| 285 | if (pci_enabled) { | ||
| 286 | pc_pci_device_init(pci_bus); | ||
| 287 | } | ||
| 288 | } | ||
| 289 | |||
| 290 | static void pc_init_pci(ram_addr_t ram_size, | ||
| 291 | const char *boot_device, | ||
| 292 | const char *kernel_filename, | ||
| 293 | const char *kernel_cmdline, | ||
| 294 | const char *initrd_filename, | ||
| 295 | const char *cpu_model) | ||
| 296 | { | ||
| 297 | pc_init1(get_system_memory(), | ||
| 298 | get_system_io(), | ||
| 299 | ram_size, boot_device, | ||
| 300 | kernel_filename, kernel_cmdline, | ||
| 301 | initrd_filename, cpu_model, 1, 1); | ||
| 302 | } | ||
| 303 | |||
| 304 | static void pc_init_pci_no_kvmclock(ram_addr_t ram_size, | ||
| 305 | const char *boot_device, | ||
| 306 | const char *kernel_filename, | ||
| 307 | const char *kernel_cmdline, | ||
| 308 | const char *initrd_filename, | ||
| 309 | const char *cpu_model) | ||
| 310 | { | ||
| 311 | pc_init1(get_system_memory(), | ||
| 312 | get_system_io(), | ||
| 313 | ram_size, boot_device, | ||
| 314 | kernel_filename, kernel_cmdline, | ||
| 315 | initrd_filename, cpu_model, 1, 0); | ||
| 316 | } | ||
| 317 | |||
| 318 | static void pc_init_isa(ram_addr_t ram_size, | ||
| 319 | const char *boot_device, | ||
| 320 | const char *kernel_filename, | ||
| 321 | const char *kernel_cmdline, | ||
| 322 | const char *initrd_filename, | ||
| 323 | const char *cpu_model) | ||
| 324 | { | ||
| 325 | if (cpu_model == NULL((void *)0)) | ||
| 326 | cpu_model = "486"; | ||
| 327 | pc_init1(get_system_memory(), | ||
| 328 | get_system_io(), | ||
| 329 | ram_size, boot_device, | ||
| 330 | kernel_filename, kernel_cmdline, | ||
| 331 | initrd_filename, cpu_model, 0, 1); | ||
| 332 | } | ||
| 333 | |||
| 334 | #ifdef CONFIG_XEN | ||
| 335 | static void pc_xen_hvm_init(ram_addr_t ram_size, | ||
| 336 | const char *boot_device, | ||
| 337 | const char *kernel_filename, | ||
| 338 | const char *kernel_cmdline, | ||
| 339 | const char *initrd_filename, | ||
| 340 | const char *cpu_model) | ||
| 341 | { | ||
| 342 | if (xen_hvm_init() != 0) { | ||
| 343 | hw_error("xen hardware virtual machine initialisation failed"); | ||
| 344 | } | ||
| 345 | pc_init_pci_no_kvmclock(ram_size, boot_device, | ||
| 346 | kernel_filename, kernel_cmdline, | ||
| 347 | initrd_filename, cpu_model); | ||
| 348 | xen_vcpu_init(); | ||
| 349 | } | ||
| 350 | #endif | ||
| 351 | |||
| 352 | static QEMUMachine pc_machine_v1_2 = { | ||
| 353 | .name = "pc-1.2", | ||
| 354 | .alias = "pc", | ||
| 355 | .desc = "Standard PC", | ||
| 356 | .init = pc_init_pci, | ||
| 357 | .max_cpus = 255, | ||
| 358 | .is_default = 1, | ||
| 359 | }; | ||
| 360 | |||
| 361 | #define PC_COMPAT_1_1{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", } \ | ||
| 362 | {\ | ||
| 363 | .driver = "VGA",\ | ||
| 364 | .property = "vgamem_mb",\ | ||
| 365 | .value = stringify(8)"8",\ | ||
| 366 | },{\ | ||
| 367 | .driver = "vmware-svga",\ | ||
| 368 | .property = "vgamem_mb",\ | ||
| 369 | .value = stringify(8)"8",\ | ||
| 370 | },{\ | ||
| 371 | .driver = "qxl-vga",\ | ||
| 372 | .property = "vgamem_mb",\ | ||
| 373 | .value = stringify(8)"8",\ | ||
| 374 | },{\ | ||
| 375 | .driver = "qxl",\ | ||
| 376 | .property = "vgamem_mb",\ | ||
| 377 | .value = stringify(8)"8",\ | ||
| 378 | } | ||
| 379 | |||
| 380 | static QEMUMachine pc_machine_v1_1 = { | ||
| 381 | .name = "pc-1.1", | ||
| 382 | .desc = "Standard PC", | ||
| 383 | .init = pc_init_pci, | ||
| 384 | .max_cpus = 255, | ||
| 385 | .compat_props = (GlobalProperty[]) { | ||
| 386 | PC_COMPAT_1_1{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, | ||
| 387 | { /* end of list */ } | ||
| 388 | }, | ||
| 389 | }; | ||
| 390 | |||
| 391 | #define PC_COMPAT_1_0{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", } \ | ||
| 392 | PC_COMPAT_1_1{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", },\ | ||
| 393 | {\ | ||
| 394 | .driver = "pc-sysfw",\ | ||
| 395 | .property = "rom_only",\ | ||
| 396 | .value = stringify(1)"1",\ | ||
| 397 | }, {\ | ||
| 398 | .driver = "isa-fdc",\ | ||
| 399 | .property = "check_media_rate",\ | ||
| 400 | .value = "off",\ | ||
| 401 | }, {\ | ||
| 402 | .driver = "virtio-balloon-pci",\ | ||
| 403 | .property = "class",\ | ||
| 404 | .value = stringify(PCI_CLASS_MEMORY_RAM)"0x0500",\ | ||
| 405 | },{\ | ||
| 406 | .driver = "apic",\ | ||
| 407 | .property = "vapic",\ | ||
| 408 | .value = "off",\ | ||
| 409 | },{\ | ||
| 410 | .driver = TYPE_USB_DEVICE"usb-device",\ | ||
| 411 | .property = "full-path",\ | ||
| 412 | .value = "no",\ | ||
| 413 | } | ||
| 414 | |||
| 415 | static QEMUMachine pc_machine_v1_0 = { | ||
| 416 | .name = "pc-1.0", | ||
| 417 | .desc = "Standard PC", | ||
| 418 | .init = pc_init_pci, | ||
| 419 | .max_cpus = 255, | ||
| 420 | .compat_props = (GlobalProperty[]) { | ||
| 421 | PC_COMPAT_1_0{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, | ||
| 422 | { /* end of list */ } | ||
| 423 | }, | ||
| 424 | .hw_version = "1.0", | ||
| 425 | }; | ||
| 426 | |||
| 427 | #define PC_COMPAT_0_15{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", } \ | ||
| 428 | PC_COMPAT_1_0{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", } | ||
| 429 | |||
| 430 | static QEMUMachine pc_machine_v0_15 = { | ||
| 431 | .name = "pc-0.15", | ||
| 432 | .desc = "Standard PC", | ||
| 433 | .init = pc_init_pci, | ||
| 434 | .max_cpus = 255, | ||
| 435 | .compat_props = (GlobalProperty[]) { | ||
| 436 | PC_COMPAT_0_15{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, | ||
| 437 | { /* end of list */ } | ||
| 438 | }, | ||
| 439 | .hw_version = "0.15", | ||
| 440 | }; | ||
| 441 | |||
| 442 | #define PC_COMPAT_0_14{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", } \ | ||
| 443 | PC_COMPAT_0_15{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", },\ | ||
| 444 | {\ | ||
| 445 | .driver = "virtio-blk-pci",\ | ||
| 446 | .property = "event_idx",\ | ||
| 447 | .value = "off",\ | ||
| 448 | },{\ | ||
| 449 | .driver = "virtio-serial-pci",\ | ||
| 450 | .property = "event_idx",\ | ||
| 451 | .value = "off",\ | ||
| 452 | },{\ | ||
| 453 | .driver = "virtio-net-pci",\ | ||
| 454 | .property = "event_idx",\ | ||
| 455 | .value = "off",\ | ||
| 456 | },{\ | ||
| 457 | .driver = "virtio-balloon-pci",\ | ||
| 458 | .property = "event_idx",\ | ||
| 459 | .value = "off",\ | ||
| 460 | } | ||
| 461 | |||
| 462 | static QEMUMachine pc_machine_v0_14 = { | ||
| 463 | .name = "pc-0.14", | ||
| 464 | .desc = "Standard PC", | ||
| 465 | .init = pc_init_pci, | ||
| 466 | .max_cpus = 255, | ||
| 467 | .compat_props = (GlobalProperty[]) { | ||
| 468 | PC_COMPAT_0_14{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, | ||
| 469 | { | ||
| 470 | .driver = "qxl", | ||
| 471 | .property = "revision", | ||
| 472 | .value = stringify(2)"2", | ||
| 473 | },{ | ||
| 474 | .driver = "qxl-vga", | ||
| 475 | .property = "revision", | ||
| 476 | .value = stringify(2)"2", | ||
| 477 | }, | ||
| 478 | { /* end of list */ } | ||
| 479 | }, | ||
| 480 | .hw_version = "0.14", | ||
| 481 | }; | ||
| 482 | |||
| 483 | #define PC_COMPAT_0_13{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", } \ | ||
| 484 | PC_COMPAT_0_14{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", },\ | ||
| 485 | {\ | ||
| 486 | .driver = TYPE_PCI_DEVICE"pci-device",\ | ||
| 487 | .property = "command_serr_enable",\ | ||
| 488 | .value = "off",\ | ||
| 489 | },{\ | ||
| 490 | .driver = "AC97",\ | ||
| 491 | .property = "use_broken_id",\ | ||
| 492 | .value = stringify(1)"1",\ | ||
| 493 | } | ||
| 494 | |||
| 495 | static QEMUMachine pc_machine_v0_13 = { | ||
| 496 | .name = "pc-0.13", | ||
| 497 | .desc = "Standard PC", | ||
| 498 | .init = pc_init_pci_no_kvmclock, | ||
| 499 | .max_cpus = 255, | ||
| 500 | .compat_props = (GlobalProperty[]) { | ||
| 501 | PC_COMPAT_0_13{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, | ||
| 502 | { | ||
| 503 | .driver = "virtio-9p-pci", | ||
| 504 | .property = "vectors", | ||
| 505 | .value = stringify(0)"0", | ||
| 506 | },{ | ||
| 507 | .driver = "VGA", | ||
| 508 | .property = "rombar", | ||
| 509 | .value = stringify(0)"0", | ||
| 510 | },{ | ||
| 511 | .driver = "vmware-svga", | ||
| 512 | .property = "rombar", | ||
| 513 | .value = stringify(0)"0", | ||
| 514 | }, | ||
| 515 | { /* end of list */ } | ||
| 516 | }, | ||
| 517 | .hw_version = "0.13", | ||
| 518 | }; | ||
| 519 | |||
| 520 | #define PC_COMPAT_0_12{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, { .driver = "virtio-serial-pci", .property = "max_ports", .value = "1" , },{ .driver = "virtio-serial-pci", .property = "vectors", . value = "0", } \ | ||
| 521 | PC_COMPAT_0_13{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", },\ | ||
| 522 | {\ | ||
| 523 | .driver = "virtio-serial-pci",\ | ||
| 524 | .property = "max_ports",\ | ||
| 525 | .value = stringify(1)"1",\ | ||
| 526 | },{\ | ||
| 527 | .driver = "virtio-serial-pci",\ | ||
| 528 | .property = "vectors",\ | ||
| 529 | .value = stringify(0)"0",\ | ||
| 530 | } | ||
| 531 | |||
| 532 | static QEMUMachine pc_machine_v0_12 = { | ||
| 533 | .name = "pc-0.12", | ||
| 534 | .desc = "Standard PC", | ||
| 535 | .init = pc_init_pci_no_kvmclock, | ||
| 536 | .max_cpus = 255, | ||
| 537 | .compat_props = (GlobalProperty[]) { | ||
| 538 | PC_COMPAT_0_12{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, { .driver = "virtio-serial-pci", .property = "max_ports", .value = "1" , },{ .driver = "virtio-serial-pci", .property = "vectors", . value = "0", }, | ||
| 539 | { | ||
| 540 | .driver = "VGA", | ||
| 541 | .property = "rombar", | ||
| 542 | .value = stringify(0)"0", | ||
| 543 | },{ | ||
| 544 | .driver = "vmware-svga", | ||
| 545 | .property = "rombar", | ||
| 546 | .value = stringify(0)"0", | ||
| 547 | }, | ||
| 548 | { /* end of list */ } | ||
| 549 | }, | ||
| 550 | .hw_version = "0.12", | ||
| 551 | }; | ||
| 552 | |||
| 553 | #define PC_COMPAT_0_11{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, { .driver = "virtio-serial-pci", .property = "max_ports", .value = "1" , },{ .driver = "virtio-serial-pci", .property = "vectors", . value = "0", }, { .driver = "virtio-blk-pci", .property = "vectors" , .value = "0", },{ .driver = "pci-device", .property = "rombar" , .value = "0", } \ | ||
| 554 | PC_COMPAT_0_12{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, { .driver = "virtio-serial-pci", .property = "max_ports", .value = "1" , },{ .driver = "virtio-serial-pci", .property = "vectors", . value = "0", },\ | ||
| 555 | {\ | ||
| 556 | .driver = "virtio-blk-pci",\ | ||
| 557 | .property = "vectors",\ | ||
| 558 | .value = stringify(0)"0",\ | ||
| 559 | },{\ | ||
| 560 | .driver = TYPE_PCI_DEVICE"pci-device",\ | ||
| 561 | .property = "rombar",\ | ||
| 562 | .value = stringify(0)"0",\ | ||
| 563 | } | ||
| 564 | |||
| 565 | static QEMUMachine pc_machine_v0_11 = { | ||
| 566 | .name = "pc-0.11", | ||
| 567 | .desc = "Standard PC, qemu 0.11", | ||
| 568 | .init = pc_init_pci_no_kvmclock, | ||
| 569 | .max_cpus = 255, | ||
| 570 | .compat_props = (GlobalProperty[]) { | ||
| 571 | PC_COMPAT_0_11{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, { .driver = "virtio-serial-pci", .property = "max_ports", .value = "1" , },{ .driver = "virtio-serial-pci", .property = "vectors", . value = "0", }, { .driver = "virtio-blk-pci", .property = "vectors" , .value = "0", },{ .driver = "pci-device", .property = "rombar" , .value = "0", }, | ||
| 572 | { | ||
| 573 | .driver = "ide-drive", | ||
| 574 | .property = "ver", | ||
| 575 | .value = "0.11", | ||
| 576 | },{ | ||
| 577 | .driver = "scsi-disk", | ||
| 578 | .property = "ver", | ||
| 579 | .value = "0.11", | ||
| 580 | }, | ||
| 581 | { /* end of list */ } | ||
| 582 | }, | ||
| 583 | .hw_version = "0.11", | ||
| 584 | }; | ||
| 585 | |||
| 586 | static QEMUMachine pc_machine_v0_10 = { | ||
| 587 | .name = "pc-0.10", | ||
| 588 | .desc = "Standard PC, qemu 0.10", | ||
| 589 | .init = pc_init_pci_no_kvmclock, | ||
| 590 | .max_cpus = 255, | ||
| 591 | .compat_props = (GlobalProperty[]) { | ||
| 592 | PC_COMPAT_0_11{ .driver = "VGA", .property = "vgamem_mb", .value = "8", },{ .driver = "vmware-svga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl-vga", .property = "vgamem_mb", .value = "8" , },{ .driver = "qxl", .property = "vgamem_mb", .value = "8", }, { .driver = "pc-sysfw", .property = "rom_only", .value = "1" , }, { .driver = "isa-fdc", .property = "check_media_rate", . value = "off", }, { .driver = "virtio-balloon-pci", .property = "class", .value = "0x0500", },{ .driver = "apic", .property = "vapic", .value = "off", },{ .driver = "usb-device", .property = "full-path", .value = "no", }, { .driver = "virtio-blk-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-serial-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-net-pci" , .property = "event_idx", .value = "off", },{ .driver = "virtio-balloon-pci" , .property = "event_idx", .value = "off", }, { .driver = "pci-device" , .property = "command_serr_enable", .value = "off", },{ .driver = "AC97", .property = "use_broken_id", .value = "1", }, { .driver = "virtio-serial-pci", .property = "max_ports", .value = "1" , },{ .driver = "virtio-serial-pci", .property = "vectors", . value = "0", }, { .driver = "virtio-blk-pci", .property = "vectors" , .value = "0", },{ .driver = "pci-device", .property = "rombar" , .value = "0", }, | ||
| 593 | { | ||
| 594 | .driver = "virtio-blk-pci", | ||
| 595 | .property = "class", | ||
| 596 | .value = stringify(PCI_CLASS_STORAGE_OTHER)"0x0180", | ||
| 597 | },{ | ||
| 598 | .driver = "virtio-serial-pci", | ||
| 599 | .property = "class", | ||
| 600 | .value = stringify(PCI_CLASS_DISPLAY_OTHER)"0x0380", | ||
| 601 | },{ | ||
| 602 | .driver = "virtio-net-pci", | ||
| 603 | .property = "vectors", | ||
| 604 | .value = stringify(0)"0", | ||
| 605 | },{ | ||
| 606 | .driver = "ide-drive", | ||
| 607 | .property = "ver", | ||
| 608 | .value = "0.10", | ||
| 609 | },{ | ||
| 610 | .driver = "scsi-disk", | ||
| 611 | .property = "ver", | ||
| 612 | .value = "0.10", | ||
| 613 | }, | ||
| 614 | { /* end of list */ } | ||
| 615 | }, | ||
| 616 | .hw_version = "0.10", | ||
| 617 | }; | ||
| 618 | |||
| 619 | static QEMUMachine isapc_machine = { | ||
| 620 | .name = "isapc", | ||
| 621 | .desc = "ISA-only PC", | ||
| 622 | .init = pc_init_isa, | ||
| 623 | .max_cpus = 1, | ||
| 624 | .compat_props = (GlobalProperty[]) { | ||
| 625 | { | ||
| 626 | .driver = "pc-sysfw", | ||
| 627 | .property = "rom_only", | ||
| 628 | .value = stringify(1)"1", | ||
| 629 | }, | ||
| 630 | { /* end of list */ } | ||
| 631 | }, | ||
| 632 | }; | ||
| 633 | |||
| 634 | #ifdef CONFIG_XEN | ||
| 635 | static QEMUMachine xenfv_machine = { | ||
| 636 | .name = "xenfv", | ||
| 637 | .desc = "Xen Fully-virtualized PC", | ||
| 638 | .init = pc_xen_hvm_init, | ||
| 639 | .max_cpus = HVM_MAX_VCPUS, | ||
| 640 | .default_machine_opts = "accel=xen", | ||
| 641 | }; | ||
| 642 | #endif | ||
| 643 | |||
| 644 | static void pc_machine_init(void) | ||
| 645 | { | ||
| 646 | qemu_register_machine(&pc_machine_v1_2); | ||
| 647 | qemu_register_machine(&pc_machine_v1_1); | ||
| 648 | qemu_register_machine(&pc_machine_v1_0); | ||
| 649 | qemu_register_machine(&pc_machine_v0_15); | ||
| 650 | qemu_register_machine(&pc_machine_v0_14); | ||
| 651 | qemu_register_machine(&pc_machine_v0_13); | ||
| 652 | qemu_register_machine(&pc_machine_v0_12); | ||
| 653 | qemu_register_machine(&pc_machine_v0_11); | ||
| 654 | qemu_register_machine(&pc_machine_v0_10); | ||
| 655 | qemu_register_machine(&isapc_machine); | ||
| 656 | #ifdef CONFIG_XEN | ||
| 657 | qemu_register_machine(&xenfv_machine); | ||
| 658 | #endif | ||
| 659 | } | ||
| 660 | |||
| 661 | machine_init(pc_machine_init)static void __attribute__((constructor)) do_qemu_init_pc_machine_init (void) { register_module_init(pc_machine_init, MODULE_INIT_MACHINE ); }; |