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 finally got around to Enable GOP on my Mac Pro 4,1 (flashed to 5,1).

Followed the video on YouTube from Mac Sound Solutions. He walks through it very carefullly and it worked!
 
  • Like
Reactions: SEJU and Bmju
With a Radeon VII once I flash the vbios with the one posted on post #674 would that be it or would I still need to follow the complete guide. I am sorry but it seems like its a bios flash and that's it but I want to confirm and it's a bit confusing to me. Apologies in advance. I tried searching this thread but way to much information up and over my head.
 
With a Radeon VII once I flash the vbios with the one posted on post #674 would that be it or would I still need to follow the complete guide. I am sorry but it seems like its a bios flash and that's it but I want to confirm and it's a bit confusing to me. Apologies in advance. I tried searching this thread but way to much information up and over my head.
You still need to follow the guide as well.

I'm not sure whether there's even space in that VBIOS for EnableGop without further mods, but in any event it's a MacPro card, and the normal, 'recommended' (i.e. it's up to you, but probably most useful) method for the MacPro is to put EnableGop in the main machine BIOS not VBIOS. (The opposite is true for supported iMacs.)
 
  • Like
Reactions: Ausdauersportler
You wait ten years for a driver to enable pre-boot graphics on unsupported GPUs in EFI era Macs, and then two come along at once...

This post is to announce a firmware driver to enable the native Apple boot picker and early macOS boot progress bar (plus other parts of the firmware UI: target disk mode; firmware password; internet recovery on machines which have it; etc.) on non-natively supported GPUs, before, or even without, the rest of OpenCore.

The basic idea is: if your GPU already works in but not before OpenCore, then with this driver added to your main firmware or GPU firmware it should be able to work before OpenCore, too.

It has now been fairly widely tested, on both iMac and Mac Pro, but nevertheless it is a firmware driver:
  • If for any reason it fails (or perhaps is incorrectly installed) it can completely brick your machine.
  • If you are not comfortable modifying and burning updates to main firmware or GPU firmware, and recovering from bricks of either of these (which will involve additional hardware) - do not proceed. (Or at the very least, wait for clear and replicable instructions and proven success stories for your specific system, from other users who do have this expertise, before proceeding.)
Instructions and required files can be found in the /Utilities/EnableGop directory of the current OpenCore release. (To see the instructions directly, but without the required built files to actually use them, see here.) For the very latest build (if any recent updates have been made) see the first couple of posts in the thread below.

Background​


This driver has a completely separate origin and development history from @Syncretic's current impressive work. This driver aims to be lightweight and standalone. It comes naturally out of the huge amount of work already done in OpenCore (and mainly finished a couple of years ago, except for these additional steps) to support the OpenCore boot menu on non-natively supported GPUs, within OpenCore. It is also - as part of OpenCore - open source.

After reversing enough of the MacPro firmware to work out how to link OpenCore’s GOP to the Apple firmware UI protocol, it seemed worth trying to enable this before OpenCore as well - i.e. to try to get 'as native' support for these cards. A little bit more experimentation made it clear that the best way to do this would be to piggy-back off the existing, very well tested work already done in OpenCore to support these cards - basically to package up the required parts of OpenCore (ForgeUefiSupport, ProvideConsoleGop and the recent code to connect this to the Apple firmware UI) into a firmware injectable driver, and then figure out a way to deliver its 'payload' (particularly the ProvideConsoleGop part) at the right time. Early versions also used OpenCore’s ReloadOptionRoms, as OpenCore has to do, to load any option ROM which needs ForgeUefiSupport - but with the correct approach it was possible to avoid this, letting the firmware do it for us, which turned out to make the driver much more stable.

So after considerable reversing, some additional new code, and a lot of helpful testing and input from those listed below, this is now working.

Tested Mac models:​

  • MacPro4,1/5,1
  • MacPro5,1
  • iMac9,1 (see Notes)
  • iMac10,1
  • iMac11,1
  • iMac11,2
  • iMac11,3
  • iMac12,2
Notes:
  • The current version of the driver is believed to be safe on all 2009-2012 iMacs and on the MacPro4,1/5,1 and MacPro5,1
    • iMac12,1 should be supported but not yet known: a confirmed test result would be welcome
  • Most recent available firmware in all cases
  • Other Mac models not yet tested, and outside the ones listed above probably will not work (since the required patches apply to the listed firmware only) - please PM me to discuss support
  • iMac9,1 with MXM slots needs a modified driver which is not part of the OpenCore distribution, some ready to use vBIOS version can be found on this Github repo

NOT Supported:​

  • The current version of the driver is NOT compatible with the MacPro3,1, it will make the boot process hang and should not be installed there, in the MacPro3,1 BootROM or the GPU firmware

Tested GPUs:​

  • GT610 (with original or added GOP in VBIOS)
  • GT640
  • GT710
  • GT720 (EnableGopDirect)
  • GT730
  • GTX60
  • GTX660
  • GTX670
  • GTX750Ti
  • GTX780
  • GTX960
  • GTX1050Ti
  • GTX1070
  • GTX1080Ti
  • HD 7770
  • HD 7970 (all except EnableGop(Direct) version 1.2)
  • K2000
  • K2000d
  • K420
  • K600 (with GOP addition in VBIOS)
  • M4000, M5100, W5170M, M6000 (AMD Venus, MXM)
  • M6100, W6150M, W6170M (AMD Saturn, MXM)
  • NVS 510
  • P3000
  • Radeon VII
  • RX460
  • RX480 (PCI and MXM)
  • RX5500XT (PCI and MXM)
  • RX5700XT
  • RX580 Lite (no DVI) - works but reported very slow to start native picker
  • RX580 Nitro+
  • RX6600M (Syncretic patch required, MXM card, GOP does not enable backlight - EFI and OC picker works and can be used blindly, likely model limitation)
  • RX6800 (Syncretic patch required)
  • RX6900XT (Syncretic patch required)
  • W6600 (Syncretic patch required)
  • W6800 (Syncretic patch required)
  • Vega 56
  • Vega (687F)
  • RX560, RX570, RX580, RX590
  • S7100X (MXM)
  • WX4130, WX4150, WX4170, WX7100 (AMD GCN4, MXM)

Notes​

  • All GPUs work with EnableGop, unless explicitly listed as requiring EnableGopDirect
  • Some GPUs listed above may need additional firmware - such as a GOP driver for older GPUs which do not come with one; or other patches - in order for them to work with OpenCore in the first place (hence to be eligible to work with EnableGop in firmware); try searching for the card in this thread or the following iMac specific threads:
  • The driver should also work fine with natively supported GPUs such as GT120 (tested) (e.g. when installed in main firmware and swapping cards)
  • It should work with OpenCore (of course) and with RefindPlus
  • OpenCore settings which this driver already implements can be, but do not have to be, disabled

Releases of EnableGop in not-yet-released versions of OpenCore may be obtained as per the first couple of posts in the thread below. Older versions may be downloaded as required from the named OpenCore release.

If you find you are short on space when flashing to GPU firmware - which can be especially a problem for AMD GPUs - then try EnableGop 1.1 (available with the 0.9.0 release of OpenCore).

EnableGop version (released with OpenCore version):

1.4 (0.9.3)​

  • Incorporates recent updates to OpenCore console control code, but no difference in behaviour compared to version 1.3 is expected on any supported systems.

1.3 (0.9.2)​

  • Included fix to GopBurstMode for non-standard frame buffer information on AMD Radeon HD 7970 and similar
  • Applied GopBurstMode even on natively supported cards, as it can provide a noticable speed up
Note: GopBurstMode is applied by all versions of this driver for the speed-up it gives, so it may be advisable to test OpenCore with GopBurstMode enabled before burning to main firmware or GPU firmware. However the driver has been fairly widely tested now, and there are no known remaining issues on any systems listed as supported, after the fix mentioned above.

1.2 (0.9.1)​

  • Added GopBurstMode support
Note 1: This should provide faster GOP rendering on all EnableGopDirect systems; and rendering at least at the same speed as before, and on some systems noticeably faster than before, on almost all EnableGop systems.

Note 2: The compressed driver for version 1.2 is 1KB larger than for version 1.1, so for AMD GPU firmware which is tight on space version 1.1 may be used instead to avoid the need for VGA stripping to make additional space.

1.1 (0.9.0)​

  • Fixed early verbose boot lines appearing over picker
  • Added EnableGop version number to UI section

1.0 (0.8.9)​

  • Initial public release

The GPU firmware (aka VBIOS) insertion script vBiosInsert.sh now supports both AMD and Nvidia cards.

In the case of AMD, considerably less space is normally available than with Nvidia, due to a strict limit of 128k for legacy and EFI parts of the potentially larger ROM image (the rest of which is only usable internally by the card itself).

So far, there has largely been enough spare space on desktop format (PCIe) cards for Mac Pro, and not enough space on iMac format (MXM) cards. If there is not enough space (i.e. script reports ROM data exceeds the 128k limit) then it is necessary to strip some legacy VGA parts of the GPU firmware, or check on the iMac threads listed in the next spoiler to see if this has already been done for your card.

You can also inject EnableGop into the main system firmware instead of the GPU firmware - see the README.md file in the Utilities/EnableGop directory of the most recent OC builds, or here. In that case the AMD firmware size limit does not matter.

NB If Enable AMD GOP from OCLP is required for you to get a menu is OpenCore then your card won't work as-is with EnableGop. Your card must include GOP in its own firmware in order to work with EnableGop. I have not tested this, but have been told that GopUpdater from WinRAID is one good solution for adding GOP to AMD cards. Once you have added GOP to the card and got it working in OpenCore without OCLP Enable AMD GOP, then it should work pre-OpenCore with EnableGop.

There has been an active community of iMac users making updates and modifications to iMac GPU firmware since long before EnableGop was written. They have kindly adopted EnableGop (and helped to test it), so for many iMac GPUs, you can already find a modified version including EnableGop (and with legacy VGA parts stripped if necessary, see previous spoiler), if you search for your GPU in these threads:

The script relies on the EDK-II EfiRom tool to compress the driver EFI file into option ROM format, and on UEFIRomExtract as part of verifying the modified ROM.
These additional tools should be on your path rather than in the same directory as the script. For example, you could:
  • mkdir ~/MyTools
  • Copy the required tools into ~/MyTools
  • Add export PATH=~/MyTools:$PATH to ~/.bashrc or ~/.profile
  • Close and re-open your shell window
Also useful, if you want to start looking inside GPU firmware dumps:
And for examining main firmware:

Credits​

I've done the enable GOP on my Mac Pro 5.1 and It not worked with a Sapphire Radeon Pulse RX 580 8gb Lite. No boot screen on High Sierra and Mojave. Btw, firmware 144.0.0.0.0 . I couldn't check If the gpu has the original BIOS since I cant find It to download anywhere. Maybe this is the reason? My gpu has been modifyied? I dont know...
 
You wait ten years for a driver to enable pre-boot graphics on unsupported GPUs in EFI era Macs, and then two come along at once...

This post is to announce a firmware driver to enable the native Apple boot picker and early macOS boot progress bar (plus other parts of the firmware UI: target disk mode; firmware password; internet recovery on machines which have it; etc.) on non-natively supported GPUs, before, or even without, the rest of OpenCore.

The basic idea is: if your GPU already works in but not before OpenCore, then with this driver added to your main firmware or GPU firmware it should be able to work before OpenCore, too.

It has now been fairly widely tested, on both iMac and Mac Pro, but nevertheless it is a firmware driver:
  • If for any reason it fails (or perhaps is incorrectly installed) it can completely brick your machine.
  • If you are not comfortable modifying and burning updates to main firmware or GPU firmware, and recovering from bricks of either of these (which will involve additional hardware) - do not proceed. (Or at the very least, wait for clear and replicable instructions and proven success stories for your specific system, from other users who do have this expertise, before proceeding.)
Instructions and required files can be found in the /Utilities/EnableGop directory of the current OpenCore release. (To see the instructions directly, but without the required built files to actually use them, see here.) For the very latest build (if any recent updates have been made) see the first couple of posts in the thread below.

Background​


This driver has a completely separate origin and development history from @Syncretic's current impressive work. This driver aims to be lightweight and standalone. It comes naturally out of the huge amount of work already done in OpenCore (and mainly finished a couple of years ago, except for these additional steps) to support the OpenCore boot menu on non-natively supported GPUs, within OpenCore. It is also - as part of OpenCore - open source.

After reversing enough of the MacPro firmware to work out how to link OpenCore’s GOP to the Apple firmware UI protocol, it seemed worth trying to enable this before OpenCore as well - i.e. to try to get 'as native' support for these cards. A little bit more experimentation made it clear that the best way to do this would be to piggy-back off the existing, very well tested work already done in OpenCore to support these cards - basically to package up the required parts of OpenCore (ForgeUefiSupport, ProvideConsoleGop and the recent code to connect this to the Apple firmware UI) into a firmware injectable driver, and then figure out a way to deliver its 'payload' (particularly the ProvideConsoleGop part) at the right time. Early versions also used OpenCore’s ReloadOptionRoms, as OpenCore has to do, to load any option ROM which needs ForgeUefiSupport - but with the correct approach it was possible to avoid this, letting the firmware do it for us, which turned out to make the driver much more stable.

So after considerable reversing, some additional new code, and a lot of helpful testing and input from those listed below, this is now working.

Tested Mac models:​

  • MacPro4,1/5,1
  • MacPro5,1
  • iMac9,1 (see Notes)
  • iMac10,1
  • iMac11,1
  • iMac11,2
  • iMac11,3
  • iMac12,2
Notes:
  • The current version of the driver is believed to be safe on all 2009-2012 iMacs and on the MacPro4,1/5,1 and MacPro5,1
    • iMac12,1 should be supported but not yet known: a confirmed test result would be welcome
  • Most recent available firmware in all cases
  • Other Mac models not yet tested, and outside the ones listed above probably will not work (since the required patches apply to the listed firmware only) - please PM me to discuss support
  • iMac9,1 with MXM slots needs a modified driver which is not part of the OpenCore distribution, some ready to use vBIOS version can be found on this Github repo

NOT Supported:​

  • The current version of the driver is NOT compatible with the MacPro3,1, it will make the boot process hang and should not be installed there, in the MacPro3,1 BootROM or the GPU firmware

Tested GPUs:​

  • GT610 (with original or added GOP in VBIOS)
  • GT640
  • GT710
  • GT720 (EnableGopDirect)
  • GT730
  • GTX60
  • GTX660
  • GTX670
  • GTX750Ti
  • GTX780
  • GTX960
  • GTX1050Ti
  • GTX1070
  • GTX1080Ti
  • HD 7770
  • HD 7970 (all except EnableGop(Direct) version 1.2)
  • K2000
  • K2000d
  • K420
  • K600 (with GOP addition in VBIOS)
  • M4000, M5100, W5170M, M6000 (AMD Venus, MXM)
  • M6100, W6150M, W6170M (AMD Saturn, MXM)
  • NVS 510
  • P3000
  • Radeon VII
  • RX460
  • RX480 (PCI and MXM)
  • RX5500XT (PCI and MXM)
  • RX5700XT
  • RX580 Lite (no DVI) - works but reported very slow to start native picker
  • RX580 Nitro+
  • RX6600M (Syncretic patch required, MXM card, GOP does not enable backlight - EFI and OC picker works and can be used blindly, likely model limitation)
  • RX6800 (Syncretic patch required)
  • RX6900XT (Syncretic patch required)
  • W6600 (Syncretic patch required)
  • W6800 (Syncretic patch required)
  • Vega 56
  • Vega (687F)
  • RX560, RX570, RX580, RX590
  • S7100X (MXM)
  • WX4130, WX4150, WX4170, WX7100 (AMD GCN4, MXM)

Notes​

  • All GPUs work with EnableGop, unless explicitly listed as requiring EnableGopDirect
  • Some GPUs listed above may need additional firmware - such as a GOP driver for older GPUs which do not come with one; or other patches - in order for them to work with OpenCore in the first place (hence to be eligible to work with EnableGop in firmware); try searching for the card in this thread or the following iMac specific threads:
  • The driver should also work fine with natively supported GPUs such as GT120 (tested) (e.g. when installed in main firmware and swapping cards)
  • It should work with OpenCore (of course) and with RefindPlus
  • OpenCore settings which this driver already implements can be, but do not have to be, disabled

Releases of EnableGop in not-yet-released versions of OpenCore may be obtained as per the first couple of posts in the thread below. Older versions may be downloaded as required from the named OpenCore release.

If you find you are short on space when flashing to GPU firmware - which can be especially a problem for AMD GPUs - then try EnableGop 1.1 (available with the 0.9.0 release of OpenCore).

EnableGop version (released with OpenCore version):

1.4 (0.9.3)​

  • Incorporates recent updates to OpenCore console control code, but no difference in behaviour compared to version 1.3 is expected on any supported systems.

1.3 (0.9.2)​

  • Included fix to GopBurstMode for non-standard frame buffer information on AMD Radeon HD 7970 and similar
  • Applied GopBurstMode even on natively supported cards, as it can provide a noticable speed up
Note: GopBurstMode is applied by all versions of this driver for the speed-up it gives, so it may be advisable to test OpenCore with GopBurstMode enabled before burning to main firmware or GPU firmware. However the driver has been fairly widely tested now, and there are no known remaining issues on any systems listed as supported, after the fix mentioned above.

1.2 (0.9.1)​

  • Added GopBurstMode support
Note 1: This should provide faster GOP rendering on all EnableGopDirect systems; and rendering at least at the same speed as before, and on some systems noticeably faster than before, on almost all EnableGop systems.

Note 2: The compressed driver for version 1.2 is 1KB larger than for version 1.1, so for AMD GPU firmware which is tight on space version 1.1 may be used instead to avoid the need for VGA stripping to make additional space.

1.1 (0.9.0)​

  • Fixed early verbose boot lines appearing over picker
  • Added EnableGop version number to UI section

1.0 (0.8.9)​

  • Initial public release

The GPU firmware (aka VBIOS) insertion script vBiosInsert.sh now supports both AMD and Nvidia cards.

In the case of AMD, considerably less space is normally available than with Nvidia, due to a strict limit of 128k for legacy and EFI parts of the potentially larger ROM image (the rest of which is only usable internally by the card itself).

So far, there has largely been enough spare space on desktop format (PCIe) cards for Mac Pro, and not enough space on iMac format (MXM) cards. If there is not enough space (i.e. script reports ROM data exceeds the 128k limit) then it is necessary to strip some legacy VGA parts of the GPU firmware, or check on the iMac threads listed in the next spoiler to see if this has already been done for your card.

You can also inject EnableGop into the main system firmware instead of the GPU firmware - see the README.md file in the Utilities/EnableGop directory of the most recent OC builds, or here. In that case the AMD firmware size limit does not matter.

NB If Enable AMD GOP from OCLP is required for you to get a menu is OpenCore then your card won't work as-is with EnableGop. Your card must include GOP in its own firmware in order to work with EnableGop. I have not tested this, but have been told that GopUpdater from WinRAID is one good solution for adding GOP to AMD cards. Once you have added GOP to the card and got it working in OpenCore without OCLP Enable AMD GOP, then it should work pre-OpenCore with EnableGop.

There has been an active community of iMac users making updates and modifications to iMac GPU firmware since long before EnableGop was written. They have kindly adopted EnableGop (and helped to test it), so for many iMac GPUs, you can already find a modified version including EnableGop (and with legacy VGA parts stripped if necessary, see previous spoiler), if you search for your GPU in these threads:

The script relies on the EDK-II EfiRom tool to compress the driver EFI file into option ROM format, and on UEFIRomExtract as part of verifying the modified ROM.
These additional tools should be on your path rather than in the same directory as the script. For example, you could:
  • mkdir ~/MyTools
  • Copy the required tools into ~/MyTools
  • Add export PATH=~/MyTools:$PATH to ~/.bashrc or ~/.profile
  • Close and re-open your shell window
Also useful, if you want to start looking inside GPU firmware dumps:
And for examining main firmware:

Credits​

I’ve just flashed my 5,1 with this. Then I installed my PowerColor RX Vega 56 Nano. The bootscreen kinda works, but moving the mouse causes the cursor to leave copies in its path, and the boot options sometimes don’t show until I move the mouse over them. That’s better than nothing! It’s a bit buggy though.
 
I’ve just flashed my 5,1 with this. Then I installed my PowerColor RX Vega 56 Nano. The bootscreen kinda works, but moving the mouse causes the cursor to leave copies in its path, and the boot options sometimes don’t show until I move the mouse over them. That’s better than nothing! It’s a bit buggy though.
Have you tried EnableGopDirect? That's usually the symptom of a card which needs EnableGopDirect rather than EnableGop.
 
I've done the enable GOP on my Mac Pro 5.1 and It not worked with a Sapphire Radeon Pulse RX 580 8gb Lite. No boot screen on High Sierra and Mojave. Btw, firmware 144.0.0.0.0 . I couldn't check If the gpu has the original BIOS since I cant find It to download anywhere. Maybe this is the reason? My gpu has been modifyied? I dont know...

Hi Flavio,

I hesitate to give advice because I am most certainly no expert and as Hippocrates put it "above all do no harm" but hey, here we go. Wiser heads than mine have said that:

RX580s with a mining VBIOS will indeed not give a boot picker despite host firmware EnableGOP in a cMP 5,1.

RX580s bought cheap from Ebay are highly likely to have a mining VBIOS. This is indeed what I found.

I now hand over to AI. Try this in Google. "AMDVBFLASH Linux Polaris download" This should give you a good idea how to proceed to diagnose and correct the problem.

Still several steps to go, but all part of the fun.

Good luck!

Frank
 
Im not sure if this is the correct area. I have a cMP 5,1 running Mojave I have done the enable gop flash and it is confirmed in the rom. I have a Sapphire rx 580 non nitro, I can not find a switch for the vrom on the card, I cant boot with option held. if I boot to recovery I get the apple logo grey screen and progress bar. I doesn't give the logo/progress if I boot normal. I cant figure this out I want to install Monterey on a separate drive and have Mojave on another I can boot to if there are issues with Monterey. I apologize if this is in the wrong thread.

Tim
 
Dump and attach the vbios.

A well-known issue of non-functional GOP may mods of vbios (Polaris cards had a perfect ability for cryptomining) or dual-bios cards have only one working GOP or in rarely cases a missing GOP-image.
 
Happy New Year, Radeon VII users!

With grateful thanks for support from the OCLP hardware fund, I now have a Radeon VII and I think I’ve got a solution to the Radeon VII GOP problems.

Additional research into PCI IO cache settings [following up on previous research on main mapped memory cache settings, which led to GopBurstMode but didn't fix the Radeon VII] and some feedback from Vit and Martin Lo has convinced me that this is really looking like a bug in the Radeon VII's GOP implementation, not a bug in OpenCore.

Then what? AMD Linux drivers are OpenSource, so it might be possible to find some info there, or it might be possible to reverse-engineer the GOP driver itself, to try to work out what setting AMD haven't set that they should have. (It still looks like the video memory cache settings are wrong, but it no longer looks like this is something fixable at the UEFI level.)

But before that, maybe there is a chance that there is another Vega 20 GOP implementation out there which already works? Apart from the different Radeon VII BIOS versions available, there is one unverified Radeon VII Pro BIOS available (at least, only one that I've seen), and it is a few months newer than the non-Pro BIOSes. So first things first, maybe it's worth trying to combine the UEFI GOP from the Radeon VII Pro BIOS with the legacy BIOS section of the non-Pro BIOS, and … well, it just works! With OpenCore and EnableGop. DirectGopRendering and EnableGopDirect are even no longer needed.

I’m not quite sure what AMD were playing at here - it at least looks very much like they knew something else needed fixing, but only fixed it in the Pro GOP version - but hey, finally, here is what it seems they should have released all along.

You can just flash this to your card with amdvbflash, as normal, and then add EnableGop to your machine's firmware as per the instructions on p1. You no longer need DirectGopRendering in OpenCore.

---

@ZNDK - Based on these results I think your best bet for your similar problem is to try upgrading your AMD RX Vega 56 video BIOS - especially since your card already seems to have worked for other users. Failing that, you could possibly try the same trick of taking the GOP from the Pro version of your card and using it to replace the GOP which you currently have.

NB This is the BIOS from my PowerColor Radeon VII, with just the GOP replaced, as described. Received wisdom is that all these cards are the same, so in theory this should work on any Radeon VII, but backup your video BIOS first, and worst case scenario be prepared to reflash your card with a hardware clip. Success or failure results welcome.
Thinking on getting a Radeon VII, I see you mention amdvbflash. Is there any guide on how to do this? Also do I need another PC or can use my mac pro? I kind of only have mac pro 5.1 with PCIE. Thanks in advance.
 
I very recently solved the same situation you seem to have: 5,1 bootROM with EnableGOP, OCLP, and a (used eBay) Sapphire Pulse RX 580 8GB with dual BIOS switch but no boot picker unless AMD Inject GOP was selected in the advanced OCLP config.

There is a method for flashing GPU directly on a cMP. I’m posting steps with screenshots. Even if it doesn’t help you, perhaps it will help others. I expect this method will work with any suitable GPU.

Look at white sticker on GPU card. Model info will help narrow the BIOS hunt on TechPowerUp.

View attachment 2303277

Note the thin red box highlighting E353.

At TechPowerUp’s video BIOS collection set filters to match the GPU.

View attachment 2303278

Nitro+ models are included so scroll to the bottom and see 7 versions for Pulse.

View attachment 2303279

Click details for each Pulse model and look at third line under “BIOS Internals”. There are 4 versions matching E353 and 3 versions for E387.

View attachment 2303280View attachment 2303281

Comparing the 4 possible matches, the most obvious difference is memory. By build date, they show

2017-03-10 Hynix
2017-03-24 Autodetect, Hynix, Samsung
2017-11-20 Micron
2018-07-19 Autodetect, Hynix, Samsung w/ more aggressive timings

One could open the card to physically examine memory but the necessary info emerges later in the process. It is easy to downloaded all 4 files, but on a hunch I downloaded the two with Hynix/Samsung.

Next create a bootable linux flash drive to run a GPU ROM flash tool:

Download and install balenaEtcher. Currently this app must run from an admin account. The app asks for a password without asking for a user, and it fails to pass forward a root password from a non-admin account. The app assumes the logged in user has admin rights.

Download grml-flash (aka “November_Rain”).

Use balenaEtcher to load NOVEMBER_RAIN.dmg onto a USB flash drive. Do not mount the dmg beforehand.

View attachment 2303282

After balenaEtcher finishes, open the USB drive, navigate to the folder flash/Video, and copy into it all BIOS chosen from TechPowerUp.

Shut down the cMP and disconnect all boot drives. Connect a wired keyboard and mouse.

Insert the USB flash drive into a front USB port and boot the machine. Be patient, the system will eventually determine the USB drive is the only boot option and will load grml linux. Assuming the GPU has no pre-boot screen functionality, it may be a minute or more before a console appears on the screen.

Select or ignore the option to localize keyboard.

Press ‘x’ to launch the grml linux GUI.

Right-click anywhere on the screen and select ‘xterm’.

(If nothing appears on-screen after several minutes and haven’t gotten this then SSH into the machine to proceed. I did that in order to save screenshots from Terminal. The user=root and password=flash ).

On the command line enter lsblk and look for the sdd result. ( It can change with each boot so don’t assume it will always be the same. ) Use that path to cd into the Video folder containing the flash tools and downloaded BIOS.

View attachment 2303283

Run the ls command to see the tools and BIOS.

View attachment 2303284

Enter this command to identify the adapter used with the AMD GPU to be flashed. (If flashing an Nvidia GPU then use instructions for nvflash instead.)

sudo ./amdvbflash -i

Assuming there is only one card in the system the result will likely be 0. To get additional information about the GPU enter

sudo ./amdvbflash -ai 0

View attachment 2303285

Look at the “Bios Config File” info highlighted by the red rectangle. Compare this to the various “BIOS Internals” shown on TechPowerUp and there is only one match for this case — BIOS 2017-03-24 with Hynix/Samsung. This is the correct ROM to flash this GPU.

View attachment 2303286

Backup the current ROM ( replace ‘<currentbios>’ with a filename you chose)

sudo ./amdvbflash -s 0 <currentbios>

View attachment 2303287

Flash the matched bios (replace ‘<newbios>’ with your correct BIOS)

sudo ./amdvbflash -f -p 0 <newbios>

View attachment 2303288

Reboot the system leaving in the linux grml USB drive. If the the flash was successful a pre-boot screen appears much earlier in the process than before.

Shutdown, remove the USB drive, reconnect internal boot drive(s), and boot. It may be overkill, but I did a deep NVRAM reset (hold CMD-OPT-P-R through three chimes, let go, you’ll hear a fourth) to clear any lingering GPU parameter that might be there. Tsialex or someone else might comment on whether that step has any real value!

In OpenCore-Patcher change Advanced settings to disable AMD Inject GOP, install, and reboot. If all is well then you’ll see the boot picker as expected.
@sailmac I am following this guide and I am able to boot from USB, however the "Bios Config File" on the terminal does not match any "Radeon Sapphire Pulse" info, how can I know which version is mine? Is it possible?

Searching for it I get https://www.techpowerup.com/vgabios/221596/221596 should I flash this one instead? Says it is not verified...

Leaving the screenshots
 

Attachments

  • IMG_20250801_085111.jpg
    IMG_20250801_085111.jpg
    616.8 KB · Views: 8
  • IMG_20250801_082635.jpg
    IMG_20250801_082635.jpg
    372 KB · Views: 8
@sailmac I am following this guide and I am able to boot from USB, however the "Bios Config File" on the terminal does not match any "Radeon Sapphire Pulse" info, how can I know which version is mine? Is it possible?

Searching for it I get https://www.techpowerup.com/vgabios/221596/221596 should I flash this one instead? Says it is not verified...

Leaving the screenshots

There is also the unverified dumps.


This one was compiled by Sapphire back in 01/09/20:

This one was compiled by Sapphire back in 01/15/20:

I'd test the newer one first.
 

Attachments

  • Screen Shot 2025-08-01 at 09.59.07.png
    Screen Shot 2025-08-01 at 09.59.07.png
    2 MB · Views: 5
  • Screen Shot 2025-08-01 at 09.59.22.png
    Screen Shot 2025-08-01 at 09.59.22.png
    2 MB · Views: 5
I've tried both and they were flashed I can see it when I do "sudo ./amdvbflash -ai 0" returns the new rom I downloaded. However the boot time is the same as it was I don't see any apple logo which means that probably something is amiss. Also this card was recognized on high sierra before I tried to install Mojave, so enableGOP, SIP and 144.0.0.0.0.0.0 firmware is installed (not sure if relevant).

Any help would be welcome.
 
I've tried both and they were flashed I can see it when I do "sudo ./amdvbflash -ai 0" returns the new rom I downloaded. However the boot time is the same as it was I don't see any apple logo which means that probably something is amiss. Also this card was recognized on high sierra before I tried to install Mojave, so enableGOP, SIP and 144.0.0.0.0.0.0 firmware is installed (not sure if relevant).

Any help would be welcome.
Did you check the instructions on the post #1 of this thread, in particular this line?

The basic idea is: if your GPU already works in but not before OpenCore, then with this (EnableGop) driver added to your main firmware or GPU firmware it should be able to work before OpenCore, too.

If you never tried and never saw the emulated OpenCore boot picker your GPU has either an incomplete vBIOS flashed or the connection is not supported/functional.

Attached you will find both BIOS versions from the former post modded with EnableGop1.2 support - so it does not depend on the correctly flashed firmware in your MacPro. Both BIOS file from techpowerup came with an GOP driver included, so normally it should have worked already. Press and hold the alt/option key on boot to force the EFI picker.
 

Attachments

  • Archiv.zip
    244.3 KB · Views: 2
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.