stapl config - 2022.2 English

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document ID
UG1400
Release Date
2023-01-02
Version
2022.2 English

Configure stapl target.

Syntax

stapl config <options>

Create a hw_target (jtag chain) and add all the hw_devices given in the scan-chain list to the hw_target. It also configures the stapl output file where the stapl data is recorded.

Options

Option Description
-out <filepath> Output file path. Only one of the -out and -handle options should be used. If the -out option is provided, the file will be explicitly opened in a+ mode.
-handle <filehandle> File handle returned by open command for output. Only one of the -out and -handle options should be used.
-scan-chain <list-of-dicts> List of devices in the scan-chain. Each list element must be a dict of device properties in the format {name <string> idcode <int> irlen <int> idcode2 <int> mask <int>}. For example: [list [dict create name <device1_name> idcode <idcode> irlen <irlen> idcode2 <idcode2> mask <mask>] [dict create name <device2_name> idcode <idcode> irlen <irlen> idcode2 <idcode2> mask <mask>]] The order of devices specified with scan-chain option should match the order of devices on the physical hardware where the stapl file is played back. Only one of the -scan-chain and -part options should be used.
-part <device-name list> List of part names of the Xilinx devices to add to the scan-chain. This option works only with Xilinx devices. This option can be used instead of the -scan-chain option.
-checksum Calculate stapl-data CRC and append it to the stapl file. If not specified, CRC 0 is appended.

Note(s)

  • For Xilinx devices, if the device_name or idcode is specified in the scan-chain information, the other parameters are optional. All the JTAG TAPs are added automatically to the scan-chain for Xilinx devices.

Returns

None.

Examples

stapl config -handle $fp -scan-chain [list [dict create name xcvc1902  idcode 0 irlen 0 idcode2 0 mask 0] [dict create name xcvm1802  idcode 0 irlen 0 idcode2 0 mask 0]]

Add xcvc1902 and xcvm1802 devices to scan-chain and use the file handle returned by Tcl open command, to record stapl commands.

stapl config -out mystapl.stapl -scan-chain [list [dict create  name xcvc1902 idcode 0 irlen 0 idcode2 0 mask 0] [dict create  name xcvm1802 idcode 0 irlen 0 idcode2 0 mask 0]]

Same as the previous example, but using the stapl file path as input,

instead of the file handle returned by Tcl open command.
stapl config -out mystapl.stapl -part xcvc1902

Add xcvc1902 device to scan-chain, using -part option.

stapl config -out mystapl.stapl -scan-chain [list [dict create  idcode 0x14CA8093 idcode2 1]]

Same as previous example, but specifying idcode and idcode2, instead of the part name.

stapl config -out mystapl.stapl -part [list xcvc1902 xcvm1802]

Add xcvc1902 and xcvm1802 devices to scan-chain, using the -part option.

connect
stapl config -out mystapl.stapl -scan-chain [list [dict create  name xcvc1902 idcode 0 irlen 0 idcode2 0 mask 0]]
jtag targets -set -filter {name == "xcvc1902"}
stapl start
device program <pdipath>
stapl stop

The above example demonstrate the correct order for creating a stapl file for a single device on a stapl target.

connect
stapl config -out mystapl.stapl -scan-chain [list [dict create  name xcvc1902 idcode 0 irlen 0 idcode2 0 mask 0] [dict create  xcvm1802 idcode 0 irlen 0 idcode2 0 mask 0]]
jtag targets -set -filter {name == "xcvc1902"}
targets -set -filter {jtag_device_name == "xcvc1902"}
stapl start
device program <pdipath>
jtag targets -set -filter {name == "xcvm1802"}
targets -set -filter {jtag_device_name == "xcvm1802"}
stapl start
device program <pdipath>
stapl stop

The above example demonstrate the correct order for creating a stapl file for multiple devices on a stapl target.