SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
The DMA write buffer has two functions:
Different write contexts do not have fixed locations in the write buffer to optimize the required buffer size. In fact, at a given point of time only some of the contexts are active while others are idle. There is no reserved space for unused contexts. Also, different contexts have different bandwidth requirements. Therefore, different amounts of data will pile up for different contexts when OCPO is stalled.
The buffer is divided into slots of 2(WDMA_SLOTSIZE+7) bytes that are dynamically allocated to a context. CAL maintains some internal status information to manage the buffer:
The write DMA uses the data qualifier provided along with data words to pack data in the local working memory. It has a barrel shifter to pack data when lines ends do not correspond to 64-bit word boundaries.
OCP bursts cannot span over multiple slots for design simplification. Refer to Section 9.2.3.10.5, CAL Write DMA OCP Transaction Generation, for more details.