QS93

Here you will find step by step instructions on how to use, install, build with Yocto and set up a display.

First Steps

Unpack, connect, power up and boot

Install Quick Guide

How to flash a system image to the module

More details: UUU - Universal Update Utility

1. Get a system image

Download and unpack qs93-5210-debian-bookworm as an example

2. Start fastboot

(Re-)boot the board and “Hit any key to stop autoboot” to get to the U-Boot command line interface

fastboot usb 0

3. Flash it!

Change to the unpacked image directory and run uuu

sudo ./uuu -v (Linux)   uuu.exe -v (Windows)

Yocto Quick Guide

Build and flash Yocto images in 10 minutes

Enable Display

Environment settings needed when using a display

More details: Devicetree Overlays

Two overlays are required to use the QS93 with a display. The first activates the display output, the second configures the settings for the display itself.

(Re-)boot the board and “Hit any key to stop autoboot” to get to the U-Boot command line interface:

setenv overlays_qsbase93 ${overlays_qsbase93} lvds-panel panel-tm101jvhg32
saveenv
reset

Tip

ls mmc 0 shows all installed overlays

Custom Panel

Easily configure your own display using a customised Yocto Layer

The necessary steps are briefly explained here.

This is basically all you need for an addition to Yocto:

meta-mypanel/
├── COPYING.MIT
├── README
├── conf
│   └── layer.conf
└── recipes-kernel
    └── linux
        ├── linux-karo
        │   └── dts
        │       └── freescale
        │           └── {name}.dts
        └── linux-karo_%.bbappend

6 directories, 5 files
  • {name}.dts contains the configuration of your display.

Prerequisites

  • karo-nxp-bsp is used here as an example BSP directory

  • You have setup the environment and build directory (Refer to: Setup Build Directory)

  • You can successfully built the image

1. Create your custom layer with the name “mypanel” as example

bitbake-layers create-layer ~/karo-nxp-bsp/sources/meta-mypanel

2. Remove the example and setup the required directories

cd ~/karo-nxp-bsp/sources/meta-mypanel
rm -rf recipes-example/
mkdir -p recipes-kernel/linux/linux-karo/dts/freescale
cd recipes-kernel/linux
echo 'FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"' > linux-karo_%.bbappend

3. Copy an existing panel .dts as reference.

cd linux-karo-6.1/dts/freescale
cp $(find ~/karo-nxp-bsp/sources/meta-karo-nxp/ -name "imx93-karo-panel-t*.dts") imx93-mypanel.dts

4. Edit imx93-mypanel.dts (see complete contents below)

...
* Copyright ...
...
   overlays {
      mypanel;
   };
...
   label = "MyPANEL";
...

4. Add mypanel to DTB_OVERLAYS

cd ~/karo-nxp-bsp/sources/meta-mypanel/conf
echo 'DTB_OVERLAYS:append = " mypanel"' >> layer.conf

5. Add the new layer and create the images as usual.

Change to your build directory and add the new layer.

bitbake-layers add-layer ../sources/meta-mypanel
bitbake {your image}

imx93-mypanel.dtb will be added to the boot partition image.

karo-panel-tm101jvhg32.dts

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2022 Lothar Waßmann <LW@KARO-electronics.de>
 *
 */

/dts-v1/;

/plugin/;

&{/chosen} {
   overlays {
      karo-panel-tm101jvhg32;
   };
};

&panel {
   label = "TM101JVHG32";
   width-mm = <217>;
   height-mm = <136>;
   status = "okay";

   panel-timing {
      clock-frequency = <62500000>;
      hactive = <1280>;
      vactive = <800>;
      hback-porch = <80>;
      hfront-porch = <80>;
      vback-porch = <12>;
      vfront-porch = <11>;
      hsync-len = <2>;
      vsync-len = <1>;
      hsync-active = <0>;
      vsync-active = <0>;
      de-active = <0>;
      pixelclk-active = <0>;
   };
};