Jump to content
Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Kernel parameters and module options

From CMP Wiki

Reference for every kernel command-line and nvidia module option that appears in the unlock work. The modprobe lines usually live in /etc/modprobe.d/cmp-pcie-gen2.conf (or -gen3), written by the installer; kernel-cmdline options go in GRUB or /etc/kernel/cmdline.

Kernel command line

Option What it does Source
iomem=relaxed Required for 170hx-rir-tool to read BAR0 fuse registers at all; also needed on EndeavourOS-type distros. Source: @lycorascence, 2026-10-20
intel_iommu=on / amd_iommu=on plus iommu=pt IOMMU in passthrough mode; appended by the cmpunlocker installer by default (backs up the boot file). Must also enable VT-d / AMD-Vi in BIOS. cmpunlocker install.sh
systemd.mask=gen2.service Recovery boot option: skip the early-boot Gen2 link retrain hammer if it misbehaves. cmpunlocker install output
NVreg_EnableGpuFirmware=0 (as nvidia.NVreg_EnableGpuFirmware=0) Disable GSP; with a dual-stack driver the unlock survives a proprietary-driver reload with no GSP panics. Needs the closed/CPU-RM driver. See VBIOS and firmware. Source: @zarknoth, 2026-10-27

LTS kernel plus the oldest cmpunlocker-supported driver avoids CONFIG_IO_DEVMEM_STRICT blocking the RIR tool. Source: @lycorascence, 2026-10-23

nvidia module options (NVreg_RegistryDwords)

Warning These registry dwords are global: they affect every NVIDIA GPU in the host. Do not use the Gen2/P2P lines on a mixed rig (e.g. with an RTX 4080), or you force that card to Gen2 too. Source: @ybryany, 2026-10-14

Key Meaning Where it comes from
RmForceEnableGen2=1 The dword that enables PCIe Gen2 on the 170HX. The one that matters for Gen2. cmpunlocker cmp-pcie-gen2.conf
RMPcieLinkSpeed=0x1 Gen2 link-speed bitfield (not "gen 1"). Shipped in the Gen2 conf. cmpunlocker
RMPcieLinkSpeed=0x5 Gen3 link-speed bitfield used by the 10 GB Gen3 patch (not "gen 5"). lixiangwuxian/170hx_tips
CmpGen3=1 Custom registry key read by the Gen3 patch; does nothing on a stock driver. lixiangwuxian/170hx_tips
ForceP2P=0x11 Arms the mailbox P2P trap (Morrowmake fork / ropuls gist). Source: @68x0, 2026-10-13
RMForceStaticBar1=1 Static BAR1 (ropuls gist, with the P2P set). ropuls gist
RMPcieP2PType=1;RMForceP2PType=1 Force the P2P type (ropuls gist). ropuls gist

Two full lines in use:

# cmpunlocker Gen2 (both cards)
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x1"

# Morrowmake P2P fork
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x1;ForceP2P=0x11"

# 10 GB Gen3 (lixiangwuxian/170hx_tips), with the patched module
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x5;CmpGen3=1" cmp_fuse_gen3=0

# ropuls gist (GLOBAL, 170HX-only rigs; forces all GPUs to Gen2)
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x1;RMForceStaticBar1=1;RMPcieP2PType=1;RMForceP2PType=1;ForceP2P=0x11"

Patched-module parameters (not stock)

These only exist on a patched nvidia module; check with modinfo -p nvidia | grep -E 'cmp_fuse|CmpGen3'. Adding them to a stock driver does nothing.

Parameter Meaning
cmp_fuse_gen3=0 Clear the Gen3-disabled fuse state at probe (10 GB Gen3). Set only this for Gen3; do not add cmp_fuse_gpc=0, cmp_fuse_tpc*=0 or cmp_fuse_flr=1.
cmp_fuse_bdf=0000:03:00.0 Restrict the fuse override to one card.

asm64 fork installer flags (compile-time)

--mclk-ndiv=N (HBM clock = N x 27 MHz, baked into the module), --mclk-timings=N (-50..+50 %), --p2p, --no-gen2, --no-iommu, --no-persist. Warning A baked --mclk-ndiv makes 170tune refuse to tune; --mclk-timings tCCD_L=3 hard-hangs the controller (reboot to recover). See cmpunlocker forks and Cooling and power.

Related