SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
For each line to be fetched/stored, the DMA engine:
The DMA engine generates scan addresses to read and write data to and from system memory. The base address defines the start address of the first pixel, and then the address is incremented based on the number of pixels per line, offset between two consecutive lines and number of lines. The byte address of each pixel in the frame buffer in the system memory is determined by:
Pixel address = Base address + x × bpp + (y × ((width × bpp) + increment))
where:
For YUV format, the pixel values are defined in two buffers (Y and UV). The base address of the Y buffers is defined in the DISPC_VIDp_BA_j[31:0] BA bit field. The base address of the UV buffers is defined in the DISPC_VIDp_BA_UV_j[31:0] BA bit field.
Table 11-62 summarizes the register settings for a simple access of a picture in the system memory.
Registers | Value |
---|---|
DISPC_GFX_BA_j/DISPC_VIDp_BA_j/DISPC_WB_BA_j | PBA, the physical base address of image in the memory |
DISPC_VIDp_BA_UV_j/DISPC_WB_BA_UV_j | PBA, the physical base address of UV buffers image in the memory |
DISPC_GFX_PIXEL_INC/DISPC_VIDp_PIXEL_INC/DISPC_WB_PIXEL_INC | 1 or other in pixel incremental value |
DISPC_GFX_ROW_INC/DISPC_VIDp_ROW_INC/DISPC_WB_ROW_INC (1) | 1 or other in row incremental value |
An interconnect request (128 bits) corresponds to one or several pixels, depending on the bits per pixel. Therefore, the DMA engine determines the appropriate burst sequence to optimize the fetching/storing of each new line. The DMA engine must prevent a single burst from crossing two lines. The DMA engine supports bursts of 2 × 128 bits, 4 × 128 bits, and 8 × 128 bits. The default burst size at reset time is 8 × 128 bits. The maximum burst size can be configured for each pipeline by setting the DISPC_GFX_ATTRIBUTES[7:6] BURSTSIZE or DISPC_VIDp_ATTRIBUTES[15:14] BURSTSIZE bit field. Because the burst size must be aligned to the burst boundary, in case of misalignment, the DMA engine may issue one request and/or smaller burst requests. Two types of burst are present which can be configured from the DISPC_GFX_ATTRIBUTES[29] BURSTTYPE or DISPC_VIDp_ATTRIBUTES[29] BURSTTYPE bit. Also, a force function is present configured from the DISPC_GFX_ATTRIBUTES[16] FORCE1DTILEDMODE or DISPC_VIDp_ATTRIBUTES[20] FORCE1DTILEDMODE or DISPC_WB_ATTRIBUTES[20] FORCE1DTILEDMODE bit for the following burst types:
Even if the DISPC_VIDp_ROW_INC register does not equal 1, the user can select 2-D burst. 2-D burst is used when the DISPC is configured to read one field of a frame by accessing only the even and odd lines.
The burst size is initialized once at configuration and can be changed when the DISPC is disabled.