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.

zozomester

macrumors 6502
Apr 26, 2017
370
266
Hungary
Yes, any method can compare the ROM.


1.2 still at beta stage. Bmju is helping us to solve the Radeon VII's issue. Therefore he send me the direct link to perform beta testing. Anyway, at this moment, regardless if the new version can fix the Radeon VII's issue, it should able to provide a noticeable performance improvement. In my own test, the rendering speed can be up to 32x faster.
Does Radeon VII work properly with version 1.2?
It's been a problem so far...
Thank!
 

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
701
766
Does Radeon VII work properly with version 1.2?
It's been a problem so far...
Thank!
No. The discovery of GopBurstMode (with its very significant rendering speed up on some GOPs, including some speed up on Radeon VII) came out of trying to fix it, but no fix so far. It has artefacts but is usable in Apple native picker and no artefacts in OC menu, with the best settings available so far.
 

MARKBOOM

macrumors newbie
Apr 5, 2023
3
0
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 VBIOS or firmware it should be able to work before OpenCore, too.

Its status is beta - it has been reasonably widely tested (more so on iMac than on Mac Pro, but on both), but nevertheless it is a new 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 firmware or VBIOS, 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. 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 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
  • 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

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

Tested GPUs:​

  • GT640
  • GT710
  • GT720 (EnableGopDirect)
  • GTX60
  • GTX660
  • GTX670
  • GTX750Ti
  • GTX780
  • GTX960
  • GTX1050Ti
  • GTX1070
  • GTX1080Ti
  • K2000
  • K2000d
  • K600 (with GOP addition in VBIOS)
  • M4000
  • M5100
  • M6100
  • P3000
  • Radeon VII (EnableGopDirect)
    • This card shows some visual artefacts which are not present on any other listed supported cards, however is usable (see discussion in thread below)
  • RX480
  • RX5500XT
  • RX5700XT
  • RX560
  • RX570
  • RX580
  • S7100X
  • WX4150

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.

EnableGop version (released with OpenCore version):

1.2 (0.9.1)​

  • Added GopBurstMode support
Note 1: There were a couple of reports of GopBurstMode causing problems on systems which are supported for EnableGop, however both of these have now been put down to other factors - which is to say, there are now no confirmed reports of any problems. However, as a precaution, it would be wise to test enabling GopBurstMode in OpenCore before installing version 1.2 into firmware, since GopBurstMode is enabled by default in both EnableGop and EnableGopDirect 1.2.

Note 2: GopBurstMode 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 3: The compressed driver for version 1.2 is 1KB larger than for version 1.1, so for AMD vBIOSes which are 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 vBIOS insertion script vBiosInsert.sh now supports both AMD and Nvidia cards. To be released in OpenCore 0.9.0 - available now in the most recent builds - see first couple of posts in this thread below.

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 data would be truncated) then it is necessary to strip some legacy VGA parts of the vBIOS, or check over on the iMac GPU threads here and here 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 vBIOS - see the README.md file in the Utilities/EnableGop directory of the most recent OC builds, or here. In that case the AMD vBIOS limit does not matter.

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 tools need to be on your path, not just 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

Credits​

Hello, I am a user of macpro5.1. I have read your wonderful technical literature, but due to my poor computer programming ability, I cannot understand the section where the two files are in the same path, so I cannot add the EFI display on my RX590 video card. If you have time, could you please help me modify the VBIOS file? thank you
 

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
701
766
Hello, I am a user of macpro5.1. I have read your wonderful technical literature, but due to my poor computer programming ability, I cannot understand the section where the two files are in the same path, so I cannot add the EFI display on my RX590 video card. If you have time, could you please help me modify the VBIOS file? thank you
Like most similar threads here - at least, ones that don't offer a paid service - this is more a 'help you to help yourself' thread. I'm sure if you can be a bit more clear about what you tried and where you got stuck, then I or someone else can help you figure out what to do next.
 

MARKBOOM

macrumors newbie
Apr 5, 2023
3
0
I am very glad to receive your reply, and I am trying my best to do it well, but I do not understand this step very well, perhaps because my knowledge level is limited.
11B63CAB-506C-4EF3-97E9-58881F0E6A48.png
 

startergo

macrumors 603
Sep 20, 2018
5,019
2,282
@MARKBOOM there is no need to re-quote over and over again the same thing. He asked you specifically what are you trying to do? Are you trying to patch your Vbios or the firmware? When you download OpenCore and navigate to the GOP folder there is a readme file with instructions.
 
Last edited:

MARKBOOM

macrumors newbie
Apr 5, 2023
3
0
I have downloaded the required files and extracted them in the graphics card bios. As a hardware engineer, I don't have much software programming ability. Please kindly ask your brother to help me complete the modification
 

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
701
766
I have downloaded the required files and extracted them in the graphics card bios. As a hardware engineer, I don't have much software programming ability. Please kindly ask your brother to help me complete the modification
So I guess I'm more or less repeating myself, but this and similar threads on here are for hobbyists, using tools and systems developed by hobbyists, in order to get extra life out of machines which are no longer supported by Apple. You need to have, or at least be prepared to gain, some familiarity with things like the shell (terminal) and at least its basic commands for navigating and creating directories, moving files, running scripts, etc.
 

Larsvonhier

macrumors 68000
Aug 21, 2016
1,611
2,983
Germany, Black Forest
I have downloaded the required files and extracted them in the graphics card bios. As a hardware engineer, I don't have much software programming ability. Please kindly ask your brother to help me complete the modification
It took me a few minutes also to get it running (being a hardware design engineer myself it has been a while since I wrote my own code for my electronics).
Here we go with the fundamentals (many ways to Rome, but here's what worked for me)
* create a folder like "GOP" or the like in your user folder on your boot drive
* put these four files in there: EfiRom (the executable), EnableGop.efi (the additional code section for the vBios), UEFIRomExtract (another executable) and the vBiosInsert.sh (shell command script)
* open terminal
* cd into your new folder (i.e. "GOP") - you can drag and drop the folder to the command line after "cd "
* add the folder path to the PATH variable with command "export PATH=$PATH:<your GOP folder here>" (again drag&drop possible for convenience, no whitespace between : and folder path, of course also without quotation marks)
* the PATH variable does not "stick" this way, so you'd have to redo the last step each time you open a terminal session -> see here to make it permanent
* now ./vBiosInstert.sh ... ... ... will run provided with the right set of input and output files

Result should look like this:

./vBiosInsert.sh -n k420.rom EnableGop.efi k420GOP.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFA00)...
Found compressed EFI ROM start at 0x50
Input size: 162224, Output size: 57344, Scratch size: 13376

SUCCESS.

Done.
 
Last edited:
  • Like
Reactions: Borowski

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
701
766
The issue with non-standard framebuffer reporting by the AMD Radeon HD 7970 is now fixed, and added to the OpenCore source code for EnableGop/EnableGopDirect version 1.3, to be released with OpenCore 0.9.2 (or available now for preview - see first few posts).

Unless anything else crops up between now and 0.9.2 release, I will keep GopBurstMode enabled in both EnableGop and EnableGopDirect; after the fix mentioned above, I am not aware of any current issues on any supported cards or systems.
 

Larsvonhier

macrumors 68000
Aug 21, 2016
1,611
2,983
Germany, Black Forest
Looking for ideas on two issues with "GOPping" cards, perhaps someone has a clue or two ;-)

1. Attempts to insert the GOP efi section with the shell script often end with an error in the verification phase being unable to extract the UEFI (again?). Have not tried to flash the result back to the cards, yet. File sizes seem ok, about 9-10KB larger than originals but still within the size of the SPI flash chips. Any hints on that?

2. One BIOS of a card (a Quadro k420) seems to work (no script errors, success), but it does have a strange behavior on cold start after flashing: It shows a black screen for a long time, and only Windows 7 boot loader inits it to a white empty screen and stops booting then. Also strange: The white screen has a border around it just like a 16 pixels or so frame. With the original flash contents, the K420 will get initialized correctly by OCLP for the boot picker...

So in both cases, what am I missing?
 

c+r

macrumors newbie
Apr 22, 2023
22
8
Zurich, Switzerland
hi, new here… using a MP5,1, latest FW, 10.14.6, Vega56 flashed by macvidscards, 96GB ROM etc. since this is my production system, i have so far hesitated to move up.

however, i have downloaded martin's lastest package and i'm prepared to install monterey on a separate SSD. there is too much information on the web about what's supported and what not. my three main questions:

- can i use my metal-flashed Vega56 (with boot screen on 10.14.6) with martin's package? i have not found any mention whether this card is supported

- i've read about UBS 3 issues with monterey. i use a sonnett allegro pro type A USB 3.1 PCIe card. will this work without further mods?

- i have also installed a sonnett M.2 4x4 PCIe card and a sonnett Solo 10G PCIe card. will these work, too, without mods?

thx for advise!
 

Macschrauber

macrumors 68030
Dec 27, 2015
2,979
1,484
Germany
hi, new here… using a MP5,1, latest FW, 10.14.6, Vega56 flashed by macvidscards, 96GB ROM etc. since this is my production system, i have so far hesitated to move up.

however, i have downloaded martin's lastest package and i'm prepared to install monterey on a separate SSD. there is too much information on the web about what's supported and what not. my three main questions:

- can i use my metal-flashed Vega56 (with boot screen on 10.14.6) with martin's package? i have not found any mention whether this card is supported

- i've read about UBS 3 issues with monterey. i use a sonnett allegro pro type A USB 3.1 PCIe card. will this work without further mods?

- i have also installed a sonnett M.2 4x4 PCIe card and a sonnett Solo 10G PCIe card. will these work, too, without mods?

thx for advise!
you are completely off topic in this thread, this is about adding a gop bootscreen what you have with your flashed gpu.

Ask here: Martin's Package
 

Larsvonhier

macrumors 68000
Aug 21, 2016
1,611
2,983
Germany, Black Forest
Could anyone post success stories (versions of tools used and GOP boot screen modded cards) ?
Still stuck with the scenario described above... I have the impression, I'm just using the "wrong" cards!?
 

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
701
766
As far as I understood the patch for the EFI of the Mac Pro does not work on the 3,1.
Besides that known issue, why should a patched graphics card not also work in an MP3,1?
EnableGop depends on the firmware. It doesn't matter if it is patched into vBIOS or firmware itself, it won't work on MP3,1.

Could anyone post success stories (versions of tools used and GOP boot screen modded cards) ?
Actually there are several posted over the pages of this thread.

Still stuck with the scenario described above... I have the impression, I'm just using the "wrong" cards!?
That's this scenario below, right?

Looking for ideas on two issues with "GOPping" cards, perhaps someone has a clue or two ;-)

1. Attempts to insert the GOP efi section with the shell script often end with an error in the verification phase being unable to extract the UEFI (again?). Have not tried to flash the result back to the cards, yet. File sizes seem ok, about 9-10KB larger than originals but still within the size of the SPI flash chips. Any hints on that?

2. One BIOS of a card (a Quadro k420) seems to work (no script errors, success), but it does have a strange behavior on cold start after flashing: It shows a black screen for a long time, and only Windows 7 boot loader inits it to a white empty screen and stops booting then. Also strange: The white screen has a border around it just like a 16 pixels or so frame. With the original flash contents, the K420 will get initialized correctly by OCLP for the boot picker...

So in both cases, what am I missing?
1. It is best to treat verification failure as a failure. If it still doesn't work, post specific machine, GPU and error messages, and maybe attach the problem GPU ROM itself too.

2. There are two success stories for the K420 - https://forums.macrumors.com/thread...os.2378942/page-4?post=31979489#post-31979489 and https://forums.macrumors.com/thread...s.2378942/page-16?post=32087648#post-32087648 - but ... one of them is yours!
Anyway, once again, if this is still an issue, maybe be quite specific about the machine on which you're trying this (you've said the GPU), and in this case perhaps a video? (And if you could clarify the relationship between this issue and your K420 success post? Two different machines?)

Thanks!
 
  • Like
Reactions: Henninges

Larsvonhier

macrumors 68000
Aug 21, 2016
1,611
2,983
Germany, Black Forest
EnableGop depends on the firmware. It doesn't matter if it is patched into vBIOS or firmware itself, it won't work on MP3,1.


Actually there are several posted over the pages of this thread.


That's this scenario below, right?


1. It is best to treat verification failure as a failure. If it still doesn't work, post specific machine, GPU and error messages, and maybe attach the problem GPU ROM itself too.

2. There are two success stories for the K420 - https://forums.macrumors.com/thread...os.2378942/page-4?post=31979489#post-31979489 and https://forums.macrumors.com/thread...s.2378942/page-16?post=32087648#post-32087648 - but ... one of them is yours!
Anyway, once again, if this is still an issue, maybe be quite specific about the machine on which you're trying this (you've said the GPU), and in this case perhaps a video? (And if you could clarify the relationship between this issue and your K420 success post? Two different machines?)

Thanks!
Thanks for the hints.
The "success" story for my K420 was only about the usage of the tools and the logs from terminal. This card did not work in the 3,1 (for obvious reasons) but also not on my 5,1. So the question is now: Do I also have to run the script and tools on a 5,1 instead of 3,1 -> would have thought that the patching process itself is agnostic of this?
Will do the steps again and provide info on the outcome here...
 

Henninges

macrumors member
Sep 24, 2017
84
30
Helmstedt / Germany
it doesn't matter on what machine you run the script. you can run them on any computer who is able to execute the script and flash the result to the cards vbios.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.