This topic is my reaction to situation with BIOS corruption problems on current ASUS boards and inability to recover from it using ASUS tools. I have started this projects on overclockers.ru forum about 6 months ago, and now the tools I developed are proven to be working, stable and reliable by large Russian overclockers community. At first, I didn't think about translating that to English, but I see many topics and messages all over the Internet, where people with CPU-multiplier stuck at 35x are asking for help, but receiving only responses like "Try to clear CMOS", "Buy new BIOS chip from EBay", "RMA the crap" etc. Enough of that! I apologize for my bad English, but I hope that it is much better that Google-translated one anyway. I'm open for contact, so if you have something to say - you are welcome. You make anything described below on your own risk, there is no perfect bug-free software and flashing the BIOS is dangerous. Be prepared and don't blame me, if anything goes wrong. In addition: using this flashing methods and modifying your motherboard data is not supported by ASUS in any way and it could void your warranty, if spotted. Please use normal ASUS solutions like EZ Flash or USB BIOS Flashback for performing updates of fully-functional BIOS. UPD: uploaded new versions of FTK8 (for C600/6/7 series chipsets, based on Intel FPT 8.1.40.xxxx) and FTK9 (for 8 series desktop chipsets, based on FPT 9.0.22.xxxx) Batch files for making your own FTK bundle are here: https://github.com/NikolajSchlej/FTK Contents 0. Problems and solutions. 1. UEFI BIOS and BIOS image file structures. 2. Flash Toolkit (FTK). 3. FD44Editor. 4. Preparing DOS-bootable USB-flash with FTK. 5. Using FTK to downgrade/reflash/update the whole BIOS or some regions only. 6. Using FTK to update ME from Intel BIN-file. 7. Using FD44Editor to add/edit individual board data in BIOS image. 8. Using FTK to flash modified BIOS file. 9. Recovering from unbootable BIOS using FD44Editor and hardware SPI-flash programmer. 10. Some additional notes. 0. Problems and solutions P: BIOS setup shows ME:N/A on Main tab. P: Turbo-multipliers are absent or not working. P: System detects all the RAM, but can use only a half of it. P: Integrated GPU is not working. S: ME region is corrupted. Reflash ME region, as described in section 5. P: Integrated Intel LAN can't start, code 10 in device manager. S: GbE region is corrupted. Reflash GbE region, as described in section 5. P: After BIOS update my MAC changes to 88:88:88:88:87:88. P: After BIOS update my software activation is lost. S: Edit your individual board data with FD44Editor and flash the modified BIOS, as described in sections 7 and 8. P: System is unbootable and remains unbootable after using USB BIOS Flashback. S: Transfer the data from BIOS dump to another BIOS file with FD44Editor and flash modified file to SPI-chip using hardware programmer, as described in section 9. 1. UEFI BIOS and BIOS image file structures The new UEFI BIOS is common for almost all modern boards and described in Intel documents, that are belong to TianoCore project. UEFI BIOS consists of the following: 1. Descriptor region. This region must present and the board is unable to boot if it becomes corrupted. Not affected by any ASUS BIOS tool, with one exceptions, that I describe later in section 5. Has Intel BIOS Region Lock bytes at 0x60 offset, that can prevent read and/or write access to another regions. Can be locked by region lock. Update is possible but brings nothing. 2. GbE region. Presents if and only if the board has integrated Intel LAN, with minor exceptios like Z77 WS, that has two Intel cards but no GbE region. Not affected by any ASUS BIOS tool. Has MAC-address of Intel card and some setups. Can be locked by region lock, can be updated using BIOS image, but I can't see any difference between old and new versions. 3. ME region. Must present in BIOS for boot, must not be corrupted for proper work. Has no unrecoverable data, so it can be reflashed without modifications. Affected by USB BIOS Flashback (only by flashing really old files like first BIOS releases, was disabled in new ones) and by ASUS MEUpdate tool. Can be updated with numerous benefits like Windows 8 support or ability to set tighter memory timings, but can bring issues as well. Typical firmware update. Update can be made using BIN-file or BIOS image with updated ME. Can be locked by region lock. 4. PDR region. Presents only on rare non-Asus OEM boards, consider it absent in 100% cases. 5. BIOS region. Finaly, the BIOS code and data. Has FD44 module with individual board data. Affected by any ASUS BIOS tool (Captain Obvious to the rescue ). Can be locked by region lock, but I haven't seen any board with locked BIOS region, because it will be unable to update BIOS on it. That was BIOS image structure, now about BIOS file structure. A BIOS file on modern ASUS board can be ROM-file or CAP-file. ROM files are simple BIOS images with Descriptor region start at 0x00. CAP-files or "EFI Capsules" are having 2kb Capsule/UBF header before start of Descriptor region. The problem with flashing the CAP-file with any non-ASUS tools is that: actual BIOS data that must be flashed to SPI-chip is started not at 0x00, but at 0x800 of that file. So, if you try to use FPT, flashrom or any other software programmer, that don't know anything about that 2kb header, it will be flashed on the place of Descriptor header in BIOS, that makes the PC unbootable and unrecoverable by UBF after that flash. You must remove that header before flashing CAP-files. FTK and FD44Editor do it automatically, but if you must do something with you BIOS by hands - you are warned. 2. Flash Toolkit (FTK) FTK is a set of utilities and batch files to flash BIOS on modern ASUS boards without losing individual board data such as System UUID, Motherboard S\N, DTS UltraPC key and Integrated MAC address. The toolset consists of the following: 1. Intel FPT, FwUpdLcl and MEInfo utilities, that do all the flashing work. 2. FD44Copier utility, that copies individual board data from one BIOS image file to another. 3. Bunch of batch files to make use of utilities above a bit easier for end-users. There are DOS and Windows versions of toolkit, but I'm using DOS one in this guide. If you want to use Windows version, run commands described below, that are represented by batch files, as Administrator, but it is dangerous to flash BIOS under Windows, so I don't recommend to use it. The use of different parts of FTK is described below. FD44Copier source code is BSD licensed and available on Github. The latest version of FTK you can find here in my original topic on overclockers.ru. 3. FD44Editor FD44Editor is GUI-based editor for ASUS BIOS image file, capable to view BIOS information like board name and versions of BIOS, ME and GbE and to add or edit individual board data. The utility is named after the GUID of EFI-file containing individual data on ASUS boards (FD44820B-F1AB-41C0-AE4E-0C55556EB9BD). The GUI looks like this, if you open your BIOS backup: The use of FD44Editor is described below. FD44Editor source code is BSD licensed and available on Github. The latest version of FD44Editor you can find here in my original topic on overclockers.ru. 4 .Preparing DOS-bootable USB-flash with FTK Before the middle of last month I used Windows-versions of FTK, but then testers realized that there are many programs like antiviruses or virtualization tools that can interfere with flashing process and it can lead to unbootable systems. Because of that, I decided to make DOS-version the one and only. But for using it, you must boot to DOS first. For anyone that can do it right now - read next sections, instructions for other people are here. 0. Insert your empty USB-flash drive. 1. Download Bootable USB Drive Creator, unpack and run it. 2. Select the option "Create Bootable Drive" and select MS-DOS folder, that was unpacked at step 1. Other options are for you to set. 3. Press Start and wait for program to finish. 4. Download the latest version of FTK (link is section 2) and unpack it to the USB-flash root folder. 5. Your FTK-flash is ready. Try to boot to DOS from it. If it boots - cool, if not - try another utilities like Rufus or Grub4Dos. 5. Using FTK to downgrade/reflash/update the whole BIOS or some regions only This is the main section of all of that topic. Most of problems caused by BIOS corruption can be solved using one of the following methods. For using any of that methods you need FTK-flash created in section 4. Boot to DOS and enter one of the following commands. 0. Making BIOS backup copy. Command: backup. Use it if you need to make a backup copy of your current BIOS. It is recommended to make a backup copy and store it to independent location before any flashing. Almost all other commands that involve flashing are making a backup before doing anything, so use it only if you need to store backup in some different place. This command can be used to see if your BIOS is locked by Region lock, because it will fail with Error 26 if any region is locked. There are three methods of unlocking BIOS: 1. Powering the system on with GPIO line 33 pinned to GND with 1k resistor. Almost impossible on ASUS boards. 2. Using EZ flash to update BIOS from ME7 one to ME8 one. The ME update process after the first reboot will disable this lock. It is available only on relatively old boards. 3. Writing 00 00 FF FF 00 00 FF FF 18 01 FF FF to 0x60 offset of BIOS in SPI-chip with hardware programmer. The ultimate solution, but if you have hardware programmer, you don't need FTK anyway. Now I am working on BIOS modification to prevent that lock from working, and I have some relatively good ideas of how to do that, but there is no actual code now, so you have to wait. The output file of that command is called "backup.bin". 1. Restoring BIOS from backup copy. Command: restore. The backup file must be named "backup.bin" and placed near FTK files. Use it to restore BIOS from previously taken backup. The command works as follows: Intel FPT erases all chip then flashes backup.bin to the chip as is. If the backup and the current BIOS have different ME versions, you need to use poweroff command after successful restoration to ensure ME restart. ME is powered with standby power line and doesn't restarts on normal reset, so you must use that command or remove power completely and wait for 30 secs to reset ME state. If they have same versions - normal reset is enough. 2. Flashing BIOS region only. Command: biosrefl. The BIOS file to flash must be named "bios.bin" and must be in the same directory with FTK. You must use a BIOS file for your board. Use it to reflash/update/downgrade your BIOS region. It is the same BIOS reflash procedure as performed by ASUS BIOS tools with one difference - it's a reflash, so the region is fully erased before writing new data. It takes about 1.5x longer to flash that way, but it guaranties that old BIOS will have no influence to new one. The command works as follows: Intel FPT makes BIOS backup copy named backup.bin. Then FD44Copier copies FD44 module contents and SLIC tables (if present) to bios.bin file, checking if that file has the same motherboard name in it as backup file. Then it removes CAP-file header (if present) from bios.bin file. Then FPT erases BIOS region and flashes BIOS region from bios.bin file to BIOS chip. If something goes wrong, the error message will be shown. If so, you can use restore command to restore your BIOS to previous state. ME and GbE are not affected, so there is no need to remove power or use any commands, normal reset is enough. 3. Flashing GbE region only. Command: gberefl. The BIOS file to flash must be named "bios.bin" and must be in the same directory with FTK. You can use a file from another board as GbE source. Use it to reflash/update/downgrade your GbE region. The command works as follows: Intel FPT makes BIOS backup copy named backup.bin. Then FD44Copier copies MAC to bios.bin file. Then it removes CAP-file header (if present) from bios.bin file. Then FPT erases GbE region and flashes GbE region from bios.bin file to BIOS chip. If something goes wrong, the error message will be shown. If so, you can use restore command to restore your BIOS to previous state. Again, no need to use anything special, normal reset is enough. 4. Flashing ME region only. Command: merefl. The BIOS file to flash must be named "bios.bin" and must be in the same directory with FTK. You can use a file from another board as ME source. Use it to reflash/update/downgrade your ME region. Do not flash ME8_1.5M_Production.bin or similar 1.5M sized binaries from Intel that way, it will render your board unbootable! If you need to update ME using that kind of file, please use the method described in section 6. The command works as follows: Intel FPT makes BIOS backup copy named backup.bin. Then FD44Copier removes CAP-file header (if present) from bios.bin file. Then FPT erases ME region and flashes ME region from bios.bin file to BIOS chip. If something goes wrong, the error message will be shown. If so, you can use restore command to restore your BIOS to previous state. You need to use poweroff command after successful flashing to ensure ME restart. ME is powered with standby power line and doesn't restarts on normal reset, so you must use that command or remove power completely and wait for 30 secs to reset ME state. 5. Flashing the whole BIOS. Command: reflash. The BIOS file to flash must be named "bios.bin" and must be in the same directory with FTK. You must used a BIOS file for your board. Use it to reflash/update/downgrade all BIOS regions including Descriptor and PDR (if present). Works totally like biosrefl, but flashes not only BIOS region, but all of them. You need to use poweroff command after successful flashing to ensure ME restart. ME is powered with standby power line and doesn't restarts on normal reset, so you must use that command or remove power completely and wait for 30 secs to reset ME state. 6. Using FTK to update ME from Intel BIN-file There is another way to update ME region, but you need an update BIN-file from Intel, and your current ME must not be corrupted. If you meet both of that restrictions, you can use FTK to update ME from that BIN-file. Command: meupdate. The BIN-file must be named "me.bin" and must be in the same directory with FTK. After the flashing ends, simple reset is enough, because Intel MEUpdate tool is able to reset ME without need of any further steps. 7. Using FD44Editor to add/edit individual board data in BIOS image In cases of BIOS corruption, BIOS data loss during flashing with AFUWIN or any other tool, etc. you can use FD44Editor to restore your board data. The best way to restore them is opening one of your BIOS backups, that was made before the loss of data, and saving all data to new BIOS file. You can use any sort of backup, including backups made by ASUS BIOS tools, as individual data source, but you must not use that kind of backups to restore using "backup" command - it will render your board unbootable. 1. You have BIOS backup made before data loss. 1. Download FD44Editor (link in section 3), unpack and run it. You will see something like this: 2. Open your backup using "Open from BIOS image file..." button. You can open the file by dragging your backup file onto program icon or window too. If the backup you opened has empty data module, this message will be shown: Try opening another backup, if you have one. If not - read instructions on restoring data from board stickers below. If data module is not empty, but motherboard model in opened backup file is unknown to current version of program, this message will be shown: Please consider sending your backup to me, I will add support of that board to next version of editor. If your board is known to program, the data will be shown: You don't need to edit anything, if you want only to restore data in your BIOS. 3. Press "Save to BIOS image file.." button and select new BIOS file downloaded from asus.com site. The program can't create a new BIOS file, it can only add or replace data in existing one. Confirm writing to existing file. If you have rights to write to that file and no errors are occurred, you will see "Written: BIOSFILENAME.bin" in programs status bar. BIOS file extension will be changed to BIN to prevent confusion between modified and original BIOS files. This modified file is ready to be flashed to BIOS chip as is using any BIOS programming solution like Intel FPT, AFUWIN, flashrom or hardware SPI-programmer. I will use FTK to flash it, the method is described below. 2. You don't have any BIOS backups made before data loss. In this case you must use stickers on board as data source. I have described them once in another topic of this forum, but it will be better to repeat myself here. Motherboard S\N sticker can look like this: It has 12 significant symbols, and as far as I know, first 3 symbols of MBSN on boards with this type of sticker are Mx7, replacing x with capital letter. 90% of boards have MT7. So for that board MBSN appears to be MT7014K35900867 with 90% chance. Or it can look like this: It has 15 significant symbols, so for that board MBSN is 110294130003150. DTS Key sticker always look like this: Yellow, 8 bytes in hex. MAC address sticker looks like this: 6 bytes in hex, located near RJ45, on ATX24 or on SATA connectors. Only System UUID can't be fully restored from stickers, but it can be reconstructed using this rules: 1. If your board has DTS key sticker, then bytes 3 - 10 of UUID are same. 2. It can be any random bytes except 00 and FF. Now about data format setup. If your board is known by current version of FD44Editor - do not alter that values, defaults is your choice. If not, use the following rules to setup your data format correctly: 1. Open your latest BIOS file from asus.com in editor. It is empty and unknown to program, but please look at GbE version. If it is present, then your MAC storage is definitely "GbE region and system UUID". If not - set "ASCII string and system UUID". 2. You can set any value for ASCII MAC magic byte, but all boards I have seen are using values from 20 to 2F. 3. Select "None" as DTS key type, it is safe. If you wish to select "Long" DTS key type anyway, use "Default" as DTS Magic string. After filling all text boxes, save the data to BIOS image file from asus.com. The extension of that file will be changed to BIN and you can flash this modified BIOS image to BIOS chip as is with any programmer. 8. Using FTK to flash modified BIOS file To flash BIOS files modified by FD44Editor you can use FTK-flash created in section 4. Copy you modified BIOS file near FTK files and rename it to "prepared.bin" Boot to DOS and use flashprp command. It works totally like restore command described in section 5, but uses different source file name. If you flash BIOS with different ME version then current one, you need to use poweroff command after successful flashing to ensure ME restart. ME is powered with standby power line and doesn't restarts on normal reset, so you must use that command or remove power completely and wait for 30 secs to reset ME state. If they have same versions - normal reset is enough. 9. Recovering from unbootable BIOS using FD44Editor and hardware SPI-flash programmer Because of lack of descriptor and ME reflashing option in USB BIOS Flashback on modern boards, you must use hardware SPI-programmer to recover the BIOS, that is unable to boot at all. You can use any programmer that supports your board, even another board with same BIOS size and unlocked BIOS regions (i.e using hot swap of BIOS chips). 1. Make a dump of current BIOS chip and open it in FD44Editor. If there is no errors and all the data are present - excellent. If not - use information in section 7 to restore data from stickers. 2. Save the data to the latest BIOS file downloaded from asus.com. 3. Write that modified file to BIOS chip as is. If you are using hot swap, power the PC off right after the end of writing. 10. Some additional notes Now I'm working on OROM updating utility, that will be added to that topic as soon as it will be finished. For anyone, who is interested in BIOS patching to enable Hackintoshed OS X native SpeedStep implementation in ASUS, MSI, Asrock, Dell and Lenovo BIOSes - here is my automated solution. As always, BSD licensed and available on Github. Feel free to try and comment. And good luck with your BIOS flashing.