ID bài viết: 000088371 Loại nội dung: Xử lý sự cố Lần duyệt cuối: 16/08/2023

Tại sao tôi thấy HPS EMAC bị treo với bộ đệm RX đầy đủ trên thiết kế SoC Cyclone® V của tôi?

Môi Trường

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Mô tả

Do sự cố trong phiên bản nhân Linux-socfpga 5.4 trở lên, HPS EMAC có thể bị treo hoặc đình trệ trong một số trường hợp.

Sự cố này là do cài đặt không chính xác trong cây thiết bị Cyclone® V SoC Linux

  • Bit Ghi đè Kích hoạt Chia sẻ phải được bật trên Bộ điều khiển Bộ nhớ đệm L2C-310
  • Giới hạn giao dịch chưa thanh toán Đọc và Ghi phải được đặt thành 0xf trên EMAC DMA
Độ phân giải

Để khắc phục sự cố này, hãy thực hiện các bước sau:


1. Đảm bảo nút cây thiết bị L2C-310 đặt bit Ghi đè bật được chia sẻ, bằng cách chỉnh sửa arch / arm / boot / dts / socfpga.dtsi

L2: bộ nhớ cache-controller@fffef000 {

tương thích = "arm, PL310-bộ nhớ đệm";

reg = <0xfffef000 0x1000>;

ngắt = <0 38 0x04>;

thống nhất bộ nhớ đệm;

mức bộ nhớ đệm = <2>;

cánh tay, độ trễ thẻ = <1 1 1>;

arm, độ trễ dữ liệu = <2 1 1>;

tìm nạp trước dữ liệu = <1>;

tìm nạp trước-instr = <1>;

cánh tay, chia sẻ-ghi đè; # Kiểm tra xem đây là hiện tại

cánh tay, hai dòngđiền = <1>;

cánh tay, double-linefill-incr = <0>;

cánh tay, double-linefill-wrap = <1>;

cánh tay, tìm nạp trước-thả = <0>;

cánh tay, tìm nạp trước-bù đắp = <7>;

};

2. Chỉnh sửa (các) nút ethernet để thêm (các) tham chiếu cho snps, axi-config và thêm các nút cho snps, axi-config trong arch / arm / boot / dts / socfpga.dtsi

Ví dụ cho GMAC0:

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

chỉ số E404220.. 90a0560 100644

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

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

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

đặt lại tên = "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>;

trạng thái = "bị vô hiệu hóa";

};

+

+ stmmac_axi_setup_0: stmmac-axi-config_0 {

+ SNPS,wr_osr_lmt = <0xf>;

+ SNPS,rd_osr_lmt = <0xf>;

+ };

Sự cố này đã được khắc phục bắt đầu với các nhánh linux-socfpga-5.10.120-lts và linux-socfpga-5.15.30-lts

Các sản phẩm liên quan

Bài viết này áp dụng cho 3 sản phẩm

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

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.