Change Log for lwip ================================= 2012-08-17 * Created a new version of lwIP (v1_03_a). * Changed data/lwip140_v2_1_0.tcl to fix UDP isses in FreeRTOS and fix compilation issues when Emac1 is used (instead of Emac0). * Changed the EmacPs adpater files: src/contrib/ports/xilinx/netif/xemacpsif_dma.c, src/contrib/ports/xilinx/netif/xemacpsif_hw.c, src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c, src/contrib/ports/xilinx/netif/xemacpsif.c src/contrib/ports/xilinx/include/netif/xemacpsif.h to do code cleanups, modify the BD handling on Rx path for error cases, modify error handling. Added fast interrupt support for microblaze/axiethernet. Made changes in xaxiemacif_dma.c for this. Made changes to src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c to simplify the handling of SLCR register update for Emac0 and Emac1. Made changes in tcl amd mld file to add a new configuration entry for Zynq to specify the Emac Interface number. If only one interface is present, then this entry will have no effect. But if both the interfaces are present in the hardware, then depending on this configuration entry a particular Emac will be chosen. lwIP does not support use of both the interfaces simultaneously. 2012-07-06 * Made changes in src/contrib/ports/xilinx/netif/xaxiemacif_dma.c to make changes in some of AxiDMA API calls which are changed in the latest version of AxiDma driver. 2012-06-04 * Added support for freertos. Changes are done in lwip140_v2_1_0.mld, lwip140_v2_1_0.tcl, sys_arch.h, xadapter.h, xadapter.c, xemacpsif.c, xemacpsif_dma.c, xemacpsif_hw.c, sys_arch.c. * Modified error handling for EmacPs errors. Changes are done in xemacpsif.c, xemacpsif_dma.c, xemacpsif_hw.c. 2012-04-15 * In function init_dma in file xemacpsif_dma.c, the calls to Xil_DisableMMU and Xil_EnableMMU are removed. Now for changing attributes in the translation table, the only function called is Xil_SetTlbAttributes. 2012-03-12 * In file xaxiemacif_dma.c, the function alloc_bdspace is updated so that the assert calls are under #if DEBUG statement. This is done to remove compilation issues with the new microblaze toolchain. Similar changes are done in xlltemacif_dma.c. 2012-03-12 * In file xemacliteif.c the function xemacif_recv_handler is updated to free the pbufs upon error conditions (before returning back from the function). 2012-03-03 * The SLCR divisor settings for GEM Tx clock for Zynq is now used from xparameters.h. Corresponding changes are made in src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c. * Changes are made in src/contrib/ports/xilinx/sys_arch_raw.c for functions sys_arch_protect and sys_arch_unprotect. Earlier for Zynq/PEEP cases for sys_arch_protect we used to disable only the Emac interrupt and enable back it in sys_arch_unprotect. Now for Zynq all interrupts are disabled in CPSR (sys_arch_protect) and enabled back in sys_arch_unprotect. * Changes are made in src/contrib/ports/xilinx/netif/xemacpsif_dma.c for proper interrupt disabling and enabling for Tx. Also some optimizations are done to improve performance numbers. 2012-01-25 * Following changes are made in file src/contrib/ports/xilinx/netif/xemacpsif_dma.c : Changes are made for Zynq/PEEP adapter so that the BDs are allocated at fixed addresses 0xFF00000 (for Rx Bds) and 0xFF10000 (for Tx Bds). The address range of 1 MB starting at 0xFF00000 is made uncached by setting attributes in the MMU table (in function init_dma). * Changes are made in src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c to have separate PHY initializations for PEEP and Zynq boards. * Changes are made in src/contrib/ports/xilinx/sys_arch_raw.c. In function sys_arch_protect the EmacIntr is disabled instead of disabling the IRQ in CPSR. This change needs to be revisited later and a better solution needs to be adapted. Similar changes are done in sys_arch_unprotect. * DMA/GEM Error handling is added/changed for Zynq/PEEP. Hence changes are made in src/contrib/ports/xilinx/netif/xemacpsif.c and src/contrib/ports/xilinx/netif/xemacpsif_hw.c. * The MDIO divisor is set as 224 in file src/contrib/ports/xilinx/netif/xemacpsif_hw.c. 2011-11-18 * Upgraded the to lwip140. Because of it there are lots of changes throughout the lwip files. * There was an existing bug because of which txperf used to hang after a few minutes. It is fixed in src/lwip-1.4.0/src/core/tcp_out.c. After entering into the function tcp_output, we disable interrupts and just before existing the function, we enable back the interrupts. This is done for microblaze and ppc platforms. * For lwip140 the semaphore, mutex, mailbox and pthread interfaces have changed. Corresponding changes are done in file sys_arch.c. * The functions SYS_ARCH_PROTECT and SYS_ARCH_UNPROTECT are now made as macros for better performance. * The file src/include/lwip/def.h is changed so that for endian swapping only macros are used instead of functions. This is done to have better performance. * Support for Zynq is added. 2011-08-29 * src/makefile: Made changes not to echo files being compiled. * src/contrib/ports/xilinx/include/netif/xaxiemacif.h: Added function prototypes for PHY configuration. * src/contrib/ports/xilinx/include/netif/xlltemacif.h: Added function prototypes for PHY configuration. * src/contrib/ports/xilinx/netif/xadapter.c: Made changes in function xemacif_input to remove compilation warnings. The exact change is, replacing "return;" statements with "return 0;". * src/contrib/ports/xilinx/netif/xaxiemacif_dma.c: Removed the unused variable "csum_in_packet" in the function "is_checksum_valid". * src/contrib/ports/xilinx/netif/xaxiemacif_hw.c: Removed unused variables "rdy" and "lock_message_printed" in function "init_axiemac". The PHY configuration related code is removed from the function "init_axiemac", since it is now being done in a separate function. * src/contrib/ports/xilinx/netif/xaxiemacif_physpeed.c: The unused function "get_marvel_phy_speed" is removed. The function "get_IEEE_phy_speed" is changed to correctly advertise speeds and restart autonegotiation. A new function "configure_IEEE_phy_speed" is added to configure PHY speeds when autonegotiation is not done. A new function "Phy_Setup" is added to configure the PHY. Hash defines for PHY registers and PHY bit settings are added. * src/contrib/ports/xilinx/netif/xemacliteif: The function "low_level_init" is changed to start PHY autonegotiation when required and to set correct PHY speeds when autonegotiation is not being used. A new function "detect_phy_emaclite" is added to detect the PHY address connected. A new function "get_IEEE_phy_speed_emaclite" is added to correctly advertise relevant PHY speeds (1000 Mbps not advertised) and to restart PHY autonegotiation. This function returns the autonegotiated PHY speed. A new function "configure_IEEE_phy_speed_emaclite" is added to configure the proper PHY speed when PHY autonegotiation is not happenning. Hash defines for PHY registers and PHY bit settings are added. * src/contrib/ports/xilinx/netif/xlltemacif_hw.c:The PHY configuration related code is removed from the function "init_lltemac", since it is now being done in a separate function. * src/contrib/ports/xilinx/netif/xlltemacif_physpeed.c:The unused function "get_marvel_phy_speed" is removed. The function "get_IEEE_phy_speed" is changed to correctly advertise speeds and restart autonegotiation. A new function "configure_IEEE_phy_speed" is added to configure PHY speeds when autonegotiation is not done. A new function "Phy_Setup" is added to configure the PHY. Hash defines for PHY registers and PHY bit settings are added.