Skip to content

Hardware Topology

Understanding which firmware settings affect which devices requires understanding how the devices are connected. The hardware topology of an x86 system determines data paths, latency characteristics, and which settings in firmware affect which subsystems.

The traditional northbridge/southbridge architecture

From the late 1990s through the early 2010s, x86 systems used a two-chip chipset architecture:

graph TD
    CPU(["CPU"])

    CPU -->|"FSB / HyperTransport / QPI"| NB

    subgraph NB["Northbridge (MCH/GMCH)"]
        RAM(["RAM"])
        GPU(["PCIe x16 — discrete GPU"])
        iGPU(["Integrated GPU"])
    end

    NB -->|"DMI / internal bus"| SB

    subgraph SB["Southbridge (ICH/PCH)"]
        SATA(["SATA — storage"])
        USB(["USB"])
        Audio(["Audio"])
        Ethernet(["Ethernet"])
        PCIe(["PCIe x1/x4 — expansion"])
        LPC(["LPC — PS/2, serial, firmware ROM"])
    end

Northbridge (Memory Controller Hub / MCH, or GMCH when it included integrated graphics) handled the high-bandwidth, latency- sensitive connections: the CPU's front-side bus, system memory, and the primary PCIe slot for the discrete GPU. Because memory and the GPU needed the fastest possible path to the CPU, the northbridge sat physically and electrically between them.

Southbridge (I/O Controller Hub / ICH) handled everything else: storage (SATA, IDE), USB, audio, network, and low-speed expansion slots. The southbridge connected to the northbridge via a dedicated link (DMI on Intel platforms), which was the bottleneck — all I/O traffic from storage, USB, and network had to traverse this link to reach the CPU and memory.

This architecture had a clear firmware implication: northbridge settings (memory timings, GPU configuration, PCIe x16 slot settings) and southbridge settings (SATA mode, USB configuration, audio, network) appeared as separate sections in firmware setup because they controlled separate physical chips.

The modern reality: SoC integration

Starting around 2011 (Intel Sandy Bridge, AMD Fusion), the northbridge was absorbed into the CPU die. The memory controller moved onto the CPU. The primary PCIe lanes moved onto the CPU. The northbridge chip disappeared from the motherboard.

What remains is the Platform Controller Hub (PCH) on Intel systems or the Fusion Controller Hub (FCH) on AMD systems — the evolved southbridge, now the only chipset component:

graph TD
    subgraph SOC["CPU / SoC"]
        MemCtrl(["Memory Controller"])
        PCIeDirect(["PCIe x16 — direct"])
        iGPU(["Integrated GPU"])
        NVMeDirect(["CPU-direct PCIe/NVMe"])
    end

    PCIeDirect --> dGPU(["Discrete GPU"])
    NVMeDirect --> NVMe(["Primary M.2 NVMe — some platforms"])

    SOC -->|"DMI 3.0/4.0"| PCH

    subgraph PCH["PCH (Platform Controller Hub) / FCH"]
        SATA(["SATA"])
        USB(["USB 3.x/2.0"])
        Audio(["Audio"])
        Eth(["Ethernet"])
        PCIeSlow(["PCIe x1/x4"])
        TB(["Thunderbolt — some platforms"])
        SPI(["SPI — firmware ROM"])
    end

The practical consequences for firmware settings:

Memory settings are CPU settings. Because the memory controller is on the CPU die, memory timings, XMP/EXPO profiles, and memory frequency are configured through the CPU's memory controller interface, not a separate chipset. In firmware, these settings appear under names like "DRAM Configuration," "Memory Settings," or "AI Tweaker / OC Tweaker" (on enthusiast boards).

Primary PCIe is CPU-direct. The discrete GPU's PCIe x16 slot connects directly to the CPU — no intermediate chip. This means GPU-related firmware settings (Above 4G Decoding, Resizable BAR, PCIe generation for the primary slot) are CPU-level settings.

NVMe may be either. Depending on the platform, the primary M.2 NVMe slot may connect directly to CPU PCIe lanes (lower latency, full bandwidth) or through the PCH (shared DMI bandwidth). This distinction matters for storage performance and is visible in the firmware's PCIe lane allocation settings.

Everything else goes through the PCH and shares the DMI link. SATA, USB, audio, Ethernet, Thunderbolt, and secondary PCIe slots all connect through the PCH. The DMI link's bandwidth (DMI 3.0 is ~3.9 GB/s, DMI 4.0 is ~7.9 GB/s) is the shared ceiling for all PCH-attached devices. This is rarely a bottleneck for development workstations but matters if the machine has multiple NVMe drives, 10GbE networking, and USB peripherals all running through the PCH simultaneously.

Why this matters for firmware configuration

Firmware settings menus are organized by the hardware topology. Understanding the topology tells you where to find settings and what affects what:

Firmware section Typically controls Hardware location
CPU Configuration Core count, hyper-threading, virtualization (VT-x/AMD-V) CPU
Memory / DRAM Timings, frequency, XMP/EXPO profiles CPU memory controller
GPU / Display Primary display, iGPU, multi-monitor CPU (iGPU), CPU PCIe (dGPU)
PCIe / Slots Lane allocation, generation, bifurcation CPU lanes + PCH lanes
Storage / SATA SATA mode (AHCI/RAID), NVMe PCH (SATA), CPU or PCH (NVMe)
USB Port configuration, legacy support, power PCH
Thunderbolt Security level, PCIe tunneling PCH (or CPU-direct on newer platforms)
Audio / Onboard Enable/disable onboard audio, HD Audio PCH
Network / LAN Enable/disable, wake-on-LAN, PXE PCH
Power / ACPI Sleep states, wake sources, power limits CPU + PCH (both involved)

When a firmware setting does not appear where expected, the topology usually explains why. A "PCIe Settings" section that does not include the primary GPU slot is showing PCH-attached PCIe lanes — the GPU slot's settings are under "CPU Configuration" or a separate "GPU" section because those lanes are CPU-direct.

Intel vs AMD topology differences

The architecture is broadly similar but the naming and some structural details differ:

Concept Intel AMD
Chipset Platform Controller Hub (PCH) Fusion Controller Hub (FCH)
CPU-chipset link DMI (Direct Media Interface) PCIe x4 uplink (PCIe 4.0 on X570/AM5)
Memory controller On-die since Nehalem (2008) On-die since Athlon 64 (2003)
iGPU Intel UHD / Iris (most desktop + mobile CPUs) Radeon RDNA2 on all AM5 desktop SKUs (since Ryzen 7000, 2022); fuller iGPUs on G-series APUs; older AM4 non-G had none
CPU-direct PCIe Gen ⅘, varies by SKU Gen ⅘, varies by SKU
Virtualization VT-x (CPU), VT-d (IOMMU) AMD-V / SVM (CPU), AMD-Vi (IOMMU)

AMD moved the memory controller on-die in 2003 (Athlon 64), about five years before Intel did with Nehalem (2008). AMD's CPU-to-chipset link is a PCIe x4 connection (PCIe 4.0 on X570/AM5), broadly comparable in bandwidth to Intel's DMI (itself a PCIe-derived x4/x8 link) rather than being the Infinity Fabric, which is the on-package interconnect between chiplets. These differences rarely affect firmware configuration decisions for a development workstation but explain why the same setting may appear in a different menu location or use a different name between Intel and AMD systems.

The laptop case

Laptop firmware exposes fewer settings than desktop firmware because the hardware is fixed. There are no expansion slots to configure, no PCIe bifurcation options, and no memory timing adjustments (LPDDR memory on modern laptops is soldered and its timings are fixed).

What laptop firmware does expose — and what matters for a Linux development workstation:

  • Virtualization (VT-x / AMD-V / SVM): Often disabled by default on consumer laptops. Must be enabled for Docker, VMs, and tools that use hardware virtualization.
  • Secure Boot: Almost always enabled by default. The Secure Boot page covers when and how to manage it.
  • Thunderbolt security: Controls whether Thunderbolt devices are trusted without user approval. See the USB and Thunderbolt page.
  • Battery charge thresholds: Lenovo ThinkPads expose start/stop charge thresholds in firmware. Setting these (e.g., start at 75%, stop at 80%) extends battery lifespan for machines that spend most of their time plugged in. See the Power and Thermal page.
  • SATA/NVMe mode: Occasionally relevant if installing Linux alongside a pre-installed Windows that used Intel RST (RAID mode). See the Storage page.