文章 ID: 000086284 内容类型: 故障排除 上次审核日期: 2017 年 08 月 24 日

为什么在运行 Altera Linux 内核时,可能会看到 SoC 设计上的高速缓存一致性问题?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    由于默认的 Linux BSP 不支持高速缓存和 TLB 维护广播(寄存器 ACTLR 的位0 将“0”)留在 SMP 模式中,可能会看到高速缓存一致性问题。

    有关上述情况的描述,请参阅 ARM A9 MPCore 技术参考手册[2]中关于 ARM A9 MPCore 技术维护操作的第 1.7.3 节维护操作

    所有在同一一连贯域上以 SMP 模式工作的处理器都可以发送并接收 TLB 和高速缓存维护操作。ARM 架构参考手册提供广播操作的详细信息。A9-MP 群集广播中可广播维护操作中的 Cortex-A9 处理器在 SMP 模式 (ACTLR) 下运行。SMP=1)以及启用维护操作广播时 (ACTLR)。FW=1)。Cortex-A9 处理器在 SMP 模式下操作 ACTLR 时可以接收并执行广播维护操作。SMP=1。

    解决方法

    建议同时设置 ACTLR。FW ACTLR。SMP1。我们可以通过在 proc-v7 中修改 Linux 代码来设置该位。S 文件如下:

    #ifdef CONFIG_SMP
    ALT_SMP(mrc p15、0、r0、c1、c0、1)
    ALT_UP(mov r0, #(1 << 6))@ 伪造它以支持 UP
    启用 tst r0、#(1 << 6) @ SMP/nAMP 模式?
    orreq r0, r0, #(1 << 6) @ 启用 SMP/nAMP 模式
    orreq r0, r0, r10 @ 启用特定于 CPU 的 SMP 位
    orr r0、r0、#(1) @Add此行启用 ACTLR[0]
    mcreq p15, 0, r0, c1, c0, 1
    #endif

    相关产品

    本文适用于 2 产品

    Cyclone® V FPGA 和 SoC FPGA
    英特尔® Arria® 10 SX SoC FPGA

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