]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[WinOF] added mthca & connectX device_ID specific devcon installs to cover mthca...
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 15 May 2008 00:33:24 +0000 (00:33 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 15 May 2008 00:33:24 +0000 (00:33 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@1170 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/WinOF/WIX/CustomActions.vbs

index e220d60464513f22429559749caa30bce2131bb6..78a2d90c4c10afbb15826e3f12a227885eda88d6 100644 (file)
@@ -599,7 +599,7 @@ Function DriverInstall()
     MTARCH = Architecture\r
    \r
     Dim PropArray, devID, devman, devmanEXE, devmanNET, devmanQL\r
-    Dim rc, cmd, CheckMode, sInstalldir, fso, DrvInstalled\r
+    Dim rc, cmd, CheckMode, sInstalldir, fso, DrvInstalled, IBbusGUID\r
 \r
     ' Get the value of INSTALLDIR\r
     CheckMode = Session.Property("CustomActionData")\r
@@ -633,8 +633,8 @@ Function DriverInstall()
     Set fso = CreateObject("Scripting.FileSystemObject")\r
        \r
     If Not fso.FileExists(devmanEXE) Then\r
-        msgbox "Driver Install - missing file " & devmanEXE\r
-        DriverInstall=1\r
+        msgbox "Driver Install - missing file WinOF\" & devmanEXE\r
+        DriverInstall=ERROR_FUNCTION_FAILED \r
         Exit Function\r
     End if\r
 \r
@@ -643,50 +643,47 @@ Function DriverInstall()
     ' Display error number and description if applicable\r
     If Err Then ShowError\r
     If Return <> 0 Then\r
-        msgbox "Driver Install - HCA Ret " & Return & " Err " & Err\r
-        DriverInstall=Return\r
+        msgbox "Driver Install - failed device rescan? " & Return & " Err "_\r
+                               & Err\r
+        DriverInstall=ERROR_INSTALL_FAILURE\r
         Exit Function\r
     End if\r
                \r
     ' Install an HCA (Host Channel Adapter) Driver\r
+       ' Install mthca 2nd as it can tolerate a previously installed IBBUS driver.\r
 \r
     DrvInstalled = false\r
+       IBbusGUID = "{94f41ced-78eb-407c-b5df-958040af0fd8}"\r
 \r
-    ' XXX temp until Mx support for mthca & mlx4_hca co-loading works\r
-    ' [4-16-08] stan\r
+    ' ConnectX (mlx4) HCA?\r
 \r
-    If fso.FileExists(sInstalldir & "IBcore\mlx4_hca.inf") And _\r
-       fso.FileExists(sInstalldir & "IBcore\mthca.inf") Then\r
-            msgbox "HCA Driver - Error: loading InfiniHost and ConnectX " _\r
-                   & "Not Supported."\r
-            DriverInstall=ERROR_INSTALL_FAILURE\r
-            Exit Function\r
-    End If\r
-\r
-    ' InfiniHost HCA?\r
-    If fso.FileExists(sInstalldir & "IBcore\mthca.inf") Then\r
-        Return = WshShell.Run (devman & "update mthca.inf PCI\VEN_15B3",0,true)\r
-        ' Display error number and description if applicable\r
-        If Err Then ShowError\r
-        If Return <> 0 Then\r
-            msgbox "HCA Install - update mthca.inf PCI\VEN_15b3 Ret=" _\r
-                     & Return & " Err=" & Err\r
-            DriverInstall=ERROR_INSTALL_FAILURE\r
-            ' cleanup device database.\r
-            Return = WshShell.Run (devman & "remove PCI\VEN_15B3", 0, true)\r
-            Exit Function\r
-        End if\r
-        DrvInstalled = true\r
-    End if\r
-       \r
-    ' ConnectX HCA?\r
     If fso.FileExists(sInstalldir & "IBcore\mlx4_hca.inf") Then\r
+\r
                ' WORKAROUND - force load ibbus driver\r
-        cmd = devman & "install ib_bus.inf {94f41ced-78eb-407c-b5df-958040af0fd8}"\r
+        cmd = devman & "install ib_bus.inf " & IBbusGUID\r
         Return = WshShell.Run (cmd,0,true)\r
                ' END-WORKAROUND\r
-        cmd = devman & "update mlx4_bus.inf PCI\VEN_15B3"\r
-        Return = WshShell.Run (cmd,0,true)\r
+\r
+               Xdevs = Array("6340","634A","6354","6732","673C","0191")\r
+\r
+        For each dev in Xdevs\r
+                       cmd = devman & "update mlx4_bus.inf ""PCI\VEN_15B3&" & dev & """"\r
+                       Return = WshShell.Run (cmd,0,true)\r
+            If Return = 0 Then\r
+                DrvInstalled = true\r
+                Exit For\r
+            End If\r
+               Next\r
+\r
+               If DrvInstalled <> true Then\r
+            msgbox "HCA Install failed - mlx4_bus.inf PCI\VEN_15B3&DEV_*"\r
+            ' cleanup device database.\r
+            Return = WshShell.Run (devman & "remove PCI\VEN_15B3", 0, true)\r
+                       Return = WshShell.Run ( devman & "remove " & IBbusGUID,0,true)\r
+            DriverInstall=ERROR_INSTALL_FAILURE\r
+            Exit Function\r
+               End if\r
+\r
         cmd = devman & "update mlx4_hca.inf MLX4\CONNECTX_HCA"\r
         Return = WshShell.Run (cmd,0,true)\r
         ' Display error number and description if applicable\r
@@ -697,11 +694,40 @@ Function DriverInstall()
             DriverInstall=ERROR_INSTALL_FAILURE\r
             ' cleanup device database.\r
             Return = WshShell.Run (devman & "remove PCI\VEN_15B3", 0, true)\r
+                       Return = WshShell.Run ( devman & "remove " & IBbusGUID,0,true)\r
             Exit Function\r
         End if\r
-        DrvInstalled = true\r
     End if\r
 \r
+    ' InfiniHost HCA (mthca)?\r
+\r
+    If fso.FileExists(sInstalldir & "IBcore\mthca.inf") Then\r
+\r
+               DrvInstalled = false\r
+\r
+               devs = Array("5A44","5A45","6278","6279","6282","5E8C","5E8D",_\r
+                                        "6274","6275")\r
+        For each dev in devs\r
+            cmd = devman & "update mthca.inf ""PCI\VEN_15B3&DEV_" & dev & """"\r
+            Return = WshShell.Run (cmd,0,true)\r
+            If Return = 0 Then\r
+                DrvInstalled = true\r
+                Exit For\r
+            End If\r
+        Next\r
+\r
+               If DrvInstalled <> true Then\r
+            msgbox "HCA Install failed - mthca.inf PCI\VEN_15B3&DEV_*"\r
+            ' cleanup device database.\r
+            Return = WshShell.Run (devman & "remove PCI\VEN_15B3", 0, true)\r
+                       Return = WshShell.Run ( devman & "remove " & IBbusGUID,0,true)\r
+            DriverInstall=ERROR_INSTALL_FAILURE\r
+            Exit Function\r
+               End if\r
+    End if\r
+\r
+       ' an HCA driver is 'required'.\r
+\r
     if DrvInstalled = false Then\r
         msgbox "Driver Install - No HCA Driver Selected to Install?" & _\r
                "   Aborting Installation."\r