About this Release
Release date: 2026-06-26
Commits: 40 | Files changed: 19 | +1,929 / -610 lines
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen6 | PSX | Compliance RC2 (F/W version: 0a.05.0.017) |
| Gen5 | PFX | MR3 (F/W version: 06.09.0.056) |
| Gen5 | PSX | MR3 (F/W version: 07.09.0.056) |
| Gen4 | PFX/PSX | MR5 Patch3 (F/W version: 03.90.0.06C) |
Tested on switchtec kernel main with Ubuntu 24.04.5 LTS with kernel 6.8.0-79-generic.
What is New Since v4.4 Release?
Security & Device Configuration (Gen6)
New Commands
- Add
static-token-disablecommand — irreversibly disables static debug tokens (Gen6) - Add
debug-token-erasecommand — erases both debug token partition copies via new FWDNLD sub-command (Gen6) - Add debug token partition option to
fw-togglecommand (Gen6 only; RIOT core toggle remains Gen5 only) — reverted and re-added with fix - Add firmware and config toggle fix — resolves issue when both firmware and config are toggled together
Token & Secure State Enhancements
- Add support for
GEN6_VER_UPDATEandGEN6_DISABLE_STATICtoken types - Add CERT and DBG partition types
- Separate state-set into device-lock (phase 1) and state-set (phase 2 only)
- Add
--check-typeintegrity/signature option to DOK commands - Fix DOK auth flag ordering to match firmware
- Add Gen6 secure version update via token
- Consolidate I3C PID and CSECCF CLI options
Device Configuration
- Add customer fields and ECC fields for
device-config-set
BL1 Phase Support
- Refactor
get_configs_gen6to use MRPC 0x126 diagnostics plus 0x127 device/security config instead of raw OTP reads - Add BL1-phase fallbacks: derive secure state from OTP, read JTAG status from secure-status register
- Add
switchtec_sn_ver_get_with_phasefor explicit phase control ofsn_versub-command - Add
sn_ver_getphase check for Gen6 - Update CLI info display with bitmap-based security version format for BL1 phase
- Add all missing OTP DWORD defines (indices 11-13, 21-23, 25) and complete mask/LSB defines for I3C fields, algorithm disables, boot/failover disables, token disables, hash table disables, key hash statuses (BIAK0S-BIAK11S), and PUFAC
Build
- Add
HAVE_LIBCRYPTOguard fordok_key_revoke - Include
dok_key_revokein libcrypto configure check - Add missing cfg filenames for
dok add/revoke
Diagnostics
Eye Capture
- Add error and timeout polling for eye command — prevents hard-to-decode error messages on failure
- Add polling with configurable timeout for I2C eye captures (which were taking longer than expected)
- Add error reporting for in-progress eye captures
- Add Gen6 y-range check and increase timeout
- Add EIO check in
eye_statusfunction - Update Gen6 refclk input default from 0 to 100000 (sufficient sampling time per voltage/phase step)
- Add validation check for Gen6 refclk value
OSA
- Refactor OSA command arguments — replace
convert_hex_strwith default int arguments, removing unnecessary allocation/free cycles - Fix
osa-dump-configbugs
Event Counter
- Display ingress/egress direction in event counter output
- Fix egress bit encoding and decoding in event counter setup
LTSSM
- Remove incorrect byte passed as
ltssm_major→ltssm_minor
Bug Fixes
- RTC: Fix 64-bit value truncation in RTC counter
- MFG info: Fix OTP offsets for BL1 mfg info
- MFG info: Fix compatibility issue in mfg info display
- fw-toggle: Fix toggle in BL2 stage
- Token mask: Fix
-toption accepting 5/9 bit mask (update mask from 4 to 5) - Device config: Add header validation for device config binary files
- Reset: Add exit condition for the reset command
- SMS: Add formatting for SMS printf, minor version check
- Gen6 execute: Revert removal of mfg exec support — Gen6 still supports exec command; remove
-moption only - Octal parsing: Fix
endptrhandling that rejected08/09as invalid octal literals - MRPC error range: Add check to distinguish MRPC error codes from lock state errors
- Index off-by-one: Fix index to start from 0
- Read response: Add retry from device FD in
read_resp() - fw-exec help: Add Gen6 not supported message in
fw-exechelp output
Code Quality
- Refactor Gen6 security config and
sn_ver_getfor BL1 phase support (major restructuring oflib/mfg.c) - Refactor OSA command arguments — reduce 231 lines of hex string handling to 93 lines of direct int arguments
Pull Requests Included
| PR | Title |
|---|---|
| #376 | Fix pass |
| #377 | Secure changes 2 |
| #378 | OSA enhancements |
| #379 | Info compat fix |
| #380 | RTC 64-bit fix |
| #381 | Revert commit 4803b6f |
| #382 | BL2 fw-toggle fix |
| #383 | Remove -m option Gen6 |
| #384 | BL1 OTP hash |
| #385 | Eye changes |
| #386 | Secure changes 3 |
| #387 | Libcrypto check |
| #388 | Fix requests |
| #389 | Revert commit 4a3bcac |
| #390 | Inband eye fix |
| #391 | Add missing secure change |
| #371 | Event counter (arjunyg) |
| #392 | Increase eye timeout |
| #393 | Add help message |
| #394 | Add dev cfg set params |
| #395 | 08/09 not valid octal |
| #396 | Fix error message lock state |
| #397 | Toggle cfg and fw |