drm/meson AmLogic Meson Video Processing Unit — The Linux Kernel documentation (2024)

VPU Handles the Global Video Processing, it includes management of theclocks gates, blocks reset lines and power domains.

What is missing :

  • Full reset of entire video processing HW blocks

  • Scaling and setup of the VPU clock

  • Bus clock gates

  • Powering up video processing HW blocks

  • Powering Up HDMI controller and PHY

Video Processing Unit

The Amlogic Meson Display controller is composed of several componentsthat are going to be documented below:

DMC|---------------VPU (Video Processing Unit)----------------|------HHI------| | vd1 _______ _____________ _________________ | |D |-------| |----| | | | | HDMI PLL |D | vd2 | VIU | | Video Post | | Video Encoders |<---|-----VCLK |R |-------| |----| Processing | | | | | | osd2 | | | |---| Enci ----------|----|-----VDAC------|R |-------| CSC |----| Scalers | | Encp ----------|----|----HDMI-TX----|A | osd1 | | | Blenders | | Encl ----------|----|---------------|M |-------|______|----|____________| |________________| | |___|__________________________________________________________|_______________|

Video Input Unit

VIU Handles the Pixel scanout and the basic Colorspace conversionsWe handle the following features :

  • OSD1 RGB565/RGB888/xRGB8888 scanout

  • RGB conversion to x/cb/cr

  • Progressive or Interlace buffer scanout

  • OSD1 Commit on Vsync

  • HDR OSD matrix for GXL/GXM

What is missing :

Video Post Processing

VPP Handles all the Post Processing after the Scanout from the VIUWe handle the following post processings :

  • Postblend, Blends the OSD1 only

    We exclude OSD2, VS1, VS1 and Preblend output

  • Vertical OSD Scaler for OSD1 only, we disable vertical scaler and

    use it only for interlace scanout

  • Intermediate FIFO with default Amlogic values

What is missing :

  • Preblend for video overlay pre-scaling

  • OSD2 support for cursor framebuffer

  • Video pre-scaling before postblend

  • Full Vertical/Horizontal OSD scaling to support TV overscan

  • HDR conversion

Video Encoder

VENC Handle the pixels encoding to the output formats.We handle the following encodings :

  • CVBS Encoding via the ENCI encoder and VDAC digital to analog converter

  • TMDS/HDMI Encoding via ENCI_DIV and ENCP

  • Setup of more clock rates for HDMI modes

What is missing :

  • LCD Panel encoding via ENCL

  • TV Panel encoding via ENCT

VENC paths :

 _____ _____ ____________________vd1---| |-| | | VENC /---------|----VDACvd2---| VIU |-| VPP |-|-----ENCI/-ENCI_DVI-|-|osd1--| |-| | | \ | X--HDMI-TXosd2--|_____|-|_____| | |\-ENCP--ENCP_DVI-|-| | | | | \--ENCL-----------|----LVDS |____________________|

The ENCI is designed for PAl or NTSC encoding and can go through the VDACdirectly for CVBS encoding or through the ENCI_DVI encoder for HDMI.The ENCP is designed for Progressive encoding but can also generate1080i interlaced pixels, and was initially designed to encode pixels forVDAC to output RGB ou YUV analog outputs.It's output is only used through the ENCP_DVI encoder for HDMI.The ENCL LVDS encoder is not implemented.

The ENCI and ENCP encoders needs specially defined parameters for eachsupported mode and thus cannot be determined from standard video timings.

The ENCI end ENCP DVI encoders are more generic and can generate any timingsfrom the pixel data generated by ENCI or ENCP, so can use the standard videotimings are source for HW parameters.

Video Clocks

VCLK is the "Pixel Clock" frequency generator from a dedicated PLL.We handle the following encodings :

  • CVBS 27MHz generator via the VCLK2 to the VENCI and VDAC blocks

  • HDMI Pixel Clocks generation

What is missing :

  • Genenate Pixel clocks for 2K/4K 10bit formats

Clock generator scheme :

 __________ _________ _____| | | | | |--ENCI| HDMI PLL |-| PLL_DIV |--- VCLK--| |--ENCL|__________| |_________| \ | MUX |--ENCP --VCLK2-| |--VDAC |_____|--HDMI-TX

Final clocks can take input for either VCLK or VCLK2, butVCLK is the preferred path for HDMI clocking and VCLK2 is thepreferred path for CVBS VDAC clocking.

VCLK and VCLK2 have fixed divided clocks paths for /1, /2, /4, /6 or /12.

The PLL_DIV can achieve an additional fractional dividing like1.5, 3.5, 3.75... to generate special 2K and 4K 10bit clocks.

HDMI Video Output

HDMI Output is composed of :

  • A Synopsys DesignWare HDMI Controller IP

  • A TOP control block controlling the Clocks and PHY

  • A custom HDMI PHY in order convert video to TMDS signal

 ___________________________________| HDMI TOP |<= HPD|___________________________________|| | || Synopsys HDMI | HDMI PHY |=> TMDS| Controller |________________||___________________________________|<=> DDC

The HDMI TOP block only supports HPD sensing.The Synopsys HDMI Controller interrupt is routedthrough the TOP Block interrupt.Communication to the TOP Block and the SynopsysHDMI Controller is done a pair of addr+read/writeregisters.The HDMI PHY is configured by registers in theHHI register block.

Pixel data arrives in 4:4:4 format from the VENCblock and the VPU HDMI mux selects either the ENCIencoder for the 576i or 480i formats or the ENCPencoder for all the other formats includinginterlaced HD formats.The VENC uses a DVI encoder on top of the ENCIor ENCP encoders to generate DVI timings for theHDMI controller.

GXBB, GXL and GXM embeds the Synopsys DesignWareHDMI TX IP version 2.01a with HDCP and I2C & S/PDIFaudio source interfaces.

We handle the following features :

  • HPD Rise & Fall interrupt

  • HDMI Controller Interrupt

  • HDMI PHY Init for 480i to 1080p60

  • VENC & HDMI Clock setup for 480i to 1080p60

  • VENC Mode setup for 480i to 1080p60

What is missing :

  • PHY, Clock and Mode setup for 2k && 4k modes

  • SDDC Scrambling mode for HDMI 2.0a

  • HDCP Setup

  • CEC Management

drm/meson AmLogic Meson Video Processing Unit — The Linux Kernel  documentation (2024)
Top Articles
Latest Posts
Article information

Author: Kerri Lueilwitz

Last Updated:

Views: 5894

Rating: 4.7 / 5 (67 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Kerri Lueilwitz

Birthday: 1992-10-31

Address: Suite 878 3699 Chantelle Roads, Colebury, NC 68599

Phone: +6111989609516

Job: Chief Farming Manager

Hobby: Mycology, Stone skipping, Dowsing, Whittling, Taxidermy, Sand art, Roller skating

Introduction: My name is Kerri Lueilwitz, I am a courageous, gentle, quaint, thankful, outstanding, brave, vast person who loves writing and wants to share my knowledge and understanding with you.