cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
30,067 Views
Registered: ‎04-18-2012

using both CPU cores on Zynq?

Hi,

 

Has anyone tried to use both cpu cores of zynq?

I did not find any example from Xilinx, only related information

in "Zynq-7000 EPP Technical Reference Manual UG585 (v1.2)".

It says that cpu0 must do these two things:

1. Write the address of the application for CPU1 to 0xFFFFFFF0.
2. Execute the SEV instruction to cause CPU1 to wake up and

jump to the application.

 

Found a "dual cpu demo" example on ARM web-site:

http://www.arm.com/files/pdf/ZC702_DS5_2.pdf

 

However, the attached source code doesn't do any of the

above two actions. How can the second cpu start then?

 

Regards,

 

Pramod Ranade

 

Tags (1)
124 Replies
Highlighted
Participant
Participant
2,259 Views
Registered: ‎11-18-2016

Hello greatgehar,

 

thanks for your reply. I think I have already tested this, but i will retry it as far as i can do.

at the moment i got a solution with petalinux on the first core and my app at the secound. this app is using lwip for fast RAW ethernet connection. i tested this standalone bare-metal application for a long time and it works pretty got. in kombination with petalinux on core 0 i have the problem, that i dont receive a "connected callback" from lwip and so i got no connection!

 

i made a screenshot from the console output:

at the beginning i start the softuart app on cpu0, than i start the core 1 by writing its start adress to 0xFFFFFFF0.

In red is my setup of the scutimer and the phy.

yellow is the connection on port 5001 (for data streaming)

green is a secound tcp connection on port 6001 (for debugging)

at the end i got an ethernet timeout.

 

could you give me more input what could be wrong?

petalinux+lwip.png
0 Kudos
Highlighted
Observer
Observer
2,250 Views
Registered: ‎07-24-2012

For a long time I have not started the second kernel as you describe.

Now I'm use remoteproc driver for start baremetal on cpu1 and rpmsg for communication between  Petalinux on cpu0 and cpu1 (see UG1186). In my system I not use Ethernet from cpu1. All network tasks run on Petalinux and it work fast and fine.

0 Kudos
Highlighted
Participant
Participant
2,247 Views
Registered: ‎11-18-2016

what is the major difference between this and UG1186? i ll taka a lock for this!
how fast is your ethernet sending data? in my company we have the problem, that only 10-15mb/s are able with petalinux. with bare metal i get 100mb/s and a little more
0 Kudos
Highlighted
Visitor
Visitor
2,133 Views
Registered: ‎03-10-2017

Hi johnmcd,

Do you still have that example?
Can you also forward it to me? I also need to have two standalone applications running in two separate cores.

Thanks.
0 Kudos
Highlighted
Contributor
Contributor
1,116 Views
Registered: ‎01-18-2018

Hi @julian.bauer

 

Please have a look here..

 

https://forums.xilinx.com/t5/OpenAMP/Zynq-AMP-CPU1-baremetal-access-to-gem0/m-p/847163#M470

 

It should be related to a missing TLB configuration for DDR to make CPU1 works with LwIP..

 

L

0 Kudos