如何在buildroot中正确使用自定义设备树源码?

问题描述 投票:0回答:1

我从

<linux>/board/arch/arm/boot/dts/imx28-evk.dts
制作了 dts 的副本,以便与我的自定义板一起使用。我的自定义设备树名为
imx28-custom.dts
,并在 Buildroot 配置中的 树外自定义 DTS 菜单条目 (
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
) 中指向。

然而,u-boot 配置为使用现有的 MX28 板配置。构建内核后,我在

imx28-custom.dtb
文件夹中有
zImage
<buildroot>/output/images

系统启动时,u-boot 提示找不到

imx28-evk.dtb
。为什么
imx28-custom.dtb
已构建但u-boot找不到?为什么 u-boot 找不到自己的设备树 (
imx28-evk.dtb
) 和我为内核定制的设备树?我假设
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
仅与内核相关。如果 u-boot 尝试使用自己的
imx28-evk.dtb
来实现此目的,我的自定义设备树如何传递到内核?

u-boot buildroot
1个回答
4
投票

U-Boot 抱怨找不到设备树与 Linux 内核有关:启动时,U-Boot 将设备树和内核映像从存储加载到内存中的指定地址,然后将控制权交给内核。 i.MX28-EVK 板的默认配置是传递

imx28-evk.dtb
文件。

BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
仅用于在要构建和安装的文件中包含自定义设备树,但配置U-Boot以使用它。

U-Boot 传递到内核的设备树由 U-Boot 的

CONFIG_DEFAULT_FDT_FILE
选项定义(您可以通过键入
make uboot-menuconfig
来编辑它(请参阅最后我的注释),然后在 Boot 下设置 默认 fdt 文件)。此选项应设置为类似
imx28-custom.dtb

这里这里描述了如何从Buildroot配置U-Boot以使其永久化


对于 i.MX28-EVK,Buildroot 使用 Legacy 构建系统(将使用到 u-boot 2015.04,但配置使用 2020.04),该系统不允许使用

make uboot-menuconfig
命令。您应该能够安全地改变这一点。您需要将 Build system 设置为
Kconfig
并将 Board defconfig 设置为
mx28evk

© www.soinside.com 2019 - 2024. All rights reserved.