Hello,
For some reason the DMA drivers generated by the EDK 7.1 for my core write the same word twice when the buffer is of two words. For example I discovered that the DMA would write for rthe source buffer value of:
0xE5C7CDDE872BF27C it will write to the destination: 0xE5C7CDDEE5C7CDDE (note that it write the values from index =3D 0 to index =3D 3 twice) Can someone give me some insight into what is happenning?Thanks Here is the code:
Xuint8 SrcBuffer[MULTI_DES_SELFTEST_B=ADUFSIZE] Xuint8 DstBuffer[MULTI_DES_SELFTEST_B=ADUFSIZE]
// SrcBuffer is initialize via a loop to contain '0xE5C7CDDE872BF27C'
for( Index =3D 0; Index < MULTI_DES_SELFTEST_BUFSIZE; Index + 8) { SrcBuffer[ Index ] =3D 0xE5; SrcBuffer[ Index + 1 ] =3D 0xC7; SrcBuffer[ Index + 2 ] =3D 0xCD; SrcBuffer[ Index + 3 ] =3D 0xDE; SrcBuffer[ Index + 4 ] =3D 0x87; SrcBuffer[ Index + 5 ] =3D 0x2B; SrcBuffer[ Index + 6 ] =3D 0xF2; SrcBuffer[ Index + 7 ] =3D 0x7C;
}// THe DstBuffer is initialize to zeroes .=2E.
// The DMA is reset MULTI_DES_mResetDMA0(baseaddr)=AD;
// The DMA setup MULTI_DES_mSetDMA0Control(base=ADaddr, DMA_SINC_MASK | DMA_LOCAL_MASK );
// DMA transfer MULTI_DES_DMA0Transfer( baseaddr, baseaddr + MULTI_DES_WRFIFO_DATA_OFFSET, MULTI_DES_SELTEST_BUFSIZE);