SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The MFLAG mechanism allows a dynamic increase of the priority of DISPC real-time traffic, when required, based on the fullness of the DISPC DMA read and write buffers.
The mechanism is implemented for all DMA buffers (GFX, VID1, VID2, VID3 and WB). Only high-priority pipelines can contribute to the MFLAG mechanism.
Programmable buffer thresholds (hysteresis) for each pipeline are used to indicate when the local MFLAG signal for each pipeline is generated. All local MFLAG signals are ORed to generate a single DSS MFLAG out band signal, which is provided to the L3 interconnect for granting OCP requests. The out band DSS MFLAG signal is asynchronous to any ongoing OCP transaction.
The threshold for each pipeline corresponds to the fullness of the associated DMA buffer, and is defined by two threshold parameters:
By default, the MFLAG mechanism is disabled (DISPC_GLOBAL_MFLAG_ATTRIBUTE[1:0] MFLAG_CTRL bit field = 0x0), and the DSS MFLAG out band signal is low (deasserted). The arbitration scheme for the DISPC pipelines is the same as described in Section 11.2.4.6.7, DISPC Arbitration. That is, round-robin either between high-priority pipelines, or between normal-priority pipelines (if all pipelines are of normal priority).
When the DISPC_GLOBAL_MFLAG_ATTRIBUTE[1:0] MFLAG_CTRL bit field is set to 0x2, the MFLAG mechanism is enabled, and the DSS MFLAG out band signal is dynamically set to 0 or 1, depending on DMA buffers fullness and programmed threshold levels, as explained previously in this section. In this case, the arbitration scheme for DISPC pipelines is round-robin between those high-priority pipelines, which have asserted local MFLAG signals. If there are no high-priority pipelines with asserted local MFLAG signals, then the arbitration scheme is the same as described in Section 11.2.4.6.7, DISPC Arbitration.
The DISPC_GLOBAL_MFLAG_ATTRIBUTE[2] MFLAG_START bit defines additional rules for the MFLAG mechanism: