Contribute
Register

New UEFIPatch patches! Unlock 0xE2, 0x1AA (boot Catalina without any kernel patches, native power mgmt) on C422, C620, and some X299 motherboards!

Status
Not open for further replies.
Joined
Jul 23, 2011
Messages
54
Motherboard
Supermicro X11DAi-N
CPU
2x 8260M
Graphics
Radeon VII
Mac
  1. Mac Pro
Classic Mac
  1. Classic
  2. Power Mac
  3. PowerBook
  4. Quadra
  5. SE
Mobile Phone
  1. iOS
Hi, I have added 4 new patches to UEFIPatch which add support for several C422 and C621/C622 based motherboards running a Skylake or Cascade Lake HEDT+ CPU(s). These motherboards are either Socket LGA2066 (Xeon W2xxx and Core i9 CPUs) in the case of the C422, or LGA3647 (Xeon 3xxxW/Xeon Scalable 1st and 2nd gen) with the C620 series.

I do not know if these patches will unlock all of the motherboards based on these chipsets, but they certainly work on several different BIOS images that I tried, specifically ASUS C422 motherboards. They also work on Supermicro motherboards with either chipset. And, to my surprise, they even worked on an X299 based motherboard from Asus. I would be surprised if they work on every motherboard with these chipsets, but they are generalized enough that they could potentially work a fairly long list of motherboards.

These patches patch the BIOS so it does not lock the 0xE2 MSR as well as the 0x1AA MSR. If your motherboard is supported, at a minimum you should see UEFIPatch say it applied a patch that 'replaced 24 bytes'. This is the E2 unlock patch. You should also see a patch that 'replaced 28 bytes', which is the 1AA unlock patch. However, not every motherboard actually locks 1AA, so if this patch is missing, it doesn't necessarily mean that your motherboard is unsupported, but simply that it doesn't need the second patch. Of course, if your 1AA register is locked despite this (requiring kernel patches to boot as a result), then it unfortunately means my 1AA patch will not work for your motherboard.

Anyway, I've attached the updated UEFIPatch patches.txt file, to use it you simply replace the patches.txt file in the same directory as UEFIPatch with the file attached to this post. Then from the terminal, run:
./UEFIPatch <ROM/CAP/Bios Image file for your motherboard> -o <patched bios file name, can be whatever you want>
and if all goes well, it should find patches that work for your BIOS. Sometimes, there will be other parts of the BIOS that older UEFIPatch patches will patch, which is fine. So you might see 3 patches applied in some cases. Don't worry if you see this message: "parseFile: non-empty pad-file contents will be destroyed after volume modifications". This is normal and not an issue here, as none of these patches change the total size of the volume/image being patched. If you see "parseImageFile: Aptio capsule signature may become invalid after image modifications", then you won't be able to flash the modified BIOS if your motherboard verifies the signature of the file before flashing it. Fortunately, all that will happen if you try to flash the modded BIOS is that it will refuse to flash it.

Depending on your motherboard, there may be ways around the signature verification (BIOS unlock), or to use an external hardware programmer, but that is well beyond the scope of this post. Do your research though, there may be solutions to such problems!
:)


I've created a pull request to add these patches officially to UEFIPatch, but until or if they're accepted, you'll have to use the attached patch.txt file, the one included with UEFIPatch does not include my new patches.


Please, let me know if these work or don't work for your motherboard. It would be nice to start a list of supported BIOSes/motherboards, and if yours isn't supported, let me know and I'll see if there is a good way to add support for it. My own free time permitting, of course.

This is by no means an exhaustive list, but I believe it will work for the following motherboards (at least):

  • Asus WS C422 PRO/SE
  • Asus PRIME X299-A
  • Asus WS C422 SAGE/10G
  • Supermicro X11 Series LGA2011 & LGA3647 single and multisocket motherboards
  • Maybe your motherboard?

Enjoy!
 

Attachments

  • patches.txt
    3.3 KB · Views: 673
It's not work well for my Asrock EP2C621D12WS. Can you help me.
 

Attachments

  • 2P621WS2.10.zip
    8.3 MB · Views: 195
Asrockrack C621D8a ,after patch,can not be boot,o_O
 
Any chance to add C621 to the patch list? Seems like the C620 and C621 are a bit different.
 
Hello,

I tried your patches on the latest BIOS F8 for a Gigabyte C621-SU8.

Code:
$ ./UEFIPatch SU8F8.bin -o SU8F8p.bin
parseFile: non-empty pad-file contents will be destroyed after volume modifications
patch: replaced 14 bytes at offset 739h 0F3248C1E220480BC2BA00800000 -> 0F3248C1E220480BC2BA00000000
patch: replaced 19 bytes at offset 2FA1h B9AA0100000F3248C1E220480BC2BA00200000 -> B9AA0100000F3248C1E220480BC2BA00000000
Image patched

Both of your E2 and 1AA patches appear to have been applied, but in shorter forms than the expected 24 and 28 bytes.
Should I worry, or just proceed to flash the patched BIOS and try to boot MacOS on the board?
 
Last edited:
After applying the patched BIOS, MSR 0xE2 is indeed unlocked. OpenCore 0.6.5 proceeds further with the boot, even with both xcpm quirks disabled, so I assume that 0x1AA is also unlocked.
It seems that
  • Gigabyte C621-SU8
may be added to the list of motherboards for which the patches work.

I'm currently stuck after loading ACPI tables. It seems that wrapping CPU devices into old-style CPU objects with a SSDT may be the solution.
 
@etorix I just got the same Board, I am currently running Linux on it, but plan to replace my x99 System with it.
Didi you had any luck with the SSDT so far? I would be really interested in a solution.

Did not use the patches.txt so far. Will try it this week :)
 

Attachments

  • IMG_0577.jpeg
    IMG_0577.jpeg
    211.2 KB · Views: 153
@phl My attempts are documented on another forum, where @metacollin discussed his findings on C621 with other hackintoshers on C422 HEDT platforms. At this point I can boot pre-existing Mojave and Catalina installations, but not update them or run an installer.

After loading ACPI tables OS X fails to find a "processor" object and stalls. No CPU, no boot. Metacollin explained that this requires wrapping ACPI 6.3 CPU "objects" into old-style "processors". Here is the code of my wrapping SSDT, which would warrant a review by an ACPI expert but works for me. Then, you'd need boot-arg "ncpi=0x2000" to complete PCI initialisation, and a suitable injector to get USB 3.0 ports from the chipset—best use a USB 2.0 port or one of the red ports from ASM2142.

What BIOS version are you on? If it's older than F8, I'd be interested to see the (whole) ACPI folder dumped by Misc>Debug>SysReport using the DEBUG version of OpenCore and compare with mine. Running UEFIPatch on the BIOS file is harmless anyway, but a patched BIOS will only allow you to omit both xcpm quirks.
 

Attachments

  • SSDT-CPU-WRAP-C621SU8.dsl.zip
    11.6 KB · Views: 131
  • XHCI-unsupported.kext.zip
    2.7 KB · Views: 120
Status
Not open for further replies.
Back
Top