【问题标题】:device tree ERROR: Unable to parse input tree (syntax error)设备树错误:无法解析输入树(语法错误)
【发布时间】:2022-02-17 00:34:36
【问题描述】:

我用这个正确地生成了我的图像 Yocto-hardknott-technexion

$ 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

然后,我去 .../tn-imx-yocto/sources/meta-tn-imx-bsp/conf/machine/nano pico-imx7.conf 并启用 imx7d-pico-pi-m4.dtbKERNEL_DEVICETREE_append = "imx7d-pico-pi-m4.dtb")。因为我一直在 m4 中尝试使用 FreeRTOS 的 RPMsg

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 <po.cheng@technexion.com>

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"

然后(之后)我遇到了问题:无法解析输入树(语法错误) 在文件 baseboard_pico_pi.dtsi 第 52 行 (下图) 我认为 baseboard_pico_pi.dtsi 文件的 第 52 行 没有任何问题:PICO_PI_GPIO_DEFS();

imx7d-pico-qca.dtsi 关于 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>;

涉及此问题的所有设备树文件都位于此链接: https://github.com/neuberfran/technexion2

我该如何解决这个问题? (请)

【问题讨论】:

  • @Tsyvarev 这对你不好。错误在主题、描述和第一张照片中是明确的。这样你就搞砸了我的问题。
  • @Tsyvarev 你不明白什么?你有关于设备树的知识吗?变得不可能
  • 设备树应该作为 text,而不是 imagelink 出现在问题帖子中到仓库。
  • 假设PICO_PI_GPIO_DEFS(); 应该是扩展一个CPP 宏,你至少需要显示它的定义。我假设它是由您的 baseboard_pico_pi.dtsi 文件中的#include "tnmacro.h" 定义的,但我在您的 git 存储库中看不到 tnmacro.h
  • 如果我猜测错误的原因,我会猜测PICO_PI_GPIO_DEFS() 宏扩展已经以分号结束,并且解析器正在抱怨PICO_PI_GPIO_DEFS(); 行上的额外分号.

标签: linux-kernel yocto


【解决方案1】:

解决方案是在名为 pico-imx7.conf 的 Yocto/Hardknott/technexion 配置文件中将 imx7d-pico-pi-m4.dtb 更改为 imx7d-pico-pi-qca-m4.dtb(在帖子中描述)

【讨论】:

    猜你喜欢
    • 2015-04-14
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    • 2022-10-07
    • 2021-06-16
    • 2020-02-07
    相关资源
    最近更新 更多