ARC: Implement print_cpuinfo()
authorAlexey Brodkin <abrodkin@synopsys.com>
Tue, 2 Oct 2018 08:42:23 +0000 (11:42 +0300)
committerAlexey Brodkin <abrodkin@synopsys.com>
Fri, 5 Oct 2018 13:55:42 +0000 (16:55 +0300)
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>
arch/arc/lib/cpu.c

index cb95e06e93118dcd589304796122832d21748be8..50cd7cdb6109c700aad968ee3725e7726bdcff76 100644 (file)
@@ -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 @@ 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 */