cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sanchean
Visitor
Visitor
836 Views
Registered: ‎06-07-2018

AXI EthernetLite -> Vitis errors with lwIP: "Failed to create application project" + No Ethernet MAC IP instance in the hardware

Jump to solution

Hello,

I'm trying to implement the following tutorial with an Arty A7 board (XC7A35TICSG324-1L device): Genesys 2 - Getting Started with Microblaze Servers [Digilent Documentation] (digilentinc.com). I'm also following XAPP1026 and this other tutorial: Arty Evaluation Board Tutorial LwIP Applications for the Arty Evaluation Board (avnet.com)

I'm trying to implement it without the microblaze data and instruction caches and without the access to the external Arty A7's DRAM.
This is my block diagram for the microblaze and axi interfaces (the top level just contains a clock generator and the wrapper of the block diagram):

sanchean_2-1615468135148.png

On the Vivado side everything works fine: the write_bitstream process finishes correctly and the export of the .xsa file is correct.
On Vitis I can generate, compile and run without any issue the Hello World example application.

The problems arrive with the lwIP example applications: 

  1. When I try to generate the lwIP Echo Server example application I get the following error:
    sanchean_0-1615467904683.png
    But the Vitis Log is not really helpful:


    14:13:42 INFO : Successfully done query RDI_DATADIR
    14:14:44 INFO : Result from executing command 'getProjects': top_arty_modbustcp
    14:14:44 INFO : Result from executing command 'getPlatforms':
    14:14:45 WARN : An unexpected exception occurred in the module 'platform project logging'
    14:14:47 INFO : Platform 'top_arty_modbustcp' is added to custom repositories.
    14:14:51 ERROR : Failed to call GENERATE_APP
    Reason: ERROR: [Common 17-39] 'hsi::generate_app' failed due to earlier errors.

    14:14:51 ERROR :
    java.lang.RuntimeException: Failed to call GENERATE_APP
    Reason: ERROR: [Common 17-39] 'hsi::generate_app' failed due to earlier errors.

    at com.xilinx.sdk.xsdb.XsdbCommandUtils.handleResult(XsdbCommandUtils.java:389)
    at com.xilinx.sdk.xsdb.XsdbCommandUtils.executeAndRespond(XsdbCommandUtils.java:327)
    at com.xilinx.sdx.sdk.core.gen.CTemplateGen.generate(CTemplateGen.java:105)
    at com.xilinx.sdx.sdk.core.gen.StandaloneProjectHandler.createCoreApp(StandaloneProjectHandler.java:93)
    at com.xilinx.sdx.sdk.core.gen.AppCreationHandler.createApplication(AppCreationHandler.java:79)
    at com.xilinx.sdx.sdk.core.gen.AppCreationHandler.execute(AppCreationHandler.java:69)
    at com.xilinx.sdx.sdk.core.SdkAppCreationHandler.executeInternal(SdkAppCreationHandler.java:75)
    14:14:51 ERROR : Failed to create application project
    org.eclipse.core.runtime.CoreException: Failed to call GENERATE_APP
    Reason: ERROR: [Common 17-39] 'hsi::generate_app' failed due to earlier errors.

    at com.xilinx.sdx.sdk.core.gen.StandaloneProjectHandler.createCoreApp(StandaloneProjectHandler.java:150)
    at com.xilinx.sdx.sdk.core.gen.AppCreationHandler.createApplication(AppCreationHandler.java:79)
    at com.xilinx.sdx.sdk.core.gen.AppCreationHandler.execute(AppCreationHandler.java:69)
    at com.xilinx.sdx.sdk.core.SdkAppCreationHandler.executeInternal(SdkAppCreationHandler.java:75)
    at com.xilinx.sdx.sdk.core.SdkAppCreationHandler.lambda$1(SdkAppCreationHandler.java:67)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2312)

  2. When I select any other lwIP example, Vitis complains that there is no Ethernet MAC IP instance in the hardware:
    sanchean_1-1615468019714.png

     

I'm a bit stuck... Am I overlooking something?

Cheers,
Andrés

 

0 Kudos
1 Solution

Accepted Solutions
nanz
Moderator
Moderator
364 Views
Registered: ‎08-25-2009

Hi @sanchean , 

Please see attached the patches fixing the lwip performance apps build failures on both standalone and freertos.

Please note that Emaclite is an IP in maintenance and benchmarking perf numbers on slow MB designs is not in plan now. So these patches come with the disclaimer about numbers. We are also updated the wiki page to indicate the same.


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
14 Replies
nanz
Moderator
Moderator
818 Views
Registered: ‎08-25-2009

Hi @sanchean ,

We used to have an known issue:

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

It looks like some regression between lwip and emaclite IP. I can double check. 

In the meantime, could you please check the emaclite driver example and see if this works fine. Please check the below page - "Test Cases". 

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842430/Emaclite+Standalone+Driver


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
sanchean
Visitor
Visitor
742 Views
Registered: ‎06-07-2018

Hi,

Thanks a lot for the answer! I will try to find some time this week to test these ideas.

Cheers,
Andrés

0 Kudos
sanchean
Visitor
Visitor
685 Views
Registered: ‎06-07-2018

Hi @nanz ,

I had some time yesterday to test the emaclite drivers examples... some of them work and some of them don't:

  • selftest_example.c: works fine
  • internal_loopback_example.c: gets stuck in function XEmacLite_EnableLoopBack(EmacLiteInstPtr);
  • phy_loopback_example.c: never ends
  • ping_req_example.c: as far as i know generates the pings, I see the orange led flashing on the ethernet connector, but I cannot reach any device. I tried 2 different setups:
    • arty -> ethernet crossover cable -> computer. Both IP addresses are set in the same subnet
    • arty -> ethernet crossover cable -> arduino with ethernet shield. Both IP addresses are in the same subnet.
    • for reference, when I connect the arduino to the computer with the same cable and I ping it, I get a response.
  • ping_reply_example.c: same stuff, example compiles and runs but the arty is not reachable, neither by the arduino nor by the computer.

Generation of the lwIP example with Vitis keeps crashing and the message about the missing Ethernet MAC IP is still there...

Thanks,
Andrés

0 Kudos
nanz
Moderator
Moderator
646 Views
Registered: ‎08-25-2009

Hi @sanchean ,

Do you have the XCI file that you can share? I will test this on my end too.  


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
sanchean
Visitor
Visitor
572 Views
Registered: ‎06-07-2018

Hi @nanz ,

You can find attached the ip core .xci file.

many thanks for your help!

andrés

0 Kudos
nanz
Moderator
Moderator
565 Views
Registered: ‎08-25-2009

Hi @sanchean ,

Can you please also share your XSA file? Thank you!


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
sanchean
Visitor
Visitor
551 Views
Registered: ‎06-07-2018

Hi @nanz ,

There you go.

thanks again!

0 Kudos
nanz
Moderator
Moderator
537 Views
Registered: ‎08-25-2009

Hi @sanchean ,

Thank you for the files. I have reproduced the issue on my end and will check a bit more to confirm if this is a bug. I will come back to it. 


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
nanz
Moderator
Moderator
507 Views
Registered: ‎08-25-2009

Hi @sanchean ,

It seems it's a bug. I  just created a change request against the issue. 


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
nanz
Moderator
Moderator
472 Views
Registered: ‎08-25-2009

Hi @sanchean ,

I had a quick update on it.

This issue (ERROR: [Common 17-39] ) is observed because the lwip echo example has a memory constraint of (stack 40k and heap 40k). Can you please check that if your memory requirement meets this to build the examples? 


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
sanchean
Visitor
Visitor
437 Views
Registered: ‎06-07-2018

Hi @nanz ,

I just tried this solution and it works, now I am able to generate the lwIP Echo Server example. To do so I had to increase in the Vivado Address Editor the range of the /mb_local_mem/lmb_bram_if_cntlr_1/SLMB and the  /mb_local_mem/lmb_bram_if_cntlr_0/SLMB to 128K.

However, I can't generate the other examples (lwIP TCP Perf Client, lwIP TCP Perf Server, lwIP UDP Perf Client, lwIP UDP Perf Server) as Vitis still complains that there is no Ethernet MAC IP instance in the hardware.

0 Kudos
nanz
Moderator
Moderator
426 Views
Registered: ‎08-25-2009

Hi @sanchean ,

Good news! Thanks for the updates. 

For the perf examples, it will need some more time to fix and test. Can you live with the lwip echo example for now and we will come with a solution for perf examples later? 


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------
0 Kudos
sanchean
Visitor
Visitor
423 Views
Registered: ‎06-07-2018

Hi @nanz ,

No worries, sure I do.
I don't really need those examples, I was just worried about the Vitis message about the missing IP.

For the moment I just generated the lwIP example. I will try it with the board these days and let you know how it goes.

Thanks a lot for all your help,
Andrés

nanz
Moderator
Moderator
365 Views
Registered: ‎08-25-2009

Hi @sanchean , 

Please see attached the patches fixing the lwip performance apps build failures on both standalone and freertos.

Please note that Emaclite is an IP in maintenance and benchmarking perf numbers on slow MB designs is not in plan now. So these patches come with the disclaimer about numbers. We are also updated the wiki page to indicate the same.


-------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs and our Versal Ethernet Sticky Note.

-------------------------------------------------------------------------------------------

View solution in original post

0 Kudos