#include <asm/proc-fns.h>
#include <asm/exception.h>
+#include <asm/firmware.h>
#include <asm/hardware/cache-l2x0.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
if (soc_is_exynos5250() || soc_is_exynos5440())
return 0;
+ call_firmware_op(l2x0_init);
+
if (of_have_populated_dt()) {
ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
if (ret)
return 0;
}
+static int exynos_l2x0_init(void)
+{
+ exynos_smc(SMC_CMD_L2X0INVALL, 0, 0, 0);
+ exynos_smc(SMC_CMD_L2X0CTRL, 1, 0, 0);
+ return 0;
+}
+
static const struct firmware_ops exynos_firmware_ops = {
.do_idle = exynos_do_idle,
.set_cpu_boot_addr = exynos_set_cpu_boot_addr,
.cpu_boot = exynos_cpu_boot,
+ .l2x0_init = exynos_l2x0_init,
};
void __init exynos_firmware_init(void)