UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer mcaughey
Observer
3,942 Views
Registered: ‎07-13-2017

MicroBlaze on VCU108

Jump to solution

I've been trying all day to build a basic MicroBlaze for my VCU108 board.  I have been able to get a bitstream built, then I export the hardware with the bitstream.  Then launch the SDK, then program the FPGA.

 

I cannot build a freeRTOS application or a standalone application.  I can build the linux application, but the system debugger never launches.

 

error for the freeRTOS:

03:36:39 ERROR	: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_freertos901_xilinx_v1_0::FreeRTOS_drc : FreeRTOS for Microblaze requires an axi_timer or xps_timer. The HW platform doesn't have a valid timer.
    while executing
"error "FreeRTOS for Microblaze requires an axi_timer or xps_timer. The HW platform doesn't have a valid timer." "" "mdt_error""
    (procedure "mb_drc_checks" line 82)
    invoked from within
"mb_drc_checks $sw_proc_handle $hw_proc_handle $os_handle"
    (procedure "::sw_freertos901_xilinx_v1_0::FreeRTOS_drc" line 10)
    invoked from within
"::sw_freertos901_xilinx_v1_0::FreeRTOS_drc freertos901_xilinx"
ERROR: [Hsi 55-1440] Error(s) while running DRCs.

03:36:39 ERROR	: (XSDB Server)ERROR: [Hsi 55-1450] Error: running generate_bsp.

03:36:39 ERROR	: Error generating bsp sources: Failed in generating sources

Failure for the standalone:

03:41:46 ERROR	: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_standalone_v6_3::post_generate : couldn't execute "mb-ar": no such file or directory
    while executing
"exec $archiver -d $libgloss_a _interrupt_handler.o"
    (procedure "::sw_standalone_v6_3::post_generate" line 18)
    invoked from within
"::sw_standalone_v6_3::post_generate standalone"
ERROR: [Hsi 55-1443] Error(s) while running TCL procedure post_generate()

03:41:46 ERROR	: (XSDB Server)ERROR: [Hsi 55-1450] Error: running generate_bsp.

03:41:46 ERROR	: Error generating bsp sources: Failed in generating sources

 I'm just trying to build the Hello World.

 

The Linux application hangs at 57% trying to launch the System Debugger.

 

Additionally, as per another previous post

https://forums.xilinx.com/t5/Xilinx-Boards-and-Kits/VCU108-Board-Test-on-Ubuntu/td-p/778983 

I can see the UART and JTAG USB connections in the dmesg output but I cannot connect to /dev/ttyUSB0 or /dev/ttyUSB1.  One of them is the UART and the other is the JTAG.  Obviously the dirvers work for the JTAG as I am able to program the board.

 

My attempts at connecting to the UART are by using the SDK Terminal setting the port to/dev/ttyUSB0 and /dev/ttyUSB1.  I have tried both 9600 and 115200.  I have also tried minicom from the command line.  

 

So I cannot determine if the Linux version is running.  I don't know enough about the linux version of the application, seems like I would need a Linux kernel running on the microblaze for that to work.  The FreeRTOS or Standalone should work, unless I'm missing something.

 

I have watched a number of videos, but they are all dated.  I'm using Vivado 2017.2, node locked and device locked to the xcvu095 chip on the VCU108 board.

 

I have built the block design with and with out the Interrupt from the UARTLite connected to the MicroBlaze.  

 

So my questions are:

1) should I be able to run freeRTOS? If so what am I not doing that I need to be doing?  and secondly is there an example somewhere?  I've been looking and cannot find one.

 

2)should the standalone work? f so what am I not doing that I need to be doing?

 

3) I guess the same questions for Linux.

 

The UART is throwing me as well.

 

I got the applications to work on with a zynq chip, so I have seen a successful build from start through to the SDK and running the Hello world with output to the UART.  I'm just trying to do the same here so I have a starting point going forward.

 

If there is a more up to date tutorial for VCU108 and 2017.2 with microblaze that would be great to see.

 

Thanks in advance and sorry for the long post.

0 Kudos
1 Solution

Accepted Solutions
Scholar hbucher
Scholar
7,169 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey Watch the 2nd video - I went through both these errors as well. 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
16 Replies
Scholar hbucher
Scholar
3,917 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey FreeRTOS needs a source of time, a clock counter. It is complaining that you don't have an AXI Timer on your base design.

 Just pop one from the IP catalog into your design and run connection automation. That should get you further along.

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Observer mcaughey
Observer
3,904 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

Thank you for the response.  That solved the RToS problem.  I added an AXI Timer and connected the interrupt and now I can create a default Hello world app based on freRTOS.  That said the applications starts out with 26 Errors.  That's before I touch it.  So I guess this is not a viable option.

 

I found some articles on the Linux.  Apparently I have to build a Linux Kernel and file system.  That is along the lines I thought, but could not originally find.

 

So I'm stil confused as to why the standalone doesn't work.

0 Kudos
Scholar hbucher
Scholar
3,903 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey Why not a viable option? People use it all the time.

Linux has a heavy overhead - you need to be careful. 

Perhaps this document can help you along

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_1/ug1165-zynq-embedded-design-tutorial.pdf

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Observer mcaughey
Observer
3,900 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

It is very likely a viable option for many.  Me personally, its not going to work.  I'm looking for a basic Hello World to work, not have 26 Errors that I need to trace through to fix before the example application works.  If I fail at the Linux and cannot figure out the standalone then I'll have to come back and work through these errors.  This is a little frustrating.  I get that working with FPGA is advance technical work, and I'm up for it.  But when a simple Hello World application starts out with 26 Errors, there is a real problem.

 

Thank you for providing the reference.  I have seen the PDF you referenced and using the Zynq PS makes things a lot easier.  I'm essentially trying to replicate that on this Virtex Ultrascale.   What I'm trying to do is build a base for further development.  

 

I got the Zynq stuff running with no problem on the zybo board.  I built to the limits of that board and had more stuff I wanted to implement.  I set out to by the ZCU102, but ran across a VCU108 for a little more tan the ZCU102, and figure incorrectly that it would be easy to use.

 

I'm confident if I keep working on this I'll get it.  I know its something I'm doing wrong.  The problem is all the videos seem to gloss over key things, so I have to watch a number of them to pick up little things.  that and all of the videos for this platform end with 2016.4.

0 Kudos
Scholar hbucher
Scholar
3,876 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey What are the errors? We cant help if you dont paste them. Be specific. Just saying "there are 26 errors" will not get you anywhere. 

To run a simple "Hello World" you need to have already all your ducks in a row. It is usually the final step of a design, not the first.

 

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Observer mcaughey
Observer
3,862 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

@hbutcher

 

 

Here are the selections to create the application

create_app.png

 

and the selection of Hello World

Hello_world.png

 

 

 

here are the errors I get

 

 

Description	Resource	Path	Location	Type
make: *** [microblaze_0/libsrc/bram_v4_1/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/cpu_v2_6/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/freertos901_xilinx_v1_0/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/gpio_v4_3/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/intc_v3_6/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/tmrctr_v4_3/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/uartlite_v3_2/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [src/freertos_hello_world.o] Error 127	rtos		 	C/C++ Problem
make: Target 'all' not remade because of errors.	rtos_bsp		 	C/C++ Problem
make[1]: *** [libs] Error 127	rtos_bsp		 	C/C++ Problem
make[1]: *** [libs] Error 2	rtos_bsp		 	C/C++ Problem
make[2]: *** [standalone_libs] Error 127	rtos_bsp		 	C/C++ Problem
make[2]: mb-gcc: Command not found	rtos_bsp		 	C/C++ Problem
make[2]: Target 'libs' not remade because of errors.	rtos_bsp		 	C/C++ Problem
recipe for target 'libs' failed	Makefile	/rtos_bsp	line 18	C/C++ Problem
recipe for target 'libs' failed	Makefile	/rtos_bsp	line 19	C/C++ Problem
recipe for target 'libs' failed	Makefile	/rtos_bsp	line 110	C/C++ Problem
recipe for target 'microblaze_0/libsrc/bram_v4_1/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/cpu_v2_6/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/freertos901_xilinx_v1_0/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/gpio_v4_3/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/intc_v3_6/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/tmrctr_v4_3/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/uartlite_v3_2/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'src/freertos_hello_world.o' failed	subdir.mk	/rtos/Debug/src	line 21	C/C++ Problem
recipe for target 'standalone_libs' failed	Makefile_depends	/rtos_bsp/microblaze_0/libsrc/standalone_v6_3/src	line 61	C/C++ Problem

 

The tarball for the Vivado project is 440 MB.  If there is any part of it that I can provide to help let me know.  

 

Thanks for the assistance.

 

0 Kudos
Scholar hbucher
Scholar
3,865 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey

Here - I made this video of Microblaze on the ZCU102

https://youtu.be/66kYoCOoIc4

The only catch: the two first UARTs are PS-side and the next two are PL-side. So check out I pick the 3rd COM in the list/Control Panel/System.

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Observer mcaughey
Observer
3,851 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

@hbucher, thank you for the assistance, this is far beyond the help I was expecting.

 

I am using the VCU108 board, so I chose it.  I ran into an error during implementation.  I performed the steps twice and recorded the second run.

 

Here are the errors I got:

[Mig 66-99] Memory Core Error - [design_1_i/ddr4_0] Either port(s) c0_sys_clk_p, c0_sys_clk_n is/are not placed or un-supported clocking structure/circuit for memory ip instance. Please refer to clocking section of PG150 for supported clocking structures. 

[Opt 31-306] MIG Core Generation Failed.

I did notice that there was no user clock port placed on the block diagram.  Your demo shows a user_si570_sysclk port created during the automation step.  Mine didn't do that.

 

Here is the recording: https://youtu.be/k2KrjajdFE0

0 Kudos
Observer mcaughey
Observer
3,850 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

I should have been a little more clear about running the steps twice.  I ran through the demo once and got the error.  Then I started over and did the same, re watching the video.  I received the same error.

0 Kudos
Scholar hbucher
Scholar
4,425 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey 

Unfortunately I dont own a VCU108. My board is the ZCU102. I thought about it because it has 2 PL-side UART - this way I can ignore the Zynq MPSOC altogether. The ZC706 would not allow me to do this.

So now you are down to adding a MIG to your design. On all boards I have it is just a matter to drag/drop the DDR. On the VCU108 it looks like there are some additional steps to take. Check this out:

https://www.xilinx.com/support/answers/65263.html

Once you get the DDR4 properly instantiated and clocked, it should give you a clock source to feed the Microblaze and the rest of the design. At that point you can step back into the video sequence.

I have just added a second video on the additional steps you need to do go from baremetal to FreeRTOS. I do this more on my own behalf - I have a terrible memory.

https://www.youtube.com/watch?v=Uib8YSb8k5I

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Observer mcaughey
Observer
4,416 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

@hbucher, I continued to research the problem at hand.  I found that the I had to adjust the System Clock option in the Advanced Clocking tab for the IP DDR4 SDRAM MIG.  I had to set it to Differential.  Then I had to drop a system differential clock from the board page.

 

Now it implements.

Once in the SDK I get the following error if I try to make a RTOS application:

03:25:43 ERROR	: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_freertos901_xilinx_v1_0::FreeRTOS_drc : CPU has no connection to Interrupt controller.
    while executing
"error "CPU has no connection to Interrupt controller." "" "mdt_error""
    (procedure "mb_drc_checks" line 29)
    invoked from within
"mb_drc_checks $sw_proc_handle $hw_proc_handle $os_handle"
    (procedure "::sw_freertos901_xilinx_v1_0::FreeRTOS_drc" line 10)
    invoked from within
"::sw_freertos901_xilinx_v1_0::FreeRTOS_drc freertos901_xilinx"
ERROR: [Hsi 55-1440] Error(s) while running DRCs.

03:25:43 ERROR	: (XSDB Server)ERROR: [Hsi 55-1450] Error: running generate_bsp.

03:25:43 ERROR	: Error generating bsp sources: Failed in generating sources

And the following if I try to create a standalone:

03:26:27 ERROR	: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_standalone_v6_3::post_generate : couldn't execute "mb-ar": no such file or directory
    while executing
"exec $archiver -d $libgloss_a _interrupt_handler.o"
    (procedure "::sw_standalone_v6_3::post_generate" line 18)
    invoked from within
"::sw_standalone_v6_3::post_generate standalone"

03:26:27 ERROR	: (XSDB Server)ERROR: [Hsi 55-1443] Error(s) while running TCL procedure post_generate()

03:26:27 ERROR	: (XSDB Server)ERROR: [Hsi 55-1450] Error: running generate_bsp.

03:26:27 ERROR	: Error generating bsp sources: Failed in generating sources

I can see that they are both complaining about an interrupt handler.  I have seen the standalone one before, I believe it may even be the same as what I originally posted.

 

Observer mcaughey
Observer
4,414 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

I've added an AXI Interrupt Controller and a concat.  I fed the int of the aix uart and axi timer through a  Concat into the AXI Interrupt controller.  It's building now.  I'll tackle the rest in the morning.

0 Kudos
Scholar hbucher
Scholar
7,170 Views
Registered: ‎03-22-2016

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey Watch the 2nd video - I went through both these errors as well. 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
Visitor trm61
Visitor
4,391 Views
Registered: ‎06-25-2017

Re: MicroBlaze on VCU108

Jump to solution

@mcaughey

You sent me a message and for the life of me I cannot find out where it is or how to respond.

I ordered a board 105 board but have not received it yet and even when I get it, I won't be able to look at anything for 3+ weeks due to moving :(

0 Kudos
Observer mcaughey
Observer
4,367 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

@hbucher here is an updated video.  I didn't watch your second video because I mistakenly assumed it was how to create the RTOS and that it worked.  I watched like 30 seconds and decided I needed to get my problem fixed first.  So I guess I'm glad that I came up with the same thing you did.  It would have been quicker to just watch your video. :-)  Obviously I did go back and watch you video.

 

https://youtu.be/kiMxSrZTl38

 

I added the clock, the AXI Interrupt Controller and the concat.

 

So I now have a full system, but I'm back to square 1.  I cannot create the standalone bare metal hello world application, and the rtos application is created but has 24 errors through out the make files.  I guess I could just comment out the offending lines, but not all are echo.

 

Here is the error for the standalone.  As you can see there is still an interrupt error.

 

17:53:24 ERROR	: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_standalone_v6_3::post_generate : couldn't execute "mb-ar": no such file or directory
    while executing
"exec $archiver -d $libgloss_a _interrupt_handler.o"
    (procedure "::sw_standalone_v6_3::post_generate" line 18)
    invoked from within
"::sw_standalone_v6_3::post_generate standalone"
ERROR: [Hsi 55-1443] Error(s) while running TCL procedure post_generate()

17:53:24 ERROR	: (XSDB Server)ERROR: [Hsi 55-1450] Error: running generate_bsp.

17:53:24 ERROR	: Error generating bsp sources: Failed in generating sources

 

The Errors from the RTOS.  They seem to be on the echo lines.  I guess I could just comment them out.  But there are few others that are parts of the make instructions.  

 

Description	Resource	Path	Location	Type
make: *** [microblaze_0/libsrc/bram_v4_1/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/cpu_v2_6/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/freertos901_xilinx_v1_0/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/intc_v3_6/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/tmrctr_v4_3/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [microblaze_0/libsrc/uartlite_v3_2/src/make.libs] Error 2	rtos_bsp		 	C/C++ Problem
make: *** [src/freertos_hello_world.o] Error 127	rtos		 	C/C++ Problem
make: Target 'all' not remade because of errors.	rtos_bsp		 	C/C++ Problem
make[1]: *** [libs] Error 127	rtos_bsp		 	C/C++ Problem
make[1]: *** [libs] Error 2	rtos_bsp		 	C/C++ Problem
make[2]: *** [standalone_libs] Error 127	rtos_bsp		 	C/C++ Problem
make[2]: mb-gcc: Command not found	rtos_bsp		 	C/C++ Problem
make[2]: Target 'libs' not remade because of errors.	rtos_bsp		 	C/C++ Problem
recipe for target 'libs' failed	Makefile	/rtos_bsp	line 18	C/C++ Problem
recipe for target 'libs' failed	Makefile	/rtos_bsp	line 19	C/C++ Problem
recipe for target 'libs' failed	Makefile	/rtos_bsp	line 110	C/C++ Problem
recipe for target 'microblaze_0/libsrc/bram_v4_1/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/cpu_v2_6/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/freertos901_xilinx_v1_0/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/intc_v3_6/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/tmrctr_v4_3/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'microblaze_0/libsrc/uartlite_v3_2/src/make.libs' failed	Makefile	/rtos_bsp	line 29	C/C++ Problem
recipe for target 'src/freertos_hello_world.o' failed	subdir.mk	/rtos/Debug/src	line 21	C/C++ Problem
recipe for target 'standalone_libs' failed	Makefile_depends	/rtos_bsp/microblaze_0/libsrc/standalone_v6_3/src	line 61	C/C++ Problem

 

As much as I would like to say the SDK was not properly installed.  I was building standalone SDK apps for the zybo and never had these problems.

 

 

0 Kudos
Observer mcaughey
Observer
4,380 Views
Registered: ‎07-13-2017

Re: MicroBlaze on VCU108

Jump to solution

@hbucher

Finally found the fix.  Micro Blaze is 32 bit.  I'm running a 64 bit version of Ubuntu.

 

I found this forum posting that explains the fix: https://forums.xilinx.com/t5/Embedded-Development-Tools/Vivado-2016-1-SDK-launch-problem/td-p/718338

 

I just had to install a few pieces of the 32 bit architecture.  I won't copy it here because the original posting provides an excellent explanation.

 

I want to thank you for ALL of your help, you went above and beyond.  

 

Hopefully this thread helps others.