Este problema é causado pela comunicação entre o Motor de descarregamento RX Checksum e descritores estendidos. Quando os pacotes são recebidos após a computação do checksum, o status é atualizado para o 4º descritor estendido RX no driver Linux ethernet.
Quando esse problema ocorre, essa atualização de status se torna lenta e fica presa, reduzindo o desempenho da rede.
Para contornar esse problema, use o comando abaixo para habilitar o modo de cadeia da uboot.
<board_uboot_cmd_prompt> stmmaceth=chain_mode:1
Além disso, desabilite os descritores estendidos ou o motor de descarregamento de checksum RX para evitar esse problema. Para isso, baixe o net-stmmac-workaround-for-network-performance.zip anexado que contém dois patches e aplique ao kernel do Linux usando o comando abaixo.
cd linux-socfpga
patch -p1 < 0001-net-stmmac-workaround-for-network-performance-reduci.patch
patch -p1 < 0001-net-stmmac-do-not-use-extended-descriptors-for-GMAC.patch