<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>BIOS on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/bios/</link>
        <description>Recent content in BIOS on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sun, 24 May 2026 00:51:13 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/bios/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>What is Above 4G Decoding? Why multi-PCIe systems, NAS expansion cards, and large-VRAM GPUs should enable it</title>
        <link>https://knightli.com/en/2026/05/24/above-4g-decoding-pcie-mmio-bar-explained/</link>
        <pubDate>Sun, 24 May 2026 00:51:13 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/24/above-4g-decoding-pcie-mmio-bar-explained/</guid>
        <description>&lt;p&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt; 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.&lt;/p&gt;
&lt;p&gt;In simple terms, it allows a 64-bit system to assign PCIe devices&amp;rsquo; MMIO address space above the 4GB physical address range.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;why-is-there-a-4gb-boundary&#34;&gt;Why is there a 4GB boundary?
&lt;/h2&gt;&lt;p&gt;The 4GB boundary is a historical legacy of the 32-bit era.&lt;/p&gt;
&lt;p&gt;A 32-bit address space can address at most:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2^32 bytes = 4GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;The problem is that the space below 4GB is not only for RAM. The system must reserve part of it for hardware devices.&lt;/p&gt;
&lt;p&gt;That is where &lt;code&gt;MMIO&lt;/code&gt; comes in.&lt;/p&gt;
&lt;h2 id=&#34;what-is-mmio&#34;&gt;What is MMIO?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;MMIO&lt;/code&gt; means Memory-Mapped I/O.&lt;/p&gt;
&lt;p&gt;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&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;Roughly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A device needs an address range.&lt;/li&gt;
&lt;li&gt;The motherboard assigns a physical system address range to it.&lt;/li&gt;
&lt;li&gt;When the CPU accesses that address range, it actually accesses the PCIe device.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This mapped region is not ordinary RAM. It is an address window occupied by hardware.&lt;/p&gt;
&lt;p&gt;In old default configurations, many devices&amp;rsquo; 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.&lt;/p&gt;
&lt;h2 id=&#34;what-is-bar&#34;&gt;What is BAR?
&lt;/h2&gt;&lt;p&gt;Every PCIe device uses &lt;code&gt;BAR&lt;/code&gt; to tell the motherboard how much address space it needs.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;BAR&lt;/code&gt; means Base Address Register. Its job is to say:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I need a block of MMIO space. Please assign me an address range.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;If the available MMIO space below 4GB is insufficient, the motherboard may fail to allocate resources to later devices.&lt;/p&gt;
&lt;h2 id=&#34;what-happens-if-above-4g-decoding-is-disabled&#34;&gt;What happens if Above 4G Decoding is disabled?
&lt;/h2&gt;&lt;p&gt;When &lt;code&gt;Above 4G Decoding&lt;/code&gt; 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.&lt;/p&gt;
&lt;p&gt;Common setups include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A discrete GPU.&lt;/li&gt;
&lt;li&gt;One or more NVMe SSDs.&lt;/li&gt;
&lt;li&gt;A JMB585 / ASM1166 SATA expansion card.&lt;/li&gt;
&lt;li&gt;A 2.5G / 10G NIC.&lt;/li&gt;
&lt;li&gt;A Wi-Fi / Bluetooth module.&lt;/li&gt;
&lt;li&gt;Extra HBAs, capture cards, or USB expansion cards.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these devices request BAR / MMIO address space from the motherboard. If the below-4GB region is full, the motherboard may show:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A PCIe card is not recognized.&lt;/li&gt;
&lt;li&gt;The device does not appear in BIOS.&lt;/li&gt;
&lt;li&gt;Linux / Windows reports missing devices or resource errors.&lt;/li&gt;
&lt;li&gt;Boot freezes during POST.&lt;/li&gt;
&lt;li&gt;Black screen or blinking cursor.&lt;/li&gt;
&lt;li&gt;Each card works alone, but the system fails when multiple cards are installed together.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;what-changes-when-above-4g-decoding-is-enabled&#34;&gt;What changes when Above 4G Decoding is enabled?
&lt;/h2&gt;&lt;p&gt;Enable:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding = Enabled
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This tells the motherboard that PCIe devices supporting 64-bit addressing may have their MMIO resources allocated above 4GB.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;For modern 64-bit systems, this is usually a reasonable setting, especially on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-disk NAS machines.&lt;/li&gt;
&lt;li&gt;Multi-NIC routers.&lt;/li&gt;
&lt;li&gt;Mini PCs with SATA / HBA expansion cards.&lt;/li&gt;
&lt;li&gt;Multi-GPU workstations.&lt;/li&gt;
&lt;li&gt;AI inference or training machines.&lt;/li&gt;
&lt;li&gt;Desktop systems with GPU, NVMe, capture cards, and expansion cards.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Its goal is not to improve normal application performance. Its goal is to make hardware resource allocation less cramped.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-jmb585--sata-expansion-cards&#34;&gt;Relationship with JMB585 / SATA expansion cards
&lt;/h2&gt;&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;For example, a mini PC may include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An NVMe system disk.&lt;/li&gt;
&lt;li&gt;An onboard NIC.&lt;/li&gt;
&lt;li&gt;A Wi-Fi module.&lt;/li&gt;
&lt;li&gt;A JMB585 five-port SATA expansion card.&lt;/li&gt;
&lt;li&gt;Possibly a discrete GPU or other controller.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Enabling &lt;code&gt;Above 4G Decoding&lt;/code&gt; lets the motherboard place some device resources above 4GB, reducing the chance of conflict.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-resizable-bar--sam&#34;&gt;Relationship with Resizable BAR / SAM
&lt;/h2&gt;&lt;p&gt;Many users first notice &lt;code&gt;Above 4G Decoding&lt;/code&gt; when configuring GPU performance features, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Resizable BAR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Re-Size BAR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ReBAR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Smart Access Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SAM&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They are related, but not the same thing.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt; is the foundation. It allows PCIe device MMIO resources to be assigned above 4GB.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Resizable BAR&lt;/code&gt; 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&amp;rsquo;s VRAM at once, theoretically reducing access switching overhead.&lt;/p&gt;
&lt;p&gt;Many motherboards require &lt;code&gt;Above 4G Decoding&lt;/code&gt; to be enabled before &lt;code&gt;Resizable BAR&lt;/code&gt; can be enabled. So:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt;: allows device addresses above 4GB.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Resizable BAR&lt;/code&gt; / &lt;code&gt;SAM&lt;/code&gt;: allows the GPU BAR window to become larger.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For NAS and SATA expansion cards, the important part is usually the PCIe address space provided by the first option, not ReBAR itself.&lt;/p&gt;
&lt;h2 id=&#34;side-effects&#34;&gt;Side effects
&lt;/h2&gt;&lt;p&gt;On modern 64-bit Windows, Linux, Ubuntu, Debian, TrueNAS, Proxmox, and similar systems, enabling &lt;code&gt;Above 4G Decoding&lt;/code&gt; usually has no obvious downside.&lt;/p&gt;
&lt;p&gt;Still, keep these points in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Very old 32-bit operating systems may not be suitable.&lt;/li&gt;
&lt;li&gt;Some very old BIOS implementations or legacy PCIe devices may be incompatible.&lt;/li&gt;
&lt;li&gt;If the system cannot boot after changing BIOS settings, clear CMOS or restore defaults.&lt;/li&gt;
&lt;li&gt;If you enable ReBAR / SAM as well, verify that the GPU, motherboard, OS, and driver support it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;when-should-you-enable-it&#34;&gt;When should you enable it?
&lt;/h2&gt;&lt;p&gt;Consider enabling &lt;code&gt;Above 4G Decoding&lt;/code&gt; when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You use a 64-bit operating system.&lt;/li&gt;
&lt;li&gt;Multiple PCIe devices are installed.&lt;/li&gt;
&lt;li&gt;You have a discrete GPU, especially with 4GB or more VRAM.&lt;/li&gt;
&lt;li&gt;You use JMB585, ASM1166, HBA, RAID, capture, or other expansion cards.&lt;/li&gt;
&lt;li&gt;You are building a multi-disk NAS or router.&lt;/li&gt;
&lt;li&gt;You use multi-GPU, AI accelerator, or local LLM hardware.&lt;/li&gt;
&lt;li&gt;Installing a PCIe card causes boot freeze, black screen, or blinking cursor.&lt;/li&gt;
&lt;li&gt;Each device works alone, but combinations fail.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are troubleshooting a JMB585 SATA expansion card freezing during POST, check it together with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable &lt;code&gt;CSM&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Disable unnecessary &lt;code&gt;Storage OpROM&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Change PCIe speed from &lt;code&gt;Auto&lt;/code&gt; or &lt;code&gt;Gen3&lt;/code&gt; to &lt;code&gt;Gen2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enable &lt;code&gt;Above 4G Decoding&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Try another PCIe slot.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-is-it-called-in-bios&#34;&gt;What is it called in BIOS?
&lt;/h2&gt;&lt;p&gt;Different motherboard vendors use slightly different names. Common names include:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4GB MMIO BIOS assignment
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Memory Mapped I/O above 4GB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;64-bit PCIe decoding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PCI 64-bit Resource Handling
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Common menu locations include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Advanced&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PCIe Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PCI Subsystem Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Chipset&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;North Bridge&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IO Ports&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boot&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some motherboards place it near &lt;code&gt;Resizable BAR&lt;/code&gt;, while others hide it under advanced PCIe or chipset settings.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The core purpose of &lt;code&gt;Above 4G Decoding&lt;/code&gt; 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;If installing a PCIe expansion card causes BIOS freezes, black screens, blinking cursor, missing devices, or failure only when multiple devices are installed together, &lt;code&gt;Above 4G Decoding = Enabled&lt;/code&gt; 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.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>PCIe expansion card causes a blinking cursor before BIOS: how to troubleshoot POST freezes</title>
        <link>https://knightli.com/en/2026/05/24/jmb585-sata-card-bios-post-blinking-cursor-troubleshooting/</link>
        <pubDate>Sun, 24 May 2026 00:46:52 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/24/jmb585-sata-card-bios-post-blinking-cursor-troubleshooting/</guid>
        <description>&lt;p&gt;If a PCIe expansion card is installed and the machine cannot even reach the BIOS screen, stopping at a black screen or blinking cursor before the motherboard finishes booting, this is usually not a Linux driver issue. It is an earlier hardware-level freeze.&lt;/p&gt;
&lt;p&gt;At this stage, the operating system has not loaded yet, so Linux kernel parameters such as &lt;code&gt;pci=nomsi&lt;/code&gt; and &lt;code&gt;pcie_aspm=off&lt;/code&gt; cannot help. The problem happens during POST, the power-on self-test stage. Common failure points include PCIe link training, PCIe resource allocation, Option ROM loading, Legacy / UEFI compatibility conflicts, or a faulty expansion card.&lt;/p&gt;
&lt;p&gt;In short: if you cannot even enter BIOS, do not start by changing Linux. First make the motherboard complete POST.&lt;/p&gt;
&lt;h2 id=&#34;what-this-failure-means&#34;&gt;What this failure means
&lt;/h2&gt;&lt;p&gt;During a normal boot, the motherboard scans PCIe devices, assigns bus, I/O, MMIO, and other resources, and decides whether to load any Option ROM provided by the device. Some SATA expansion cards, HBAs, NICs, capture cards, or adapters include firmware for boot support or device initialization, and the motherboard firmware may try to read it.&lt;/p&gt;
&lt;p&gt;If the expansion card, motherboard BIOS, PCIe slot, power, attached device, or Option ROM is incompatible, the system may freeze during motherboard self-test. Typical symptoms include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Black screen with only a blinking cursor.&lt;/li&gt;
&lt;li&gt;Stuck before or after the motherboard logo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Del&lt;/code&gt;, &lt;code&gt;F2&lt;/code&gt;, &lt;code&gt;F11&lt;/code&gt;, or &lt;code&gt;F12&lt;/code&gt; cannot enter BIOS or the boot menu.&lt;/li&gt;
&lt;li&gt;Everything works after removing the PCIe expansion card.&lt;/li&gt;
&lt;li&gt;NVMe, GPU, NIC, or existing boot device works normally when the card is removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means the motherboard has not had a chance to hand control to the operating system; the card has already blocked the boot process.&lt;/p&gt;
&lt;h2 id=&#34;which-pcie-expansion-cards-commonly-trigger-this&#34;&gt;Which PCIe expansion cards commonly trigger this
&lt;/h2&gt;&lt;p&gt;This POST freeze does not only happen with JMB585 SATA cards. Any PCIe device that the motherboard needs to initialize, allocate resources for, or load Option ROM from can trigger similar problems.&lt;/p&gt;
&lt;p&gt;Common examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JMB585, ASM1166, and similar PCIe SATA expansion cards.&lt;/li&gt;
&lt;li&gt;LSI / Broadcom HBA or RAID cards.&lt;/li&gt;
&lt;li&gt;2.5G, 10G, copper, or fiber NICs.&lt;/li&gt;
&lt;li&gt;PCIe to M.2 / U.2 / SATA adapters.&lt;/li&gt;
&lt;li&gt;Video capture cards.&lt;/li&gt;
&lt;li&gt;USB 3.x expansion cards.&lt;/li&gt;
&lt;li&gt;Older GPUs, RAID cards, or server pull cards with Option ROM.&lt;/li&gt;
&lt;li&gt;Cheap PCIe cards with poor build quality, modified firmware, or broken EEPROM.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The device may not be &amp;ldquo;dead.&amp;rdquo; It may simply be incompatible with the current motherboard BIOS, PCIe lane routing, PCIe speed, boot mode, or address resource allocation.&lt;/p&gt;
&lt;h2 id=&#34;why-linux-kernel-parameters-do-not-work-yet&#34;&gt;Why Linux kernel parameters do not work yet
&lt;/h2&gt;&lt;p&gt;Parameters such as &lt;code&gt;pci=nomsi&lt;/code&gt;, &lt;code&gt;pcie_aspm=off&lt;/code&gt;, and &lt;code&gt;libata.force&lt;/code&gt; are Linux kernel boot parameters. They only take effect after the kernel has loaded.&lt;/p&gt;
&lt;p&gt;A blinking cursor before BIOS, a freeze before the motherboard logo, or a keyboard that cannot enter BIOS means the system is still in POST. The code running is motherboard firmware, not the Linux kernel. Linux has not started yet, so it cannot read those parameters.&lt;/p&gt;
&lt;p&gt;For this class of failure, do not start by editing &lt;code&gt;/etc/default/grub&lt;/code&gt;. Focus first on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS / UEFI boot mode.&lt;/li&gt;
&lt;li&gt;CSM / Legacy compatibility layer.&lt;/li&gt;
&lt;li&gt;PCIe Option ROM.&lt;/li&gt;
&lt;li&gt;PCIe link training.&lt;/li&gt;
&lt;li&gt;PCIe address space and resource allocation.&lt;/li&gt;
&lt;li&gt;Expansion card, slot, power, and attached devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;step-1-disconnect-devices-attached-to-the-expansion-card&#34;&gt;Step 1: disconnect devices attached to the expansion card
&lt;/h2&gt;&lt;p&gt;Start with the lowest-risk test. Leave the PCIe expansion card installed, but disconnect SATA data cables, attached device cables, or disk power from whatever is connected to it. Let the card sit in the motherboard with no attached devices.&lt;/p&gt;
&lt;p&gt;Then boot and test:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the system can enter BIOS after disconnecting disks or devices, the expansion card itself probably did not hard-lock the motherboard. The problem may be one disk, cable, power path, or boot-device detection.&lt;/li&gt;
&lt;li&gt;If it still freezes, the problem is more likely between the expansion card and the motherboard PCIe / BIOS compatibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why can attached disks cause POST freezes? Common reasons include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A disk has a damaged boot sector or partition table, and the BIOS misidentifies it as a boot device and hangs while reading it.&lt;/li&gt;
&lt;li&gt;Multiple HDDs spin up at once and the power supply cannot handle the transient current.&lt;/li&gt;
&lt;li&gt;A SATA cable has poor contact, causing controller initialization to time out.&lt;/li&gt;
&lt;li&gt;A disk is in poor health and slows down initialization.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it boots after disconnecting disks, reconnect them one by one to find the specific disk or cable that triggers the problem.&lt;/p&gt;
&lt;h2 id=&#34;step-2-remove-the-card-and-disable-csm-in-bios&#34;&gt;Step 2: remove the card and disable CSM in BIOS
&lt;/h2&gt;&lt;p&gt;Many PCIe expansion cards freeze during POST because of the CSM / Legacy boot compatibility layer.&lt;/p&gt;
&lt;p&gt;CSM stands for Compatibility Support Module. It lets UEFI motherboards support old Legacy boot behavior. The problem is that some cheap SATA expansion cards or modified cards include old Option ROMs. When the motherboard runs in CSM mode, it may try to load those old boot firmwares, which can conflict with modern UEFI firmware.&lt;/p&gt;
&lt;h2 id=&#34;why-csm-and-option-rom-can-freeze-post&#34;&gt;Why CSM and Option ROM can freeze POST
&lt;/h2&gt;&lt;p&gt;During POST, the motherboard enumerates PCIe devices and checks whether they provide boot firmware. Older storage cards, RAID cards, HBAs, NICs, and SATA expansion cards may provide Option ROM so the motherboard can recognize the device before the operating system starts, or even boot from it.&lt;/p&gt;
&lt;p&gt;The problem is that Option ROM depends heavily on BIOS implementation. Some expansion cards have outdated, modified, damaged, or server-specific Option ROMs. When a modern consumer motherboard tries to load them under CSM / Legacy mode, it may enter an initialization loop, black screen, blinking cursor, or keyboard lock.&lt;/p&gt;
&lt;p&gt;Disabling CSM and Storage OpROM prevents the motherboard from executing the card&amp;rsquo;s own pre-boot firmware. If your system disk is not connected to that expansion card, most NAS and data-disk scenarios do not need to boot from it. Letting Linux or Windows recognize it after boot is usually more stable.&lt;/p&gt;
&lt;p&gt;Steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Shut down and remove power, then remove the PCIe expansion card.&lt;/li&gt;
&lt;li&gt;Boot with the original GPU, iGPU, or existing boot device and enter BIOS.&lt;/li&gt;
&lt;li&gt;Find &lt;code&gt;CSM&lt;/code&gt;, &lt;code&gt;Compatibility Support Module&lt;/code&gt;, or &lt;code&gt;Legacy Boot&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set CSM to &lt;code&gt;Disabled&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;UEFI Only&lt;/code&gt; boot mode if possible.&lt;/li&gt;
&lt;li&gt;Save BIOS settings and shut down.&lt;/li&gt;
&lt;li&gt;Reinstall the PCIe expansion card and test again.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If disabling CSM lets the machine pass POST, the likely cause was Legacy Option ROM or boot compatibility conflict.&lt;/p&gt;
&lt;h2 id=&#34;step-3-disable-pcie--storage-option-rom&#34;&gt;Step 3: disable PCIe / Storage Option ROM
&lt;/h2&gt;&lt;p&gt;Some BIOS menus provide more detailed Option ROM controls, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PCIe Option ROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Storage OpROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mass Storage Controller Option ROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Launch Storage OpROM Policy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Option ROM Messages&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you find a similar option, set the expansion card slot or storage-controller Option ROM to:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disabled
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;or:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do Not Launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This tells the motherboard not to load boot firmware from the card, and to leave it as an ordinary PCIe device for the operating system to detect later.&lt;/p&gt;
&lt;p&gt;If the system disk is not attached to this expansion card and the card is only used for data disks, NAS disks, warehouse disks, NICs, or capture devices, you usually do not need to boot from it. Disabling its Option ROM is often safer.&lt;/p&gt;
&lt;h2 id=&#34;step-4-force-pcie-speed-to-gen2-or-gen1&#34;&gt;Step 4: force PCIe speed to Gen2 or Gen1
&lt;/h2&gt;&lt;p&gt;Many cards advertise PCIe Gen3 links, but the motherboard, adapter, cabling, slot, or card build quality may not be good enough. PCIe link training may fail at Gen3 speed, leaving the motherboard waiting for device initialization.&lt;/p&gt;
&lt;h2 id=&#34;what-pcie-gen3-link-training-failure-looks-like&#34;&gt;What PCIe Gen3 link-training failure looks like
&lt;/h2&gt;&lt;p&gt;When a PCIe device is installed, the motherboard and device negotiate link width and speed, such as x1, x2, x4, and Gen1, Gen2, Gen3. This process is called Link Training.&lt;/p&gt;
&lt;p&gt;If the device, slot, adapter, motherboard traces, or power is unstable, both sides may fail to negotiate at higher speeds. Common symptoms include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Black screen or blinking cursor before BIOS after installing the card.&lt;/li&gt;
&lt;li&gt;Motherboard logo hangs for a long time and keyboard input does not respond.&lt;/li&gt;
&lt;li&gt;Sometimes it boots, sometimes it hard-freezes.&lt;/li&gt;
&lt;li&gt;Forcing PCIe Gen2 makes it stable.&lt;/li&gt;
&lt;li&gt;Moving to another slot makes it stable.&lt;/li&gt;
&lt;li&gt;The card works in a chipset slot but not a CPU-connected slot, or the opposite.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not an operating-system disk-drop issue. The motherboard and device have not finished PCIe link initialization yet. Forcing Gen2 / Gen1 lowers signal rate and trades theoretical bandwidth for stable boot.&lt;/p&gt;
&lt;p&gt;Steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Remove the PCIe expansion card.&lt;/li&gt;
&lt;li&gt;Enter BIOS.&lt;/li&gt;
&lt;li&gt;Find the speed setting for the target PCIe slot, such as &lt;code&gt;PCIe Speed&lt;/code&gt;, &lt;code&gt;PCIe Link Speed&lt;/code&gt;, or &lt;code&gt;Max Link Speed&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Change &lt;code&gt;Auto&lt;/code&gt; or &lt;code&gt;Gen3&lt;/code&gt; to &lt;code&gt;Gen2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;Gen2&lt;/code&gt; is still unstable, try &lt;code&gt;Gen1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Save, shut down, reinstall the card, and test.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For SATA HDDs, Gen2 x1 or Gen2 x2 is often enough. When stability matters, do not insist on Gen3.&lt;/p&gt;
&lt;p&gt;If BIOS does not provide a PCIe speed setting, only then consider physical down-training methods. Some users tape selected gold-finger pins to force a card into x1 mode and test whether the second PCIe lane or high-speed signal quality is the problem. This is risky and easy to do wrong, so it should not be the first choice. Prefer BIOS speed limiting.&lt;/p&gt;
&lt;h2 id=&#34;step-5-enable-above-4g-decoding&#34;&gt;Step 5: enable Above 4G Decoding
&lt;/h2&gt;&lt;p&gt;If the motherboard has NVMe, GPU, wireless card, HBA, capture card, or multiple PCIe devices, BIOS must assign address space and MMIO resources during POST. Older boards or conservative BIOS resource allocation may freeze because of insufficient resources or address conflicts.&lt;/p&gt;
&lt;p&gt;Try enabling:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;It is often under &lt;code&gt;Advanced&lt;/code&gt;, &lt;code&gt;PCIe Settings&lt;/code&gt;, &lt;code&gt;PCI Subsystem Settings&lt;/code&gt;, &lt;code&gt;Chipset&lt;/code&gt;, or similar menus.&lt;/p&gt;
&lt;p&gt;This option allows PCIe devices to use address space above 4GB, helping reduce resource allocation problems in multi-device systems. Although it is often mentioned for GPU passthrough, mining cards, HBAs, and multi-PCIe setups, it is also worth trying for SATA expansion cards that freeze during POST.&lt;/p&gt;
&lt;h2 id=&#34;step-6-change-pcie-slots&#34;&gt;Step 6: change PCIe slots
&lt;/h2&gt;&lt;p&gt;Do not test only one slot. Different PCIe slots may be wired differently:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The long slot near the CPU is often CPU-connected and intended for GPUs.&lt;/li&gt;
&lt;li&gt;Some short slots or secondary long slots may come from the chipset PCH.&lt;/li&gt;
&lt;li&gt;Some slots share lanes with NVMe, SATA, Wi-Fi, or other devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the expansion card freezes in a CPU-connected slot, try a chipset slot or lower-bandwidth slot. If the PCH slot is unstable, try another slot.&lt;/p&gt;
&lt;p&gt;Also check the motherboard manual for lane-sharing rules, such as &amp;ldquo;this PCIe slot is disabled when this M.2 slot is populated.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;recommended-fast-troubleshooting-path&#34;&gt;Recommended fast troubleshooting path
&lt;/h2&gt;&lt;p&gt;If you want to restore boot quickly, try this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Disconnect all devices attached to the expansion card, such as SATA disks, U.2 disks, or external cables.&lt;/li&gt;
&lt;li&gt;If it still freezes, remove the card and enter BIOS.&lt;/li&gt;
&lt;li&gt;Disable &lt;code&gt;CSM&lt;/code&gt; and switch to &lt;code&gt;UEFI Only&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Disable &lt;code&gt;Storage OpROM&lt;/code&gt; or related PCIe Option ROM.&lt;/li&gt;
&lt;li&gt;Enable &lt;code&gt;Above 4G Decoding&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Force the target PCIe slot to &lt;code&gt;Gen2&lt;/code&gt;; if that fails, try &lt;code&gt;Gen1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Save, shut down, reinstall the PCIe expansion card, and test.&lt;/li&gt;
&lt;li&gt;If it passes POST, reconnect disks or devices one by one.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This path prioritizes the two most common causes: Legacy / Option ROM conflicts and PCIe Gen3 link-training incompatibility.&lt;/p&gt;
&lt;h2 id=&#34;how-to-tell-whether-the-card-is-bad-or-the-motherboard-is-incompatible&#34;&gt;How to tell whether the card is bad or the motherboard is incompatible
&lt;/h2&gt;&lt;p&gt;If all steps above still end with a blinking cursor, do two cross-checks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Test the same expansion card in another computer.&lt;/li&gt;
&lt;li&gt;Test a known-good similar PCIe expansion card in the current motherboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use this logic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The same card freezes multiple computers: the card likely has a hardware or firmware problem.&lt;/li&gt;
&lt;li&gt;The card freezes only on this motherboard but works elsewhere: motherboard BIOS, slot wiring, PCIe speed, or resource allocation is more likely.&lt;/li&gt;
&lt;li&gt;Other similar expansion cards work in this motherboard: the original card is more suspicious.&lt;/li&gt;
&lt;li&gt;Other PCIe devices are also unstable in this motherboard: suspect the slot, power, BIOS settings, or PCIe lane sharing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If this card freezes multiple computers while other cards work on the current board, possible causes include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Damaged expansion-card EEPROM / Option ROM data.&lt;/li&gt;
&lt;li&gt;Short circuit or power problem on the card.&lt;/li&gt;
&lt;li&gt;Gold-finger, solder joint, crystal, or power-chip hardware issue.&lt;/li&gt;
&lt;li&gt;Firmware incompatible with many motherboard BIOS implementations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it freezes only on one motherboard, suspect BIOS, slot lanes, PCIe speed, CSM, or resource allocation.&lt;/p&gt;
&lt;h2 id=&#34;do-not-treat-os-parameters-as-bios-stage-fixes&#34;&gt;Do not treat OS parameters as BIOS-stage fixes
&lt;/h2&gt;&lt;p&gt;Again, if the machine has not entered Linux, kernel parameters such as &lt;code&gt;pci=nomsi&lt;/code&gt;, &lt;code&gt;pcie_aspm=off&lt;/code&gt;, and &lt;code&gt;libata.force&lt;/code&gt; do not take effect.&lt;/p&gt;
&lt;p&gt;They only handle problems after the operating system takes over the hardware, such as disk drops, interrupt errors, and PCIe ASPM wake failures under Linux. They cannot help with a blinking cursor before BIOS or a POST-stage freeze because they never get a chance to run.&lt;/p&gt;
&lt;p&gt;For this class of failure, focus on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS settings.&lt;/li&gt;
&lt;li&gt;PCIe link training.&lt;/li&gt;
&lt;li&gt;Option ROM.&lt;/li&gt;
&lt;li&gt;Slot and resource allocation.&lt;/li&gt;
&lt;li&gt;Physical condition of the expansion card and attached devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;When a PCIe expansion card causes a blinking cursor before BIOS, the system is stuck during POST. The most common fixes are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disconnect all attached devices to rule out disk or power triggers.&lt;/li&gt;
&lt;li&gt;Disable CSM and use pure UEFI.&lt;/li&gt;
&lt;li&gt;Disable Storage / PCIe Option ROM.&lt;/li&gt;
&lt;li&gt;Lower PCIe speed from Auto / Gen3 to Gen2 or Gen1.&lt;/li&gt;
&lt;li&gt;Enable Above 4G Decoding.&lt;/li&gt;
&lt;li&gt;Try another PCIe slot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If none of these works and the card also freezes other computers, strongly suspect hardware or firmware damage on the card itself. For NAS and storage servers, stability matters more than attractive specs. With POST-level freezes, first make the motherboard pass self-test reliably, then troubleshoot Linux kernel parameters and drivers.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Installing fnOS on TerraMaster F2-220: F3 Backplane, NVMe, and BIOS Module Injection</title>
        <link>https://knightli.com/en/2026/05/04/terramaster-f2-220-fnos-nvme-bios/</link>
        <pubDate>Mon, 04 May 2026 06:09:40 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/04/terramaster-f2-220-fnos-nvme-bios/</guid>
        <description>&lt;p&gt;This is a practical note on installing fnOS on a TerraMaster F2-220. The goal is to replace the original TOS and keep using the NAS after official support for the F2-220 has ended. The process also verifies that the F3 backplane can work on the F2-220, and solves the issue where the BIOS cannot boot from NVMe.&lt;/p&gt;
&lt;p&gt;The original F3 backplane project was verified on the F2-221 with a J3355 platform. The F2-220 uses the J1800 platform, so compatibility was not guaranteed. A V1.1 version existed in a project fork with fewer components, lower cost, and less assembly difficulty, so that version was used for testing.&lt;/p&gt;
&lt;h2 id=&#34;pcb-fabrication-and-soldering&#34;&gt;PCB Fabrication and Soldering
&lt;/h2&gt;&lt;p&gt;Backplane project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/arnarg/f3_backplane&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;arnarg/f3_backplane&lt;/a&gt;. The board used here is the V1.1 version from a fork. Its core goal is to keep the original SATA drive bays while exposing an NVMe SSD position from the backplane connector.&lt;/p&gt;
&lt;p&gt;Multiple PCBs were received after fabrication. One detail appeared during soldering: after soldering the M.2 connector, it became clear that the SATA connector was different from common SATA connectors.&lt;/p&gt;
&lt;p&gt;A fully matching native SATA connector was not found on Taobao, so an existing connector was modified instead: the pins were pulled out, positions were swapped, and then the connector was soldered back to the board.&lt;/p&gt;
&lt;p&gt;The key takeaway is that the F3 backplane approach can be tried on the F2-220, but SATA connector selection needs special attention. Do not order only by looking for a generic SATA connector.&lt;/p&gt;
&lt;h2 id=&#34;vga-output&#34;&gt;VGA Output
&lt;/h2&gt;&lt;p&gt;The F2-220 has no exposed video output, but it has an internal 12-pin VGA header. You need an internal motherboard 12Pin VGA adapter cable. One end connects to the 12-pin header inside the machine, and the other end is usually a standard DB15 VGA female connector for an external monitor.&lt;/p&gt;
&lt;p&gt;Useful search keywords include &amp;ldquo;12Pin VGA adapter cable&amp;rdquo;, &amp;ldquo;motherboard 12-pin VGA adapter cable&amp;rdquo;, and &amp;ldquo;2.0mm 12Pin to VGA&amp;rdquo;. Before buying, compare the connector direction, pitch, and pinout against a photo of the internal header. Do not order based only on the &amp;ldquo;12Pin&amp;rdquo; label.&lt;/p&gt;
&lt;p&gt;This step is important for installation. Without video output, BIOS and installer troubleshooting becomes much harder.&lt;/p&gt;
&lt;h2 id=&#34;installing-fnos&#34;&gt;Installing fnOS
&lt;/h2&gt;&lt;p&gt;Boot the fnOS installer through Ventoy. The installer can see the NVMe SSD, which means the backplane and NVMe hardware path are working.&lt;/p&gt;
&lt;p&gt;However, after installation, removing the boot drive causes the machine to reboot into the BIOS screen instead of entering fnOS. The BIOS boot list does not contain the NVMe SSD. If fnOS is installed to a USB drive and booted from there, the system can still see the NVMe drive normally.&lt;/p&gt;
&lt;p&gt;This indicates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVMe hardware detection is fine.&lt;/li&gt;
&lt;li&gt;Linux can access the NVMe drive.&lt;/li&gt;
&lt;li&gt;The failure point is the BIOS boot stage.&lt;/li&gt;
&lt;li&gt;The F2-220 platform is old, and the stock BIOS likely lacks an NVMe boot module.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;backing-up-the-bios&#34;&gt;Backing Up the BIOS
&lt;/h2&gt;&lt;p&gt;At this point, fnOS can already boot from a USB drive. Since fnOS is Debian-based, &lt;code&gt;flashrom&lt;/code&gt; can be used inside the system to back up and flash the BIOS.&lt;/p&gt;
&lt;p&gt;Flashing BIOS is risky. Prepare a programmer if possible, so recovery is still possible after a failed flash.&lt;/p&gt;
&lt;p&gt;Install &lt;code&gt;flashrom&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install flashrom -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check whether the BIOS chip can be detected:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo flashrom -p internal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Detected chip information may look like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Found Winbond flash chip &amp;#34;W25Q64.W&amp;#34; (8192 kB, SPI) mapped at physical address 0x00000000ff800000.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Back up the original BIOS. Replace the chip model in the command with the actual result from your machine:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo flashrom -p internal -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;W25Q64.W&amp;#34;&lt;/span&gt; -r backup_factory.bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;injecting-the-nvme-module&#34;&gt;Injecting the NVMe Module
&lt;/h2&gt;&lt;p&gt;The backed-up BIOS is a &lt;code&gt;.bin&lt;/code&gt; file. You can transfer it to a PC with WinSCP, then refer to the Bilibili tutorial &lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/read/cv4475152/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;让老主板用上 Nvme 协议的固态&lt;/a&gt; to inject the NVMe module into the BIOS file.&lt;/p&gt;
&lt;p&gt;After processing, transfer the modified BIOS file back to fnOS.&lt;/p&gt;
&lt;p&gt;Do not blindly reuse someone else&amp;rsquo;s BIOS file. Different machines, BIOS versions, and flash chips may differ. The safer approach is to back up your own original BIOS and modify that backup.&lt;/p&gt;
&lt;h2 id=&#34;flashing-the-new-bios&#34;&gt;Flashing the New BIOS
&lt;/h2&gt;&lt;p&gt;The flash command is shown below. Replace the chip model, firmware path, and file name according to your actual setup:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo flashrom -p internal -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;W25Q64.W&amp;#34;&lt;/span&gt; -w /vol1/NEW_NVME.bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;When the output shows this line, verification has passed:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Verifying flash... VERIFIED.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After flashing, the BIOS boot list may show a &lt;code&gt;PATA&lt;/code&gt; entry. On older BIOS setups with an injected NVMe module, the NVMe boot entry often appears as &lt;code&gt;PATA&lt;/code&gt;. Seeing it means the BIOS can now recognize the NVMe boot path.&lt;/p&gt;
&lt;h2 id=&#34;result&#34;&gt;Result
&lt;/h2&gt;&lt;p&gt;Final result:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;F3 Backplane V1.1 can detect NVMe on the TerraMaster F2-220.&lt;/li&gt;
&lt;li&gt;The fnOS installer can see the NVMe SSD.&lt;/li&gt;
&lt;li&gt;The stock BIOS cannot boot directly from NVMe.&lt;/li&gt;
&lt;li&gt;After injecting the NVMe module into the BIOS, a &lt;code&gt;PATA&lt;/code&gt; boot entry appears.&lt;/li&gt;
&lt;li&gt;The machine can boot fnOS from NVMe after the BIOS modification.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Testing feedback also notes that this NVMe channel is only a little over 300MB/s. That is enough for a system drive. There is no need to use a high-end SSD; even a small Optane drive can be sufficient.&lt;/p&gt;
&lt;h2 id=&#34;notes&#34;&gt;Notes
&lt;/h2&gt;&lt;p&gt;This is not a risk-free general tutorial. It is closer to a hardware and BIOS modification record. Before trying it, note the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;F2-220 and F2-221 use different platforms, so F2-221 results should not be treated as identical to F2-220 results.&lt;/li&gt;
&lt;li&gt;The F3 backplane requires PCB fabrication and soldering. The SATA connector may also require pin modification.&lt;/li&gt;
&lt;li&gt;A suitable internal VGA adapter cable is needed for installation and troubleshooting.&lt;/li&gt;
&lt;li&gt;BIOS flashing can brick the machine. Prepare a programmer and keep the original backup.&lt;/li&gt;
&lt;li&gt;The chip model in the &lt;code&gt;flashrom&lt;/code&gt; command must match the chip detected on your own machine.&lt;/li&gt;
&lt;li&gt;Do not directly flash someone else&amp;rsquo;s modified BIOS. Inject the NVMe module into your own backup first.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The value of this note is that it adds real F2-220 test results: the F3 backplane idea is not limited to the F2-221, and the F2-220 can also use an NVMe system drive. The real blocker is not Linux detecting NVMe, but whether the BIOS supports NVMe booting.&lt;/p&gt;
&lt;h2 id=&#34;related-links&#34;&gt;Related Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;fnNAS forum test thread: &lt;a class=&#34;link&#34; href=&#34;https://club.fnnas.com/forum.php?mod=viewthread&amp;amp;tid=55589&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;铁威马F2-220折腾飞牛OS过程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>A Detailed Look at PCIe Bifurcation Modes</title>
        <link>https://knightli.com/en/2026/05/02/pcie-bifurcation-modes/</link>
        <pubDate>Sat, 02 May 2026 10:15:49 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/02/pcie-bifurcation-modes/</guid>
        <description>&lt;p&gt;PCIe bifurcation is the process of splitting PCIe lanes. It answers a simple question: should a group of PCIe lanes from the CPU or chipset work as one wide link, or be split into multiple narrower links for different devices?&lt;/p&gt;
&lt;p&gt;For example, a group of 16 PCIe lanes can be configured as &lt;code&gt;x16&lt;/code&gt;, split into &lt;code&gt;x8+x8&lt;/code&gt;, or split into &lt;code&gt;x8+x4+x4&lt;/code&gt;. This is the basis behind a motherboard running one graphics slot at full &lt;code&gt;x16&lt;/code&gt;, two graphics slots at &lt;code&gt;x8&lt;/code&gt; each, or one graphics slot plus two CPU-attached M.2 slots.&lt;/p&gt;
&lt;h2 id=&#34;what-is-a-pcie-lane&#34;&gt;What Is a PCIe Lane
&lt;/h2&gt;&lt;p&gt;PCIe is a serial bus. Each lane consists of differential signaling pairs and can be treated as an independent high-speed data channel. Multiple lanes can be bonded together to form a wider link:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/pcie-lane-link.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PCIe lane and link width diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Link width&lt;/th&gt;
          &lt;th&gt;Common use&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x1&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Network cards, sound cards, capture cards, USB expansion cards&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;NVMe SSDs and some high-speed expansion cards&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Secondary graphics slots, RAID cards, network cards&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Primary graphics slot&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;PCIe link widths usually grow in powers of two, so common widths are &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;x4&lt;/code&gt;, &lt;code&gt;x8&lt;/code&gt;, and &lt;code&gt;x16&lt;/code&gt;. On consumer motherboards, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;x4&lt;/code&gt;, &lt;code&gt;x8&lt;/code&gt;, and &lt;code&gt;x16&lt;/code&gt; are the ones you see most often.&lt;/p&gt;
&lt;p&gt;The physical slot length is not the same as the actual link width. A long &lt;code&gt;x16&lt;/code&gt; slot may only be wired for &lt;code&gt;x4&lt;/code&gt; or &lt;code&gt;x8&lt;/code&gt;; an M.2 slot is usually &lt;code&gt;x4&lt;/code&gt;, but whether it connects to the CPU or chipset also matters.&lt;/p&gt;
&lt;h2 id=&#34;when-bifurcation-happens&#34;&gt;When Bifurcation Happens
&lt;/h2&gt;&lt;p&gt;PCIe device initialization can be roughly divided into several stages:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Decide PCIe bifurcation, meaning how the lanes are split.&lt;/li&gt;
&lt;li&gt;Run Root Port Training to train link speed and width.&lt;/li&gt;
&lt;li&gt;Perform PCI enumeration so the system can discover devices.&lt;/li&gt;
&lt;li&gt;Configure PCIe features such as power management, error reporting, and timeout control.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bifurcation happens very early. The system must first know whether a group of lanes is one &lt;code&gt;x16&lt;/code&gt;, two &lt;code&gt;x8&lt;/code&gt; links, or several &lt;code&gt;x4&lt;/code&gt; links before later Training and enumeration know how many Root Ports should be handled.&lt;/p&gt;
&lt;p&gt;When bifurcation is configured incorrectly, common symptoms include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An expansion card only detects one SSD.&lt;/li&gt;
&lt;li&gt;Devices disappear after a riser or adapter card is installed.&lt;/li&gt;
&lt;li&gt;A graphics card link width drops from &lt;code&gt;x16&lt;/code&gt; to &lt;code&gt;x8&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The expected bifurcation option is missing from the BIOS.&lt;/li&gt;
&lt;li&gt;The motherboard manual says a split mode is supported, but only on a specific slot or with a specific CPU.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;mode-one-hard-strap&#34;&gt;Mode One: Hard Strap
&lt;/h2&gt;&lt;p&gt;Hard Strap is a hardware method. The motherboard uses fixed pins, pull-up or pull-down resistors, or wiring to determine the PCIe split mode at the hardware level.&lt;/p&gt;
&lt;p&gt;This is common for CPU-attached PCIe lanes on consumer desktop platforms. For example, if the CPU provides one group of &lt;code&gt;x16&lt;/code&gt; lanes, the motherboard vendor can design the board as:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Configuration&lt;/th&gt;
          &lt;th&gt;Typical use&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;One primary graphics slot&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8+x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Two graphics slots&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8+x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;One graphics slot plus two CPU-attached M.2 slots&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Hard Strap is stable, simple, and low-cost. The motherboard vendor decides lane routing during PCB design, and users usually cannot freely change it in the BIOS afterward.&lt;/p&gt;
&lt;p&gt;Its downside is poor flexibility. Once the board layout is fixed, a slot designed only as &lt;code&gt;x16&lt;/code&gt; cannot become &lt;code&gt;x4+x4+x4+x4&lt;/code&gt; unless the PCB is redesigned. That is why many consumer motherboards do not expose bifurcation options in the BIOS even if the CPU theoretically supports splitting.&lt;/p&gt;
&lt;p&gt;For ordinary users, the most direct takeaway is this: whether a board supports PCIe bifurcation depends first on motherboard design, not only on CPU specifications.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/image.png&#34;
	width=&#34;1008&#34;
	height=&#34;506&#34;
	srcset=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/image_hu_9da109a68bf2083b.png 480w, https://knightli.com/2026/05/02/pcie-bifurcation-modes/image_hu_ca9e4232e5981219.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;12th Gen CPU bifurcation&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;199&#34;
		data-flex-basis=&#34;478px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;mode-two-soft-strap&#34;&gt;Mode Two: Soft Strap
&lt;/h2&gt;&lt;p&gt;Soft Strap is a software-configured method, but it does not necessarily mean a user-facing BIOS menu option. In many cases, this configuration is stored in the BIOS image or platform description area and is set by the motherboard vendor before shipping.&lt;/p&gt;
&lt;p&gt;PCIe Root Ports under the chipset often use a similar approach. Based on the actual board routing, the vendor can configure some Root Ports as independent &lt;code&gt;x1&lt;/code&gt; ports, or combine them into &lt;code&gt;x2&lt;/code&gt; or &lt;code&gt;x4&lt;/code&gt;. These settings are usually fixed in the BIOS image and take effect during platform initialization.&lt;/p&gt;
&lt;p&gt;Soft Strap has several traits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Some settings can be adjusted without changing the PCB.&lt;/li&gt;
&lt;li&gt;The configuration usually takes effect during early initialization.&lt;/li&gt;
&lt;li&gt;Changes generally require reflashing the BIOS or at least rebooting.&lt;/li&gt;
&lt;li&gt;The user interface may not expose the related options.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is why two motherboards with similar-looking hardware can distribute PCIe slots, M.2 slots, and onboard devices differently depending on BIOS version or vendor configuration.&lt;/p&gt;
&lt;p&gt;Soft Strap is still not magic. It can only adjust within the limits of the existing hardware routing; it cannot assign lanes to a slot that is not physically connected to them.&lt;/p&gt;
&lt;h2 id=&#34;mode-three-wait-for-bios&#34;&gt;Mode Three: Wait For BIOS
&lt;/h2&gt;&lt;p&gt;Wait For BIOS is the more flexible approach. Before PCIe Training begins, the platform waits for the BIOS to write the relevant registers, and the BIOS decides how wide each group of lanes should be.&lt;/p&gt;
&lt;p&gt;This is common on more expandable platforms, such as workstations, servers, and some Xeon platforms. These platforms provide more lanes and more complex slot combinations. If everything were fixed in hardware, motherboard adaptability would be much worse.&lt;/p&gt;
&lt;p&gt;The advantage of Wait For BIOS is flexibility:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The BIOS can offer options such as &lt;code&gt;x16&lt;/code&gt;, &lt;code&gt;x8+x8&lt;/code&gt;, &lt;code&gt;x8+x4+x4&lt;/code&gt;, and &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;One motherboard can adapt to different expansion cards.&lt;/li&gt;
&lt;li&gt;It is better suited for multi-NVMe adapters, PCIe backplanes, and server riser cards.&lt;/li&gt;
&lt;li&gt;Users can adjust the layout based on device count and bandwidth needs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The cost is that the platform and BIOS must work together. The CPU or chipset must support the desired split, the motherboard routing must match it, and the BIOS must expose or configure it. If any of those pieces is missing, users may not see usable bifurcation settings.&lt;/p&gt;
&lt;h2 id=&#34;common-split-combinations&#34;&gt;Common Split Combinations
&lt;/h2&gt;&lt;p&gt;Different platforms support different combinations, but common split modes look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/pcie-bifurcation-modes.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Common PCIe bifurcation modes&#34;
	
	
&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Original link&lt;/th&gt;
          &lt;th&gt;Common split&lt;/th&gt;
          &lt;th&gt;Typical use&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Single graphics card&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x8+x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dual graphics cards, or GPU plus high-speed expansion card&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x8+x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;GPU plus two NVMe SSDs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x4+x4+x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Four-drive NVMe adapter&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dual NVMe drives or dual-port high-speed expansion&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x2+x2&lt;/code&gt; or multiple &lt;code&gt;x1&lt;/code&gt; links&lt;/td&gt;
          &lt;td&gt;Less common; depends on platform support&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In DIY builds, the most common request is splitting one &lt;code&gt;x16&lt;/code&gt; slot into &lt;code&gt;x4+x4+x4+x4&lt;/code&gt; for a four-M.2 adapter card. The key detail is that cheap adapter cards without a controller chip only physically route the slot to multiple M.2 connectors. The card itself does not split PCIe lanes.&lt;/p&gt;
&lt;p&gt;If the motherboard does not support &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;, such an adapter usually detects only the first SSD. To use a multi-drive card on a board without bifurcation support, you need an expansion card with a PCIe Switch chip, which costs much more.&lt;/p&gt;
&lt;h2 id=&#34;bifurcation-vs-pcie-switch&#34;&gt;Bifurcation vs PCIe Switch
&lt;/h2&gt;&lt;p&gt;Bifurcation splits existing upstream lanes into multiple downstream ports. It does not increase the number of lanes; it only changes how they are allocated.&lt;/p&gt;
&lt;p&gt;A PCIe Switch is more like a PCIe switching chip. It connects one upstream link to multiple downstream devices, so the system can see more devices. It also cannot create extra upstream bandwidth out of nothing, but it can solve the problem of attaching multiple devices when the motherboard does not support lane splitting.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/pcie-switch-vs-bifurcation.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PCIe bifurcation versus PCIe Switch&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;The difference can be summarized like this:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Solution&lt;/th&gt;
          &lt;th&gt;Requires motherboard bifurcation support&lt;/th&gt;
          &lt;th&gt;Cost&lt;/th&gt;
          &lt;th&gt;Suitable scenario&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Chipless M.2 adapter&lt;/td&gt;
          &lt;td&gt;Yes&lt;/td&gt;
          &lt;td&gt;Low&lt;/td&gt;
          &lt;td&gt;Motherboard supports &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Expansion card with PCIe Switch&lt;/td&gt;
          &lt;td&gt;Not always&lt;/td&gt;
          &lt;td&gt;High&lt;/td&gt;
          &lt;td&gt;Board does not support splitting but needs multiple devices&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Before buying a multi-M.2 expansion card, check whether the motherboard BIOS supports the required split mode. A specification that only says “supports PCIe x16 slot” does not mean it can recognize four drives at once.&lt;/p&gt;
&lt;h2 id=&#34;buying-and-troubleshooting-advice&#34;&gt;Buying and Troubleshooting Advice
&lt;/h2&gt;&lt;p&gt;If you want to use PCIe bifurcation, check things in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirm that the CPU or platform supports the target split mode.&lt;/li&gt;
&lt;li&gt;Check the motherboard manual to see whether the target slot supports &lt;code&gt;x8+x8&lt;/code&gt;, &lt;code&gt;x8+x4+x4&lt;/code&gt;, or &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enter the BIOS and look for options such as PCIe bifurcation, PCIe lane configuration, or slot configuration.&lt;/li&gt;
&lt;li&gt;Confirm whether the expansion card is a chipless adapter or a card with a PCIe Switch.&lt;/li&gt;
&lt;li&gt;Check whether fully populating devices shares lanes with M.2, SATA, onboard networking, or other devices.&lt;/li&gt;
&lt;li&gt;After booting into the OS, use tools to inspect actual link width and device enumeration.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If an expansion card detects only one drive, check the BIOS split option first. If the BIOS has no related setting, it is probably not a driver issue; the motherboard is likely not splitting that group of lanes into multiple devices.&lt;/p&gt;
&lt;p&gt;If all devices are detected but speed is wrong, then check link Training. Cable quality, adapter card quality, slot routing, PCIe generation, and device compatibility can all cause a link to fall from Gen4 to Gen3, or even lower.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;PCIe bifurcation is about deciding how lanes are organized during early PCIe initialization. Hard Strap fixes the layout in hardware, Soft Strap uses platform configuration, and Wait For BIOS lets the BIOS set the mode before link training.&lt;/p&gt;
&lt;p&gt;For ordinary PC builders, the three most important conclusions are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A physical &lt;code&gt;x16&lt;/code&gt; slot does not necessarily split into multiple &lt;code&gt;x4&lt;/code&gt; links.&lt;/li&gt;
&lt;li&gt;Chipless multi-M.2 adapter cards depend on motherboard bifurcation support.&lt;/li&gt;
&lt;li&gt;Split support depends on the CPU, motherboard routing, and BIOS options together.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once you understand these points, &lt;code&gt;x16&lt;/code&gt;, &lt;code&gt;x8+x8&lt;/code&gt;, and &lt;code&gt;x4+x4+x4+x4&lt;/code&gt; in a motherboard spec sheet stop being just slot-length labels. They become clues for judging whether the board can meet your actual expansion needs.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
