xref: /rk3399_rockchip-uboot/arch/arm/mach-exynos/soc.c (revision 2d221489df021393654805536be7effcb9d39702)
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 Abraham void 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 Abraham void 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