Fix a bricked/dead AQC107 NIC after firmware update gone wrong

TL;DR If your NIC is also bricked because you flashed in an incompatible firmware:

  • Install an older version of Windows
  • Disable Secure Boot from BIOS, and disable driver signature check with bcdedit
  •  Use Aquantia AQtion diag tool to flash the backed-up firmware dump back to the NIC
  • ???
  • Profit!

Lucky me, I bricked by ASUS XG-C100F NIC because of the stupid superstition on getting the latest firmware. On ROG forum people suggest that AQC107 has a way more recent firmware of version 4.2.x, while the latest version on Marvell (they bought Aquantia) website is only 3.1.121a.

While updating to the 4.x version requires you to force the update, I still pressed "y" without hesitation. And then after freezed for ~15 mins, the update program finally tell me that the driver failed to load the new firmware, and ask me to reboot the computer. Oh well...

The problem is that after reboot, Windows driver will report code 10 error. I figured out what's going on when I boot the computer with Linux - it seems atlantic driver (the official driver for Aqtion series NICs) cannot start the firmware (atlantic: FW kickstart failed). That's quite obvious, isn't it? The firmware update gone horribly wrong! Even better, the firmware update tool won't recognise the NIC entirely, even if the device is still there in the device manager.

When I check various other firmware update posts, it comes to my knowledge that Aquantia has a Diagnostic tool that can be used to flash firmware, too. I managed to find a version from Dell's website. Quite nice that this package contains the diag tool for both Windows and Linux. But after some messing around with Ubuntu Live, the package just keeps failing to install, something to do with the kernel driver compilation. Since the tool is quite old (circa 2017) and I don't have a copy of older Ubuntu, I gave up on the Linux entirely.

However it seems Windows 11 REALLY doesn't like Aquantia's diag mode driver, even with driver signature enforcement off. Based on the clue that the tool is old, earlier version of Windows 10 should work. I eventually used Windows To Go with LTSB 2016 for the entire process. With driver signature check disabled, it successfully installed the diag mode driver, and can recognise the card now!

When I use the diag tool to check the card info, MAC address is gone (ouch). Thankfully, the firmware update tool always make a backup of the flash, which means we should be able to recover the card back to its original state without loosing the configuration. Also because the card is losing configuration, the diag tool may warn you that the image you're about to flash is incompatible (MAC flash bdp and clx bdp differ), and is slow as hell to read the configuration (~10 minutes at a time).

So, here's how to restore the backed up firmware of your card and unbrick it:

What you need: the backed up firmware (should be in "logs" folder next to "atlflashupdate.exe"), a copy of proper firmware (such as 3.1.121a, not necessary, just in case), an old Windows 10 installation (I recommend Windows To Go if it's a problem to reinstall the OS) and the Aquantia AQtion diag tool (I'll use the Dell version)

  1. Boot into the old Windows 10, disable driver signature check (instructions), reboot and disable Secure Boot in the BIOS
  2. Boot back into the old Windows 10, unzip the diag tool downloaded. Open a bunch of ZIP files and you should be able to find the Windows 64 version of Diag 2.10 tool. Unzip it to somewhere convenient. I put it in "C:\diag"
  3. Copy the firmware backup dump into the same folder. Better rename it to something easier to type, like "fwbackup.bin"
  4. Open an Administrator command line prompt (do NOT use PowerShell!), Run the diag tool with diag driver installation and interactive mode
    "diag.exe -k -i"
  5. This will take forever - after the first few minutes, you'll see the tool correctly read the flash model. After another long wait, you should see the interactive menu
  6. Select the options for Flash, then use the update firmware feature, enter the filename for the firmware backup dump
  7. If asked for MAC bdp differ message, choose to use the one from clx, not flash (as flash may not have MAC address anymore)
  8. This should flash the backup dump back to the card. Once finished, you can check the configuration in the menu and see if MAC address comes back
  9. If everything works well, reboot computer back to your normal OS, and you should see the NIC works just like before!

I can't guarantee that this will work, so if it breaks (haha) it's not my problem (well, I mean, how more dead it can be?)

N.B. This article mentions that the atlflashupdate.exe comes with recovery mode. But I doubt it will work if the update tool can't even detect the NIC.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.