mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-17 13:22:54 +10:00
Fix XHCI hang
Closes https://github.com/dortania/OpenCore-Legacy-Patcher/issues/269
This commit is contained in:
12
CHANGELOG.md
12
CHANGELOG.md
@@ -5,7 +5,19 @@
|
||||
- Add NVMe firmware support for older models (ie. MacPro3,1)
|
||||
- OpenCore must be stored on a bootable volume (ie. USB or SATA)
|
||||
- Fix Thunderbolt Ethernet support on MacBookAir4,x
|
||||
- Fix XHCI hangs on pre-2012 Machines
|
||||
- XHCI boot support dropped due to instability
|
||||
- Add beta macOS Monterey Support
|
||||
- Fix iMac13,x sleep support
|
||||
- Add support for following models:
|
||||
- iMac14,4
|
||||
- iMac15,1
|
||||
- MacBook8,1
|
||||
- MacBookAir6,1
|
||||
- MacBookAir6,2
|
||||
- MacBookPro11,1
|
||||
- MacBookPro11,2
|
||||
- MacBookPro11,3
|
||||
|
||||
## 0.1.6
|
||||
- Add XHCI UEFI Driver for 3rd Party USB 3.0 Controllers
|
||||
|
||||
@@ -381,6 +381,10 @@ class BuildOpenCore:
|
||||
else:
|
||||
self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696"}
|
||||
|
||||
if self.model in ["iMac13,1", "iMac13,2", "iMac13,3"]:
|
||||
print("- Fixing sleep support in macOS 12")
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"disable-gpu-min": "21.0.0"}
|
||||
|
||||
# HiDPI OpenCanopy and FileVault
|
||||
if self.model in ModelArray.HiDPIpicker:
|
||||
print("- Setting HiDPI picker")
|
||||
@@ -532,19 +536,19 @@ class BuildOpenCore:
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree"
|
||||
|
||||
# Add XhciDxe if firmware doesn't have XHCI controller support and XCHI controller detected
|
||||
if self.model not in ModelArray.XhciSupport and not self.constants.custom_model:
|
||||
devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
try:
|
||||
devices = [i for i in devices if i["class-code"] == binascii.unhexlify(self.constants.classcode_xhci)]
|
||||
vendor_id = Utilities.hexswap(binascii.hexlify(devices[0]["vendor-id"]).decode()[:4])
|
||||
device_id = Utilities.hexswap(binascii.hexlify(devices[0]["device-id"]).decode()[:4])
|
||||
print("- Found XHCI Controller, adding Boot Support")
|
||||
shutil.copy(self.constants.xhci_driver_path, self.constants.drivers_path)
|
||||
self.config["UEFI"]["Drivers"] += ["XhciDxe.efi"]
|
||||
except ValueError:
|
||||
print("- No XHCI Controller Found (V)")
|
||||
except IndexError:
|
||||
print("- No XHCI Controller Found (I)")
|
||||
#if self.model not in ModelArray.XhciSupport and not self.constants.custom_model:
|
||||
# devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
# try:
|
||||
# devices = [i for i in devices if i["class-code"] == binascii.unhexlify(self.constants.classcode_xhci)]
|
||||
# vendor_id = Utilities.hexswap(binascii.hexlify(devices[0]["vendor-id"]).decode()[:4])
|
||||
# device_id = Utilities.hexswap(binascii.hexlify(devices[0]["device-id"]).decode()[:4])
|
||||
# print("- Found XHCI Controller, adding Boot Support")
|
||||
# shutil.copy(self.constants.xhci_driver_path, self.constants.drivers_path)
|
||||
# self.config["UEFI"]["Drivers"] += ["XhciDxe.efi"]
|
||||
# except ValueError:
|
||||
# print("- No XHCI Controller Found (V)")
|
||||
# except IndexError:
|
||||
# print("- No XHCI Controller Found (I)")
|
||||
|
||||
if self.constants.nvme_boot is True:
|
||||
print("- Enabling NVMe boot support")
|
||||
|
||||
Reference in New Issue
Block a user