cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
gdg
Explorer
Explorer
4,954 Views
Registered: ‎03-22-2017

Petalinux - Error: Multiple FPGA devices found, please use targets command to select one

Jump to solution

I use Petalinux to generate my Linux image for a ZynqMP. I would like to boot it via JTAG. I may use the petalinux-boot command but I have a host with two FPGAs connected (ZCU102, ZC706). How can I solve the issue?

 

See the error message:

$ petalinux-boot --jtag --prebuilt 3 
INFO: Launching XSDB for file download and boot.
INFO: This may take a few minutes, depending on the size of your image.
INFO: Configuring the FPGA...                                                                                                                           
INFO: Downloading bitstream to the target.
Multiple FPGA devices found, please use targets command to select one of: 4, 5                                                                          
    invoked from within
"::tcf::eval -progress ::xsdb::print_progress {::tcf::cache_enter tcfchan#0 {tcf_cache_eval {process_tcf_actions_cache_client ::tcfclient#0::arg}}}"
    (procedure "::tcf::cache_eval_with_progress" line 2)
    invoked from within
"::tcf::cache_eval_with_progress [dict get $arg chan]  [list process_tcf_actions_cache_client $argvar] $progress"
    (procedure "process_tcf_actions" line 1)
    invoked from within
"process_tcf_actions $arg ::xsdb::print_progress"
    (procedure "fpga" line 429)
    invoked from within
...
1 Solution

Accepted Solutions
gdg
Explorer
Explorer
7,627 Views
Registered: ‎03-22-2017

A colleague in my lab found a good solution. It is possible to associate a JTAG cable (a specific FPGA) to a hw_server on a specific port: 

 

hw_server -s tcp::3122 -e "set set jtag-port-filter <CABLE ID>"

This works great!

 

No need to have multiple FPGAs on the same hw_server.

View solution in original post

8 Replies
hpoetzl
Voyager
Voyager
4,947 Views
Registered: ‎06-24-2013

Hey @gdg,

 

Check out AR# 66943 on how to reach multiple boards.

 

Hope this helps,

Herbert

-------------- Yes, I do this for fun!
gdg
Explorer
Explorer
4,868 Views
Registered: ‎03-22-2017

@hpoetzl, thank you. That seems to work when I use XSDB, but problems arise when I run Vivado Ip Integrator and Vivado SDK. 

 

Is there a way to turn-off / detach all of the boards connected to an hw_server except one?

 

I cannot physically detach the JTAG cables and they are driving me crazy.

 

Thank you

0 Kudos
hpoetzl
Voyager
Voyager
4,856 Views
Registered: ‎06-24-2013

Hey @gdg,

 

Is there a way to turn-off / detach all of the boards connected to an hw_server except one?

You can use close_hw_target to close a specified hardware target in TCL.

 

For example ...

close_hw_target [lindex [get_hw_targets] 0]

... will close the first hardware target.

 

Hope this helps,

Herbert

-------------- Yes, I do this for fun!
gdg
Explorer
Explorer
7,628 Views
Registered: ‎03-22-2017

A colleague in my lab found a good solution. It is possible to associate a JTAG cable (a specific FPGA) to a hw_server on a specific port: 

 

hw_server -s tcp::3122 -e "set set jtag-port-filter <CABLE ID>"

This works great!

 

No need to have multiple FPGAs on the same hw_server.

View solution in original post

hpoetzl
Voyager
Voyager
4,802 Views
Registered: ‎06-24-2013

Hey @gdg,

 

A colleague in my lab found a good solution.

It is possible to associate a JTAG cable (a specific FPGA) to a hw_server on a specific port

This works great!

Glad that it could be resolved!

Not sure how that differs from AR# 66943 I suggested some time ago.

Anyway, let's wrap it up and mark this thread as solved.

 

All the best,

Herbert

-------------- Yes, I do this for fun!
gdg
Explorer
Explorer
4,793 Views
Registered: ‎03-22-2017

You are right indeed.

 

Thank you for your help!

 

0 Kudos
hpoetzl
Voyager
Voyager
4,787 Views
Registered: ‎06-24-2013

No problem!

 

Have fun,

Herbert

-------------- Yes, I do this for fun!
0 Kudos
sm7ed
Observer
Observer
945 Views
Registered: ‎05-16-2018

While the existing replies and the AR# 66943 were helpful, getting things working on my system wasn't a walk in the park in the end. I definitely learned a lot about the hardware server on the way. Here is what worked for me in a simple format:

- run 'xsdb' (Xilinx System Debugger) then 'connect' and then 'targets' and you get a list of the available targets preceded by a number ID.

$ xsdb
xsdb% connect
xsdb% targets

Look for the ID of the device you want to use. Next, use this ID in petalinux-boot. For me ID=14.

petalinux-boot --jtag --kernel --fpga --xsdb-conn "connect; targets 14" -v

I hope this is helpful! Cheers!

0 Kudos