NVMe support for 3,1

Discussion in 'Mac Pro' started by macguru9999, Jun 1, 2019.

  1. macguru9999 macrumors regular

    Joined:
    Aug 9, 2006
    #1
    I saw someone advertising a 3,1 8 core 3.2 on ebay , running mojave, with an NVMe (970 pro) boot drive. I understand the mojave part (dosdude) but how can it boot from an NVMe ?? I thought the firmware updates applicable to the 5,1 (or patched 4,1) were required for this ?
     
  2. mattc79, Jun 2, 2019
    Last edited: Jun 2, 2019

    mattc79 macrumors newbie

    Joined:
    Jun 2, 2019
    #3
    I'm interested in this too. I'm running 10.14.5 on my MP3,1 with a Nvidia GT 710 (Kepler chip works OOT but without Bootscreen). I'm thinking of buying a PCIe SSD but would rather be able to use a NVMe instead of the AHCI ones that you cannot really buy anymore. But to be able to boot from NVMe I'll have to patch my ROM. I already applied dosdude's APFS ROM Patcher without any problems, but I'm quite scared to patch the NVMe on top of it. I've read almost all pages of many threads and I think I understand what the missing steps are, as the google doc does not include the driver anymore.
    I understand that I must find or extract the driver myself. I think I'll manage to do that by extracting it using UEFITool from Firmware files that are included in the macOS Installers. My conclusion is to extract it from the MP51 firmware (⁨Applications⁩ ▸ ⁨Install macOS Mojave⁩ ▸ ⁨Contents⁩ ▸ ⁨Resources⁩ ▸ ⁨Firmware⁩ / MP51.fd) (Mojave 10.14.5). Now that it includes the driver. That's what https://forums.macrumors.com/threads/macpro-3-1-nvme-failed-attempt.2172043/#post-27167554 also suggests.

    Could someone please confirm that
    - The NVMe driver from the latest MP5,1 firmware should work in a MP3,1 ?
    - Can I use the DXEInject approach to inject the driver I extracted via UEFITool using search and "extract body"?
    - Is it ok to do it on the ROM that had already been patch with dsodudes' APFS ROM Patcher?

    Thank's in advance and thank you all for this great forum and the great information and tools!

    Update: So here's what I tried so far using UEFITool and DXEInjector:
    Open The MP5,1.fd file with UEFITool (Version NE alpha 55 Feb 10 2019) I find a NVMe Driver:

    NVMe
    Compressed section
    EfiCr..
    PE32 ..


    I select the NVMe node and used "Extract body"
    Then I patch my original MP3,1 ROM with
    ./DXEInject MacPro3,1_backup.bin MacPro3,1_NVME.bin nvme.ffs
    When I open the patched MacPro3,1_NVME.bin with UEFITool to see if now there's a NVMe driver I can kind of find something but it does not show up as outlined above.. no "NVMe" node. The contents seem to differ as well!?

    If I however extract the driver using "extract as is" and try again I end up with a ROM that seems to contain the same structure of the source with same checksums and sizes... looks not too bad to me. I don't have any NVMe hardware yet, so I won't flash it. Does it make a difference if I did this to the already patched rom with the added apfs driver? What are the chances to brick my machine? I applied the APFS patch using Mojave with my Nvidia GT 710. Or should I perform all steps on El Cap with the original GPU just to be sure?
     
  3. macguru9999 thread starter macrumors regular

    Joined:
    Aug 9, 2006
    #4
    Honestly, is it really worth going through all that ? I have set up a 3,1 as a server and used a samsung ahci xp941 card as the boot disk with sierra server . great result . also the sm951 ahci ssd will work fine although perhaps a little slower than in a 5,1 machine. I doubt you would notice any better performance with an NVMe drive although you could then use a larger capacity ssd such as the samsung 970 pro 1tb... soon I am going to upgrade the machines (there are 2 of them) to mojave (dosdude patch) server, i was thinking of using flashed nvidia gt640 cards . I have one already flashed and it seems fine , i tested it with mojave in a 5,1 but of course its only going to be used in a server.
     
  4. mattc79 macrumors newbie

    Joined:
    Jun 2, 2019
    #5
    Thank you for your reply. Yes, I think you're right.. I should simply go the AHCI route and not risk to brick a working machine. Will try to find one of those disks you named.

    However I'm still curious how the procedure works and how to decide which dxe driver to pick and from what rom. gilles_polysoft used MBP114_0182_B00.fd https://forums.macrumors.com/threads/mp51-0084-b00-rom-dump-request.2119496/#post-26075700 Is it ok with the MP3,1? If I use the newest MP5,1 how can I check that it does not use instructions my MP3,1 cannot execute? I've learned those drivers are PE32 executables... I might try to disassemble it and find out myself. It's just that it looks kind of too easy to be true and I've gotten a bit stubborn, now that I've learned so much about the procedure... UEFITool and dosdude1's great ROMTool so maybe @tsialex, @gilles_polysoft or even the man @dosdude1 himself could help me and maybe others out to get the final bits for the good old MP3,1 together. I might still not dare to actually flash it just yet, but maybe in future when bricking it wouldn't hurt me that much anymore. Thanks in advance.... and now back to watching WWDC19 .. wondering if there will be a MP7,1 and how much it will suck.
     
  5. tsialex macrumors 601

    tsialex

    Joined:
    Jun 13, 2016
    Location:
    Brazil
    #6
    MP3,1 mods are not safe, BootROM is split between two flash memories, one FWB and one SPI.

    It's the easiest Mac to brick and the most difficult to unbrick.
     
  6. mattc79 macrumors newbie

    Joined:
    Jun 2, 2019
    #7
    Ok then, so be it. It's not for me then. Thank you tsialex!
     
  7. mattc79 macrumors newbie

    Joined:
    Jun 2, 2019
    #8
    There's one thing I will consider before messing with my firmware and/or before giving up:

    I'll do the initial boot from a normal recognised disk (i.e. ahci... internal Sata bay or even a USB stick) into a EFI bootloader to load a NVMe driver from there. I'll try rEFInd or bootx64.efi that dosdude's Mojave Patcher had already installed in my EFI partition in order to load the apfs.efi. So my plan is to load a NVMe driver from a non NVMe disk first as at least someone seems to have already done in
    #59

    I'll buy a carrier PCIe card and a NVMe SSD and will try to access it from the EFI Shell and to boot macOS from it eventually. Even if it does not work it is an ok investment and I can resell/reuse it unlike buying a used overpriced ahci ssd.

    I entered the EFI Shell (I commented out the "set StartupDelay 1" line in startup.nsh by prepending a #).... navigated to a NVME.efi driver I previously extracted from MP5,1's latest firmware (PE32 body) loaded it and at least it loaded without errors. Of course I still have to find out if it'll achieve what I want... I'll let you know.
     
  8. mattc79, Jun 11, 2019
    Last edited: Jun 11, 2019

    mattc79 macrumors newbie

    Joined:
    Jun 2, 2019
    #9
    SUCCESS: So I'm finally booting Mojave APFS from a NVMe SSD on my Mac Pro 3,1:
    - Delock PCI Express Card M.2 NVMe Carrier card
    - 250GB Samsung 970 EVO Plus (with the latest Samsung Firmware)

    I made two attempts:

    1) Without any Boot-Rom Modification loading NVME and APFS EFI drivers from a non nvme drive
    a) I booted dosdude Mojave Patcher and installed macOs on the NVMe disk using APFS. When applying the dosdude patches I chose the APFS patch. The latter will install a efi bootloader in the EFI Partition which will loads the apfs driver via a the startup.nsh script.
    b) Now I wasn't able to boot the NVMe disk, because the drive cannot be seen by the firmware. I copied the EFI Folder of the EFI Partition to the EFI Partition of a thumb drive in order to do the initial boot from there loading then nvme and apfs driver so the NVMe disk can be read and macOs can be booted.
    c) So I extracted a NVMe EFI driver from Mojave's 10.14.5 MP5,1.fd firmware file using UEFITool by "extract body" on the NVMe DXE Driver's "PE32 image section" -> Saved to nvme.efi next to apfs.efi . I modified the startup.nsh so that it also loads the nvme.efi file similarly to how it loads the apfs.efi. You can also start experimenting by entering the EFI Shell (hit ESC very fast)... and use the various commands like 'load' 'drivers' 'connect -r' 'map -u' . And that all worked pretty nice for me! So I knew the nvme driver of MP51 cannot be bad for my machine.

    2) Then I took a chance and decided to flash my ROM
    a) Extract the DXE Driver from the MP5,1.fd using UEFITool by "extract as is" on the NVMe node itself. Save as nvme.ffs Note that is different from what I did in (1). I had used dosdude's APFS ROM Patcher to first add APFS to my ROM. Then I added the nvme.ffs via DXEInject to the MacPro3,1_APFS.bin the tool did create on disk. I flashed the modified ROM using dosdude's ROMTool. I have the Intel Controllers and not NVIDIA controllers so I just did it and I was lucky that it worked! I can now boot without using (1). I think it is a good way if you do not want to risk breaking your machine and can live with the inconvenience of using a thumb drive. You can of course use the EFI Partition of an internal SATA drive instead.

    The safe solution (1) worked perfectly fine and it may help MP3,1 owners that do not want to mess with the ROM.
     

Share This Page

8 June 1, 2019