.. include:: /keyword.rst .. _display-g700-evk: =============== |G510-G700-EVK| =============== This page provides board-specific information on the display interfaces of the |G700-EVK-REF-BOARD|. For common display and compositor information, please visit the :ref:`Display page `. .. important:: All the bash commands shown here are based on |G700-EVK|. For |G510-EVK|, users can follow the same step to do the whole setup with changing the naming term from `700` to `510`. .. contents:: Sections :local: :depth: 1 Display Interfaces on |G510-G700-EVK-REF-BOARD| =============================================== |IOT-YOCTO| supports four display interfaces on |G510-G700-EVK-REF-BOARD|: * :ref:`DSI0 ` with DSI Panel ``STARTEK KD070FHFID015`` on |G700-EVK-REF-BOARD| and DSI Panel ``STARTEK KD070FHFID078`` on |G510-EVK-REF-BOARD| and |G700-EVK-REF-BOARD| p1v4 * :ref:`HDMI ` * :ref:`DisplayPort(DP) ` through USB Type-C port * :ref:`Embedded Display Port(eDP) ` with eDP Panel ``AUO G156han03`` * :ref:`DSI0 to LVDS ` with LVDS Panel ``KOE TX18D204VM0BAA`` The display system has two different pipelines - VDOSYS0 and VDOSYS1 - that can be used for any of the dual display combinations. These pipelines are abstracted as different `crtc` in the DRM framework. VDOSYS0 provides 3840x2160, 30Hz refresh rate, and VDOSYS1 provides 3840x2160, 60Hz refresh rate. Default `rity-demo-image` enables dual display DSI0 and HDMI. Other display combinations can be enabled by loading the `device tree overlay `_ during the flash programming process. .. _G700-evk-dsi-setup: .. _G700-evk-hdmi-setup: .. _G700-evk-dp-setup: .. list-table:: G510/G700 EVK Display Ports :widths: 50 50 50 :header-rows: 1 * - .. figure:: /_asset/sw_rity_display_G700-evk_display_interfaces_front.png - .. figure:: /_asset/sw_rity_display_G700-evk_display_interfaces_front_dsi.jpg - .. figure:: /_asset/sw_rity_display_G700-evk_display_interfaces_back_dsi.png * - top view without DSI panel installed (showing eDP, HDMI, DPoC) - top view with DSI panel installed - bottom view with DSI panel installed (showing DSI0, DSI1) .. note:: - DSI1 port (LCM2) is still not supported on |IOT-YOCTO| in v25.x. - The LVDS connector is not supported in the v25.x migration. Please refer to the v24.1 implementation. LVDS shares the same data lanes as the eDP connector, so only one of them can be used at a time. Lists of Display Device Tree Overlay ==================================== Starting from v25, none of the EVK default DTS files enable any display interfaces; loading the relevant DTBOs is required to enable them. For the G700 EVK, the default configuration loads ``display-dsi.dtbo`` and ``display-hdmi.dtbo``. .. code-block:: bash $ genio-flash -i rity-demo-image Genio Tools: v1.7.0a1 Yocto Image: ... machine: genio-700-evk overlays: ['display-dsi.dtbo', 'apusys.dtbo', 'display-hdmi.dtbo', 'video.dtbo'] If you do not need ``display-dsi.dtbo``, use the unload-dtbo option to remove the default ``display-dsi.dtbo`` .. code-block:: bash $ genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo Genio Tools: v1.7.0a1 Yocto Image: ... machine: genio-700-evk overlays: ['display-hdmi.dtbo', 'video.dtbo', 'apusys.dtbo'] Here are lists of all available display combination device tree overlays and description link of each one: .. list-table:: Default Display :widths: 30 30 :header-rows: 1 * - `dtbo` - Description * - ``display-dsi.dtbo`` + ``display-hdmi.dtbo`` - :ref:`DSI0 + HDMI ` .. list-table:: Headless `dtbo` :widths: 30 30 :header-rows: 1 * - `dtbo` - Description * - No need `dtbo` - :ref:`Headless ` .. list-table:: Single Display Device Tree Overlays :widths: 30 30 :header-rows: 1 * - `dtbo` - Description * - ``display-dsi.dtbo`` - :ref:`DSI0 ` * - ``display-edp.dtbo`` - :ref:`eDP ` * - ``display-hdmi.dtbo`` - :ref:`HDMI ` * - ``display-dp.dtbo`` - :ref:`DP ` .. _G700-evk-dual-dt: .. list-table:: Dual Display Device Tree Overlays :widths: 30 30 :header-rows: 1 * - `dtbo` - Description * - ``display-dsi.dtbo`` + ``display-edp.dtbo`` - :ref:`DSI0 + eDP ` * - ``display-dsi.dtbo`` + ``display-dp.dtbo`` - :ref:`DSI0 + DP ` * - ``display-edp.dtbo`` + ``display-hdmi.dtbo`` - :ref:`eDP + HDMI ` * - ``display-edp.dtbo`` + ``display-dp.dtbo`` - :ref:`eDP + DP ` * - ``display-hdmi.dtbo`` + ``display-dp.dtbo`` - :ref:`HDMI + DP ` .. _G700-evk-dsihdmi: DSI0 + HDMI ----------- **DSI0 + HDMI** are the default dual display interfaces for the prebuilt `rity-demo-image`. A DSI panel is pre-connected to G510/G700 EVK. Flash the board with: .. code-block:: bash $ genio-flash -i rity-demo-image Genio Tools: v1.7.0a1 Yocto Image: ... machine: genio-700-evk overlays: ['display-dsi.dtbo', 'apusys.dtbo', 'display-hdmi.dtbo', 'video.dtbo'] As shown in the example above, both ``display-dsi.dtbo`` and ``display-hdmi.dtbo`` are loaded by default. After boot into the console you can use ``modeprint mediatek`` command to check if both DSI0 and HDMI ports have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 2 count_encoders : 2 count_crtcs : 2 count_fbs : 0 Connector: DSI-1 id : 32 encoder id : 31 conn : connected size : 95x151 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1200x1920" 1200x1920 60 Connector: HDMI-A-1 id : 34 encoder id : 33 conn : connected size : 600x340 (mm) count_modes : 33 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 33 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for DSI0, and 4K(3840 x 2160) with 60Hz refresh rate for HDMI. .. _G700-evk-headless: Headless -------- Headless means that Yocto works without enabling any physical display connector. There is a virtual display at ``/dev/dri/renderD128`` prepared for offline rendering. To enable Headless, unload the overlay file ``display-dsi.dtbo`` and ``display-hdmi.dtbo`` during flashing process: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo kernel mmc0boot1 After boot into the console you will see the following error log which is because there is no physical display for Weston desktop rendering: .. code-block:: text [FAILED] Failed to start Weston, a compositor, as a system service. See 'systemctl status weston.service' for details. You can use ``modeprint mediatek`` command to check if headless has been properly configured by checking if connector count equals 0: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 0 count_encoders : 0 .. _G700-evk-dsi: DSI0 ---- To enable DSI0 as the only display connector, unload the overlay file ``display-hdmi.dtbo`` during flashing process: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-hdmi.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-hdmi.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if DSI0 port have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 1 count_encoders : 1 count_crtcs : 2 count_fbs : 0 Connector: DSI-1 id : 32 encoder id : 31 conn : connected size : 95x151 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1200x1920" 1200x1920 60 The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for DSI0. .. _G700-evk-edp: eDP --- To enable eDP as the only display connector, load the overlay file ``display-edp.dtbo`` during flashing process: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo --load-dtbo display-edp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo --load-dtbo display-edp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if eDP port have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 1 count_encoders : 1 count_crtcs : 2 count_fbs : 0 Connector: eDP-1 id : 32 encoder id : 31 conn : connected size : 340x190 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1920x1080" 1920x1080 60 The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for eDP. .. _G700-evk-hdmi: HDMI ---- To enable HDMI as the only display connector, unload the overlay file ``display-dsi.dtbo`` during flashing process: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if HDMI port have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 1 count_encoders : 1 count_crtcs : 2 count_fbs : 0 Connector: HDMI-A-1 id : 32 encoder id : 31 conn : connected size : 700x390 (mm) count_modes : 39 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... The associated display data pipeline can process up to 4K(3840 x 2160) with 60Hz refresh rate for HDMI. .. _G700-evk-dp: DP -- To enable DP as the only display connector, load the overlay file ``display-dp.dtbo`` during flashing process: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo --load-dtbo display-dp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo --load-dtbo display-dp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if DP port have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 1 count_encoders : 1 count_crtcs : 2 count_fbs : 0 Connector: DP-1 id : 32 encoder id : 31 conn : connected size : 700x390 (mm) count_modes : 27 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 30 ... The associated display data pipeline can process up to 4K(3840 x 2160) with 60Hz refresh rate for DP. .. _G700-evk-dsiedp: DSI0 + eDP ---------- You can configure the DSI0 + eDP combination with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-hdmi.dtbo --load-dtbo display-edp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-hdmi.dtbo --load-dtbo display-edp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if both DSI0 and eDP ports have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 2 count_encoders : 2 count_crtcs : 2 count_fbs : 0 Connector: DSI-1 id : 32 encoder id : 31 conn : connected size : 95x151 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1200x1920" 1200x1920 60 Connector: eDP-1 id : 34 encoder id : 33 conn : connected size : 340x190 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 33 Mode: "1920x1080" 1920x1080 60 The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for DSI0, and 2.5K(2560 x 1600) with 60Hz refresh rate for eDP. .. _G700-evk-dsidp: DSI0 + DP --------- You can configure the DSI0 + eDP combination with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-hdmi.dtbo --load-dtbo display-dp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-hdmi.dtbo --load-dtbo display-dp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if both DSI0 and DP ports have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 2 count_encoders : 2 count_crtcs : 2 count_fbs : 0 Connector: DSI-1 id : 32 encoder id : 31 conn : connected size : 95x151 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1200x1920" 1200x1920 60 Connector: DP-1 id : 34 encoder id : 33 conn : connected size : 600x340 (mm) count_modes : 33 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 33 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for DSI0, and 4K(3840 x 2160) with 60Hz refresh rate for DP. .. _G700-evk-edphdmi: eDP + HDMI ---------- You can configure the eDP + HDMI combination with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --load-dtbo display-edp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --load-dtbo display-edp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if both eDP and HDMI ports have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 2 count_encoders : 2 count_crtcs : 2 count_fbs : 0 Connector: eDP-1 id : 32 encoder id : 31 conn : connected size : 340x190 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1920x1080" 1920x1080 60 Connector: HDMI-A-1 id : 34 encoder id : 33 conn : connected size : 600x340 (mm) count_modes : 33 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 33 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for eDP, and 4K(3840 x 2160) with 60Hz refresh rate for HDMI. .. _G700-evk-edpdp: eDP + DP -------- You can configure the eDP + DP combination with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo --load-dtbo display-edp.dtbo --load-dtbo display-dp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --unload-dtbo display-hdmi.dtbo --load-dtbo display-edp.dtbo --load-dtbo display-dp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if both eDP and DP ports have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 2 count_encoders : 2 count_crtcs : 2 count_fbs : 0 Connector: eDP-1 id : 32 encoder id : 31 conn : connected size : 340x190 (mm) count_modes : 1 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "1920x1080" 1920x1080 60 Connector: DP-1 id : 34 encoder id : 33 conn : connected size : 600x340 (mm) count_modes : 33 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 33 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... The associated display data pipeline can process up to 2.5K(2560 x 1600) with 60Hz refresh rate for eDP, and 4K(3840 x 2160) with 60Hz refresh rate for DP. .. _G700-evk-hdmidp: HDMI + DP --------- You can configure the HDMI + DP combination with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --load-dtbo display-dp.dtbo If you don't want to re-flash the entire root file system, you can simply update the overlay configuration with: .. prompt:: bash genio-flash -i rity-demo-image --unload-dtbo display-dsi.dtbo --load-dtbo display-dp.dtbo kernel mmc0boot1 After boot into the console you can use ``modeprint mediatek`` command to check if both HDMI and DP ports have been properly configured: .. code-block:: text root@genio-700-evk:~# modeprint mediatek Starting test Resources count_connectors : 2 count_encoders : 2 count_crtcs : 2 count_fbs : 0 Connector: HDMI-A-1 id : 32 encoder id : 31 conn : connected size : 600x340 (mm) count_modes : 33 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 31 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... Connector: DP-1 id : 34 encoder id : 33 conn : connected size : 600x340 (mm) count_modes : 33 count_props : 5 props : 1 2 5 6 4 count_encoders : 1 encoders : 33 Mode: "3840x2160" 3840x2160 60 Mode: "3840x2160" 3840x2160 60 ... .. note:: Due to the limitation of display data pipelines, the associated display data pipeline is limited to 4K(3840 x 2160) with **30Hz** refresh rate for HDMI, while 4K(3840 x 2160) with 60Hz refresh rate for DP. .. _G700-evk-edp-setup: Hardware Setup for eDP ======================= The prebuilt `rity-demo-image` supports AUO G156HAN03 panel with a eDP cable, as shown below: .. figure:: /_asset/sw_rity_display_G700_eDP-cable.jpg :align: center :width: 55% Please always use this associated cable to connect to the panel. Connect either side to the |G510-G700-EVK| board and to the panel, as shown below: .. figure:: /_asset/sw_rity_display_G700_eDP-install.jpg :align: center :width: 35% .. _G700-evk-lvds-setup: Hardware Setup for DSI0 to LVDS =============================== The prebuilt `rity-demo-image` supports ``DSI0`` to ``IT6122 Converter Daughter Board`` to ``KOE TX18D204VM0BAA panel``. .. note:: - The IT6122 Converter Daughter Board doesn't not come with the |G510-G700-EVK| set. Please contact MTK CPM to obtain one. An example of the daughter board is shown below: .. figure:: /_asset/sw_rity_display_G700_DSI_to_LVDS_DTB.jpg :align: center :width: 35% To install the daughter board, turn both the EVK and the daughter board to the back side, then replace the pre-connected DSI panel LCM0 and CTP0 cables with those on the daughter board. .. figure:: /_asset/sw_rity_display_G700_DSI_to_LVDS_install_DTB.jpg :align: center :width: 35% Turn both the EVK and the daughter board to the front side, then connect the LVDS cable to the daughter board. .. figure:: /_asset/sw_rity_display_G700_DSI_to_LVDS_install_panel.jpg :align: center :width: 35% A complete setup example is provided below. Note that the DSI panel in the example is not connected to the EVK. .. figure:: /_asset/sw_rity_display_G700_DSI_to_LVDS_install_example.jpg :align: center :width: 35% Related Kernel Source Files ============================ - The `Genio 700 EVK board dts file `_ is located in the kernel path ``arch/arm64/boot/dts/mediatek/mt8390-genio-700-evk.dts``. - The `Genio 510 EVK board dts file `_ is located in the kernel path ``arch/arm64/boot/dts/mediatek/mt8370-genio-510-evk.dts``. - The drivers for the display data path and interfaces are located under ``drivers/gpu/drm/mediatek``, the same as other DRM drivers. - The drivers for the panels are located under ``drivers/gpu/drm/panel`` , such as: * DSI: ``STARTEK KD070FHFID015`` `drivers/gpu/drm/panel/panel-startek-kd070fhfid015.c `_ * DSI: ``STARTEK KD070FHFID078`` `drivers/gpu/drm/panel/panel-startek-kd070fhfid078.c `_ * eDP: common driver `drivers/gpu/drm/panel/panel-edp.c `_ - The drivers for the PHY hardware are located under ``drivers/phy/mediatek`` , such as: * DSI: `drivers/phy/mediatek/phy-mtk-mipi-dsi.c `_ * DP/eDP: `drivers/phy/mediatek/phy-mtk-dp.c `_ * HDMI: `drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c `_ - The drivers for the USB Type-C associated modules are located under ``drivers/usb/typec`` , such as: * ``IT5205`` (altmode mux): `drivers/usb/typec/mux/it5205fn.c `_ * ``MT6360`` (PD for USB Type-C): `drivers/usb/typec/tcpm/tcpci_mt6360.c `_ Please note that support for MT8370/MT8390 on |IOT-YOCTO| starts from the ``mtk-v5.15`` kernel and the Yocto ``kirkstone`` branch. On v25.x, we are using the ``mtk-v6.6`` kernel and the Yocto ``scarthgap`` branch. The `Genio 700 EVK device tree overlay files `_ and the `Genio 510 EVK device tree overlay files `_ are not located in the kernel source. Instead, these overlay files are managed in the Yocto meta layer ``meta-mediatek-bsp``'s ``scarthgap/recipes-kernel/dtbo/v6/genio-700-evk`` and ``scarthgap/recipes-kernel/dtbo/v6/genio-510-evk`` directory.