Reverse engineering ATTO 40gb card (Mellanox CX3-Pro)

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

thefloyd

New Member
Dec 21, 2020
29
7
3
hey STH folks!

I've been trying to get a Mellanox CX3-Pro working on my Mac with the ATTO drivers (FastFrame NQ42 firmware). It appears that ATTO decided to stash the MAC address for the card in the NVRAM as a means of preventing people from simply cross-flashing the firmware and using their drivers though, as the card refuses to come up in OSX and, upon inspection, the driver/card shows a MAC address of 00:00:00:00:00:00. This has *nothing* to do with the actual MAC address of the card though as dropping the card back in a regular Linux host allows it to operate fully normally (MAC address isn't missing, etc).

The ATTO NVRAM allows you to modify the NVRAM and dump/restore the NVRAM to a file but doesn't allow set/change of MAC address. This is where my reverse engineering-fu kinda falls short. It sure seems like someone who could figure out the format of the NVRAM and how the checksum is calculated could figure out where to put the MAC address in a saved NVRAM file, fix the checksum, and re-load the NVRAM to the card. I'm unfortunately not that someone. I got as far as trying to blindly experiment but really I've reached the end of my abilities here.

Is anyone with reverse engineering talent interested in helping out here (maybe the ever talented Mr @fohdeesha??)? It'd be great if those of us who don't have stupid money but still want to play with fast networks could figure out how to get this stupid card working under osx!
 
  • Like
Reactions: azerobest

rolotrealanis

New Member
Jul 6, 2025
1
0
1
were you able to get a a NVRAM dump for this card? I'm facing the same issue trying to get this card to work on mac os. only missing writing new mac addresses to the nvram.
 

Civiloid

Active Member
Jan 15, 2024
229
174
43
Switzerland
Is anyone with reverse engineering talent interested in helping out here (maybe the ever talented Mr @fohdeesha??)? It'd be great if those of us who don't have stupid money but still want to play with fast networks could figure out how to get this stupid card working under osx!
I don't know about CX3, but for CX4 and 5, Atto checked PSID of the firmware, so you needed to extract the relevant section from upstream, swap PSID, recalculate checksum, replace section in original firmware. However all tools that I know works only with FS4 firmwares (from CX5 until CX7) and easiest way was to just swap IMAGE_INFO section (`mstflint -i <file> v` would print the section list with addresses, so in theory you can just swap one for another if their size matches).

Alternatively, for CX3 there is still mlx file available (https://forums.servethehome.com/index.php?threads/connectx-3-custom-firmware-files.39457/ might help, there are names for the files and there were somewhere links still available) which is XMLified Perl script that given configuration INI file produced a firmware - therefore you can in theory dump ini file from ATTOs firmware (`mstflint -i <FILE> dc`) and from modern firmware and compare them and maybe that would have some clues how to make it read correct MAC address.

But IMHO CX5 is better in all ways and easier to hack around.