2015-11-04 46 views
0

有没有办法在Pandaboard ES上锁定L2缓存并在其中运行Ubuntu? TRM说这是可能的,但我不知道它在Pandaboard上是否可行。Pandaboard上的L2高速缓存锁定(Cortex-A9)

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

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

+0

请参阅第2.9.3节* PL310 TRM的缓存可配置性*;锁定是一个设计参数,默认情况下会进行注释。 Tbl 3-2注释* d *和* e *,pg3-9 *寄存器0,缓存类型*字段** ctype **,寄存器1 *辅助控制*位26 NS锁定使能控制正常的世界。至少应该调查这些位并告诉人们你的控制器有什么。 –

+0

好吧,我没有看到这个ACR 26位NS锁定,如何到达那里并使用asm volatile更改值? 0x100和类似地址是 '[36.580688]无法处理虚拟地址00000100处的内核NULL指针取消引用 而关于此“已评论”定义,它在哪里发表评论? 据我所知,在内核启动之前,这是在某处进行注释和初始化的地方,所以改变这可能会有所帮助,并且系统会随着L2锁定而上升。 –

+0

*评论*是指[实施(HDL,检查链接)](https://en.wikipedia.org/wiki/Hardware_description_language);每个PL310都不同。它是软件硬件... 0x100是您需要在Panda CPU文档中查找基址的偏移量(对于可能集成的所有Cortex-A9来说可能相同),Linux通常使用资源来设置内存位置(虚拟地址)。在当前的主线中,[**物理**地址是48242000](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ omap4.dtsi#N62);你需要虚拟。 –

回答

0

尝试OmapConf应用程序来更改您需要的注册表。 我还没有在Ubuntu上试过它,但我确实在Android上使用过它。