TX8P¶
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 tx8p-ml81-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 TX8P 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_mb7 ${overlays_mb7} 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 "imx8mp-karo-panel-t*.dts") imx8mp-mypanel.dts
4. Edit imx8mp-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}
imx8mp-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>;
};
};