ZCU111自定义工程如何使用官方设备树

1 背景

自己创建的zcu111 PL部分,得先从template创建petalinux工程

petalinux-create -t project --template zynqMP -n <project-name>

但是,不是从zcu111-BSP中创建的工程,默认不会包含zcu111的设备树信息。

这样会导致zcu111中的一些外设无法使用(如以太网接口,就是因为无法使用以太网接口才发现的问题)。启动Kernel后,提示找不到eth0设备(这是由于设备树中,没有添加PHY芯片相关的信息,导致Linux kernel无法得知如何驱动PHY),解决此问题只需要将官方的设备树文件添加到自定义工程中即可。

2 配置设备树

设备树分为两个部分,一个是系统根据hdf文件自动生成的设备树,保存在components/plnx_workspace/device-tree/device-tree/中,这个文件夹的中的文件不建议更改。另外一个是系统设备树,保存在project-spec/meta-user/recipes-bsp/device-tree/files/中,是用户可以修改的设备树文件。

准备好 zcu111-reva.dtsi

放入project-spec/meta-user/recipes-bsp/device-tree/files/

之后在system-user.dtsi中调用

/include/ "system-conf.dtsi"
#include "zcu111-reva.dtsi"
/ {
};

project-spec/meta-user/recipes-bsp/device-tree/device-tree.bbappend中添加 zcu111-reva.dtsi

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

SRC_URI += "file://system-user.dtsi"
SRC_URI += "file://zcu111-reva.dtsi"

3 启动编译并运行

略,使用了官方设备树文件之后,Linux 可以根据device-tree来正确驱动外设,如以太网GEM和PHY。

posted @ 2022-04-01 20:14  ArtisticZhao  阅读(450)  评论(0编辑  收藏  举报