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

@skan

Since you saw firmware 2.1.0.1502 in Marvell Utility, this shows that the firmware in use is the one in a separate chip, not the one from main BIOS, which should be 2.1.0.1113. But are you saying you have an option to use the firmware from inside the main BIOS? If so, you should have no problem in using Ctrl+M and look at the ID and version. You should also look at my initial message, where I posted links to a software called Marvell RAID Utility, which should do the same thing from inside Windows. Also look in Device Manager and post the ID. Read carefully my initial message.

It is too bad you flashed a new firmware without saving the old one. Never do that again. By having the old firmware it would have been so much easier for me to select the right ID. I now have to think about choosing between 9123, 91A3 or 9128.

The screen when using ā€œgo -r -yā€ looks suspicious. It has problem setting variables, which could also mean it has problem passing arguments. Using ā€œgo -r -yā€ should just read the chip, no erasing/flashing, no question asked. Did it ask you to press ā€œYā€ or has it just continued with the operations? Try to create a new USB using Rufus, format as FAT32 and use MS-DOS. Try again ā€œgo -rā€ without ā€œ-yā€ and press ā€œYā€ when asked to. If it still tries to flash, then use the firmware from Station-Drivers and type ā€œgo -rā€, then ā€œYā€ to confirm. Check if there is an IMAG_RB.BIN on the USB. Make sure it is not already there from previous flashes. You already flashed a new firmware from U3S6Rx, so this dump image doesnā€™t provide the info I need, but we need to make sure the flasher works and does what it is asked for, to not run into other troubles.

The ID mismatch is because you used an image built for U3S6R0 - 9123, so no surprise here. The direct command for reading should be ā€œmvf_mag.exe image -newImg -rā€ or simply ā€œmvf_mag.exe -rā€. But ā€œgo -rā€ should do the same, unless there is a problem with your DOS image.

Since there is not much useful info I can get, here are the images. If you donā€™t want to mess with modded firmware, here is an official one in this post. It has the latest components, but: it was released for an Asrock board which also has an IDE controller linked to Marvell 9128; it has 9123 ID, while your BIOS has 91A3 ID. Use this if you donā€™t trust my guess.

Or you can use the image I posted, which has the latest components, but: original autoload from mainboard BIOS with 9123-91A3 ID; OROM with 91A3 ID. Your pick! Either way, please post the result of the flash and a screen of Ctrl+M, if it works, of course.

Marvell 9128 X58.rar (209 KB)

Hello again.

I did my best but Iā€™m quite confused and this is a mess,
I tried to repeat all the steps but sometimes it didnā€™t work, sometimes it did, sometimes it crashed, I spent several hours and I have to sleep.

When entering on the BIOS I could change the options but only a few times I could check the Marvell RAID tool. Most often the BIOS hanged completly when trying to enter that submenu.

Anyway, I send you the imag_rb.bin captures and some pictures.

The pcitures from Windows device manager are always the same.

The MRU tool didnā€™t work, it just opened a browser with this line
http://localhost:8845/MSU/JumpPage.php?Tā€¦unch=1149121151
but saying "page not available"

The Marvel utility command line for windows doesnā€™t detect anything. So I had to do everything from DOS, rebooting and rebooting.

I tried both IDE and AHCI, there is no option for RAID there.
One can only enter RAID from a different submenu that doesnā€™t work, the same menu that shows the info. Anyway, I donā€™t need RAID.
I also tried Onchip, and Force (update the firmware with the one on the BIOS) ā†’ when I rebooted I showed a message of flashing a new firmware. Later I reflashed with yours again.

There is another gsata 8_9_IDE setting that I use to leave disabled.


Most of my trials ended up just with a reading.
One of my trials ended up with a reflashing. Maybe I wrote something wrong on the command line instead of the go -r but I noticed now looking at the pictures.

One of the screenshots show ID 91A3, (the others 9128) Maybe was when I forced the reflashing from the BIOS.

What options do you suggest on my BIOS?
What image should I flash. (I always tried your files, not station-drivers).

Iā€™ll save you time if I say that imag_rb.bin on folders 2, 4 and 5 are the same.

Images

Please if I need to do something else to get more info tell me just one step.

Regards

@skan

Now we have more data to work with. Still not entirely sure what is the best image, but hopefully we will know soon. You have a Dual BIOS and also a backup of the Marvell firmware in main BIOS with a dedicated option to switch between them. I would say you should be covered, unless Marvell coding is really bellow any standards.

Some info from your images:
- ā€œBypassā€ option shows a strange ID in Device Manager. Better stay away from this option and select ā€œAutoā€ or ā€œFw Modeā€. You want the firmware to be used, after all.
- ā€œBypass Onchipā€ image uses the external autoload from U3S6R0 - 9123 and has the ID 9123 in BIOS, but the rest of the components are from latest firmware. Beats me how this could have happened. Can the controller flash the ID and autoload on its own, or just leftovers from previous flashes?
- ā€œOnchipā€ option uses the firmware from a dedicated 512KB SOIC8 chip. ā€œForceā€ uses the firmware from mainboard BIOS, so use ā€œForceā€ only when main firmware has problems.
- When using ā€œForceā€ you saw the main firmware being flashed on reboot, independently from your actions? So the mainboard firmware acts as a backup and it is used only once, on reboot, for flashing main firmware?
- Image 1.0.0.1813 is the newest one to be flashed, Image 1.0.0.1608 is the backup from main BIOS.
- Image DSC_0319 shows the flashing with 91A3 ID. Did you actually wanted to flash the image from ā€œMarvell 9128 X58.rarā€ or was it a typing error? I think there must be only one space between arguments, or the flasher will see no arguments and treat it as ā€œgoā€, which by default is a flashing command.
- The image DSC_0326 shows the controller identified as DevID 91A3 and ClassCode 0101, which is for IDE controller.
- Other images show DevID 9128 and ClassCode 0106, which is SATA - AHCI controller. It should actually be DevID 9123 and ClassCode 0106 for AHCI, DevID 9128 and ClassCode 0104 for RAID. Does this mean that the backup firmware is an IDE firmware (safe default) or that Marvell is not sticking to specs?

Check the manual for you board. You have BIOS menu from page 35 onwards. For now you are interested in pages 53 and 56. The options are confusing because of the poor choice of labels:
- ā€œeSATA ā€¦ā€ options are for JMicron JMB362. Recommended is ā€œEnabledā€ and ā€œAHCIā€, but you can set them to your needs. Not important for current task.
- ā€œGSATA 8_9 ā€¦ā€ options are for Gigabyte SATA2 chip, which is just a JMicron rebranded. Again, ā€œEnabledā€ and ā€œAHCIā€ or to your needs. Not important for current task.
- ā€œGSATA 6_7 ā€¦ā€ and ā€œGSATA3 ā€¦ā€ are the options for Marvell 9128 and the only ones that need current attention.

They should be set as bellow:
- GSATA 6_7/IDE Controller = Enabled ; obviously, we want the Marvell controller enabled
- GSATA 6_7/IDE Ctrl Mode = AHCI ; select this in normal use, select ā€œIDEā€ only for testing/debugging.
- GSATA RAID Mode Control = Auto ; select this for now, only after we find a final firmware image you can test between ā€œBypassā€ and ā€œFw Modeā€ for speed and stability. ā€œFw Modeā€ is recommended.
- GSATA RAID Configuration = [ā€¦] ; this probably shows you the screen from Ctrl+M ?
- SATA3 Firmware Selection = Onchip ; this will use the firmware flashed in a separate chip. Select the other option ā€œForceā€ only as a backup and when testing, which will use the firmware from main BIOS.


Back to testing:
- Test 1
Select ā€œSATA3 Firmware Selection = Forceā€, Save Settings & Exit. On reboot, observe if the main firmware is flashed from backup. Let it finish, boot to Windows, shutdown. Let the PC closed for 1 minute, then boot and check the followings: is GSATA 6_7 in IDE by default or AHCI; either way, can you enter RAID Configuration, can you enter Ctrl+M, what ID do you see in RAID Utility and Windows? Then choose the other state from IDE/AHCI, save settings, shutdown, boot and do the same: enter RAID Configuration, enter Ctrl+M, check the ID in MRU and Windows. AHCI should have a distinct ID and be labelled as AHCI or SATA controller in Device Manager. AHCI should give you better scores in benchmarks. If you can enter RAID configuration, check ID from MRU and Device Manager.

Remember this is the backup firmware, placed there by Gigabyte. It has ID 91A3 by default. I trust that they know what they are doing, so we only check if this firmware is IDE only or IDE/AHCI/RAID compatible.

- Test 2
Select ā€œSATA3 Firmware Selection = Onchipā€, Save settings & Exit. On reboot flash the image ā€œMarvell 9128 X58a.rarā€ from this post, shutdown, wait 1 minute. Then boot and check the followings: is GSATA 6_7 in IDE by default or AHCI; either way, can you enter RAID Configuration, can you enter Ctrl+M, what ID do you see in RAID Utility and Windows? Then choose the other state from IDE/AHCI, save settings, shutdown, boot and do the same: enter RAID Configuration, enter Ctrl+M, check the ID in MRU and Windows. AHCI should have a distinct ID and be labelled as AHCI or SATA controller in Device Manager. AHCI should give you better scores in benchmarks. If you can enter RAID configuration, check ID from MRU and Device Manager.


This follows the same pattern as backup firmware, only with newer components. Again to check if the firmware is IDE only or IDE/AHCI/RAID compatible.

- Test 3
Select ā€œSATA3 Firmware Selection = Onchipā€, Save settings & Exit. On reboot flash the image SP1813 from this post, shutdown, wait 1 minute. Then boot and check the followings: is GSATA 6_7 in IDE by default or AHCI; either way, can you enter RAID Configuration, can you enter Ctrl+M, what ID do you see in RAID Utility and Windows? Then choose the other state from IDE/AHCI, save settings, shutdown, boot and do the same: enter RAID Configuration, enter Ctrl+M, check the ID in MRU and Windows. AHCI should have a distinct ID and be labelled as AHCI or SATA controller in Device Manager. AHCI should give you better scores in benchmarks. If you can enter RAID configuration, check ID from MRU and Device Manager.

This has a newer autoload and ID 9123 by default. My guess is that this one will work in AHCI/RAID, while the aboves in IDE only.

- Test 4

This would be with ID 9128 by default and newest autoload. I will upload this image only if the aboves fail for some reason. This should not be required, since the firmware is built with 9123/91A3 ID and the firmware can switch to 9128 when in RAID.

I didnā€™t want to flash it, maybe I misstyped or forgot it.

And here are the results:


MRU doesnā€™t work on the browser, Iā€™ve tried reinstalling, enabling things at the browserā€¦
but I found the way with the command line mvsetup.exe from MSU (instead of MRU)

Test 1 , after forcing autoupdate firmware from BIOS, rebooted on Windows, AHCI mode.
> info -o hba

Adapter ID: 0
Product: 1b4b-9128
Sub vendor ID: 1458
Sub device ID: b000
Chip revision: B1
slot number: 0
Max PCIe speed: 5Gb/s
Current PCIe speed: 5Gb/s
Max PCIe link: 1X
Current PCIe link: 1X
Driver version: 0.0.0.0000
BIOS version: 1.0.0.1029
Firmware version: 2.2.0.1113
Boot loader version: 1.0.1.0002
# of ports: 2
Buzzer: Not supported
Supported port type: SATA
Supported RAID mode: RAID0 RAID1
Maximum disk in one VD: 2
PM: Supported
Expander: Rebuild: Background init: Sync: Migrate: Media patrol:Foreground init: Copy back: Not supported
Maximum supported disk: 6
Maximum supported VD: 2
Max total blocks: 128
time setting by application
Max buffer size: 3
Stripe size supported: 32K 64K
Image health: Autoload image health: Boot loader image health: Firmware image health: Boot ROM image health: HBA info image health: Healthy

-------------------------------------------------------------

Now changing to IDE mode from the Windows. Deleted some not changing not important things.
Windows has installed new drivers.

> info -o hba

Adapter ID: 0
Product: 1b4b-91a3
Sub vendor ID: 1458
Sub device ID: b000
Chip revision: B1
Driver version: 0.0.0.0000
BIOS version: 1.0.0.1029
Firmware version: 2.2.0.1113
Boot loader version: 1.0.1.0002
Supported port type: SATA
Supported RAID mode: RAID0 RAID1


Windows doesnā€™t shutdown well in both cases. I canā€™t enter RAID from BIOS nor Ctrl+M
---------------------------------------------------------------------

Test 2 Flashing Marvell9128x58a.rar
AHCI
Now I can enter RAID configuration from BIOS but still canā€™t Ctrl+M

Vendor ID: 1B4B, Device ID 9128, revision B1, BIOS 1.0.0.1038
firmware 2.3.0.1007, Sata AHCI, RAID0 and RAID1 possible.


> info -o hba

Adapter ID: 0
Product: 1b4b-9128
Sub vendor ID: 1458
Sub device ID: b000
Chip revision: B1
slot number: 0
Driver version: 0.0.0.0000
BIOS version: 1.0.0.1038
Firmware version: 2.3.0.1007
Boot loader version: 1.0.1.0002
Supported port type: SATA
Supported RAID mode: RAID0 RAID1


NOW rebooting in IDE mode:

> info -o hba

Adapter ID: 0
Product: 1b4b-91a3
Sub vendor ID: 1458
Sub device ID: b000
Chip revision: B1
Driver version: 0.0.0.0000
BIOS version: 1.0.0.1038
Firmware version: 2.3.0.1007
Boot loader version: 1.0.1.0002
Supported port type: SATA
Supported RAID mode: RAID0 RAID1


I can enter the RAID tool from the BIOS.
Itā€™s the same except
deviceID 91A3

-----------------------------------------------------------------------

Flashing SP1813
mode AHCI

> info -o hba

Adapter ID: 0
Product: 1b4b-9128
Sub vendor ID: 1458
Sub device ID: b000
Chip revision: B1
Driver version: 0.0.0.0000
BIOS version: 1.0.0.1038
Firmware version: 2.3.0.1007
Boot loader version: 1.0.1.0002
Supported port type: SATA
Supported RAID mode: RAID0 RAID1


BIOS ā†’ RAID ā†’ Device ID 9128

------------------------------------------------------------


mode IDE

> info -o hba

Adapter ID: 0
Product: 1b4b-91a3
Sub vendor ID: 1458
Sub device ID: b000
Chip revision: B1
Driver version: 0.0.0.0000
BIOS version: 1.0.0.1038
Firmware version: 2.3.0.1007
Boot loader version: 1.0.1.0002
Supported port type: SATA
Supported RAID mode: RAID0 RAID1


And the BIOS ā†’ RAID ā†’ the same with Device ID 91A3



----------------------------------------------------------

Windows device manager seems not to offer any useful info.


I have also done a benchmark
with AHCI the results are the same for both firmwares (9128 and 9123)
For IDE the result is almost the same than for the Gigabyte SATA II port
Anyway itā€™s slower than with the option Bypass enabled. And almost half of the expected writing speed in public benchmarks.

What firmware should I use? (now I have the 9128 from test 2).
What option? because the one that uses the firmware seems to be slower. I guess in this situation it doesnā€™t matter the firmware I flash.
I donā€™t about the stability or errors because Iā€™m using the SSD as a secondary disk just to test.

IDE ā†’ 9123


AHCI ā†’ 9123 and 9128


Old Bypass firmware, AHCI



Another question, what do you think about Samsung Rapid Software?. It seems to offer faster speeds but some people says itā€™s just a way to fake benchmarks.
Do I need to have installed MRU or MSU for daily use?

Do you think I can overclock it?. What parameter should I change? (unclock, IOH, PCIā€¦)

Regards and thank you

@skan

It is weird that the original firmware has problems. Maybe the flashing of several images left some dirty behind? About Ctrl+M, it is possible that it was removed from newer images, to not conflict with external RAID cards or maybe to speed up the boot, since the configuration can be accessed from BIOS. This sequence should be controlled by Autoload and Loader, which are at latest version. I could upload image 2.1.0.1502, if you want to check if Ctrl+M is there, but why bother to flash for something not really needed right now?

The driver version seems not be detected. Was it not installed? If so, the latest driver 1.2.0.1041 can be found here.

Marvell 9128 is limited to 5Gb/s speed, so your first problem of speed is in the hardware. Then there is the problem that these controller never really achieved the speed of Intel, they were meant more as spare connectors. Maybe you can tweak and squeeze some speed, but donā€™t expect to reach the speed from public benchmarks.

You see why AHCI is preferred above IDE - NCQ for better 4K speeds, TRIM, Hot Plug.

These are the recommended settings:
- GSATA 6_7/IDE Controller = Enabled
- GSATA 6_7/IDE Ctrl Mode = AHCI
- GSATA RAID Mode Control = Auto
- GSATA RAID Configuration = [ā€¦]
- SATA3 Firmware Selection = Onchip

I would say to leave RAID Mode Control = Auto, not much of a difference. For daily use, the relevant score is between 4K and 4k QD32. Still not sure what Bypass does, since you clearly get better results with newer firmware (even on Bypass) than the older 2.1.0.1502.

You will find more info about Rapid mode on this forum, from far knowledgeable people than me. You should know it uses RAM as cache, so unless you have 8+ GB, not really a trade.

You can select any image between Test2 and Test3, but I would pick Test3, since it has a newer autoload and proper ID combination 9123/9128 - AHCI/RAID. Test2 has Autoload 2.0.0.0611, BIOS 1.0.0.0038 91A3, FW 2.3.0.1007; Test3 has Autoload 2.0.0.061D, BIOS 1.0.0.0038 9123, FW 2.3.0.1007. What you should check besides speed and stability is booting from Marvell controller and TRIM support.

About the software: MSU seems to be the follower of MRU, so use the latest from Station-Drivers. Some history for the software can be found here. MSU is only needed for RAID stuff and diagnostics. I would keep it installed and prevent it from auto-starting any service, but if this is not your thing, just uninstall it and keep the utility ready to be installed for diagnostics.

There is one last thing you can do for me. With ā€œBypassā€ option selected, dump the current firmware with ā€œgo -rā€ and upload it. Iā€™m curious if it still uses an older autoload for this configuration.

Hello.
The driver was installed.
Here is your image with ā€œbypassā€ and having the firmware Marvell 9128 X58a.rar, Test2.
IMAG_RB.zip

@skan

Nothing weird this time. The image from "1 AHCI Bypass Onchip" was taken from U3S6R0 - SP1813, which you probably flashed before these tests started. Read the message above and stick with Test3.

Not much speed can be gained above this, maybe disabling C1E from C-States and tweaking power options. A dangerous step would be to increase PCIe frequency, but read carefully before jumping to this and decide if you want to risk your SSD, video card and all other device connected to PCIe.

Hi, Thanks to ALL of YOU for testing effort.
Im traing to download the lasted full image for 9128 (last motherboard version) but (File has expired and does not exist anymore on this server).
Iā€™ll appriciat If same one can downloded on forum server for all off as.
THANKS VERRY MUSH FOR YOUR TESTING.

@ sbc0:
Welcome at Win-RAID Forum!

Which version do you want to get and which addon-card do you use?

Happy New Year!
Fernando

Thanks for quick answer Fernando.

Diag: NO ADAPTER FOUND (from GO.BAT marvel flash DOS)
Version needed: any last working version for marvel 9128
addon-card: motherboard: EVGA 270-WS-W555 - EVGA Classified SR-2 (Super Record 2) , Intel Chipset 5520/ICH10R, Dual Xeon CPU, with marvel 9128. (User guide attached).

Any other info no problem.
THANKS VERRY MUCH FOR HELP.

270-ws-w555-a1_Product_Brief.pdf (1.48 MB)

EVGA Classified SR-2 (Super Record 2)__A270-WS-W555_MANUAL.pdf (1.78 MB)

@ sbc0:
According to the manual of your EVGA 270-WS-W555 mainboard it has an onboard Marvell 9128 SATA3 Controller.
So I suspect, that the mainboard BIOS contains a Marvell AHCI/RAID ROM module DEV_9128, which can be updated by using an appropriate BIOS tool.
The latest Marvell 91xx AHCI/RAID ROM module for your DEV_9128 Controller is v1.0.0.1038 and can be downloaded from >this< site.

Just an update on this

Marvell 9230 Firmware
2.3.0.1051 = May 17 2013 Marvell (5.0Gbps x2) (Only Have Backup for Hardware Revision A1)
2.3.0.1055 = Oct 8 2013 Marvell (5.0Gbps x2)
2.3.0.1058 = May 2 2014 Marvell (5.0Gbps x2) (Only Have Backup for Hardware Revision A1)
2.3.0.1063 = Oct 15 2014 Marvell (2.5Gbps x2) (Asrock Disabled the hardware raid on on this firmware btw) (for some reason it still runs at 5.0Gbps x2 on Asrock Boards but not on other boards)

I have a thread going about the Marvell 9230
Where i Dumped my 2.3.0.1051 From a Hardware Revision A1 SI-PEX40058
Someone has been kind enough to Dump
2.3.0.1058 From a Hardware Revision A1 SI-PEX40057

http://homeservershow.com/forums/index.pā€¦dates-and-such/

@Shonk

An interesting thread you got there and I am glad you shared the link to it, as I have collected Marvell firmwares myself. Apart from those linked by you, I also have 2.3.0.1043 A0, 2.3.0.1050 A0 and 2.3.0.1053 A1. But the revision is not important, as the only difference between A0 and A1 is the autoload and only a small patch from autoload separates them. Basically revision A0 needs this patch to be bootable in all cards, while rev A1 already has this patch in hardware.

I can build a firmware for both revisions, be it 2.3.0.1058 or any version. I can also build a test firmware for 2.3.0.1063 to find where the speed cap is happening, but I need someone who has a programmer to recover his card and also to have this as a spare card, in case there is an irreversible damage.

Shame i dont have a programmerā€¦

EDIT by Fernando: Unneeded parts of the quoted text removed (to save space)

@ Shonk and @ lordkag:

Since your recent discussion about the Marvell 92xx SATA Controller Firmware has nothing to do with the ā€œDriversā€ subforum, I have moved your posts from >this< post into a new one.
This way other Forum visitors, who are interested in this topic, may find your posts much easier.

I have a year looking for some information on how to update the Marvell controllers on my motherboard ASRock X79 Extreme9, but somehow always discuss only 91xx and 9230 versions! I also want to update my OROM to latest versions BIOS/Firmware and especially for Marvell SE9220 and maybe SE9172, I use HyperDuo on it for games (SSD R7 Radeon 128Gb + Seagate SV35 2Tb). My motherboard has 2 years and ASRock says ā€œthat everything is super and update do not need anythingā€ā€¦ I certainly understand that it is marketing, but to buy a new motherboard, Iā€™m not going ā€¦ Please help me to update this SATA/RAID OROM controllers to actualy version!

@ iRX:

Welcome at Win-RAID Forum!

Have you already tried to let the "UEFI BIOS Updater" (UBU) do the work?
If not, please read >this< guide.

Regards
Dieter (alias Fernando)

Is it possible to separate the latest Marvell MV-91xx SATA 6G Controller Firmware (E7), Bootloader (E6) and Bios modules from the DOS-upgrade image file ā€œVersion 1.0.0.1038ā€ provided by Station Drivers?

I know we gote the Bios module 1.0.0.1038 already but I think the FW is newer v2.3.0.1007 and for Bootloader Iā€™m not sure.

Yes, I tried, but unfortunately "UBU" does not see "DEV_9220".

After having opened the image file, which is within the linked package, by using an Hex Editor, I found the Marvell AHCI ROM v1.0.0.1038 for DEV_9123 and the Firmware v2.3.0.1007, but no bootloader.
If you want a 100% correct answer, you should better ask lordkag directly, because he is our expert regarding the Marvell 91xx SATA3 Controller BIOS modules.