-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible bug? Mac OS 1st stage boot screen not displayed with UGA video cards #1498
Comments
Is GOP supported on this machine? It is required for both macOS (EfiBoot & XNU kernel) and OpenCore (in graphics mode, e.g. OpenCanopy). Without GOP macOS kernel will not be able to print anything onscreen before GPU driver initialisation (2nd stage). The verbose text you saw is likely not from macOS kernel, but actually from EfiBoot, which is printed by EFI protocols (potentially relying on UGA), not by framebuffer rendering. Many OpenCore features also require GOP. For example,
Currently OpenCore does not have UGA → GOP conversion. Only GOP → UGA via |
Hello Vitaly,
I'm unsure. The Mac Pro 3,1 should support GOP cards. The Radeon 7950 should also support GOP but since it was flashed with an Apple EFI BIOS, I can't test. I can confirm that I do get a graphical boot picker via RefindPlus which is chain loading OpenCore.
If it's possible to implement GOP protocol over UGA, I will be willing to test it out.
Thank you.
Edit: I should mention that 1st stage boot screen is visible if OpenCore is taken out of the equation.
|
Just did some more research. While my MP3,1 is an EFI64 machine, I do not believe GOP is supported. |
MacPro3,1 supports GOP but unlike MacPro5,1 does not have GOP on the ConsoleOut Handle (know the MacPro5,1 one is problematic and needs ProvideConsoleGOP to get around issues). Anyway, I use a MacPro3,1 and you will note that the OP stated that it works in RefindPlus. This is because I have done this in RefindPlus:
The Your I brought this bit into RefindPlus and amended it to drop the UGA bit in the if/else as this was causing problems. RefindPlus Basically, sorting the interface out fixes the Stage 1 Loading Screen in both MacPro3,1 and MacPro5,1. Not tested MacPro4,1 but sure it works there as well. Also, no issues reported or expected on non-Macs as it only works when specifically needed. |
According to:
There are no GOP protocol instances anywhere on the platform. The failed function is essentially what you have:
Unless rEFInd proxies UGA to GOP, it is a mystery to me what is being talked about. There are no GOP protocols, neither on ConsoleHandle, nor on any other handle. |
See what you mean. Must admit the fix was confirmed on RX 580 which uses GOP. Stage 1 Loading shows up with that after the mapping. Assumed it would be the same on his but yes, he is on a GPU with UGA and as the ConsoleOut Handle on MacPro3,1 does not have GOP, then there will be no GOP to work with in the first place. Not sure why it works in RefindPlus and not OC then. I suppose GOP on UGA would be a possible interesting fix. |
Hrm. While it is unrelated to this issue, given the information you gave me, I do want to hear the exact details why do you think OC is broken on MP3,1 with RX 580. Whenever GOP is not found Unless |
Need to go back and check the scope of the fix. Might have been RefindPlus specific. I use both and sometimes get mixed up on which items was being addressed but pretty sure Stage 1 Loading Screen was not showing on OC ... will confirm and raise separate issue if so to not derail the OP's issue. |
EDIT: Late here for me ... Will get back to this tomorrow! cMP5,1 returns |
This is expected. It should go to: And then assign the GOP handle to mConsoleGraphicsOutput here: So that this check in ConsoleHandleProtocol will succeed: It is late here too, let's continue tomorrow. |
Mixed up what was being fixed. |
@CornCat78 Could you please try the new If the link above does not work, please visit here instead and download Artifacts there. If |
Thank you @PMheart. I'll test later this afternoon and report back with my findings. For the purpose of the test, can I just copy the And just to confirm for the actual update, I only need to replace |
Yes, definitely! Just copy it, and make sure ocvalidate does not complain about anything. Regarding file changes, the former two should be updated, yet I don’t think there is any need to touch OpenRuntime.efi since there is no change made to it. Also, you need to update config.plist. ;) Hopefully this helps. |
Try the latest version when it lands, I wonder if the priorities were not well-set. |
The latest PR binaries are available on the artifacts page https://github.com/acidanthera/OpenCorePkg/actions/runs/575419667. |
Just updated with the latest binary; still no 1st stage boot screen. Perhaps it's a config error on my end? When Latest logs attached. |
Worth trying with it disabled I think. |
You forgot to enable ProvideConsoleGop. Also update to the latest version once it lands. And indeed UGA pass through makes no sense for your setup. |
Sorry, I forgot to mention it too. Pushed requirements to the testing branch. |
@CornCat78 You can test the new one here. Please go with |
Also ensured Unfortunately still no 1st stage boot screen, and I lost second stage boot screen as well. After bootpicker, screen remains grey until MacOS login window. Config.plist and latest log attached. |
Ok, the situation seems clear to me:
The last part is confirmed by this part of the log:
Note, that all the handles with UGA protocols have no According to |
@CornCat78 is that GPU officially supported by Apple? Because apparently Apple-flashed GPUs should have |
Yes, the Radeon 7950 is an officially supported card by Apple. In fact, there was Mac edition of this card that was sold by Apple at one point, of which I believe this EFI BIOS is based on. |
Right, so this GPU was manually flashed with Apple EFI? Then I believe this EFI BIOS is simply incompatible with XNU kernel. We will make a test of that only CC @dakanji |
Well, with GOP GPUs it may, but this is UGA. I changed this to do nothing when no GOP is available in 0.6.7 anyway... |
@vit9696 unfortunately halted on critical error with OpenCanopy installed. Perhaps it's something with config.plist? Attaching that as well as logs here. P.S. took the resources folder from https://github.com/acidanthera/OcBinaryData and copied to EFI/OC. All files should be in the correct position. |
Good. For this to work (as well as FileVault 2) you need GopPassThrough (not included in the build above). Please check |
@vit9696 so good news and bad news. Good news is that OpenCanopy works: |
Hmmm. Is this consistent? Could you try this version: OpenCore-65aa4eda-NOOPT-T1.zip? |
Also, please try |
T1 build works. OpenCanopy loads and 1st stage boot screen is complete: Logs for T1 attached below. |
@vit9696 ... ok to add this to docs?
|
@vit9696 sorry, but can you confirm that the |
@dakanji Could do, yes. Maybe @CornCat78 yeah. |
@vit9696 NOOPT build with renderer set to
See attached log. Will test with T1 build now. |
Just to close out the now redundant RP tests, the AppleFramebuffer is available before RP is loaded and is available as the first line of code in the entry function. |
@vit9696 NOOPT-1 build using
Logs attached. |
Assume these are all with AppleFramebuffer set to false. Not doubting @vit9696 but can you confirm that everything works when that is set back to true (as it should when that setting is ignored)? Not on 0.6.6 obviously |
Good. I updated the GopPassThrough PR with the latest changes. Please make sure this version works fine with both |
Please test whatever is the "final" one with it set to true at some point. Just to close everything out. Thanks |
@vit9696 just completed testing the latest build toggling between
For a MP3,1 with UGA such as mine, what is the optimal setting you would recommend using? |
@dakanji , sure. Will test that now and provide you with the results and corresponding log. Give me a few minutes. |
@dakanji, in order to be thorough I tested
And I just want to say thanks to you, Dayo and especially @vit9696, as well as @PMheart and @startergo . All of you guys are amazing. I've learned so much about OpenCore and even RP through this experience. I really appreciate all the work you do. |
@CornCat78 I would recommend BuiltinGraphics as it should give better text output. As for AppleFramebufferInfo=YES, I am puzzled. Are you sure you made these tests with OpenCore-4c8a2de6-NOOPT.zip? Because there should be no difference with this build whether you have AppleFramebufferInfo=YES or AppleFramebufferInfo=NO. |
@vit9696 regarding my tests with |
Found it. Please retest that this build does not harm you with AppleFrameBufferInfo set to YES. All committed to master. |
@vit9696 ... regarding GOP Pass Thru, is there any undesirable feedback when UGA Pass Thru is also set? |
Yes, this build works perfectly with Logs attached: |
GOP Pass Thru and UGA Pass Thru can be enabled together. They are harmless. |
Seems an enhancement. Even over directly booting ... https://youtu.be/iSh405fhaHI |
Boot picker is visible but no 1st stage (grey background with Apple logo) boot screen. Screen remains gray immediately after OS selection from boot selection menu. 2nd stage (black screen with Apple logo) appears shortly after. Setting OC boot-args to verbose does result in text being displayed during 1st stage boot.
System: Mac Pro 3,1
GPU: Apple EFI Radeon 7950
OS: Catalina 10.15.7
EFI folder and all logs attached.
Archive.zip
Edited to add: video output works correctly on RefindPlus boot picker.
The text was updated successfully, but these errors were encountered: