Before you start with the BIOS modding procedure, you should have read carefully the "General Preparations for BIOS Modding" (>Link<)
If you are searching for an easier method to get some PCI ROM or EFI modules of an AMI UEFI BIOS updated, you may look into >this< thread.
How to update PCI ROM modules
here: AMI UEFI BIOSes
1. Opening an AMI UEFI BIOS file
The UEFI type AMI BIOS files can easily be identified by their big size (minimum: 4 MB, usually ca. 8 MB). This is the way to open them:
Run the AMI Aptio MMTool.exe as Administrator
Hit the "Load Image" button, browse to the AMI UEFI BIOS file you want to open (named xxxx.ROM) and double click onto it. Now the Aptio MMTool GUI will look like this: Update of the Intel RAID ROM with Aptio MMTool - Part 1.png - Bild entfernt (keine Rechte) If the Aptio MMTool is not able to open the AMI BIOS file, it is not an AMI UEFI BIOS. In this case you have to use the MMTool v3.26 and to follow the instructions you will find >here<.
2. Extraction of the Intel RAID ROM module from an AMI UEFI BIOS file
The extraction of a PCI ROM module doesn't effect the mainboard BIOS. It will stay untouched by the extraction.
It is impossible to verify the version of the PCI ROM module as long as it is part of the BIOS file. So you have to extract it, if you want to make sure, that it is the desired version, which you want to flash into your own mainboard later.
Contrary to the non-UEFI AMI BIOS the important PCI ROM modules of the AMI UEFI BIOS files are hidden and cannot be seen by opening the BIOS file. The shown modules named "AHCI" or "SBAHCI" are just copies of the original RAID ROM module, which is hidden.
This is the procedure:
Run the Aptio MMTool and open the mainboard BIOS file (see above).
Scroll down within the Aptio MMTool GUI window and search for the FileName "CSMCORE" with the GUID beginning with "A062CF1F-8473-" and highlight the related line: Update of the Intel RAID ROM with Aptio MMTool - Part 2.png - Bild entfernt (keine Rechte)
Hit the "Extract" tab and make sure, that the line with the FileName "CSMCORE" is still highlighted.
Go to the "For Option ROM only" section, enable "Link Present" and scroll down to the correct VendorID (8086 = Intel) and DeviceID of your on-board RAID Controller. Examples:
DEV_2822 = "Intel(R) Desktop/Workstation/Server Express Chipset SATA RAID Controller"
DEV_282a = "Intel(R) Mobile ExpressChipset SATA RAID Controller" Important: Both Intel Devices DEV_2822 and DEV_282a need and are using exactly the same Intel RAID ROM module. That is why some mainboard manufacturers are lazy while building the BIOS file and give both types of mainboards (Desktop and Mobile) the same DeviceID (e.g. "282a"). So don't worry about it, if you are checking a Desktop mainboard BIOS, but see "8086,282a" shown by the AMI Aptio MMTool.
By the way: The shown digits of the Vendor and Device IDs don't have any influence on the function of the BIOS or the ROM modules. If you do not find the DeviceID of your on-board RAID Controller, you may not be able to use the extracted Intel RAID ROM with your system.
Hit the "Browse" button and search for the folder, where you want to store the extracted RAID ROM BIOS file, choose any file name with the suffix .BIN (example: RAID_ROM.BIN) and hit "Store". Here is the related screenshot: Extraction of an Intel RAID ROM with Aptio MMTool.png - Bild entfernt (keine Rechte)
Hit the "Extract" button of the Aptio MMTool.
Now you will find the extracted Intel RAID ROM module as .BIN file within your test folder (C:\Test).
If you want to know the version of the extracted Intel RAID ROM module, you should open it with a Hex Editor. You will see the version on top of the right side.
3. Replacement of the Intel RAID ROM module from within an AMI UEFI mainboard BIOS
This is what to do:
Open the BIOS file and highlight the line containing the hidden PCI ROM module as written within chapter 2.
Hit the "Replace" tab of the Aptio MMTool and browse to the Intel RAID OROM file (named xxxx.BIN) you want to get flashed and open it.
Go to the "For Option ROM only" section, enable "Link Present" and scroll down to the correct VendorID (8086 = Intel) and DeviceID (Example: 2822 = "Intel(R) Desktop/Workstation/Server Express Chipset SATA RAID Controller") of your on-board RAID Controller. This is what you should see, if your system has an Intel ICH8R, ICH9R, ICH10R, 5-Series or 6-Series chipset: Update of the Intel RAID ROM with Aptio MMTool - Part 3.png - Bild entfernt (keine Rechte) Note: The "For Option ROM only" section only shows the VendorID and DeviceID of the RAID ROM Modul, which has been inserted by the manufacturer of the original AMI UEFI mainboard BIOS file. So you will get no information regarding the VendorID and DeviceID of the RAID ROM file you are going to insert now by doing the replacement.
Hit the "Replace" button and then either the "Save Image" or - if you want to rename the BIOS file - the "Save Image as ..." button.
Wait some seconds, before you close the MMTool.
After having done all that correctly, you will find the modified BIOS within the folder where the original BIOS file was (C:\Test) or within the folder you had chosen while saving the modified one. The "modded" BIOS file should have exactly the same size as the original one, but a different date.
If you should get an "Error in Replacing File" message while trying to replace a RAID ROM module, the mainboard manufacturer may have inserted the related special RAID ROM module twice (by mistake), but with different DeviceID's. Solution: Remove one of the identical PCI ROM modules (example: 8086,2822) by using the MMTool "Delete" tab and then retry the replacement of the other one (example: 8086,282a).
4. Insertion of an originally not present PCI ROM module
Some mainboards have an on-board AHCI or LAN Controller, but the original BIOS doesn't contain any suitable OROM module for this device (example: ASMedia 106x AHCI Controller).
Here is the way how to get such missing PCI ROM module inserted into the BIOS:
Check the VendorID and DeviceID of the Controller, whose OROM you want to insert. You can do it from withn the Device Manager by doing a right click onto the related Controller > "Properties" > "Details" > "Property" > "HardwareIDs".
Open the original or already modified BIOS with the AMI Aptio MMTool.
Hit the "Insert" tab.
Hit the "Browse" button and navigate to the OROM file you want to insert.
Highlight the line with the CSMCORE file.
Check the "For Option ROM only" section.
Enter the VendorID and the DeviceID into the related fields.
Hit the "Insert" button.
Save the modified BIOS file.
Flashing the modded BIOS into the mainboard BIOS chip
It is strongly recommended to follow the following advices:
Before you are going to flash the new BIOS, you should make a complete backup of your entire system and boot partitions or at least of all important data. After having done that, enter the BIOS and list all your special settings. Before you leave the BIOS, choose and save the DEFAULT settings.
Since the BIOS file name usually is layed down by the mainboard manufacturer within the BIOS itself, the "modded" BIOS file should not be renamed unless the new name is "in the line" with BIOS files, which were previously released by the manufacturer.
Users with an ASUS mainboard, who get a "Security Verification" warning while trying to flash a modified BIOS, should redo it by using the "USB BIOS Flashback" method (for details look into the mainboard manual, not all ASUS mainboards do support it). Important: The BIOS has to be renamed a special way according to the ASUS PDF files, if you use the ASUS "USB BIOS Flashback" method! Tip: Users with an ASUS P8xxx mainboard, which doesn't support the "USB BIOS Flashback" feature, may get the modified BIOS successfully flashed by following >this< guide layed down by CodeRush at [H]ard|Forum (thanks to Maikl for the tip).
After having flashed the new BIOS, you have to redo your previous BIOS settings. Safest way (found >here<): After flash is complete, shut down fully and switch off PSU, wait one minute and clear CMOS. Then turn on, boot to BIOS, load optimized, set the SATA Controller to the appropriate mode (AHCI/RAID) and save/apply/reboot back to the BIOS. Once in the BIOS again recover the previous boot settings (boot device and HDD boot order). If you have updated the Marvell 91xx AHCI/RAID ROM module, set the Marvell Firmware mode to "Force", then save/apply/reboot and let it load through to windows, before that happens Marvell Firmware will update and board will reboot.
Before you restart with your usual PC work, you should verify the full function of the updated PCI ROM module. If you have inserted a new RAID ROM version into the BIOS, you have to make sure, that the "RAID" mode of the on-board SATA Controller is enabled, and then you should run the RAID Configuration Utility by hitting CTRL+I, F10 or similar (look into your mainboard manual). Everything will be fine, if you can enter and use the RAID Configuration Utility without any problem (Don't modify anything, if you don't want it to be changed!). Advice for users with a non-RAID system: Users, who are running their SATA Controllers in AHCI or IDE mode, should check the function of the freshly updated RAID ROM module the same way. After having temporarily enabled the "RAID" mode of the on-board SATA Controller they should run the RAID Configuration Utility and look, if everything seems to be fine (but don't create a RAID array!). Then they can close the Utility and reset the SATA Controller to the usual setting (AHCI/IDE mode). The data of their AHCI/IDE system will not be altered or destroyed by this procedure.
Any feedback is much appreciated. Most important is a short report about the success or failure of flashing the "modded" BIOS into the BIOS chip of your mainboard. Don't forget to mention the vendor and the name of your mainboard and the sort and version of the flashed PCI ROM module.