xref: /openbmc/u-boot/arch/arc/lib/cpu.c (revision 3a1a18ff)
1 /*
2  * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #include <common.h>
8 #include <asm/arcregs.h>
9 #include <asm/cache.h>
10 
11 DECLARE_GLOBAL_DATA_PTR;
12 
13 int arch_cpu_init(void)
14 {
15 #ifdef CONFIG_SYS_ICACHE_OFF
16 	icache_disable();
17 #else
18 	icache_enable();
19 	invalidate_icache_all();
20 #endif
21 
22 	flush_dcache_all();
23 #ifdef CONFIG_SYS_DCACHE_OFF
24 	dcache_disable();
25 #else
26 	dcache_enable();
27 #endif
28 	timer_init();
29 
30 /* In simulation (ISS) "CHIPID" and "ARCNUM" are all "ff" */
31 	if ((read_aux_reg(ARC_AUX_IDENTITY) & 0xffffff00) == 0xffffff00)
32 		gd->arch.running_on_hw = 0;
33 	else
34 		gd->arch.running_on_hw = 1;
35 
36 	gd->cpu_clk = CONFIG_SYS_CLK_FREQ;
37 	gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
38 
39 	return 0;
40 }
41 
42 int arch_early_init_r(void)
43 {
44 	gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;
45 	gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
46 	return 0;
47 }
48