Circumventing Apple T2 Thunderbolt MMIO Restrictions: Enabling Large-BAR NVIDIA GPUs on Intel Macs via Resizable BAR Windowing
Abstract
Intel-based Apple computers equipped with the Apple T2 security chip have been unable to operate modern discrete NVIDIA GPUs as external GPUs (eGPUs) under Linux, a long-standing limitation unresolved upstream (t2linux issue #189), affecting machines where kernel-level reallocation (pci=realloc) alone is insufficient. We characterize the failure mode experimentally and show that it consists of two distinct mechanisms: (A) an instantaneous, unlogged hard system hang triggered by any MMIO access above the 4 GiB boundary traversing the Thunderbolt tunnel, even when BARs are validly assigned within a firmware-declared 64-bit window; and (B) an identical hang triggered by the boot sequence of the NVIDIA GSP firmware. We present a software-only mitigation: shrinking the GPU's VRAM aperture (BAR1) to 64 MiB via the PCIe Resizable BAR capability, forcing reallocation of all GPU BARs into the firmware's 32-bit prefetchable window behind the Thunderbolt root port, and loading the proprietary NVIDIA driver with GSP firmware and MSI disabled. We validate the method on a MacBookPro16,1 with an RTX 3090 (24 GiB): the GPU sustains full compute load (352 W, 97% SM utilization) and serves a 27-billion-parameter LLM entirely from VRAM at 36.3 tokens/s. The method requires no firmware or hardware modification and is reproducible with standard Linux tooling. Changes in v2: corrected the historical framing of the upstream issue (t2linux #189 was opened in May 2026, not 2019) and clarified that some T2 models/topologies operate with pci=realloc alone; the presented method targets machines where that is insufficient. Technical content, method and results are unchanged.
// Source
Authors: Antonio Telesca
Institutions: Institut de Recherche pour le Développement