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。