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 <abrodkin@synopsys.com>
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 <common.h>
@@ -33,3 +33,36 @@
 {
 	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 */