文章 ID: 000090295 内容类型: 故障排除 上次审核日期: 2023 年 02 月 28 日

如何在 英特尔 Agilex 7 SoC 设备上启用 ECC 时配置FPGA®至 HPS 接口 SDRAM 直接模式?

环境

  • 英特尔® Quartus® Prime 设计软件
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    当在 英特尔 Agilex® 7 SoC 设备的 HPS 外部内存接口 (EMIF) 中打开 ECC 时,内存地址将生成用于 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 模式的物理地址。

    以下是英特尔 Agilex® 7 SoC 设备中的 4GB HPS EMIF 示例:

    在 DTS 中,内存定义为两个区域,如下所示。然后,FPGA对 HPS 主机和 MPU 必须使用从 0x1080000000 到 0x10FFFFFFFF 的地址才能访问 2GB ~ 4GB 的内存空间。

    内存 {

    reg = ,

    ;

    };

    要启用带有上述别名地址的完整 4GB 内存空间,还应相应设置以下寄存器。您可以在 uboot-socfpga\arch\arm\mach-socfpga\spl_agilex.c 中设置这些寄存器

    写入(0x100000、0xF8020110);region0addr_base
    写入(0x0、0xF8020114);region0addr_baseext
    writel(0xFFFFFFFF、0xF8020118);region0addr_limit(32 位更低)
    写入(0x10、0xF802011C);region0addr_limitext(32 位上方)
    写入(0x1、0xF8020104);区域enable_set

    相关产品

    本文适用于 1 产品

    英特尔® Agilex™ FPGA 和 SoC FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。