Release 4.7 arch/arm/mach-ux500/cache-l2x0.c
/*
* Copyright (C) ST-Ericsson SA 2011
*
* License terms: GNU General Public License (GPL) version 2
*/
#include <linux/io.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <asm/outercache.h>
#include <asm/hardware/cache-l2x0.h>
#include "db8500-regs.h"
#include "id.h"
static int __init ux500_l2x0_unlock(void)
{
int i;
struct device_node *np;
void __iomem *l2x0_base;
np = of_find_compatible_node(NULL, NULL, "arm,pl310-cache");
l2x0_base = of_iomap(np, 0);
of_node_put(np);
if (!l2x0_base)
return -ENODEV;
/*
* Unlock Data and Instruction Lock if locked. Ux500 U-Boot versions
* apparently locks both caches before jumping to the kernel. The
* l2x0 core will not touch the unlock registers if the l2x0 is
* already enabled, so we do it right here instead. The PL310 has
* 8 sets of registers, one per possible CPU.
*/
for (i = 0; i < 8; i++) {
writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_D_BASE +
i * L2X0_LOCKDOWN_STRIDE);
writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_I_BASE +
i * L2X0_LOCKDOWN_STRIDE);
}
iounmap(l2x0_base);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
arnd bergmann | arnd bergmann | 57 | 53.77% | 1 | 33.33% |
linus walleij | linus walleij | 49 | 46.23% | 2 | 66.67% |
| Total | 106 | 100.00% | 3 | 100.00% |
static void ux500_l2c310_write_sec(unsigned long val, unsigned reg)
{
/*
* We can't write to secure registers as we are in non-secure
* mode, until we have some SMI service available.
*/
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
russell king | russell king | 14 | 100.00% | 1 | 100.00% |
| Total | 14 | 100.00% | 1 | 100.00% |
static int __init ux500_l2x0_init(void)
{
/* Multiplatform guard */
if (!((cpu_is_u8500_family() || cpu_is_ux540_family())))
return -ENODEV;
/* Unlock before init */
ux500_l2x0_unlock();
outer_cache.write_sec = ux500_l2c310_write_sec;
l2x0_of_init(0, ~0);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
linus walleij | linus walleij | 29 | 60.42% | 5 | 55.56% |
russell king | russell king | 9 | 18.75% | 2 | 22.22% |
arnd bergmann | arnd bergmann | 5 | 10.42% | 1 | 11.11% |
lee jones | lee jones | 5 | 10.42% | 1 | 11.11% |
| Total | 48 | 100.00% | 9 | 100.00% |
early_initcall(ux500_l2x0_init);
Overall Contributors
| Person | Tokens | Prop | Commits | CommitProp |
linus walleij | linus walleij | 99 | 50.77% | 8 | 61.54% |
arnd bergmann | arnd bergmann | 62 | 31.79% | 1 | 7.69% |
russell king | russell king | 26 | 13.33% | 3 | 23.08% |
lee jones | lee jones | 8 | 4.10% | 1 | 7.69% |
| Total | 195 | 100.00% | 13 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.