MX8 Display

From Variscite Wiki
VAR-SOM-MX8 Display

Selecting display type

VAR-SOM-MX8 and SPEAR-MX8 support DP, HDMI and LVDS displays. To use DP and HDMI on VAR-SOM-MX8 carrier board one should attach Variscite extension boards VAR-EXT-DP and VAR-EXT-HDMI respectively.
Selecting display configuration is a matter of selecting an appropriate dtb file.

On VAR-SOM-MX8 /boot/fsl-imx8qm-var-som.dtb is a symbolic link to the active dtb file. By default it points to LVDS dtb.
To select HDMI display, run the following commands:

# cd /boot
# ln -fs fsl-imx8qm-var-som-hdmi.dtb fsl-imx8qm-var-som.dtb
# ln -fs fsl-imx8qp-var-som-hdmi.dtb fsl-imx8qp-var-som.dtb (For i.MX8QP SoC)

To select DP display, run the following commands:

# cd /boot
# ln -fs fsl-imx8qm-var-som-dp.dtb fsl-imx8qm-var-som.dtb
# ln -fs fsl-imx8qp-var-som-dp.dtb fsl-imx8qp-var-som.dtb (For i.MX8QP SoC)

On SPEAR-MX8 /boot/fsl-imx8qm-var-spear.dtb is a symbolic link to the active dtb file. By default it points to LVDS dtb.
To select HDMI display, run the following commands:

# cd /boot
# ln -fs fsl-imx8qm-var-spear-hdmi.dtb fsl-imx8qm-var-spear.dtb
# ln -fs fsl-imx8qp-var-spear-hdmi.dtb fsl-imx8qp-var-spear.dtb (For i.MX8QP SoC)

To select DP display, run the following commands:

# cd /boot
# ln -fs fsl-imx8qm-var-spear-dp.dtb fsl-imx8qm-var-spear.dtb
# ln -fs fsl-imx8qp-var-spear-dp.dtb fsl-imx8qp-var-spear.dtb (For i.MX8QP SoC)

The change will be effective after reboot.

Loading HDMI and DP firmware

HDMI and DP displays require appropriate firmware to be loaded by U-Boot. The firmware files are installed under /boot.
The HDMI display firmware blob is hdmitxfw.bin, the DP firmware blob is dpfw.bin. U-Boot environment variable hdp_file selects the blob.
By default HDMI firmware is being loaded. To switch to DP firmware, run the following command:

# fw_setenv hdp_file dpfw.bin

The change will be effective after reboot.


Both firmware blob and dtb file should be set before rebooting the system, otherwise the boot process will get stuck.

Setting HDMI and DP resolution

By default the maximum resolution supported by HDMI/DP display is being used.
To check the current resolution, run fbset command.

# fbset

mode "3840x2160"
    geometry 3840 2160 3840 2160 16
    timings 0 0 0 0 0 0 0
    accel true
    rgba 5/11,6/5,5/0,0/0
endmode


To configure specific resolution use fw_setenv command to set video= kernel command line argument.
For example, to set 1080P@60fps resolution on HDMI display, run the following command:

# fw_setenv kernelargs video=HDMI-A-1:1920x1080-32@60

To set 1080P@60fps resolution on DP display, run the following command:

# fw_setenv kernelargs video=DP-1:1920x1080-32@60

The settings will be effective after reboot.

LVDS

VAR-SOM-MX8 supports one dual-channel LVDS interface.
VAR-SOM-MX8 evaluation kit comes with two LVDS connectors, one connector per LVDS channel.
By default Variscite panel is attached to LVDS#A connector.

Adding custom LVDS panel

VAR-SOM-MX8 evaluation kit comes with 800x480 LVDS panel.
VAR-SOM-MX8 DTS file was created with this panel in mind.
To support different LVDS panel, several modifications may be required.

On VAR-SOM-MX8 LVDS panel is configured in arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-lvds.dtsi
On SPEAR-MX8 LVDS panel is configured in arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-lvds.dtsi

&ldb1_phy {
	status = "okay";
};

&ldb1 {
	status = "okay";

	lvds-channel@0 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <18>;
		status = "okay";

		display-timings {
			lvds {
				clock-frequency = <35714000>;
				hactive = <800>;
				vactive = <480>;
				hback-porch = <39>;
				hfront-porch = <39>;
				vback-porch = <29>;
				vfront-porch = <13>;
				hsync-len = <47>;
				vsync-len = <2>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <0>;
			};
		};
	};
};

You may need to modify "fsl,data-mapping", "fsl,data-width" and "display-timings" properties to match your panel specification.
For more information see Documentation/devicetree/bindings/display/imx/ldb.txt in the kernel source tree.

Setting Weston Desktop Resolution

The default Weston uses maximum resolution supported by display.
To modify Weston resolution, edit /etc/xdg/weston/weston.ini and set size parameter in shell section.
For example:

[shell]
size=3840x2160

For new settings to take effect restart weston by running

# systemctl restart weston