[Help Needed] FW Update-Marvell 92xx SATA Controller – v 1.2.0.1070

@lordkag

I have a Syba SI-PEX40071 RAID card that works, but I am unable to set up any RAID. the Ctnl+M does not work in either CSM or UEFI mode. Also when I boot in UEFI mode and hit F2 to go into the BIOS i get the following error: "The system cannot fine the UEFI driver for the add-on storage devices. [0x92351B4B]"

I am running an ASUS P8CWS MB with Windows 10. The BIOS is the latest.

I ran the go bat program (-r) I downloaded from the FW Update Marvell 91xx SATA Controller thread and it produced the following results:
Item Value
Name Marvell 92xx SATA 6G Controller
Manufacturer Marvell Inc.
Status OK
PNP Device ID PCI\VEN_1 B4B&DEV_9235&SUBSYS_92351 B4B&REVJ 1\4&1 CA8190C&0&0030
iMemory Address
IRQ Channel
0xF74FF8O0-0xF74FFFFF
IRQ 4294967278
Driver c:\windows\system32\drivers\mvs91xx.sys (1.2.0.1049, 334.73 KB (342,760 bytes), 9/29/2018 3:53 PM)

I am currently running the latest Marvell driver, 1.2.0.1049, from Station-Drivers. It installed and is running without issue.
I also have also downloaded the latest firmware, 2.3.0.1070 from Station-Drivers. I have not installed it pending a determination if it is suitable for my card.
I found it interesting that Marvell is now providing UEFI shell support. Here is the summary of the download contents from the Station-Drivers web site:
Marvell MV-92xx SATA 6G Controller Firmware Version 2.3.0.1070
Thumbnails
Description: AUTOLOAD VERSION[OxOOOOOOOO]: 200018 LOADER VERSION[0x0000C000]: 21001008 BIOS VERSION[0x00020000]: 1.0.0.1024 FIRMWARE VERSION[0x00030000]: 2.3.0.1070
Pour VENDORJD = 1B4B
DEVICE_ID_LIST = 9220,9230,9236,9215,9225(9235,922A,923A Sous: MS-Dos/UEFI

If I understand the firmware process correctly, I just need to run the “go” command to do the update.

Since all of the downloads in the original Marvell FW thread are somewhat dated, I was hoping to use the 2.3.0.1070 if possible.

I need further guidance in regard to using 2.3.0.1070? That download contains a lot of different items, and I haven’t quite figured out what I need to run yet.
Here is the station drivers link: https://www.station-drivers.com/index.ph…id=3146&lang=en

I have uploaded a list of files and directory structure from the above driver to assist in this discussion.

It looks like I should use “go.nsh” to do the UEFI firmware update. Is this correct?
I tried “go r”, but it came back with no supported device. [Note the go.nsh options do not use the “-“.]

Any assistance would be appreciated. Thank you.

File list Marvell_fw_2.3.0.1070.txt (20.9 KB)

Some people have reported issues with firmware 2.3.0.1070 and rolled (flashed) back to 2.3.0.1065.

Read this for example.

I am currently using 2.3.0.1065 in CSM mode on my Syba PEX40054 (Marvel 9230) and it shows the configuration utility on boot.

[Edit] The SYBA SI-PEX40071 has the Marvell 9235 chip and a 9705 port multiplier, this might need specific firmware as reported by pezku here.

Thank you for your response.
I followed the pezku posts from the link above through to the end of the thread. Several things were tried, but in the end, he took the firmware from a new card and flashed the problem card as a solution.

Given that I have a working card and I am only getting the error message when in do a F2 for BIOS, perhaps I should leave it as is. While the process appears easy, the risk is very high for flashing the wrong BIOS.

I would be interested to know what happened if you booted your system with secure boot enabled and then went into BIOS, do you get an error message?

From the following file location in the downloaded driver at \Marvell 92xx Drivers 1.2.1049 & Bios 2.3.0.1070\Firmware Bios Updates\marvell_fw_2.3.0.1070(www.station-drivers.com)\firmware\92xx\DOS_Mode, I booted in DOS and ran “go -r”. Here is the result:
C:go –r
MVF_MAG vl.0.0.2475
** Incoming Image Uersion**
PACKAGE UERSION: 2.3.0.1065
AUTOLOAD UERSION: 20O018
LOADER UERSION: 21001008
BIOS UERSION: 1.0.0.1024
FIRMWARE UERSION: 2.3.0.1070 (This is the driver version I installed as shown in a post above. This appears to show that the card firmware was updated also, but I didn’ t run “go”. I am confused on this.)
Adapter Count = 0.
Adapter Count = 0

It looks like I have a very old bios at 1.0.0.1024. Is this what I need to update to clear the error when I go into the ASUS BIOS?

Under …\92xx there are two folders. DOS_Mode and UEFI_Mode.
Here is my question: Do these folders relate to the boot method to do the firmware upgrade, or do they relate to the boot mode for a normal boot into Windows after the firmware is updated?

I need some more information before I commit to a “go” update.

Also, I was under the impression at “go -r” was supposed to create backup file named IMAG_RB.BIN and it didn’t.
How do I do a backup image?

@N602
I’ll see if I can find some time in the next few days for a proper and articulated response, although it might be difficult due to incoming holidays. These Marvell Firmwares were a mess when I looked at them ages ago, and they are even messier now, having to start all over again, as I keep failing at storing notes and act like I have an infallible memory. From the package, the Autoload and BIOS are critical and pertaining to a certain ID, revision and mount (internal or external card), the rest are more or less universal. I can build a firmware with the latest available components, if I know what are the original components.

I have uploaded my scripts that have the related knowledge that I gathered upon studying these Marvell FW. You need to have Python 3.x installed to run them. Then you basically drop an image on #Marvell_Split.bat or #Marvell_SplitBin.bat (in case you’re not sure, pick one, the script will tell you which to choose) to have the main components extracted. Then you double-click #Rename.bat to have them renamed according to their ID and version. I will expand more on their use when I have more time.

What I want from you and anyone interested in this topic is this:
- Post the details of your hardware; what card you are using or what MB. You can also add details about the storage used and in what configuration, or better yet, a screen/log from > MSU <.
- Upload a dump of your current Firmware, using “go -r” from DOS. I will simply ignore anyone who skips this step. There is no point in guessing what Firmware you have or need, when we have the tools to check.
- Upload a dump even if you’re not interested in flashing, but you have one in possession. The more samples, the better the results from my scripts.

Marvell_Split_91xx_v0.0.1.rar (38.7 KB)

Marvell_Split_92xx_v0.0.1.rar (39 KB)

For instance, Station-Drivers has a new Loader and Firmware for 91xx, but it is for 9128 and external card only. We can build a Firmware for any other 91xx, just by using the right Autoload and BIOS.

Firmware_91xx.png



As for the 2.3.0.1070 Firmware, my main concern is with the Autoload. There seems to be a new 0.0.0.0310 (or maybe 20.0.0.0310) version, that is 2001809 with a twist. I’m not sure if it is a new revision (it kind of looks like it is using similar bytes to rev. A0 vs rev. A1), but it might also be something specific for UEFI environments. For the rest, there is the BIOS ROM to select between BIOS and UEFI.

Main_Components.png



Components_Version.png



That is why I need more dumps and more time, to compare the differences. It isn’t rocket science, it is just time consuming and resource hungry.

@lordkag

Thank you for your response and the information you provided. Posts #1 & # 4 have all of my MB and Marvell card information.

I am unable to see anything when using because all of the text in MSU is white letters and it is almost impossible to make them out. Hopefully the information in the posts above will suffice. As I mentioned I ran "go -r", but it did not create a file as I expected.

There is no rush on this. If it is after the holidays, that is fine.

I will hold off on any actions on my part until I hear from you. If you need additional information from me just let me know.

Again, thank you very much.



Lord, I’ve been reading through this thread (and others) collecting all of the knowledge and info you’ve imparted to the forum and others, and all I can say is: you are truly the hero Gotham deserves :slight_smile: Ha, you’re awesome, man! And gracious + patient, with all the help you’ve given everyone.

My head’s swirling with everything, trying to piece it all together into a cohesive whole so I can better understand everything and how it relates + interconnects together (purely for my own knowledge and understanding). I know I could just follow instructions, but I like understanding and my hope is to be able to do what you do on my own in the future.

Anyway, I downloaded what seem to be the two most recent Marvell packages: 2.2.0.1125b and 2.3.0.1007. I extracted both separately, rebooted into DOS, took backup dump’s with both tools (go -r), and then did a binary comparison between them to be positive they both extracted the same thing (for redundancy test).

Then for curiosity’s sake, I opened the dump (IMAG_RB.BIN) in HxD and read through its entirety, trying to get a general feel/familiarity with it, looking for strings, version numbers, etc. I did happen to find some funny programmer-speak in it:





I’m currently reading through your python scripts you posted above, doing a comparison between them to see how they work. After that, I’ll run them (for curiosity, one on image, the other on imag_RB.bin). I’m unsure if I’ve overlooked a modded tool or script by you that I should be using here, please correct me if I have.

And finally, is v2.3.0.1007 the latest (and best) firmware that we should be using (those of us with a Marvell 9123)? The Marvell controller I’m wanting to update is my motherboard’s – an EVGA x58 e767 – secondary controller. It’s on an ancient version at the moment, despite me using the latest BIOS available. Attached is my dump, for reference.

I’m not asking for anything in particular. My plan at the moment is to run the latest (what I currently believe is the best/latest) update and go from there… unless you advise differently, like if there’s an even better update, or if I should be tweaking or manually injecting some dev ID’s (which I’m guessing isn’t needed, seeing as the Marvell updater was able to find and extract the dump from my controller).

Thanks again for all your knowledge and input throughout this topic!

mineZ_IMAG_RB.zip (105 KB)

@lordkag

Here is some additional information when you get to this after the holidays.
I have the browser setting such that I can get black on white now.

Host Name P8CWS
Host IP
MSU Version 4.1.10.2043
Storage Service Agent Version 3.1.0.1
Extension API Version 1.0.0.26
Storage API Version 2.3.10.1081

Driver Version 1.2.0.1049
Chip Revision ID 11
Vendor ID 1B4B
Sub Vendor ID 1B4B
Device ID 9235
Sub Device ID 9235
Port Count 4
Max PCIe Speed 5Gb/s
Current PCIe Speed 5Gb/s
Max PCIe Link 2X
Current PCIe Link 2X
Supported RAID Modes
Supported Stripe Size 32K 64K 128K
Maximum PD per Adapter 10
Maximum Port Multiplier 2
Poll S.M.A.R.T Status O ON (§) OFF
Model 88SE9235


Adapter ID 0
PM ID 3
Parent Device HBA
Parent Phy ID 3
Number of Ports 5
Vendor ID 1b4b
Device ID 9705
Product Revision a0
PM Specification Revision 1.2

I hope this information helps.

I have failed to get a extracted image with go -r.

I am getting the following message:
"Cannot set environment variable "TOP DIR"
Environment full?
The shell is about to be terminated, though, this is forbidden (usually by enabling the "/P option)."

I tried using the “/P” in the bat file, but no change.

I am using FreeDOS. I even built a new USB DOS boot with Rufus, but no change.

When you get to this, please let me know how I need to fix it. ( I did see you note about Python, so I will be trying to get your version running.)

More …

I know have Python 3.7 installed and I have verified it by running “Py” in the CMD.

I am confused by this statement “Then you basically drop an image on #Marvell_Split.bat or #Marvell_SplitBin.bat (in case you’re not sure, pick one, the script will tell you which to choose) to have the main components extracted.”. This statement leads me to believe that Python should have installed a GUI process. I tried running the bat file from the CMD; however, it just appeared to hang.

Will do more research on finding a GUI for Python.



@N602 Sorry it took me so long to reply.

I enabled TPM 2.0, disabled CSM, enabled secure boot and installed the keys, the system booted into windows and ran system info:

1
2
3
 
Secure Boot State               On
PCR7 Configuration Binding Possible
Device Encryption Support Reasons for failed automatic device encryption: Hardware Security Test Interface failed and the device is not InstantGo, Un-allowed DMA-capable bus/device(s) detected
 

I checked my PC's powerconfig sleep states:
1
2
3
 

Standby (S0 Low Power Idle)
The system firmware does not support this standby state.
 


This is the reason for the failed automatic encryption as the device is not InstantGo (AKA Connected Standby S0 Low Power Idle) supported.

@lordkag

Here is a list of all the (components of) 92xx A1 firmware in my possession that may be helpful;

AUTOLOAD VERSION[0x00000000]: 200015
LOADER VERSION[0x0000C000]: 21001004
BIOS VERSION[0x00020000]: 1.0.0.1012
FIRMWARE VERSION[0x00030000]: 2.3.0.1041

---

AUTOLOAD VERSION[0x00000000]: 200016
BIOS VERSION[0x00020000]: 1.0.0.1013 (Actual BIOS Version 1.0.0.1021)

---

AUTOLOAD VERSION[0x00000000]: 200016
LOADER VERSION[0x0000C000]: 21001005
BIOS VERSION[0x00020000]: 1.0.0.1015
FIRMWARE VERSION[0x00030000]: 2.3.0.1050

---

AUTOLOAD VERSION[0x00000000]: 200017
LOADER VERSION[0x0000C000]: 21001005
BIOS VERSION[0x00020000]: 1.0.0.1016 (Actual BIOS Version 1.0.0.1017)
FIRMWARE VERSION[0x00030000]: 2.3.0.1051

---

AUTOLOAD VERSION[0x00000000]: 200017
LOADER VERSION[0x0000C000]: 21001006
BIOS VERSION[0x00020000]: 1.0.0.1018
FIRMWARE VERSION[0x00030000]: 2.3.0.1053

---

AUTOLOAD VERSION[0x00000000]: 200018
LOADER VERSION[0x0000C000]: 21001005
BIOS VERSION[0x00020000]: 1.0.0.1019 (Actual BIOS Version 1.0.0.1020)
FIRMWARE VERSION[0x00030000]: 2.3.0.1055

---

AUTOLOAD VERSION[0x00000000]: 200018
LOADER VERSION[0x0000C000]: 21001006
BIOS VERSION[0x00020000]: 1.0.0.1023
FIRMWARE VERSION[0x00030000]: 2.3.0.1058

---

PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1060
AUTOLOAD VERSION[0x00000000]: 200018
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1023
FIRMWARE VERSION[0x00030000]: 2.3.0.1063

---

PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1061
AUTOLOAD VERSION[0x00000000]: 200018
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1024
FIRMWARE VERSION[0x00030000]: 2.3.0.1063

---

PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1063
AUTOLOAD VERSION[0x00000000]: 200018
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1024
FIRMWARE VERSION[0x00030000]: 2.3.0.1065

---

PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1065
AUTOLOAD VERSION[0x00000000]: 200018
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1024
FIRMWARE VERSION[0x00030000]: 2.3.0.1070

---

PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1066
AUTOLOAD VERSION[0x00000000]: 200019
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1027
FIRMWARE VERSION[0x00030000]: 2.3.0.1076

---

PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1067
AUTOLOAD VERSION[0x00000000]: 200020
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1028
FIRMWARE VERSION[0x00030000]: 2.3.0.1078


See attachment.

Marvell_92xx_A1_Firmware.rar (1.9 MB)

@N602 :

The batch files from Marvell don’t work nicely with FREEDOS (I had the exact same issues with environment). When I used standard MSDOS from Rufus, everything worked as expected …

Thanks for replying to a really old post.

Good information to know.

I was trying to get the information for Lordkag, but given the amount of time that has passed, I have decided not to proceed with trying to get these mods done.

Regards,

Hello,

im trying to get my onboard (GA-Z87X-OC Force) marvell 9230 (rev A0) to work in esxi Passthrough.
It was firmware 2.3.0.1050 and is embedded in UEFI (do not show up on post screen, accessible trough UEFI) on esxi or Passthrough to vm it only detects ports 1 and 3, 0 and 2 get errors.
I have tried Firmwares 1050, 1066, 1070, 1076 and they all have the same issues is there the Firmware 2.3.0.1078 for revision A0?
Can i get this onboard chip to post on boot up?

My second Marvell 9230 (rev A1) PCIE Card (Firmware 2.3.0.1078) works fine and dont have problems with Passthrough, it posts on boot and can be accessed by crtl-m. But i want to use the onboard chip it is connected with two lanes…

Sry for my bad english.





PACKAGE VERSION[0xFFFFFFFF]: 2.3.0.1067
AUTOLOAD VERSION[0x00000000]: 200020
LOADER VERSION[0x0000C000]: 21001008
BIOS VERSION[0x00020000]: 1.0.0.1028
FIRMWARE VERSION[0x00030000]: 2.3.0.1078

@chinobino

My Marvell 88SE9230 RAID card is manufactured by another one. Link is here:
Click here


I flashed the whole package ver.2.3.0.1067(info as above) in the following procedure :
Setp 1. &gt; go.bat -w -y /Chip erase/
setp 2. &gt; go.bat -y

and works fine so far with my 88SE9230 A1 revision raid card. For people who have A1 revision ,I believe it’s worth giving it a try. Thanx for sharing the collection of firmwares.

I have ST-Lab A-560 (9230 rev.A1)

by default 2.3.0.1065 firmware.

I try two mSATA SSD in RAID0
RAID created. formated. but if try copy any file - hang and disappear :frowning:

try flash 1076 or 1078 firmware - but after reboot about 5 minutes boot delay.

any help?


P.S. when use command:
mdu_mag restore_cfg -g 0
then see on flashed firmware 2.3.0.1065
BIOS Version = 1.0.0.1024

after try flash 2.3.0.1078
BIOS Version = ffff.ffff.ffff.ffff