Contribute
Register

X299 Big Sur Support

Joined
Jun 13, 2018
Messages
632
Motherboard
Prime X299-A
CPU
i9-9980XE
Graphics
RX 5700 XT
Mac
  1. iMac
  2. MacBook Pro
Classic Mac
  1. iMac
  2. Power Mac
Mobile Phone
  1. Android
  2. iOS
A question for @pieropontra and others who have a ASUS X299-E motherboard. I finally got my ASUS X299-E motherboard. I'm currently using MSI Raider X299 and thinking of just swapping out the motherboards. I see that the ethernet (IntelMausi) and audio (Realtek ALC1220) are same.

Questions:
1) What ssdts do I need besides SSDT-EC-USBX-DESKTOP, SSDT-PLUG-DRTNIA, SSDT-RTC0-RANGE-HEDT?
2) I have following Kexts, do I need any others: AppleALC, CpuTscSync, IntelMausi, Lilu, NVMeFix, USBInjectAll, VirtualSMC, WhateverGreen

Thanks in advance.
Keep in mind I got the X299-A (not E) but it should be the same:

1. You just need those 3 (Dortania's are good, they work and I use them)
2. You need AppleALC (Audio) - Intelmausi (Ethernet) - Lilu (mandatory) - VirtualSMC (mandatory) - TSCAdjust (edit according to your cpu) - USBPorts (create according to your board) - Whatevergreen (GPU patches)

This SSDTs / Kexts is the bare minimum you need to boot macOS
 
Joined
Feb 24, 2013
Messages
2,553
Motherboard
ASUS WS X299 SAGE/10G
CPU
i9-9980XE
Graphics
Radeon VII
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Quick Questions for Big Sur users...

1) Disabling WhateverGreen (using MacPro 7,1 SMBIOS) now yields to no crashes as it did in Catalina. Using multiple monitors with no problems. DRM works in Safari (ie Amazon Prime, Netflix) but as usual not under Chrome (which is normal). Multi monitor also works.

2) EnableWriteUnprotector set to No and RebuildAppleMemoryMap set to Yes restarts the system during bootup. So keeping EnableWriteUnprotector set to Yes and RebuildAppleMemoryMap set to No fixes the issue. It seems that RebuildAppleMemoryMap succeeds EnableWriteUnprotector but doesn't seem to work for me.

3) Apple Menu > Shutdown restarts my system. Is there a way to fix this without using ACPI patches?
 
Last edited:
Joined
Mar 18, 2017
Messages
1,008
Motherboard
ASUS ROG Rampage VI Extreme
CPU
i9-7940X
Graphics
2 X VEGA 56
Mac
  1. iMac
  2. Mac mini
Mobile Phone
  1. iOS
Hello everyone
what's the benefits/differences between "TSCAdjustReset.kext" and "CpuTscSync.kext" (from dortania guide)?
I use the latter witch seems to have zero configuration ...
Thanks in advance
The TSCAdjustReset.kext more specific four our X299 platform see on Github TSCAdjustReset.
Provided by interferenc : "On x299 and Skylake-X, the CPU has an invariant TSC, meaning it will NOT get out of sync. The problem with x299/Sklylake-X is that something (probably the BIOS, or even the CPU itself) writes to the TSC of some of the cores, and thus the TSCs are not in sync upon cold or warm boot. The IA32_TSC_ADJUST MSR holds the value of how much each core was adjusted. Writing 0 this register rolls back any previous changes. So TSCAdjustReset.kext does exactly that. It can even be unloaded after it did its job."
 
Joined
Jul 20, 2014
Messages
756
Motherboard
Asrock X299 Creator
CPU
i9 10900X
Graphics
GT 710
Mac
  1. MacBook
The TSCAdjustReset.kext more specific four our X299 platform see on Github TSCAdjustReset.
Provided by interferenc : "On x299 and Skylake-X, the CPU has an invariant TSC, meaning it will NOT get out of sync. The problem with x299/Sklylake-X is that something (probably the BIOS, or even the CPU itself) writes to the TSC of some of the cores, and thus the TSCs are not in sync upon cold or warm boot. The IA32_TSC_ADJUST MSR holds the value of how much each core was adjusted. Writing 0 this register rolls back any previous changes. So TSCAdjustReset.kext does exactly that. It can even be unloaded after it did its job."
Okay ... it's little too complicated for me.
Are we sure that "CpuTscSync.kext" doesn't do the same thing ?
Or
How can we verified that "CpuTscSync.kext" isn't working properly or as "TSCAdjustReset.kext" is ?
Thanks
 
Last edited:
Joined
Mar 18, 2017
Messages
1,008
Motherboard
ASUS ROG Rampage VI Extreme
CPU
i9-7940X
Graphics
2 X VEGA 56
Mac
  1. iMac
  2. Mac mini
Mobile Phone
  1. iOS
Okay ... it's little to complicated for me.
Are we sure that "CpuTscSync.kext" doesn't do the same thing ?
Or
How can we verified that "CpuTscSync.kext" isn't working properly or as "TSCAdjustReset.kext" is ?
Thanks
I wouldn't waste my time with that (humor on :)) and simply use TSCAdjustReset.kext, you can check on your IOReg the kext must be loaded at the end of CPXX/PRXX number and see if the value on the right side on IOReg by clicking on the arrow properties corresponds in Hex value to you CPU core number, and your system must be stable and not freezing with the proper kext.
 
Joined
Feb 26, 2011
Messages
90
Motherboard
ASUS PRIME X299-A II
CPU
i9 10940X
Graphics
AMD RX 560 | Nvidia RTX 3070
Mac
  1. MacBook
  2. MacBook Pro
Mobile Phone
  1. iOS
I wouldn't waste my time with that (humor on :)) and simply use TSCAdjustReset.kext, you can check on your IOReg the kext must be loaded at the end of CPXX/PRXX number and see if the value on the right side on IOReg by clicking on the arrow properties corresponds in Hex value to you CPU core number, and your system must be stable and not freezing with the proper kext.

Im currently using CpuTscSync.kext and everything is working flawlessly (apart from my NVRAM, but different story).

Im also interested in this, my Geekbench Multicore scores are right up there in the top end of the range for my CPU model, I think very good scores because cooling is good and stays under 60c, so I've got no indication of any issue with performance or CPU threads not working correctly.

I guess the question is - are there specific advantages and disadvantages to either method?

Or it either works or it doesn't and it really doesn't matter which method you choose?
 
Joined
Mar 6, 2013
Messages
240
Motherboard
Gigabyte X299X Designare 10G
CPU
i9-10980XE
Graphics
AMD 6900XT
Mobile Phone
  1. Android
They both work, but TSCAdjustReset is specific to X299 and only needs to run its code once, on startup. Where CpuTscSync runs regularly, always making sure the TSCs are in sync across the cores. But on X299, the TSCs are already always are in sync - on X299 just one correction needs to be made to them all, which TSCAdjustReset does at startup. After that, it goes idle - it could even be unloaded, the Github page says (though I don't believe it's possible to unload running kexts any more as of Big Sur.)

So theoretically using TSCAdjustReset should be more efficient, saving a few clock cycles and having one less active kext. But it's probably such a small difference that it's not measurable, or certainly not by standard benchmarks.

CpuTscSync has the advantage that it's actively maintained by Acidanthera, making it as 'official' as anything can be for Hacks. Meaning it will definitely be updated and kept current over time, should any future compatibility changes be needed. We don't know if that will be the case for TSCAdjustReset, though it certainly runs fine for now.

I use TSCAdjustReset on the basis that if I can have fewer unnecessary instructions being executed, why not. But I really doubt there's any significant difference either way.
 
Last edited:
Joined
Jul 20, 2014
Messages
756
Motherboard
Asrock X299 Creator
CPU
i9 10900X
Graphics
GT 710
Mac
  1. MacBook
They both work, but TSCAdjustReset is specific to X299 and only needs to run its code once, on startup. Where CpuTscSync runs regularly, always making sure the TSCs are in sync across the cores. But on X299, the TSCs are already always are in sync - on X299 just one correction needs to be made to them all, which TSCAdjustReset does at startup. After that, it goes idle - it could even be unloaded, the Github page says (though I don't believe it's possible to unload running kexts any more as of Big Sur.)

So theoretically using TSCAdjustReset should be more efficient, saving a few clock cycles and having one less active kext. But it's probably such a small difference that it's not measurable, or certainly not by standard benchmarks.

CpuTscSync has the advantage that it's actively maintained by Acidanthera, making it as 'official' as anything can be for Hacks. Meaning it will definitely be updated and kept current over time, should any future compatibility changes be needed. We don't know if that will be the case for TSCAdjustReset, though it certainly runs fine for now.

I use TSCAdjustReset on the basis that if I can have fewer unnecessary instructions being executed, why not. But I really doubt there's any significant difference either way.
Thanks
 
Joined
Jul 14, 2019
Messages
103
Motherboard
ASUS WS SAGE/10G
CPU
i9-10940X
Graphics
Radeon VII
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Quick Questions for Big Sur users...

1) Disabling WhateverGreen (using MacPro 7,1 SMBIOS) now yields to no crashes as it did in Catalina. Using multiple monitors with no problems. DRM works in Safari (ie Amazon Prime, Netflix) but as usual not under Chrome (which is normal). Multi monitor also works.

2) EnableWriteUnprotector set to No and RebuildAppleMemoryMap set to Yes restarts the system during bootup. So keeping EnableWriteUnprotector set to Yes and RebuildAppleMemoryMap set to No fixes the issue. It seems that RebuildAppleMemoryMap succeeds EnableWriteUnprotector but doesn't seem to work for me.

3) Apple Menu > Shutdown restarts my system. Is there a way to fix this without using ACPI patches?
@izo1
The question is: our mobo does or doesn't support MAT tables (complying with the latest EDKII builds).
According to reports by Dortania Installation Guide, the solution is the following:
  • If your firmware supports MATs(2018+ firmwares):
    • EnableWriteUnprotector -> False
    • RebuildAppleMemoryMap -> True
    • SyncRuntimePermissions -> True
  • For older firmwares:
    • EnableWriteUnprotector -> True
    • RebuildAppleMemoryMap -> False
    • SyncRuntimePermissions -> False
In my config.plist I adopted the 2nd solution and it works, but we can try to search the better solution with the help of someone technically more skilled

Controversial is the setting of "SetupVirtualMap". I set as "true" ...
 
Last edited:
Joined
Feb 24, 2013
Messages
2,553
Motherboard
ASUS WS X299 SAGE/10G
CPU
i9-9980XE
Graphics
Radeon VII
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
@izo1
The question is: our mobo does or doesn't support MAT tables (complying with the latest EDKII builds).
According to reports by Dortania Installation Guide, the solution is the following:
  • If your firmware supports MATs(2018+ firmwares):
    • EnableWriteUnprotector -> False
    • RebuildAppleMemoryMap -> True
    • SyncRuntimePermissions -> True
  • For older firmwares:
    • EnableWriteUnprotector -> True
    • RebuildAppleMemoryMap -> False
    • SyncRuntimePermissions -> False
In my config.plist I adopted the 2nd solution and it works, but we can try to search the better solution with the help of someone technically more skilled

Controversial is the setting of "SetupVirtualMap". I set as "true" ...

Good to know, thanks. Definitely using #2 on my end already which has no issues.

So I was able to fix the shutdown with the SSDT and the Patch from Dortania's guide. Surprisingly this issue started happening since Catalina and Mojave didn't have that issue.

Regarding the WG issue, I'm going to keep using it in Big Sur since the pink lines during the Apple logo are still there sometimes without it.
 
Top