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.

jaksemasch

macrumors member
Aug 29, 2020
61
2
OpenCore 0.8.9 was apparently the first version to introduce enableGOP. Finally, I found EnableGOP 1.1 in OpenCore-0.9.0, dated 05-MAR-23, but I had to check the source code (EnableGOP.inf) to obtain the version information.

OpenCore-0.9.3-RELEASE -> EnableGop_1.4.efi
OpenCore-0.9.2-RELEASE -> EnableGop_1.3.efi
OpenCore-0.9.1-RELEASE -> EnableGop.efi
OpenCore-0.9.0-RELEASE -> EnableGop.efi
OpenCore-0.8.9-RELEASE -> EnableGop.efi

I still need to crosscheck some results and also test the GTX 970, but with EnableGOP 1.1, prior patching with GOP_Updater is not required to have a Mac boot screen, unlike with 1.4.

The result in a PC, however, is very strange. When powering on the system, the screen remains black and there isn't any BIOS beep at all. Prior patching with GOP_Updater, however, produces the same 2 + 5 beeps as it does with 1.4. I have not discovered yet what the beep code means (GA-Z270).
 

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
You can download the original vbios from https://www.techpowerup.com/vgabios/169674/zotac-gtx960-2048-141225
It shows UEFI supported.
The Input size in my results is different than what you posted:
Code:
EnableGop % ./vBiosInsert.sh -n /Users/mbp151/EnableGop/Zotac.GTX960.2048.141225_updGOP.rom EnableGop_1.5-dev.efi Zotac.GTX960.2048.141225_modified.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFC00)...
Found compressed EFI ROM start at 0x50
Input size: 126384, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.
In the previous post you posted 970 vBios with Id of 10DE-13C2. I can only find this compatible bios for that ID:
1729947269331.png


Code:
./vBiosInsert.sh -n /Users/mbp151/EnableGop/Gigabyte.GTX970.4096.141105_1_updGOP.rom EnableGop_1.5-dev.efi Gigabyte.GTX970.4096.141105_1_updGOP_modified.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFE00)...
Found compressed EFI ROM start at 0x50
Input size: 125872, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.
That is why I was asking for the part numbers. To avoid confusion.
 

Attachments

  • Zotac.GTX960.2048.141225_modified.rom.zip
    147.3 KB · Views: 6
  • Gigabyte.GTX970.4096.141105_1_updGOP_modified.rom.zip
    147.8 KB · Views: 4

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
702
768
OpenCore-0.9.3-RELEASE -> EnableGop_1.4.efi
OpenCore-0.9.2-RELEASE -> EnableGop_1.3.efi
OpenCore-0.9.1-RELEASE -> EnableGop.efi
OpenCore-0.9.0-RELEASE -> EnableGop.efi
OpenCore-0.8.9-RELEASE -> EnableGop.efi
See p.1 of this thread.

Could you also try out the test versions of EnableGop linked in this bug report to see if they help with the issue: https://github.com/acidanthera/bugtracker/issues/2417
 
Last edited:

jaksemasch

macrumors member
Aug 29, 2020
61
2
The Input size in my results is different than what you posted:
Code:
EnableGop % ./vBiosInsert.sh -n /Users/mbp151/EnableGop/Zotac.GTX960.2048.141225_updGOP.rom EnableGop_1.5-dev.efi Zotac.GTX960.2048.141225_modified.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFC00)...
Found compressed EFI ROM start at 0x50
Input size: 126384, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.
In the previous post you posted 970 vBios with Id of 10DE-13C2. I can only find this compatible bios for that ID:
View attachment 2442043

Code:
./vBiosInsert.sh -n /Users/mbp151/EnableGop/Gigabyte.GTX970.4096.141105_1_updGOP.rom EnableGop_1.5-dev.efi Gigabyte.GTX970.4096.141105_1_updGOP_modified.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFE00)...
Found compressed EFI ROM start at 0x50
Input size: 125872, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.
That is why I was asking for the part numbers. To avoid confusion.

I never posted anything from "/Users/mbp151/". Are those your posts?

It appears the vBiosInsert and GOP_Updater generally report different input sizes.
You can also compare the output (pictures) I posted in my initial post #1041 regarding the GTX 770.

I would not necessarily assume that both tools or procedures should show the same input size, since they work in different ways and use different input files. I'd say you're comparing apples and oranges.

The GTX 970 is a MSI GTX 970 gaming. I was using the MSI.GTX970.4096.150108.rom file, which appears to be the lastest available.
 
Last edited:

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
That's also the same file that shipped with the GTX 970
If you did not purchase the card new there is a chance it was used for mining before that. In such a case the best way to match the vBios to the card is to cross reference it with the part number. Cards coming from scalpers normally have broken signatures and the GOP is broken on them too.
 
  • Like
Reactions: trifero

jaksemasch

macrumors member
Aug 29, 2020
61
2
The Nvidia certificate certainly matters for nvflash, windows driver and UEFI (maybe), but is meaningless for the Mac Pro, PC-BIOS, or the GPU and won't stop the GPU from initializing when it receives power. Meanwhile we have nvflash and nvflashk with certificate checking disabled, letting us flash the vBios regardless.

It's not a mining card. There's no sticker with a P/N on the card, or the original box. It only shows GTX 970 Gaming 4G. The URL of the vBios in my previous post matches the original vBios of the card. You think this is dodgy firmware? I don't think so.
 

Attachments

  • MSI_GTX970_4G_gaming.PNG
    MSI_GTX970_4G_gaming.PNG
    27.9 KB · Views: 15
  • MSI.GTX970.4096.150108.PNG
    MSI.GTX970.4096.150108.PNG
    30.2 KB · Views: 11

jaksemasch

macrumors member
Aug 29, 2020
61
2
Could you also try out the test versions of EnableGop linked in this bug report to see if they help with the issue: https://github.com/acidanthera/bugtracker/issues/2417
There are 2 or 3 URLs, but they are .ffs files. Aren't those for flashing the Mac Pro firmware?

I can report some success using the "Palit.GTX960.2048.160725_updGOP_macGOP_1.4.rom". Previously it was crashing on any benchmark, which finally turned out to be a graphics card with a flaky MOSFET.

The "Palit.GTX960.2048.160725.rom" needs to be patched by GOP_Updater first, otherwise enable_GOP_1.4.efi won't show a Mac boot screen. Actually this seems to be the case of all the vBios files I tested. Enable_GOP_1.1, however, works shows a Mac boot screen regardless.

I'm using a Mac Pro 4,1, patched to 5.1 with the 144.0.0.0 firmware. Here are the test results:

Mac Pro: boot screen OK.
Mac Pro: Windows UEFI OK
Mac Pro: Windows MBR (Bootcamp) OK
PC: Legacy OK
PC: UEFI - CSM disabled -NO (no BIOS beep)

It appears there's absolutely no luck in a PC with pachting "Zotac.GTX960.2048.141225.rom" or "gtx960_2GB_ebay_macGOP_1.1.rom" or "gtx960_2GB_ebay_updGOP_macGOP_1.4.rom". After enable_GOP 1.1/1.4 patch, the PC emits 2+5 beeps at power on, but won't start.

Mac Pro: boot screen OK.
Mac Pro: Windows UEFI OK
Mac Pro: Windows MBR (Bootcamp) NO (black screen/frozen)
PC: Legacy CSM NO (2+5 BIOS beeps)
PC: UEFI - CSM disabled -NO NO (2+5 BIOS beeps)

Flashing is easy, but a systematic approach, given all the variables involved and the need to frequently recover from a bad vBios, isn't for the faint of heart. It appears there are inconsistent results.

So far, no luck to get a BIOS or UEFI boot screen with the GTX 970 and enable_GOP on the PC.
 

Attachments

  • nvflash.zip
    945.1 KB · Views: 7
  • Palit.GTX960.2048.160725_updGOP_macGOP_1.4.rom.zip
    160.3 KB · Views: 6
  • gtx960_2GB_ebay_macGOP_1.1.rom.zip
    162.3 KB · Views: 6
  • Zotac.GTX960.2048.141225.rom.zip
    137.2 KB · Views: 6
  • gtx960_2GB_ebay_updGOP_macGOP_1.4.rom.zip
    160.5 KB · Views: 7
  • Zotac.GTX960.2048.141225.PNG
    Zotac.GTX960.2048.141225.PNG
    27.4 KB · Views: 9

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
702
768
There are 2 or 3 URLs, but they are .ffs files. Aren't those for flashing the Mac Pro firmware?
Sorry, they are! You obviously can't test with those, I'll get back to you with vBIOS versions - thanks!
 

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
702
768
@jaksemasch - Here are the .efi files extracted from the .ffs files in that thread. (They disable ForgeUefiSupport, which might be what is going on in your machine. One also disables GopBurstMode, but I don't think that will be the issue.) It's possible (depending on your GPU) that they won't give you a Mac boot screen, but will work in the PC: that would still be interesting to know. Or it's possible they will work for you and give both a Mac boot screen and successful boot in your PC. Could you test both and let me know the results? Thanks.
 

Attachments

  • EnableGop_1.4-min.zip
    11.5 KB · Views: 7
  • EnableGop_1.4-min2.zip
    13 KB · Views: 7

jaksemasch

macrumors member
Aug 29, 2020
61
2
Thanks a lot, I will give it a try and report back asap.

Btw, I was checking vBiosInsert.sh to see what it does.

What is the rational for installing Homebrew grep, which also requires xcode command line tools? I see the following:

vBiosInsert has the following message:
-o {GOP offset} : GOP offset (auto-detected if Homebrew grep is installed)"

I have Homebrew grep installed, but is it really required? Please see the screenshots. I know that grep can be tricky depending on platform. How about using awk for a more universal approach?

For example:

hexdump -C vbios.rom | grep '55 aa .. .. f1 0e 00 00'
hexdump -C vbios.rom | awk '/55 aa .. .. f1 0e 00 00/'
 

Attachments

  • Screen Shot 2024-10-28 at 9.12.36 PM.png
    Screen Shot 2024-10-28 at 9.12.36 PM.png
    79.7 KB · Views: 9
  • Screen Shot 2024-10-28 at 8.52.06 PM.png
    Screen Shot 2024-10-28 at 8.52.06 PM.png
    131.6 KB · Views: 11
  • Screen Shot 2024-10-28 at 8.51.57 PM.png
    Screen Shot 2024-10-28 at 8.51.57 PM.png
    81.4 KB · Views: 11

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
702
768
Yes, the awk line seems to behave the same, and tbh I'm not sure why I mentioned Homebrew grep, since (at least from a quick check on an M1 Mac) it works fine with macOS native grep. Could be something to do with maintaining compatibility back to El Capitan, would need to check.
 

jaksemasch

macrumors member
Aug 29, 2020
61
2
OK, I tested 1.4-min and 1.4-min2. Sorry, no difference.

I only tested the GTX 970 though, which doesn't give me any PC boot screen under CSM/VGA or UEFI/GOP. All I get are 2 + 5 beeps at power on. The motherboard is GA-H110. Nothing fancy.

The Palit 960 vbios appears to be the only vbios of the 900 series so far that gives me a CSM boot screen at least.
vBiosInsert reports 0xF800. The ones without a PC boot screen show 0xFC00. Does this tell anything?

FWIW:

=> MSI_GTX970_4G_gaming_updGOP_macGOP_1.4-min.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFC00)...
Found compressed EFI ROM start at 0x50
Input size: 123312, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.


=> Zotac.GTX960.2048.ebay_updGOP_macGOP_1.4-min.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFC00)...
Found compressed EFI ROM start at 0x50
Input size: 145328, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.


=> Palit.GTX960.2048.160725_updGOP_macGOP_1.4-min.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xF800)...
Found compressed EFI ROM start at 0x50
Input size: 146864, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.

Thanks!
 

Bmju

macrumors 6502a
Original poster
Dec 16, 2013
702
768
OK, I tested 1.4-min and 1.4-min2. Sorry, no difference.

I only tested the GTX 970 though, which doesn't give me any PC boot screen under CSM/VGA or UEFI/GOP. All I get are 2 + 5 beeps at power on. The motherboard is GA-H110. Nothing fancy.

The Palit 960 vbios appears to be the only vbios of the 900 series so far that gives me a CSM boot screen at least.
vBiosInsert reports 0xF800. The ones without a PC boot screen show 0xFC00. Does this tell anything?

FWIW:

=> MSI_GTX970_4G_gaming_updGOP_macGOP_1.4-min.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFC00)...
Found compressed EFI ROM start at 0x50
Input size: 123312, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.


=> Zotac.GTX960.2048.ebay_updGOP_macGOP_1.4-min.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xFC00)...
Found compressed EFI ROM start at 0x50
Input size: 145328, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.


=> Palit.GTX960.2048.160725_updGOP_macGOP_1.4-min.rom
Auto-detecting GOP offset...
Compressing EFI using EfiRom...
Adding Nvidia header...
Combining...
Verifying (starting at 0xF800)...
Found compressed EFI ROM start at 0x50
Input size: 146864, Output size: 45056, Scratch size: 13376
SUCCESS.
Done.

Thanks!
Thanks for the tests. I am actually surprised! There has been one report of one PCI card (a high-end Intel SSD) which had issues with forge UEFI support, nothing else. And there have been reports of EnableGop not affecting anything on PCs. If it's not ForgeUefiSupport interacting with something on your PC, as your tests show, then without the PC to test on I guess it goes back to low priority.

Hmmm. Just to confirm, the test I need is a card with a GOP which shows a boot screen on a PC without EnableGop, but doesn't with EnableGop (i.e. what I'm interested in is whether EnableGop (plus no other changes) can _stop_ a card working on a PC).
 
  • Like
Reactions: Ausdauersportler

jaksemasch

macrumors member
Aug 29, 2020
61
2
Perhaps I wasn't clear in my previous response. All the cards I've tested show a boot screen in a real PC, with or without GOP_Updater. I have also just verified, that the GTX 970 shows a boot screen after setting the PC to Windows 8/10 with CSM support disabled, as opposed to "other OS", meaning UEFI only.

As you probably know already, all PC graphics cards should work in PC-BIOS/legacy VGA mode, which is fundamental for the x86 architecture. UEFI support in graphics cards became more common around 2013. While not all graphics cards from that year guaranteed UEFI support, many high-end models and those designed for gaming and professional use started to include it.

It's only after the enableGOP patch, that they no longer work in a PC, except for the mentioned Palit 960 vBios, which still shows a PC boot screen in Legacy VGA mode. No such problems, however, using the GTX 770 and 780 after the enableGOP patch.

For any of these cards to show a boot screen in a Mac Pro with enableGOP 1.4, I need to use GOP_Updater first, unlike with enableGOP 1.1.

Let me know if there's anything else I can test. Again, the PC I use for testing is a GA-H110, which is an older chip set that doesn't have any fancy Optane accelleration. SATA, PCIe x1, USB und Ethernet are managed by the chip set. The PCIe x16 for the graphics card is managed directly by the CPU (Skylake).
 
Last edited:

jaksemasch

macrumors member
Aug 29, 2020
61
2
When people reported that EnableGop was not affecting anything on PCs, what where they testing? Perhaps some were testing it with on a Mac Pro with Windows 10. Windows 10 includes some UEFI compatibility fixes, making it even possible to install Windows 10 on a Mac Pro 3,1 from USB and have video output.
 
Last edited:

jaksemasch

macrumors member
Aug 29, 2020
61
2
My knowledge is limited, but from what I understand, as soon as the GPU receives power, it provides a standard VGA address (C000:0000-C000:7FFF) via interrupt 10h, allowing the PC BIOS to execute the VGA BIOS of the graphics card. This then informs the system about I/O for screen output, VRAM addresses, etc., as well as a VESA BIOS extension for displaying simple text. You can also measure with an oscilliscope, that as soon as the GPU receives power, it starts reading from Pin 1 of the vBios chip. Many people will say that, starting with Nvidia Maxwell, the GPU will reject a vBios if it does not have a Nvidia signature or certificate, but that is nonsense. As I tried to explain, the certificate is only important or nvflash and OS drivers, and perhaps UEFI in secure boot mode.
 
Last edited:

BadAxe80

macrumors newbie
Oct 24, 2021
8
0
Hi,
I have a MacVidCards flash Sapphire RX580 which is not giving a boot screen on a EnableGOP flashed MP5,1.
I get display once it loads Mojave. I understand this can happen. However, it also won't load Sonoma with OCLP. I dont get the OCLP boot screen and it actually just boot loops.

So basically, if I backup the firmware of the MacVidCards RX580 and flash it back to stock, can I go back to the MacVidCards rom later if I need to? Will a ROM dump capture everything it needs? and will flashing the stock rom remove all trace of MacVidCards tinkering? I have access to a PC for flashing.

Realistically, with EnableGOP I'm unlikely to ever need the MVC rom again but I don't like to burn my bridges.

Thanks
 

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
Hi,
I have a MacVidCards flash Sapphire RX580 which is not giving a boot screen on a EnableGOP flashed MP5,1.
I get display once it loads Mojave. I understand this can happen. However, it also won't load Sonoma with OCLP. I dont get the OCLP boot screen and it actually just boot loops.

So basically, if I backup the firmware of the MacVidCards RX580 and flash it back to stock, can I go back to the MacVidCards rom later if I need to? Will a ROM dump capture everything it needs? and will flashing the stock rom remove all trace of MacVidCards tinkering? I have access to a PC for flashing.

Realistically, with EnableGOP I'm unlikely to ever need the MVC rom again but I don't like to burn my bridges.

Thanks
One of my MVC cards has a read/write protection unless you desolder the chip, but if you make a backup definitely you can go back. But honestly you don’t need it.
 

jaksemasch

macrumors member
Aug 29, 2020
61
2
I can report some more success. After testing a dozen different vBios files, I found some that work. They are not the original vBios for my MSI GTX 970 Gaming 4GB and Palit GTX 960 2GB cards, but newer vBios versions and probabaly overclocking (3 - 4 %), but no issues so far.

As it turns out, any vBios were vBiosInsert.sh reports "Verifying (starting at 0xFC00)..." does not work inside a PC. vBios files, which report, e.g. 0xF800 or 0x10800 still work if you have Legacy BIOS or CSM enabled. The underlying issue might be something else, but CSM at least, which is actually good enough for me. All these cards had to be modified with GOP_Updater first, before enableGOP 1.4 shows a Mac boot screen. enableGOP 1.1 does not have this "requirement" and works in a Mac Pro, but no boot screen when installed in a PC whatsoever.

Just in case there could be a compatibility problem with the older H110 chipset of my motherboard, I installed the enableGOP graphics card (MSI.GTX970.4096.160125_updGOP_macGOP_1.4) into a newer PC system (Z270). Still the same issue: CSM required. Without it, no POST and no power-on beep at all. I also tried HDMI and the Display Port, but no picture.

Once enableGOP has been inserted in the vBIOS, are these graphics cards actually ought to work in PC and UEFI/GOP?

Wondering what the deal is, I started to analyze how vBiosInsert works. Here is what I can gather so far:

1. Copy vbios.rom to modify_part.rom
2. Search modify_part for GOP start "55 aa .. .. f1 0e 00 00'
3. Convert the offset field from hex to decimal.
4. Split the modify_part.rom at the GOP offset into 2 parts, named
original_first_part.rom and original_last_part.rom.

Saturn:efitest dude$ ls -l
total 1152
-rwxrwxrwx@ 1 dude staff 45056 Oct 8 14:47 EnableGop_1.4.efi
-rwxrwxrwx 1 dude staff 179712 Sep 7 2022 MSI_GTX970_4G_gaming.rom
-rwxr-xr-x 1 dude staff 179712 Oct 30 18:50 modify_part.rom
-rw-r--r-- 1 dude staff 64512 Oct 30 18:57 original_first_part.rom
-rw-r--r-- 1 dude staff 115200 Oct 30 18:58 original_last_part.rom

$ hexdump -C original_first_part.rom | head -1
00000000 4e 56 47 49 c6 01 10 80 e8 06 00 80 62 14 60 31 |NVGI........b.`1|

$ hexdump -C original_last_part.rom | head -1
00000000 55 aa 94 00 f1 0e 00 00 0b 00 64 86 01 00 00 00 |U.........d.....|

5. Compress EnableGop_1.4.efi and call it insert.rom

6. Then some "magic" happens calculating/constructing NPDS, which I'm not sure about.

Apart from the PCIR structure, Nvidia is also using NPDS (Nvidia PCI Data Structure), RGIS (dummy structure, maybe reversed SIGR?), NPDE (Nvidia PCI Data Structure Extended).

I guess this is where the fun starts in calculating NPDS and handling multiple GOP sections.

Question:

How does the PC actually know which GOP header/image to use if there are 2 in the vBios. What's the story about "last image"? I'm just guessing, but if multiple GOP headers are present, does the BIOS prioritizes the one that appears last in the ROM file? How does the Mac Pro happen to pick the right one?
 

Attachments

  • Screen Shot 2024-10-30 at 7.27.05 PM.png
    Screen Shot 2024-10-30 at 7.27.05 PM.png
    159.1 KB · Views: 13
  • Screen Shot 2024-10-30 at 7.34.04 PM.png
    Screen Shot 2024-10-30 at 7.34.04 PM.png
    185.1 KB · Views: 12
  • Screen Shot 2024-10-30 at 7.45.02 PM.png
    Screen Shot 2024-10-30 at 7.45.02 PM.png
    286.8 KB · Views: 14
  • Screen Shot 2024-10-30 at 7.13.07 PM.png
    Screen Shot 2024-10-30 at 7.13.07 PM.png
    624.3 KB · Views: 16

Borowski

macrumors 6502
Oct 22, 2018
257
74
The signature inside the header of every image tells the purpose (last picture). So it is no problem to place several images inside the rom.

The nVidia-specific areas/entries are not used directly from hardware, but needed for operation, the vbios may take access or only the flashing tool.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.