]> git.ipfire.org Git - people/ms/u-boot.git/blob - arch/arc/lib/cpu.c
50634b860f79580011b4701e3ff051cb1ec97c7c
[people/ms/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 }