Modding Asus P7P55D-E Bios

Hi All,

What i want to do:
-Update Marvell 91XX Controller to v1038
-Update the intel SATA controller to 11.2 with TRIM support

The latter has already been done by Stress a year ago here:
Request for Asus P7P55D-E Bios Mod- Upgrade for Intel RST

I have obtained a copy of the 11.2.0.1527 with universal TRIM. This one seems fairly easy to replace as theres only one 8086:2822 line in MMTool to select.

However the Marvell one has stumped me a bit.

Ive read through the following:
BIOS Modding: Introduction and Preparations
BIOS Modding: Introduction and Preparations
[Guide] AMI (non-UEFI) BIOS Modding
[Guide] AMI (non-UEFI) BIOS Modding
AHCI & RAID ROM Modules
AHCI & RAID ROM Modules

However i’m a bit stuck when it comes to actually adding the files in. There are 3 ID 20 listings all with RunLoc of 1B4B:9120. Additionally, it shows as device ID 9123 in windows which has left me a bit confused.
Windows:

MMTool:



I see it says about how there are 3 components:



However i’m unsure how to proceed from here. Do each of these things go into each of the 3 lines for the Marvell 1B4B:9120? Or do you put the same AHCI/RAID ROM into all 3 (seems unlikely)?

@ eXDee:
Welcome at Win-RAID Forum!

Since you are obviously running the Marvell SATA Controller in AHCI (and not in RAID) mode, the benefit you may get by an updated Marvell AHCI/RAID ROM will not be worth the efforts and risks.

I just have checked it by extracting all 3 modules and comparing them with an Hex Editor: They are absolutely identical. Only 1 of them will be used. You should ask ASUS why they inserted 3 identical OROM modules.

Nevertheless it seems to work with your mainboad (maybe it will only be used after having set the Marvell SATA Controller to "RAID" mode).

Since I never have used a mainboard with an on-board Marvell AHCI/RAID Controller, I cannot answer these questions. What you need is support by an experienced user, who has already successfully updated the Marvell AHCI/RAID ROM modules (PCI ROM, Firmware and Bootloader) of a non-UEFI AMI BIOS.

Good luck!
Dieter (alias Fernando)

Updating the Marvell controller is complicated with your board. The first thing to do is to visually inspect your mainboard and determine the ID of Marvell chip. The second step is to dump the content of the chip which stores the Marvell firmware. If you decide to update it, you should work with the chip itself and bypass the mainboard BIOS. This is complicated on its own, as you have to decide which components to insert in this updated firmware. Even so, it is less complicated than trying the BIOS replacement. In your BIOS you have the following:

- 3 identical Marvell ROMs. They probably wanted to insert 9120 + 9123 + 91A0, but forgot to switch the ID.
- in E6 = Autoload 1.0.0.1802 + Loader, normally found in 9123 cards.
- in E7 = stub firmware with DSRAM_DATA 2.1.0.1015
- in E8 = Autoload 3.0.1.0106, for 9120 cards.
- in E9 = stub firmware with Autoload 3.0.1.0106 for 9120 and HW_CONFIG
- no other firmware components.

Basically, you have only bits and pieces in main BIOS, as a backup for the firmware stored in a separate chip. The firmware should be made from Autoload_Raw (Autoload + HW_CONFIG + Loader), BIOS (ROM), Firmware_Raw (DSRAM_DATA + PROGRAM0 + PROGRAM1). You have them scattered all over the place. Even if you would want to update only in the main BIOS, the 1.0.0.1038 ROM could have incompatibility issues with the old Firmware_Raw, the Autoload has new versions only for 9123, the Firmware_Raw cannot be updated without PROGRAM0 and PROGRAM1. The only way to fully update your Marvell controller is with flashing its chip and also have a recovery method for disaster scenario.

Hey eXDee:

Updating the Marvell portion P7P55D-E is different than updating the board bios as Lordkag stated. In my opinion Lordkag seems to know a lot about this and I would follow his recommendations.

First of all – what board do you have and what bios file are you using? If you are using a bios file I provided, I may have screwed up by providing a modded bios for a P7P55D-E LX (the board I have which I can test) instead of a bios for the P7P55D-E (which I don’t have and can’t test). My P7P55D-E LX has the Marvell 9120 controller (even though the manual that came with the board states the controller is a 9123) and it appears from your device manager screen shot your P7P55D-E has the Marvell 9123 controller. These Marvell controllers are different and should not be confused. I would strongly advise you to download the latest ASUS bios file for your P7P55D-E from ASUS and mod it to make sure you’re using a bios specifically for your board. I suspect you do indeed have a 9123 controller instead of the 9120 controller but the only way to be absolutely sure is to look at the markings on the chip itself (I had to use a magnifying glass and a strong light). If you do have the 9123 controller I strongly advise you to make sure you use a bios for the P7P55D-E board. Fortunately, as Lordkag stated, the firmware for the Marvell controllers are located on an EEPROM chip located adjacent to the Marvell controller and is not entirely in the motherboard bios. So, hopefully even if you did boot to a bios with 9120 modules it wouldn’t have an effect on the 9123 controller. As a precaution I ask Fernando to remove the modded bios file I presented.

There is another thread - “Problems Updating firmware of Marvell 9120 Sata Controller” in the Win-RAID forums that goes into a lot of detail about the process of updating these Marvell controllers and the various portions of the firmware. The thread is specific to the 9120 controller but much of this information may also apply to the 9123 which is a different controller – again, don’t mix up the two. I strongly advise you NOT to use any files from this thread if you do have the 9123 controller. If you read this thread you’ll see that I had applied a 9123 firmware update to my 9120 and bricked it.

AFAIK there are two ways to update the Marvel controller firmware on these boards.

One is to write the firmware directly onto the EEPROM chip using a programmer. This is a pretty highly technical procedure that requires special equipment and software and a special clip and cables if you don’t unsolder/resolder the EEPROM chip. I have tried doing this (with the clip and cables) but I have not succeeded. Lordkag and Hansen have provided a lot of help including probably everything I need to accomplish this successfully, but I have all my drives on the intel controller and am happy with the performance of this board and am too lazy at this point to take everything apart, arrange the clip and cables and do all the work to write the updates to the EEPROM. When I first bricked my marvell controller a user in Russia emailed me that he had bricked his motherboard similar to me. He ended up taking his motherboard to a computer shop in his city where they programmed the EEPROM and it restored his controller from the modules in the bios file, but by then he had upgraded his system. I have read where others with this problem have unsoldered the EEPROM chip, programmed it and then resoldered it back onto the board. I don’t trust my soldering skills enough to attempt this. I believe Hanson has successfully updated this EEPROM chip using a programmer clip and cables.

The other method of updating the firmware is to use the Marvell firmware updating tool which will flash the EEPROM from the motherboard in a DOS environment. This is how I bricked the Marvell controller on my motherboard by applying an 9123 update instead of a 9120 update. As Fernando stated, it seems unlikely that updating this firmware will result in much performance improvement. If you are still interested in pursuing this I recommend that you post as such and ask for help so you don’t have the same problems I had. It is possible that Lordkag and/or others have succeeded doing this and can give you specific instructions so your experience is successful.

Good Luck – please let us know how all this works out for you.

Stress