cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
207 Views
Registered: ‎04-23-2019

ZCU102 Petalinux, accessing specific memory addresses after PL to PS DMA transfer

Jump to solution

I've been building a system in which transfers 64 bit data packets from the PL to the PS DDR via an AXI DMA IP to then save this data using Petalinux to mounted SSD. (The goal is to save the data in a file in an SSD so if you have any suggestions on a simpler method please do drop any suggestions below)

I wrote a bare metal stand alone application. It handles the PL data capture with interrupts from a custom device driver that actually captures the data from an ADC. Then a DMA transfer sends the data to an address in RAM that I specify. On its own this application seems to be performing correctly. I'm running this application on the RPU core of the zynq ultrascale+ SOC and Petalinux is being run on the APU. Trouble seems to arise when I attempt to access the data in Petalinux from RAM. I've attempted a few methods so far that I've found on the internet but I am in no way a linux developer.

Any help understanding how to save this data in linux would be much appreciated. If any clarification is needed please just ask and I can elaborate more on what I have put together. I've just been stuck on saving the data in linux.

 

1 Solution

Accepted Solutions
Highlighted
111 Views
Registered: ‎04-23-2019

Thanks for the reply.

Devmem was the route I tried but when first attempted Devmem was restricted by default in the petalinux-config for the kernel. I was able to get a script working using Devmem but only after removing a kernel configuration that restricts Devmem access in the kernel hacking category. But ultimately this has already been solved.

 

Thanks again for the response

View solution in original post

2 Replies
Highlighted
Moderator
Moderator
116 Views
Registered: ‎11-09-2015

Hi camfrey@udel.edu 

How did you try to access the memory? With which command?

You need to be aware that the way to handle memory is completely different in baremetal and in linux as linux represent the memory as files and might not use it contiguously.

I guess if you just want to access a specific physical address you can do it from the userspace. using devmem command might be the way to go.

Regards


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
112 Views
Registered: ‎04-23-2019

Thanks for the reply.

Devmem was the route I tried but when first attempted Devmem was restricted by default in the petalinux-config for the kernel. I was able to get a script working using Devmem but only after removing a kernel configuration that restricts Devmem access in the kernel hacking category. But ultimately this has already been solved.

 

Thanks again for the response

View solution in original post