[Request] Unlock Above 4G decoding for Asus Sabertooth Z77

I need help getting Above 4G Decoding into my BIOS. I don’t need resizable BAR, just above 4G decoding. I tried following this post in general because it’s another Asus Z77 board, but I quickly realized I don’t know what I’m doing.

As a new user, I can’t upload files, so here is the link to the BIOS download.

edit: just to be clear, the CPU is a 3770k, I’m looking to use a tesla K80, and there is 4x8GB RAM.

@CannedNoodles K80 has 32GB BAR which is incompatible with the PCI allocator found on Sandy/Ivy Bridge. Does your PC boot with the K80 and 4G decoding off ? It may be possible to make it work then on Linux

Thanks for the reply. It does boot to windows with the K80 installed, but I get a BSOD whenever I try to use the card. The error code is always PFN_LIST_CORRUPT or another PFN related one.

@CannedNoodles Send screenshot of this for your K80
image

Btw I don’t think it can be made to work on Windows (unless UEFI PCI allocation is rewritten), but Linux should be possible with 24GB RAM (28GB or 30GB may work too)

Sorry for the late response.
This is what it shows for both GPUs. On the “General” tab it says the same thing along with Code 12.

@CannedNoodles So the K80 shows up as 2 GPUs ? I assume they have 16GB BAR each.

It’s impossible to make 32GB RAM and 32GB BAR work on Ivy Bridge due to 36-bit addressing limitations. You need to use 30GB RAM or less

Without custom BIOS modification mentioned here Code 12 in Windows with Tesla M40 (24gb) and Asus P8Z77-V Deluxe with Enable 4G and ReBarUEFI activated · Issue #45 · xCuri0/ReBarUEFI · GitHub it’s probably impossible to get it working on Windows unless you can figure out how to make it allocate PCI resources.

As an alternative you can follow the DSDT modification page and additionally do the following

Change the line If (((MM64 == Zero) || (OSYS <= 0x07D3))) to If (((OSYS <= 0x07D3))). This will make the 64-bit MMIO space usable even without 4G decoding.

DO NOT ENABLE 4G DECODING AS IT WILL MAKE THERE BE NO SPACE FOR THE K80. Linux should assign the K80 PCI resources in that 64-bit MMIO space. Windows may also but I’m not sure about it, could try disabling and enabling the device once you’ve got the DSDT modification working.

It’s also possible to do OS level DSDT replacement but I don’t recommend it.

If you really do need Windows and can’t get it to do PCI allocation no matters what there’s the last option (besides the custom BIOS modification previously mentioned) which is using a UEFI application to allocate the K80 BAR to 32GB (0x800000000) and booting Windows.

I’ll be out of town for the next few days and I won’t have access to the computer. Thanks!