• 0
digicloud14

Building Device Tree Blob

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

Edited by KaitlynFranz

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 1

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

Share this post


Link to post
Share on other sites
  • 2

Chris,

If you plan on continuing work with embedded linux or you have trouble with a virtual machine, you may consider dual booting your computer. You can find detailed instructions here

Kaitlyn

Share this post


Link to post
Share on other sites
  • 1

KaitlynFranz is right, using Linux will make your life easier for this part of your project.

I'd also recommend checking out Step 1 and Step 2 from the ZYBOt guide for further insight on dual-booting and getting your SD Card to work.

-Josh

Share this post


Link to post
Share on other sites
  • 1

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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?

 

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now