[Discussion] Marvell 91xx/92xx SATA3 Controller BIOS modules



Thanks for your fast reply.
I have also open up the image with hexeditor, but I’am not sure which part do I need for the FW module. Maybe the bootloader has not change from previous package version 1.0.0.1033.
I can have a try on my noUEFI AMI bios with MM-Tool if I can get only the FW module. The DeviceID is exactly the same.

The UBU tool doesn’t see any Marvell RAID ROM for DEV_9220 within the latest BIOS for your mainboard, because there is no such module in it.
I just have opened the BIOS X79E9_4.00 by using the AMI Aptio4 MMTool and could only find the following Marvell SATA ROM modules:
1. Marvell AHCI ROM v1.0.0.0025 for DEV_917A
2. Marvell AHCI ROM v1.0.0.0025 for DEV_9172 and
3. Marvell RAID ROM unknown version for DEV_9192

@ wasisdn:

Attached is the file, which I have cut from the complete image file. It seems to be the “naked” Marvell MV-91xx Firmware v2.3.0.1007.
You can try it at own risk.

EDIT: The attached file has been removed, because it doesn’t work.

Yes, I know it, but look at this screenshot:


And this:


I have HyperDuo on it (SSD R7 Radeon 128Gb + Seagate SV35 2Tb) for Games.

This is Specifications from ASRock support page for X79 Extreme9:

Together with my view into the latest BIOS for your mainboard this screenshot verifies, that
a) your system is using the Marvell SATA3 Controller DEV_9220 in AHCI mode and
b) the Marvell SATA AHCI Controller DEV_9220 neither needs nor uses any Marvell ROM module.
So I don’t see any reason for an update of the DEV_9220 Firmware. There is no such module within your BIOS and the related Marvell AHCI Controller obviously doesn’t need it for its work.

Flash with modded Bios ok and it’s also flashing the Marvell Firmware successfully but after reboot the Controller RAID-Rom dosn’t light up.
Flash back Bios with older FW module it’s working.
Maybe still need also a newer bootloader…

Thanks for your time Fernando

Ok, I just now installed latest MSU and drivers for Marvell controllers. And 9220 BIOS and Firmware now may see:


MSU have a FlashCLI command line utility for BIOS flash, but where I can find fresh firmware?
Thanks a lot for your help me!

What is MSU?

MSU - Marvell Storage Utility

Thanks.
Since I don’t have any own experience with a Marvell SATA Controller, I will stop my support at this point.
I hope, that you will get help from a Forum member, who knows more about your special Marvell storage configuration.


@Fernando

Better delete this file and never try this method again. The header stores some information about the content, you can’t just remove them without breaking the image. See bellow:



As far as RAW Firmware is concerned, it can be obtained in a safe and different way. But besides being used as a separate module in BIOS files, it shouldn’t be needed. Even as BIOS insertion is a dangerous task, as the OEMs tend to break the large Firmware into pieces and insert them in different places, sometimes more than once to accommodate all the cases, like it happens for Autoload. Users should do this only when they know what and how to do it, otherwise they should flash the large Firmware with Marvell flashers. But there are two threads here that prove even this simple method to fail under certain conditions. You need the right components for the right controller, otherwise you will get a broken controller.

The content of latest firmware is this:

Marvell_Content.png



It has all the latest components for 91xx and they seem to have merged internal and external Autoload, so it should work on both onboard and external controllers. This firmware is recommended for 9128 controllers. Older 9120, 9123 should better use a compatible Autoload, unless they want to be a guinea pig.

@ lordkag:

Thanks for your information.
According your suggestion I have removed the previously attached and obviously not working Marvell MV-91xx Firmware v2.3.0.1007.
Question: Can you give us the link to the latest Marvell 91xx Firmware module and - if possible - additionally the related Marvell 91xx Bootloader module?

I believe the Firmware (including OROM) for almost all 91xx/92xx Marvell controllers is stored on a separate chip. The BIOS sometimes has duplicates of the ROM or Firmware components, but it is not necessarily needed, just for fast updating. Maybe not all controllers need this firmware (like AHCI ones), but the RAID ones most likely do.

@iRX

Can you upload the FlashCLI from MSU 4.1.0.2027 and a copy of your firmware? If it doesn’t work, use this pack in DOS mode. WARNING! Only use it to dump your firmware, not for flashing. Your controller might need a different Autoload and OROM, so further inspection is needed. I believe “go -r” or “go -ra” should be used for dumping the content of the chip.

It might be possible to build an image for your controller, but only when I have a copy of the current firmware to be sure. If you only use UEFI mode, it is also possible to replace the OROM with the compressed EFI. There is the possibility to add the EFI image as a payload for OROM, but there is not enough space without relocating the location of RAW Firmware and I doubt Marvell has thought of this situation. Probably they hardcoded the RAW firmware location to 0x30000, so I would try this only if you have a programmer. The safe situation is to have either OROM or EFI on the Firmware.

These are the components of latest 2.3.0.1007 firmware. Users should ignore DSRAM_DATA and Program[0/1] as they are the building blocks of RAW Firmware and shouldn’t be found separated. There are two RAW firmwares, Firmware 2.3.0.1007.raw and Firmware 2.3.0.1007.dump. Th first one is used for small images, the other for SPI images. The second should be present in BIOS, but I don’t know if OEMs do this all the time.

The problem with these components is that you never know how the OEM is going to insert them. Sometimes they insert the Autoload and RAW Firmware, sometimes they insert RAW Autoload (Autoload + Loader + HW_Config) and RAW firmware, sometimes they insert all of them. Without knowing the structure of the BIOS and inspecting all the modules it is hard to say what should be used.

No, just now I’m not interested becouse all worked fine, and the more I don’t have a programmer.
Sorry, but I’ll be waiting for the official update from ASRock or something… Thank you mister.

Could you at least dump the firmware and upload it, so I can use it for research purpose? I totally understand your point and I won’t force you into updating. This is not directed to you, but I always love when users ask for help, only to back out later, when they hear it might be dangerous or require extra work. If it would be that easy, you would find the information written on every tech forum. But it is not easy, that’s why you won’t find it on every forum, that’s why you need to step a little and test.


Thank you very much for the explanation. Later tonight I will have a try with the new FW module.
In my case I cannot update the Marvell Controller directly. If I update with the original image.bin (any version) after reboot the MB-Bios will flash back the FW and Bios for Marvell with the modules insert in the MB-Bios. My Board is Asus Sabertooth X58.
I have attached 2 Bios for my Board maybe you can have a look. It is the latest original v1402 and the modded version with Marvell Bios v1.0.0.1038 + FW v2.2.0.1125b whitch I’m using right now.

I have another x58 Board at my Office, Gigabyte GA-X58a-UD3R with Award Bios. This has a option in the Bios let you choice either load the Marvell onchip FW or the module from the Bios. This Board I am able to upgrade the Marvell controller with the image file (for testing only because here I never use the Marvell controller)


Edit: I have replaced the E7 module within my Bios with 2.3.0.1007.dump component and it looks good. This time the Marvell RAID-Rom shows up and when enter the config (Ctrl+M) I see the new FW-v2.3.0.1007.
My two HDD’s in Raid0 are also there end everything works fine. If I have any problem I will let you know.

thx again lordkag and Fernando

SabertoothX58.rar (2.2 MB)

@Fernando

I have deleted the previous archive and upload it again in this message. There was nothing wrong with that one, just wanted to make things a little clear. There should only be needed for the 3 main components = Autoload RAW, BIOS or OROM, Firmware RAW. These are placed in the root of the archive. But sometimes OEMs like to do weird combinations, so I also uploaded all small modules into Components folder. I have seen BIOS files, mainly Asus, that use the 3 RAW components, but also a mix of the other components. That’s why I said that users should check all BIOS modules, which requires prior knowledge of Marvell firmware components.

@wasisdn

There should be an option to select between firmware in main BIOS and firmware in separate chip. Read carefully the manual of the mainboard. If this option is indeed missing, it could be that Asus slipped an updated Marvell firmware in one of the BIOS releases and/or want to prevent users to revert to an older version. When you want to update the firmware in BIOS, you better update all components from the same release, if no incompatibility exists. For your system, you should update 1B4B-9123 with a Marvell 9123 OROM, E6 with an Autoload_RAW and E7 with a Firmware_RAW_Dump.

This was in the original 1402 BIOS:

SaberX58.png



And I see that you did already did an update in modded 1402.

SX58.png



You used the right components, especially the Autoload was critical, as there is one with the same version but for external cards. The only mistake was that you used the RAW firmware from small image and not dump image. It is mainly about the flash address. To flash the newest 2.3.0.1007 firmware you have to replace the OROM (already did), replace E6 with Autoload_RAW and replace E7 with a Firmware_RAW that has the flash address different than 0xFFFFFFFF, usually 0x20000.

Marvell_2.3.0.1007_RAW.rar (237 KB)

Now I have flashed the 3 components again and everything works fine. This time there was no reflash of the Marvell controller after reboot.


I can not find any option in the Sabertooth AMI-Bios but in my other GA-x58UDR3 Board I have this option within the Award Bios.
I remember years ago, when I first time try to update the Marvell Contoller with an Dos-Image, everytime after reboot the contoller flashed back to older version insert in the Sabertooth Bios.
Then I searched about this thing and found many reports from users with same issue. In the end I landed at Win-Lite forum and later followed Fernando to his Win-Raid forum here :wink:
Even now if you google about this case mostly will finde posts form this forum or bios-mods.com with same thing.

Anyway thanks a lot for your time

Edit:
I just realise why the Marvell not flashed again, cause the mod Bios I have attached in previous post was with the older FW (E7) module v2.2.0.1125 insert.
After that I’ve loaded and flashed the right new E7 FW modul v2.3.0.1007 .dumb from your first post, so this time only Autoload has changed.

hi fernando, no the sr-2 the marvell 9128 have a separated bios from main bios, i have following your guides and have suceful updated the orom intel from msm 8.0 to 14.5, but my problem is when i activate the marvell oprtion i cant boot (freeze on intel orom) for some reason the marvell chip is conflict with the intel, i have tested a pcie with marvell chip that i have from a previous pc but the result is the same.

sadly i have no backups from the original firmwares of my 2 cards that is 9128.

you think i can do ant change to make them work togeter without downgrading the intel orom? (the new orom from intel on my sr-2 give the fastest boot i have seen!)

thanks again