Aufgrund eines Problems im Linux-Treiber für die Synopsys® Ethernet MAC in der Linux-Socfpga Kernel-Version 4.1.22-ltsi kann die Ethernet-Schnittstelle zum Stillstand kommen, wenn innerhalb des HPS-Untersystems mehr Datenverkehr vorhanden ist.
Wenn dieses Problem angezeigt wird, werden die HPS E DARAUS-DMA-Statusregister mit dem folgenden Status angezeigt:
i_emac__dmagrp_status:
rs (Empfangsvorgangsstatus): 0x5: RUNCLOSE: Ausgeführt: Schließen der Empfangsbeschreibung
Der folgende Registerstatus kann ebenfalls vorhanden sein
tu (Übertragungspuffer nicht verfügbar): 0x1: Übertragungsbeschreibung nicht verfügbar
ovf (Empfangsüberlauf): 0x1: Empfangspufferüberlauf
Dieses Problem wurde für den linux-socfpga 4.1.33-ltsi Kernel von https://github.com/altera-opensource
Commit-ID: 9a8bc214cc13bb318f403b ("stm fpg: share reset function between 200 und 1000")
Commit-ID: b0db4ee2b475f0b7ac1e36 ("stm resilienc: DMA-Bus-Einstellung neu überarbeiten und neue Plattform-AXI-Struktur einführen")
Um dieses Problem in früheren Kernel-Versionen zu beheben, bearbeiten Sie die ECONTROLLER-DMA-Steuerungsregister, um axi_bus_mode rd_osr_lmt und wr_osr_lmt Register auf 0xF zu setzen. Diese Einstellung ermöglicht eine größere Anzahl ausstehender AXI-Transaktionen auf der ESETTING DMA AXI Master-Schnittstelle.