文章 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

1

此頁面上的內容是原始英文內容的人工和電腦翻譯的組合。此內容僅供您方便,僅供一般參考,不應被視為完整或準確。如果本頁面的英文版本與翻譯之間存在任何矛盾,則以英文版本為準。 查看此頁面的英文版本。