42. Display subsystem

42.1 Introduction

The display subsystem is targeted to drive up to 1080p60 display panels, through a parallel interface. It supports some on-the-fly compositions to offload the GPU and optimize the use of the system bandwidth: up to two layers, color conversion, blend, mirror, and a final YUV conversion.

The display subsystem can display a secure layer with data that cannot be read by nonsecure application, and with the display guaranteed stable.

42.2 Display subsystem main features

The display subsystem is built around LTDC:

42.3 Display subsystem implementation

The implementation is described in Section 43: LCD-TFT display controller (LTDC) .

42.4 Display subsystem functional description

42.4.1 Display subsystem block diagram

Figure 442 shows the functional blocks in the display subsystem, with their instance/design names:

Figure 442. Display subsystem block diagram

Figure 442. Display subsystem block diagram

The diagram shows the internal architecture of the display subsystem. On the left, an AXI bus (fetch from memory) connects to a RIMU (LTDC) block, which in turn connects to an AXI master (64 bits) within the LTDC block. An AHB bus (register config) connects to a RISAD (LTDC) block, which connects to an AXI slave (32 bits) within the LTDC block. The LTDC block also contains a Pix_24b// output. This output connects to a Parallel GPIO (24 bits) block, which contains two Pix24b blocks operating at 150 MHz - ReTime. The Parallel GPIO block connects to a HighRes parallel panel (1080p60), which also contains a Pix_24b// output. The entire subsystem is labeled MSv70429V1.

Figure 442. Display subsystem block diagram

42.4.2 Display subsystem pins and external signal interface

The details of the pins and external signal interface of the display subsystem can be found in the respective functional block sections in this reference manual.

42.4.3 Display subsystem clocks

Figure 443. Display subsystem clock diagram

Figure 443. Display subsystem clock diagram

The diagram illustrates the clocking scheme for the display subsystem. External clock inputs are ck_ker_ltdc, ck_icn_p_ltdc, and ck_icn_m_ltdc. The LTDC block receives pixel_clk, pclk, and aclk. RAMS and RAM clocks are shown. The LTDC block also outputs LCD_CLK. The RIMU (LTDC) and RISUP (LTDC) blocks receive pclk. The entire subsystem is labeled MSv70428V1.

Figure 443. Display subsystem clock diagram

The display subsystem is implemented with the following clock max frequencies:

42.4.4 Display subsystem security

This section is an application of RIF security architecture (see Section 3.5.3: RIF infrastructure ). The security of the display subsystem is based on the protection of its register map and its master access to the system interconnect, based on default RISUP and RIMU respectively.

The RISUP differentiates the access right of accesses performed toward the following RIF protected peripheral ID (see Table 20: RISUP indexes ):

The RIMU (RIMU_AXI_LTDC) differentiates the bus transactions emitted by the following AXI masters:

Security configuration of devices with never-secure display content

The security setup of devices that are never required to display any secure content is detailed below (the display subsystem works by default in a non-protected mode):

Note: Layer 2 is not fully featured, and lacks the resize and multi-planar capabilities of layer 1.

Security configuration of devices with a temporary secure content

For devices that temporarily display a secure content, it is expected that the secure content is displayed during short periods.

The working principle of the display subsystem is to segregate configuration spaces:

The configuration of the display subsystem for a secure content is the following:

buffer. The RIMU must be updated by a trusted domain application using RIFSC_RIMC_ATTR11.

The recommendation is to use a secure, privileged (optional), and CID = 0x4 setup. With this secure setup, the application must make sure that CID4 has access to the secure pixels area.

Table 379 lists vertically all the functional blocks of the display subsystem, and horizontally lists the associated RIF peripheral ID.

Note: Table color legend for recommended settings:

Table 379. Display subsystem RIF peripheral ID

All in display subsystemRISUP-slave
102103104
BlocksAddress range(LTDC) address x1Start address x4End address x4LTDC commonLTDC_L1LTDC_L2
LTDCCommon CFG00x00x00x30Y--
Interrupt-A0xD0x340x3C-Y-
Common CFG10x100x400x60Y--
Interrupt-B0x190x640x70--Y
(empty)0x1D0x740x74Y--
CRC0x1E0x780x7C--Y
Common CFG20x230x8C0xFCY--
L1-CFG0 (typ: video)0x400x1000x100-Y-
L1-CTRL0x410x1040x104-Y-
L1-CFG10x420x1080x1FC-Y-
L2-CFG0 (typ: UI)0x800x2000x200--Y
L2-CTRL0x810x2040x204--Y
L2-CFG10x820x2080x2FC--Y

42.5 Display subsystem programmable parameters

Steps to configure the various main use cases supported by the display subsystem are detailed below. They provide the global picture and settings of the display subsystem (not repeating information available in the local sections).

The display subsystem drives a display panel or bridge through the parallel interface. It allows panels to be driven up to 1080p60 (150 Mpixel/s), with either RGB888 or YUV422.

The RCC provides a pixel clock that drives both the LTDC and its synchronous parallel interface. Aside, the LTDC needs an AXI-Master clock to fetch pixels, and an APB-Slave clock to get configured.

The steps to follow are detailed below:

  1. 1. Setup security settings, with or without a secure layer depending on application needs, as described in Figure 442 .
  2. 2. Clock and reset:
    • – ck_ker_ltdc clock, provided by the RCC, as output pixel clock.
      One PLL of the RCC needs to be allocated to the display subsystem to provide the clock that is exactly at the wanted pixel rate for the output display. For instance, a standard 1080p60 requires a 148,50 MHz clock.
    • – LTDC_CLK is driven automatically by the LTDC (after some gating) from its above provided pixel_clock (ck_ker_ltdc from the RCC).
    • – ck_icn_p_ltdc is provided by the RCC to allow the LTDC configuration (default 200 MHz).
    • – ck_icn_m_ltdc is provided by the RCC to allow the LTDC AXI to work (default 400 MHz).
    See Section 14: Reset and clock control (RCC) for more details.
  3. 3. LTDC configuration:
    • – Setup the LTDC (such as input layers, display information, parallel interface, AXI settings) as described in the LTDC section.
  4. 4. Signal polarity:
    The polarities of the signals are impacted by the fact that the LTDC parallel interface signals are reclocked in the IO-ReTime logic, downstream of the LTDC. It results the following when configuring the polarities to match the panel on the parallel interface:
    • – The clock polarity (rising-vs-falling edge) must be configured in the IO-ReTime only (see Section 15: General-purpose I/Os (GPIO) ), and not in the LTDC output logic. The clock polarity logic in the LTDC must remain in its default post-reset state.
    • – The polarity of the Vs, Hs, and De synchronization signals, unlike for the clock polarity, can be configured directly in the LTDC output stage (see Section 43: LCD-TFT display controller (LTDC) ).
  5. 5. I/O configuration:
    Allocate an alternate GPIO bank to the display subsystem, with usually 28 pins needed: 24 pins for RGB888 and four others for the ancillary: Hs, Vs, De, and clock.

42.6 Display subsystem interrupts

The interrupts are described in sections of peripherals in this reference manual.

42.7 Display subsystem registers

All registers are described in Section 43: LCD-TFT display controller (LTDC) .