A customer recently asked, "When adding a new InfiniBand switch to an existing fabric, should the firmware on the existing switches be upgraded to the version of the firmware on the new switch before connecting the new switch?"

It is not required for all switches in an InfiniBand network to have matching firmware.  Since adding a switch often coincides with cluster downtime, that may be a natural time to update the firmware anyway.

First, get a list of your switches and the current firmware running on them.  To list your switches, run 'ibswitches'.  Each switch will be listed with the GUID, the number of ports, a descriptive name, and the LID of the switch itself.  Next, using the LID from each switch, run 'mstflint -d lid-LID q'.  This will query the switch, listing some details about the switch, as well as the installed firmware.

Next, to see if you want to update the firmware in your switches, start by looking at the release notes for the current release.  See http://www.mellanox.com/page/firmware_table_SwitchX for a list of available firmware, and the release notes for it.  The release notes do an excellent job of listing bug fixes, when they were discovered, and when they were fixed, as well as new features and known issues.  If there are no issues that affect your installation, it might be preferable to save time or avoid the risk of a bad flash operation than updating.
If you do want to update the firmware, find the user manual for your switch at the Mellanox Switch web page (http://www.mellanox.com/page/switch_systems_overview).  The steps for updating the switch firmware are listed in the user manual.  mstflint, as used above, can be used for flashing the firmware in liu of installing Mellanox's MFT package.