This tutorial outlines the steps required to set up and build a Yocto image for the FRDM-IMX93 board, including integrating the meta-imx-frdm recipes and applying a patch to enable UART3 support.
Required Materials
A computer running Linux (Ubuntu 22.04)
FRDM-IMX93 board
Network cable or WiFi configured on the board
USB C cables
Installing the repo Utility
$ mkdir ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=${PATH}:~/bin
Downloading i.MX Linux Yocto Release
$ mkdir ${MY_YOCTO} # This directory will be the top-level directory
$ cd ${MY_YOCTO}
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml
$ repo sync
If errors occur during repo init, remove the .repo directory and run repo init again.
Integrating meta-imx-frdm Recipes into Yocto
$ cd ./sources
$ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
$ cd meta-imx-frdm
$ git checkout imx-frdm-1.0
Applying the Patch
$ mv /home/<user_name>/Downloads/FRDM-IMX93-LPUART3-SUPPORT.patch .
$ git apply FRDM-IMX93-LPUART3-SUPPORT.patch
Setting Up the Build Environment
$ cd ../../
$ MACHINE=imx93frdm DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b frdm-imx93
Compiling the Kernel
$ bitbake -c deploy virtual/kernel
Once the compilation is complete, the new device tree will be located at:
tmp/deploy/images/imx93frdm/imx93-11x11-frdm.dtb
Flashing the Modified Device Tree
You can flash the modified device tree using the uuu tool with the method described in this community post
To flash the device tree using network method, boot the board and connect it to the network using a cable or WiFi. Then, use scp to transfer the file.
#For eMMC Boot
$ cd tmp/deploy/images/imx93frdm/
$ scp imx93-11x11-frdm.dtb root@<frdm_ip>:/run/media/boot-mmcblk0p1/
$ reboot
#For SD Boot
$ cd tmp/deploy/images/imx93frdm/
$ scp imx93-11x11-frdm.dtb root@<frdm_ip>:/run/media/boot-mmcblkp1/
$ reboot
Using UART3
After rebooting, UART3 will be available on GPIO14 and GPIO15 of the RPi connector on the board.
Results: