177b55e8cSThomas Abraham /* 277b55e8cSThomas Abraham * Copyright (c) 2010 Samsung Electronics. 377b55e8cSThomas Abraham * Minkyu Kang <mk7.kang@samsung.com> 477b55e8cSThomas Abraham * 577b55e8cSThomas Abraham * SPDX-License-Identifier: GPL-2.0+ 677b55e8cSThomas Abraham */ 777b55e8cSThomas Abraham 877b55e8cSThomas Abraham #include <common.h> 977b55e8cSThomas Abraham #include <asm/io.h> 1077b55e8cSThomas Abraham #include <asm/system.h> 1177b55e8cSThomas Abraham 12*95e74a3dSThomas Abraham #ifdef CONFIG_TARGET_ESPRESSO7420 13*95e74a3dSThomas Abraham /* 14*95e74a3dSThomas Abraham * Exynos7420 uses CPU0 of Cluster-1 as boot CPU. Due to this, branch_if_master 15*95e74a3dSThomas Abraham * fails to identify as the boot CPU as the master CPU. As temporary workaround, 16*95e74a3dSThomas Abraham * setup the slave CPU boot address as "_main". 17*95e74a3dSThomas Abraham */ 18*95e74a3dSThomas Abraham extern void _main(void); 19*95e74a3dSThomas Abraham void *secondary_boot_addr = (void *)_main; 20*95e74a3dSThomas Abraham #endif /* CONFIG_TARGET_ESPRESSO7420 */ 21*95e74a3dSThomas Abraham reset_cpu(ulong addr)2277b55e8cSThomas Abrahamvoid reset_cpu(ulong addr) 2377b55e8cSThomas Abraham { 2436aa8937SThomas Abraham #ifdef CONFIG_CPU_V7 2577b55e8cSThomas Abraham writel(0x1, samsung_get_base_swreset()); 2636aa8937SThomas Abraham #endif 2777b55e8cSThomas Abraham } 2877b55e8cSThomas Abraham 2977b55e8cSThomas Abraham #ifndef CONFIG_SYS_DCACHE_OFF enable_caches(void)3077b55e8cSThomas Abrahamvoid enable_caches(void) 3177b55e8cSThomas Abraham { 3277b55e8cSThomas Abraham /* Enable D-cache. I-cache is already enabled in start.S */ 3377b55e8cSThomas Abraham dcache_enable(); 3477b55e8cSThomas Abraham } 3577b55e8cSThomas Abraham #endif 36