FWIW: I had issues with TFTP timeout's as well while downloading . I
found that the length error is not handled correctly and I got timeouts
(T) even when the data was perfect. May not be the perfect solution or
the correct place to fix it for good, but it fixed my problem. I'm
downloading binary files up to more than 30MB without any issues now.

 

---
C:/Users/FranzLeu/AppData/Local/Temp/lipp_6300eth.c-rev75.svn000.tmp.c
Mo 14. Apr 14:09:20 2014

+++
C:/Users/FranzLeu/AppData/Local/Temp/lipp_6300eth.c-rev76.svn000.tmp.c
Mo 14. Apr 14:49:43 2014

@@ -328,9 +328,11 @@

         }

         /* If length Error bit is set */

-        if(pPriv->p_rx_descr[pPriv->rx_consume_index].RDES0 &
RXDESC_RDES0_LEN_ERR_VAL )

+        /* Check if the actual length of the frame received and that
the Length/Type field does not match*/

+        if((pPriv->p_rx_descr[pPriv->rx_consume_index].RDES0 &
RXDESC_RDES0_LEN_ERR_VAL) &&

+            (!(pPriv->p_rx_descr[pPriv->rx_consume_index].RDES0 &
RXDESC_RDES0_FRM_TYP_VAL)))

         {

-            GMAC_DBG("\nhandle_receive_packets: Length Errors");

+            GMAC_DBG("\nhandle_receive_packets: IEEE Length Error");

             goto _err_drop_packet ;

         }

@@ -436,7 +438,7 @@

//                          GMAC_DBG("Current Rx DMA desc
:%08x\n",*(UInt32*)(GMAC_UNIT_BASE(0)+0x104C));

                                /* Set back the own bit for this
descriptor, use the same buffer */

- //       pPriv->p_rx_descr[pPriv->rx_consume_index].RDES0 =
RXDESC_RDES0_OWN_VAL;

+        pPriv->p_rx_descr[pPriv->rx_consume_index].RDES0 =
RXDESC_RDES0_OWN_VAL;

 #if ENABLE_CACHE

         /* After setting & upating the buffer, flush cache */

 

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to