01-24-2018 06:04 AM
Boards: picoZed Zynq z7030 x2
JTAG interface: Platform Cable USB II x2
SDK: version 2017.4
I have to program two picoZed boards to debug their peripheral communication. I have followed the steps in the article SDK New Features - Multiple cable and Multiple device Support. The Debug tool of Xilinx SDK does not have the option to concurrently detect and program two plugged-in picoZed boards in one Debug Configuration setting.
So I have opened two instances of SDK (say SDK 1 and SDK 2), each SDK opens a dedicated workspace (workspace 1 and workspace 2). I want to now load elf file and be able to have breakpoints in the code for each board.
I tried various XSCT commands using the Embedded System Tools Reference Manual. I start a hw_server on port 3122 but when I search for target boards, they are detected only on port 3121 (default) on localhost. Below is a screenshot to where 'targets' result in no hardware detection on other ports.
connect connect -new -port 3122 connect -list connect -set <tcf channel id># targets
The other option I tried was to have SDK 1 and SDK 2 connected to the same hw_server and port 3121 but use jtag commands to filter one Platform cable II for each SDK.
targets jtag ta jtag ta -ta configp jtag-port-filter "Xilinx/DLC10/<cable esn>" targets target <target id>
The two debug configurations load successfully on each board. Each debug configuration programs the FPGA of my choice but when I run the code, both SDKs are synchronised in their display. The XSCT window of SDK 1 and SDK2 mirror each other and also mirror each others breakpoints and code running. This defeats the whole purpose of having two distinct+independent debug tools. Please help.
01-25-2018 04:49 AM
It is so disappointing to find no help on Xilinx platform whether it is queries about peripherals, comms systems, Zynq boards or SDK setup.
I solved the problem. Start two hw_servers on two XSCT windows.
xsct% hw_server -s tcp:myfirstserver:3122 // leave this 1st server running xsct% hw_server -s tcp:mysecondserver:3122 // leave this 2nd server running as well
Open two SDK instances SDK1 and SDK2. In the XSCT window of each SDK, connect to one hw_server.
%xsct connect -url tcp:myfirstserver:3122 // in SDK1 %xsct connect -url tcp:mysecondserver:3122 // in SDK2
Then plug in the two Platform Cable(s) USB II with the PC. Turn on the dev boards. Type 'jtag targets' on SDK1 and SDK2 and both cables are detected + listed. Use jtag ta and filtering to select one cable in each SDK like the image below.
jtag ta -ta configp jtag-port-filter "Xilinx/DLC10/0000123456abc"
Launch Debug configuration ->Target Setup-> Connection ->click 'New'. Enter the new server details and select it instead of 'Local'. On the same window, click on 'Select' next to FPGA. In a pop-up window, select your new server from drop down menu. And possible do auto-search. It should list the relevant cable and target.
11-27-2018 05:11 AM
11-27-2018 10:19 PM
This will work, but the debug view will still show contexts from both the cables. So, if one of the cores from the other cable is suspended (by someone else who is debugging that cable), then you'll see context switches in your debug view. If you're interested in hiding the other cable completely, then you can use the jtag-port-filter option