SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Two modes are supported by the WB channel, selectable through the DISPC_WB_ATTRIBUTES[19] WRITEBACKMODE bit:
In capture mode: The WB DMA buffers are flushed when the VFP period starts after the HFP following the last line, or when the external VSYNC is received, depending on which output (LCD/TV) the WB pipeline is capturing data, if the programmed value in DISPC_WB_ATTRIBUTES2[7:0] WBDELAYCOUNT bit field is set to 0. If the programmed value in DISPC_WB_ATTRIBUTES2[7:0] WBDELAYCOUNT bit field is set to N (1:255), the write buffers DMA are flushed N lines later. The DMA engine starts storing data to memory through the L3_MAIN-based interconnect as soon as enough data is available for the programmed burst size. When enabling/disabling the DISPC, the DMA buffers are flushed. The programmable thresholds low and high are used by the DMA engine to start and stop sending data to the L3_MAIN interconnect.
If the DISPC_WB_ATTRIBUTES2[7:0] WBDELAYCOUNT bit field is set to 0, the WB is reinitialized at the end of the last line of a frame at the beginning of the VFP signal. To let the WB complete the data write to the external memory, the highest possible value compatible with the vertical blanking period must be set.
In WB capture mode, if a new frame starts before the WB DMA buffers contents are fully written onto external memory, then the contents of the WB DMA buffers are lost (implying last few pixels/lines are corrupted in the captured frame in memory). The DISPC_IRQSTATUS[26] WBUNCOMPLETEERROR_IRQ interrupt bit indicates this situation and triggers every frame. The WBUNCOMPLETEERROR interrupt can be enabled through the DISPC_IRQENABLE[26] WBUNCOMPLETEERROR_EN register bit.
Software can avoid this by delaying the flush of WB DMA buffers through proper programming of the DISPC_WB_ATTRIBUTES2[7:0] WBDELAYCOUNT bit field.
In memory-to-memory mode: The WB pipeline is not synchronized to any internal or external timing generator. The WB pipeline stores the output of one of the overlay outputs or one of the pipelines. When enabling or disabling the DISPC, the DMA buffers are flushed. The programmable thresholds low and high are used by the DMA engine to start and stop sending data to the L3_MAIN interconnect.
Programmable high and low thresholds are used by the DMA engine to start and stop sending data to the L3_MAIN interconnect.
At the end of the frame, to completely drain the DMA buffer, some smaller bursts (even single requests) must be issued. To limit the number of interconnect requests from the DISPC, a number of IDLE cycles between requests can be inserted. IDLE cycles can be inserted only when WB is used in memory-to-memory mode. It is ignored when WB is in capture mode.
The number of IDLE cycles between requests can be activated and determined by: