Releases: Microsemi/switchtec-user
Switchtec-user v4.4 Release
About this Release
Release date: 2026-05-04
Commits: 65 | Files changed: 32 | +6,731 / -840 lines
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen6 | PSX | Beta RC Final (F/W version: 0a.06.0.013) |
| 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.3 Release?
Gen6 Device Support
The majority of this release brings comprehensive Gen6 support across the tool.
Core
- Add PSX/PFX device IDs, decode functions, lane info, and link info for Gen6
- Add A1 revision (
SWITCHTEC_REVA1) support and HW revision display for Gen6 - Add Gen6 link status support in the
statuscommand - Add Gen6 RTC (real-time clock) get/set/reset command support
- Add Gen6 partition info, metadata, and flash info structures
- Add Gen6 firmware partition types and MRPC command IDs
- Add
SWITCHTEC_GLOBAL_EVT_ASSERT_ERRevent for Gen6 (generation-conditional logic in event summary iteration) - Add pipe loopback datapath type for Gen6
Diag
- Add Gen6 support for eye capture data structures and modes
- Update pattern monitor/generator to Gen6 — add new pattern types (PRBS_5, PRBS_20, CJPAT, CJTPAT) and Gen6 link speed option
- Fix pattern IDs to match
diag_pattern_type_enum; remove non-existent PRBS_13 and PCIE_52_UI_JIT - Add Gen6 LTSSM log dumping with Gen6-specific output structures and decode
- Update LTSSM states decode to match previous generation format
- Add Gen6 support for port equalization functions
- Update OSA commands for Gen6 output structures, new OS type TS0, and expanded stack IDs
- Add Gen6 MRPC support for pattern generator/checker
- Update OSA MRPC command IDs for Gen6
Firmware
- Add Gen6 support for
fw-readcommand (image get, KMT download, token download) - Add BL2 recovery image support (new header magic for Gen6)
- Fix BL2 stage firmware toggle issue on Gen6 I2C interface
- Fix Gen6 redundant partition handling (account for missing RIOT core partitions)
- Add metadata-based partition info retrieval for Gen6 BL2 I2C recovery mode
- Add SMS FMC firmware version GET support for Gen6
- Update MFG recovery mode MRPC command IDs for Gen6; add boot_resume Gen6 check
Security & Device Configuration (Gen6)
- Add
device-config-getcommand with sub-commands: device settings, security settings, customer settings (MRPC 0x127) - Add
device-config-set-device,device-config-set-customer,device-config-set-securitycommands with OTP warnings and confirmation prompts - Add DOK (Device Owner Key) commands:
dok-key-add(accepts RSA 4096-bit PEM key, auto-computes SHA-512 hash; requires libcrypto),dok-key-revoke - Add DOK configuration MRPC (0x128) with sub-commands: SIGNATURE, PROVISION, REVOKE
- Add
auth_typeauthorization flag (UID, PSID, UID+PSID, NONE) replacinguid_psid_type - Add integrity hash computation (
compute_sha512_dwords()) for auth_type=NONE flows - Support Gen6 two-phase secure state set (MRPC 0x129):
--debug-protect-onlyand--skip-debug-protectflags - Add
secure-state-getandjtag-status-getcommands for Gen6 - Add security settings OTP retrieval for Gen6 BL1 stage
- Show MHCP inbuilt key hash status and DOK key status in
mfg info - Remove token signals from device config security settings (no longer used by firmware)
- Update
SWITCHTEC_GEN6_TOKEN_LENfrom 104 to 88
Debug Unlock
- Update
debug_unlockanddebug_unlock_tokenfunctions for Gen6 - Add 2 new Gen6-specific token types
- Add new MRPC sub-commands and command IDs
Link Error Injection
- Add Gen6 support for TLP LCRC injection and CTO injection
- Fix unconditional
switchtec_perror— now only prints on error
New Features
Multicast Configuration (cap command set)
- Add
capcommand framework for PCIe configuration space capabilities - Add
multicast-showandmulticast-setcommands for per-port multicast configuration via GAS addressing - Add multicast overlay and overlay size configuration options
- Input validation for number of groups, index position, overlay size, and BAR
- Commands accept BDF of USP/DSP or
--allflag
TWI (I2C) Command
- Add
twicommand with reset, write, and read sub-commands (Gen5) - Support 7-bit and 10-bit slave addressing
Other
- Add
--alloption forshowcommand - Add BDF function as a public API call
- Update
fw-readto support KMT and debug token download
Bug Fixes
- GPIO: Fix pin 0 handling — default
log_pin_id,en_gpio_int,pin_valto -1; fix polarity display (was inverted) - OSA: Fix lane mask print (was using
iinstead of1as mask); fix data dump output structures; fixos_typeswidth (uint8_t→uint16_tto support Gen6 ERR_OS at bit 8); fix TS1/TS2 typo - AER-gen: Fix segfault on NULL input to
convert_bitfield; fix0x1 << atoi()to1u << bitwith range validation; reject invalid trigger values client-side - refclk: Fix compile issue (declaration after label); fix refclk functionality
- Memory leaks: Fix missing frees in TLP, AER-gen, and
switchtec_fw_part_data_bl2 - read_resp: Return positive errno so MRPC errors are reported correctly instead of Linux
ENODATA - Link error inject: Remove leftover debug
printf; fix validation using field sum instead of raw pointer arithmetic - Firmware: Clean up redundant config arg from
fw-read; renamedevice-config→device-config-getfor clarity - Multicast display: Fix off-by-one in multicast group count display (0 = 1 group per PCIe spec)
- UID/PSID display: Add DWORD alignment for easier reading in
mfg info - RTC: Rewrite RTC function to fix Gen6 inband interface issues; fix reset command arguments (RESET does not accept counter value)
Code Quality
- Fix leading/trailing whitespace and tab issues across the codebase
- Fix statement spacing (missing spaces before parentheses and braces)
- Add missing
mallocreturn value checks - Refactor OSA commands — move printing from lib to CLI layer
- Clean up RTC function logic for better flow and fewer conditionals
Pull Requests Included
| PR | Title |
|---|---|
| #359 | Fix GPIO command issue |
| #360 | Gen6 additions |
| #361 | OSA fixes |
| #363 | Gen6 additions pt2 |
| #364 | BL2 I2C fw update issue |
| #365 | Update resource unlock, KMT get |
| #366 | Refactor RTC |
| #367 | Code cleanup |
| #368 | TWI command (Gen5) |
| #369 | OSA cleanup |
| #372 | Gen6 updates |
| #373 | Ponderosa multicast |
| #374 | Update secure changes |
| #375 | Gen6 secure changes |
Switchtec-user v4.3 Release
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| 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) |
Note:
- The Switchtec-user was tested with Switchtec-kernel driver on Ubuntu 24.04.5 LTS with kernel 6.8.0-79-generic .
What is New Since v4.2 Release?
This release introduces the following new features, changes and fixes
Ismail Abdul (2):
Add AER event generate commands
Add support for Gen5 Port Eq Dump commands
Chetana Kaushik (3):
Fixing crosshair scan output for top and bottom right fields
Add Link error injection commands
Add support for Gen5 Eye capture
Logan Gunthorpe (8):
lib: Fix uninitialized variable use
lib: Cleanup whitespace damage in diag.c
lib: Fix incorrect initialization
lib: Don't use variable length arrays in osa_data_read_out structure
configure: Update autoconf scripts
lib: Move RSA_get0_key() closer to use
configure: Check for PEM_read_PUBKEY()
lib: Implement switchtec_read_pubk_file() using new openssl interfaces
Ben Reed (29):
Implement FTDC MRPC command log collecting
Added support for FTDC bin log parse
Added support for ltssm diag command for gen5
Update fw version string to expected size
Add missing free call
Added tlp injection command
Add support for Gen5 loopback commands
Add support for Gen5 pattern mon/gen
add command option for riotcore
add GPIO command
refactor convert_str_to_dword function
Add ordered set commands
add minor version to info command
Add gen5 ltssm str decode func
Add bitfield convert to aer-gen
Add Gen5 PRBS pattern monitor values
Add detailed print to pattern monitor
Add gen4 check to fix disable issue
Update pattern monitor cli options
Add pattern monitor disable changes
Update port-eq commands
Add new port_eq_coeff for gen5
Update tlp help message
Add validation for summary ptrs
Fix segfault observed
Add gen5 check for txtable print
Add clear option for ltssm log
Add status print to refclk
Add redundant image partition code
Limitations
-
GAS dump
Switchtec-user commandgas dumpmight impact system performance or cause instability -
FABRIC commands
fabricsubmenu commands are not yet supported on Gen5 device
Switchtec-user v4.2 Release
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen5 | PFX/PSX | RevB Beta (F/W version: 07.06.0.045) |
| Gen4 | PFX/PSX | MR5 Patch3 (F/W version: 03.90.0.06C) |
Note:
- The Switchtec-user was tested with Switchtec-kernel driver on Ubuntu 20.04.2 LTS with kernel 5.15.0-91-generic.
What is New Since v4.0 Release?
This release introduces the following new features, changes and fixes
Andrew Maier (1):
cli/progress: Fix int overflow with progress bar
Davide Cavalca (1):
cli: Fix format security warning
Kelvin Cao (31):
Revert "Revert "Add unknown type in enum switchtec_fw_part_type_gen4""
lib: Add Gen5 revB support in switchtec_fw_part_summary
cli: Fix 'fw-info' display indentation
cli: Return zero on success for 'fw-read' command
lib: Add Gen 5 support in switchtec_get_device_id_bl2
cli: Fix help message for 'fw_read' command
lib: Return error on log def reading failure
lib: Update header for parsed log file
cli: Add '--no-progress, -p' option to mfg fw-transfer
lib: Return -1 on MRPC failure in switchtec_status
cli: Display I2C device option only in help
lib: Fix SPI clock rate parsing issue
cli: Fix invalid SPI Clock Rate issue for 'mfg config_set'
cli: Apply ristriction on GAS access
cli: Add boot phase info in help messages for some main menu commands
cli: Add help message to 'mfg config-set' command
build: Fix ncurses static linking issue
lib: Fix bug in gasop_noretry_cmds_count calculation
lib: Update Gen5 device IDs per revB changes
installer: Use Inno Setup 6 to build installer
lib: Use local PAX ID for Gen/Variant setup
lib: Add Gen5 MRPC IDs into gasop_noretry_cmds
cli: Move command debug_unlock_token to the front of debug-unlock
cli: Add token file generation for secure unlock version update
Update version to 4.2
Reject duplicate KMSK key programming
cli: Fix an 'events -r' issue
cli: Add option [-s | --show-settings-only] to mfg config-set
cli: support temp command for Gen5
lib: Add API switchtec_die_temps for multiple die sensor readings
cli: Add verbose mode for 'temp' command
Paul Yan (28):
Introduce new GEN5 security config read functions
Add 'debug mode valid' flag
Change max number of KMSK from 4 to 10
Add attestation settings in Gen5 devices
Add extended OTP valid flags for Gen5 devices
Use new MRPC command IDs for Gen5 devices
Use new command to read security version from Gen5 devices
Use new MRPC command to set KMSK entry on Gen5 device
Use new MRPC command to set security state for Gen5 device
Use new MRPC command to read mailbox log from Gen5 device
Use new MRPC command to resume booting on Gen5 device
Use new MRPC command to unlock debug port on Gen5 device
Introduce security setting function for Gen5 device
Add function to read Gen5 security setting file
Print attestation settings in security settings display
Add function to read UDS file
Add option to specify UDS file in 'config-set'
Use new MRPC command to read active image index on Gen5
Add RIOT image active index to image list print
Use new MRPC command to set active image index on Gen5
Add '-r' option to 'image-select' command
Use new firmware update MRPC command for Gen5 device
Add Gen5 firmware image header type support
Add support for Gen5 images in switchtec image types
Introduce function to get Gen5 secure versions
Add RIOT secure version display in 'mfg info' output
Fix 'mfg info' command under BL2 boot phase
lib: Fix switchtec_security_config_set() fail issue
c52484 (1):
cli: Fix 'mfg info' display indentation
Limitations
-
GAS dump
Switchtec-user commandgas dumpmight impact system performance or cause instability -
FABRIC commands
fabricsubmenu commands are not yet supported on Gen5 device -
DIAGNOSTIC commands
diagsubmenu command are for Gen4 device only
Switchtec-user v4.0 Release
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen5 | PFX/PSX | RevA FCA (F/W version: 06.01.0.01f), RevA Alpha (F/W version: 06.03.0.031) |
| Gen4 | PFX/PSX | MR-1 (F/W version: 03.60.0.049), MR-2 (F/W version: 03.70.0.04f), MR-3 (F/W version: 03.80.0.056), MR-4 (F/W version: 03.90.0.05b) |
| Gen4 | PAX | MR-1 (F/W version: 04.60.0.449), MR-2 (F/W version: 04.70.0.450), MR-3 (F/W version: 04.80.0.456), MR-4 (F/W version: 04.90.0.45b) |
What is New Since v3.1 Release?
This release introduces the following new features, changes and fixes
Anita Zhang (2):
lib: Correct iterator variable used
lib: Correct and use helper to determine max number of ports
Cliff Pajaro (1):
Fix BDF search by matching a single character for function
Kelvin Cao (6):
lib: Fix boot phase setup in set_gen_variant()
lib: Introduce function switchtec_get_device_id_bl2
cli: Fix command info for variant and device ID
lib: Make helper phase_id_to_string global
cli: Fix command info for version report in BL1
cli: Report 'N/A' in command info for N/A information
Logan Gunthorpe (2):
lib: Fallback on EBADMSG error code
lib/platform/linux: Ensure entire switchtec_event_summary struct is set
Michael Piszczek (1):
Fixed invalid pointer in cli list when no devices found
Paul Yan (3):
Revert "Add fw redundancy flag setup feature"
Revert "Add unknown type in enum switchtec_fw_part_type_gen4"
Revert "Display fw partition redundancy flag in fw-info"
William A. Kennington III (1):
build: Don't strip binary by default
c52484 (5):
lib: add 32 GT/s link rate for Gen5 device
lib: add Gen5 data rate definition
Update version to 4.0
Add subcommand-level 'no retry' in gasop_cmd function
Add reading status retries in i2c_gas_write_no_retry function
Limitations
-
GAS dump
Switchtec-user commandgas dumpmight impact system performance or cause instability -
FABRIC commands
fabricsubmenu commands are not yet supported on Gen5 device -
DIAGNOSTIC commands
diagsubmenu command are for Gen4 device only
Switchtec-user v3.1 Release
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen5 | PFX/PSX | FCA (F/W version: 06.01.0.01f) |
| Gen4 | PFX/PSX | MR-1 (F/W version: 03.60.0.049), MR-2 (F/W version: 03.70.0.04f), MR-3 (F/W version: 03.80.0.056), MR-4 (F/W version: 03.90.0.05b) |
| Gen4 | PAX | MR-1 (F/W version: 04.60.0.449), MR-2 (F/W version: 04.70.0.450), MR-3 (F/W version: 04.80.0.456), MR-4 (F/W version: 04.90.0.45b) |
What is New Since v3.0 Release?
This release introduces the following new features, changes and fixes
Features and Changes
-
diagsubmenu: added the following new diagnostic commands
eye: display eye diagram of a port
crosshair: measure eye cross hair of a port
list-mrpc: list permissible MRPC commands
loopback: enable loop back test on specified ports
pattern: enable pattern generation and monitor
port-eq-txcoeff: dump port equalization coefficients
port-eq-txfslf: dump FS/LF output data
port-eq-txtable: dump far end port equalization table
rcvr-extended: dump RX mode and DTCLK
rcvr-obj: dump analog RX coefficients/adaptation objects
refclk: enable or disable the output reference clock of a stack
ltssm-log: display LTSSM log -
log-dump: addedEvent IDfield in text log files -
fw-read: changed default output file name toimage.fwimgfor Gen4 and later devices
Fixes
status: fixed segmentation fault found on ARM platform onlylog-parse: fixed missing Firmware/SDK version number when parsing mailbox log files
Limitations
-
GAS dump
Switchtec-user commandgas dumpmight impact system performance or cause instability -
FABRIC commands
fabricsubmenu commands are not yet supported on Gen5 device -
DIAGNOSTIC commands
diagsubmenu command are for Gen4 device only
Switchtec-user v3.0 Release
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen5 | PFX/PSX | FCA (F/W version: 06.01.0.01f) |
| Gen4 | PFX/PSX | MR-1 (F/W version: 03.60.0.049), MR-2 (F/W version: 03.70.0.04f), MR-3 (F/W version: 03.80.0.056), MR-4 (F/W version: 04.90.0.05b) |
| Gen4 | PAX | MR-1 (F/W version: 04.60.0.449), MR-2 (F/W version: 04.70.0.450), MR-3 (F/W version: 04.80.0.456), MR-4 (F/W version: 04.90.0.45b) |
What is New Since v2.6 Release?
This release introduces the following new features, changes and fixes
Features and Changes
- Added switchtec_list_free function
- Added support for Gen5 device
- Added firmware image generation checking before upgrading firmware to the device
- Changed SPI clock rate field in security settings from enum to float
- Added security setting file generation checking before writing OTP settings to the device
- Merged OTP state structure into security state and delete redundant
switchtec_security_cfg_state_extstructure - Added device hardware revision information to
infocommand output - Deleted boot phase information from
mfg pingcommand output - Added API function to dump log definition file
- Added
-foption inlog-dumpto allow dumping parsed RAM and flash log - Added firmware and SDK version numbers in RAM and flash log files
- Added version checking in
log-parseto ensure the input log file and log definition file have matching versions - Added SEEPROM information in
fw-infocommand output
Fixes
- Fixed
fw-readsegmentation fault found when flash is empty - Fixed
log-parsesegmentation fault found when module name is empty - Fixed calculation of timestamp in log files
- Fixed mailbox log parsing issues
Limitations
-
GAS dump
Switchtec-user commandgas dumpmight impact system performance or cause instability -
FABRIC commands
fabricsubmenu commands are not yet supported on Gen5 devices -
DIAGNOSTIC commands
diagsubmenu command are experimental and are not fully supported on all devices
Switchtec-user v2.6 Release for Switchtec Gen4 PFX/PSX/PAX MR3
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen4 | PSX/PFX | Beta (F/W version: 03.50.0.03e), MR-1 (F/W version: 03.60.0.049), MR-2 (F/W version: 03.70.0.04f), MR-3 (F/W version: 03.80.0.056) |
| Gen4 | PAX | Beta (F/W version: 04.50.0.440), MR-1 (F/W version: 04.60.0.449), MR-2 (F/W version: 04.70.0.450), MR-3 (F/W version: 04.80.0.456) |
What is New?
This release introduces the following new features, changes and fixes.
Features and Changes
- Added support for Gen4 automotive devices
- Improved error handling and provided more accurate error messages for the fw-update command
Fixes
N/A
Limitations
- GAS dump
Switchtec-user commandgas dumpmight impact system performance or cause instability
Switchtec-user Early FCA Release for Switchtec Gen5 PFX/PSX
About this Release
This release supports the following Switchtec devices and releases:
| Generation | Variant | Release |
|---|---|---|
| Gen5 | PFX/PSX | Early FCA (F/W version: 06.01.0.00c) |
What is New?
This release introduces the following new features, changes and fixes.
Features and Changes
- Add support for Gen5 device
- Add support for Gen5 device firmware images
- Add firmware image generation checking before upgrading firmware to the device
Fixes
N/A
Limitations
-
GAS dump
Switchtec-user command 'gas dump' may impact system performance or cause instability -
MFG commands
Only the followingmfgsubmenu commands are supported:pingfw-transferfw-executeboot-resumeimage-listimage-selectmailbox
-
FABRIC commands
fabricsubmenu commands are not yet supported
Switchtec-user v2.5 release for Switchtec Gen4 PFX/PSX/PAX MR-2
About this Release
This release supports the following Switchtec devices and releases.
| Generation | Variant | Release |
|---|---|---|
| Gen4 | PSX/PFX | Beta (F/W version: 03.50.0.03e), MR-1 (F/W version: 03.60.0.049), MR-2 (F/W version: 03.70.0.04f) |
| Gen4 | PAX | Beta (F/W version: 04.50.0.440), MR-1 (F/W version: 04.60.0.449), MR-2 (F/W version: 04.70.0.450) |
What is New?
This release introduces the following new features, changes and fixes.
Features and Changes
- Cli: Add option to 'fw-update' command for not printing progress bar
- Cli: Add option '-v | --verbose' to command 'mfg info'
- Lib: Add API switchtec_nvme_admin_passthru()
Fixes
This release includes the following fixes.
- Fix a PCIe address parsing issue 339e9a5
- Fix an I2C adapter address parsing issue da0c1e9
- Fix linux PCIe Bus-Dev-Func display issue 44f11d6
- Skip checking device secure version if update image is unsigned b925802
Limitations
- GAS dump
Switchtec-user command 'gas dump' may respond very slowly and cause the delay of subsequent command
responses.
Workaround: Use command 'gas read' to read a GAS location, instead of dumping all of the GAS locations.
Switchtec-user v2.4 release for Switchtec Gen4 PFX/PSX/PAX MR-1
v2.4-rc3 Tag for v2.4 build on Aug/14/2020