[TEZI] Custom boot

HI @VincentB

I used your .itb file and my custom boot.scr and I can see the “Pinguins” coming up on the LVDS screen. I will continue to work on this issue.

Could you check if you see the same thing on your side?

Best regards,
Jaski

Hi @VincentB

It seems that supporting LVDS screen will some more changes in Toradex Easy Installer. I wanted to ask you what is your use-case for this LVDS Screen. Toradex Easy Installer is intended to flash the OS and nothing else. You can make a VNC connection or also use autoinstall.

Best regards,
Jaski

Hi @jaski.tx,

Thanks for keeping me in touch about your progress. We use TEZI to flash our OS in our device but considering that we don’t have any video output such as DVI or HDMI, we would like to use this LVDS screen to have a follow-up of flash progression (elapsed time, potential issue…), it will be more friendly instead of a black screen for our operators.

I’m not sure if VNC connection will be more efficient cause we have already enabled autoinstall parameter, maybe the time it takes to request IP address, the flash procedure will be done.

Do you think you can add this feature in your TEZI roadmap ?

BR,

Vincent

Hi @VincentB

I can understand your use case. The support for LVDS screen will be added as a feature in the newer Toradex Easy Installer 2.x.

Best regards,
Jaski

Hi everyone,

Long time ago ^^

I have recently tried to set LVDS display (10’1) with the new TEZI 5.6 version by using DTBO file feature.
The first step was to use the apalis-imx6_lvds-lt170410_overlay.dtbo file by editing boot-tezi.scr file to load this one. This has been done successfuly :

## Loading fdt from FIT Image at 12200000 ...
   Using 'config@apalis-imx6_lvds_overlay.dtbo' configuration
   Trying 'fdt@apalis-imx6_lvds_overlay.dtbo' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x128cbb80
     Data Size:    739 Bytes = 739 Bytes
     Architecture: ARM
     Load Address: 0x142f0000
     Hash algo:    sha1
     Hash value:   40fa2a809f5eb14a429996e4752d27f6da760723
   Verifying Hash Integrity ... sha1+ OK
   Loading fdt from 0x128cbb80 to 0x142f0000
   Booting using the fdt blob at 0x14200000
   Loading Kernel Image
   Loading Ramdisk to 2e756000, end 30000000 ... OK
   Loading Device Tree to 2e742000, end 2e755f6a ... OK

Starting kernel ...

but the LVDS display remains totally black. None /dev/fbx available.

The dmesg indicates:

[    0.476138] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops ipu_crtc_ops)
[    0.476233] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops ipu_crtc_ops)
[    0.476371] imx-drm display-subsystem: bound imx-ipuv3-crtc.6 (ops ipu_crtc_ops)
[    0.476468] imx-drm display-subsystem: bound imx-ipuv3-crtc.7 (ops ipu_crtc_ops)
[    0.476567] /ldb/lvds-channel@0: could not find display-timings node
[    0.482950] /ldb/lvds-channel@0: no timings specified
[    0.488009] imx-ldb ldb: could not determine data mapping: -22
[    0.493879] imx-drm display-subsystem: failed to bind ldb (ops imx_ldb_ops): -22
[    0.501427] imx-drm display-subsystem: master bind failed: -22
[    0.501445] imx-ipuv3-crtc: probe of imx-ipuv3-crtc.7 failed with error -22
[    0.501469] imx-ipuv3 2800000.ipu: IPUv3H probed

However, the display-timings node is present :

&ldb {
	status = "okay";

	lvds-channel@0 {
		fsl,data-mapping = "spwg"; /* jeida | spwg */
		fsl,data-width = <24>;
		status = "okay";

		display-timings {
			native-mode = <&timing_wxga>;
		};
	};
};

To go further, I have compile my own DTBO file (properties come from a dts that works on our board) :


// Enable the LVDS interface on the Apalis iMX6Q. Make sure to also select a valid display configuration.

/dts-v1/;
/plugin/;

/ {
	compatible = "toradex,apalis_imx6q";
	
	fragment@0 {
		target = <&ldb>;
		__overlay__{
			status = "okay";
			lvds-channel@0 {
				reg = <0>;
				fsl,data-mapping = "spwg";
				fsl,data-width = <24>;

				display-timings {
					native-mode = <&timing_wxga>;
					timing_wxga: 1280x800 {
						clock-frequency = <71100000>;
						hactive = <1280>;
						vactive = <800>;
						hback-porch = <60>;
						hfront-porch = <60>;
						vback-porch = <7>;
						vfront-porch = <7>;
						hsync-len = <40>;
						vsync-len = <9>;
						hsync-active = <0>;
						vsync-active = <0>;
						pixelclk-active = <0>;
					};
				};
			};
		};
	};
	
	fragment@1 {
		target = <&mxcfb1>;
		 __overlay__{
			/* the pixel format between the IPU's DI and LDB */
			disp_dev = "ldb";
			compatible = "fsl,mxc_sdc_fb";
			interface_pix_fmt = "RGB24";	
			default_bpp = <32>;
			status = "okay";
		};
	};

	fragment@2 {
		target = <&backlight>;
		__overlay__{
			status = "okay";
			default-brightness-level = <7>;
		};
	};

};

On uboot side, vidargs parameter is set as :

video=mxcfb0:dev=ldb,1280x800M@60,if=RGB24 ldb=sin0 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=32M

But again, LVDS remains totally black, no fbx device available on linux. boot-tezi.scr + overlay are stored on USB tick.

What am I missing ?

Regards,

Hi @Vincentt !

Welcome back!

Are you using Toradex’ LVDS 10.1" display? As far as I know, it should work by default with Toradex Easy Installer 5.* and Apalis iMX6.

Also, please check this Device Tree Overlays (Linux) | Toradex Developer Center article.

As a side note, you are using old device tree overlay syntax. I would recommend to use the new syntax (you can take a look at Toradex’ overlays to see the syntax). Although it should not change the outcome, it is cleaner :slight_smile:

Best regards,

Hi @henrique.tx ,

No, we are using another one LVDS display 10’1 that works on our custom board.
What are the steps you followed to bring the displays working ? Could you share relevant uboot variables ?

By editing the overlays.txt such as :

fdt_overlays=apalis-imx6_lvds_overlay.dtbo display-lt170410_overlay.dtbo

With no modification to those 2 files, the screeni is now green (such behavior expected due to different timings I guess), the TEZI image is hold in rc.local script, I suppose there :

# Wait for the completion of the Weston init process. In the very last turn, it
# starts sharing the screen over VNC
while ! ps | grep -q [v]nc-backend
do
    sleep 0.5
done

Console output :

Running /etc/rc.local...
Toradex Easy Installer 5.6.0+build.9 ()
Starting udev
System time was Thu Jan  1 00:00:03 UTC 1970.
Setting the System Clock using the Hardware Clock as reference...
hwclock: can't open '/dev/misc/rtc': No such file or directory
System Clock set. System local time is now Thu Jan  1 00:00:03 UTC 1970.
Wed Mar 30 15:16:22 UTC 2022
Saving the System Clock time to the Hardware Clock...
hwclock: can't open '/dev/misc/rtc': No such file or directory
Hardware Clock updated to Wed Mar 30 15:16:22 UTC 2022.

the cursor on screeni blinks during startup but then hangs.

Please advice,

BR,

Vincent

With no modification to those 2 files, the screeni is now green (such behavior expected due to different timings I guess) :

My bad, it was just a misconnection of LVDS cable, the display is black with backlight on. Still hung in rc.local by the way

Hello,

Is there anyone that could have any idea to fix this situation ?

Thank you,

Vincentt

Hi @Vincentt !

Sorry for all this delay.

The file display-lt170410_overlay.dtbo has timings for the Toradex’ 10.1" display. You need to create a similar file with timings from the datasheet of your own display.

Best regards,

Hi @henrique.tx

I’ve finally achieved the job by editing ramdisk contained in tezi.itb file to launch tezi on framebuffer and by editing tezi.its file to point on our own kernel and device tree.

Thanks for your input.

Hi @Vincentt !

Thanks for the feedback! Great to know that you managed to solve your issue.

I would like to ask you to (if possible) share more details on what you did.

Also, please mark the message containing the best solution for you as the Solution to this thread.

Thanks!

Best regards,