LmCast :: Stay tuned in

ReBarUEFI: Resizable BAR for almost any UEFI system

Recorded: Sept. 22, 2026, 11:10 p.m.

Original Summarized

GitHub - xCuri0/ReBarUEFI: Resizable BAR for (almost) any UEFI system · GitHub

Skip to content

Navigation MenuSign inAppearance settingsPlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub Copilot appDirect agents from issue to mergeMCP RegistryIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesCode QualityEnforce quality at mergeAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricingSearch/Sign inSign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

xCuri0

/

ReBarUEFI

Public

Notifications
You must be signed in to change notification settings

Fork
113

Star
2.4k

Code

Issues
57

Pull requests
2

Discussions

Actions

Projects

Wiki

Security and quality
0

Insights

Additional navigation options

Code

Issues

Pull requests

Discussions

Actions

Projects

Wiki

Security and quality

Insights

masterBranchesTagsGo to fileCodeOpen more actions menuLatest commit History113 Commits113 CommitsFolders and filesNameNameLast commit messageLast commit date.github.github  ReBarDxeReBarDxe  ReBarStateReBarState  UEFIPatchUEFIPatch  toolstools  .gitignore.gitignore  LICENSELICENSE  README.mdREADME.md  rebar.pngrebar.png  View all filesRepository files navigationREADMEMIT licenseMore itemsReBarUEFI

A UEFI DXE driver to enable Resizable BAR on systems which don't support it officially. This provides performance benefits and is even required for Intel Arc GPUs to function optimally.

If using an NVIDIA Turing GPU (20 or 16 series) see NvStrapsReBar for enabling Resizable BAR on it.
Requirements

(optional) 4G Decoding enabled. See wiki page Enabling hidden 4G decoding if you can't find an option for it. Without 4G Decoding you will be limited to 1GB BAR and in some cases 512MB you can try to increase this upto 2GB by reducing TOLUD
(optional) BIOS support for Large BARs. Patches exist to fix most issues relating to this

Usage
Follow the wiki guide Adding FFS module and continue through the steps. It covers adding the module and the additional modifications needed if required.
Once running the modified firmware make sure that 4G decoding is enabled and CSM is off.
Next run ReBarState which can be found in Releases (if you're on Linux build with CMake) and set the Resizable BAR size. 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
If Resizable BAR works for you reply to List of working motherboards so I can add it to the list. Most firmware will accept unsigned/patched modules with Secure Boot on so you won't have any problems running certain games.
If you have any issues after enabling Resizable BAR see Common Issues (and fixes)
How it works
The module is added to the UEFI firmware's DXE volume so it gets executed on every boot. The ReBarDxe module replaces the function PreprocessController of PciHostBridgeResourceAllocationProtocol with a function that checks for Resizable BAR capability and then sets it to the size from the ReBarState NVRAM variable after running the original function.
The new PreprocessController function later gets called during PCI enumeration by the PciBus module which will detect the new BAR size and allocate it accordingly.
AliExpress X99 Tutorial by Miyconst

Instructions for applying UEFIPatch not included as it isn't required for these X99 motherboards. You can follow them below.
UEFI Patching
Most UEFI firmwares have problems handling 64-bit BARs so several patches were created to fix these issues. You can use UEFIPatch to apply these patches located in the UEFIPatch folder. See wiki page Using UEFIPatch for more information on using UEFIPatch. Make sure to check that pad files aren't changed and if they are use the workaround
Working patches

<4GB BAR size limit removal
<16GB BAR size limit removal
<64GB BAR size limit removal
Prevent 64-bit BARs from being downgraded to 32-bit
Increase MMIO space from 16-32GB to full usage of 512GB/39-bit range (Skylake/Kaby Lake/Coffee Lake)
Increase MMIO space from 8-16GB to full usage of 512GB/39-bit range (Haswell/Broadwell). The issue of older patches being limited to 64GB has been fixed.
Increase MMIO space from 16GB to full usage of 64GB/36-bit range (Sandy/Ivy Bridge). Requires DSDT modification on certain motherboards. See wiki page DSDT Patching for more information.
Remove NVRAM whitelist to solve ReBarState GetLastError: 5
Fix USB 3 ports not working in BIOS with 4G Decoding enabled (Ivy Bridge/Haswell/Broadwell)
X79 Above 4G Decoding fix

Build
Use the provided buildffs.py script after cloning inside an edk2 tree to build the DXE driver. ReBarState can be built on Windows or Linux using CMake. See wiki page Building for more information.
FAQ
Will it work on a PCIe Gen2 system ?
Previously it was thought that it won't work on PCIe Gen2 systems but one user had it work with an i5 2500k.
Can I use Resizable BAR on my system without modifying BIOS ?
You can use Linux with 4G Decoding on, recent versions will automatically resize and allocate GPU BARs. If your BIOS doesn't have the 4G decoding option (make sure to check hidden) or DSDT is faulty you can then follow the Arch wiki guide for DSDT modification using modifications from DSDT Patching and boot with pci=realloc in your kernel command line. Currently there is no known method to get it on Windows without BIOS modification
I set an unsupported BAR size and my system won't boot
Clear CMOS and Resizable BAR should be disabled. In some cases it may be necessary to remove the CMOS battery for Resizable BAR to disable.
Will less than optimal BAR sizes still give a performance increase ?
On my system with an i5 3470 and Sapphire Nitro+ RX 580 8GB with Resizable BAR enabled in driver I get an upto 12% FPS increase with 2GB BAR size.
Credit

@dsanke, @cursemex, @dripsnek, @val3nt33n, @Mak3rde and @romulus2k4 for testing/helping develop patches

The Linux kernel especially the amdgpu driver

EDK2 for the base that all OEM UEFI follows

Ghidra which was used to patch UEFI modules to workaround artificial limitations

@vit9696 for the NVRAM whitelist patches

@ZOXZX for helping with the X79 Above 4G patches

@NikolajSchlej for developing UEFITool/UEFIPatch

QEMU/OVMF made testing hooking way easier although it didn't have any resizable BAR devices so the only way I could test it was on my actual PC.

AboutResizable BAR for (almost) any UEFI systemTopicsdxe-driveredk2efiuefiResourcesReadmeMIT licenseActivityStars2.4k starsWatchers34 watchingForks113 forksReport repositoryReleasesPackagesUsed byContributorsLanguages

Footer

© 2026 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Community

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

The project details a UEFI DXE driver designed to enable Resizable BAR functionality on systems that do not officially support it, aiming to provide performance improvements and optimal operation for Intel Arc GPUs. To achieve this, the system relies on several prerequisites, including optional 4G Decoding and BIOS support for Large BARs, though patches exist to address many associated issues.

The implementation involves integrating a module into the UEFI firmware's DXE volume. Specifically, the ReBarDxe module replaces the PreprocessController function within PciHostBridgeResourceAllocationProtocol. This modification allows the driver to inspect the system's Resizable BAR capability and subsequently set the BAR size based on a value retrieved from the ReBarState NVRAM variable after executing the original function. This newly modified PreprocessController function is then called by the PciBus module during PCI enumeration, enabling it to detect the modified BAR size and allocate the necessary resources accordingly.

The enabling of Resizable BAR often requires firmware modifications, particularly patches, to resolve limitations inherent in many UEFI firmwares regarding 64-bit BARs and Memory Mapped Input/Output (MMIO) space allocation across various CPU architectures. Several patches have been created to address these limitations for different generations, including removals of BAR size limits for 4GB, 16GB, and 64GB, as well as fixes for preventing 64-bit BARs from being downgraded to 32-bit. Furthermore, patches address MMIO space increases for specific ranges, such as moving from 8-16GB to full utilization of the 512GB/39-bit range for Haswell/Broadwell systems, and specific DSDT modifications required for Sandy/Ivy Bridge systems. Other necessary fixes include resolving issues with USB 3 ports when 4G Decoding is enabled and ensuring the X79 Above 4G Decoding fix.

The process of building this driver necessitates specific tools and workflows. The build process involves utilizing a script, such as ffs.py, within an edk2 tree to construct the DXE driver, and the ReBarState variable can be built using CMake, applicable on both Windows and Linux platforms. For comprehensive UEFI patching, tools like UEFIPatch are utilized to apply various fixes, often requiring careful attention to padding files and potential workarounds. The project leverages tools such as EDK2 for the base, Ghidra for patching UEFI modules, and QEMU/OVMF for testing, which facilitates testing the driver in controlled environments.

In terms of usage, users following the implementation must ensure that 4G decoding is enabled and that CSM is disabled when running the modified firmware. After running ReBarState, the user can set the desired Resizable BAR size; generally, a size of 32 allows for unlimited BAR allocation, although smaller sizes might be necessary depending on the specific hardware configuration. The project emphasizes that the Linux kernel, particularly the amdgpu driver, is a key component, and alternative methods exist to manage BAR allocation, such as using Linux 4G Decoding and DSDT modification, particularly when BIOS modification is not feasible. Troubleshooting involves clearing the CMOS, and performance is demonstrated through usage metrics, with some users reporting FPS increases, such as up to 12 percent, when utilizing a 2GB BAR size on specific hardware configurations.