AnsweredAssumed Answered

HDL Ref. design for FMCOMMS3 (ZC706) for IIO Oscilloscope

Question asked by pajkaj13 on Apr 27, 2016
Latest reply on Feb 15, 2017 by marcinsztajn

Hello! I am working with an FMCOMMS3 board and a ZC706 Zynq board. I am struggling with an issue and thought I'd post here for help.


I have no trouble loading up the IIO Oscilloscope application that is on my SD card, via the Linux disk image provided by Analog Devices (one of the VERSION files says "build-2014-03-13" - this is not the newest but seems to be running fine). I turn on the ZC706, and after 30 seconds or so the monitor lights up as the Linux boot finishes and I'm able to use the Oscilloscope to my heart's content.


My current objective is to recreate a BOOT.bin file for the FMCOMMS3/ZC706 using the reference HDL design on GIT but with the bootloader (fsbl.elf) and u-boot.elf that are currently in the SD card disk image. This would allow me to - down the road - make a change to the HDL if I wanted to, like using some of the ZC706's GPIOs for additional bread-board testing.


Here is what I did to attempt this:

  • I downloaded the repository here that matched the Vivado version I happen to have installed (2015.2.1):
    and built the project: ./hardware/projects/fmcomms2/zc706/fmcomms2_zc706.xpr
  • I unzipped the file on the SD card: zynq-zc706-adv7511-ad9361/bootgen_sysfiles.tgz which contains
    • system.bit
    • u-boot.elf
    • zynq.bif
    • fsbl.elf
  • I opened up Vivado SDK, go to "Create Zynq Boot Image". I use AD's zynq.bif which I can see includes boot image partitions:
    • (bootloader) fsbl.elf
    • system.bit
    • u-boot.elf
  • I create the BOOT.bin using my system_top.bit that was the output bit file from my HDL checkout and synthesis.


When I do this, the screen never turns on and nothing boots up. I do see the DONE LED turn on on the ZC706 a few seconds after switching on power but that's the end of the story.


When I do this exact same method but with the system.bit provided on the SD card in bootgen_sysfiles.tgz instead of my own Vivado output, everything works perfectly.


So: Am I either (a) doing something wrong, like do I have a version problem or something else or (b) am I wrong about my assumption that the aforementioned GIT repository contains the same HDL reference design that is included in the Linux disk image that is put onto the SD card?


Thanks in advance for any help you can give!