Jump to content
  • 0

Building Device Tree Blob


digicloud14

Question

Hi all,

I have a Zynq -7000 development board and am using Vivado 2014.4. I have a block design that successfully synthesizes and generates a bitstream. My design uses Xilinx's VDMA core, and I want to use the Xilinx's VDMA driver with it (http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs#AXI VDMA). The driver guide says "The device tree node for AXI VDMA will be automatically generated, if the core is configured in the HW design, using the Device Tree BSP." However, I am having trouble generating a device tree for the design. I have been referencing this http://www.wiki.xilinx.com/Build+Device+Tree+Blob and have gotten as far as generating a .dts file, but I'm having trouble understanding how to compile a .dtb from that. From what I understand, it seems that I need build a Linux kernal to use the device tree compiler? I have been building my project on a Windows 8 computer. Is there another way I can generate a .dtb file from the .dts file?

Any help is appreciated

Thanks,
Chris

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

Hi Chris,

Since you are currently developing a Linux embedded system. A Linux host system running on your PC is necessary. dts can not compile into dtb under windows environment.

Suggest OS is Ubuntu 14.04 LTS or Cent OS 7

Under Linux environment, the easiest way to handle everything related with zynq and embedded OS is Petalinux solution provided by Xilinx. this tool contains everything you need to make the embedded os to work.

Jieming

Link to comment
Share on other sites

Hey Jieming,

Thanks for the answer. Yes I'm running a version of Ubuntu on my Zynq right now, but all the Vivado related design has been done on my Windows computer. Sounds like I'll either need a virtual machine on my computer or I'll need to compile the dtb on the Zynq itself. I'll consider switching to Petalinux. Thank you for all your help.

Chris

Link to comment
Share on other sites

Thanks for the responses. I have a virtual machine running now, but I am still having trouble using the DTC. Whenever I try to run the following command to compile the .dts, I get: 

chris@Chris-VirtualBox:~/device_tree_bsp_0$ dtc -I dts -O dtb -o system.dtb system.dts
Error: pl.dtsi:76.22-23 syntax error
FATAL ERROR: Unable to parse input tree

It's driving me nuts. I've been trying for hours to compile the .dts and everything I've found online as suggestions to solve the issue are not working. Any ideas?

 

Link to comment
Share on other sites

Hey Chris,

I haven't played with this stuff too much but while reading up on the subject I came across this page http://xillybus.com/tutorials/device-tree-zynq-1 It seems to go pretty in depth and may help you out. This guy is running Xillinux on a Zedboard but it should be pretty similar for Ubuntu. Using this method, you could try to compile it on your board. 

-Sam

Link to comment
Share on other sites

Hey Sam,

Thanks for your post. That link was pretty helpful in bettering my understanding of a device tree. I am fairly new to embedded linux (and linux in general) so the documentation is useful.
I was able to compile the .dts into .dtb. Turns out resolving the syntax error that came before the fatal error fixed everything. The culprits were the lines for the interrupt channels on the vdma, they were both initialized to <-1> in the device tree, which apparently is not an acceptable value. I'm not quite sure what the values should be, but changing them to a positive integer resolved the error and allowed me to compile the .dtb.

Thanks for the help,
Chris

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...