设备树用于硬件和软件之间的信息交互,也就是将ZedBoard的硬件信息传递给linux内核,避免在linux内核中硬编码而影响在其他平台上的可移植性。设备树一般以两种文件格式存在,一个是dts文件,也就是文本文件,便于阅读,另外一种是dtb文件,是二进制格式,是dts使用dtc编译器编译而来,由uboot展开并传递给linux内核。设备树的文件格式可以参考 http://www.devicetree.org/Device_Tree_Usage 和
http://xillybus.com/tutorials/device-tree-zynq-1
如果你已经下载了最开始提到的linux-digilent内核源码,你可以在arch/arm/boot/dts/目录中找到digilent-zed.dts文件。这个dts文件包含比较丰富的硬件结构,但是不适合我们前面配置的最小系统。所以,我们需要自己来创建一个适合我们自己平台的dts文件。但这并不意味着我们需要使用文本编辑器从头按照繁琐的格式来编写。参考Xilinx Wiki上的一篇教程 http://www.wiki.xilinx.com/Build+Device+Tree+Blob ,我们可以轻松创建需要的设备树。
首先下载device tree generator,安装到SDK
下载方式一:使用git
# For SDK 2014.1 (or earlier) use this repo:
git clone git://github.com/Xilinx/device-tree.git bsp/device-tree_v0_00_x
# Otherwise for SDK 2014.2 use this repo:
git clone git://github.com/Xilinx/device-tree-xlnx.git
下载的文件必须包含以下两个文件
device_tree.mld
device_tree.tcl
然后重命名(注意此处版本号一定不能是其他的)
device-tree_v2_1_0.mld
device-tree_v2_1_0.tcl
新建一个repo的目录,我将它放在SDK工程目录下(其他路径亦可,注意路径不能有空格)我的是
C