diff options
Diffstat (limited to 'arch/arm/mach-ux500/cache-l2x0.c')
| -rw-r--r-- | arch/arm/mach-ux500/cache-l2x0.c | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/arm/mach-ux500/cache-l2x0.c b/arch/arm/mach-ux500/cache-l2x0.c index 77a75ed0df6..dc12394295d 100644 --- a/arch/arm/mach-ux500/cache-l2x0.c +++ b/arch/arm/mach-ux500/cache-l2x0.c @@ -36,9 +36,9 @@ static int __init ux500_l2x0_unlock(void)  static int __init ux500_l2x0_init(void)  { -	if (cpu_is_u5500()) -		l2x0_base = __io_address(U5500_L2CC_BASE); -	else if (cpu_is_u8500()) +	u32 aux_val = 0x3e000000; + +	if (cpu_is_u8500_family())  		l2x0_base = __io_address(U8500_L2CC_BASE);  	else  		ux500_unknown_soc(); @@ -46,11 +46,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  |