From 7fe46b969def8537729b4a73e82c93d431f0b752 Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Tue, 2 Oct 2018 11:42:23 +0300 Subject: [PATCH] ARC: Implement print_cpuinfo() Once we enable DISPLAY_CPUINFO for ARC we'll see ARC core family and version printed on boot. Signed-off-by: Alexey Brodkin --- arch/arc/lib/cpu.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/arch/arc/lib/cpu.c b/arch/arc/lib/cpu.c index cb95e06..50cd7cd 100644 --- a/arch/arc/lib/cpu.c +++ b/arch/arc/lib/cpu.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* - * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved. + * Copyright (C) 2013-2014, 2018 Synopsys, Inc. All rights reserved. */ #include @@ -33,3 +33,36 @@ 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"; + } +} + +int print_cpuinfo(void) +{ + printf("CPU: %s\n", decode_identity()); + return 0; +} +#endif /* CONFIG_DISPLAY_CPUINFO */