]>
Commit | Line | Data |
---|---|---|
e27d6c7d MY |
1 | /* |
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 | ||
15 | int 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 | ||
b8faf5f1 | 23 | puts("SoC: "); |
e27d6c7d MY |
24 | |
25 | switch (id) { | |
e27d6c7d | 26 | case UNIPHIER_LD4_ID: |
b8faf5f1 | 27 | puts("LD4"); |
e27d6c7d MY |
28 | required_rev = 2; |
29 | break; | |
30 | case UNIPHIER_PRO4_ID: | |
b8faf5f1 | 31 | puts("Pro4"); |
e27d6c7d MY |
32 | break; |
33 | case UNIPHIER_SLD8_ID: | |
b8faf5f1 | 34 | puts("sLD8"); |
e27d6c7d MY |
35 | break; |
36 | case UNIPHIER_PRO5_ID: | |
b8faf5f1 | 37 | puts("Pro5"); |
e27d6c7d MY |
38 | break; |
39 | case UNIPHIER_PXS2_ID: | |
b8faf5f1 | 40 | puts("PXs2"); |
e27d6c7d MY |
41 | break; |
42 | case UNIPHIER_LD6B_ID: | |
b8faf5f1 | 43 | puts("LD6b"); |
e27d6c7d MY |
44 | break; |
45 | case UNIPHIER_LD11_ID: | |
b8faf5f1 | 46 | puts("LD11"); |
e27d6c7d MY |
47 | break; |
48 | case UNIPHIER_LD20_ID: | |
b8faf5f1 | 49 | puts("LD20"); |
e27d6c7d | 50 | break; |
2c2ab3d4 MY |
51 | case UNIPHIER_PXS3_ID: |
52 | puts("PXs3"); | |
53 | break; | |
e27d6c7d MY |
54 | default: |
55 | printf("Unknown Processor ID (0x%x)\n", id); | |
56 | return -ENOTSUPP; | |
57 | } | |
58 | ||
b8faf5f1 | 59 | printf(" (model %d, revision %d)\n", model, rev); |
e27d6c7d MY |
60 | |
61 | if (model < required_model) { | |
62 | printf("Only model %d or newer is supported.\n", | |
63 | required_model); | |
64 | return -ENOTSUPP; | |
65 | } else if (rev < required_rev) { | |
66 | printf("Only revision %d or newer is supported.\n", | |
67 | required_rev); | |
68 | return -ENOTSUPP; | |
69 | } | |
70 | ||
71 | return 0; | |
72 | } |