문서 ID: 000088371 콘텐츠 형태: 문제 해결 마지막 검토일: 2023-08-16

Cyclone® V SoC 설계에서 RX 버퍼가 가득 찬 상태에서 HPS EMAC가 중단되는 이유는 무엇입니까?

환경

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

Linux-socfpga 커널 버전 5.4 이상의 문제로 인해 일부 상황에서 HPS EMAC가 중단되거나 중단될 수 있습니다.

이 문제는 Cyclone® V SoC Linux 장치 트리의 잘못된 설정으로 인해 발생합니다

  • 공유 활성화 재정의 비트는 L2C-310 캐시 컨트롤러에서 활성화되어야 합니다
  • 읽기 및 쓰기 미해결 트랜잭션 한도는 EMAC DMA에서 0xf로 설정해야 합니다.
해결 방법

이 문제를 해결하려면 다음과 같이 하십시오.


1. L2C-310 장치 트리 노드가 arch/arm/boot/dts/socfpga.dtsi를 편집하여 공유 Enable Override(재정의 활성화) 비트를 설정 하는지 확인합니다 .

L2: 캐시 controller@fffef000 {

호환 가능 = "ARM,PL310-캐시";

reg = <0xfffef000 0x1000>;

인터럽트 = <0 38 0x04>;

캐시 통합;

캐시 수준 = <2>;

팔, 태그 대기 시간 = <1 1 1>;

팔, 데이터 대기 시간 = <2 1 1>;

프리페치 데이터 = <1>;

프리페치 instr = <1>;

팔, 공유 재정의; # 이것이 존재하는지 확인

팔, 이중 줄 채우기 = <1>;

팔, 이중 라인 채우기 incr = <0>;

팔, 이중 줄 채우기 줄 바꿈 = <1>;

팔, 프리페치 드롭 = <0>;

팔, 프리페치 오프셋 = <7>;

};

2. 이더넷 노드를 편집 하여 snps,axi-config에 대한 참조를 추가하고 arch/arm/boot/dts/socfpga.dtsi에 snps,axi-config에 대한 노드를 추가합니다 .

GMAC0의 예:

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

인덱스 E404220.. 90a0560 100644

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

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

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

재설정 이름 = "stmmaceth";

snps, 멀티 캐스트 필터 빈 = <256>;

snps, 완벽한 필터 항목 = <128>;

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

tx-fifo-깊이 = <4096>;

rx-fifo-깊이 = <4096>;

상태 = "사용 안 함";

};

+

+ stmmac_axi_setup_0: stmmac-axi-config_0 {

+ snps,wr_osr_lmt = <0xf>;

+ snps,rd_osr_lmt = <0xf>;

+ };

이 문제는 linux-socfpga-5.10.120-lts 및 linux-socfpga-5.15.30-lts 브랜치부터 수정되었습니다

관련 제품

이 문서는 다음 항목에 적용됩니다. 3 제품

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

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.