文章 ID: 000090295 內容類型: 疑難排解 最近查看日期: 2023 年 02 月 28 日

Intel Agilex 7 SoC 裝置開啟 ECC 時,如何設定FPGA®對 HPS 介面 SDRAM 直接模式?

環境

  • Intel® Quartus® Prime 設計軟體
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    當 ECC 在 Intel Agilex® 7 SoC 裝置中的 HPS 外部記憶體介面 (EMIF) 中開啟時,記憶體位址會同時為 F2H SDRAM 直接模式和 F2H CCU 模式產生 ECC 資料。因此,即使在 FPGA 對 HPS SDRAM 直接模式中,FPGA對 HPS 主機也必須使用與 MPU 相同的記憶體位址。否則,可能會觸發 ECC 錯誤。當 ECC 關閉時,此限制不適用。

     

     

    解決方法

    當FPGA對 HPS 主機和 MPU 主機存取不到 2GB 的記憶體空間時,記憶體位址會從 0x0000 0000 到 0x7FFF FFFF 使用。

    當FPGA對 HPS 主機和 MPU 主機存取大於 2GB 的記憶體空間時,MPU 會使用 DTS 檔案中定義的別名位址存取這些記憶體位址。FPGA對 HPS 主機必須使用相同的別名位址,而不是 F2H SDRAM 直接模式和 F2H CCU 模式的實體位址。

    以下是Intel Agilex® 7 SoC 裝置中 4GB HPS EMIF 的範例:

    在 DTS 中,記憶體定義為兩個區域,如下所示。然後,FPGA對 HPS 主機和 MPU 必須使用從0x1080000000到0x10FFFFFFFF的位址,才能存取 2GB ~ 4GB 的記憶體空間。

    記憶體 {

    reg = ,

    ;

    };

    若要以上述別名位址啟用完整的 4GB 記憶體空間,也應相應設定下列暫存器。您可以在 uboot 檔案 uboot-socfpga\arch\arm\mach-socfpga\spl_agilex.c 中設定這些暫存器

    寫入(0x100000、0xF8020110);region0addr_base
    寫入(0x0、0xF8020114);region0addr_baseext
    寫入(0xFFFFFFFF、0xF8020118);region0addr_limit(更低 32 位)
    寫入(0x10、0xF802011C);region0addr_limitext(上 32 位)
    寫入(0x1、0xF8020104);適用于各地區的enable_set

    相關產品

    本文章適用於 1 產品

    Intel® Agilex™ FPGA 與 SoC FPGA

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。