Skip to content

Flashing modified UEFI

Curi0 edited this page Nov 22, 2023 · 20 revisions

Flashing modified UEFI

Typically you should be able to flash the modified BIOS file as usual. However some motherboards do have workarounds that are needed.

It's recommended that you have a hardware BIOS flasher such as CH341A in-case the modified BIOS doesn't work especially if your motherboard doesn't support dual BIOS. It's also recommended that you take a backup of your BIOS before flashing so that you can restore it with hardware flasher and keep MAC address, serial number, etc if anything goes wrong

If you are using Flashrom or hardware flasher make sure to start with dumped BIOS image as base instead of the version on manufacturer website otherwise you may lose MAC address, serial number, etc

Gigabyte

Use Qflash to flash modified BIOS. If Qflash gives an error then see Flashing Gigabyte while avoiding “Invalid BIOS image”

ASUS

Use BIOS Flashback to flash the modified BIOS

ASRock

Use ASRock Instant Flash or Flashrom

MSI

Use M-Flash, BIOS Flashback or Flashrom. M-Flash may cause issues on Sandy/Ivy Bridge Intel motherboards

Can't flash modified BIOS on Ryzen system

Downgrade BIOS to a version with AGESA before 1.2.0.0 since it and newer block modified BIOS flashing for security reasons (AmdSpiRomProtectDxe module). You can then flash a modified BIOS with latest AGESA version without any issues.

Most stuff on this page was taken from [Guide] How to flash a modded AMI UEFI BIOS which might contain additional information.

Thanks @Koekieezz for helping with this guide.

After flashing modified BIOS

  1. Enable 4G decoding and disable CSM. If you cannot find the option see Enabling hidden 4G decoding.

    If there are any issues after doing this see Common Issues (and fixes)

  2. Run ReBarState which can be found in Releases and set the Resizable BAR size. On Linux you will need to build ReBarState from source using CMake, see Building.

    In most cases you should be able to use 32 (unlimited) without issues but you might need to use a smaller BAR size if 32 doesn't work. The maximum allowed BAR size is equal to 2^n so 13 = 8GB, 14 = 16GB, etc. image

⚠ Some LGA1151 (Skylake/Kaby Lake/Coffee Lake) and LGA2011 (X79) motherboards do not boot with 2GB BAR. 4GB or larger sizes should work with no issues

  1. After rebooting you might get a message saying Your hardware settings have changed if you're using Windows. You will need to reboot again like it says for Resizable BAR to activate.

Verifying Resizable BAR is enabled

You can verify by checking your GPU control panel or GPU-Z. Older AMD GPUs (anything before RDNA) need a registry edit to enable Resizable BAR which you can follow How do I enable Resizable BAR on an unsupported AMD GPU ? image

You can also check GPU-Z Vulkan Memory Device-Local Host-Visible.

image

Or just run a game/benchmark to see the real world improvement you get. NVIDIA GPUs only enable resizable BAR for games in their whitelist by default, but you can force enable it through use of Nvidia Inspector.

See Common Issues (and fixes) if it still doesn't work. If your system won't boot after enabling Resizable BAR you can clear CMOS to disable it and then try a smaller size such as 14 (16GB) or 13 (8GB).

Many of users of this module are using Intel Arc GPUs so I've also added that you can fix the high idle consumption by using the same method as Enabling hidden 4G decoding to set the ASPM settings to what Intel recommends if your BIOS doesn't show those options.