UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Reply

Zynq CDMA problem

Adventurer
Posts: 86
Registered: ‎07-20-2010

Zynq CDMA problem

Hi,

I am porting an application from microblaze and Kintex to Zynq and Cortex A9.

 

I was transmitting a large buffer of data ( 307200 KByte) by ethernet. Microblaze receive several packets. Every time it receives a packet it transfers this packet using CDMA in another memory buffer. For every CDMA transfer I did:

 

1) flush source memory range

2) flush destination memory range

3) execute an mbar(0)

4) Start CDMA and wait untili it is finished

5) invalidate destination memory range to force loading  updated data from DDR to cache when data are used.

All is working good.

 

Now I have ported this on Zynq, and I have not an mbar instructions, then I do this:

1) flush source memory range

2) flush destination memory range

3) Start CDMA and wait untili it is finished

5) invalidate destination memory range to force loading  updated data from DDR to cache when data are used. 

 

At the end of all I have some byte in destination memory that are not equal to source data buffer, in random position.

 

Does it exist an equivalent mbar instruction for Cortex A9?

 

 

Regards,

Begos

Teacher
Posts: 5,146
Registered: ‎03-31-2012

Re: Zynq CDMA problem

cortex a9 has a memory barrier instruction dmb (data memory barrier).
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
Adventurer
Posts: 86
Registered: ‎07-20-2010

Re: Zynq CDMA problem

Hi Muzaffer,

many thanks for information.

Begos