50634b860f79580011b4701e3ff051cb1ec97c7c
[platform/kernel/u-boot.git] / arch / arc / lib / cpu.c
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 }