cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
9,123 Views
Registered: ‎05-05-2014

SDK 2016.1 and standalone v5.4 with LWIP possible cache problems (ZYNQ)

Jump to solution

I recently upgraded to Vivado and SDK 2016.1. No problems about Vivado HW part but I found problems.

The most important issue is about new standalone v5.4 and LWIP.

I upgraded but my network applicatios (LWIP RAWMODE) did not work. I thought that problems becomes from my applications but built in echo server example didnt work also.

It is a old known problem (many other posts with older versions had similar problems), see below:

https://forums.xilinx.com/t5/Embedded-Development-Tools/LWIP-flips-bytes-when-receiving-large-amounts-of-data-via-TCP/td-p/550526

https://forums.xilinx.com/t5/Embedded-Development-Tools/LwIP-library-on-Zynq-broken/td-p/595268

In short, half of the packets are rejected and connection resets continowusly, getting a bandwidth throughput ridiculously low.

The problem "solves" if you completely deactivate D-cache. Is not enough if you just invalidate cache data, thus, I think the cache problem arises inside lwip functions.

My thought is that are something wrong in standalone v5.4, cache functions or lwip driver.

I think it is an important issue.

My temporaly solution is simple: I am using now SDK 2015.4 with standalone v5.3.

I tried to work with SDK 2016.1 and standalone v5.3 but I couldnt because there was an error when compiling BSP.

 

All test has been done over Zedboard (7Z020) and Avnet's Mini Module Plus (7Z100), with and without hardware configured.

To reproduce a basic test:

1-Open Vivado 2016.1

2-Create a basic HW platform with board preset. Get bitstream and export to SDK.

3-Create built in echo app with its own bsp.

4-Open protocol analyzer (i.e. wireshark) filtering ip.addr == 192.168.1.10 (or any other)

5-Start echo app on board.

6-Telnet to echo server (telnet 192.168.1.10 7)

7-Write on telnet console and you can see the important delay. In protocl analyzer you can see something is worng.

8- Now deactivate d cache on main function: Xil_DCacheDisable();

9-Repeat 5 to 7 and you will see now everything is fine.

 

Any solution? Better wait 4 moths and hope 2016.2 will be fixed? Doing something wrong?

Thank you.

 

Tags (4)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Newbie
Newbie
13,163 Views
Registered: ‎06-25-2016

Check out this topic: "LWIP echo server example drops/delays TX packets on Zedboard ?".  Changing cache options in the init_dma call worked for me. 

View solution in original post

0 Kudos
5 Replies
Highlighted
Visitor
Visitor
8,529 Views
Registered: ‎05-05-2014

Still happening exactly the same on 2016.2.

0 Kudos
Highlighted
Newbie
Newbie
8,391 Views
Registered: ‎06-25-2016

I noticed the same issue with pings on 2016.1 using the echo_server example application.  About half never receive a reply.  The same test on 2015.4 had no lost communication.  

 

I am using a microzed board.  

0 Kudos
Highlighted
Newbie
Newbie
13,164 Views
Registered: ‎06-25-2016

Check out this topic: "LWIP echo server example drops/delays TX packets on Zedboard ?".  Changing cache options in the init_dma call worked for me. 

View solution in original post

0 Kudos
Highlighted
Visitor
Visitor
6,202 Views
Registered: ‎05-05-2014

Still happening with SDK 2016.4

I don’t understand why this isn't solved yet.

0 Kudos
Highlighted
Visitor
Visitor
6,192 Views
Registered: ‎05-05-2014
Thanks kylebatzer.
As its posted in that topic, I tried the code after xemac_add call and it works fine:

{
// Fix delayed Ethernet transmission problem
extern u8_t bd_space[0x100000];
Xil_SetTlbAttributes((s32_t)bd_space, STRONG_ORDERED );
}
0 Kudos