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!

AR# 29757

9.2i EDK - I cannot transmit TCP packets larger than 1500 bytes or any UDP packets

Description

Keywords: lwIP, user, datagram, transmission, transmit, control, protocol

I cannot transmit TCP packets larger than 1500 bytes or any UDP packets. Why?

Solution

There is a bug in the xps_ll_temac adapter present in lwip_v3_00_a released in 9.2i. A new xlltemacif_sdma.c will be available in EDK 9.2i Service Pack 2.

The fixes are three lines of code:

1. Open the $Xilinx_EDK/sw/ThirdParty/sw_services/lwip_v3_00_a/src/contrib/ports/Xilinx/netif/xlltemacif_sdma.c file in an editor with line numbering.

2. Make the following changes:

Replace line 155 with: XLlDma_Bd *txbdset, *txbd, *last_txbd = NULL;
Insert a new line 192 with: last_txbd = txbd;
Replace line 204 with: XLlDma_mBdSetStsCtrl(last_txbd, XLLDMA_BD_STSCTRL_EOP_MASK);

The "diff" output between the old file and the new file is:

155c155
< XLlDma_Bd *txbdset, *txbd;
---
> XLlDma_Bd *txbdset, *txbd, *last_txbd = NULL;
192a193
> last_txbd = txbd;
203c204
< XLlDma_mBdSetStsCtrl(txbd, XLLDMA_BD_STSCTRL_EOP_MASK);
---
> XLlDma_mBdSetStsCtrl(last_txbd, XLLDMA_BD_STSCTRL_EOP_MASK);


For other lwIP issues, please refer to (Xilinx Answer 29791) and (Xilinx Answer 30155).

This problem has been fixed in the latest EDK 9.2i Service Pack, available at:
http://www.xilinx.com/xlnx/xil_sw_updates_home.jsp
The first service pack containing the fix is EDK 9.2i Service Pack 2.
AR# 29757
Date Created 12/04/2007
Last Updated 02/28/2008
Status Active
Type General Article