ID del artículo: 000088371 Tipo de contenido: Resolución de problemas Última revisión: 16/08/2023

¿Por qué veo que HPS EMAC se cuelga con el búfer RX lleno en mi diseño de SoC Cyclone® V?

Entorno

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descripción

Debido a un problema en la versión 5.4 y posteriores del kernel Linux-socfpga, HPS EMAC puede bloquearse o detenerse en algunas circunstancias.

Este problema se debe a una configuración incorrecta en el árbol de dispositivos Linux SoC de Cyclone® V

  • El bit de anulación de habilitación compartida debe estar habilitado en el controlador de caché L2C-310
  • El límite de transacciones pendientes de lectura y escritura debe establecerse en 0xf en el DMA de EMAC
Resolución

Para evitar este problema, realice los pasos siguientes:


1. Asegúrese de que el nodo del árbol de dispositivos L2C-310 establezca el bit compartido Habilitar anulación, editando arch/arm/boot/dts/socfpga.dtsi

L2: cache-controller@fffef000 {

compatible = "arm,pl310-cache";

reg = <0xfffef000 0x1000>;

interrupciones = <0 38 0x04>;

caché unificado;

nivel de caché = <2>;

arm,tag-latency = <1 1 1>;

arm,latencia de datos = <2 1 1>;

prefetch-data = <1>;

prefetch-instr = <1>;

brazo, compartido-anulación; # Compruebe que esto esté presente

brazo,relleno de línea doble = <1>;

brazo,double-linefill-incr = <0>;

brazo,double-linefill-wrap = <1>;

arm,prefetch-drop = <0>;

arm,prefetch-offset = <7>;

};

2. Edite los nodos ethernet para agregar una referencia (s) para un snps, axi-config, y agregue nodos para snps, axi-config en arch / arm / boot / dts / socfpga.dtsi

Ejemplo para GMAC0:

diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi

Índice E404220.. 90a0560 100644

--- a/arch/arm/boot/dts/socfpga.dtsi

+++ b/arch/arm/boot/dts/socfpga.dtsi

@@ -560,10 +560,16 @@

reset-names = "stmmaceth";

snps,multicast-filter-bins = <256>;

snps,perfect-filter-entries = <128>;

+ snps,axi-config = <&stmmac_axi_setup_0>;

tx-fifo-profundidad = <4096>;

rx-fifo-profundidad = <4096>;

estado = "deshabilitado";

};

+

+ stmmac_axi_setup_0: stmmac-axi-config_0 {

+ snps,wr_osr_lmt = <0xf>;

+ snps,rd_osr_lmt = <0xf>;

+ };

Este problema se ha solucionado a partir de las ramas linux-socfpga-5.10.120-lts y linux-socfpga-5.15.30-lts

Productos relacionados

Este artículo se aplica a 3 productos

FPGA de sistema integrado en chip Cyclone® V ST
FPGA de sistema integrado en chip Cyclone® V SX
FPGA de sistema integrado en chip Cyclone® V SE

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.