2013-06-24 15:39:33 -07:00
/*
2014-02-25 14:17:43 -08:00
* Copyright ( C ) 2012 - 2014 Broadcom Corporation
2013-06-24 15:39:33 -07:00
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed " as is " WITHOUT ANY WARRANTY of any
* kind , whether express or implied ; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*/
2014-04-21 16:53:08 -05:00
# include <linux/init.h>
# include <linux/printk.h>
2014-02-25 14:17:43 -08:00
# include <asm/hardware/cache-l2x0.h>
2013-06-24 15:39:33 -07:00
2014-02-25 14:17:43 -08:00
# include "bcm_kona_smc.h"
2016-06-08 17:35:58 +01:00
# include "kona_l2_cache.h"
2013-06-24 15:39:33 -07:00
2014-02-25 14:17:43 -08:00
void __init kona_l2_cache_init ( void )
{
2014-04-21 16:53:05 -05:00
unsigned int result ;
2014-02-25 14:17:43 -08:00
int ret ;
ret = bcm_kona_smc_init ( ) ;
if ( ret ) {
pr_info ( " Secure API not available (%d). Skipping L2 init. \n " ,
ret ) ;
return ;
}
2014-04-21 16:53:05 -05:00
result = bcm_kona_smc ( SSAPI_ENABLE_L2_CACHE , 0 , 0 , 0 , 0 ) ;
if ( result ! = SEC_ROM_RET_OK ) {
pr_err ( " Secure Monitor call failed (%u)! Skipping L2 init. \n " ,
result ) ;
return ;
}
2014-02-25 14:17:43 -08:00
/*
* The aux_val and aux_mask have no effect since L2 cache is already
* enabled . Pass 0 s for aux_val and 1 s for aux_mask for default value .
*/
ret = l2x0_of_init ( 0 , ~ 0 ) ;
if ( ret )
pr_err ( " Couldn't enable L2 cache: %d \n " , ret ) ;
}