Skip to content

nos1609/RyzenMacPro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ryzen Mac Pro - OpenCore EFI for ASRock X570 ITX

This repository provides the basic EFI folder to run macOS Catalina on an ASRock Phantom Gaming ITX/TB3 motherboard. The default provided currently using a Ryzen 9 3900X 12 Core CPU and a Radeon RX 5500 XT. For a short guide to using different CPUs and GPUs see below (all kexts specific to those are named explicitely). This is intended as a reference and to share improvements for similar build, not as an out of the box EFI to download. It is highly recommended to start with a vanilla OpenCore and following OpenCore Vanilla Guide first.

Ryzen Mac Pro build

Prozessor: AMD Ryzen 9 3900X
Cooler: Corsair H80i v2 AIO
Motherboard: AsRock X570 Phantom Gaming ITX/TB3 (BIOS 2.0)
Memory: Corsair Vengeance RGB Pro (2x, 16GB) DDR4-3200
Storage: Corsair MP600 (1000GB) M.2 NVMe PCIe 4.0
Video Card: Sapphire Radeon RX 5500 XT Pulse 8G
Power Supply: Corsair SF600 Platinum
Case: Phanteks Enthoo Evolv Shift (Mini-ITX)
Case fans: 2x Noctua NF-A14 PWM
AIO fans: 2x Noctua NF-F12 PPC 2000 PWM

Notes

I've replaced the stock Corsai SP120 fans with Noctua's NF-F12 which are quite a bit cooler or quieter depending on how you set up your fan curves. Due to limited space it is not possible to connect the USB cable directly to the pump on this motherboard, instead I've ordered a flat Mini-USB head from AliExpress. Liquidctl allows to controll the AIO under MacOS.

Versions

BIOS: 2.30
OpenCore: 0.6.0 (snapshot from 24.07.)
macOS: 10.15 / 11.0 Beta

Content

Config

For BIOS 2.30

  • RebuildAppleMemoryMap: Yes
  • SetupVirtualMap: No
  • SyncRuntimePermissions: Yes

For BIOS 2.00:

  • RebuildAppleMemoryMap: No
  • SetupVirtualMap: Yes
  • SyncRuntimePermissions: No

BigSurInstall-config.plist has a minimal set of kexts and settings which should get the MacOS 11 installer running.

ACPI

The following SSDT files are for setting up HPET and EC.

  • SSDT-EC.aml
  • SSDT-HPET.aml
  • SSDT-PLUG.aml
  • SSDT-SBRG.aml

The following SSDT files are for USB Power and properly name USB controllers and ports. Note: to fix sleep issues the internal HS10 port connected to bluetooth is not configured as internal.

  • SSDT-USBX.aml
  • SSDT-XHC.aml

Kexts

Besides the default kexts the following are noteworthy:

For enabling the integrated Intel Bluetooth

  • IntelBluetoothFirmware.kext
  • IntelBluetoothInjector.kext

The SMCAMDProcessor.kext is used to provide CPU temperature and frequency information, the AMD Power Gadget can be downloaded from https://github.com/trulyspinach/SMCAMDProcessor/releases. Other monitoring tools can also access and display this information. AMDRyzenCPUPowerManagement-ES.kext is a custom compiled version with a few minor differences: Upon boot low power state (P2) is enabled and Core Performance Boost is desabled by default. Additionally the adjustment has been tuned down a little to not immediately go to the highest power state and go down again faster. This with the intent to not have the CPU going full power for just minor loads like opening an empty browser tab. Only use this kext if you know what you are doing as it requires P2 to work correctly on your CPU.

The VoodooTSCSyncAMD kext is used to sync the cores and required the correct number of threads (cores * 2). Either update the Info.plist of the kext or create a new one with the VoodooTSCSync configurator.

The RadeonBoost kext is used to inject proper power management (AGPMInjector) and fixes some performance issues. It support SMBIOS iMacPro1,1/all MacPro and RX 480, 580, 590, 5500 (XT), 5600 (XT), 5700 (XT) and Radeon VII. Note: As of 10.15.5 macOS the SMU firmware is broken for Navi cards, therefore RadeonBoost does no longer load it and the previously seen performance gains in Benchmarks are lost again. Other than that RadeonBoost still provides some small improvements for Navi.

The AMD-USB-Map kext is depending on the SMBIOS and can be created with the Hackintool. See section about sleep for the other variant.

Setup

BIOS settings

Everything is tested with ASRocks latest BIOS v2.00 and v2.30:

  • CSM: disabled
  • Above 4G decoding: disabled (must be enabled for certain older graphics card)
  • Thunderbolt: enabled
    • Security Level: No Security
  • Fast boot: disabled

Note: ASRock did a wide cleanup of BIOS options in v2.30, several options were removed like advanced PCIe settings and possibility to disable USB controllers...

USB port mapping

Back I/O The front USB ports on the internal USB 3 header are SS5/HS5 and SS6/HS6. The port of the internal USB header is mapped to HS9, the internal Bluetooth module to HS10. In case the XHC0 controller is disabled, the ports 3/4 on the back I/O are USB 2 only.

XHC0 -> XHCI
PRT1 HS4 USB 2
PRT4 HS9 internal USB 2
PRT5 HS2 USB 2
PRT6 HS1 USB 2
PRT9 SS1 USB 2
PRT10 SS2 USB 2
XHC1 -> XHC
PRT1 HS6 USB 2
PRT2 HS10 Bluetooth
PRT3 HS5 USB 2
PRT4 SS10 USB Type C
PRT7 SS6 USB 3
PRT8 SS5 USB 3
XHC0 -> XHC2
PRT7 SS3 USB 3
PRT8 SS4 USB 3

(The last is the problematic controller causing wake up issues)

Best way is to disable that controller in BIOS: AMD PBS -> FCH Common Options -> XCHI Controller 0 to disabled

Known issues

Thunderbolt controller is not detected by MacOS unless device is already connected during boot. SSDT-TB3.aml file might improve TB support (Thanks to XinJiangCN for that).

The integrated Intel Wifi is not yet supported.

Microphone is not yet working through integrated audio codec.

Sleep

Sleep can be a difficult topic with little things breaking either entering or leaving sleep. Certain USB devices can break transition into sleep (resulting in a kernel panic after 3 minutes). And make sure boot flag -hbfx-disable-patch-pci is set to avoid black screens on wakeup.

If it does not entering sleep properly there are some things to be tried:

  • Disable "Allow Bluetooth devices to wake this computer" in Advanced Bluetooth settings (may require the use of the power button if keyboard and mouse are connected through standard bluetooth)
  • Disconnect specific bluetooth devices (like monitor speakers and the like)
  • Turn off monitor before entering sleep

Note that the AIO prevents sleep from working if the pump is connected by USB, even if the port is not configured. I'm currently working around this by connecting the pump one of the external USB ports to manually disconnect it before going to sleep until I can find an internal USB hub which supports PPPS (per port power switch) to disable the connection through software.

BIOS version 2.30 seems to break sleep, screen turns off but system keeps running where as with 2.00 it properly enters sleep.

Notes

Use at your own risk.

Discussions:

Cedits and links:

About

OpenCore EFI for running macOS on ASRock X570 ITX

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published