SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The DISPC DMA controller supports dynamic re-partition of the memory among the different channels.
At reset, each channel in DMA is allocated a uniform buffer size of 64KB. This 64KB is further partitioned into four 16KB blocks as shown in Figure 12-314. A 64KB buffer is enough to support ping-pong mode for resolutions up to 4K for YUV420/YUV422 formats and up to 2K for ARGB32 formats.
To support resolutions larger than 4K YUV or 2K ARGB (with ping-pong configuration), the default buffer size of 64KB per read channel is not sufficient. In such cases, the DISPC allows dynamic repartition of the allocated buffers across the different read channels. In this way each read channel can have a variable buffer size allocated to it, starting from a minimum of 16KB to a maximum of 256KB, in 16KB increments. The WB channel buffers cannot be re-allocated and remain fixed. This is the case even when WB channel is disabled. A particular configuration (for a specific example use-case) is as shown in Figure 12-315.
When the size of the buffer is changed, the thresholds shall be re-programmed by the user to reflect the new DMA buffer configuration.
The activity on a read channel is controlled by the timing of the Overlay/VP to which the channel is connected (or to the WB, if the channel is connected to WB in M2M mode). Due to this, the DISPC HW ensures that any change in a channel buffer setting is synchronized with regard to the Overlay/VP or WB (M2M mode) to which the channel is connected. In addition, the software also must follow the following programming sequences:
In a case where a channel is connected to multiple Overlay/VP (multi-cast use-case), then the channel belongs to the thread corresponding to the first (lowest numbered) Overlay/VP to which it is connected.