// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2013-2014, 2018 Synopsys, Inc. All rights reserved. */ #include #include #include DECLARE_GLOBAL_DATA_PTR; int arch_cpu_init(void) { timer_init(); gd->cpu_clk = CONFIG_SYS_CLK_FREQ; gd->ram_size = CONFIG_SYS_SDRAM_SIZE; cache_init(); return 0; } int arch_early_init_r(void) { gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE; return 0; } /* This is a dummy function on arc */ int dram_init(void) { return 0; } #ifdef CONFIG_DISPLAY_CPUINFO const char *decode_identity(void) { int arcver = read_aux_reg(ARC_AUX_IDENTITY) & 0xff; switch (arcver) { /* ARCompact cores */ case 0x32: return "ARC 700 v4.4-4.5"; case 0x33: return "ARC 700 v4.6-v4.9"; case 0x34: return "ARC 700 v4.10"; case 0x35: return "ARC 700 v4.11"; /* ARCv2 cores */ case 0x41: return "ARC EM v1.1a"; case 0x42: return "ARC EM v3.0"; case 0x43: return "ARC EM v4.0"; case 0x50: return "ARC HS v1.0"; case 0x51: return "ARC EM v2.0"; case 0x52: return "ARC EM v2.1"; case 0x53: return "ARC HS v3.0"; case 0x54: return "ARC HS v4.0"; default: return "Unknown ARC core"; } } __weak int print_cpuinfo(void) { printf("CPU: %s\n", decode_identity()); return 0; } #endif /* CONFIG_DISPLAY_CPUINFO */