Basic EFI with Opencore for AMD Ryzen and Threadripper

BASE EFI AMD - Ryzen and Threadripper (1XXX, 2XXX, 3XXX, 4XXX, 5XXX) and Athlon 2xxGE

Note Description
Initial macOS Support macOS 10.13, High Sierra.
  • Opencore version: 0.7.5
  • Release date: 01/11/2021

Basic Steps

  1. Download the latest release;
  2. Includes additional kexts (for ethernet, audio, etc);
  3. Include the necessary ACPI patches (.aml);
  4. Review the special notes;
  5. Generate and complete your SMBIOS infos - ALWAYS;
  6. Adjust your BIOS;
  7. Install macOS and enjoy :)

Features

  • Very light, very clean, basic files for your Hackintosh.
  • Made with latest OpenCore versions.
  • Two editions - Release and Debug Edition.
  • Updated montly with refresh versions of Opencore.

Kexts included (Required)

Kext Description
AMDRyzenCPUPowerManagement.kext For AMD Power Gadget.
SMCAMDProcessor.kext For AMD Power Gadget.
AppleMCEReporterDisabler.kext Useful starting with Catalina to disable the AppleMCEReporter kext which will cause kernel panics on AMD CPUs and dual-socket systems.
Lilu.kext Patch many processes, required for AppleALC, WhateverGreen, VirtualSMC and many other kexts.
VirtualSMC.kext Emulates the SMC chip found on real macs, without this macOS will not boot.
Alternative is FakeSMC which can have better or worse support, most commonly used on legacy hardware.
WhateverGreen.kext Used for graphics patching, DRM fixes, board ID checks, framebuffer fixes, etc; all GPUs benefit from this kext.

Other Kexts (not included)

Kexts for support Audio, Wifi, Ethernets and other devices.

Audio

Kext Description
AppleALC.kext Used for AppleHDA patching, allowing support for the majority of on-board sound controllers.
AMD 15h/16h may have issues with this and Ryzen/Threadripper systems rarely have mic support.
VoodooHDA.kext Audio for FX systems and front panel Mic+Audio support for Ryzen system, do not mix with AppleALC.
Audio quality is noticeably worse than AppleALC on Zen CPUs.

Ethernet

Kext Description
IntelMausi.kext Intel's 82578, 82579, I217, I218 and I219 NICs are officially supported.
AtherosE2200Ethernet.kext Required for Atheros and Killer NICs.
Note: Atheros Killer E2500 models are actually Realtek based, for these systems please use RealtekRTL8111 instead.
RealtekRTL8111.kext For Realtek's Gigabit Ethernet.
Sometimes the latest version of the kext might not work properly with your Ethernet. If you see this issue, try older versions.
LucyRTL8125Ethernet.kext For Realtek's 2.5Gb Ethernet.
SmallTreeIntel82576.kext Required for I211 NICs, based off of the SmallTree kext but patched to support I211.
Required for most AMD boards running Intel NICs.

WiFi and Bluetooth

Kext Description
AirportItlwm Adds support for a large variety of Intel wireless cards and works natively in recovery thanks to IO80211Family integration.
IntelBluetoothFirmware Adds Bluetooth support to macOS when paired with an Intel wireless card.
AirportBrcmFixup Used for patching non-Apple/non-Fenvi Broadcom cards, will not work on Intel, Killer, Realtek, etc.
For Big Sur see Big Sur Known Issues for extra steps regarding AirPortBrcm4360 drivers.
BrcmPatchRAM Used for uploading firmware on Broadcom Bluetooth chipset, required for all non-Apple/non-Fenvi Airport cards.

Others

Kext Description
NVMeFix Used for fixing power management and initialization on non-Apple NVMe.
SATA-Unsupported Adds support for a large variety of SATA controllers, mainly relevant for laptops which have issues seeing the SATA drive in macOS.
We recommend testing without this first.
RestrictEvents Fixing SMBIOS MacPro7,1 Memory Errors.
RestrictEvents Better experience with unsupported processors like AMD, Disable MacPro7,1 memory warnings and provide upgrade to macOS Monterey via Software Updates when available.

ACPI Tables - AMD

These files are MUST be included in your EFI's ACPI directory. We recommend that you use the MANUAL method, but for a first test you can use the prebuild versions.

Table Description
SSDT-EC-USBX Manual | Prebuilt | Details
SSDT-CPUR Prebuilt
Only for B550 and A520

Dumping your DSDT in Windows Environment

Download iASL Compiler ACPI Tools

Open the CMD in the directory where the ACPI Tools was extracted. (Command Prompt) in Administrator Mode:

path/to/acpidump.exe -b -n DSDT -z
move dsdt.dat DSDT.aml

Decompile DSDT.aml:

path/to/iasl.exe path/to/DSDT.aml

File DSDT.dsl will generated. Use this for generate YOUR ACPI Patches.

Compile DSDT.dsl:

path/to/iasl.exe path/to/DSDT.dsl

File APCPI_FILE_PATCHED.aml will generated.

Attention

Update config.plist in PlatformInfo > Generic with YOUR informations.

1. MLB (Board Serial)
2. ROM (Mac Address)
3. SystemSerialNumber (Serial)
4. SystemUUID (SmUUID)

Please use genSMBIOS for generate values for above itens.
Please use ProperTree for configure/edit your config.plist.

Compatible SMBIOS

SMBIOS Description
iMacPro1,1 AMD RX Polaris and newer.
MacPro7,1 AMD RX Polaris and newer.
Note that MacPro7,1 is exclusive to macOS 10.15, Catalina and newer.
MacPro6,1 AMD R5/R7/R9 and older.
iMac14,2 Nvidia Kepler and newer.
Note: iMac14,2 is only supported to macOS 10.8-10.15, for macOS 11, Big Sur and newer please use MacPro7,1.

Catalina and older versions of macOS

  • Please configure MinDate and MinVersion in UEFI > APFS to -1;
  • Please configure SecureBootModel in Misc > Security to j137;

* Without above settings, macOS will not be able to boot.

Special notes

  • USB port mapping is REQUIRED.
  • XhciPortLimit - Needed DISABLE if you use Big Sur 11.3+.
    • Please Mapping USB in macOS Catalina before install Big Sur or Newer for best results.
    • You can use USBMap.command Utility - USBMap.
  • SetupVirtualMap in config.plist:
    • B550, A520 and TRx40 boards should DISABLE this;
    • Newer BIOS versions of X570 also require this DISABLE;
    • X470 and B450 with late 2020 BIOS updates also require this DISABLE.
  • DevirtualiseMmio - TRx40 users please ENABLE this flag.

Special notes - Opencore 0.7.1+

Find the three algrey - Force cpuid_cores_per_package patches and alter the Replace value only - config.plist.

Changing B8000000 0000/BA000000 0000/BA000000 0090* to B8 <CoreCount> 0000 0000/BA <CoreCount> 0000 0000/BA <CoreCount> 0000 0090* substituting <CoreCount> with the hexadeciamal value matching your physical core count.

Note: The three different values reflect the patch for different versions of macOS. Be sure to change all three if you boot macOS 10.13 to macOS 12

See the table below for the values matching your CPU Core Count.

CoreCount Hexadecimal
4 Core 04
6 Core 06
8 Core 08
12 Core 0C
16 Core 10
24 Core 18
32 Core 20

So for example a 6 Core 5600X Replace value would result in these replace values, B8 06 0000 0000/BA 06 0000 0000/BA 06 0000 0090

Note: MacOS Monterey installation requires Misc -> Security -> SecureBootModel to be disabled in the config.
Also TPM needs to be disabled in the BIOS. Both can be enabled after install.

TRX40 Systems

Disabling the mtrr_update_action - fix PAT patch has shown an improvement in GPU performance on some systems that have tested. If you wish to test this it is recommended to do so on a USB with OpenCore to ensure it works first. There may be issues with different motherboard/GPU combos that we aren't aware of. Proceed at your own risk.

General Purpose boot-args

Parameter Description
npci=0x2000 This disables some PCI debugging related to kIOPCIConfiguratorPFM64, alternative is npci=0x3000 which disables debugging related to gIOPCITunnelledKey in addition.
Required for when getting stuck on PCI Start Configuration as there are IRQ conflicts relating to your PCI lanes. Not needed if Above4GDecoding is enabled.
npci=0x3000 Alternative for npci=0x2000.

GPU-Specific boot-args

Parameter Description
agdpmod=pikera Used for disabling board ID checks on Navi GPUs(RX 5000 series), without this you'll get a black screen.
Don't use if you don't have Navi (ie. Polaris and Vega cards shouldn't use this).
nvda_drv_vrl=1 Used for enabling Nvidia's Web Drivers on Maxwell and Pascal cards in Sierra and High Sierra.

BIOS Settings

Disable

  • Fast Boot
  • Secure Boot
  • Serial/COM Port
  • Parallel Port
  • Compatibility Support Module (CSM)(Must be off, GPU errors like gIO are common when this option in enabled)

Special note for 3990X users: macOS currently does not support more than 64 threads in the kernel, and so will kernel panic if it sees more. The 3990X CPU has 128 threads total and so requires half of that disabled. We recommend disabling hyper threading in the BIOS for these situations.

Enable

  • Above 4G decoding
    • This must be on, if you can't find the option then add npci=0x2000 to boot-args.
    • Do not have both this option and npci in boot-args enabled at the same time.
    • If you are on a Gigabyte/Aorus or an AsRock motherboard, enabling this option may break certain drivers(ie. Ethernet) and/or boot failures on other OSes, if it does happen then disable this option and opt for npci instead.
    • 2020+ BIOS Notes: When enabling Above4G, Resizable BAR Support may become an available on some X570 and newer motherboards. Please ensure this is DISABLED instead of set to Auto.
  • EHCI/XHCI Hand-off
  • OS type: Windows 8.1/10 UEFI Mode
  • SATA Mode: AHCI

References

https://dortania.github.io/OpenCore-Install-Guide/AMD/zen.html
https://dortania.github.io/Getting-Started-With-ACPI/
https://github.com/AMD-OSX/AMD_Vanilla

Similar Resources

C64 Watch is a customized T-Watch 2020 that was inspired by the Commodore 64 computer. It features a C64 theme and a built-in BASIC interpreter.

C64 Watch is a customized T-Watch 2020 that was inspired by the Commodore 64 computer. It features a C64 theme and a built-in BASIC interpreter.

C64 Watch C64 Watch is a customized T-Watch 2020 that was inspired by the Commodore 64 computer. It features a C64 theme and a built-in BASIC interpre

Sep 21, 2022

Just a basic Offsets and Netvar dumper for Apex Legends

Just a basic Offsets and Netvar dumper for Apex Legends

Not much to say just an Apex Legends Offsets + Netvar Dumper, it should survive some game updates and also it gave to you almost all you need to updat

Nov 24, 2022

Basic template for ST7789 driver and esp32.

LVGL TEMPLATE Basic template for ST7789 driver and esp32. About ESP32 board: ESP32-WROVER flash size: 16MB esp-idf: v4.4 About LCD TFT LCD driver: ST7

Oct 25, 2022

An extremely basic Python script to split word-based data into high and low byte files.

An extremely basic Python script to split word-based data into high and low byte files. This is for use in programming 16 bit computer ROMs.

Dec 26, 2021

Well-organized, commented and documented sample project that shows the basic functionalities of the 42's mlx library.

miniLibX sample | slucas-s I developed this sample project to play around with the basic functionalities of the miniLibX, the simple graphics library

Nov 23, 2022

very basic and minimalistic hooking "library" for windows (x64 support soon)

IceHook very basic and minimalistic hooking "library" for windows (x64 support soon) Example how to use: typedef void(__stdcall* twglSwapBuffers)(HDC

Jul 25, 2022

Writing a basic compiler frontend following LLVM's tutorial, with complete added supports Hindi and UTF-8 in general

Writing a basic compiler frontend following  LLVM's tutorial, with complete added supports Hindi and UTF-8 in general

सारस | SARAS Started with following LLVM's tutorial In development, a hobby project only JIT is broken right now, 'jit' branch par code hai uska Compi

May 1, 2022

Just a basic mini library for parsing simple files that only have variables written and with Lua extension.

C++ Parser Lua file config Just a basic mini library for parsing simple files that only have variables written and with Lua extension. Note: At the mo

Dec 26, 2021

A multiplatform C++ library for common and basic system functionalities.

axl.cm A multiplatform C++ library for common and basic system functionalities. Platforms Linux Windows C++ standard minimum: C++98 target: C++11 maxi

Apr 4, 2022
A video input (V4L2) to NDI converter that works with Raspberry Pi (32-bit and 64-bit), and Intel/AMD CPUs

V4L2 to NDI V4L2 to NDI is an application that connects to attached V4L2 devices and encodes the video signal into NDI It uses the NDI library, allowi

Nov 12, 2022
AMD K6-2 (CXT) / K6-2+ / K6-3 / K6-3+ Write Allocate / Write Combine / Write Ordering / Frequency Multiplier Initialization driver for MS-DOS

K6INIT What is this? This is a driver for MS-DOS to replace k6dos.sys which is a bit useless and unflexible. It does not support the CXT versions of t

Sep 11, 2022
The implementation of the 'vSGX: Virtualizing SGX Enclaves on AMD SEV' paper

vSGX: Virtualizing SGX Enclaves on AMD SEV About the Project This is a research project aims to enable binary compatibility execution of Intel SGX enc

Oct 27, 2022
Simple EFI runtime driver that hooks GetVariable function and returns data expected by Windows to make it think that it's running with secure boot enabled (faking secure boot)
Simple EFI runtime driver that hooks GetVariable function and returns data expected by Windows to make it think that it's running with secure boot enabled (faking secure boot)

SecureFakePkg is a simple EFI runtime driver that hooks GetVariable function and returns data expected by Windows to make it think that it's running with secure boot enabled. In other words, it fakes secure boot status.

Oct 20, 2022
fortnite cheat external that uses efi drivers and is updated

fortnite-external-efi-drivers fortnite cheat external that uses efi drivers and is updated ALL CREDITS TO CHASE: https://github.com/Chase1803 i just u

Jun 5, 2022
Hide SMBIOS/disk/NIC serials from EFI bootkit
Hide SMBIOS/disk/NIC serials from EFI bootkit

Rainbow Rainbow is a bootkit like HWID spoofer for Windows. It abuses several hooks in EFI runtime services and uses clever DKOM to hide hardware seri

Nov 22, 2022
ThatOS64 is for the youtube series on 64-Bit Kernel Development pre-loaded by the EFI
ThatOS64 is for the youtube series on 64-Bit Kernel Development pre-loaded by the EFI

Step by Step Tutorials on how to code a 64-Bit loader and kernel for OS Development NOTES Starting with CODE5, the resolution from the EFI file sets t

Jul 10, 2022
GNU-EFI fork without the bs.

reduced-gnu-efi =============== reduced-gnu-efi is a fork of GNU-EFI that strips out all code save for the relocation assembly stubs and the EFI head

Nov 5, 2022
this is very basic version for our dataset validation, only change the path, and align the frame of vio and Groundtruth
this is very basic version for our dataset validation, only change the path, and align the frame of vio and Groundtruth

VINS-Fusion for UrbanNavDataset Evaluation 1. Prerequisites please refer to VINS-Fusion Github 2. Build mkdir catkin/src cd catkin/src mkdir result cd

Sep 5, 2022
Basic definitions and utility functions for GNSS raw measurement processing

gnss_comm Authors/Maintainers: CAO Shaozu (shaozu.cao AT gmail.com) The gnss_comm package contains basic definitions and utility functions for GNSS ra

Nov 21, 2022