Saturday, February 26, 2022

[SOLVED] device tree ERROR: Unable to parse input tree (syntax error)

Issue

I'm correctly generating my image Yocto-hardknott-technexion with this:

$ mkdir tn-imx-yocto
$ cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake core-image-base

Then, I go to .../tn-imx-yocto/sources/meta-tn-imx-bsp/conf/machine/nano pico-imx7.conf And enable the imx7d-pico-pi-m4.dtb (KERNEL_DEVICETREE_append = " imx7d-pico-pi-m4.dtb"). Because I stay trying RPMsg with FreeRTOS in m4

pico-imx7.conf

#@TYPE: Machine
#@NAME: pico-imx7
#@SOC: i.MX7/Solo/Dual/UtraLowPower
#@DESCRIPTION: Machine configuration for PICO-IMX7 with QCA(Qualcomm)/BRCM(Broadcom) WLAN module
#@MAINTAINER: Po Cheng <[email protected]>

MACHINEOVERRIDES =. "mx7:mx7d:"
MACHINEOVERRIDES_EXTENDER_pico-imx7 = "uenv"

include conf/machine/include/imx-base.inc
include conf/machine/include/tune-cortexa7.inc
require conf/machine/tn-base.inc

#
# Kernel Device Trees
#
PREFERRED_PROVIDER_virtual/kernel ?= "linux-tn-imx"
PREFERRED_PROVIDER_virtual/kernel_mx7 = "linux-tn-imx"

KERNEL_DEVICETREE = "imx7d-pico-pi-qca.dtb" 
#                         imx7d-pico-pi-m4.dtb \
#"
KERNEL_DEVICETREE_append = " imx7d-pico-pi-m4.dtb"
#                    imx7d-pico-pi.dtb \
#                     imx7d-pico-pi-c2-qca.dtb imx7d-pico-pi-c2.dtb \
#                     imx7d-pico-nymph-qca.dtb imx7d-pico-nymph.dtb \
#                     imx7d-pico-dwarf-qca.dtb imx7d-pico-dwarf.dtb \
#                     imx7d-pico-hobbit-qca.dtb imx7d-pico-hobbit.dtb \
#"

# Setup the additional devicetree file
#KERNEL_DEVICETREE_append_voicehat = " imx7d-pico-pi-qca-voicehat.dtb \
#                                      imx7d-pico-pi-voicehat.dtb \
#                                      imx7d-pico-pi-c2-qca-voicehat.dtb \
#                                      imx7d-pico-pi-c2-voicehat.dtb "

# Bootloader Specifics
UBOOT_MACHINE = "pico-imx7d_spl_defconfig"

#M4_MACHINE = "pico-imx7d-pi"
#IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos-tn:do_deploy"
#IMAGE_BOOTFILES += "hello_world.bin rpmsg_lite_pingpong_rtos_linux_remote.bin rpmsg_lite_str_echo_rtos_imxcm4.bin"

And (after that) I get the issue: Unable to parse input tree (syntax error) in file baseboard_pico_pi.dtsi line 52 (photo below) I don't see anything wrong with line 52 of the baseboard_pico_pi.dtsi file: PICO_PI_GPIO_DEFS();

imx7d-pico-qca.dtsi about PICO_PI_GPIO_DEFS()

#define PICO_NYMPH_GPIO_DEFS()  \
&gpio2 {                                                    \
    gpio-line-names =                                           \
        "", "", "GPIO_P28", "GPIO_P30", "GPIO_P32", "GPIO_P34", "", "",                 \
        "", "", "", "", "", "", "", "",                                 \
        "", "", "", "", "", "", "", "",                                 \
        "", "", "", "", "", "", "", "";                                 \
                                                        \
    pinctrl-0 = <&pinctrl_gpio2>;                                       \
}

#define PICO_PI_GPIO_DEFS() \
&gpio2 {                                                    \
    gpio-line-names =                                           \
        "GPIO_P24", "GPIO_P26", "GPIO_P28", "GPIO_P30", "", "GPIO_P34", "", "GPIO_P48",         \
        "", "", "", "", "", "", "", "",                                 \
        "", "", "", "", "", "", "", "",                                 \
        "", "", "", "", "", "", "", "";                                 \
                                                        \
    pinctrl-0 = <&pinctrl_gpio2>;                                       \
}

baseboard_pico_pi.dtsi

clocks {
        codec_osc: aud_mclk {
            compatible = "fixed-clock";
            #clock-cells = <0>;
            clock-frequency = <24576000>;
        };
    };
};

PICO_PI_GPIO_DEFS(); // line 52

&PICO_I2CA {
    status = "okay";

    codec: sgtl5000@a {
        compatible = "fsl,sgtl5000";
        reg = <0x0a>;
        clocks = <&codec_osc>;
        VDDA-supply = <&reg_2p5v>;

All device tree files referring to this issue are at this link: https://github.com/neuberfran/technexion2

How can I solve this? (pls)

enter image description here

enter image description here


Solution

The solution was to change imx7d-pico-pi-m4.dtb to imx7d-pico-pi-qca-m4.dtb in the Yocto/Hardknott/technexion configuration file called pico-imx7.conf(described in the post)



Answered By - neuberfran
Answer Checked By - Robin (WPSolving Admin)