0

Is there a way to lock L2 cache on Pandaboard ES with running Ubuntu there? TRM says that it is possible, but I don't know it feasible on Pandaboard.

I've tried to compile kernel object and set there bits in Auxiliary Control Register using cp15, but it's RO I suppose, because I cannot write there. CPSR says I am in a Privilige mode, but i guess that's a non-secure Privilige mode?

How to use that PL310 cache controller to do that? Do I need to use TrustZone somehow? When compile SMC #1 instruction using asm volatile(...) when compiling natively on Panda, when trying to taskset this Panda is not responding.

artless noise
  • 21,212
  • 6
  • 68
  • 105
  • See section 2.9.3 *Cache Configurability* of the PL310 TRM; lock-down is a design parameter and is commented by default. Tbl 3-2 notes *d* and *e*, pg3-9 *register 0, cache type* field **ctype**, register 1 *aux control* bit 26 NS lock-down enable controls normal world. At least it would be worthwhile to investigate these bits and tell people what your controller has. – artless noise Nov 04 '15 at 14:03
  • ok, I havn't seen this ACR 26 bit NS lock-down, how to get there and change value using asm volatile? 0x100 and simmilar addresses are `[ 36.580688] Unable to handle kernel NULL pointer dereference at virtual address 00000100` And regarding this "commented" define, where is it commented? As I understand, that is somewhere commented and initalized before kernel starts, so changing this may help and system will go up with L2 lock-down. – mr.frog Nov 04 '15 at 14:27
  • *commented* refers to the person [implementing (HDL, check link)](https://en.wikipedia.org/wiki/Hardware_description_language); each PL310 is different. It is software-hardware... 0x100 is an offset you need to look up the base address in the Panda CPU documentation (probably the same for all Cortex-A9 as it might be integrated) and Linux usually uses a resource to setup a memory location (virtual address). In current mainline, the [**physical** address is 48242000](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap4.dtsi#n62); you need virtual. – artless noise Nov 04 '15 at 16:39

1 Answers1

0

Try OmapConf application to change the register you need. I haven't tried it in Ubuntu, but I do have used it on Android.

Osolong
  • 32
  • 6