cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
fmoraes
Visitor
Visitor
329 Views
Registered: ‎04-04-2019

ps7_init command takes a long time in remote access

 

Hello,

I am using Vivado/Vitis 2019.2 to remotely access a Pynq board. The hardware design is a basic Zynq design, just to execute a Hello World app also remotely. The remote computer, the one is connected to the board, is running the hw_server.

The Vivado remote access and bitstream programming went well. It's almost as quick as the local access. The issue is with the Vitis part, to download the Hello World app. It works but it takes more than 10 minutes. This is the script used in Vitis:

 

connect -path [list tcp::1534 tcp:my_remote_ip_address3121]
targets -set -nocase -filter {name =~"APU*"}
loadhw -hw /home/...../hello_world_pynq_vivado_2019.2/pynq-plat/export/pynq-plat/hw/design_1_wrapper.xsa -mem-ranges [list {0x40000000 0xbfffffff}]
configparams force-mem-access 1
targets -set -nocase -filter {name =~"APU*"}
stop
source /home/..../workspace/pynq-sw/_ide/psinit/ps7_init.tcl
ps7_init   <====
ps7_post_config
targets -set -nocase -filter {name =~ "*A9*#0"}
rst -processor
targets -set -nocase -filter {name =~ "*A9*#0"}
dow /home/.../workspace/pynq-sw/Debug/hello.elf
configparams force-mem-access 0
targets -set -nocase -filter {name =~ "*A9*#0"}
con

 

The command 'ps7_init' is the one taking a long time. Why is that happening (taking about 10 min to run it) ? is there a way to fix this ?

 

Best regards,

Alexandre Amory

 

0 Kudos
2 Replies
marcb
Moderator
Moderator
198 Views
Registered: ‎05-08-2012

Hi @fmoraes 

I wasn't able to see the same delay. For the first line, could you try "connect -host <hostname> -port 3121" instead?

Also, I see the IDE generated script under .sdk/ adds a reset. Does this help?

# rst -system
# after 3000
---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------
0 Kudos
stephenm
Moderator
Moderator
152 Views
Registered: ‎09-12-2007

This would be expected, what you are doing with the ps7_init.tcl is writing to the registers one at a time over a network.

 

If you want to speed it up then use the FSBL

 

connect -path [list tcp::1534 tcp:my_remote_ip_address3121]
targets -set -nocase -filter {name =~"APU*"}
loadhw -hw /home/...../hello_world_pynq_vivado_2019.2/pynq-plat/export/pynq-plat/hw/design_1_wrapper.xsa -mem-ranges [list {0x40000000 0xbfffffff}]
configparams force-mem-access 1
targets -set -nocase -filter {name =~"APU*"}
stop
source /home/..../workspace/pynq-sw/_ide/psinit/ps7_init.tcl
#ps7_init   <==== comment this out

dow zynq_fsbl.elf

con

after 500

stop
ps7_post_config
targets -set -nocase -filter {name =~ "*A9*#0"}
rst -processor
targets -set -nocase -filter {name =~ "*A9*#0"}
dow /home/.../workspace/pynq-sw/Debug/hello.elf
configparams force-mem-access 0
targets -set -nocase -filter {name =~ "*A9*#0"}
con

0 Kudos