ID do artigo: 000088371 Tipo de conteúdo: Solução de problemas Última revisão: 16/08/2023

Por que eu vejo o HPS EMAC travado com o buffer RX cheio no meu projeto de SoC Cyclone® V?

Ambiente

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

Devido a um problema no kernel Linux-socfpga versão 5.4 e mais recente, o HPS EMAC pode travar ou parar em algumas circunstâncias.

Este problema deve-se a uma configuração incorreta na árvore de dispositivos SoC Linux Cyclone® V

  • O bit Shared Enable Override deve estar habilitado no controlador de cache L2C-310
  • O limite de transação pendente de leitura e gravação deve ser definido para 0xf no DMA do EMAC
Resolução

Para contornar esse problema, execute as seguintes etapas:


1. Certifique-se de que o nó da árvore do dispositivo L2C-310 define o bit Enable Override compartilhado, editando arch/arm/boot/dts/socfpga.dtsi

L2: cache-controller@fffef000 {

compatível = "arm,pl310-cache";

reg = <0xfffef000 0x1000>;

interrupções = <0 38 0x04>;

unificado para cache;

nível de cache = <2>;

arm,latência de tag = <1 1 1>;

arm,latência de dados = <2 1 1>;

pré-busca de dados = <1>;

pré-busca = <1>;

braço, substituição compartilhada; # Verifique se este está presente

arm,double-linefill = <1>;

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

arm,double-linefill-wrap = <1>;

arm,prefetch-drop = <0>;

arm,prefetch-offset = <7>;

};

2. Edite o(s) nó(s) ethernet para adicionar uma(s) referência(s) para um snps, axi-config e adicione nós para os snps, axi-config em arch/arm/boot/dts/socfpga.dtsi

Exemplo de GMAC0:

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

índice e404220.. 100644 90a0560

--- 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-depth = <4096>;

rx-fifo-depth = <4096>;

status = "disabled" (Desabilitado);

};

+

+ stmmac_axi_setup_0: stmmac-axi-config_0 {

+ snps,wr_osr_lmt = <0xf>;

+ snps,rd_osr_lmt = <0xf>;

+ };

Esse problema foi corrigido começando com as filiais linux-socfpga-5.10.120-lts e linux-socfpga-5.15.30-lts

Produtos relacionados

Este artigo aplica-se a 3 produtos

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

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.