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
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
' 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
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