文章 ID: 000090809 内容类型: 故障排除 上次审核日期: 2022 年 06 月 21 日

如何在 英特尔® Stratix® 10 SX 设备上启用 ECC 时配置 FPGA 到 SDRAM 接口?

环境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

当英特尔® Stratix® 10 SX 设备的 HPS 外部内存接口 (EMIF) 上打开纠错码 (ECC) 时,内存地址生成面向 F2H 和 F2SDRAM0/1/2 接口的 ECC 数据。即使使用 F2SDRAM0/1/2 接口,FPGA对 HPS 大师也需要使用相同的 MPU 内存地址。否则可能会触发 ECC 错误。ECC 关闭时,此限制不适用。

解决方法

当FPGA对 HPS 主机和 MPU 主主访问小于 2 GB 的内存空间时,内存地址便会从 0x0000 0000 到 0x7FFF FFFF 使用。

当FPGA对 HPS 主和 MPU 主访问大于 2 GB 的内存空间时,MPU 使用 DTS 文件中定义的锯齿地址访问这些内存地址。FPGA对 HPS 主必须为所有 F2SDRAM0/1/2 接口使用相同的别名地址而非物理地址。

以下是英特尔® Stratix® 10 SX 设备中 4 GB HPS EMIF 的示例:

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

内存 {

reg = ,

;

};

要启用带有上述别名地址的完整 4 GB 内存空间,还应相应设置以下 F2SDRAM 防火墙寄存器:

#Example,F2SDRAM0 区域 0 配置,您可在 U-Boot 源中配置它们,即 uboot-socfpga\arch\arm\mach-socfpga\spl_s10.c

写入(0x1000000、0xF8020210);region0addr_base
写入(0x0,0xF8020214);region0addr_baseext
写入(0xFFFFFFFF,0xF8020218);region0addr_limit(32 位更低)
写入(0x10、0xF802021C);region0addr_limitext(32 位上方)
写入(0x1,0xF8020204);区域enable_set

 

 

相关产品

本文适用于 1 产品

英特尔® Stratix® 10 FPGA 和 SoC FPGA

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