Enabling Hidden 4G Decoding - MrAnonymous7122/ReBarUEFI GitHub Wiki
Some motherboards do support 4G decoding even though it's not visible in the BIOS setup. Here you can find out how to enable the hidden option using UEFITool, IRFExtractor-RS and grub-mod-setup_var. This guide has been updated and now works for linux. You can also use this guide to enable other hidden BIOS settings, just search for the setting you're looking for instead.
Before enabling 4G decoding make sure that CSM is off otherwise you might face issues such as black screen or unable to enter BIOS. When CSM is off boot logo will be at full monitor resolution with no stretching/blurring.
-
Download UEFITool (NE version is fine), IRFExtractor-RS and grub-mod-setup_var.
-
Extract IRFExtractor-RS and leave the folder for now, we will come back to it later.
-
Open your BIOS in UEFITool and search for
4G Decod(NOT Decode) with Unicode enabled. If it doesn't find anything, try searching forAbove 4GorMMIO. It can also be called64-Bit Resource Allocationor similar. Some platforms require you enable Above 4GB MMIO assignment too.
- Extract body of the section that search finds. Save this .bin to our IRFExtractor-RS folder.
- Open terminal and locate the IRFExtractor-RS folder. Now run IRFExtractor-RS provided with our
4GDecodBody.binthat we extracted earlier. This should produce a .txt file.
- Open the .txt and search
4G DecodorAbove 4Gin it. The value afterVarStoreInfo (VarOffset/VarName):on the 4G Decoding entry is the offset which stores the setting. You may find multiple entries with the same VarOffset.
In my case, my VarOffset is 0x79B.
-
Copy modGRUBShell.efi from grub-mod-setup_var to
EFI/Boot/bootx64.efion a USB drive that's bootable (such as one with a Linux or Windows installer on it). Make sure that Secure Boot is disabled and then boot the drive. If you don't have a bootable drive, use the Windows 11 Media Creation Tool to create a bootable drive and then replaceEFI/Boot/bootx64.efiwith modGRUBShell.efi as needed. Note that you can re-enable Secure Boot once finished doing this guide if you need it. -
Run
setup_var (offset)replacing(offset)with what you got in step 6. If it already shows0x1despite being not enabled, that's not an issue as you can easily solve it by doingsetup_var (offset) 0x0, rebooting, doingsetup_var (offset) 0x1and again rebooting. If the variable is0x0you can simply enable it doingsetup_var (offset) 0x1and rebooting. If you get an error about GUID mismatch it is safe to ignore. If the above doesn't work you can retry usingsetup_var_3instead ofsetup_var.
4G decoding should work now. Re-enable Secure Boot if you need it.
If your BIOS doesn't have the 4G decoding option (common on Haswell) you can try asking vendor support for a BIOS with it, they will sometimes send one.
This guide was updated on 23/03/24 by MrAnonymous7122