From 077af5afb3368025af4436ef1446759111c77a03 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Mon, 30 Aug 2021 17:36:06 -0600 Subject: [PATCH] Add ACPI path verification for DeviceProperty injection Ref: https://github.com/dortania/OpenCore-Legacy-Patcher/issues/451 --- Resources/Build.py | 2 +- Resources/device_probe.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Resources/Build.py b/Resources/Build.py index 9e1fe8736..e20cb6aa5 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -539,7 +539,7 @@ class BuildOpenCore: print(f"- Found dGPU ({i + 1}): {Utilities.friendly_hex(device.vendor_id)}:{Utilities.friendly_hex(device.device_id)}") self.config["#Revision"][f"Hardware-MacPro-dGPU-{i + 1}"] = f"{Utilities.friendly_hex(device.vendor_id)}:{Utilities.friendly_hex(device.device_id)}" - if device.pci_path: + if device.pci_path and device.acpi_path: print(f"- Found dGPU ({i + 1}) at {device.pci_path}") if isinstance(device, device_probe.AMD): print("- Adding Mac Pro, Xserve DRM patches") diff --git a/Resources/device_probe.py b/Resources/device_probe.py index 693fa4b54..54f98dcf2 100644 --- a/Resources/device_probe.py +++ b/Resources/device_probe.py @@ -30,6 +30,7 @@ class PCIDevice: # ioregistryentry: Optional[ioreg.IORegistryEntry] = None name: Optional[str] = None # Name of IORegistryEntry model: Optional[str] = None # model property + acpi_path: Optional[str] = None pci_path: Optional[str] = None # def __getstate__(self): @@ -48,6 +49,8 @@ class PCIDevice: device = cls(vendor_id, device_id, int.from_bytes(properties["class-code"][:6], byteorder="little"), name=ioreg.io_name_t_to_str(ioreg.IORegistryEntryGetName(entry, None)[1])) if "model" in properties: device.model = properties["model"].strip(b"\0").decode() + if "acpi_path" in properties: + device.acpi_path = properties["acpi-path"].strip(b"\0").decode() device.populate_pci_path(entry) return device