Okay So I have two PCIe controller cards, both 3rd party, unbranded from eBay.
1st runs off the Marvell 88SE92xx chipset. 4 Internal Ports.
2nd runs off the ASMedia ASM1061 chipset. 2 Internal/ 2 External Ports (selectable by jumpers)
The hack is running stable no issues on 10.4.2 with an i7 8700k ASUS Maximus X Code as iMac 18,3
However, I wanted to add eSATA ports for some older drive enclosures I own, and some extra internal SATA ports as I've used all the SATA ports on the Motherboard.
The 1st Marvell actually works OOB in Mac OSX. No kexts needed. Speeds seem good (350R/400W on an SSD 80R/W on a 5400 HDD)
However, a few things don't seem perfect.
1) the AHCI version is 1.0. I imagine this could and should be a newer version? 1.2 or 1.31? If it should be updated, is this something only able to be flashed from a Windows OS?
2) It can't be used as a boot option. the Maximus doesn't recognise it as a startup option. Is this a possible AHCI version firmware issue? Is booting ever possible from these controllers?
3) TRIM was disabled in system profile. I know it automatically worked OOB for my NVME2 drives connected to the motherboard, But to enable Trim on an SSD 860 EVO I needed to submit the terminal command:
sudo trimforce enable
Now the second ASMedia controller I haven't been able to get to work. I've switched the jumpers (not sure which position is the 1,2,3) so I've made it so that one internal and one external will operate to test the card.
System profiler sees the card like all the others as a "Generic AHCI Controller" with AHCI version 1.20 supported.
However, I cannot get any drive to be recognised in the eSATA ports. I haven't tested the internal ports as I don't need these.
I've attempted using two kexts (attached) AHCI_3rdParty_eSATA.kext and AHCIPortInjector.kext
When I use AHCIPortInjector.kext the SATA device is recognised in system profiler as an ASM1062. However no drive works with this kext. And reading the chip itself on the card it says ASM1061. So not sure why it's preferring the 1062 entry over the 1061 since both are present in the kext.
When I use AHCI_3rdParty_eSATA.kext that SATA device is not recognised at all in the system profiler. It disappears.
I'm not using a custom DSDT for this motherboard and I've attached my config.plist if anyone has some insight on either cards.
Here's my driver for LSI MegaRAID SAS family of controllers called SASMegaRAID.kext. This one was requested few times at InsanelyMac and other Mac-related communities.
Download link https://github.com/dukzcry/osx-goodies/releases or https://www.insanelymac.com/forum/files/file/306-sasmegaraidkext/
Q: I can't manage controller via supplied utility
A: Only monitoring functional is supported, management is done via controller BIOS Q: Any chance to make cards based on SAS2208 chip work? A: Not currently, the chip belongs to the same family, but it requires a lot of handling different from common handling for supported cards. Q: The driver loads but my device doesn't show up anywhere in profiler. What should I do? A: Try inverting "PreferMSI" key value. It's under "Settings" dictionary in kext's plist. Q: macOS doesn't see my volumes A: Set them as virtual (logical) disks in controller's BIOS. If no luck try "Uncontiguous enumeration.zip" version. See full issue report https://www.insanelymac.com/forum/forums/topic/285197-driver-for-lsi-megaraid-sas-family/?do=findComment&comment=1987665
Q: Is it possible to push more from my setup? A: It may be.
The plist from "Unsafe settings unlocked.zip" allows tweaking of dangerous options. Before playing with them you need to detach all HDDs with critical data and attach some spare HDD for doing the tweaks. The "MaxSGL" option is number of scatter gather list entries you controller can handle. The "MaxTransferSize" determines the maximum size of data transfer (in bytes) per request your controller can catch. If you set them to some enormously big value then they will be truncated to the max values your hardware can achieve (may still be not safe enough for successful data transfers). "MaxTransferSizePerSegment" does the same but for a single SGL entry (will never be larger than MaxTransferSize). For the tests you need to stick to the system.log and start a transfer of a >= 100gb data. If the settings you set are inappropriate, you'll see the I/O errors.
Q: My Mac stopped to go sleep after i've loaded your kext. A: This is awaited. See https://www.insanelymac.com/forum/forums/topic/285197-driver-for-lsi-megaraid-sas-family/?do=findComment&comment=1986269 Use kext from "Unsafe settings unlocked.zip" and set "AllowSleep" key to true.
Q: Your driver doesn't work for me. Are there any alternatives? A: Yes there is one https://www.insanelymac.com/forum/forums/topic/314799-guide-z820-el-capitan-the-great-guide-sucess/?do=findComment&comment=2556863
Q: I get "mfiutil: mfi_open: not such file or directory" error
A: It maybe that unit number of you device is not 0 (which is default). Try the following:
$ ls /dev/mfi?
$ sudo mfiutil -u 2
My system is Asus Z170-P Motherboard i5 6600K Processor NVIDIA GeForce GTX 1050 Ti 4095 MB Be-quiet 500W PSU Crucial 16 GB 2400 MHz DDR4
xHCI Handoff enable Serial Port disable SATA AHCI mode IOAPIC 24-119 Entries (enable y disable) two mode stuck
I can not build a robust and stable system, The system Sierra is already installed but when I restart or shut down, I get the error Still waiting for root device error, but after too many reboot ( from 2 times to 9) start correctly or other times leave too minutes, with prohibited symbol and finally starts. Once started recognised correctly HDD.
Also I tried with a new EVO860 nvme SSD , but I have the same problem.
I dont know because sometimes yes sometimes no, the system stuck in this error
I add some information files and logs.