Device Provisioner: Difference between revisions

From SEGGER Knowledge Base
Jump to navigation Jump to search
(→‎Device Table: - Added STM32U3)
Line 159: Line 159:
|-
|-
| [[ST_STM32WB0 | STM32WB0]]    || [[ST_STM32WB0_Security_Product_Lifecycle| STM32WB0 Security Product Lifecycle]]      || STM32WB0 Security Product Lifecycle management: readout protection, SWD debug disable.
| [[ST_STM32WB0 | STM32WB0]]    || [[ST_STM32WB0_Security_Product_Lifecycle| STM32WB0 Security Product Lifecycle]]      || STM32WB0 Security Product Lifecycle management: readout protection, SWD debug disable.
|-
| [[ST_STM32WBA | STM32WBA]]                  || [[ST_STM32WBA_Option_Bytes_Programming| STM32WBA Option Bytes Programming]]      || STM32WBA Option Bytes Programming and RDP protection management:<br>setting passwords RDP1 and RDP2 protection, device unlocking, flash write protection.
|-
|-
! colspan="3" | GigaDevice
! colspan="3" | GigaDevice

Revision as of 13:49, 23 July 2025

The Device Provisioner (DevPro) is a command line utility that supports provisioning of target devices (debug authentication, lifecycle management, ...).

Availability

DevPro is part of the J-Link software package and Flasher software package since V7.96.
It can be used with J-Link, J-Trace and Flasher probes/programmers.

Usage

DevPro [options] script-file
Option Default Description
-USB <Serial number>/<Nickname> Not set Select USB as host interface.
-IP <Hostname>/<Serial number>/<Nickname> Not set Select TCP/IP as host interface.
-if <SWD>/<JTAG> Not set Select SWD or JTAG as target interface.
-speed <n> Not set Set interface speed to n kHz.
-operation <Operation name> Not set Perform an operation from a script file.
-SetConfigVal <"Name=Value"> Not set Set a parameter for an operation.
-ScriptFile <Filename.pex> Not set Set a script file to be executed.
-Module <ModuleIndex> Not set Selects the module to communicate with (Supported for Flasher Hub models only).
Supported since V8.12e


Note:

Usage of the particular operations are described in the corresponding knowledge base page (listed in the section Supported Devices and Features) for that Device/Feature.

Demo

The following examples are simple demonstrations of custom script function declaration and passing of parameters to those functions.

HelloWorld()

Outputs "Hello World!" to the command line. It can be executed using the following command line parameters:
DevPro.exe -if swd -speed 1000 -operation HelloWorld -ScriptFile <PATH_TO_SCRIPT>\DeviceProvisioner_Demo_HelloWorld.JLinkScript

int HelloWorld(void) {
  JLINK_SYS_Report("Hello World!");
  return 0;
}

Add()

Takes two parameters, adds them together and outputs the result. It can be executed using the following command line parameters:
DevPro.exe -if swd -speed 1000 -operation Add -SetConfigVal a=5 -SetConfigVal b=3 -ScriptFile <PATH_TO_SCRIPT>\DeviceProvisioner_Demo_Add.JLinkScript

int Add(void) {
  U32 a;
  U32 b;
  U32 c;
  int r;
  //
  // Get input parameters
  //
  r = JLINK_GetConfigValue("a", &a);
  if (r < 0) {
    JLINK_SYS_Report("Error! Parameter a not specified");
    return -1;
  }
  r = JLINK_GetConfigValue("b", &b);
  if (r < 0) {
    JLINK_SYS_Report("Error! Parameter b not specified");
    return -1;
  }
  //
  // Output input parameters
  //
  JLINK_SYS_Report1("Input parameter a=", a);
  JLINK_SYS_Report1("Input parameter b=", b);
  //
  // Add parameters
  //
  c = a + b;
  //
  // Output result
  //
  JLINK_SYS_Report1("a+b = ", c);  
  return 0;
}

Echo()

Takes one input string and outputs it. It can be executed using the following command line parameters:
DevPro.exe -if swd -speed 1000 -operation Echo -SetConfigVal "Input=This is an input string" -ScriptFile <PATH_TO_SCRIPT>\DeviceProvisioner_Demo_Echo.JLinkScript

int Echo(void) {
  U8  Input[256];
  int r;
  //
  // Get input string
  //
  r = JLINK_GetConfigData("Input", &Input[0], 256);
  if (r < 0) {
    JLINK_SYS_Report("Error! DataFile not specified");
    return -1;
  }
  //
  // Output string
  //
  JLINK_SYS_Report(&Input[0]);  
  return 0;
}

Additional features

V7.96a

Script file search sequence

If a script file is not specified with a absolute path, that file will be searched in the following order:
1) In the current working directory
2) In the "Script" folder relative to Device Provisioner executable path (Default script files)

Example Output

C:\> DevPro -operation DbgAuthDiscover -if SWD -speed 4000 -ScriptFile PCode_DevPro_ST_STM32H5.pex
SEGGER Device Provisioner V7.96
Compiled Mar  7 2024 16:48:58

'q' to quit '?' for help

Command line: -operation DbgAuthDiscover -if SWD -speed 4000 -ScriptFile PCode_DevPro_ST_STM32H5.pex
J-Link log: Found device with ID: 0x00000474
J-Link log: Product state:
J-Link log: OPEN

Supported Devices and Features

The following table lists supported devices and features.

Supported Devices Supported features Description
ST Microelectronics
STM32H5 STM32H5 Security Product Lifecycle STM32H5 Security Product Lifecycle management:
debug authentication, data provisioning, device regression, product state transitions.
STM32U0 STM32U0 Option Bytes Programming STM32U0 Option Bytes Programming and RDP protection management:
setting passwords RDP1 and RDP2 protection, device unlocking, flash write protection, hide protection area configuration.
STM32U3 STM32U3 Option Bytes Programming STM32U3 Option Bytes Programming and RDP protection management:
setting passwords RDP1 and RDP2 protection, device unlocking, flash write protection.
STM32U5 STM32U5 Option Bytes Programming STM32U5 Option Bytes Programming and RDP protection management:
setting passwords RDP1 and RDP2 protection, device unlocking, flash write protection.
STM32WB0 STM32WB0 Security Product Lifecycle STM32WB0 Security Product Lifecycle management: readout protection, SWD debug disable.
STM32WBA STM32WBA Option Bytes Programming STM32WBA Option Bytes Programming and RDP protection management:
setting passwords RDP1 and RDP2 protection, device unlocking, flash write protection.
GigaDevice
GD32F4
GD32A4
GD32F4 and GD32A4 Option Bytes Programming GD32F4(except GD32F403) and GD32A4 Option Bytes Programming.
GD32F5 GD32F5 Option Bytes Programming GD32F5 Option Bytes Programming.
GD32H7 GD32H7 Option Bytes Programming GD32H7 Option Bytes Programming.
GD32W515 GD32W5 Option Bytes Programming GD32W5 Option Bytes Programming.
GD32VW5 GD32VW5 Option Bytes Programming GD32VW5 Option Bytes Programming.
Texas Instruments
CC2745 CC2745 HSM Programming Programming a HSM firmware to the HSM section
Toshiba
SmartMCD SmartMCD Password Protection Password Protection of the device