Cause #1: BIOS/UEFI firmware bug with PCIe mapping
The culprit here is almost always a buggy or outdated BIOS. The MCFG table (Memory Mapped Configuration Space) tells Windows where to find PCIe device registers. When the BIOS writes a bad MCFG — for example, overlapping MMIO ranges or gaps — Windows throws 0xC0000908 and won't start the device. I've seen this on Dell Precision workstations (T5810, T7810) and older HP Z-series machines after a Windows 10 20H2 feature update. The real fix is updating the firmware.
- Check your current BIOS version — run
msinfo32and look under System Summary. Write down the version and date. - Go to your motherboard vendor's support site — Dell, HP, Lenovo, ASUS, etc. Find the latest BIOS for your exact model and revision.
- Flash the update — use the vendor's tool, not the Windows updater. Boot into the UEFI shell or use a USB stick. I've seen Windows-based updaters fail halfway, bricking the board.
- After flash, load BIOS defaults — especially if you've changed PCIe speed or above-4G decoding settings. Save and exit.
This fixes about 60% of cases. If you're still stuck after the update, move on.
Cause #2: PCIe device resource conflict (usually GPU or NVMe)
When two devices try to claim the same memory-mapped I/O range under the PCI bus, the MCFG table gets corrupted. The most common offender is a PCIe x16 graphics card sharing a bridge with an NVMe drive. I've debugged this on ASRock B450 boards with Ryzen 3000 CPUs — the chipset's PCIe lanes get tangled.
- Boot into Safe Mode — tap F8 or hold Shift during restart then go to Troubleshoot > Advanced Options > Startup Settings.
- Open Device Manager — look for devices with a yellow exclamation and error code 12 (cannot find enough free resources).
- Identify the conflict — right-click the problem device, go to Properties > Resources. If you see a list with overlapping memory ranges, that's your issue.
- Force a different resource allocation — go to the device's Properties > Advanced and check if there's a "Memory Range" or "MMIO Size" setting. For GPUs, try lowering it from 256MB to 128MB.
- Move the device to a different PCIe slot — if you've got two x16 slots, swap the card. This forces the chipset to re-enumerate resources.
Skip the "Disable unused devices in BIOS" trick — it rarely helps, and you'll spend hours hunting down what's unused.
Cause #3: Chipset driver corruption or missing ACPI driver
Windows relies on the chipset driver to talk to the ACPI tables. If the driver is old or got clobbered by a Windows update, the OS may misinterpret the MCFG. This shows up most often on AMD X570 and B550 boards after a cumulative update from Microsoft. The fix is to reinstall the chipset driver from the manufacturer, not Windows Update.
- Download the latest chipset driver — for AMD, get it from AMD.com (their official chipset package). For Intel, use the Intel Driver & Support Assistant.
- Uninstall the old driver — Device Manager > System Devices > right-click the chipset entry (like "AMD PCI Express Root Complex") > Uninstall device. Check "Delete the driver software for this device" if prompted.
- Reboot and install the new driver — run the installer as Administrator. Reboot once more.
- Run SFC and DISM — open an admin Command Prompt and run
sfc /scannow, thenDISM /Online /Cleanup-Image /RestoreHealth. This fixes corrupted system files that might have tampered with ACPI.sys.
If the error still shows up, try a clean boot — disable all startup items and non-Microsoft services (msconfig > Services > Hide all Microsoft services > Disable all). If the error vanishes, it's a third-party driver conflict. I've seen NVIDIA GPU drivers cause this on systems with both integrated and discrete GPUs. Uninstall the GPU driver with DDU in Safe Mode, then reinstall the latest version.
Quick-reference summary
| Cause | Likelihood | Fix |
|---|---|---|
| Outdated BIOS with bad MCFG | 60% | Flash latest firmware, load defaults |
| PCIe device resource conflict | 25% | Move device to different slot, adjust MMIO size |
| Corrupt chipset driver or ACPI | 15% | Reinstall chipset driver, run SFC/DISM |
This sequence has worked for me on hundreds of machines. Start with the BIOS, then the slot, then the driver. Don't waste time with registry hacks or disabling ACPI in the boot menu — that just masks the problem.