[FIX] NUC 12 Enthusiast (Serpent Canyon) boot-loops with a Thunderbolt eGPU powered on — hidden "USB4 CM Mode = CM Debug"
EDIT: The first version of this post recommended disabling the hidden "PCIE Resizable BAR Support" + the Failsafe Watchdog. After longer use one thing is certain: that combo is unstable — sometimes the machine booted, sometimes it didn't, with the settings verified intact between attempts. On top of that, any Save & Exit in BIOS Setup silently re-enables the hidden ReBAR (see the trap below). The post now describes the fix that has held through everything we threw at it: USB4 CM Mode = CM Debug.
- survives BIOS visits (F10 / Save & Exit) — nothing to re-import afterwards,
- cold boot with the enclosure powered, warm restart right after heavy GPU load, and a power outage (both devices regaining AC at once) all pass,
- no performance cost — the eGPU ends up in exactly the same state as a hot-plug (PCIe 4.0 x4, BAR1 256 MiB).
TL;DR: My NUC12SNKi72 would not boot with a powered TB eGPU attached (GIGABYTE AORUS RTX 5060 Ti AI BOX): it resets over and over before Windows ever loads, and while the enclosure is powered you can't even get into Setup (F2). No visible BIOS toggle helps. The fix is one hidden BIOS option, USB4 CM Mode = CM Debug: the firmware then skips Thunderbolt entirely during POST and Windows enumerates the eGPU on every boot — the same path as hot-plug, which always worked.
Hardware/firmware: NUC12SNKi72 (i7-12700H, Serpent Canyon), BIOS SNADL357.0065 (latest at the time), Win11. eGPU: GIGABYTE AORUS RTX 5060 Ti AI BOX on the rear Thunderbolt port.
Symptoms checklist (is this your bug?)
- Power on with the enclosure powered → fans spin up, the machine resets, and the cycle repeats — it never reaches Windows, and you can't get into Setup (F2) while it's looping.
- Warm restart from Windows and hot-plug in Windows → work (at first — the instability shows up over time).
- After a power outage (NUC + enclosure get AC back at the same moment) → loop again; power-cycling the NUC alone does NOT recover — you must power-cycle the enclosure.
- Every visible BIOS toggle is useless: Thunderbolt Boot Support, Wake from Thunderbolt, Fast Boot…
- Failsafe Watchdog + BIOS Self Recovery: after several failed boots a surprise "Flash Update / Updating main firmware" screen can appear — that's Self Recovery kicking in. It can also restore default settings behind your back, which makes your experiments look haunted. When results stop making sense, re-export the NVRAM and check what actually changed.
What did NOT work (so you don't repeat my two days)
| Attempt |
Result |
| Failsafe Watchdog = Disabled (Advanced → Onboard Devices) |
Stops the mid-POST resets and the silent Self-Recovery rollbacks — do it anyway, but the loops continued |
Hidden "PCIE Resizable BAR Support" = Disabled (SaSetup, offset 0x42B on BIOS 0065) |
Passed the first cold-boot and outage tests, then the instability returned: some boots fine, some looping, settings verified intact |
| Longer ITBT timeouts (Force Poweron 500→3000 ms, Connect Topology 5000→20000 ms) |
No change |
Trap: your settings revert behind your back
Two separate mechanisms undo your work:
- Every "Save & Exit" (F10) in BIOS Setup rewrites the
SaSetup variable with defaults for the items the UI doesn't show — my ReBAR=Disabled kept coming back as Enabled after every BIOS visit, which contaminated a whole day of A/B testing. Items in the big Setup variable (watchdog, ITBT timeouts, USB4 CM Mode) survive F10 fine.
- A watchdog-triggered Self Recovery restores defaults too (and re-enables the watchdog itself).
If you change anything in SaSetup, re-import it after every BIOS visit — or pick a fix that doesn't live there, like this one.
The fix: USB4 CM Mode = CM Debug
BIOS help text for the option: "CM debug — the system boots without any CM in BIOS phase, then boots to OS with the CM based on OS' preference by every boot." In other words: the firmware never touches the TB/USB4 topology during POST (so there is nothing to crash on), and the OS software connection manager enumerates the eGPU after boot — exactly the hot-plug path that always worked.
The option is hidden from the Setup UI and lives in the protected Setup variable (offset 0xADE on SNADL357.0065), so it takes the official AMI command-line tool (SCEWIN/AMISCE) to flip it. Step by step:
Step 1 — prepare the BIOS (enclosure powered OFF so you can get in)
Enter Setup with F2 and set:
- Security → Security Features → iSetupCfg Password Check = Bypass — without this, writes to the protected
Setup variable are refused.
- Advanced → Onboard Devices → Failsafe Watchdog = Disabled (recommended — ends the Self-Recovery surprises).
Save with F10 and boot into Windows (enclosure still off).
Step 2 — get SCEWIN/AMISCE 5.05
It's a generic AMI tool that ships inside MSI Center (works on non-MSI machines — it talks to the AMI firmware, not to MSI hardware).
Easy way: the SCEHUB repo — https://github.com/ab3lkaizen/SCEHUB — follow its README; its download script fetches MSI Center and extracts SCEWIN for you.
Manual way:
- Download https://download.msi.com/uti_exe/desktop/MSI-Center.zip and unzip it → you get
MSI Center_2.x.x.x.exe (version number varies).
- Get innoextract (https://constexpr.org/innoextract/) and run:
innoextract "MSI Center_2.0.75.0.exe" → produces an .appx file.
- The
.appx is just a ZIP — open it with 7-Zip (or rename to .zip) and pull out DCv2\Package\MSI Center SDK.exe.
- Run:
innoextract "MSI Center SDK.exe" → produces tmp\PrePackage\Engine Lib_3.x.x.x.exe.
- innoextract can NOT open this last one (it uses a newer Inno Setup 6.7) — get innounp 2.71+ (https://sourceforge.net/projects/innounp/) and run:
innounp -x "Engine Lib_3.0.0.75.exe".
- SCEWIN is now in
{app}\Lib\SCEWIN\5.05.01.0002\ — keep that whole folder together (SCEWIN_64.exe + amifldrv64.sys + amigendrv64.sys). Sanity check: file Properties → Digital Signatures → American Megatrends on all three.
Step 3 — export a backup
Open PowerShell or cmd as administrator, go to the SCEWIN folder and run:
SCEWIN_64.exe /o /s backup.txt
This is read-only and gives you a text dump of every BIOS setting. It is both your way back if anything goes wrong and the source for the next step. Keep a copy somewhere safe.
Step 4 — build the import file
Open backup.txt in Notepad and Ctrl+F for USB4 CM Mode. Create a new file cm_debug.txt containing:
- the first few lines of
backup.txt — the comment header up to and including the HIICrc32= line,
- the whole
USB4 CM Mode block, copied as-is,
- then move the
* from the current option to [03]CM Debug.
You never have to find the Token or Offset yourself — they are already inside the block you just copied; the export is where they come from. They differ between BIOS versions, which is why you copy the block from your own backup.txt and not from this post.
Mine looks like this (DON'T copy it verbatim — your header, Token/Offset and help text come from YOUR export):
// Script File Name : C:\egpu\backup.txt
// Created on 10/20/26 at 15:59:10
// AMISCE Utility. Ver 5.05.01.0002
// Copyright (c) 2021 AMI. All rights reserved.
HIICrc32= 43158FCE
Setup Question
= USB4 CM Mode
Help String
= FW CM only - The system boots with FW CM only in both BIOS and OS phase. (… keep the full line from your export …)
Token=1484
// Do NOT change this line
Offset
=ADE
Width
=01
BIOS Default
=[02]OS Dependent
Options=[00]Firmware CM Only
// Move "*" to the desired Option
[01]Software CM first
[02]OS Dependent
*[03]CM Debug
Step 5 — import it
Still in the admin prompt:
SCEWIN_64.exe /i /cpwd admin /s cm_debug.txt
Expected output: Password accepted … Script file imported successfully. (possibly with "Power cycle reset required").
Cannot update protected variable Setup. Please use /cpwd or Admin password does not exist → the Bypass from step 1 isn't set.
Step 6 — full shutdown and the real test
Shut Windows down completely (Shut down, NOT Restart — the import needs a power cycle). Power the enclosure ON, wait a few seconds, start the machine. It should boot normally; Windows brings the eGPU up by itself during boot.
Step 7 — verify
nvidia-smi --query-gpu=name,pcie.link.gen.current,pcie.link.width.current --format=csv
nvidia-smi -q -d MEMORY
On mine: PCIe gen 4, width x4, and "BAR1 Memory Usage / Total: 256 MiB" — the small BAR is normal over Thunderbolt and costs ~nothing on a x4 link.
Verified after the change
- Cold boot with the enclosure powered: ✅ every time
- Warm restart right after a 10-GiB CUDA training load: ✅
- Power outage — AC pulled from NUC and enclosure at once, plugged back: ✅
- F10 saves in BIOS Setup: ✅ CM Debug survives (it's in
Setup, not SaSetup)
- Performance unchanged vs. hot-plug: PCIe 4.0 x4,
nvidia-smi and CUDA work as before
Caveats
- With CM Debug the firmware does no Thunderbolt at all pre-boot: you cannot boot from a Thunderbolt drive, and devices behind the TB/USB4 ports won't work inside the BIOS UI (keyboards on the NUC's regular USB-A ports are fine). For an eGPU box this costs nothing.
- If you ever loop again: power off the enclosure → the machine boots → fix or revert by importing
backup.txt (SCEWIN_64.exe /i /cpwd admin /s backup.txt), or F9 defaults in Setup — but remember F9 re-enables the Watchdog (and with it the Self-Recovery surprises) and reverts everything else.
- A BIOS update will likely reset the setting — and it can also move the tokens/offsets, so do NOT re-import your old files on a new BIOS version. After an update, redo steps 3–5 with a fresh export (same Ctrl+F, two minutes) and keep per-version backups; a
backup.txt is only valid for reverts on the BIOS version it was exported from. The HIICrc32 line in the header exists to catch such mismatches, but don't rely on it.
- Only if you want to hunt hidden options on your own BIOS yourself: UEFITool/UEFIExtract https://github.com/LongSoft/UEFITool + IFRExtractor-RS https://github.com/LongSoft/IFRExtractor-RS on the BIOS capsule from the vendor's site.
Usual disclaimer: firmware settings surgery — your hardware, your risk. Make the full export backup first and know the recovery path before you start.