Internal Modules
233
SPRUHI7A – December 2012 – Revised June 2016
Copyright © 2012–2016, Texas Instruments Incorporated
High-Definition Video Processing Subsystem (HDVPSS)
1.2.13 Video Port Direct Memory Access (VPDMA)
1.2.13.1 Introduction
1.2.13.1.1 Overview
The primary function of the Video Port Direct Memory Access (VPDMA) is to move data between external
memory and HD-VPSS processing modules that source or sink data. The modules that source or sink
data are referred to as "clients". The physical interface between the processing module and external
memory is called a client. A "channel (software mechanism)" is set up inside the VPDMA to connect a
specific memory buffer to a specific client. The VPDMA centralizes the Direct Memory Access (DMA)
control functions and buffering required to allow all the clients to minimize the effect of long latency.
The VPDMA supports descriptor based mode where lists of descriptors can be set up to configure all the
channels as they become available.
1.2.13.1.2 Basic Definitions
1.2.13.1.2.1 Firmware
All the DMA transfers are controlled by List Manager module inside VPDMA. List Manager needs to be
loaded with
FIRMWARE
, before any DMA transfer from memory, after the VPDMA reset.
The first MMR write to LIST_ADDR register after VPDMA reset should be the address of the memory
buffer(128-bit aligned, that is, last four bits of the buffer address should be zero) where the firmware is
stored. List Manager then schedules a DMA transaction to fetch the firmware and sets the list_attr.rdy bit
after the firmware loading is complete.
The followingcode is required to be included after the VPDMA clock is enabled in HD-VPSS:
*(volatile Uint32*)0x4810D004 = (Uint32)(firmware_buffer_address
& 0xFFFFFFF0); // Write buffer address of the firmware to register VPDMA-
>List_addr (offset:0x4)
while(*(volatile Uint32*)0x4810D008 != 0x00080000); // Wait for firmware to complete loading.
Wait on bit-field VPDMA->List_attr->rdy (offset: 0x4, bit 19)
1.2.13.1.2.2 Client
The clients of the VPDMA are the physical connection to the HD-VPSS processing modules that source or
sinks of the data and control when the channel can be updated. Each client can be configured to have
specific start event which allows for the channel data to start flowing to or from the external client. The
start event can be selected from one of the signals specified by bitfield
RD_LB_CLIENT_CTL_STATUS.frame_start or RD_CLIENT_CTL_STATUS.frame_start or
WR_CLIENT_CTL_STATUS.frame_start according to the type of the client. MMR of this type are
mentioned in the address offset range 0x300 - 0x3f4.
1.2.13.1.2.3 Channel
The VPDMA requires a channel to be setup for each group of transfers. The VPDMA supports four types
of channels: YUV, RGB, Miscellaneous and Free. The type of channels is based on the client that the
channel can be connected to as each client is expected to provide a specific type of data.All the channels
are described through a Data Transfer Descriptor that has a common format. The client that the channel is
mapped to interprets the information in the descriptor to perform the requested data transfer.