• Anton Vorontsov's avatar
    gianfar: Implement workaround for eTSEC76 erratum · deb90eac
    Anton Vorontsov authored
    MPC8313ECE says:
    
    "For TOE=1 huge or jumbo frames, the data required to generate the
     checksum may exceed the 2500-byte threshold beyond which the controller
     constrains itself to one memory fetch every 256 eTSEC system clocks.
    
     This throttling threshold is supposed to trigger only when the
     controller has sufficient data to keep transmit active for the duration
     of the memory fetches. The state machine handling this threshold,
     however, fails to take large TOE frames into account. As a result,
     TOE=1 frames larger than 2500 bytes often see excess delays before start
     of transmission."
    
    This patch implements the workaround as suggested by the errata
    document, i.e.:
    
    "Limit TOE=1 frames to less than 2500 bytes to avoid excess delays due to
     memory throttling.
     When using packets larger than 2700 bytes, it is recommended to turn TOE
     off."
    
    To be sure, we limit the TOE frames to 2500 bytes, and do software
    checksumming instead.
    Signed-off-by: default avatarAnton Vorontsov <avorontsov@mvista.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    deb90eac
gianfar.c 85.4 KB