ID บทความ: 000088371 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 16/08/2023

ทําไมฉันถึงเห็น HPS EMAC ค้างด้วยบัฟเฟอร์ RX ที่เต็มในการออกแบบ SoC Cyclone® V ของฉัน

สิ่งแวดล้อม

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

เนื่องจากปัญหาในเคอร์เนล Linux-socfpga เวอร์ชัน 5.4 และใหม่กว่า HPS EMAC อาจค้างหรือติดขัดในบางกรณี

ปัญหานี้เกิดจากการตั้งค่าที่ไม่ถูกต้องในโครงสร้างอุปกรณ์ SoC Linux Cyclone® V

  • ต้องเปิดใช้งานบิตที่กําหนดเองที่ใช้ร่วมกันบนคอนโทรลเลอร์แคช L2C-310
  • ขีดจํากัดธุรกรรมการอ่านและเขียนที่คงค้างควรตั้งค่า 0xf บน EMAC DMA
ความละเอียด

เมื่อต้องการหลีกเลี่ยงปัญหานี้ ให้ทําตามขั้นตอนต่อไปนี้:


1 . ตรวจสอบให้แน่ใจว่า โหนดต้นไม้อุปกรณ์ L2C-310 ตั้งค่า Enable Override bit ที่ใช้ร่วมกันโดยการแก้ไขโค้ง/arm/boot/dts/socfpga.dtsi

L2: แคช-controller@fffef000 {

เข้ากันได้ = "arm, pl310-cache";

reg = <0xfffef000 0x1000>;

ขัดจังหวะ = <0 38 0x04>;

แคชเป็นหนึ่งเดียว;

ระดับแคช = <2>;

แขน, แท็ก- ความหน่วงแฝง= <11>;

Arm, ความหน่วงแฝงข้อมูล = <2 1 1>;

ข้อมูล prefetch - = <1>;

prefetch-instr = <1>;

แขน, ร่วมกัน- แทนที่; # ตรวจสอบที่อยู่นี้

แขน, คู่- linefill=<1>;

แขน, คู่- linefill-incr=<0>;

แขน, คู่- linefill-wrap= <1>;

แขน, prefetch- drop=<0>;

แขน, prefetch- ชดเชย=<7>;

};

2. แก้ไข โหนดอีเธอร์เน็ตเพื่อเพิ่มการอ้างอิงสําหรับ snps, axi-config และ เพิ่ม โหนดสําหรับ snps, axi-config ใน arch/arm/boot/dts/socfpga.dtsi

ตัวอย่างสําหรับ GMAC0:

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

ดัชนี e404220.. 100644 90a0560

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

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

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

ชื่อรีเซ็ต = "stmmaceth";

snps, multicast-filter-bins = <256>;

snps, ที่สมบูรณ์แบบ- กรอง- รายการ=<128>;

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

tx-fifo-depth = <4096>;

rx-fifo-depth = <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 branches

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 3 ผลิตภัณฑ์

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

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้