-
-
Notifications
You must be signed in to change notification settings - Fork 13
Limitations
This method is limited to graphics cards used in Apple systems because it reuses not only drivers on macOS level but also three different EFI programs found within the Apple firmware. One can get those firmware parts from firmware updates included in macOS updates or by dumping the firmware from the fitting more recent Mac systems. Basically we transform these three EFI programs into BIOS code and replace the standard PC GOP part.
Some Apple systems use different AMD GPU versions (like the MacPro6,1 uses AMD Tahiti), but there are no Tahiti based AMD MXM modules available (AFAIK).
The usable address space for all AMD vBIOS modifications is limited (to my knowledge) to the first 128k when to be used in the iMacs listed above. Unfortunately these three parts need more space than the GOP driver found in most modern AMD vBIOS versions. So we were not able to simply replace the GOP with the EFI parts. We had to cut out unused parts from the vBIOS, which is the VGA driver. So we sacreficed Windows accerelated mode in order to gain an EFI boot picker for macOS only systems. You can still use windows in VESA mode for most applications using this vBIOS versions including the tools listed below. This method has been developed to come around the more complicated firmware modification within the target system.
But there are more limitations. Currently we are no able to change the output channel of the EFI boot picker. Some versions offer an invisible boot picker (on the main internal LCD, but the backlight will not be switched on), some a visible one only on an external display connected via display port and a few on the internal main LCD. To address this problem one would have to dig deeper in the EFI code gathered from the Mac firmware using a disassembler.
The Venus based cards M5100, M6000, and W5170M show the EFI boot picker on an external display, only. You need to press alt/option on boot to force the EFI boot picker on the external screen, otherwise normal booting goes on and when OpenCore has been installed the external display shows the OC boot picker (if enabled in the OpenCore config.plist).
The Saturn and Amethyst based cards M6100, W6170M, W7170M, and S7100X use the internal LCD of the iMac (but do not enable the backlight) on boot for the EFI picker. So booting happens in the dark, but of course one can force the EFI boot picker to work by pressing alt/option on boot and one can try to use it blindly. This is still better in some cases than no boot selection at all. At least there is a hardware wire-mod known to enable the internal LCD (connecting the constant 3V from the power supply to the PWM input of the inverter board using a simple switch).
This way the EFI boot screen becomes visible with constant illumination, if the user wants to have a working brightness control one has to switch back to normal wiring after macOS boot has been completed and drivers took over control of the hardware.
The Baffin and Ellesmere based cards W4130, W4150, W4170, RX480, and WX7100 enable the internal LCD on boot if either an external display has been connected or a miniDP emulator stick has been plugged in. This comes close to the original EFI boot picker functionality.
I have not tested any of the BIOS versions with Windows, so it may work, or not.