if (qemuDomainMachineIsQ35(def) &&
disk->info.addr.drive.controller == 0) {
/* Q35 machines have an implicit ahci (sata) controller at
- * 00:1F.2 which has no "id" associated with it. For this
- * reason, we can't refer to it as "ahci0". Instead, we
- * don't give an id, which qemu interprets as "use the
- * first ahci controller". We then need to specify the
- * unit with "unit=%d" rather than adding it onto the bus
- * arg.
+ * 00:1F.2 which for some reason is hardcoded with the id
+ * "ide" instead of the seemingly more reasonable "ahci0"
+ * or "sata0".
*/
- virBufferAsprintf(&opt, ",unit=%d", disk->info.addr.drive.unit);
+ virBufferAsprintf(&opt, ",bus=ide.%d", disk->info.addr.drive.unit);
} else {
/* All other ahci controllers have been created by
- * libvirt, so they *do* have an id, and we can identify
- * them that way.
+ * libvirt, and we gave them the id "ahci${n}" where ${n}
+ * is the controller number. So we identify them that way.
*/
virBufferAsprintf(&opt, ",bus=ahci%d.%d",
disk->info.addr.drive.controller,
-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x2 \
-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
-drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-sata0-0-0 \
--device ide-drive,unit=0,drive=drive-sata0-0-0,id=sata0-0-0 \
+-device ide-drive,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0 \
-vga qxl -global qxl.ram_size=67108864 -global qxl.vram_size=18874368
-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x2 \
-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
-drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-sata0-0-0 \
--device ide-drive,unit=0,drive=drive-sata0-0-0,id=sata0-0-0 \
+-device ide-drive,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0 \
-vga qxl -global qxl.ram_size=67108864 -global qxl.vram_size=18874368