ID de l'article: 000088371 Type de contenu: Dépannage Dernière révision: 16/08/2023

Pourquoi est-ce que je vois le HPS EMAC se bloquer avec la mémoire tampon RX pleine sur ma conception SoC Cyclone® V ?

Environnement

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

En raison d’un problème dans le noyau Linux-socfpga version 5.4 et ultérieure, HPS EMAC peut se bloquer ou se bloquer dans certaines circonstances.

Ce problème est dû à un paramètre incorrect dans l’arborescence des périphériques Linux du SoC Cyclone® V

  • Le bit de remplacement d’activation partagé doit être activé sur le contrôleur de cache L2C-310.
  • La limite de lecture et d’écriture des transactions en cours doit être définie sur 0xf sur le DMA EMAC.
Résolution

Pour contourner ce problème, procédez comme suit :


1. Assurez-vous que le nœud de l’arborescence des périphériques L2C-310 définit le bit partagé Activer le remplacement en modifiant arch/arm/boot/dts/socfpga.dtsi

L2: cache-controller@fffef000 {

compatible = « arm,pl310-cache »;

reg = <0xfffef000 0x1000>;

interruptions = <0 38 0x04>;

cache unifié;

niveau du cache = <2 >;

arm,latence de balise = <1 1 1>;

arm,latence des données = <2 1 1>;

prefetch-data = <1>;

prefetch-instr = <1>;

arm, partagé-outrepassement; # Vérifiez que ceci est présent

bras, double remplissage de ligne = <1>;

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

bras, double ligneremplissage-enveloppe = <1>;

arm,prefetch-drop = <0>;

arm,prefetch-offset = <7>;

};

2. Modifiez le(s) nœud(s) ethernet(s) pour ajouter une référence pour un snps, axi-config, et ajoutez des nœuds pour le snps,axi-config dans arch/arm/boot/dts/socfpga.dtsi

Exemple pour GMAC0 :

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

Index 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-profondeur = <4096>;

rx-fifo-profondeur = <4096>;

status = « disabled »;

};

+

+ stmmac_axi_setup_0: stmmac-axi-config_0 {

+ snps,wr_osr_lmt = <0xf>;

+ snps,rd_osr_lmt = <0xf>;

+ };

Ce problème a été résolu à partir des branches linux-socfpga-5.10.120-lts et linux-socfpga-5.15.30-lts

Produits associés

Cet article concerne 3 produits

FPGA SoC Cyclone® V ST
FPGA SoC Cyclone® V SX
FPGA SoC Cyclone® V SE

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.