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

ทําไมอุปกรณ์ต่อพ่วง Intel® Stratix® 10 HPS UART / I2C / SPI ทํางานที่ความเร็วไม่ถูกต้องหรือไม่ทํางานใน Linux

สิ่งแวดล้อม

  • Intel® Quartus® Prime Pro Edition
  • Linux-socfpga 4.X

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

    เนื่องจากสองปัญหาที่แตกต่างกัน UART, I2C และ IP SPI บนอุปกรณ์ Intel® Stratix® 10 SoC FPGA Hard Processor System (HPS) อาจทํางานที่ความเร็วที่ไม่ถูกต้องในเวอร์ชันเคอร์เนลเก่า

    SoC FPGA Linux Kernels 4.17 และใหม่กว่า (หลังเดือนมิถุนายน 2018) เมื่อใช้ความถี่สัญญาณนาฬิกา MPU ที่ไม่ใช่ค่าเริ่มต้น: อัปโหลดแก้ไขและอัปโหลดเพื่อ https://github.com/altera-opensource/linux-socfpga ยอมรับ 23d4f7b2c600e095399a6266ef35c213f93649e

    • ใน SoC FPGA Linux 4.17 Kernels และใหม่กว่า ไดรเวอร์ Stratix 10 Clock Manager จะดึงข้อมูลการนาฬิกาจากบิตสตรีม FPGA ระบุเฉพาะความถี่นาฬิกาอ้างอิงในโครงสร้างอุปกรณ์
    • เนื่องจากปัญหา ความถี่บางอย่างอาจไม่ถูกต้องหากตั้งความถี่ MPU เป็นค่าที่ไม่ใช่ค่าเริ่มต้น

    SoC FPGA Linux Kernels 4.17 ก่อนเดือนมิถุนายน 2018 และ 4.16 และก่อนหน้า:

    • Linux Device Tree มีข้อมูลเกี่ยวกับโครงสร้างการตอกบัตรของ Intel® Stratix® 10 SoC FPGA Hard Processor System (HPS) โดยต้องแสดงการตั้งค่าสัญญาณนาฬิกาในระบบฮาร์ดโปรเซสเซอร์ Intel Stratix IP FPGA 10 ตัวในระบบ Intel® Quartus® Prime Pro Platform Designer  หากโครงสร้างการตอกบัตรไม่เป็นการอัปเดตเพื่อแสดงบอร์ดและการออกแบบ อุปกรณ์ต่อพ่วงอาจทํางานไม่ถูกต้องใน Linux  ปัญหาทั่วไปคืออินเทอร์เฟซ UART หรือ I2C ทํางานใน u-boot แต่ไม่สามารถใช้งานได้ใน Linux
    • เนื่องจากปัญหา ความถี่บางอย่างอาจไม่ถูกต้องหากตั้งความถี่ MPU เป็นค่าที่ไม่ใช่ค่าเริ่มต้น (การแก้ไขปัญหาด้านล่าง)

    ปัญหานี้ได้รับการแก้ไขสําหรับเวอร์ชัน Kernel ที่ใหม่กว่า ข้อมูลนาฬิกาจะถูกอ่านจากบิตการกําหนดค่า FPGA และด้วยไดรเวอร์นาฬิกาที่อัปเดต

    ความละเอียด

    SoC FPGA Linux Kernels 4.17 และใหม่กว่า (หลังเดือนมิถุนายน 2018) เมื่อมีการใช้ความถี่สัญญาณนาฬิกา MPU ที่ไม่ใช่ค่าเริ่มต้น

    • ปัญหานี้ได้รับการแก้ไขสําหรับเคอร์เนล 4.18 บน https://github.com/altera-opensource/linux-socfpga โดยมี 23d4f7b2c6000e095399a6266ef35c213f93649e
    • นอกจากนี้ยังมีโปรแกรมแก้ไขสําหรับแก้ไขปัญหานี้ 0002_clk-pll-s10_L3L4clockFrequencyFix_1.patch

    และดู KDB ที่เกี่ยวข้อง: เหตุใด Linux จึงไม่สามารถบูตบน Intel® Stratix® 10 SoC ของฉันเมื่อฉันใช้ f2s_free_clock เป็นสัญญาณนาฬิกาอ้างอิง HPS

     

    Soc FPGA Linux Kernels 4.17 ก่อนเดือนมิถุนายน 2018 และ 4.16 และก่อนหน้า :

    ดู ฉันจะอัปเดต Linux Device Tree สําหรับ Stratix 10 SX เพื่อให้ตรงกับการตั้งค่านาฬิกาใน Platform Designer ได้อย่างไร สําหรับข้อมูลเกี่ยวกับวิธีอัปเดต Linux Device Tree เพื่อแสดงการตั้งค่านาฬิกาในการออกแบบของคุณ

    หากต้องการแก้ไขข้อผิดพลาดทางคณิตศาสตร์หากมีการใช้ความถี่นาฬิกา MPU เริ่มต้น

    - ตั้งค่าความถี่นาฬิกาช้า L3,L4 L4 ด้วยตนเองในโครงสร้างอุปกรณ์

    ○ ปล่อยให้ตรรกะนี้อธิบาย PLL

    ○ ควบคุมนาฬิกาจากตัวแบ่ง L3

     

    l3_main_free_clk: l3_main_free_clk {

    #clock-เซลล์ = ;

    #compatible = "altr,socfpga-s10-perip-clk";

    #clocks = ;

    ตัวแบ่ง#fixed = ;

    ความถี่นาฬิกา = ;

    เข้ากันได้ = "นาฬิกาคงที่"

                        

    };

     

    l4_sys_free_clk: l4_sys_free_clk {

    #clock-เซลล์ = ;

    #compatible = "altr,socfpga-s10-perip-clk";

    #clocks = ;

    ตัวแบ่ง#fixed = ;

    ความถี่นาฬิกา = ;

    เข้ากันได้ = "นาฬิกาคงที่"

    };

     

    l4_main_clk: l4_main_clk {

    #clock-เซลล์ = ;

    #compatible = "altr, socfpga-s10-gate-clk"

    #clocks = ;

    ความถี่นาฬิกา = ;

    เข้ากันได้ = "นาฬิกาคงที่";

    #div-reg = ;

    #clk-เกต = ;

    };

     

    l4_mp_clk: l4_mp_clk {

    #clock-เซลล์ = ;

    #compatible = "altr, socfpga-s10-gate-clk"

    #clocks = ;

    ความถี่นาฬิกา = ;

    เข้ากันได้ = "นาฬิกาคงที่";

    #div-reg= ;

    #clk-เกต = ;

    };

     

    l4_sp_clk: l4_sp_clk {

    #clock-เซลล์ = ;

    #compatible = "altr, socfpga-s10-gate-clk"

    #clocks = ;

    ความถี่นาฬิกา = ;

    เข้ากันได้ = "นาฬิกาคงที่";

    #div-reg= ;

    #clk-เกต = ;

    };

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

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

    Intel® Stratix® 10 SX SoC FPGA

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