PCI hotplug resource assignment: hpmmiosize, realloc and BAR placement

Parent: Thunderbolt eGPU on Linux for local LLM inference · Published reference · snapshot 2026-09-08 · skill devops-linux-internals/references/linux-pcie-hotplug-bar-allocation.md

Also known as: BAR assignment, BAR can't assign no space, ReBAR, [virtual], bridge window, bridge window allocation, can't assign, hpmmioprefsize, hpmmiosize, pci=realloc, pci_enable_bridge, resizable bar linux, thunderbolt host_reset tunnel rebuild

↓ Facts as markdown↓ Download this reference fileall context files

How Linux assigns bridge windows and BARs to a Thunderbolt-attached GPU — BIOS-built tunnels versus kernel re-enumeration, pci=realloc and the hpmmio sizes, why thunderbolt.host_reset makes the card r

These notes link each claim to its source. A source may be a research report hosted on this site rather than the primary document. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.

PCI hotplug resource assignment: hpmmiosize, realloc and BAR placement

Linux PCIe resource allocation for Thunderbolt/USB4-attached GPUs

Anchor case (worked example)

1. Two enumerators: firmware at POST vs. the kernel at hotplug time

2. How hotplug bridge windows are sized (`drivers/pci/setup-bus.c`)

3. Why a hot-added GPU ends up with a 256 MB BAR

4. BAR0 reading `0xffffffff` while config space works

5. Bus numbers are pre-reserved too

Kernel Parameter Reference

What the driver does at probe

What the reset does to an existing PCIe tunnel

How the kernel normally sets them

Why bridges can come up with Mem decode / Bus Master cleared

Resizable BAR

Changes in kernels 6.x-7.x that matter here

Verification checklist

Decision guide for this symptom set

Anti-patterns

Sources

Children

Frontier under this node: ACPI _CRS host-bridge windows vs pci=nocrs/use_crs, AER/DPC firmware-first vs native ownership (_OSC) on Thunderbolt root ports, Barlow Ridge JHL9580/JHL9586 host-reset timeouts, Intel IOMMU untrusted-device policy for external PCI, Movable BARs / ReBAR-aware resource fitting (Miroshnichenko 2020, Järvinen 2026), NVIDIA NVreg_EnableResizableBar and open-driver ReBAR requirements, PCI bridge D3cold/runtime-PM and pci_bridge_d3_possible() exceptions, PCIe Link Control 2 auto-speed-disable and link retrain drops on TB eGPUs, Thunderbolt software vs firmware connection manager (ICM) and NVM implications, pciehp surprise-removal and re-add semantics for USB4 tunnels

← the whole tree · 3D view· how to read this page