Can Resizable BAR Support be ported to older Intel Chipsets?



Not sure where intel locked it to 10th and 11th gen, to what I understand Intel has supported extended Base Address Registers since Haswell. As long as a CPU supports above 4G BAR, which Haswell and above all do, it is solely on motherboard to facilitate the negotiation of transfer chunk size, which is what RBAR is all about. It is not about being able to access entire GPU memory (which is what AMD mislead everyone with, and above 4G decoding already did that with Vega64 and 4790k), it is about negotiating the transfer chunks above 256MB. As long as above 4G decoding is supported by all hardware components they are absolutely capable of negotiating transfer unit size, by modifying the BAR size allocated for certain operations, as both these features were part of PCIe 3.0 feature set. RBAR being optional, so motherboard manufacturers ignored it.

With PCIe Gen3.0 and above, PCIe device can have up to six 32bit BARs and two 64bit BARs as part of PCI Sig spec 3.0. This has been supported since Haswell. It is a (not so) simple matter of motherboard bios to support the negotiated size of these BARs as transfer units bigger than 256MB, that is it.

So is there possibility to force negotiation of higher bar units like 512 / 1024 / 2048 MB??
I don’t know by RU/Rw Everything or by bios mod?

If yes how?



The same way it is implemented in Z390 and Z490. In simple terms, replacing fixed 256MB transfer chunk with a resizable 32bit BAR, and that is it to what I understand. But the code for this needs to be back ported into Z97 BIOS on boards that support above 4G decoding.

But, I was thinking about force setting fixed 512/1024/2048 chunk instead of back porting resizable bar code.
Shouldnt a fixed higher chunk act somehow similar to reaizable bar option, but global?

Platforms with Above 4g decoding with fixed chunk of let say 2048 shouldnt act like almost re-bar?

Thanks



That is a good thought. Not sure about the possibility of hardcoding a larger transfer unit, plus not sure about the benefits of force setting. Because the moment we set aside negotiated chunk size for transfer, to what I understand, that memory area cannot be used for other purposes by GPU, so you are sacrificing it all together. This is why negotiation for optimization is so important.

Furthermore, without RBAR a GPU is falls back to transfer chunks of 256MB, so you would have to make hardcoded settings all across the transfer chain, not just the mobo. At that point, it would be easy to backport RBAR to Z97, than hardcode 1024 to every device.

Asus have finally decided to take action, here are some Z370 Beta BIOS with Resizable BAR support;

Asus Z370 Rog Maximus X Apex BIOS Version 2603 Beta

Asus Z370 Rog Maximus X Hero BIOS Version 2603 Beta

Asus Z370 Rog Maximus X Hero (Wi-Fi AC) BIOS Version 2603 Beta

Asus Z370 Rog Maximus X Formula BIOS Version 2603 Beta

Asus Z370 Rog Maximus X Code BIOS Version 2603 Beta

[Edit] Asus have really stepped up , all Z370 boards appear to now have a Beta BIOS with Resizable BAR support;

Asus Rog Strix Z370-E Gaming BIOS Version 3003 Beta

Asus Rog Strix Z370-F Gaming BIOS Version 3003 Beta

Asus Rog Strix Z370-G Gaming BIOS Version 3003 Beta

Asus Rog Strix Z370-G Gaming (Wi-Fi AC) BIOS Version 3003 Beta

Asus Rog Strix Z370-H Gaming BIOS Version 2603 Beta

Asus Rog Strix Z370-I Gaming BIOS Version 3003 Beta

Asus Prime Z370-A BIOS Version 3003 Beta

Asus Prime Z370-P BIOS Version 3003 Beta

Asus Prime Z370-P II BIOS Version 3001 Beta

Asus TUF Z370-PLUS GAMING BIOS 3002 BETA
"Add Resizable BAR support for Nvidia RTX 30 series cards to potentially deliver more performance to gamers in select titles.

Got R-BAR working on a Gigabyte Z390-M 9700K + Sapphire 5700 XT setup. Confirmed by GPU-Z!

Win for team AMD!

More good news, MSI has rolled out Beta BIOS for more of their Z370 motherboards with resizable BAR;

MSI Z370M Mortar Bios Version 7B54v1A1 Beta

MSI Z370M Gaming Pro AC Bios Version 7B44v1B2 Beta

MSI Z370I Gaming Pro Carbon AC Bios Version 7B43v1B1 Beta

MSI Z370-A Pro Bios Version 7B48v2D2 Beta

MSI Z370 Tomahawk Bios Version 7B47v1B2 Beta

MSI Z370 SLI Plus Bios Version 7B46vAB2 Beta

MSI Z370 Krait Gaming Bios Version 7B46v1C2 Beta

MSI Z370 Godlike Gaming Bios Version 7A98vAC2 Beta

MSI Z370 Gaming Pro Carbon Bios Version 7B45vAC2 Beta

MSI Z370 Gaming Pro Carbon AC Bios Version 7B45vAC2 Beta

MSI Z370 Gaming Plus Bios Version 7B61v1B1 Beta

MSI Z370 Gaming M5 Bios Version 7B58v1B2 Beta

From the benchmarks I have seen so far it looks like you need a powerful CPU (i.e. +6 cores) and GPU to realise the most gains from Re-BAR so even if Z170/Z270 had support it may not give any gains and could even hurt performance.



That is pretty good. Didn’t know 5700xt supported it. How significant is the improvement on it?

Got Re-Bar working on my GB X299 UD4 Pro (Bios F8a) with an RTX3090.
AC Valhalla went from 76 to 82 average FPS in WQHD.




You can run a 9900K on a Z170 with a modded BIOS (Coffee Time).

@mooms Yep, you sure can → 9900K on Z170

I’m running a QQLS (9900K equivalent) on my Z170 Pro Gaming, with a RTX 3070, so resizable Bar would be great

Hello guys, when I was experimenting with a CoffeeMod BIOS on my Asrock Z170G K4, I erroneously flashed a BIOS from the similar Asrock board (B360 or something like this), strangely the PC booted and I noticed a few interesting things:
- Native Z170G K4 BIOS is laggy and has a tendency to hang from time to time in random places, being it the HW monitoring or any other tab, not even related to overclocking - while B360 one works smoothly and much faster than the original;
- There was a setting non-existing in native BIOS - not yet a ReBAR but some prerequisite to it, unfortunately don’t recall the name. Given the fact it works with my mobo, it should be somehow possible to extract and embed it into the older Z170 generation of motherboards. I see that most manufacturers started to add such settings to their Z370 series (Asus, Gigabyte, some other) so apparently when Asrock manages to deploy their Z370 BIOSes, it would worth giving it a try, especially if one’s mobo has dual BIOS so you can safely play with it not ruining the functioning system.

Interesting.

Was the BIOS fully functional?
Did the card boot Windows?

Now I’m wondering if I can boot my Z170 with a Z370 BIOS.

Well, BIOS itself ran awesome, all settings worked and were saved. Windows didn’t boot due to the fact NVMe controllers of my board and B360 are different hence there’s simply no module to support mine. I didn’t try to set up a system to SATA SSD (was quite limited on time) but when exiting BIOS it gave a message that “No bootable disk is found”, so I assume if I had a spare SSD to play with, it would boot just fine.
N.B. Please make backups before you try something like this as there’s absolutely no warranty it would even work, I was just lucky enough that it went up afterwards :slight_smile:

I created a DXE driver that gets Resizable BAR working on older chipsets (Ivy Bridge and newer). However these motherboards often have a BIOS which artificially limits the MMIOH size (PCI resources). This makes it not possible to get fully working Resizable BAR without further modification to fix that.

My Gigabyte B75M-D3H limits the MMIOH size to 16GB when in reality Ivy Bridge CPUs are capable of 64GB (Haswell and newer 512GB) - TOUUD which would be around 55GB of MMIOH size with 8GB RAM. In fact you can edit DSDT QWordMemory to increase its size and see Linux use the additional MMIOH space.

Here is the thread which has link to the open source DXE driver for anyone interested. I was only able to test 512mb BAR due to MMIOH size limitations but larger sizes should work.

UPDATE: There are now several patches to remove artificial limitations like this

[Experimental] Resizable BAR DXE driver

3 Likes

I have an Asus Z170 Deluxe Mobo. It is very close to the x99 and the x99 guide is out. Does anyone have any idea how this would work on a Z170? I have an Arc card that I want to try out and I do not have rebar on my test rig and i’m not taking apart my battlestation to test a GPU that can’t repeat the performance of my 3070. I have an Arc A750. I already asked in the Insider’s Discord and they have ZERO plans of making these cards work without ReBar as they were not designed to do so from jump. It is a completely forward looking GPU. Help.

You could try this, but you need to enable Above 4G Decoding. I dont enable it since it might defaults at CSM/Legacy, so it is better to flash this bios, then turn Off CSM, make everything in the bios UEFI (pure UEFI), and do the steps below to enable Above 4G. You need to use Bios Flashback. DWYOR
Z170-DELUXE-ASUS-3801.rar (7.1 MB)

Your Above 4G Decoding offset is at 0x7B9:

How to Enable:

GRUBShell.efi: Releases · datasone/grub-mod-setup_var · GitHub

RebarState.exe: https://github.com/xCuri0/ReBarUEFI/releases/download/0.2/ReBarState.exe (you would need to make sure that Above 4G Decoding is ENABLED before using this, if its enabled on gpuz, and you could see the bar size, you could proceed open this app and set it at 32, and reboot)

Source: Enabling hidden 4G decoding · xCuri0/ReBarUEFI Wiki · GitHub

If you do this, i’ll be waiting for your results.

1 Like