case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI:
virBufferAddLit(&buf, "pvscsi");
break;
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974:
+ virBufferAddLit(&buf, "am53c974");
+ break;
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390:
+ virBufferAddLit(&buf, "dc-390");
+ break;
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AUTO:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974:
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90: /* It is built-in dev */
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unsupported controller model: %s"),
virDomainControllerModelSCSITypeToString(def->model));
controller->idx == 0 && qemuDomainHasBuiltinIDE(def))
return true;
+ /* first ESP SCSI controller is implicit on certain machine types */
+ if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI &&
+ controller->idx == 0 &&
+ controller->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90 &&
+ qemuDomainHasBuiltinESP(def)) {
+ return true;
+ }
+
return false;
}
return VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC;
else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_SCSI))
return VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI;
+ else if (qemuDomainHasBuiltinESP(def))
+ return VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90;
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unable to determine model for SCSI controller idx=%d"),
cont->idx == 0)
continue;
+ /* NCR53C90 SCSI controller is always a built-in device */
+ if (cont->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI &&
+ cont->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90)
+ continue;
+
if (!virDeviceInfoPCIAddressIsWanted(&cont->info))
continue;
break;
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AUTO:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unsupported controller model: %s"),
virDomainControllerModelSCSITypeToString(model));
return false;
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90:
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SCSI_NCR53C90)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("This QEMU doesn't support "
+ "the NCR53C90 (ESP) controller"));
+ }
+ return true;
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390:
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SCSI_DC390)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("This QEMU doesn't support "
+ "the DC390 (ESP) controller"));
+ }
+ return true;
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974:
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SCSI_AM53C974)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("This QEMU doesn't support "
+ "the AM53C974 (ESP) controller"));
+ }
+ return true;
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DEFAULT:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST:
virReportError(VIR_ERR_INTERNAL_ERROR,
return -1;
break;
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90:
+ if (controller->idx != 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("ncr53c90 can only be used as first SCSI controller"));
+ return -1;
+ }
+ if (!qemuDomainHasBuiltinESP(def)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("ncr53c90 SCSI controller is not a built-in for this machine"));
+ return -1;
+ }
+ break;
+
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AUTO:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_IBMVSCSI:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1078:
- case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974:
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DEFAULT: