NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
PDK/PDK VPS Software Overview
VPS Driver Introduction[edit]
VPS block diagram is as given below:
The Video Processing System (VPS) drivers could be broadly categorized as:
- Capture Driver
- Video Processing Elements (memory to memory) Driver
- Display Driver
VPS Driver Stack[edit]
Different layers or components/modules of VPS are: [edit]
- FVID2 Layer- FVID2 API interface is used for interaction between application and the VPS driver.
- Generic Video Driver layer- The driver layer handles the application-driver interface through the FVID2 APIs. The driver layer is also responsible for queue and de-queue of buffers, does the resource management, handles the driver-core interactions.
There are multiple driver possible because of various paths. Different path may use same IP like VIP1 Port A and VIP1 Port B path in Capture driver. It means only one of driver could be active at any point of time. Resource manager handles allocation resources to different drivers. The resource manager also handles the VPDMA list management as mentioned in the Core Layer.
Event manager parses the interrupt status register to figure out different kind of interrupts and propagates to different modules of VPS stack.
- Core layer- Core Layer invokes the appropriate HAL APIs. It is also responsible for creation of data transfer descriptors. Descriptors are 32 or 16 bytes in length and are created in the memory and provided to VPDMA for final action. Further, descriptors could be understood as command to Core specific DMA engine for data transfer to external memory/OCMC buffer or for setting different configuration like height/width of frame, scalar coefficients, etc.
These descriptors are required to arranged in specific sequence for different kind of operation or drivers like display, capture and M2M. For example, configuration descriptor for setting frame size should be placed before data descriptor which is responsible for actual data movement. These special arrangement of descriptors for different kind of operations are handled through list manager. The list manager is part of the resource manager.
- HAL layer- Hardware Abstraction layer – as name suggest – it abstracts multiple IPs of VPS and provides interfaces for upper layer of stacks.
- HW layer- TDAx SOC.