Artikel-ID: 000088371 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 16.08.2023

Warum hängt der HPS EMAC mit vollem RX-Puffer an meinem Cyclone® V SoC-Design?

Umgebung

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Aufgrund eines Problems im Linux-socfpga Kernel Version 5.4 und höher kann der HPS EMAC unter bestimmten Umständen hängen bleiben oder stehen bleiben.

Dieses Problem ist auf eine falsche Einstellung in der Cyclone® V SoC Linux-Gerätestruktur zurückzuführen

  • Das Shared Enable Override-Bit muss auf dem L2C-310 Cache-Controller aktiviert sein
  • Das Limit für ausstehende Lese- und Schreibtransaktionen sollte auf dem EMAC DMA auf 0xf festgelegt werden
Lösung

Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen:


1. Stellen Sie sicher, dass der L2C-310-Gerätebaumknoten das freigegebene Enable Override-Bit festlegt, indem Sie arch/arm/boot/dts/socfpga.dtsi bearbeiten

L2: cache-controller@fffef000 {

Kompatibel = "Arm,PL310-CACHE";

reg = <0xfffef000 0x1000>;

Interrupts = <0 38 0x04>;

Cache-einheitlich;

Cache-Ebene = <2>;

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

Arm,Datenlatenz = <2 1 1>;

prefetch-data = <1>;

prefetch-instr = <1>;

Arm, geteilte Überschreibung; # Überprüfen Sie, ob dies vorhanden ist

arm, doppelte Zeilenfüllung = <1>;

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

Arm, Doppel-Linefill-Wrap = <1>;

arm,prefetch-drop = <0>;

Arm,Prefetch-Offset = <7>;

};

2. Bearbeiten Sie den/die Ethernet-Knoten, um eine(n) Referenz(en) für eine snps,axi-config hinzuzufügen, und fügen Sie Knoten für die snps,axi-config in arch/arm/boot/dts/socfpga.dtsi hinzu

Beispiel für 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-Einträge = <128>;

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

TX-FIFO-Tiefe = <4096>;

Rx-FIFO-Tiefe = <4096>;

Status = "deaktiviert";

};

+

+ stmmac_axi_setup_0: stmmac-axi-config_0 {

+ SNPs,wr_osr_lmt = <0xf>;

+ SNPs,rd_osr_lmt = <0xf>;

+ };

Dieses Problem wurde ab den Zweigen linux-socfpga-5.10.120-lts und linux-socfpga-5.15.30-lts behoben

Zugehörige Produkte

Dieser Artikel bezieht sich auf 3 Produkte

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

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.