I remember that after modifying the BIOS for the P9X79 Pro board, the FlashBack function stopped working. It turned out that the original EEPROM chip (W25Q64BV) has 8MB and is too small, the code related to FlashBack may be cut off and therefore this function does not work.
Interestingly, I have similar chips (W25Q128FV) with a capacity of 16MB and after programming the same CAP file (NVMe & ReBAR Mod), it turns out that the code is cut off on the 8MB version at address 0x007FFFF0 and I’m surprised that my computer currently works on this “shortened” BIOS.
My modded BIOS for ASUS P9X79 Pro (NVMe + ReBAR): P9X79PRO (ReBAR).zip (5.0 MB)
CH341A Back EEPROM USB Programmer: LINK
NeoProgrammer v2.2.0.10 Tool: LINK
I’m trying to make sense of this and I don’t understand why the same CAP file has different sizes when programmed on an 8MB and 16MB chip. As you can see in the first screenshot, there’s definitely some code missing on the 8MB chip.
The file has always the same size:
0x0 - 0x800 is a capsule needed only for manufacturers flashing software, to be removed when flashing with a programmer
0x800 to 0x800800 is the firmware which belongs on that SPI chip
What belongs on the chip begins in the area marked in blue:
You are right about the size of the firmware - it is always 8MB. The screenshot shows that my programmer must have had a failure, because the next time the images on the 8MB and 16MB chips were identical. Interestingly, the 16MB chip works on my board, but with this image there is no difference from the 8MB chip.
I used the MEInfo tool to check my Management Engine and it is likely that after modifying the BIOS it loses the OEM Id, which is (probably) why the ME version does not appear in the BIOS.
Flashing the 8MB CAP file onto a 16MB chip won’t work because the BIOS firmware is still expecting an 8MB layout. The flash header and other regions in the BIOS are hardcoded to work with the original chip size, so you’ll need to modify the BIOS to recognize and utilize the larger chip.
Here’s how you can approach this:
1. Understand the Flash Descriptor:
The BIOS firmware includes a Flash Descriptor that defines the layout of the EEPROM chip (e.g., regions for BIOS, ME, GbE, etc.).
When you upgrade to a larger chip, you need to update the Flash Descriptor to reflect the new size and layout.
2. Modify the Flash Descriptor:
Use a tool like Intel Flash Descriptor Tool or UEFITool to extract and edit the Flash Descriptor in your BIOS CAP file.
Update the descriptor to account for the larger chip size (16MB instead of 8MB).
Ensure the regions (e.g., BIOS, ME, GbE) are correctly mapped to the new chip layout.
3. Expand the BIOS Region:
If you want to use the extra space for additional modules (e.g., ReBarUEFI, NVMe drivers), you’ll need to expand the BIOS region in the Flash Descriptor.
Be careful not to overlap with other regions (e.g., ME or GbE).
4. Rebuild the BIOS CAP File:
After modifying the Flash Descriptor, rebuild the BIOS CAP file using a tool like AMIBCP or UEFITool.
Ensure the checksum is recalculated to avoid corruption.
5. Flash the Modified BIOS:
Program the modified CAP file onto the 16MB EEPROM chip.
Install the chip on the motherboard and test.
Tools You’ll Need:
Intel Flash Descriptor Tool: For editing the Flash Descriptor.
UEFITool: For analyzing and modifying the BIOS structure.
AMIBCP: For rebuilding the BIOS CAP file.
EEPROM Programmer: To flash the modified BIOS onto the new chip.
Why the 8MB CAP File Doesn’t Work on the 16MB Chip:
When you flash the 8MB CAP file onto a 16MB chip, the firmware doesn’t know how to handle the extra space. The Flash Descriptor still expects an 8MB layout, so it ignores the additional capacity. By updating the descriptor, you tell the firmware to use the full 16MB.
[AI DeepSeek - Part 2]
Having spare chips and a hardware programmer makes you practically invincible when it comes to BIOS modding—no fear of bricking since you can always swap chips and try again. Let’s dive into the details and get this working for you!
Step-by-Step Plan to Modify the BIOS for the 16MB EEPROM Chip
1. Extract the Flash Descriptor:
Use UEFITool to open your original 8MB BIOS CAP file.
Look for the Flash Descriptor region. It’s usually located at the beginning of the BIOS file.
Extract the Flash Descriptor and save it as a separate file.
2. Modify the Flash Descriptor:
Open the extracted Flash Descriptor in a hex editor (e.g., HxD).
Locate the section that defines the chip size. This is often a set of values that specify the total size of the EEPROM (e.g., 0x800000 for 8MB).
Change the size value to 0x1000000 (16MB in hexadecimal).
Ensure the regions (BIOS, ME, GbE, etc.) are correctly mapped to the new chip size. You may need to adjust the offsets for each region to avoid overlaps.
3. Rebuild the BIOS CAP File:
Use UEFITool to replace the original Flash Descriptor with your modified one.
Save the new BIOS CAP file.
4. Expand the BIOS Region (Optional):
If you want to use the extra space for additional modules (e.g., ReBarUEFI, NVMe drivers), expand the BIOS region in the Flash Descriptor.
Adjust the size and offset of the BIOS region to fill the additional space on the 16MB chip.
5. Rebuild the Checksum:
Use AMIBCP to open the modified BIOS CAP file.
Rebuild the checksum to ensure the BIOS is valid.
Save the file.
6. Flash the Modified BIOS:
Use your hardware programmer to flash the modified BIOS CAP file onto the 16MB EEPROM chip.
Install the chip on the motherboard and test.
Expected Results:
The motherboard should boot normally, and the BIOS should now recognize the full 16MB capacity of the chip.
If the IME version issue persists, we can revisit the BIOS structure to ensure the IME module is intact and properly mapped.
Troubleshooting Tips:
If the motherboard doesn’t boot, double-check the Flash Descriptor modifications. A small error in the offsets or sizes can cause issues.
Use UEFITool to compare the original and modified BIOS files. Look for any discrepancies in the module layout.
If you’re unsure about the Flash Descriptor changes, you can share the original and modified BIOS files (or relevant sections), and I’ll help you analyze them.