blob: 2ce73c5af8889ed5ce4398d39829e3fb24761309 [file] [log] [blame]
Masahiro Yamadae27d6c72017-01-21 18:05:26 +09001/*
2 * Copyright (C) 2013-2014 Panasonic Corporation
3 * Copyright (C) 2015-2017 Socionext Inc.
4 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0+
7 */
8
9#include <common.h>
10#include <linux/errno.h>
11#include <linux/io.h>
12
13#include "soc-info.h"
14
15int print_cpuinfo(void)
16{
17 unsigned int id, model, rev, required_model = 1, required_rev = 1;
18
19 id = uniphier_get_soc_id();
20 model = uniphier_get_soc_model();
21 rev = uniphier_get_soc_revision();
22
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090023 puts("SoC: ");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090024
25 switch (id) {
26 case UNIPHIER_SLD3_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090027 puts("sLD3");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090028 required_model = 2;
29 break;
30 case UNIPHIER_LD4_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090031 puts("LD4");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090032 required_rev = 2;
33 break;
34 case UNIPHIER_PRO4_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090035 puts("Pro4");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090036 break;
37 case UNIPHIER_SLD8_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090038 puts("sLD8");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090039 break;
40 case UNIPHIER_PRO5_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090041 puts("Pro5");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090042 break;
43 case UNIPHIER_PXS2_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090044 puts("PXs2");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090045 break;
46 case UNIPHIER_LD6B_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090047 puts("LD6b");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090048 break;
49 case UNIPHIER_LD11_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090050 puts("LD11");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090051 break;
52 case UNIPHIER_LD20_ID:
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090053 puts("LD20");
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090054 break;
Masahiro Yamada2c2ab3d2017-01-21 18:05:31 +090055 case UNIPHIER_PXS3_ID:
56 puts("PXs3");
57 break;
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090058 default:
59 printf("Unknown Processor ID (0x%x)\n", id);
60 return -ENOTSUPP;
61 }
62
Masahiro Yamadab8faf5f2017-07-13 20:32:17 +090063 printf(" (model %d, revision %d)\n", model, rev);
Masahiro Yamadae27d6c72017-01-21 18:05:26 +090064
65 if (model < required_model) {
66 printf("Only model %d or newer is supported.\n",
67 required_model);
68 return -ENOTSUPP;
69 } else if (rev < required_rev) {
70 printf("Only revision %d or newer is supported.\n",
71 required_rev);
72 return -ENOTSUPP;
73 }
74
75 return 0;
76}