element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
MicroZed Hardware Design Hello world does not work on REVF07 board, does on REVF06
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 7 replies
  • Subscribers 314 subscribers
  • Views 1001 views
  • Users 0 members are here
Related

Hello world does not work on REVF07 board, does on REVF06

knifter
knifter over 8 years ago

I’m having a lot of problems running any hello_world type of application PS of the Rev F.06 board. The PL seems to run fine (System ILA running and signals present).

But after launching the SDK and making a ‘main() { xil_printf(“hello world”) }; application I run into a lot of problems.

I’ve connected a HS2 JTAG adapter to a free-floating and virgin REVF07 board and the board’s USB-UART is also connected to the PC. The serial port is open (115200 baud, default config). When I boot from QSPI I can see linux booting and I don’t experience any problems with the UART or anything else.

But when I try to upload and debug my application (breakpoint at the printf statement) I get at least any or several of the following problems:

  •  

    No output at all on the serial console

  •  

    Sometime I see various garbled outputs: ‘HHHHHHHHHHHHH….’, ‘HellHellHellHelloHell’ or ‘Hellowrld’, only for once though

  •  

    The JTAG adapter seems to lose its connection to the hw_server, a reboot is necessary.

  •  

    The program stops and debugs with an instruction pointer in the ‘far’ memory range: 0xf……., which cannot exist. Op-codes seem like garbage.

  •  

    It stops at my breakpoint several time (2-6) before permanently losing sync with the JTAG adapter resulting in:

  •  

    Various DAP error codes and timeouts

  •  

    DAP timeout errors in the 0x01000… range (DDR)

  •  

    “Error while launching program: Memory read error at 0xF8007080. AHB AP transaction error, DAP status f0000021”

  •  

    “Error while launching program:  no targets found with "name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-HS2 210249A0658C"". available targets:

           1  DAP (JTAG port open error. AP transaction error, DAP status 30000021)

           2  xc7z010

           (To fix this error I have to reboot AND unplug the HS2)

 

After trying to find the cause for this for days (thinking it had to be in my project settings or had to do with the ZC702 board-swap) I finally ended up going to a colleague in the city to try and find it together. First thing we did is take his PC, nr 2., with his JTAG adapter (Digilent XUP USB-JTAG) and taking a new MicroZed 7010 board of his stock (REVF06). We created a new ‘hello_world’ project and everything worked fine. We then switched out to my REVF07 board and we got the same bunch of problems. Then tried another REVF07 board which I bought in the same order at AvNet: same problems. Tried another REVF06 board and the problems disappear again.

Research shows that the difference between the F06 and F07 board is the micrel memory being replaced by kingston parts. As is stated in the change-note this should not matter in any way. However, looking at my problems (the instruction pointer in the 0xf… range, stopping several times at my breakpoint despite not having a loop there) I could relate this to memory problems (of many other). Also I found this topic: http://microzed.org/content/memory-corruption-rev-f07

I have no idea where to look or how to solve this. Is this a F07 problem? Is there something wrong with what I’m trying to do? A default hello_world?

 

Do you have any ideas or advice? Developing for the MicroZed has become downright impossible now.

 

Thank you in advance,

Tijs van Roon

  • Sign in to reply
  • Cancel
  • knifter
    0 knifter over 8 years ago

    Hardware used:

    •  

      Windows 10 PC 1 with Vivado 2016.4

    •  

      Windows 10 PC 2 with Vivado 2016.3

    •  

      PC 1 tried with Digilent HS2 Rev. 2 JTAG adapter

    •  

      PC 2 tried with same HS2 and Digilent XUP USB-JTAG Programming Cable

    •  

      MicroZed Rev F.06 (working)

    •  

      MicroZed Rev F.07 (not working)

     

    Steps to reproduce:

    1.  

      Take a REVF07 board and set jumpers to JTAG mode (1-2, 1-2, 1-2)

    2.  

      Install Vivado 2016.4 and the MicroZed board support files

    3.  

      Create a new Vivado Example project

    4.  

      Choose ‘Base Zynq’

    5.  

      You’ll have to choose a ZC702 board as the MicroZed board package doesn’t show up with the example projects.. [1]

    6.  

      Open Project settings and change the board to ‘MicroZed 7010 Board’

    7.  

      Open Block design and delete the leds_4bits’ port as these are not present

    8.  

      My project ask to upgrade ip-status. I did, choosing ‘Out of content per IP’->Generate

    9.  

      Press ‘Generate Bitstream’ and wait until it’s finished

    10.  

      File->Export->Export Hardware, choose defaults and include bitstream

    11.  

      File->Launch SDK

    12.  

      In the SDK: File->New->Application Project

    13.  

      Name it, Choose: standalone, create new BSP

    14.  

      Next, choose Hello World, OK

    15.  

      Create a breakpoint at the printf(“Hello world\n\r”) in helloworld.c

    16.  

      Create a Debug configuration with choose the system debugger.

    17.  

      Configure the debug to ‘Reset entire system’, ‘Program FPGA’, ‘Run ps7_init’, ‘Run ps7_post_config’

    18.  

      Press Debug

    19.  

      I do not see ‘hello world’ and get any of the above error modes

    20.  

      Switch out the board for a REVF06, USB-UART and JTAG. Again set jumper to JTAG mode

    21.  

      Reconnect SDK Terminal

    22.  

      Press Debug and it works

     

    Note 1: Choosing an Empty RTL project and choosing the MicroZed Z7010 board works as well but you have to design the Zynq PS block design yourself as block automation does not build a PS system (with reset block etc). Build this by hand and the problem remains the same though.

     
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 8 years ago

    Hi Knifer,

    So if I am understanding correctly, your RevF06 board is functioning while the Rev F07 board is not. This is true in both cases, when you use an example project and even when you build your own project from scratch(described in note 1) correct? 

    To get a base that I can follow along with could you please do Tutorial 01 and Tutorial 02 for your MicroZed(please use Vivado 2016.4).See link: http://zedboard.org/support/design/1519/10

    At most the tutorials will take you 30 minutes. In Tutorial 02 you run the Hello World application. Could you please confirm that your RevF06 board is functioning and your Rev07 board is not after completing Tutorial 02.

    Thanks,

    Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • knifter
    0 knifter over 8 years ago

    Hi JFoster,

    I'm sorry for the delay but due to a driver problem with a prolific adapter I had to reinstall windows 10... So I've just completed the tutorials with a newly installed windows 10, vivado, board support files.

    Yes, you understand correctly. The RevF06 is working (in my project) and the RevF07 is not, however:

    I've taken your suggestion and did both turorials. Almost the same steps as I took in my procedure (which does not show up here in the topic) with the difference of choosing the Z7010 board right away at the beginning while creating the project. 

    Now both boards work! I can see "Hello world" and I can debug (breakpoint) the code on both the RevF06 and RevF07 boards.

    I'm still investigating the difference but what I can see already is that my previous project has the Micrel mt41j128m16ha-15e memory selected while the new (Z7010) project has the MT41K256M16 RE-125 memory selected. There might be more differences. But it appears that selecting ZC702 and switching out the board (in order to use the example projects!) does not apply the board presets, right?

    I've checked those presets and can see a big list of settings (including DDR settings/type) in the z7010 preset.xml while the zc702 preset.xml does a lot less and no memory settings. I will try to copy over the memory settings from the new project and see if it works (the RAS/CAS delays are identical). But this will not ensure me that any other critical settings have not been missed.

    Is there anyway to apply these presets again to my current project? Or do I have to start over and choose a Z7010 board right away?

    Thank you so far,

    Tijs

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • knifter
    0 knifter over 8 years ago

    I forgot to clarify: My old project still has the same behavior: F06 works, F07 doesn't. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • knifter
    0 knifter over 8 years ago

    Confirmed. Setting the part to MT41K256M16 RE-125, settings Internal Vref to false, copying DQSx to Clock delays makes both boards work in my previous project too (so far). Not sure which of these three is the cause. Setting the part did not change any of the timings parameters in 'Memory Part Configuration' as these timings are identical for both parts. Is it the Vref?

    So I expect that this is the cause: selecting another board and switching back to the Z7010 via project options does not apply board settings (I don't know if this is expected behaviour, but I also didn't get the option). If one wants to do this the board presets should be applied another way. How would I do this? The preset files contain a lot more information then the above settings. Especially DDR trace lengths timings which I could not cannot apply in PS settings manually.

    Ill note again that selecting an Example project instead of RTL Project does not allow selecting any other board than ZC702, so I would expect more beginners to run into this problem when they start out using an example.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 8 years ago

    Hi Knifter,

    I am glad to hear it was a board preset issue and not a hardware issue. I don't believe Vref should make a difference. For you Xilinx tools related questions I am going to suggest you ask them over at the xilinx forum as they are best suited in providing you a solution.

    https://forums.xilinx.com/

    Regards,

    Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • knifter
    0 knifter over 8 years ago

    Hello Josh,

    Yes, I am too. Although it took me weeks to figure this out. It might be worth mentioning in the tutorial or somewhere else a beginner might run into (that you need to make sure the presets are applied, before bothering what they actually all mean).

    For archival purposes, might someone else run in the same problem:

    I've made a .tcl file to set all the properties as they're being set in the preset.xml file. Running this file fixes the problem. As a starting point I took the MicroZed_PS_properties_v03.tcl file from http://microzed.org/support/documentation/1519. Although a few settings are missin from this file (as compared to preset.xml), running this file will probably fix the problem as well.

    I just want to note that I think it is a but short-cornered to give the problem of applying presets later on to the Xilinx forum as you have provided these files previously: MicroZed_PS_properties_v03.tcl file for vivado 2013.4 I know now that running that file would have solved my problem as well. But you do not provide these files for any later version of Vivado. Maybe it is a good idea to do so.. such that board presets can be applied later.

    Thank you again for your help,

    Tijs

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube