Dieses Problem wird durch die Kommunikation zwischen der RX Checksum Offload Engine und den Extended Descriptors verursacht. Wenn nach dem Berechnen der Prüfsumme Pakete empfangen werden, wird der Status auf die 4. erweiterte RX-Beschreibung im Ethernet-Linux-Treiber aktualisiert.
Wenn dieses Problem auftritt, wird diese Statusaktualisierung langsam und bleibt hängen, wodurch die Netzwerkleistung verringert wird.
Um dieses Problem zu umgehen, verwenden Sie bitte den folgenden Befehl, um den Kettenmodus von uboot aus zu aktivieren.
<board_uboot_cmd_prompt> stmmaceth=chain_mode:1
Deaktivieren Sie außerdem die erweiterten Deskriptoren oder die RX-Prüfsummen-Offload-Engine, um dieses Problem zu vermeiden. Laden Sie dazu bitte die angehängte net-stmmac-workaround-for-network-performance.zip herunter, die zwei Patches enthält, und wenden Sie sie mit dem folgenden Befehl auf den Linux-Kernel an.
CD Linux-Socfpga
patch -p1 < 0001-net-stmmac-workaround-for-network-performance-reduci.patch
patch -p1 < 0001-net-stmmac-do-not-use-extended-descriptors-for-GMAC.patch