bad news and good news: bad news, it doesn't work. I carefully flashed the CX3pro firmware, replaced the missing GUID and MAC strings since the raw flash erased these. Then did a dump of the onboard flash to verify it wrote the image to the correct location - it did, everything was exactly as it should be. However it just doesn't work - doesn't even get recognized, is totally bricked. So it seems the conclusive answer is you can NOT crossflash a CX3 to CX3pro - even though the ASIC is the same according to Mellanox stock brand images, I suspect they're actually 2 different variants.
Good news: Mellanox was smart enough to put a backup flash partition on the card, with just basic enough boot code to boot the card into "recovery mode" where you have access to the onboard flash and not much else. between thinking ahead like that, their open source firmware tools, the ability to crossflash pretty much everything they sell - you can tell Mellanox is ran by proper engineers - they have quickly become my favorite NIC vendor for many reasons.
Anyway, to recover from a brick
@Hindsight you need to short out the 2 "flash present" pins on the card - this is how it knows to boot into recovery mode:
You can just short them out with some wire, or something, just make the two pads touch somehow. I ended up just soldering a little 2 pin header there, so I could use a standard mobo jumper to short them out:
Before putting it back in your server, take a pic of the rear sticker, or otherwise take note/write down the GUID and MAC values of the card (on the rear sticker). Then put the card back in your server and boot. then do the following to dump a working image back to flash:
Code:
#start the MST service
mst start
#get the device address, there will be just one pciconf device since it's in recovery
mst status
#use that address in the below command if it differs from the example
#get the GUID and MAC from the card, should be on rear sticker. stick them in the below command
#keep the leading "0x" before your values
#If you're lazy, use my values below
#If you use mine, don't sneak into my house and put that card onto my network or we'll have MAC collisions
#flash the MCX-354A-FCBT image back, might have to change the filename to cx3-fcbt.bin or change the command
flint -d /dev/mst/mt502_pciconf0 -i cx3-fcbt.bin -guid 0x24be05ffff8b97a0 -mac 0x24be058b97a1 -nofs burn
it will ask if a blank VSD is ok, choose yes (most are shipped with blank VSD's, perfectly normal - it's an optional OEM string). It'll then flash the image after asking you to verify a couple times.
when done, power the server off, remove the card, and remove your jumper. Put the card back in and boot normally - the card should be back and functional