Hi
we have not been able to get the DMA on our AM335x based board to work. We would like to DMA to the GPMC bus. Currently we are doing CPU read/write on the GPMC bus but this is to slow for our system.
thanks
iw
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi
we have not been able to get the DMA on our AM335x based board to work. We would like to DMA to the GPMC bus. Currently we are doing CPU read/write on the GPMC bus but this is to slow for our system.
thanks
iw
Hi Irwin,
Please provide more information: what software/varsion are you using, what device are you accessing over the GPMC?
Hi Biser
thanks
iw
Hi, Biser:
I am the software engineer working with Irwin on this project. I did make the GPMC synch access to FPGA with 4 words working so far. Next we plan to use EDMA to assist GPMC to access FPGA with 16 words or 32 words working. Can you provide some document and example how to make it work. Thank you very much!
Jin
Post the source code of the setup of the DMA controller.
I assume that you messed up virtual and physical addresses.
regards
Wolfgang
Hi Irwin,
I don't have an option to physically check this use case for data transfers with FPGA, so will continue with suggestions to narrow down the problem on your side.
As I am understanding now you are able to write successfully needed content to GPMC/FPGA with EDMA transfers, but still not able to read content with EDMA.
Could you confirm that statement ?
One thing that is good to be checked is the exact EDMA channel associated with your transfers and corresponding GPMC Event (I guess it is GPMCEVT in your case) settings that is supposed to trigger/synchronize your GPMC Read transfers from the GPMC/FPGA. I am asking for such check because my first impression is that reading is not properly triggered...
You could refer "Event-Triggered Transfer Request" section in the processor TRM for details about the EDMA Trigger Events handling.
Dobry
Actually it is Jin, my own account is blocked out I just use Irwin's for now.
First let me update what is status.
I never test write yet. I start with read. I set it is burst of 4 words. It seems work in some degree. There still things are not quite right. When I read multiple of 4 words. The first four words always be repeated. I have no idea why.
The FPGA is GPMC burst 4 words synch access.
Here is the analyzer's output: See the addr line up6_addr, it starts with 0x20, when the second burst it starts with 0x20 again then the third one is 0x24, fourth one is 0x28...
Any idea?
Thank you!
Jin
You can send it to x0081122@ti.com
My points here are related to the event triggering settings used in your environment for EDMA handling.
In order to get reads from outside you will need proper EDMA triggering and event handling....
Hi, there:
The DMA access is working fine, but I see a different problem, the other GPMC chip select stop working. Any idea?
Thank you!
Jin
Jin, you will want to configure the GPMC to use the prefetch engine for your NAND device. The prefetch engine is tied to a specific CS using GPMC_PREFETCH_CONFIG.ENGINECSSELECTOR, so you don't have to do any sort of lockout for accesses to/from your FPGA.
As for your CS problem, ensure that the CS and memory map is correctly configuring in the CONFIG7 register for the associated chip select that you are using. You should be able to test this with simple single read/writes to each chip select. If your DMAs don't seem to be working to your FPGA, then most likely you don't have the proper source or destination address setup in the DMA configuration.
Regards,
James
Hi, James:
Thank you for your answer.
From what I understand what you said I only can connect the PREFETCH to the NAND device. For FPGA access I can't use PREFETCH. Is it correct?
Is there is a way I can use PREFETCH for NAND device and FPGA DMA access?
Jin