]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: add support for ESP SCSI controller family
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 17 Nov 2020 18:15:44 +0000 (18:15 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Fri, 20 Nov 2020 12:09:51 +0000 (12:09 +0000)
The NCR53C90 is the built-in SCSI controller on all sparc machine types,
and some mips and m68k machine types.

The DC390 and AM53C974 are PCI SCSI controllers that can be added to any
PCI machine.

These are only interesting for emulating obsolete hardware platforms.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
docs/formatdomain.rst
docs/schemas/domaincommon.rng
src/conf/domain_conf.c
src/conf/domain_conf.h
src/qemu/qemu_command.c
src/qemu/qemu_domain_address.c
src/qemu/qemu_validate.c
src/vbox/vbox_common.c
src/vmx/vmx.c

index c2c23371b138844fc37982a5a59add840af7bd10..ff64996af229c3792eebd1139e45c0e6ca1a6f80 100644 (file)
@@ -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``
index f86a8548636784e0536b0746c31e57f99e5bda3a..1ccc9759ea7824de7255606e8101256a36d27b51 100644 (file)
                   <value>lsisas1078</value>
                   <value>virtio-transitional</value>
                   <value>virtio-non-transitional</value>
+                  <value>ncr53c90</value>
+                  <value>dc390</value>
+                  <value>am53c974</value>
                 </choice>
               </attribute>
             </optional>
index 282e3fbc6a6a4a52e2eb224de29d14e099d1912b..2393bf6a371f8620d40e232fba32b7522caf2876 100644 (file)
@@ -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:
index 3e3d4bd0023549d66a8c0c27eb95df49c8cd2d75..96e6c34553a5b1004019699bf50983cee5efe1a4 100644 (file)
@@ -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;
index 34b5746c1a3683c856af41e8f8c735138e76d359..d3de13c6ee6e5d894f422b5cb13e78320d0d0197 100644 (file)
@@ -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));
index dd87915a97570681201079088e916122c24d1b99..f1fb532f39061da3c9554d15bfcee5dd724fdd01 100644 (file)
@@ -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:
index 6ddef3de357eefcbb56a91884ca3a979612977f7..add8bc4557c43268f7e571f67c92744ed06b553a 100644 (file)
@@ -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;
index fc897735b0a35497fac4b0dce797581d6f1bf675..138403b034081154a89a2aab9c8621eba950c222 100644 (file)
@@ -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"),
index 4001174380421dda5c45c97d26044eb55d3d0d41..0d79b8f0ec2854825e94c6be5e633336a0165167 100644 (file)
@@ -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);