diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index c2c23371b1..ff64996af2 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -3426,7 +3426,8 @@ specific features, such as: ``scsi`` A ``scsi`` controller has an optional attribute ``model``, which is one of 'auto', 'buslogic', 'ibmvscsi', 'lsilogic', 'lsisas1068', 'lsisas1078', - 'virtio-scsi', 'vmpvscsi', 'virtio-transitional', 'virtio-non-transitional'. + 'virtio-scsi', 'vmpvscsi', 'virtio-transitional', 'virtio-non-transitional', + 'ncr53c90' (as builtin implicit controller only), 'am53c974', 'dc390'. See `Virtio transitional devices <#elementsVirtioTransitional>`__ for more details. ``usb`` diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index f86a854863..1ccc9759ea 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2381,6 +2381,9 @@ lsisas1078 virtio-transitional virtio-non-transitional + ncr53c90 + dc390 + am53c974 diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 282e3fbc6a..2393bf6a37 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -445,6 +445,9 @@ VIR_ENUM_IMPL(virDomainControllerModelSCSI, "lsisas1078", "virtio-transitional", "virtio-non-transitional", + "ncr53c90", + "dc390", + "am53c974", ); VIR_ENUM_IMPL(virDomainControllerModelISA, VIR_DOMAIN_CONTROLLER_MODEL_ISA_LAST, @@ -4971,6 +4974,11 @@ virDomainSCSIDriveAddressIsUsed(const virDomainDef *def, case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC: reserved = 7; break; + case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90: + case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390: + case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974: + max = 6; + break; case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DEFAULT: case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AUTO: case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 3e3d4bd002..96e6c34553 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -649,6 +649,9 @@ typedef enum { VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1078, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_TRANSITIONAL, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL, + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90, + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DC390, + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST } virDomainControllerModelSCSI; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 34b5746c1a..d3de13c6ee 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2473,6 +2473,9 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, 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(def->model)); diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index dd87915a97..f1fb532f39 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -637,6 +637,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDefPtr dev, case VIR_DOMAIN_CONTROLLER_TYPE_SCSI: switch ((virDomainControllerModelSCSI) cont->model) { case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DEFAULT: + case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_NCR53C90: return 0; case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI: @@ -652,6 +653,8 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDefPtr dev, 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_DC390: + case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974: return pciFlags; case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST: diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 6ddef3de35..add8bc4557 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2953,6 +2953,9 @@ qemuValidateCheckSCSIControllerModel(virQEMUCapsPtr qemuCaps, 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)); @@ -3071,6 +3074,9 @@ qemuValidateDomainDeviceDefControllerSCSI(const virDomainControllerDef *controll 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: case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST: break; diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index fc897735b0..138403b034 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -433,6 +433,9 @@ vboxSetStorageController(virDomainControllerDefPtr controller, case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_TRANSITIONAL: case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL: 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: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("The vbox driver does not support %s SCSI " "controller model"), diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 4001174380..0d79b8f0ec 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -560,6 +560,9 @@ VIR_ENUM_IMPL(virVMXControllerModelSCSI, "UNUSED lsisas1078", "UNUSED virtio-transitional", "UNUSED virtio-non-transitional", + "UNUSED ncr53c90", + "UNUSED dc390", + "UNUSED am53c974", ); static int virVMXParseVNC(virConfPtr conf, virDomainGraphicsDefPtr *def);