I’m trying to apply a device tree overlay to a Yocto build for a verdin-am62 module. Previously, I was using the torizoncore builder to build my image, using the same device tree and overlay in my tcbuild.yaml
file, like this
device-tree:
# >> Directories where to look for include files.
include-dirs:
- linux/include/
# >> Custom device tree source:
custom: linux/arch/arm64/boot/dts/ti/k3-am625-verdin-wifi-dahlia.dts
# >> Device-tree overlays configuration:
overlays:
add:
- custom/overlays/verdin-am62_best_bsample.dts
However, when I build using the same device tree and overlay in Yocto, I have a problem: /dev/verdin-uart1
does not exist. I need this for my application.
Here is my bbappend file, device-tree-overlays-ti_%.bbappend
TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT:append = " verdin-am62_best_bsample.dtbo "
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append = " file://verdin-am62_best_bsample.dts "
CUSTOM_OVERLAYS_SOURCE = "verdin-am62_best_bsample.dts"
do_collect_overlays:prepend() {
for DTS in ${CUSTOM_OVERLAYS_SOURCE}; do
cp ${WORKDIR}/${DTS} ${S}
done
}
And my device tree overlay
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2020-2022 Toradex
*/
/dts-v1/;
/plugin/;
/ {
compatible = "toradex,verdin-am62";
};
/* Verdin UART_1 */
&main_uart1 {
status = "okay";
};
/* Verdin I2C_1 */
&main_i2c1 {
status = "okay";
};
/* Verdin I2C_2_DSI */
&main_i2c2 {
status = "disabled";
};
/* EEPROM on display adapter boards */
/* TODO */
/* EEPROM on Verdin Development board */
/* TODO */
/* Verdin I2S_1 */
&mcasp0 {
status = "disabled";
};
/* Verdin I2S_2 */
&mcasp1 {
status = "disabled";
};
/* Verdin PWM_3_DSI */
&epwm1 {
status = "disabled";
};
/* Verdin PWM_1, PWM_2 */
&epwm0 {
status = "disabled";
};
/* Verdin QSPI_1 */
&ospi0 {
status = "disabled";
};
/* Verdin SD_1 */
&sdhci1 {
status = "disabled";
};
Also, in conf/machine/verdin-am62-extra.conf
, I specify this
KERNEL_DEVICETREE = "ti/k3-am625-verdin-wifi-dahlia.dtb"
TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT:append = " verdin-am62_best_bsample.dtbo "
It seems that my overlay file is getting added to the fdt_overlays
variable in overlays.txt
,
cat ../build/tmp/work/verdin_am62-poky-linux/controlbox-image-minimal/1.0-r0/bootfs/overlays.txt
fdt_overlays=verdin-am62_dsi-to-hdmi_overlay.dtbo verdin-am62_spidev_overlay.dtbo
I can also see it applied on the u-boot console. However, /dev/verdin-uart1
still does not exist. Is there a problem with my overlay? Or is it still not getting applied correctly? What should I enable in the device tree to be able to access verdin UART?