Description of the Subsystem
39
SPRUHI7A – December 2012 – Revised June 2016
Copyright © 2012–2016, Texas Instruments Incorporated
High-Definition Video Processing Subsystem (HDVPSS)
1.1.4.1
Functional Module Descriptions
The HDVPSS module is composed of many processing blocks. There are multiple instances of most of
these processing blocks. The following module descriptions provide a high-level description of each
processing module.
1.1.4.1.1 VPDMA
The VPDMA module is capable of transporting data to and from an external memory location, most often
external DDR memory, buffering this data and then delivering the data as demanded to HDVPSS modules
as programmed. Additionally in a third-party configuration the VPDMA is capable of performing DMA
transfers as requested by the pulsing of an event strobe.
The VPDMA module is also capable of generating an address which may reach any location in the range
for which it is configured. It is capable of moving this data either to or from a Shared Buffer and ultimately
to or from a Client Buffer. For the two type of Client Buffers that are used to drive data into a subsystem
(Streaming Buffer and Random Access Buffer) data is either pushed into the buffer or pulled out of the
buffer dependent upon the direction of the data transfer.
For third-party DMA operations the data is transferred into a Client buffer, and then transferred out of the
Client Buffer to the transfer destination. These transfers are triggered by an Event pulse to each of the
Client Buffers which are Routing Buffer types.
1.1.4.1.1.1 VPDMA Details
The modules that source or sink data are referred to as clients. That is, the physical interface between the
processing module and external memory is called a client. A channel is the mechanism inside the VPDMA
that connects a specific memory buffer or transfer to a specific client.
Each of the channels has a type of data that it can support based upon the client that it services. Based
on this, four kinds of channel has been defined:
•
YUV Channel—Clients taking data in YUV format like DEI, NF, and so on.
•
RGB Channel—Clients taking RGB data like GRPX
•
Miscellaneous Channel—The Miscellaneous channel type is for any data type that is not a normal
video type. The Miscellaneous channel type makes no assumptions on data type and just passes the
data to the client and supports a single buffer for the client.
•
Free Channel—Used in video compositions. The Free channel data type is always ignored as it uses
the same data type of the descriptor that first calls the free channel.
The clients of the VPDMA are the physical connection to the 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 in the FRAME START Interface or it can be selected by a channel
attribute or to be controlled by an internal Frame signal controlled by the List Manager.
The VPDMA controller works on lists of descriptors. Descriptors define how data will be transferred
through different channel. In other words, channel is described through a Data Transfer descriptor. The
client that the channel is mapped to interprets the information in the descriptor to perform the requested
data transfer. List is a group of descriptors that makes up a set of DMA transfers that need to be
completed. List can contain any kind of descriptor without limitation and be of any size.
The CPU creates a list of descriptors in DDR in the order it wants them executed. The CPU then writes
the location of the list to the LIST_ADDR register, followed by writing the size, type of list and list number
of the LIST_ATTR register and posts the list. The List Manager module, which manages different lists, will
then schedule a DMA transfer to pull in the portion of the list that it can store in the internal VPDMA
memory. The List Manager will sequentially process descriptor in the list and performs the data transfers.