diff options
author | Per Forlin <per.forlin@linaro.org> | 2011-08-31 13:24:03 +0200 |
---|---|---|
committer | Mathieu J. Poirier <mathieu.poirier@linaro.org> | 2011-11-07 10:22:30 -0700 |
commit | aab98715a83f9d2b449b87c040adba64133dbb1a (patch) | |
tree | ed6c52f3899967e03d75ea9d5189b55b1772afad | |
parent | 7bc966af968800cbcd264bfda7de2e3d762cff8c (diff) |
TODO: make this patch board specific. E.g add a board hook
in cpu.c that the board may implement.
Use generic cache functions for clean and inv, not hardcoded registers.
-rw-r--r-- | arch/arm/cpu/armv7/cpu.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/cpu.c b/arch/arm/cpu/armv7/cpu.c index a01e0d605..3e934c75d 100644 --- a/arch/arm/cpu/armv7/cpu.c +++ b/arch/arm/cpu/armv7/cpu.c @@ -73,6 +73,18 @@ int cleanup_before_linux(void) #ifndef CONFIG_L2_OFF l2_cache_enable(); #endif +#ifdef CONFIG_U8500 + /* Clean l2 */ + *((volatile unsigned int *)(0xA04127BC)) = 0xFF; + while (*((volatile unsigned int *)(0xA04127BC)) & 0xFF); + /* Invalidate l2 */ + *((volatile unsigned int *)(0xA041277C)) = 0xFF; + while (*((volatile unsigned int *)(0xA041277C)) & 0xFF); + + /* Locking l2 cache */ + // *((volatile unsigned int *)(0xA0412900)) = 0xFF; + // *((volatile unsigned int *)(0xA0412904)) = 0xFF; +#endif return 0; } |