SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
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 and CAL_CSI2_CTXy_l[14] PACK_MODE = 0x1 (Frame mode).
OCP bursts cannot span over multiple slots for design simplification. Refer to section OCP Transaction Generation for more details.