Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
I don’t think you need apfs.ffs only apfsjumpstart. It will not help with recovery partition. If u can boot from apfs, you are gtg.
 
Did you put the mac in program mode by holding the power button down from a cold start until you hear the strange tone? Then run the patcher?
Yes, I carefully did that each time. The DosDude1 patcher must have partially worked, to inject the ‘apfsjumpstart’ code (which I assume on the 3,1 wasn’t included in the last official firmware update), but then is causing an error each time for me and not injecting the apfs.ffs as well, which it’s supposed to do.
 
I’d already applied that Apple firmware patch a few weeks ago. I’m glad the DosDude1 patcher worked for you several times. I so wish it had for me too.
While I wait to see if anyone can upload a working or alternative apfs.ffs file I can patch my 3,1 ROM with, I'm going to try the DriverXXXX non-ROM-modification route. I've added an apfs.efi to an EFI folder and followed the instructions in post #86 eg. setbootvar Driver0080 1 "apfs.efi" /Volumes/EFI*/*_bay2/../drivers/apfs.efi, then setdriverorder etc.

Subsequently, I also found an 'ApfsDriverLoader-64.efi' file which is supposed to be successful (over the apfs.efi file?). If I want to load this with 'setbootvar' and not the apfs.efi I've already set, rather than renaming it (not sure if this will screw things up), is there a Terminal command to delete or overwrite a boot variation string for a specific Driver ('Driver0080' etc) already set?

I've Googled all sorts of 'delete setbootvar', 'clear setbootvar' etc and nothing Mac-centric is found. Is it as simple as resetting PRAM 3-4 times? But wouldn't setbootvar be set in NVRAM, so it's there permanently...until you do something opposite to remove the instructions? Any suggestions would be welcome.
 
While I wait to see if anyone can upload a working or alternative apfs.ffs file I can patch my 3,1 ROM with, I'm going to try the DriverXXXX non-ROM-modification route. I've added an apfs.efi to an EFI folder and followed the instructions in post #86 eg. setbootvar Driver0080 1 "apfs.efi" /Volumes/EFI*/*_bay2/../drivers/apfs.efi, then setdriverorder etc.

Subsequently, I also found an 'ApfsDriverLoader-64.efi' file which is supposed to be successful (over the apfs.efi file?). If I want to load this with 'setbootvar' and not the apfs.efi I've already set, rather than renaming it (not sure if this will screw things up), is there a Terminal command to delete or overwrite a boot variation string for a specific Driver ('Driver0080' etc) already set?

I've Googled all sorts of 'delete setbootvar', 'clear setbootvar' etc and nothing Mac-centric is found. Is it as simple as resetting PRAM 3-4 times? But wouldn't setbootvar be set in NVRAM, so it's there permanently...until you do something opposite to remove the instructions? Any suggestions would be welcome.

As long as you have a firmware dump you can revert all changes in nvram.

Be careful with the rom injections, the 3.1 has a hell of a flash chip, hard to solder and even harder to program.

In other words, the 3.1 Firmware is easy to brick. I do firmware reconstruction and Backplane repairs for 4.1/5.1 but the 3.1 is not my thing. Even I use a 3.1 at home and one in the workshop as a GPU test station.

I injected a nvme Module and did the DosDude APFS Patch with my workshop machine and the APFS Patch at home aside a bunch of customer Macs.

But it was a spare Mac and if it has gone south I didnt care too much.
 
While I wait to see if anyone can upload a working or alternative apfs.ffs file I can patch my 3,1 ROM with, I'm going to try the DriverXXXX non-ROM-modification route. I've added an apfs.efi to an EFI folder and followed the instructions in post #86 eg. setbootvar Driver0080 1 "apfs.efi" /Volumes/EFI*/*_bay2/../drivers/apfs.efi, then setdriverorder etc.

Subsequently, I also found an 'ApfsDriverLoader-64.efi' file which is supposed to be successful (over the apfs.efi file?). If I want to load this with 'setbootvar' and not the apfs.efi I've already set, rather than renaming it (not sure if this will screw things up), is there a Terminal command to delete or overwrite a boot variation string for a specific Driver ('Driver0080' etc) already set?

I've Googled all sorts of 'delete setbootvar', 'clear setbootvar' etc and nothing Mac-centric is found. Is it as simple as resetting PRAM 3-4 times? But wouldn't setbootvar be set in NVRAM, so it's there permanently...until you do something opposite to remove the instructions? Any suggestions would be welcome.
You can overwrite Driver0080 or you can make a Driver0081 and update DriverOrder to include only Driver0081. I've got a dozen Driver#### variables, but my DriverOrder includes only a couple that I'm currently using.

To delete Driver0080, use this command
sudo nvram -d $efiguid:Driver0080
Don't forget to update DriverOrder or delete it too.
$efiguid is defined in the gfxutil.sh script just like all the commands (setbootvar, etc.)

Many NVRAM variables are cleared/removed when you do a PRAM reset, including these EFI variables. So I also have alternative boot methods that don't require these NVRAM variables in that case (RefindPlus, or an HFS+ partition with the dosdude1 APFS patch).

I haven't tried ApfsDriverLoader-64.efi - I guess it loads an embedded apfs driver from an APFS container. I don't know if it loads an apfs driver from all APFS containers, or if it loads only the first one it finds, or if it loads the one with the latest version (I guess I could just look at the code to find out...).
 
There are four approaches to get NVMe booting. Three of them are without BootROM modification.

There might be a fifth way. Some early NVMe drives came with EFI drivers in their option ROM:

PCIe NVMe (with built-in OPROM):
  • Samsung 950 Pro - Bootable
  • Intel 750 Series- Bootable

The source is this page about getting HP servers to boot from NVMe.


The issue is also mentioned here:


There seems to be a confusion. The HP thread is about booting in UEFI mode. The Linus thread assumes booting in CSM legacy mode. Maybe the ROM has both UEFI and BIOS rom images.

I tried to see if anyone had successfully used a Samsung 950 Pro in a unflashed Mac Pro. All the posts are from before the time macOS gained NVMe drivers, or confuse SM951 with Samsung 950 Pro. Only the later one has the option ROM.

P.S. - I ordered a 128 GB Apple SSUBX drive and a 12+16 pin to PCIe x4 adapter for my Mac Pro 1.1. The SSUBX uses the AHCI protocol, so it should be bootable on a Mac Pro 1,1 and work in El Capitan.

P.P.S - What on earth was "SATA Express"?

 
Last edited:
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
There might be a fifth way. Some early NVMe drives came with EFI drivers in their option ROM:



The source is this page about getting HP servers to boot from NVMe.


The issue is also mentioned here:


There seems to be a confusion. The HP thread is about booting in UEFI mode. The Linus thread assumes booting in CSM legacy mode. Maybe the ROM has both UEFI and BIOS rom images.

I tried to see if anyone had successfully used a Samsung 950 Pro in a unflashed Mac Pro. All the posts are from before the time macOS gained NVMe drivers, or confuse SM951 with Samsung 950 Pro. Only the later one has the option ROM.

P.S. - I ordered a 128 GB Apple SSUBX drive and a 12+16 pin to PCIe x4 adapter for my Mac Pro 1.1. The SSUBX uses the AHCI protocol, so it should be bootable on a Mac Pro 1,1 and work in El Capitan.

P.P.S - What on earth was "SATA Express"?

Samsung 950 Pro is not compatible with Macs when installed directly to a PCIe slot (i.e. not via a Thunderbolt adapter/connection), after POST the OpROM totally locks the Mac, happens even with MP3,1 and MP4,1 default firmwares and MP5,1 before or after 140.0.0.0.0, but I never tested with a MP1,1/2,1. This is long know and reported by me personally on the PCIe Blade thread.

SATAExpress is just Apple parlance for SATA blades - late-2012 and early-2013 Retina MacBook Pros have Apple SATAExpress blades.
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
  • Like
Reactions: Petri Krohn
There might be a fifth way. Some early NVMe drives came with EFI drivers in their option ROM:

The source is this page about getting HP servers to boot from NVMe.


The issue is also mentioned here:


There seems to be a confusion. The HP thread is about booting in UEFI mode. The Linus thread assumes booting in CSM legacy mode. Maybe the ROM has both UEFI and BIOS rom images.

I tried to see if anyone had successfully used a Samsung 950 Pro in a unflashed Mac Pro. All the posts are from before the time macOS gained NVMe drivers, or confuse SM951 with Samsung 950 Pro. Only the later one has the option ROM.

P.S. - I ordered a 128 GB Apple SSUBX drive and a 12+16 pin to PCIe x4 adapter for my Mac Pro 1.1. The SSUBX uses the AHCI protocol, so it should be bootable on a Mac Pro 1,1 and work in El Capitan.
I know that HighPoint (not to be confused with Hewlett-Packard) has some NVMe cards with firmware that may make them bootable in computers that don't have an NVMe driver. It was already mentioned in this thread #101
I didn't check for a BIOS/CSM driver though. #2,369

P.P.S - What on earth was "SATA Express"?

That page seems to be using the term SATA Express incorrectly. It's supposed to be a connector that can do either two SATA or one PCIe. In the case of PCIe, the device can be AHCI or NVMe and has two PCIe lanes (since each SATA connector only has one SATA lane)
https://en.wikipedia.org/wiki/SATA_Express
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
  • Like
Reactions: Petri Krohn
Added mention of FixPCIeLinkRate.efi to first post. It has a dual purpose of showing the pci device tree like pcitree.sh does.
I'm currently attempting to add some Thunderbolt stuff to it as a third feature.

I have recently purchased an Ableconn PEXM2-130 to which I added two SK hynix Gold P31 1TB NVMe SSDs, and have formatted one of them APFS for use in my Mac partitions, and the other NTFS for when I boot into Windows through Boot Camp.

I plan to post this setup in more detail on the PCIe SSDs - NVMe & AHCI thread, but before I do, I have a question for @joevt here:

I have used the EFI driver at #106 with RefindPlus to set the PCIe slot speeds to their maximums. This doubled my read speeds on the Mac side, but only slightly increased my write speeds.

(Mac, before and after EFI driver)
Mac before and after.png


Conversely, read speeds only slightly increased in Windows, but write speeds doubled!

(Windows, before and after EFI driver)
Win before and after.png


Any ideas as to why this may be happening? ?‍♂️
 
Last edited:
I have recently purchased an Ableconn PEXM2-130 to which I added two SK hynix Gold P31 1TB NVMe SSDs, and have formatted one of them APFS for use in my Mac partitions, and the other NTFS for when I boot into Windows through Boot Camp.

I plan to post this setup in more detail on the PCIe SSDs - NVMe & AHCI thread, but before I do, I have a question for @joevt here:

I have used the EFI driver at #106 with RefindPlus to set the PCIe slot speeds to their maximums. This doubled my read speeds on the Mac side, but only slightly increased my write speeds.

(Mac, before and after EFI driver)
View attachment 2004761

Conversely, read speeds only slightly increased in Windows, but write speeds doubled!

(Windows, before and after EFI driver)
View attachment 2004762

Any ideas as to why this may be happening? ?‍♂️
I can't explain the results.
I think you should start by standardizing your tests. Stick with the default 5 tries of 1 GiB each.
Does HFS+ change the results?
You can also try ATTO Disk Benchmark to see how the performance changes with different transfer sizes.
 
I can't explain the results.
I think you should start by standardizing your tests. Stick with the default 5 tries of 1 GiB each.
Does HFS+ change the results?
You can also try ATTO Disk Benchmark to see how the performance changes with different transfer sizes.

Thanks for the suggestions.

I changed the tests on AmorphousDiskMark (after upgrading to the latest version) to 5 tries of 1 GiB each and the APFS-formatted disk scores significantly improved, with sequential results close to what I would expect from this NVMe SSD:

2022-05-15 1GB SHGP31-1000GM APFS PCIe2.0 joevt driver.png


The ATTO tests were even better. I was assuming I would get no more than about 2800 MB/s per single drive from the ASM2824 chipset as noted in the table in this section of The Definitive Classic Mac Pro (2006-2012) Upgrade Guide, so I'm pleased with this result:

Mac ATTO.png


I don't believe it would be beneficial at this point to reformat to HFS+, so I will leave the disk as-is.

However, similar tests on the Windows side still leave me puzzled. There wasn't much change in the CrystalDiskMark scores when I matched the AmorphousDiskMark settings:

CrystalDiskMark_20220515140831 Default Setting.png


And the ATTO scores were likewise pretty poor compared to the Mac side:

Win ATTO.png


Could some software on the Windows side be preventing the read speed from reaching the equivalent on the Mac side? I don't have a lot of Windows expertise, so I'm not really sure where to look for something if that is the case. Any suggestions?
 
Added mention of FixPCIeLinkRate.efi to first post. It has a dual purpose of showing the pci device tree like pcitree.sh does.
I'm currently attempting to add some Thunderbolt stuff to it as a third feature.
@joevt ... are you actually still looking to instead separate the Link Rate fix by itself so that those that just want this can have a simple lean driver?
 
@joevt ... are you actually still looking to instead separate the Link Rate fix by itself so that those that just want this can have a simple lean driver?
Yes. I've been working on other stuff though. I'll work on this tomorrow.
 
  • Like
Reactions: Dayo
Hi all, I'm trying to repurpose a Mac Pro 3,1 as a Linux NAS server, so I would like to use the 4 SATA bays as storage and boot from another SSD. Since I had an old OCZ RevoDrive 3 PCIe card laying around (shows up as 2 64 GB drives on Linux), I wondered if it's possible to boot from that.

So far I tried installing Proxmox on the RevoDrive, but it is not recognized as a bootable drive by the Mac. I've seen reports online of people successfully using it to boot into Windows, so I thought it should be possible.

Do you know if the Mac Pro supports booting from a PCIe SSD out of the box? Would flashing a modified BootROM help?

Thanks!
 
Do you know if the Mac Pro supports booting from a PCIe SSD out of the box?

Yes, for AHCI standard PCIe drives. OCZ RevoDrive 3 is a SATA-3 RAID SSD on a PCIe card based on two SandForce SF-2281 controllers and not really a PCIe SSD, it's very uncommon and probably extremely poor supported.

MacPro3,1 firmware out-of-the-box support real PCIe SSDs like Samsung XP941/SM951-AHCI and Kingston Predator.

Would flashing a modified BootROM help?

Thanks!

A OCZ RevoDrive 3 should be AHCI, like all SATA SSDs, so, no need to have a MacPro3,1 firmware modified for NVMe support. This SATA SSD RAID on a PCIe card predate NVMe drives for at least two or three years.

Unfortunately I can't help you more.
 
  • Like
Reactions: macbeansnet
Hello! I need help from the collective intelligence and experience of this group: The native USB ports on my Mac Pro 3.1 are blocked, so I can't connect the keyboard or mouse to it, so I can't select for example from What disk to boot. Bluetooth also stopped working when connected internally via USB. The ports have voltage and the system (Catalina DOSDUDE Patch) recognizes them, but I am not authorized to use them with peripherals.
I appreciate any help. Regards
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.