移植Linux系统,配置与驱动相对应的设备树操作方法

引用文章:添加链接描述

设备树包 可以到github中下载:
https://github.com/Xilinx/device-tree-xlnx/releases/tag/xilinx-v2020.1

设备树的生成
设备树的配置
设备树对应驱动

ZYNQ在做linux的系统移植时,例如生成 Ubuntu 的操作系统,最大的困难就是设备树的配置,眼花缭乱的模块,不明所以的语法结构,真的能把新手逼疯。
好在Xilinx Vitis 是有自动生成设备树这个功能的,但好像挺多人不知道的, 或许就不需要 ,本篇博客就是来介绍下 如何使用Vitis 和 XSA 硬件工程文件生成设备树,并且将其配置成与驱动相匹配。
设备树的生成
使用工具:Vitis 2020版
打开vitis 2020 版,选择文件夹,launch,点击下图所示:
在这里插入图片描述
选择下图选项:
在这里插入图片描述
点击 “new” 选择官方设备树包,设备树包可以去米联客官网下载,先点击 “Apply” 再点击 “Apply and close” 。
在这里插入图片描述
接下来正常生成 platform 需要注意的是 system 需要选择 “device tree” 如下图:
在这里插入图片描述
build project
在这里插入图片描述
在工程下就会自动生成该XSA对应的设备树文件:
在这里插入图片描述
有这些设备树文件就可以对编译内核所需的设备树进行修改,这一部分的修改,我个人感觉是Linux系统编译和移植最麻烦的部分,不难只是很多细节。只要做到了这一步,基本上系统启动出现的各种问题(例如boot起不来,识别不到emmc,没有eth0等等),都可以在设备树上找到对应。

设备树的配置
这一部分的配置,本篇只说下需要注意且通用的几个重点,像是依赖关系,设备树文件的命名这种和生成内核的工具相关的细节就不提了,也没有必要。
首先,上一节生成的6个“dts”或“dtsi”文件,通常只用到其中的三个:“pcw.dtsi”、“pl.dtsi”、“system-top.dts”

三个文件可以整合到同一个 “dts” 文件,也可以保留多个文件,例如一个 “dts” 文件调用另外两个 “dtsi” 文件。
但只是这样生成的 “BOOT.bin” 文件,甚至都没法完全启动系统,会在启动 kernel 时报一个识别不到 rootfs 的错误,我这边没留下当时错误的截图,就不展示了。
这时,就得在设备树中手动添加相关模块,首先在 “system-top.dts” 中添加下图所示代码:(左边是 “system-top.dts” 原始代码)
在这里插入图片描述
这样配置的设备树至少 boot 是可以起来的,如果boot起来还有问题,就得从 boot 生成工具,或者硬件工程的配置是否没对上上的方向去排查。
好了,接下来就是最重要的设备树与驱动的对应。

设备树对应驱动
本篇博客所举例的驱动,特指 “VDMA” 这种硬件接口驱动,也只有这类驱动才需要在设备树上配置。
首先,查看 “pl.dtsi” 中 vdma 的一个配置:
在这里插入图片描述
“compatible” 这个配置,默认是赛灵思官方的驱动,但不管是赛灵思官方驱动,还是米联客的驱动,亦或是自己手动配的驱动,都需要对应到驱动里的“compatible”,以米联客的驱动为例,如下图:
在这里插入图片描述
两者一致,且不和其他驱动重复即可。
另外提一下,容易与 compatible 混淆的设备名称,也就是在 linux 系统中输入:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值