Above 4G Decoding is a low-level PCIe resource allocation option in the motherboard BIOS. It often appears when troubleshooting NAS boxes, mini PCs, workstations, multi-GPU systems, routers, HBA / SATA expansion cards, and local AI machines.
In simple terms, it allows a 64-bit system to assign PCIe devices’ MMIO address space above the 4GB physical address range.
That sounds low-level, but the problem is very real: when a motherboard has a GPU, NVMe drive, NIC, SATA expansion card, capture card, HBA, and other PCIe devices, forcing all of them to compete for address space below 4GB can cause resource allocation failures, missing devices, or even boot freezes.
Why is there a 4GB boundary?
The 4GB boundary is a historical legacy of the 32-bit era.
A 32-bit address space can address at most:
|
|
Modern computers have 64-bit CPUs and operating systems, and memory sizes of 16GB, 32GB, 64GB, or more are common. But during POST and PCIe device initialization, motherboards still need to account for old compatibility assumptions. Many PCIe device resource mappings are initially arranged below the 4GB address boundary.
The problem is that the space below 4GB is not only for RAM. The system must reserve part of it for hardware devices.
That is where MMIO comes in.
What is MMIO?
MMIO means Memory-Mapped I/O.
The CPU cannot directly touch the internal registers or memory windows of PCIe devices as if they were normal RAM. Instead, part of the device’s registers, buffers, or VRAM window is mapped into the system address space. When the CPU reads or writes that address range, it is effectively communicating with the PCIe device.
Roughly:
- A device needs an address range.
- The motherboard assigns a physical system address range to it.
- When the CPU accesses that address range, it actually accesses the PCIe device.
This mapped region is not ordinary RAM. It is an address window occupied by hardware.
In old default configurations, many devices’ MMIO regions are constrained below 4GB, often around the 3GB to 4GB area. This usually works with few devices, but becomes crowded as more devices are installed.
What is BAR?
Every PCIe device uses BAR to tell the motherboard how much address space it needs.
BAR means Base Address Register. Its job is to say:
|
|
GPUs, NVMe drives, SATA controllers, NICs, HBAs, and USB expansion cards may all need BAR space. More devices means more address windows. GPUs may need especially large mappings.
If the available MMIO space below 4GB is insufficient, the motherboard may fail to allocate resources to later devices.
What happens if Above 4G Decoding is disabled?
When Above 4G Decoding is disabled, the motherboard tends to pack PCIe resources below the 4GB boundary. With only a few devices, you may not notice anything. With many devices, problems can appear.
Common setups include:
- A discrete GPU.
- One or more NVMe SSDs.
- A JMB585 / ASM1166 SATA expansion card.
- A 2.5G / 10G NIC.
- A Wi-Fi / Bluetooth module.
- Extra HBAs, capture cards, or USB expansion cards.
All of these devices request BAR / MMIO address space from the motherboard. If the below-4GB region is full, the motherboard may show:
- A PCIe card is not recognized.
- The device does not appear in BIOS.
- Linux / Windows reports missing devices or resource errors.
- Boot freezes during POST.
- Black screen or blinking cursor.
- Each card works alone, but the system fails when multiple cards are installed together.
In JMB585 SATA expansion card scenarios, users often see the motherboard hang before BIOS, or the expansion card disappear after adding NVMe or NIC devices. Besides Option ROM, CSM, and PCIe Gen speed, PCIe address-space allocation is also worth checking.
What changes when Above 4G Decoding is enabled?
Enable:
|
|
This tells the motherboard that PCIe devices supporting 64-bit addressing may have their MMIO resources allocated above 4GB.
Then PCIe devices no longer need to fight for the small below-4GB region. The motherboard can place some BAR / MMIO mappings at higher addresses, reducing resource conflicts.
For modern 64-bit systems, this is usually a reasonable setting, especially on:
- Multi-disk NAS machines.
- Multi-NIC routers.
- Mini PCs with SATA / HBA expansion cards.
- Multi-GPU workstations.
- AI inference or training machines.
- Desktop systems with GPU, NVMe, capture cards, and expansion cards.
Its goal is not to improve normal application performance. Its goal is to make hardware resource allocation less cramped.
Relationship with JMB585 / SATA expansion cards
A JMB585-style SATA expansion card may not need huge MMIO space by itself. The problem is often not how much this card needs alone, but how all PCIe devices in the system compete for address space together.
For example, a mini PC may include:
- An NVMe system disk.
- An onboard NIC.
- A Wi-Fi module.
- A JMB585 five-port SATA expansion card.
- Possibly a discrete GPU or other controller.
If BIOS resource allocation is conservative, JMB585 may be one of the last devices initialized. Earlier devices have already consumed much of the below-4GB space. When JMB585 asks for BAR space, the motherboard may fail or enter an abnormal state.
Enabling Above 4G Decoding lets the motherboard place some device resources above 4GB, reducing the chance of conflict.
It cannot repair a bad card or solve every PCIe link-training problem, but it is well worth trying when issues appear only after several devices are installed.
Relationship with Resizable BAR / SAM
Many users first notice Above 4G Decoding when configuring GPU performance features, such as:
Resizable BARRe-Size BARReBARSmart Access MemorySAM
They are related, but not the same thing.
Above 4G Decoding is the foundation. It allows PCIe device MMIO resources to be assigned above 4GB.
Resizable BAR is a further capability. Traditionally, even if the CPU can access GPU memory, it often does so through a relatively small window, such as a 256MB mapping. With ReBAR, the CPU can map a larger portion of the GPU’s VRAM at once, theoretically reducing access switching overhead.
Many motherboards require Above 4G Decoding to be enabled before Resizable BAR can be enabled. So:
Above 4G Decoding: allows device addresses above 4GB.Resizable BAR/SAM: allows the GPU BAR window to become larger.
For NAS and SATA expansion cards, the important part is usually the PCIe address space provided by the first option, not ReBAR itself.
Side effects
On modern 64-bit Windows, Linux, Ubuntu, Debian, TrueNAS, Proxmox, and similar systems, enabling Above 4G Decoding usually has no obvious downside.
Still, keep these points in mind:
- Very old 32-bit operating systems may not be suitable.
- Some very old BIOS implementations or legacy PCIe devices may be incompatible.
- If the system cannot boot after changing BIOS settings, clear CMOS or restore defaults.
- If you enable ReBAR / SAM as well, verify that the GPU, motherboard, OS, and driver support it.
On modern hardware and 64-bit systems, it is usually a healthy low-level setting to keep enabled, especially when multiple PCIe devices are installed.
When should you enable it?
Consider enabling Above 4G Decoding when:
- You use a 64-bit operating system.
- Multiple PCIe devices are installed.
- You have a discrete GPU, especially with 4GB or more VRAM.
- You use JMB585, ASM1166, HBA, RAID, capture, or other expansion cards.
- You are building a multi-disk NAS or router.
- You use multi-GPU, AI accelerator, or local LLM hardware.
- Installing a PCIe card causes boot freeze, black screen, or blinking cursor.
- Each device works alone, but combinations fail.
If you are troubleshooting a JMB585 SATA expansion card freezing during POST, check it together with:
- Disable
CSM. - Disable unnecessary
Storage OpROM. - Change PCIe speed from
AutoorGen3toGen2. - Enable
Above 4G Decoding. - Try another PCIe slot.
What is it called in BIOS?
Different motherboard vendors use slightly different names. Common names include:
|
|
Common menu locations include:
AdvancedPCIe SettingsPCI Subsystem SettingsChipsetNorth BridgeIO PortsBoot
Some motherboards place it near Resizable BAR, while others hide it under advanced PCIe or chipset settings.
Summary
The core purpose of Above 4G Decoding is to let the motherboard allocate PCIe device MMIO / BAR address space above 4GB. It does not fix drivers; it addresses BIOS / PCIe resource allocation.
On a simple PC with few devices, it may feel invisible. On a multi-disk NAS, multi-NIC router, mini PC with JMB585 / ASM1166 SATA expansion card, multi-GPU workstation, or local AI box, it matters.
If installing a PCIe expansion card causes BIOS freezes, black screens, blinking cursor, missing devices, or failure only when multiple devices are installed together, Above 4G Decoding = Enabled is a BIOS option worth checking early. It is not a cure-all, but it helps modern 64-bit hardware escape the old below-4GB address-space limitation and reduces PCIe resource conflicts.