A GPU with GOP UEFI driver might not load the driver on older EFI. Perhaps some RX580 do and some others do not. To test this:
Grab the rom of the card. You can use the following commands on EFI Shell on a computer that has boot screen:
dh
to find the handle for the GPU device.
dh -d -v handle
(where handle is the handle number in hex) to get the start address and size of the PCI option rom.
fs0:
where 0 is the file system number of a EFI or FAT partition where you have write access from EFI Shell (use
map
to see a list of file systems).
dmem start size > romhex.txt
(where start and size are the start and size in hex) to get the hex of the rom.
Boot macOS, mount the partition where you saved the romhex.txt. Use a script to convert the hex to a binary.
diskutil mount disk0s1
to mount the EFI Partition (change 0 if it's on a different disk)
iconv -f UCS-2 -t UTF-8 romhex.txt | sed -nE "/^[ 0-9A-F]+:([-0-9A-F ]+).*/s//\1/p" | xxd -p -r > rom.bin
to conver dmem output to binary file.
Then back in EFI Shell:
loadpcirom rom.bin
will output an error or a handle for the EFI driver that is in the rom.
If there's no new handle for the rom.bin image with DriverBinding protocol, then it means it did not load. In that case, loadpcirom should output an error.
I have an Nvidia Titan X (Maxwell) which won't load it's rom on my MacPro3,1 (having EFI v1.1) because it expects UEFI v2.10 (use the
ver
command to get the version of your EFI - it should match the revision of the System Table shown by
dmem
by itself).
I got the version it expected by using loadpcirom in the built-in EFI Shell of a Parallels VM which uses UEFI v2.70.
"SupportedEfiSpecVersion 0x0002000A" means it requires UEVI v2.10.
dh
to see the handle that was loaded by loadpcirom (it should be at the end of the list.
dh -d -v handle
to see driver and protocol related info (in this case, the handle is B1):
Code:
B1: SupportedEfiSpecVersion(7CB1C848) 0x0002000A ComponentName2(7CB1C7B8) DriverBinding(7CB1CCE0) ImageDevicePath(7DC86618) FS0:\roms\titanx.rom[1] LoadedImage(7DA70CC0) Revision......: 0x00001000
ParentHandle..: 7DC3A518
SystemTable...: 7E9E8018
DeviceHandle..: 0
FilePath......: nvgop-gm2xx
PdbFileName...: <null string>
OptionsSize...: 0
LoadOptions...: 0
ImageBase.....: 7CB1B000
ImageSize.....: 21480
CodeType......: EfiBootServicesCode
DataType......: EfiBootServicesData
Unload........: 7CB1DDB4
Driver Name [B1] : NVIDIA GPU UEFI Driver
Driver Image Name : nvgop-gm2xx
Driver Version : 00020011
Driver Type : <Unknown>
Configuration : NO
Diagnostics : NO
Managing : None
I have a W5700 who's rom does load (DriverBinding protocol is added) on my MacPro3,1 but I did not install the card to see if it will also add the GOP protocol.