Upgrading 2013/2014 Macbook Pro SSD to M.2 NVMe

Status
The first post in this thread is a WikiPost, and can be edited by anyone with the appropriate permissions.

Jilly Bowman

macrumors member
Feb 2, 2017
53
14
Dubai
Hi Jilly, you said you're using sm961 with Sintech long black adapter on 2015 Mac without any issue. I'm using the same SSD as you do, but I'm having all kinds of issues such as sleep, hibernation, question mark on start-up... etc. so I'm wondering if you ever apply any pmset command such as "sudo pmset stanby 0" or "sudo pmset hibernatemode 25" to your mac or you just simply use the default value like "hibernatemode 3"?
All default values, nothing changed and works fine, I've also now another MBP 2015 I7 13" with same adapter and 1TB 960EVO, also works fine, no issues at all.
 

ericjojo

macrumors newbie
May 13, 2018
2
0
All default values, nothing changed and works fine, I've also now another MBP 2015 I7 13" with same adapter and 1TB 960EVO, also works fine, no issues at all.
Jilly, thanks for the info. The CY(ChenYang) adapter I'm using right now may have some compatibility issues with my Macbook Air 2015 13". I'm gonna place an order for Sintech long black adapter as you suggested.
 
Last edited:

xelanaiznac

macrumors member
May 13, 2013
62
5
italy
All default values, nothing changed and works fine, I've also now another MBP 2015 I7 13" with same adapter and 1TB 960EVO, also works fine, no issues at all.
hi.
I'm using 960 evo on my macbook pro 15 mid-2015 with black long sintech adapter (latest version).
i noticed that 960 evo is draining my battery much more Thant the original apple ssd.
is it normal?
it has latest firmware 3B7QCXE7
 
Last edited:

gilles_polysoft

macrumors regular
Jul 7, 2017
186
455
Tours (France)
Hi everyone,

long story this evening...

I did some test with patching the BootRom on my trusty late 2013 rMBP.
It's too soon to tell that the patch I did was successful, but at present it seems to work.

Here is what I wanted to do : I had previously watched into and compared BootRom files between rMBP late 2013 and early - mid 2015.
I had extracted EFI payloads files from the High Sierra installer, and compared them with UEFI tool.
I had seen some differences between the NVMe DXE drivers include in the BootRoms : all DXE drivers are located at an address starting with 51116915, but those from 2013-2014 macs bootroms all have a size of 10382 bytes, while all DXE drivers from 2015 and later macs are 25820 bytes wide.
Also, 2015 macs have an NVMe entry in the compiled DSDT table included in the EFI.

I must also say I had previously success with patching an UEFI of an old Fujitsu TX140 server (I did successfully added to its UEFI/bios a generic NVMe DXE driver in order to make it recognize NVMe drives at boot : https://twitter.com/gillesaurejac/status/995418694875537409).

So I wanted to do the same with my late 2013 rMBP, and edit its BootRom so that it would include the proper NVME driver and DSDT table reference.

Here is what I did :
- I bought an EFI cable at MacUnlocks : https://macunlocks.com/product/efi-flex-cable-for-macbook-air-pro-2010-2016/
- I already had an SPI programmer, a little EZP-2013 which does works great (even under windows 8.1 64 bits)

Ok, so the first tries were epic fails...
The dump of BootRom I did were never the same, and the rom file was not editable in UEFI tool. I was too scared of briking my rMBP.
What was in cause ? I thought I had a bad cable, or any other problem, and managed to unsoldered the SPI rom and connect it directly on the EZP programmer... With no luck : I had the same unreliable results. Worse, in desoldering the SPI rom I did loose some resistor, and had to read the schematics and find some new 33k resistors and solder them in the proper place... eeehhh...

Once the SPI rom again in place, I did some googling and find that other had same problems : I have read somewhere (here : https://www.ghostlyhaks.com/forum/macbook/234-flashing-micron-25q064a-on-mba-2013-2014) that the power supplied by the SPI programmer wasn't strong enough...
So I did a little mod to my programmer and added an iPhone battery to provide it a 3.7-3.9V supply (not so clean but sorry... I was lazy this time).

And that time the dump of the SPI eeprom worked, I could even do it with the logic board in place, without having to desolder anything !

What next : with the full dump of my SPI bootrom, I could to some patch to it without any fear to brick my mac.

So I did extract the full BootRom, and did the following :
- open the BootRom of a rMBP 2015 with UEFI Tool for Mac, find the NVMe DXE driver and extract it
- open the BootRom of my rMBP 2013 with UEFI Tool for Mac, and replace the NVMe DXE driver with the new one from the 2015.

Next the DSDT Table :
- find and extract the compiled (assembly langage) DSDT table of a 2015 Mac, and decompile it with MacIASL
- find and extract the compiled (assembly langage) DSDT table from my 2013 Mac, and decompile it with MacIASL
- compare the difference to add the NVMe reference (I know nothing in ACPI tables, I just add at line 288 the line "NVME, 8" just before "Offset 0x12C)
- recompile the DSDT table as an aml file, and insert it back in the BootRom of my 2013 mac.
[EDIT 2018-05-30] : seems the whole DSDT table edition is not necessary.

Then I just flashed inplace my BootRom with the obtained file.

And the result : the NVMe SSD is still orange at startup menu, but who cares...
Startup is now without any delay...
Hibernation now works fully... (I tested 4 times, with setting standby to 1 and standbydelay to 10s)

I think some tests need to be done, but a step has been made !
 

Attachments

Last edited:

vk2fro

macrumors member
Apr 29, 2015
91
39
Sydney, Australia
Gilles_Polysoft, thats one brave move there mate - I've already bricked a tablet trying to pull stunts like that. Well done! It will be good if you eventually make a tool that will allow members of the forum to flash their roms so as to eliminate the hibernate issues on the 2013-2014 model computers.

This thread has been an absolute gold mine of information. Thankyou to all the contributers.

My ebay adapter has turned up as has the SSD, now just waiting for the macbook itself to arrive (another brave stunt - buying a macbook on ebay LOL). I won a 2013 I7 16Gb macbook with a 256Gb flash drive. Long story short, I used to have a 2012 macbook pro, but someone stole it, and being on a not so great income at that stage meant I have had to wait till now to be able to afford a new unit!

At my disposal is a hackintosh with two nvme slots, so I should be able to update firmwares where needed, and if the Toshiba XG5 512Gb disk doesn't want to co-operate (the one I ordered for the mac), I can swap it out by carbon copy cloning my Samsung 960 Evo in the hack to the backup spinning drive, swap the two, and CCC it back to the toshiba, allowing it to be the boot drive for my hack, and the main disk in the macbook will then be the Samsung. Triboot usb stick on hand too, for macOS, Ubuntu and windows. Since the 'book comes with sierra installed, I will install high sierra so as to update the boot rom.

Also have two sintech adapters coming (as seperate orders no less), a "b" type (which sometimes gets black, sometimes gets big green; the one that comes with the screw drivers), and a long black "C" type. Also have a PCI-E to apple SSD adapter for the original apple SSD, but may just end up getting an OWC caddy and using it as a big USB stick.

edit: typo's, and I swore - sorry. :)
 
Last edited:

yesnoj

macrumors newbie
Apr 9, 2018
20
5
I already had an SPI programmer, a little EZP-2013 which does works great (even under windows 8.1 64 bits)
Amazing job Gilles!I've also an SPI programmer, an CH341A with clip for SOIC8 (i've used to save my tv 32" nordmende in bootloop flashing a dump on the 25Q64BSIG chip), but i don't mind to do nothing like you :p
If is possible to add in a simple way the Hybernate function on my 960evo will be great...if not, well...im happy too ;)
Thanks again for your support, you are THE MAN. :apple:
 
Last edited:

plexfit

macrumors newbie
May 18, 2018
21
10
It didn't work at all in my test - apart from being recognized by the High Sierra installer. I believe that also what others, including gilles_polysoft, experienced. I had a chance to test the Samsung PM981 (SAMSUNG MZVLB1T0HALR-00000, Firmware EXA7101Q, no OEM markings).

Thanks.
-Tim
Another confirmed failure here for the PM981, don't even bother with any versions of it. I bought a Lenovo-branded 1TB PM981 and it crashed midway through the installer.

I have severe battery draining with the 960EVO so I just looked at other options. What's the best nvme ssd for battery life out there that you guys recommend ? Battery life for me is super important and right now I went back to the stock 128GB because of the severe drain on the 960EVO.
 

vk2fro

macrumors member
Apr 29, 2015
91
39
Sydney, Australia
Funnily enough you have the same SPI programmer I do Yesnoj, the ch341a. I've had multiple successes with it rescuing cheap chinese tablets, whom tend to corrupt their bioses due to a windows update. However late one evening I was working on one (thankfully mine) and completely bricked it by flashing the wrong bios to it. I chalked it up as a life experience and let it go. Now I triple check I have the correct settings and bios file before starting the procedure :)
 

gilles_polysoft

macrumors regular
Jul 7, 2017
186
455
Tours (France)

xelanaiznac

macrumors member
May 13, 2013
62
5
italy
Another confirmed failure here for the PM981, don't even bother with any versions of it. I bought a Lenovo-branded 1TB PM981 and it crashed midway through the installer.

I have severe battery draining with the 960EVO so I just looked at other options. What's the best nvme ssd for battery life out there that you guys recommend ? Battery life for me is super important and right now I went back to the stock 128GB because of the severe drain on the 960EVO.
I would suggest Kingston kc1000
 

Pikaman

macrumors newbie
May 20, 2018
3
1
View attachment 716674 View attachment 716675 View attachment 716676

Ok Team:

I'm happy to report that I have finally been able to upgrade my MBPr mid 2014 A1398 EMC 2876 with the Samsung 960 Evo NVME PCIE M.2 SSD + High Sierra + third party adapter board.

I live in Silicon Valley and I am an automation engineer (not a software developer). I cannot stand the site of the Apple young engineers, whose mission in live is to put up road blocks to keep Apple products artificially high cost - instead of competing on the high quality and innovative products...

The bottomline is the Samsung Evo NVME drive is upgradeable on the MBPr mid 2014 + Bootcamp..after about two weeks of messing around with the apple's road blocks, it finally works !

Some keys take away:

- Be patient
- The overheat problem will go away if you keep the power supply plugged in all the time ( I have a theory why - but I could be wrong...)
- Backup your Mac and Windows 10 partitions on an external SSD drive using Carbon Copy Clone to backup/restore the Mac partition - and backup/ restore your Windows partition using AOEMI partition assistant and AOEMI back upper.
- Do not use Apple's BootCamp assistant because it will lock your drive up with some messy EFI (GUID) schemes that will forever curse your life (anytime you want to change/ resize the partition or upgrade your MBPr).
- Winclones is essentially useless - accept for one last step: "make the disk (partition) EFI Bootable"

- Once again you'd need to create a bootable external SSD drive ( for both Mac and Windows) and clone/ restore the Mac and Windows partitions.

Good luck and PM me if you have any question - I just don't want to reveal the work around because the little Apple Wizels will try to put up more roadblocks...

Best,
D
Hi, I have the same MBPr 2014 A1398 with latest BootROM MBP112.0145.B00. It should be similar with yours above model and I am also considering to upgrade SSD with Samsung 960 EVO 1TB.

May I know if your above upgrade experience any close lid sleep, hibernation or booting fail with question mark folder icon problem? Or everything just work fine as same stock apple SSD?

Regards,

Pika
 
  • Like
Reactions: l_zhang

mikeboss

macrumors 65816
Aug 13, 2009
1,293
474
switzerland
  • Like
Reactions: TheStork

HaypurTiryading

macrumors member
May 20, 2018
62
25
Turkey
Wow, that's a great improvement for our dusty machines sir. I'm waiting native nvme as a 4.1->5.1 user quite long time. If you provide rom dump, I will check the other uefi part of the rom. Maybe we will find some overclock settings, pci express speed settings, basic video rom for non flashed cards etc. Thanks.

edit
I've just checked firmware restoration cd and unzipped. There is 4 file in the folder. 0/1/2 and 3.hfs or the biggest is efi/bios file. I opened 3.hfs with UEFITool and I can see the modules. I can insert any module even NVMe but there is a problem. Our machines (Mac Pro 4.1 - 5.1) have updated/better bootrom if HS installed than Apple's firmware restoration cd release.

Picture: https://imgur.com/kwgAiIM

 
Last edited:

Jilly Bowman

macrumors member
Feb 2, 2017
53
14
Dubai
Hi everyone,

long story this evening...

I did some test with patching the BootRom on my trusty late 2013 rMBP.
It's too soon to tell that the patch I did was successful, but at present it seems to work.

Here is what I wanted to do : I had previously watched into and compared BootRom files between rMBP late 2013 and early - mid 2015.
I had extracted EFI payloads files from the High Sierra installer, and compared them with UEFI tool.
I had seen some differences between the NVMe DXE drivers include in the BootRoms : all DXE drivers are located at an address starting with 51116915, but those from 2013-2014 macs bootroms all have a size of 10382 bytes, while all DXE drivers from 2015 and later macs are 25820 bytes wide.
Also, 2015 macs have an NVMe entry in the compiled DSDT table included in the EFI.

I must also say I had previously success with patching an UEFI of an old Fujitsu TX140 serveur (I did successfully added to its UEFI/bios a generic NVMe DXE driver in order to make it recognise NVMe drives at boot : https://twitter.com/gillesaurejac/status/995418694875537409).

So I wanted to do the same with my late 2013 rMBP, and edit its BootRom so that it would include the proper NVME driver and DSDT table reference.

Here is what I did :
- I bought an EFI cable at MacUnlocks : https://macunlocks.com/product/efi-flex-cable-for-macbook-air-pro-2010-2016/
- I already had an SPI programmer, a little EZP-2013 which does works great (even under windows 8.1 64 bits)

Ok, so the first tries were epic fails...
The dump of BootRom I did were never the same, and the rom file was not editable in UEFI tool. I was too scared of briking my rMBP.
What was in cause ? I thought I had a bad cable, or any other problem, and managed to unsoldered the SPI rom and connect it directly on the EZP programmer... With no luck : I had the same unreliable results. Worse, in desoldering the SPI rom I did loose some resistor, and had to read the schematics and find some new 33k resistors and solder them in the proper place... eeehhh...

Once the SPI rom again in place, I did some googling and find that other had same problems : I have read somewhere (here : https://www.ghostlyhaks.com/forum/macbook/234-flashing-micron-25q064a-on-mba-2013-2014) that the power supplied by the SPI programmer wasn't strong enough...
So I did a little mod to my programmer and added an iPhone battery to provide it a 3.7-3.9V supply (not so clean but sorry... I was lazy this time).

And that time the dump of the SPI eeprom worked, I could even do it with the logic board in place, without having to desolder anything !

What next : with the full dump of my SPI bootrom, I could to some patch to it without any fear to brick my mac.

So I did extract the full BootRom, and did the following :
- open the BootRom of a rMBP 2015 with UEFI Tool for Mac, find the NVMe DXE driver and extract it
- open the BootRom of my rMBP 2013 with UEFI Tool for Mac, and replace the NVMe DXE driver with the new one from the 2015.

Next the DSDT Table :
- find and extract the compiled (assembly langage) DSDT table of a 2015 Mac, and decompile it with MacIASL
- find and extract the compiled (assembly langage) DSDT table from my 2013 Mac, and decompile it with MacIASL
- compare the difference to add the NVMe reference (I know nothing in ACPI tables, I just add at line 288 the line "NVME, 8" just before "Offset 0x12C)
- recompile the DSDT table as an aml file, and insert it back in the BootRom of my 2013 mac.

Then I just flashed inplace my BootRom with the obtained file.

And the result : the NVMe SSD is still orange at startup menu, but who cares...
Startup is now without any delay...
Hibernation now works fully... (I tested 4 times, with setting standby to 1 and standbydelay to 10s)

I think some tests need to be done, but a step has been made !
Brilliant, very impressive, looking forward to results/further improvements. Wonderful.
 

MIKX

macrumors 68000
Dec 16, 2004
1,646
616
Aussie in Japan
gilles_polysoft

Toutes nos félicitations!

Nous savions tous que quelqu'un pourrait l'obtenir!

J'admire ta ténacité et ta persévérance

What you have achieved will certainly make Apple sit up and take notice.

( Gilles is French, the least I could do is fire up Google Translate out of respect for his breakthrough.)

:D
 

Cmd+Q

macrumors newbie
Apr 23, 2018
29
41
Hi everyone,

long story this evening...
Impressive and thanks for the documentation!

I had seen some differences between the NVMe DXE drivers include in the BootRoms : all DXE drivers are located at an address starting with 51116915, but those from 2013-2014 macs bootroms all have a size of 10382 bytes, while all DXE drivers from 2015 and later macs are 25820 bytes wide.
Is that perhaps because the UEFI capsule holding compressed firmware data? When I looked at the section you referenced, the size was about the same for the uncompressed image (see attached). I am hoping the firmware changes could be made to the UEFI capsule rather than manipulating the SPI chip; for folks without a MacBook SPI cable and Programmer (or even Raspberry Pi).


Once the SPI rom again in place, I did some googling and find that other had same problems : I have read somewhere (here : https://www.ghostlyhaks.com/forum/macbook/234-flashing-micron-25q064a-on-mba-2013-2014) that the power supplied by the SPI programmer wasn't strong enough...
So I did a little mod to my programmer and added an iPhone battery to provide it a 3.7-3.9V supply (not so clean but sorry... I was lazy this time).
Was the MacBook Pro battery connected when you tried to read the SPI?

And the result : the NVMe SSD is still orange at startup menu, but who cares...
Startup is now without any delay...
Hibernation now works fully... (I tested 4 times, with setting standby to 1 and standbydelay to 10s)

I think some tests need to be done, but a step has been made !
Great job! Thanks for posting the results here.

Thanks.
-Tim
 

Attachments

aatoma

macrumors newbie
Apr 27, 2018
6
0
Hi everyone,

I think some tests need to be done, but a step has been made !
This is awesome, Gilles!
Am I right in thinking that this could help my MBPR 15" late 2013, stuck with no hope of getting the latest bootrom?
I have some tinkering skills and very little to lose, so, with proper direction, I could be the perfect candidate for some testing
 

t0n1

macrumors newbie
May 20, 2018
1
0
Germany
After reading thousands of replies in this thread, I chose the Toshiba XG3 1TB for my MacBook Air 2015 11", thought it would be a hassle-free solution for the upgrade.

The installation of macOS 10.13.4 went well and the speed is acceptable due to the pcie2.0x4 limitation. However, it can't wake up after deep sleep and shows a folder icon with a question mark. The laptop then reboots and shows a kernel panic report. This problem has been temporarily solved with the hibernatemode 25.

Bootcamp (win10 1803) works fine for me. The benchmark seems to be ok.

But everytime when i try to reboot from the OS, it fails to recognize my ssd as if it doesn't exist. I guess it has something to do with the sleep issue under mac os.

Looking forward to advice and help.

Thanks in advance
 

Attachments

Status
The first post in this thread is a WikiPost, and can be edited by anyone with the appropriate permissions.
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.