|
@@ -36,9 +36,11 @@ static int __init ux500_l2x0_unlock(void)
|
|
|
|
|
|
static int __init ux500_l2x0_init(void)
|
|
|
{
|
|
|
+ u32 aux_val = 0x3e000000;
|
|
|
+
|
|
|
if (cpu_is_u5500())
|
|
|
l2x0_base = __io_address(U5500_L2CC_BASE);
|
|
|
- else if (cpu_is_u8500())
|
|
|
+ else if (cpu_is_u8500_family())
|
|
|
l2x0_base = __io_address(U8500_L2CC_BASE);
|
|
|
else
|
|
|
ux500_unknown_soc();
|
|
@@ -46,11 +48,19 @@ static int __init ux500_l2x0_init(void)
|
|
|
/* Unlock before init */
|
|
|
ux500_l2x0_unlock();
|
|
|
|
|
|
+ /* DB9540's L2 has 128KB way size */
|
|
|
+ if (cpu_is_u9540())
|
|
|
+ /* 128KB way size */
|
|
|
+ aux_val |= (0x4 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT);
|
|
|
+ else
|
|
|
+ /* 64KB way size */
|
|
|
+ aux_val |= (0x3 << L2X0_AUX_CTRL_WAY_SIZE_SHIFT);
|
|
|
+
|
|
|
/* 64KB way size, 8 way associativity, force WA */
|
|
|
if (of_have_populated_dt())
|
|
|
- l2x0_of_init(0x3e060000, 0xc0000fff);
|
|
|
+ l2x0_of_init(aux_val, 0xc0000fff);
|
|
|
else
|
|
|
- l2x0_init(l2x0_base, 0x3e060000, 0xc0000fff);
|
|
|
+ l2x0_init(l2x0_base, aux_val, 0xc0000fff);
|
|
|
|
|
|
/*
|
|
|
* We can't disable l2 as we are in non secure mode, currently
|