Skip to content

Releases: xrip/cmp50hx-unlock

CMP 50HX unlock v1.1.22

Choose a tag to compare

@github-actions github-actions released this 06 Oct 12:59

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on. Secure Boot can stay on: sign the EFI
with your key and enroll its signer in firmware db; see the
Secure Boot section in the included README. Linux kernel module
signing is separate from signing the EFI application.

CMP 50HX unlock v1.1.21

Choose a tag to compare

@github-actions github-actions released this 19 Sep 05:15

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x over the
locked stock driver, zero Xid). Requires UEFI boot with Above 4G Decoding
on and Secure Boot off.

Changes since v1.1.20 (Windows Gen2, tool v3.1.3)

Follow-up to the issue #48 field report — two Stage2 bugs the reporter
diagnosed precisely:

  • False gate OPEN 0 ms: a lost device reads 0xFFFFFFFF at every
    BAR0 offset, so the post-restart poll mistook a gone GPU for an open
    XP3G gate. It now waits for BOOT_0 to be a real value before trusting
    0x8E1B0, and logs device back / gate closed distinctly.
  • pnputil fallback never ran: the WMI PnP script printed PnP-OK
    even when Disable/Enable-PnpDevice threw non-terminating 0x80041001,
    so the more robust pnputil /restart-device was skipped. The WMI path
    now uses -ErrorAction Stop + try/catch and only reports success when
    it truly succeeded.

The -gen2 -hard log is now honest about whether the device recovers and
whether the gate ever opens on Windows — run it and post the log.

CMP 50HX unlock v1.1.20

Choose a tag to compare

@github-actions github-actions released this 18 Sep 17:46

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

Changes since v1.1.19

  • Boot hang on Linux/GRUB hosts fixed (issue #25, X299/Debian 12):
    the unlock succeeded, then the firmware hung on the first
    SimpleFileSystem call of the chainload fallback. That fallback is now
    gone entirely — the whole flow (loader preload, FAT16/FAT32
    parsing, handover) runs on BlockIo only; if no loader is preloaded,
    the app returns to firmware and BDS continues BootOrder without a
    POST, preserving the unlock.
  • The loader ladder gains \EFI\debian\{shimx64,grubx64}.efi, and after
    a ladder miss the ESP is walked recursively, matching loaders by
    file name
    — priority bootmgfw.efi → shimx64.efi → grubx64.efi
    → systemd-bootx64.efi → bootx64.efi (Windows first, then Linux;
    any distro, no more hardcoded \EFI\<distro> paths). Own binary is
    skipped by size (issue #36 stays fixed).
  • Diagnostics: BootOrder collection now prints how many entries were
    readable/active/collected — on the #25 host zero paths came out of
    NVRAM with no error; the next log names the culprit.

Not related to the recent Gen2 changes: the unlock completed before the
hang; the [gen2] probe line is a read-only diagnostic.

CMP 50HX unlock v1.1.19

Choose a tag to compare

@github-actions github-actions released this 18 Sep 17:19

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

Changes since v1.1.18

Follow-up to the issue #48 field report (tool v3.1.2):

  • read-back verify fixed — RMW fields whose set-bits overlap the
    clear-mask (LINK_CONFIG_0 bit19, PL_LINK_RATE bit18) were flagged
    [warn] even on perfect read-backs; fields are now compared against
    the computed value (reporter's suggestion — thanks!)
  • Stage2 ordering fixed — the policy + TLS targets are now written
    before the Root Link Disable; with the link down every BAR0 read is
    0xffffffff, so the old during-disable writes were noise
  • policy writes to a lost/down device are skipped with a single
    BAR0 unreachable line instead of [warn] spam
  • PnP restore falls back to pnputil /restart-device when the WMI
    cmdlets fail with HRESULT 0x80041001 on a lost device
  • after the PnP restart the tool fast-polls the XP3G gate (0x8E1B0)
    for 10 s — the GPU re-initializes (GSP reboots) and that is the
    window where the Linux service catches the gate open; the log now
    shows whether it ever opens on Windows

If Gen2 still does not come up, post the full -gen2 -hard log —
the gate trace answers where the blocker is.

CMP 50HX unlock v1.1.18

Choose a tag to compare

@github-actions github-actions released this 18 Sep 13:15

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

Changes since v1.1.17

  • Windows Gen2 rework (tool v3.1.1, issue #48): the -gen2 path now
    waits for the XP3G privilege gate (BAR0+0x8E1B0 = 0xFFFFFFFF) before
    writing the policy, skips the one-shot LTSSM kick when a field fails
    read-back (a kick on an unlatched policy burns the adoption for the
    whole power cycle), and — when adoption still fails — actually runs the
    Stage 2 fallback (Root Link Disable with PL0+TLS held + PnP restore)
    with -hard or the default Gen2AutoHard, instead of returning early.
    Read-back verification of the policy registers is also fixed: good
    writes no longer print [warn], so logs show the real failures.
  • Gen2 troubleshooting table added to efi-unlock-windows/README.md
    (log line → meaning → action).
  • If Gen2 does not come up: run 50HXInstaller.exe -gen2 -hard and post
    the full output — the log now pinpoints whether the gate, the policy
    writes, or the retrain is the blocker.

CMP 50HX unlock v1.1.17

Choose a tag to compare

@github-actions github-actions released this 17 Sep 05:43

chainload fix: the OS loader is found again — the pre-unlock BlockIo preload lost its call site in a refactor, so every boot since then fell into the SimpleFileSystem path that hangs on AMI firmwares. The loader is now also taken from the firmware BootOrder entries, FAT16 ESPs work, and our own boot volume is probed first.

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

CMP 50HX unlock v1.1.16

Choose a tag to compare

@github-actions github-actions released this 17 Sep 04:31

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

CMP 50HX unlock v1.1.15

Choose a tag to compare

@github-actions github-actions released this 16 Sep 17:32

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

CMP 50HX unlock v1.1.14

Choose a tag to compare

@github-actions github-actions released this 16 Sep 17:22

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.

CMP 50HX unlock v1.1.13

Choose a tag to compare

@github-actions github-actions released this 16 Sep 07:44

Experimental ReBAR activation support!

One-click installer for the CMP 50HX (TU102, 10de:1e09):

Linux — download cmp50hx-unlock-linux.run, then:

chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.run

Windows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install

Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.