Jump to content

UEFIPatch: BIOS patches for C422, C621/C622, X299 based motherboards - vanilla (unpatched) kernel & native power management


5 posts in this topic

Recommended Posts

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?





Edited by metacollin
  • Like 6
  • Thanks 1
Link to comment
Share on other sites

  • 9 months later...
  • 1 month later...

Confirmed to work on Gigabyte C621-SU8, although the patches are shorter than expected (14 and 19 bytes):

$ ./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


Edited by etorix
Link to comment
Share on other sites


  • Create New...