I was quite impressed by the two 512GB XP941 SSDs I received from Samsung for testing, leaving me wondering about what is next, but then ADATA upped the ante with their flagship consumer SSD in M.2 form-factor. Enter the SR1020NP


The ADATA SR1020NP PCIe 2.0 x4 (Socket 3 with M key) is based on the LSI-SandForce 3739 and wired to MLC NAND flash, with up to twice the capacity of the Samsung XP941 and transfer rates of up to 1.8GB/s, which is only 200MB/s short of the theoretical 2GB/s limit. Much faster than the Samsung XP941. I’ll start testing/benchmarking it a.s.a.p.

Boot Drive

The Samsung XP941 can only be used as boot drive in a MacPro (not the latest model), with the latest ASRock Z97 Extreme6 motherboard, and Asus motherboards will soon, thankfully, also support the Samsung XP941 SSD with a new UEFI BIOS update – the M.2 socket on the Asus motherboards will only support PCIe x2, but it should also support PCIe host adapters like the Lycom DT-120 to be had for £8.38 including VAT (plus shipping).

Edit: RAMCITY, the Upgrade Experts™ from down under – yeah that is Australia – sells the same card for AUD$25.99 + shipping. Do note that the price for international orders will be 10% lower (NO VAT).

Additionally. You can order your Samsung XP491’s in 128GB, 256GB and 256GB right away. No delay, and they offer an excellent service and warranty I am told.

Other motherboard vendors should soon follow this initiative, so you won’t have to replace the factory AHCI driver with GUID: 8F5A2E02-538C-4D59-B920-C4786ACBC552 in the UEFI BIOS with the one from the MacPro6,1 or ASRock Z97 Extreme6 motherboard BIOS – I found a SAMSUNG_M2_DXE Driver* with GUID: 1AC7EE15-1290-402C-80E9-F45A86E43F71 in the UEFI BIOS. Replacing and/or adding a driver is not that difficult in my opinion, but a vanilla solution is preferred here for wide adoption.

Note: I don’t have the new Asus UEFI BIOS (yet) so I don’t know if the ADATA SR1020NP is supported or not. I guess it should work, or not of course. We’ll see when the update arrives here.

* This hack has been confirmed to work by “barren” in this post over at

System Information

System Information on a MacPro shows the drive under SATA/SATAExpress, as Generic AHCI Controller instead of Apple SSD Controller, which is quite normal since the vendor-id/vendor-id and subsystem-id combo doesn’t match with what AppleAHCIPort.kext is checking for i.e. 0x144d, 0x1600 and 0x9183 (et all). Not to mention that the drive is not connected via Thunderbolt and thus it isn’t showing up as a SATA Express Controller. Not that it really matters, since we hack folks know how to fix the ID’s, by setting them from the DSDT or injecting them as EFI device-properties 😉

Note: The name, “Apple” in the above example, can also be “Generic” or “Thunderbolt” depending on the type of the controller.

AHCI versus NVMe

A next step, in the near future I presume, would be the addition of the nvmexpress driver for UEFI BIOS. That and a port of the Linux client driver would make everything even faster and more power efficient. Like this isn’t fast enough already.

Edit: Samsung has a new product in the pipeline, the SM951 with a PCIe 2.0/3.0 x4 interface. This new product will offer a sequential read speed of up to 1600 MB/s and a sequential write speed of up to 1000 MB/s with current PCIe 2.0 motherboards, and 2150 MB/s and 1550 MB/s respectively when installed in a PCI Express 3.0 x4 Lane Host adapter like the Lycom DT-120.

Pricing and Availability

The ADATA SR1020NP is not yet available and thus a price is yet to be revealed, but that should change during/after Computex Taipei (3-4 june 2014). I’ll start saving, because I want two of them, and since the Samsung 512GB modules are bloody expensive already… this is going to hurt my wallet. A lot more even!


With the old Mac Pro you can upgrade your RAM, Graphics card(s) and (hard)drives. Some even went as far as replacing the processor(s). Now your Mac Pro can get a new second life, with help of a Lycom DT-120 adapter card with a Samsung module. Soon adding ADATA as an alternative. With up to 1TB modules. A pretty sweet deal for your ‘old’ Mac Pro. Which may still be fast enough for what you do with it.

The Catch

The AsRock Z97 Extreme6 motherboard (read this review) and Lycom DT-120 host adapter are currently the two best options to add Ultra M.2 X4 support to a hackintosh, but there is a catch. The Intel Z97 chipset supports 16 PCI Express 3.0 lanes, with help of the (Haswell) microprocessors, and the lane configuration (also) depends on the number of installed PCIe (graphics) cards and other devices. This is not optimal, but it will become less of an issue with Intel’s next generation X99 chipset (getting more lanes). For now we have to accept the (somewhat) reduced bandwidth. Not that I mind, because I use the IGPU only (I’m not a gamer) and thus it does not apply to my setup.


Ok. I installed the ADATA SR1020NP SSD and tried to boot with it in the Lycom DT-120 on a Z68 motherboard. No joy of course. Then I mod the UEFI BIOS and now the good old Intel i5-2500K, with stock frequency settings, boots up in under 10 seconds. But hold on. The same UEFI BIOS mod in the UEFI BIOS of a Gigabyte motherboard, with fast boot enabled, made it in 3 seconds. That is insane fast! I admit that I lost USB support, but that should be fixable 😉

p.s. This is not a review of the ADATA SR1020NP. Nope. I’ll leave that up to other people, happily, when the NDA is lifted 🙂

14 thoughts on “ADATA SR1020NP M.2 SSD

  1. USB boot support? or ALL USB support, lol. Well thanks for the early testing. Hopefully most boards will get UEFI updates, but its good to know we may even be able to hack much older (sandy style) boards to boot through the simple PCIe adapters, since those boards are much less likely to receive any updates.

    • USB boot is not supported when ultrafast boot is enabled in the UEFI BIOS, at least not on some of the Z97 motherboards that I am testing. However. I did setup RevoBoot on a 8GB USB 3.0 device for my testing, in legacy mode, and then I ran into issues after getting into the desktop. The stupid thing just hangs after a little while.

  2. Thanks for your great article. This was the only place I’ve found some really useful information regarding those M.2 SSDs (especilally this ADATA as well as the Samsung XP941).

    Since I’m having a mainboard ASRock Z68 Extreme4 Gen3 (Sandy) and it contains already UEFI bios, but booting from external PCIe based cards is obviously impossible at the moment. Newest BIOS is already more than a year old.

    Lastly I was able to successfully replace two components in the BIOS (regarding the SATA OROM and SataDriver for EFI) with the 12.9 Intel version so that TRIM is supported in RAID0. So far so good, but was wondering about such procedure for implementing bootings support for XP941 or for this ADATA.

    Is it enough just to add the SAMSUNG_M2_DXE module directly in BIOS (for example I was doing that with AMI Apito UEFI MMTool)? Free space seems to be enough in the 8MB flash file, component was added last in row Volume 02:01-00. Something else that should be taken into consideration?

  3. Hi Pike,
    I’d like to buy a new SSD in M.2 form-factor for my Asus Maximus VII Gene to install El Capitan but I’m not sure if it is possible.
    These two models have a good price/performance:

    Samsung MZ-N5E250BW 850 EVO SSD M.2 250GB
    Crucial CT250MX200SSD4 MX200 M.2 250 GB

  4. Hello Piker,

    I’ve been following your blog, as well as posts on multiple hackintosh related forums for a while now. I’d like to thank you for all the work you’ve put into this project.

    I’m attempting to do something that shouldn’t work, but I’m trying to approach the problem the correct way (find the root cause, attempt to fix, post results to community once fixed).

    My goal is to get my Asus x99-e ws/USB3.1 board with a 5960x to boot 10.10.5 from an NVME drive.

    I used this method for my install:

    In the guide, they use a AHCI version of the sm951 M.2 device. I purchased the NVME version.

    I have installed the NVME driver from:
    into S/L/E on my boot drive. I have also placed it in the /EFI/CLOVER/kexts/10.10 folder on the EFI partition on my boot drive. The NVME drive is recognized in OSX 10.10.5 and gets the proper speeds in speed tests.

    In reading this thread, in particular this post:
    We have a user who says “hey look, I have it working!”
    I have then added the NvmExpressDXE-64.efi to the /EFI/CLOVER/derivers64UEFI folder

    After that my process has been:
    1) Partition the NVME drive with a single partition using GPT in Disk Utility
    2) Carbon Copy Clone my boot drive to the NVME drive.
    3) Install Clover onto the NVME drive.
    4) Copy the EFI folder from the EFI partition from my boot drive to the EFI partition on the NVME drive.
    5) Select UEFI boot from NVME.

    The result is that I get the following output:
    OsxAptioFixDrv: AllocateRelocBlock(): can not allocate relocation block (0x16687 pages below 0x100000000)

    In reading this bug report:
    it seems that this happens due to large ROMs for multiple devices getting loaded in. I’m only running a GTX 960 and the Asus Thunderbolt EXII card. Additionally, it looks like newer versions of closer don’t work with the binaries that were generated for testing (and worked for some people) from that thread.

    I know you had poked around at some NVME stuff from reading your blog. Do you have any insight into this that could help? I’d be happy to work closely in testing on the x99 platform.

    Thank you,


    • First a simple question. Have you tried to boot with Chameleon? Does that work?

      Also check the output of dmidecode and look for something like this:

      Handle 0x000A, DMI type 19, 15 bytes
      Memory Array Mapped Address
      Starting Address: 0x00000000000
      Ending Address: 0x000FFFFFFFF
      Range Size: 4 GB
      Physical Array Handle: 0x005F
      Partition Width: 4

      Is that part of the output?

      • I did some more fiddling. I got it to boot from the sm951 with nv_disable=1. I also had my Thunderbolt card plugged. It has only booted once though – since then it just hangs at PCI Configuration Begin with the same configuration.

        Under DMI Type 19:
        Memory Array Mapped Address
        Starting Address: 0x0000000000
        Ending Address: 0x00FFFFFFFFF
        Range Size: 64 GB
        Physical Array Handle: 0x1000
        Partition Width: 4

        (Data pulled using Darwin Dumper)

        I did my install via Unibeast and then clover to finish. Unibeast doesn’t see the sm951 at all, I think that is due to the fact that the NVME drives need to be UEFI to boot? I’m unsure if that statement is true. I’ll try to build a Chameleon boot USB today.

        Thank you.

      • You can try to boot with -f or -x to see if it is related to the kernel cache/or drivers getting loaded.

        Your DMI Type 19 data appears to be correct. That is. If you have 64GB memory installed, but I presume that to be the case so this should be fine.

        Your BIOS probably does not include the required NVMe driver and thus Clover first need to load it before you see the NVMe drive(s) and can boot from it. A workaround is to mod the BIOS and add the driver(s) or use a (small) boot partition on a supported drive and load the required driver.

        I also checked some kexts for other X99 users and the main problem is that Apple no longer updates the source code of AppleSMBIOS.kext, AppleAPIC.kext and never released source code for AppleACPIPlatform.kext and nobody in the Hackintosh community – for whatever reasons they may have – cares enough about it to work on it. I personally have no need for it, but this could potentially be a fun challenge for me.

  5. I think that my BIOS does in-fact support the NVMe driver. There is a section in the bios for NVME, and the drive shows up in that section.

    My reference to unibeast not seeing the drive is due to the fact that disk utility (booting from an MBR Unibeast drive) doesn’t see the sm951. I checked and the unibeast bootloader does see the sm951. Booting with -v npci=0x2000 nv_disable=1 kext-dev-mode=1 has me hang at [ PCI configuration begin ].

    I’ll try -f -x as options (for both clover boot, and unibeast) later today. I was able to get a second sm951 boot out of the system last night – I created a darwin dump from that. Can I email that to you if you decide to work on x99 platform stuff?

    Thank you.

    • Booting unibeast from flash drive and then selecting the sm951 with -x -f -v npci=0x2000 nv_disable=1 kext-dev-mode=1 hangs silently after loading the lan port.

      Booting UEFI clover from the sm951 and then selecting the sm951 with -x -f -v npci=0x2000 nv_disable=1 kext-dev-mode=1 in clover hangs at [ PCI configuration begin ] and then gives me the circle with the line through it.

      I’m struggling to reliably have it boot from the nvme drive with the known working configuration – I feel like perhaps the mem-map isn’t getting cleared each boot?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s