blob: 50634b860f79580011b4701e3ff051cb1ec97c7c [file] [log] [blame]
Alexey Brodkin3a59d912014-02-04 12:56:14 +04001/*
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
11DECLARE_GLOBAL_DATA_PTR;
12
13int 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
42int 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}