cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
patrick.h.2330
Visitor
Visitor
654 Views
Registered: ‎05-10-2018

Xilinx SDK 2018.1 -> 2018.3 Program Flash Changes

Jump to solution

We recently switched over from using Xilinx 2018.1 -> 2018.3

The `program_flash` application behavior appears to have changed and I had some questions about that.

1. When trying to run our existing programs that utilize program_flash, program_flash no longer recognizes the ESN flag instead opting to run the first available. Example command:

./program_flash -f bin.bin -fsbl fsbl.elf -flash_type qspi_single -verify -cable type xilinx_tcf esn 251633000F3DA

****** Xilinx Program Flash
****** Program Flash v2018.3 (64-bit)
**** SW Build 2405991 on Thu Dec 6 23:36:41 MST 2018
** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.


WARNING: Failed to connect to hw_server at TCP:localhost:3121
Attempting to launch hw_server at TCP:localhost:3121

Connected to hw_server @ TCP:localhost:3121
Available targets and devices:
Target 0 : jsn-JTAG-ONB4-251633000F3DA
Target 1 : jsn-JTAG-ONB4-251633001E90A

WARNING: Invalid Cable ESN, using first available cable
Device 0: jsn-JTAG-ONB4-251633000F3DA-4ba00477-0

Citing this documentation it looks like it should work the same as the previous version of Xilinx SDK. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug1043-embedded-system-tools.pdf

Additionally trying "jsn-JTAG-ONB4-251633001E90A" and "jsn-JTAG-ONB4-251633000F3DA-4ba00477-0" did not work.

2. Is there a way to configure or pass args into program_flash to error out instead of picking the first available cable, this can cause problems when the program flashes the wrong board.

1 Solution

Accepted Solutions
andresb
Xilinx Employee
Xilinx Employee
514 Views
Registered: ‎06-21-2018

Hi @elewis_mec & @patrick.h.2330,

Thanks for posting your questions!

As, elewis_mec mentioned, you can list the targets available using the command:

%program_flash -jtagtargets -url tcp:localhost:3121

Available targets and devices:

JTAG chain configuration

--------------------------------------------------

1 Digilent 210299A17E85

        2    jsn-JTAG-HS3-210299A17E85-4ba00477-0  (name arm_dap  idcode 4ba00477)

        3    jsn-JTAG-HS3-210299A17E85-23727093-0  (name xc7z020  idcode 23727093)

4 Digilent 210352AD6C8AA

        5    jsn-Arty S7 - 50-210352AD6C8AA-0362f093-0 (name xc7s50 idcode 0362f093)

Then you can select the cable using 2 ways:

By name:

program_flash -f BOOT.bin -fsbl fsbl.elf -flash_type qspi_single -blank_check -verify -target_name jsn-JTAG-HS3-210299A17E85-4ba00477-0 -url tcp:localhost:3121

By id:

program_flash -f BOOT.bin -fsbl fsbl.elf -flash_type qspi_single -blank_check -verify -target_id 2 -url tcp:localhost:3121

 

I'm working with the engineering team to understand why UG1043 doesn't seem to reflect this operation.

I'll also investigate about the target unpowered issue reported by elewis_mec. I seem to be able to reproduce it.

Thanks,
Andres

View solution in original post

0 Kudos
2 Replies
elewis_mec
Visitor
Visitor
587 Views
Registered: ‎08-05-2019

Same problem here Patrick.

I tried in XSCT with the options of the UG1043 and tried also directly on command line. Options displayed are different when on Windows command line. Option "esn" is replaced with "-target_name" and "-target_id" (Vivado 2019.1). I have tried with the options listed in UG1043 without success with all possible variations for the serial number and with the options displayed on command line with the same result.

Whenever 2 targets are powered and connected to the PC, using the "-target_id" with the proper ID works. Will have to see with the serial numbers, it probably will work too.

When one of the target is unpowered while the JTAG probe is still connected on it (still multiple JTAG probes connected to the PC), it is not possible to specify the ID (nor the serial number when in XSCT) because the program_flash command fail with "ERROR: Given target do not exist" (or "WARNING: Invalid Cable ESN, using first available cable", "ERROR: Given target do not exist" depending on the command option used).

I tried to capture the targets properties with "targets -target-properties" in XSCT, filter the proper serial number with a script then invoke the program_flash command but I cannot workaround the target error when 1 of the target is unpowered.

Such a problem is annoying and I hope too that someone will gave advice how to make it work.

 

andresb
Xilinx Employee
Xilinx Employee
515 Views
Registered: ‎06-21-2018

Hi @elewis_mec & @patrick.h.2330,

Thanks for posting your questions!

As, elewis_mec mentioned, you can list the targets available using the command:

%program_flash -jtagtargets -url tcp:localhost:3121

Available targets and devices:

JTAG chain configuration

--------------------------------------------------

1 Digilent 210299A17E85

        2    jsn-JTAG-HS3-210299A17E85-4ba00477-0  (name arm_dap  idcode 4ba00477)

        3    jsn-JTAG-HS3-210299A17E85-23727093-0  (name xc7z020  idcode 23727093)

4 Digilent 210352AD6C8AA

        5    jsn-Arty S7 - 50-210352AD6C8AA-0362f093-0 (name xc7s50 idcode 0362f093)

Then you can select the cable using 2 ways:

By name:

program_flash -f BOOT.bin -fsbl fsbl.elf -flash_type qspi_single -blank_check -verify -target_name jsn-JTAG-HS3-210299A17E85-4ba00477-0 -url tcp:localhost:3121

By id:

program_flash -f BOOT.bin -fsbl fsbl.elf -flash_type qspi_single -blank_check -verify -target_id 2 -url tcp:localhost:3121

 

I'm working with the engineering team to understand why UG1043 doesn't seem to reflect this operation.

I'll also investigate about the target unpowered issue reported by elewis_mec. I seem to be able to reproduce it.

Thanks,
Andres

View solution in original post

0 Kudos