This may have legs as the reason a driver will only load on UEFI-PC is typically because it checks whether the device is UEFI 2.x compliant before proceeding with installation. This check fails on Legacy Apple as it tells the truth about not being UEFI 2.x on such checks.
If that is the case, as both OC and RP can get Legacy Apple to
lie about spoof UEFI 2.x support, it is possible to fool such drivers into installing there as well. The spoof is enough to get many of them working as they actually do not need anything specific to UEFI 2.x that is absent on the Apple unit and only run the check because the specs say they have to.
It does need checking the source to see whether it actually calls either one of BootServices->CreateEventEx or RuntimeServices->QueryVariableInfo in particular.
Current State of Those on UEFI 2.x Spoof:
- OpenCore
- CreateEventEx
- Spoofed (Needs Confirming)
- Call to this is likely to hang
- QueryVariableInfo
- Not available
- Call to this will definitely hang
- RefindPlus
- CreateEventEx
- Full Emulation but not tested in anger
- Call to this should work
- Needs testing
- QueryVariableInfo
- Partial Emulation (unreleased code)
- Call to this returns EFI_NOT_SUPPORTED
- Does not work but does not hang and returns a proper error response
- Not sure what the driver will do if it needs this and is told it is not supported ... needs checking
Best situation will be that the driver fails to install on Apple just because of UEFI 2.x checks and that it only checks because this is mandated and it does not actually need the missing items.
OpenCore needs the QueryVariableInfo handling update for ForgeUEFI to avoid hanging by returning a proper error at some point. High chance NVRAM emu driver might be calling this. Available in the interim when loaded via RefindPlus