From a6721838809fd0b9e4f68f66c0361c01832e415c Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Sun, 13 Nov 2022 20:38:49 -0700 Subject: [PATCH] build: Add AMD GOP injection --- CHANGELOG.md | 2 ++ gui/gui_main.py | 23 +++++++++++++++++++++-- payloads/Config/config.plist | 12 ++++++++++++ payloads/Drivers/AMDGOP.efi | Bin 0 -> 106464 bytes resources/build/graphics_audio.py | 6 ++++++ resources/constants.py | 5 +++++ 6 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 payloads/Drivers/AMDGOP.efi diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d873c03a..4c94b2272 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ - Allows for easier identification of version when reporting issues - Drop usage of `HW_BID` rerouting in boot.efi - Patch out PlatformSupport.plist instead, allows for less maintenance overall +- Add support for AMD GOP injection (AMDGOP.efi) + - For MXM iMacs and Mac Pros with GPU VBIOS lacking GOP support (ie. no UEFI output even after OC loads) - Increment Binaries: - AirPortBrcmFixup 2.1.6 - release - AppleALC 1.7.6 - release diff --git a/gui/gui_main.py b/gui/gui_main.py index cdef089ad..ecb44129f 100644 --- a/gui/gui_main.py +++ b/gui/gui_main.py @@ -2480,13 +2480,24 @@ class wx_python_gui: self.timeout_spinner.Bind(wx.EVT_SPINCTRL, self.timeout_spinner_click) self.timeout_spinner.Centre(wx.HORIZONTAL) + # AMD GOP Injection + self.set_gop_injection = wx.CheckBox(self.frame_modal, label="AMD GOP Injection") + self.set_gop_injection.SetPosition(wx.Point( + 30, + self.timeout_spinner.GetPosition().y + self.timeout_spinner.GetSize().height + 5)) + self.set_gop_injection.SetValue(self.constants.gop_injection) + self.set_gop_injection.Bind(wx.EVT_CHECKBOX, self.gop_injection_checkbox_click) + models = ["iMac10,1", "iMac11,1", "iMac11,2", "iMac11,3", "iMac12,1", "iMac12,2", "MacPro3,1", "MacPro4,1", "MacPro5,1", "Xserve2,1", "Xserve3,1"] + if (not self.constants.custom_model and self.computer.real_model not in models) or (self.constants.custom_model and self.constants.custom_model not in models): + self.set_gop_injection.Disable() + # Disable Thunderbolt self.disable_thunderbolt_checkbox = wx.CheckBox(self.frame_modal, label="Disable Thunderbolt") self.disable_thunderbolt_checkbox.SetValue(self.constants.disable_tb) self.disable_thunderbolt_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_tb_click) self.disable_thunderbolt_checkbox.SetPosition(wx.Point( - 30, - self.timeout_spinner.GetPosition().y + self.timeout_spinner.GetSize().height + 5)) + self.set_gop_injection.GetPosition().x, + self.set_gop_injection.GetPosition().y + self.set_gop_injection.GetSize().height)) self.disable_thunderbolt_checkbox.SetToolTip(wx.ToolTip("Disables Thunderbolt support on MacBookPro11,x\nMainly applicable for systems that cannot boot with Thunderbolt enabled")) if not self.constants.custom_model and not self.computer.real_model.startswith("MacBookPro11"): self.disable_thunderbolt_checkbox.Disable() @@ -2745,6 +2756,14 @@ class wx_python_gui: print("Content Caching Disabled") self.constants.set_content_caching = False + def gop_injection_checkbox_click(self, event=None): + if self.set_gop_injection.GetValue(): + print("GOP Injection Enabled") + self.constants.gop_injection = True + else: + print("GOP Injection Disabled") + self.constants.gop_injection = False + def disable_tb_click(self, event=None): if self.disable_thunderbolt_checkbox.GetValue(): print("Disable Thunderbolt Enabled") diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index bcd195a03..4119e1f94 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -2505,6 +2505,18 @@ LoadEarly + + Comment + + Path + AMDGOP.efi + Enabled + + Arguments + + LoadEarly + + Input diff --git a/payloads/Drivers/AMDGOP.efi b/payloads/Drivers/AMDGOP.efi new file mode 100644 index 0000000000000000000000000000000000000000..b1bbcc282314a93c6dc64fd41d2b1a3c86a9d754 GIT binary patch literal 106464 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 VLceP7bm+>8gDdi^*g*vIzW{yhAKCx_ literal 0 HcmV?d00001 diff --git a/resources/build/graphics_audio.py b/resources/build/graphics_audio.py index c50f4c960..250313cd7 100644 --- a/resources/build/graphics_audio.py +++ b/resources/build/graphics_audio.py @@ -277,6 +277,12 @@ class build_graphics_audio: self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True + # AMD GOP VBIOS injection for AMD GCN 1-4 GPUs + if self.constants.gop_injection is True: + print("- Adding AMDGOP.efi") + shutil.copy(self.constants.amd_gop_driver_path, self.constants.drivers_path) + support.build_support(self.model, self.constants, self.config).get_efi_binary_by_path("AMDGOP.efi", "UEFI", "Drivers")["Enabled"] = True + def spoof_handling(self): if self.constants.serial_settings == "None": return diff --git a/resources/constants.py b/resources/constants.py index 30f9ccf1e..a999e21bd 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -177,6 +177,7 @@ class Constants: self.allow_ts2_accel = True # Set TeraScale 2 Acceleration support self.force_nv_web = False # Force Nvidia Web Drivers on Tesla and Kepler self.force_output_support = False # Force Output support for Mac Pros with PC VBIOS + self.gop_injection = False # Set GOP Injection support ## Miscellaneous self.disallow_cpufriend = False # Disable CPUFriend @@ -248,6 +249,10 @@ class Constants: def exfat_legacy_driver_path(self): return self.payload_path / Path("Drivers/ExFatDxeLegacy.efi") + @property + def amd_gop_driver_path(self): + return self.payload_path / Path("Drivers/AMDGOP.efi") + @property def xhci_driver_path(self): return self.payload_path / Path("Drivers/XhciDxe.efi")