About AMD EFI boot screen support
Nearly two years ago I
posted here about a method
@Nick [D]vB proposed to get EFI boot screen support with AMD Polaris cards. Before he took a sabbatical from this thread he left all knowledge and tools to get such a result. Unfortunately the first generation of EG2 vBIOS versions had some problems, sometimes the boot screen was dark (invisible) and needed a wire mod to switch the display on manually, sometimes the EFI picker showed up only on an external display. Last year
@internetzel and I did a first run to solve this, after a break of more than seven months
@dfranetic took over and solved using an IDA64 debugger the riddle within some weeks.
The only thing you need in advance is the
iMac firmware modification. These BIOS versions offer native brightness control, support external displays without any sync problems. You can also use the same (OCLP) OpenCore setup as with the GOP BIOS versions to enable 4K H.264/HEVC on the GCN4 cards and DRM on GCN4, Venus, and Tonga Cards.
Tonga and Saturn cards use an Apple driver from iMacs not fully compatible with our systems. Unfortunately these drivers cannot enable the backlight (at least we failed to achieve this). Again
@dfranetic developed a little
PCB to install into the iMac which enables backlight on boot automatically. Details about this development (layout will be published) will be added to the same Github repository, too. The longer I write, the more I think he should have written this post.
Download:
In future all GOP and EG2 and other new vBIOS versions and all files need to modify the firmware can and will be found in this
Github repository.
All EG2 version will be found in the subfolder named
EG2, all vBIOS versions will follow the simple naming convention
GPUNAME-EG2_adj.rom
, if you need the
M4000
version the file name will be
M4000-EG2_adj.rom
.
At the same time I moved all the existing GOP vBIOS version posted here on the individual posts scattered over the thread into the same GitHub repository. All GOP versions are stored in the subfolder named
GOP and will follow in general this naming convention
GPUNAME-GOP.rom
, if you need the
M4000
version the file name will be
M4000-GOP.rom
. There may be more than one file with your GPU name included covering different VRAM support.
You can download and flash as usually using the
Linux GRML tool with amdvbflash or flashrom and a clip programmer.
Currently these EG2 vBIOS versions are available:
iMac11,x only (crash on wake after sleep, NVRAM corruption, not POST in iMac12,2)
Venus: M4000, M5100, M6000, W5170
Saturn: M6100, W6170, W6150 (all needing a PCB)
Tonga: W7170M, S7100X (needing a PCB)
Ellesmere: RX480, RX470, WX7100 VER 1.0
iMac11,x and iMac12,2:
Polaris: WX4130, WX4150, WX4170
Ellesmere: W7100 VER 1.1
RDNA 1.0: RX5500XT (needs a PCB)
Possible, but not touched so far:
Polaris: WX3200 (needs OC spoofing)
Tonga: W7170M (needs PCB)
The GCN4 / Polaris vBIOS versions will work in the same way as the Venus card, the backlight of the internal LCD will turn on automatically on system boot or when pressing alt/option.
Supported iMacs: iMac11,1 . iMac11 . iMac11,3 . iMac12,1 . iMac12,2
UEFI Windows support:
Since the GOP driver needed for UEFI Windows has been replaced within these new vBIOS by an Apple EG2 driver (or name it AppleGOP) installing UEFI Windows is mandatory and you need to load and reconnect the
AMDGOP.efi
driver using OpenCore.
Simply add the
AMDGOP.efi
to the Drivers folder of your OpenCore installation. Add an entry within the config.plist to the OpenCore UEFI/Drivers section next to OpenCanopy and friends and finally set the value of the
already existing variable named
ReconnectGraphicsOnConnect
to true. The config.plist would partially look like this, here the
AMDGOP.efi
entry in UEFI/Drivers
Code:
<dict>
<key>Arguments</key>
<string></string>
<key>Comment</key>
<string></string>
<key>Enabled</key>
<true/>
<key>Path</key>
<string>AMDGOP.efi</string>
</dict>
and for the
ReconnectGraphicsOnConnect
entry in the UEFI/Output section
Code:
<key>ReconnectGraphicsOnConnect</key>
<true/>
Unfortunately OpenCore has a small bug, when entering the EFI picker and selecting OpenCore the first time to boot the internal LCD becomes black. Just press enter to select the preselected boot option and wait until macOS has booted. On every subsequent boot the Bootscreen will work as expected. The sync problems with external display in macOS will have a come back, too. The RX480 EG2 does not support Windows - driver installation fails.
All this would not have been possible without
@Nick [D]vB,
@nikey22,
@dfranetic, and
@internetzel. Great team!
Note: I will not constantly update this single post! Please consult in future the GitHub
repos.