Identifiant de l'article: 000088371 Type de contenu: Dépannage Dernière révision :: 02/09/2022

Pourquoi le HPS EMAC est-il suspendu avec un tampon RX plein sur ma conception Cyclone® V SoC ?

Environnement

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

En raison d’un problème dans la version 5.4 du noyau Linux-socfpga et les versions ultérieures, le HPS EMAC peut suspendre ou ralentir dans certaines circonstances.

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

  • Le bit shared enable override bit doit être activé sur le contrôleur de cache L2C-310
  • La limite de transaction exceptionnelle en lecture et en écriture doit être fixée à 0xf sur le DMA EMAC
Solution

Pour contourner ce problème, suivez les étapes suivantes :


1. Assurez-vous que le nœud de l’arbre de périphérique L2C-310 définit le bit enable override bit partagé, en éditant arch/arm/boot/dts/socfpga.dtsi

       L2 : cache-controller@fffef000 {

compatible = « bras, pl310-cache » ;

reg = <0xfffef000 0x1000> ;

interruptions = <0 38 0x04> ;

cache unifiée ;

niveau de cache = <2> ;

arm, latence tag = <1 1 1> ;

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

prefetch-data = <1> ;

prefetch-instr = <1> ;

arm, shared-override ;   Nb. Vérifier que c’est présent

arm, double-line <1> ;

arm, double-line <0> ;

bras, double-line fait envelopper = <1> ;

arm, prefetch-drop = <0> ;

arm, prefetch-offset = <7> ;

};

2. Modifiez le ou les nœuds ethernet pour ajouter une référence(s) pour un snps, axi-config, et ajoutez des nœuds pour les 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.. 100644 90a0560

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

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

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

reset-names = « st grandie » ;

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

snps, entrées de filtre parfait = <128> ;

+ snps, axi-config = ;

profondeur tx-fifo = <4096> ;

profondeur rx-fifo = <4096> ;

statut = « désactivé » ;

};

+

+ stmmac_axi_setup_0 : stmmac-axi-config_0 {

+ snps, wr_osr_lmt = <0xf> ;

+ snps, rd_osr_lmt = <0xf> ;

+    };

Ce problème devrait être résolu dans une prochaine version du noyau Linux-Socfpga.

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.