【问题标题】:L2 Cache lock down on Pandaboard (Cortex-A9)Pandaboard (Cortex-A9) 上的 L2 缓存锁定
【发布时间】:2016-02-04 23:20:51
【问题描述】:

有没有办法在运行 Ubuntu 的 Pandaboard ES 上锁定 L2 缓存? TRM 说有可能,但我不知道在 Pandaboard 上是否可行。

我尝试编译内核对象并使用 cp15 在辅助控制寄存器中设置位,但我想它是 RO,因为我不能在那里写。 CPSR 说我处于特权模式,但我猜这是不安全的特权模式?

如何使用 PL310 缓存控制器来做到这一点? 我需要以某种方式使用 TrustZone 吗? 在 Panda 上本地编译时使用 asm volatile(...) 编译 SMC #1 指令时,尝试执行任务设置时,此 Panda 没有响应。

【问题讨论】:

  • 参见 PL310 TRM 的第 2.9.3 节 缓存可配置性;锁定是一个设计参数,默认情况下已注释。 Tbl 3-2 注释 de,pg3-9 寄存器 0,缓存类型字段 ctype,寄存器 1 aux control 位 26 NS 锁定启用控制正常世界。至少调查这些位并告诉人们你的控制器有什么是值得的。
  • 好的,我还没有看到这个 ACR 26 位 NS 锁定,如何到达那里并使用 asm volatile 更改值? 0x100 和类似的地址是[ 36.580688] Unable to handle kernel NULL pointer dereference at virtual address 00000100 关于这个“评论”的定义,它在哪里评论?据我了解,这是在内核启动之前注释和初始化的地方,因此更改它可能会有所帮助,系统将随着 L2 锁定而上升。
  • 评论指的是implementing (HDL, check link)的人;每个 PL310 都不一样。它是软件-硬件... 0x100 是您需要在 Panda CPU 文档中查找基地址的偏移量(可能与所有 Cortex-A9 相同,因为它可能已集成)并且 Linux 通常使用资源来设置内存位置(虚拟地址)。在当前主线中,physical address is 48242000;你需要虚拟的。

标签: linux-kernel arm cpu-cache pandaboard


【解决方案1】:

尝试OmapConf 应用程序来更改您需要的寄存器。 我还没有在 Ubuntu 中尝试过,但我确实在 Android 上使用过。

【讨论】:

    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2015-08-17
    相关资源
    最近更新 更多