Skip to content

Releases: Microsemi/switchtec-user

Switchtec-user v4.4 Release

04 May 20:14

Choose a tag to compare

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 status command
  • 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_ERR event 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-read command (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-get command with sub-commands: device settings, security settings, customer settings (MRPC 0x127)
  • Add device-config-set-device, device-config-set-customer, device-config-set-security commands 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_type authorization flag (UID, PSID, UID+PSID, NONE) replacing uid_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-only and --skip-debug-protect flags
  • Add secure-state-get and jtag-status-get commands 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_LEN from 104 to 88

Debug Unlock

  • Update debug_unlock and debug_unlock_token functions 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 cap command framework for PCIe configuration space capabilities
  • Add multicast-show and multicast-set commands 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 --all flag

TWI (I2C) Command

  • Add twi command with reset, write, and read sub-commands (Gen5)
  • Support 7-bit and 10-bit slave addressing

Other

  • Add --all option for show command
  • Add BDF function as a public API call
  • Update fw-read to support KMT and debug token download

Bug Fixes

  • GPIO: Fix pin 0 handling — default log_pin_id, en_gpio_int, pin_val to -1; fix polarity display (was inverted)
  • OSA: Fix lane mask print (was using i instead of 1 as mask); fix data dump output structures; fix os_types width (uint8_tuint16_t to support Gen6 ERR_OS at bit 8); fix TS1/TS2 typo
  • AER-gen: Fix segfault on NULL input to convert_bitfield; fix 0x1 << atoi() to 1u << bit with 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; rename device-configdevice-config-get for 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 malloc return 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

10 Dec 19:43
abe2a1d

Choose a tag to compare

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:

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 command gas dump might impact system performance or cause instability

  • FABRIC commands
    fabric submenu commands are not yet supported on Gen5 device

Switchtec-user v4.2 Release

23 Jan 19:44

Choose a tag to compare

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:

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 command gas dump might impact system performance or cause instability

  • FABRIC commands
    fabric submenu commands are not yet supported on Gen5 device

  • DIAGNOSTIC commands
    diag submenu command are for Gen4 device only

Switchtec-user v4.0 Release

13 Dec 20:39

Choose a tag to compare

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 command gas dump might impact system performance or cause instability

  • FABRIC commands
    fabric submenu commands are not yet supported on Gen5 device

  • DIAGNOSTIC commands
    diag submenu command are for Gen4 device only

Switchtec-user v3.1 Release

31 Mar 19:11

Choose a tag to compare

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

  • diag submenu: 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: added Event ID field in text log files

  • fw-read: changed default output file name to image.fwimg for Gen4 and later devices

Fixes

  • status: fixed segmentation fault found on ARM platform only
  • log-parse: fixed missing Firmware/SDK version number when parsing mailbox log files

Limitations

  • GAS dump
    Switchtec-user command gas dump might impact system performance or cause instability

  • FABRIC commands
    fabric submenu commands are not yet supported on Gen5 device

  • DIAGNOSTIC commands
    diag submenu command are for Gen4 device only

Switchtec-user v3.0 Release

10 Dec 18:42

Choose a tag to compare

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_ext structure
  • Added device hardware revision information to info command output
  • Deleted boot phase information from mfg ping command output
  • Added API function to dump log definition file
  • Added -f option in log-dump to allow dumping parsed RAM and flash log
  • Added firmware and SDK version numbers in RAM and flash log files
  • Added version checking in log-parse to ensure the input log file and log definition file have matching versions
  • Added SEEPROM information in fw-info command output

Fixes

  • Fixed fw-read segmentation fault found when flash is empty
  • Fixed log-parse segmentation fault found when module name is empty
  • Fixed calculation of timestamp in log files
  • Fixed mailbox log parsing issues

Limitations

  • GAS dump
    Switchtec-user command gas dump might impact system performance or cause instability

  • FABRIC commands
    fabric submenu commands are not yet supported on Gen5 devices

  • DIAGNOSTIC commands
    diag submenu command are experimental and are not fully supported on all devices

Switchtec-user v2.6 Release for Switchtec Gen4 PFX/PSX/PAX MR3

16 Jun 05:03

Choose a tag to compare

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 command gas dump might impact system performance or cause instability

Switchtec-user Early FCA Release for Switchtec Gen5 PFX/PSX

03 Feb 20:20

Choose a tag to compare

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 following mfg submenu commands are supported:

    • ping
    • fw-transfer
    • fw-execute
    • boot-resume
    • image-list
    • image-select
    • mailbox
  • FABRIC commands
    fabric submenu commands are not yet supported

Switchtec-user v2.5 release for Switchtec Gen4 PFX/PSX/PAX MR-2

19 Jan 08:24

Choose a tag to compare

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

28 Sep 04:57

Choose a tag to compare

v2.4-rc3

Tag for v2.4 build on Aug/14/2020