为什么我在SOC设计中看到数据一致性失败?-Altera-Intel社区-FPGA CPLD-ChipDebug

为什么我在SOC设计中看到数据一致性失败?

由于4.10之前的linux-socfpga内核中CoreLink™2级高速缓存控制器L2C-310的默认配置存在问题,因此可能会出现数据一致性故障。

对于4.10之前的Linux-socfpga内核,L2C-310高速缓存控制器将共享属性覆盖启用位设置为OFF。

这允许控制器优化从MPU核心或ACP端口到Cacheable非分配访问的一些不可高速缓存的访问,并将一致性点从SDRAM移动到L2高速缓存。

如果主器件通过L3或FPGA2SDRAM桥访问SDRAM,则一致性点的改变可能会导致问题。

参考: CoreLink™2级高速缓存控制器L2C-310,修订版:r3p3技术参考手册 (ARM DDI 0246H(ID080112)):第2.3.2节可共享属性。

解决方法/修复

建议将辅助控制寄存器位[22]: 共享属性覆盖使能位设置为ON。此设置禁用L2高速缓存控制器中的优化。

最新的linux-socfpga和u-boot-socfpga版本修复了这个问题,可从https://github.com/altera-opensource/获得。

请登录后发表评论

    没有回复内容