Friday, May 15, 2020

Fix Missing or Nonfunctional Intel(R) Ethernet Controller After AMI BIOS Recovery

Fix Missing or Nonfunctional Intel(R) Ethernet Controller After AMI BIOS Recovery

After carrying out the AMIBOOT.ROM AMI BIOS Recovery on an AMIBIOS8 system, you may experience the Intel(R) Ethernet Controller no longer being detected or becoming nonfunctional (with message "This device cannot start. (Code 10)" being shown for the controller's device status in Device Manager).

In this case, this is due to the ethernet controller's firmware configuration being erased as part of BIOS recovery. You can check to see if this was the case by going to the Details tab for the device, and then selecting "Hardware Ids" from the dropdown menu. If the part after "SUBSYS_" is all zeros, then this means the adapter's firmware is likely not initialized.

If this is the case, you now need to check what the controller's original hardware ID was. To check it, open Registry Editor, then go to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\.

Expand each of the keys within this key that start with "VEN_8086" (indicating manufacturer is Intel(R)), and click on the key underneath each one, until you find an entry with the "FriendlyName" value being the name of the Intel(R) ethernet controller.

Note down the value stored in "HardwareID".

Now, you will need to find a computer that has the same ethernet controller. For example, the Sony VAIO VGC-JS290J computer has the same model ethernet controller as the Sony VAIO VPC-L148FG computer. The computer does not necessarily need to have the same SUBSYS ID, it only needs to have the correct DEV ID. However, it will result in your target computer having an ethernet controller with the same SUBSYS ID as that of the computer from which you saved the firmware configuration (this still makes it functional). If you want it to have the original SUBSYS ID, you may be able to modify the file using a hex editor (WARNING: This may brick the adapter if there is a checksum enforced within the file), or follow the alternative method below (WARNING: I did not test this alternative procedure).

If you are able to find such a computer, download the Intel(R) Flash Programming Tool (part of the Intel(R) ME/CSME System Tools) at the following location: https://www.win-raid.com/t596f39-Intel-Management-Engine-Drivers-Firmware-amp-System-Tools.html. You will need to read the instructions on the page to determine the Intel(R) ME version on your computer (which is based on your computer's chipset).

WARNING: Intel(R) Flash Programming Tool (Intel(R) FPT) is a very powerful tool that can brick your computer's BIOS if you flash the wrong file or a file with the incorrect size! Make sure you specify "-GBE" at the end of the command or otherwise you will accidentally flash the ethernet controller configuration file to the wrong region of the BIOS chip and brick your computer!

On the computer with the functional ethernet controller, run "FPTW64 -d EthernetROM.bin -GBE" (use FPTW if your computer is 32-bit). This will dump the functional ethernet controller configuration to the same directory as the Flash Programming Tool. Copy this file, along with the correct version of the Flash Programming Tool, to the computer with the broken ethernet controller.

On the target computer, run "FPTW64 -f EthernetROM.bin -GBE" (use FPTW if your computer is 32-bit). This will flash the ethernet controller configuration with that of the other computer.

Restart your computer. If the configuration was suitable for your target computer, your ethernet controller should now be functional.

Alternative Method: If your computer manufacturer has a BIOS upgrade available on the support website:

WARNING: I have not tested this method to see if it works since the previous method worked for me.

Download the AMI BIOS ROM Utilities Collection from http://bit.ly/BIOSUtils. Also download the BIOS ROM file from your computer manufacturer and extract its contents until you get the raw .ROM file (you may need to run the executable file and go to %LOCALAPPDATA%\Temp\ to find the most recent folder, which will probably contain the BIOS file).

Open the BIOS ROM file in the newest version of MMTool (see within MMTool folder in the collection) that suits your BIOS version (for legacy AMIBIOS8 systems, use MMTool 3.26). Select the "RomHole" tab. Extract each of the RomHoles that has "YES" indicating something is stored inside that location. Using a hex editor, open each file, until you see one with hex values "86 80" (representing 8086 for Intel(R)) and then the hardware ID of the ethernet controller (reversed by each pair of digits).

Download the Intel(R) Flash Programming Tool (part of the Intel(R) ME/CSME System Tools) at the following location: https://www.win-raid.com/t596f39-Intel-Management-Engine-Drivers-Firmware-amp-System-Tools.html. You will need to read the instructions on the page to determine the Intel(R) ME version on your computer (which is based on your computer's chipset).

Copy the saved RomHole file with the hardware ID of your ethernet controller to the Flash Programming Tool directory as EthernetROM.bin.

Run "FPTW64 -f EthernetROM.bin -GBE" (use FPTW if your computer is 32-bit). This will flash the ethernet controller configuration with that from the BIOS ROM.

Restart your computer. If the configuration was suitable for your computer, your ethernet controller should now be functional.

If the ethernet controller still does not work, try using AFUWIN to flash the corresponding RomHole on your computer (use /? and consult the PDF within the suitable AFUWIN folder of the collection to see the suitable parameter for doing so).

DISCLAIMER:

DISCLAIMER OF WARRANTY
YOU ACKNOWLEDGE AND AGREE THAT THE ABOVE PROCEDURE (THE "PROCEDURE") IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND. ALL WARRANTIES, CONDITIONS, REPRESENTATIONS, INDEMNITIES AND GUARANTEES WITH RESPECT TO THE PROCEDURE, WHETHER EXPRESS OR IMPLIED, ARISING BY LAW, CUSTOM, PRIOR ORAL OR WRITTEN STATEMENTS BY HHSOFT OR OTHERWISE (INCLUDING, BUT NOT LIMITED TO ANY WARRANTY OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT) ARE HEREBY OVERRIDDEN, EXCLUDED AND DISCLAIMED.

DISCLAIMER OF DAMAGES
UNDER NO CIRCUMSTANCES WILL HHSOFT, ITS LICENSORS OR ITS OR THEIR RELATED COMPANIES BE LIABLE TO YOU FOR ANY DIRECT, CONSEQUENTIAL, INDIRECT OR SPECIAL, PUNITIVE OR INCIDENTAL DAMAGES RESULTING FROM YOUR USE OF THE PROCEDURE AS SPECIFIED ABOVE, WHETHER FORESEEABLE OR UNFORESEEABLE, BASED ON YOUR CLAIMS OR THE CLAIMS OF ANY THIRD PARTY, WHETHER BASED ON THIS AGREEMENT, ANY COMMITMENT PERFORMED OR UNDERTAKEN UNDER ON OR IN CONNECTION WITH THIS AGREEMENT OR OTHERWISE.