cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
575 Views
Registered: ‎10-31-2018

How to share DDR memory between CPU0 and CPU1 using openAMP

Jump to solution

Hello Folks,


I am running linux on cpu0 and baremetal application on cpu1 using openAMP.

I have a linux application which is  store some data in DDR and this data i want to read by baremetal application.

so i want to share linux application data with baremetal application.

how can i do this?

 

platform   zynq7020

vivado ver. 2018.2

 

Thanks in advance

0 Kudos
1 Solution

Accepted Solutions
Highlighted
263 Views
Registered: ‎10-31-2018

Problem was solved by changing some modification in application.(I was accessed vdma by user space)

View solution in original post

0 Kudos
4 Replies
Highlighted
Voyager
Voyager
549 Views
Registered: ‎08-02-2019

Hi shantaramjagtap1994@ ,

I have a system design similar to yours, but I don't need to use openAMP. Our system configured as Xapp1078.

I don't know which throughput you want to achieve or which kind of capacity you need.

I streaming a data, coming from

  1. FPGA --> Bare Metal --> Petalinux (I designed a double OCM buffer structure here to transfer data from Bare Metal to Petalinux)
  2. Petalinux --> Bare Metal --> FPGA as loopback(but in the middle I'm making some calculations) 
  3. I designed a circular OCM buffer structure here to transfer data from Petalinux to Bare Metal)

To do that, I'm using OCM memory. Because:

  1. It is big enough for my purpose. it has 64kB X 4 = 256kB capacity.
  2. It is the fastest way to transfer data.
  3. CPU0, CPU1 and FPGA can directly see its content, without doing anything.

If you interested with using OCM(On Chip Memory), I can give you some hints.

 

Saban

<------------------------------------------------------------------------------>

if(solves_problem) mark_as_solution <= 1 else if(helpful) Kudo <= Kudo + 1

<--- If reply is helpful, please feel free to give Kudos, and close if it answers your question --->
Highlighted
490 Views
Registered: ‎10-31-2018

Thanks for reply @sabankocal 


My baremetal video application is:

i stored image data in sdcard then its load into DDR and send to video mixer

SDCARD(image data)---> DDR ---> video mixer----> HDMI outpt

and it works well.

One thing is in sdcard i stored image data in RGBA format. I converted jpg/png image to RGBA format using online image converter tool, so now i need jpg/png to RGBA converter in c. If you have any clue or reference about this please help.


In openAMP:

Now I want to sdcard is access by linux and flow goes to as above.

0 Kudos
Highlighted
Voyager
Voyager
443 Views
Registered: ‎08-02-2019

Hi  shantaramjagtap1994@ ,

Normally there is a way, to define shared memory, that discussed in this thread. It needs to change device-tree.

Maybe by using openOMP, you have a better options. I don't have any idea about it.

 

Saban

<------------------------------------------------------------------------------>

if(solves_problem) mark_as_solution <= 1 else if(helpful) Kudo <= Kudo + 1

<--- If reply is helpful, please feel free to give Kudos, and close if it answers your question --->
0 Kudos
Highlighted
264 Views
Registered: ‎10-31-2018

Problem was solved by changing some modification in application.(I was accessed vdma by user space)

View solution in original post

0 Kudos