The 20 GB path is supported by the updated
patches/cmp50hx/01-cmp50-stockflow.patch. It keeps the original 10 GB path
and adds dynamic WPR2 handling for the larger board.
Validated on 26–27 August 2026 with four cards:
PCI device: 10de:1e09
subsystem: 10de:1554
VRAM: 20480 MiB per card
driver: NVIDIA Open 610.43.03
kernels: 6.8.0-137-generic and 6.8.0-138-generic
BDFs: 01/02:00.0, 03:00.0, 81:00.0, 82:00.0
The old stockflow path used fixed WPR2 bounds from the 10 GB card. On the validated 20 GB board, stock FWSEC creates:
WPR high:low = 04ffee00:04ffe000
span = 00000e00
The mismatch caused NVIDIA Booter error 0x8d; GSP-RM then exhausted its boot
attempts and nvidia-smi found no devices.
The new patch reads the successful stock FWSEC result for each PCI BDF. It
accepts only span 0xe00, stores the low/high values in per-BDF state, and uses
those values for retry, handoff, and GSP-ready checks. An unexpected span or a
missing saved range fails closed. The temporary WPR-down sentinel is never
saved as stock state.
The same module can serve 10 GB and 20 GB CMP 50HX cards in one system. The saved WPR2 range is indexed by PCI bus/device address, not shared globally, so each card keeps the range returned by its own FWSEC run. The linked report validated four 20 GB cards; a mixed-size host still needs a separate check for every visible GPU after a cold boot.
Use the normal CMP 50HX path from this directory:
bash ./build.sh --card cmp50hx
sudo ./install.sh --card cmp50hx
The installer does not need a 20 GB flag. It detects PCI device 10de:1e09
and uses the dynamic WPR logic in patch 01. After the new module passes the
live check, make it persistent and reboot:
sudo /opt/cmp50hx-unlock/install-initramfs.sh
sudo reboot
After boot, check the driver and VRAM:
nvidia-smi -L
nvidia-smi --query-gpu=pci.device_id,memory.total --format=csv
sudo python3 /opt/cmp50hx-unlock/verify/verify.py \
/opt/cmp50hx-unlock/logs/rm-probe-TIMESTAMP-dev0.json
Replace the probe name with the exact file printed by the installer. On a multi-GPU host, run the verifier for every visible CMP card.
| Check | Result |
|---|---|
| Dynamic WPR / GSP | REFWSEC_STOCK_WPR_PASS, INPLACE_STOCK_BOOTER_AFTER_UNLOCK_PASS, CMP50_GSP_READY |
| VRAM | Four visible cards, 20480 MiB each |
| Compute | PASS_CMP50HX_ISSUE_RATE_AND_COUNTS |
| CUDA / Tensor | 3584 / 448 |
| ReBAR | PCI Region 1 and NVIDIA BAR1 16384 MiB on all cards |
| Kernel 138 | RT-count and ReBAR stages validated |
| Kernel 137 Gen2 | Validated on the reference X99 host only |
10de:1e09 with subsystem 10de:1554. Other subsystems
are not covered by this hardware result.If WPR validation fails, keep the log lines containing
CMP50_WPR_DYNAMIC_V1, the PCI BDF, and the reported WPR values. Do not replace
the dynamic capture with a fixed address.