Most SATA PCI-E extension cards only utilize the OROM for OS booting or switching between AHCI and RAID modes, if supported. Once a supported OS is fully started, the controller is overtaken by the driver. The driver may pay some attention to some of the bits in the registers previously set by OROM execution, but in most cases it doesnât.
At least with Sil3231 chips, wiping the firmware results in a fully functional AHCI controller with the only exception that itâs unbootable and is entirely ignored at boot time.
In a similar manner, removing the onboard 106X OROM from an UEFI firmware image yields the same results â you get no pop-up at boot time and you canât boot from the onboard ASM 106X, but the chip itself works perfectly well once your OS is loaded.
So, maybe you should try flashing an empty firmware image filled with FFs.
I donât know if itâs a really good idea â the driver MAY consider the bits set by OROM execution â but you could always flash back to a working firmware.
* * *
As it was mentioned before, there are two kinds of 106X chips: ones that ship with smaller (~32 Kb) firmware images and those with the larger firmware (>64 Kb)
The smaller images are branded 0.X (like 0.95, 0.951, 0.97) and the larger ones are 3.X (3.70, 3.80, etc)
Smaller images have no RAID functionality and only support 1 PCI-E lane, larger images tend to support RAID and utilize 2 lanes.
If your onboard 106X controller or the PCI-E slot that you use for a 106X extension card is only linked to 1 lane, flashing anything 3.X will get you into trouble ranging from terrible transfer speeds to BSODs.
If it can handle 2 lanes, you may safely upgrade to 3.X from 0.X in the case of onboard 106X â provided that the UEFI image has enough free space. But in most cases, shipping with a 0.X firmware quite logically suggests that the onboard controller is only linked up to 1 lane.
As for the extension cards, itâs a bit trickier: if a PCI-E card comes with only 64 Kb of onboard SPI flash, you are limited to 0.X firmware only â even if itâs enough for a 3.X firmware. These cards wonât do RAID or handle 2 lanes. If it ships with 128 Kb of SPI flash, it either already uses a 3.X firmware or you may try to flash one. The ASM 106X extension cards produced by Orient tend to use 64 Kb SPI flash, others may ship with 128 Kb. That is the general rule for picking a suitable firmware for your PCI-E extension card. Some mobos like P8Z77-V utilize a different number of lanes for the x1 PCI-E slots depending on the current BIOS settings. This detail may account for some reports of BSODs / weird behaviour of 106X extension cards that come with the larger 3.X firmware â the said P8Z77-V, for example, has its third x1 PCI-E slot using only 1 lane in one of the modes, compared to the 4 and 16 lanes provided for the first two slots. Using only 1 lane for a PCI-E slot is quite uncommon, so maybe the 3.X firmware isnât even meant to be compatible (I might be mistaken about this theory)
Downgrading from factory 3.X to 0.X should be possible, it may prove useful for Hackintosh users or just about anyone who needs RAID disabled for good for some of the reasons mentioned above. But you shouldnât do this if you donât absolutely need it, since your speed cap will get halved (250 Mb/s @ 1 lane vs 500 Mb/s @ 2 lanes) even in the regular AHCI mode.
Bug-free-wise, the 0.97 1-lane, non-RAID firmware roughly corresponds to the 3.80 2-lane, RAID-enabled firmware. Choose the one that doesnât give you any trouble and fits into your UEFI image / SPI flash.
Newer firmware canât give you better speeds, itâs just the chip itself and its OS-level drivers that affect performance. But newer firmware may and often does resolve issues that stem from controller misconfiguration during OROM execution. Wiping the firmware altogether may be an alternative to upgrading, since no OROM execution means that no configuration happens and the driver is likely to assume default / fail-safe values when it sees empty registers. Such values may give you the best possible stability / performance (or may not) Of course you canât boot an OS from a SATA controller with no firmware, but thatâs exactly what some people are after (no one likes waiting through some extra seconds of pop-up screen during boot)
Personally I think that the 106X is only good for non-RAID use, and since I donât use SSDs with 106X, I prefer to go for the 0.97 firmware to make sure it behaves just like a regular AHCI controller. Most hard drives have peak speeds of about 120-150 Mb/s (at best, like huge chunk sequential reads/writes across the outer, faster areas of the disk) so 250 Mb/s @ 1 lane is just enough to pump data between 2 disks connected to a 106X at almost top speed (120 Mb/s read + 120 Mb/s write)
The only difference between onboard and PCI-E OROMs is the header, as it was mentioned multiple times before. The latest official PCI-E non-RAID/1-lane firmware version is 0.951 and if we compare it to the 0.951 found in UEFI images, the difference is:
Adding this header to a 0.97 onboard OROM is likely to produce a working 0.97 PCI-E OROM (there exists no official 0.97 for PCI-E cards shipping with 0.X firmware)
If some of you guys attempt to upgrade your onboard 106X OROM to 3.80 please mind removing the header â the 3.X firmware images are almost exclusively found in RAID-enabled versions of 106X PCI-E extension cards and are often distributed with the header intact. If some of you tried the trick without removing the header, too bad for you. Flashing 3.X to no ill effect doesnât imply it is even executed at boot time â the controller will still work in the OS with a broken or missing firmware â seeing the pop-up screen and being able to boot an OS from an attached drive is what implies a working OROM.
P.S. Just to make it clear, in a nutshell: 106X PCI-E extension cards come in two flavors: the 0.X version and the 3.X version. You canât upgrade from 0.X to 3.X even if the SPI flash has enough space. 0.X uses 1 PCI-E lane and offers no RAID functionality, 3.X uses 2 lanes and offers RAID functionality. Downgrading from 3.X to 0.X should be possible. If you want a decent SSD experience, you must go for a 3.X card and only connect a single SSD drive. Still, you will be limited by 500 Mb/s and many SSDs can reach speeds of up to 600 Mb/s. The onboard version of 106X is either linked to 1 lane or 2 (I have never seen a 2-lane onboard 106X in my life) Upgrading the firmware from 0.X to 3.X should only do good if your onboard 106X is somehow linked to 2 lanes but ships with 0.X firmware for whatever reason. Flashing a 3.X image instead of 0.X in the case of 1-lane 106X may have but a placebo effect in this âonboardâ scenario â by essentially breaking OROM execution and forcing the drivers to fall back to default configuration values. A PCI-E OROM must have a header, otherwise itâs broken. An onboard OROM must have no header, otherwise itâs broken.
EDIT by Fernando: Quoted post personified and inserted image resized (was too big, can be enlarged by clicking onto it)