[Discussion] Firmware for Asmedia Sata 6G Controllers

Driver version 3.3.5.0 from 24.06.2020 - Asmedia 106x SATA/RAID Controller.

That’s a REALLY bad setup for a new SATA card. For the same money you could have gotten an ASM1166 that is real SATA controller with 6 ports and not a SATA switch chip bodged to an old 2 port SATA controller chip
https://www.asmedia.com.tw/product/45aYq…8dYQ8bxZ4UR9wG5

This contraption of a card will perform like crap and have driver issues because it’s using a SATA switch. Totally pointless considering ASM1166 costs.

Indeed… Marvin is rigth… that card uses the JMB575 as port multiplier, no more miracles here, try old versions.
https://www.jmicron.com/file/download/893/JMB575.pdf

EDIT: Marvin just explained and look at the pdf i linked. The JMB575 can work as 1 to 5- ports Port Multiplier or 5 to 1-
ports Port Selector. There is no somehow miracles here to a bad design product. Sell it, return it or give it to Santa Claus.

Looking closer at the picture and at the traces it looks like SATA1 is directly connected to ASM1062 and all other ports are connected to port 2 of ASM1062 via the JM575 port multiplier. Bad card, absolutely useless for a RAID setup for example. With a port multiplier only one device can be accessed at a time. And that explains your problems with combinations on connecting drives to different ports.

I don’t need a Raid. I just want all 6 discs to be visible at the same time in Windows. I know very well that they will not work at the same speed simultaneously on two channel controller.
Is it possible to somehow solve the problem?

The latest firmware for the asmedia1061 pcie cards are the 4.27 v2.
This is not compatible with Intel 600 series motherboards because all firmwares advertise that the maximum
payload size is 512 bytes but this chip in hardware supports only 128 bytes.

It is possible to someone to mod this? I attached the firmware here at the end of my post.

ahci427.zip (21.1 KB)

1 Like

@boombastik

Firmware v4.27 for Asm106x, Available on UBU.
I renamed it to *.rom.
I put it (MMTool and insert) in the bios of the ASUS X79-DELUXE.
On PC Boot, It didn’t show the usual message that … found Asm106x … but in Bios it saw the HDD … and in Windows 10 it worked normally.

Best Regards.
Dioskouridis.

16-01-2024
With Driver : Standard SATA AHCI Controller , of Windows → Work.
But
With Driver :Asmedia SATA Controller
; Edited 04/12/2013
DriverVer=06/24/2020, 3.3.5.0000

  1. PC. Boot.
    2. Windows 10 NoT Start !!!Not Work

I believe this firmware (v4) is more suitable for add-on cards and not embedded motherboard controller.

EDIT: You can check the original ones in the stock Asus bios update files, i believe their all in the 0.9x range.

1 Like

@MeatWar

This is !!!
But I realized it late.

Best Regards.
Dioskouridis.

Do you know which Firmware,
had the original M/B Asus X79-DELUXE ?
Thank you.

19-Jan-2024
@MeatWar

Thank you for your interest.
But the Original ASUS BIOS does not have the firmware for:
ASM1061.

Best Regards.

Sorry but it does…you can check it with UBU and you know this…

Storage
Intel® X79 chipset :
2 x SATA 6Gb/s port(s), black
4 x SATA 3Gb/s port(s), black
Support Raid 0, 1, 5, 10
Marvell® PCIe 88SE9230 controller :
4 x SATA 6Gb/s port(s), dark brown
ASMedia® ASM1061 controller :
2 x SATA 6Gb/s port(s), dark brown
2 x Power eSATA 6Gb/s port(s), green

@Dioskouridis
EDIT: Your correct, my bad assumption without confirmation, there’s no OpRom as standalone module for the ASM1061, only for the Marvell.
The ASM works as standard AHCI controller.
Fernando did a test a long time ago to manually insert the ASM OpRom in his P8Z77 with no effects whatsoever, so don’t waste time with these.

1 Like

@MeatWar
Thank you for your prompt reply and help.
It’s exactly as you wrote it.
But the Firmware, It does not exist, inside, in the ASUS Bios.


Not Found: 1b21

x79-UBU_01
x79-UBU_02

Μaybe … When, for the first time֍, I used AsMedia’s programs, (for FirmWare) it was already too late.
Not one was working. With Bios the Original of ASUS.
Maybe it’s because of what : Before: ( From the first time֍) I had put on the PC, the bios of Lost_N_Bios, (with Asm 0.97).

@Fernando
This should go in another thread…
But in which?

Now I have RST 13.1 … and HDD.
and: Event 264, Defrag
The storage optimizer couldn’t complete retrim on D_Disk (D:) because: The operation requested is not supported by the hardware backing the volume. (0x8900002A)
EventData
retrim
D_Disk (D:)
The operation requested is not supported by the hardware backing the volume. (0x8900002A) 2A000089800200008D0000009000000022B63823DBB1BD381B0700000000000000000000
If I Put RST 12.9 , There is a possibility,
me to get rid of: Event 264, Defrag ?

Best Regards.

Hello!

Here’s the OROM with the FW version 4.30 for the ASM1061 controller saved from Linux from an expansion card like this one.

https://www.amazon.de/dp/B0CM9LQFHZ/

The CD which comes with the card contains the driver versions 3.3.5 WHQL and 3.3.4.

On a very old Asus A8N-E motherboard, the expansion card is recognized by the BIOS and the controller sees a Samsung 860 Pro SSD and a SATA DVD writer attached to it, but the behaviour is strange.
With the the FW version 4.30, when the Samsung 860 Pro SSD is connected, the initialization does not finish (the SSD is detected, but it does not return control to the booting process) and the system does not boot. When only the SATA DVD writer is connected, the initialization finishes and the system boots.

This strange behaviour of the system not beeing able to boot when the Samsung 860 Pro SSD is connected to the expansion card was observed with other expansion cards which use the same ASM1061 controller and with the FW versions 3.02, 3.70, 4.20 and 4.27, so it’s not only a problem of the 4.30 version FW.
On another expansion card, with the FW versions 3.02 and 3.70, when the Samsung 860 PRO SSD is connected, the initialization finishes (the drive is detected and the control is returned back to the booting process) but the system does not boot.
On another expansion card, with the FW versions 4.20 and 4.27, when the Samsung 860 PRO SSD is connected, the initialization does not finish (the drive is detected, but it does not return control to the booting process) and the system also does not boot.
The only FW version which can be used in this case on the other expansion card is the version 0.951. With this version the initialization finishes correctly (it reaches the point where it shows “Press any key to continue” after displaying the drives it found) and the system boots from the Samsung 860 Pro SSD.
Using a SATA HDD instead of the Samsung 860 PRO SSD does not make any difference.

I did NOT try to include any of the OROM versions (3.02, 3.70, 4.20 and 4.27) in the BIOS, so I have no idea if that brings anything.

If you have any ideas regarding the issue that the initialization does not finish, let me know.

Is there an utility to save the content of the SPI flash directly, without unsoldering the flash from the board, in order to be able to flash it later on other expansions cards?

P.S. It seems I cannot add an attachment if I’m a new user. What should I do to put the OROM with the 4.30 FW here?

My system boots 100% fine first time every time on a Samsung 512gb 860 pro using SU-SA 3008 8 port ASM 1061 controller and also a 4 port togglable SU-SA 3004 both using firmware 4.27 AHCI so it must be something particular to that design of the hardware as not all 1061’s are afflicted by this bug.

This is under Windows 7 however and drivers 3.3.3.0. I couldn’t download the firmware 4.30 to test it either as it seems to have been deleted. I’m not worried about bricking the cards as I have a chip programmer.

Here’s a new link with the FW 4.30 valid for 7 days on another host.
https://www.filemail.com/d/hqstefmnpphavqq

If this also does not work, tell me where to upload it.

If you have a programmer, can you read the contents of the flash after flashing the new file and post the flash image here, please?

Thank you!

What’s the device ID of this particular card taken from Device Manager > Hardware ID’s?

I’ve taken a preliminary look at 4.30 compared to 4.27 in HxD and they are very different in contents, but it’s too late in the early hours of morning to start testing or trying anything now. All firmwares of this type are 38,144 bytes as opposed to 128K for 1062. The same as the file you uploaded so I don’t see what difference flashing this and dumping it back would make as it would just be the same thing with extra padding from the flash chip.

I seem to remember some people being limited to 0.951 or 0.954!? on certain cards or maybe it was onboard 32K firmware cards and not add-on cards, I don’t remember the posts because it’s ages since I’ve touched any of this creaky stuff. I’ll do more investigations when I have more time on 4.30, but this could easily be a beta firmware. Most of these cards came originally with 4.20. I’ve never seen a 4.30 in the wild. 4.27 was last I found and I made an equiv IDE mode for it hosted on other forums. It will probably need a corresponding IDE mode one crafting for 4.30 if it works. I’m a bit wary atm since I don’t have any issues. I do have Samsung 860PRO 512gb to perform same tests under same firmware conditions. It’s certainly got me intrigued as I don’t experience the same kind thing with 4.27. But my cards (both asm1061’s) are different layouts to yours. One a toggleable 4 port with multiplex and 8 port card with 4 multiplexers.

In fact it’s easy enough to test out this FW on the toggleable 1061 adapter, since if you make a mess just boot in IDE mode, flip the switch to ahci and flash back the bricking you did. I already made a disk for such purposes. No real need for a CH341a programmer.

It could be an updated firmware for compatibility with Intel 600 series chipsets (the 4.27 isn’t) like they’ve already done so for the ASM 1166 and 1062.

I think the J3 jumper provision on the card is for soldering in pins with berg jumper to select IDE or AHCI mode. As the original advert for the card on amazon states “Supports IDE/AHCI programming interface” yet there is no switch for this visible on the card, so looks like hardwired to AHCI mode without doing your own work to make this.

Some of these type of cards have their own oscillator crystal onboard to generate the reference clocks and don’t take the signal from the motherboard. On those that don’t like yours you might want to disable PCIe spread spectrum clocking if possible and see if this makes a difference to the boot hangs, otherwise the clock jitters around and some drives might not like it. I know certain certain PCIe expansions don’t like it and will randomly start to disconnect stuff.

I was also surprised to see that the expansion card has a new FW version which I couldn’t find anywhere.
That’s why I decided to make the OROM available for others. I have no idea if it’s a beta version or not. I haven’t seen any mention of that.
The FW advertises itself to be version 4.30 and you might be right regarding the hardwired AHCI mode on this expansion card. At initialization it says it’s in AHCI mode.

Nevermind reading the flash after flashing it to the SPI flash on the expansion card, because this is the OROM image like seen in Linux. So if you want to flash it on the SPI flash from the expansion card, you are missing the first 0x100 bytes. These 0x100 bytes are the bytes I was trying to get without unsoldering the SPI flash, so that I can provide the SPI flash image too. I’ll try to read the contents of the SPI flash next year and get back to you, and also with the HW ID info you requested.

In the meantime I tried the bin flashed to my switched to AHCI mode 4 port adapter, but it no longer boots and is unrecognised. I think something wrong with dump. Had to flash back the bricking.

Roms are supposed to be 38,144 bytes but this 38,400 bytes in length I think some header info is missing similar to what you said. I just flashed back to 4.27 again.

I might try buying one of these adapters just to play around with but theres no guarantee I will even recieve firmware 4.30. Even though the card has provisions for IDE/AHCI mode select pins it doesn’t have any more than 1 rom onboard so I think IDE mode is probably impossible anyway unless it’s a stacked SPI chip which is probably unlikely for cheap adapters.

I’ve attached pic below of one of my systems booting with 1061 and Samsung 860 PRO booting on the 4.27 AHCI ROM. I don’t get any hangs or problems…ever. I know that’s not much help but it shows it’s possible. I don’t know where you would start to look for finding the cause of this odd issue with Samsung 860 PRO.

If i could have made 4.30 work I’d have tested it booting on 4.30. If you want to get the full flash it’s going to be have to read into a CH341a and dumped back out.

I may need the missing header of 4.30 for allowing construction of an IDE version of the ROM.

I also get to the point where the Samsung 860 PRO SSD is detected (or a SATA HDD), but the initialization does not finish (the SSD is detected, but it does not return control to the booting process) and the system does not boot.

Here is the HW ID of the expansion card from above (which came with FW 4.30).
The card displays FW “Ver 4.30 AHCI mode” and says “Using PCIE Gen 1”.

PCI\VEN_1B21&DEV_0612&SUBSYS_10601B21&REV_02
PCI\VEN_1B21&DEV_0612&SUBSYS_10601B21
PCI\VEN_1B21&DEV_0612&CC_010601
PCI\VEN_1B21&DEV_0612&CC_0106

And this is the HW ID of the other expansion card, which also has USB 3.0 ports.
The card says “Using PCIE Gen 2”.

PCI\VEN_1B21&DEV_0612&SUBSYS_10601B21&REV_01
PCI\VEN_1B21&DEV_0612&SUBSYS_10601B21
PCI\VEN_1B21&DEV_0612&CC_010601
PCI\VEN_1B21&DEV_0612&CC_0106

Only the revision of the cards is different here, but the “PCIE Gen” version is also different.

@kevsamiga You said just above “I might try buying one of these adapters just to play around with but theres no guarantee I will even recieve firmware 4.30”. Before you do that, check first if the CH341A supports reading/writing the SPI flash from the expansion card, because it’s a Boya Micro 25D40ASTIG flash (BY25D40) and the “106SPI.EXE” file that is normally used to flash in Windows does not detect it.

BTW, which card did you use when you made the test pictured just above with the Samsung 860 PRO SSD?

I’m not sure Boya Micro is detected in neoprogrammer, but I do have an updated chiplist so it might be picked up as a compatible chip. Needs checking out.

I used this one in a GEN2 slot below, but it also works with the 8 port version without issue. the SU-SA 3008. These are both GEN2 cards not GEN3. There are plenty of the 4 port togglable adapters on ebay. The 8 port version with 4 multiplexers is a little more difficult to come by. The bios this came with was 4.21 and was buggy with no boot output (now on 4.27 on both in both IDE and AHCI modes). The toggle one is useful if you mess up your installations/drivers with AHCI cards because you can get back in using IDE mode and fix it. If you use it in a GEN1 x1 slot then you have no better speeds than SATA2 as it’s only PCIe x1 lane. The 3008 card is x4 card.


.