2015-11-04 47 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上使用過它。