Skip to content

Commit 97d0b5d

Browse files
committed
ARCv2: boot log: detect newer/upconing HS3x/HS4x releases
Signed-off-by: Vineet Gupta <[email protected]>
1 parent b7faf97 commit 97d0b5d

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

arch/arc/kernel/setup.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@ static const struct id_to_str arc_legacy_rel[] = {
5858
{ 0x00, NULL }
5959
};
6060

61-
static const struct id_to_str arc_cpu_rel[] = {
61+
static const struct id_to_str arc_hs_ver54_rel[] = {
6262
/* UARCH.MAJOR, Release */
6363
{ 0, "R3.10a"},
6464
{ 1, "R3.50a"},
65+
{ 2, "R3.60a"},
66+
{ 3, "R4.00a"},
6567
{ 0xFF, NULL }
6668
};
6769

@@ -117,12 +119,6 @@ static void decode_arc_core(struct cpuinfo_arc *cpu)
117119
struct bcr_uarch_build_arcv2 uarch;
118120
const struct id_to_str *tbl;
119121

120-
/*
121-
* Up until (including) the first core4 release (0x54) things were
122-
* simple: AUX IDENTITY.ARCVER was sufficient to identify arc family
123-
* and release: 0x50 to 0x53 was HS38, 0x54 was HS48 (dual issue)
124-
*/
125-
126122
if (cpu->core.family < 0x54) { /* includes arc700 */
127123

128124
for (tbl = &arc_legacy_rel[0]; tbl->id != 0; tbl++) {
@@ -143,11 +139,10 @@ static void decode_arc_core(struct cpuinfo_arc *cpu)
143139
}
144140

145141
/*
146-
* However the subsequent HS release (same 0x54) allow HS38 or HS48
147-
* configurations and encode this info in a different BCR.
148-
* The BCR was introduced in 0x54 so can't be read unconditionally.
142+
* Initial HS cores bumped AUX IDENTITY.ARCVER for each release until
143+
* ARCVER 0x54 which introduced AUX MICRO_ARCH_BUILD and subsequent
144+
* releases only update it.
149145
*/
150-
151146
READ_BCR(ARC_REG_MICRO_ARCH_BCR, uarch);
152147

153148
if (uarch.prod == 4) {
@@ -158,7 +153,7 @@ static void decode_arc_core(struct cpuinfo_arc *cpu)
158153
cpu->name = "HS38";
159154
}
160155

161-
for (tbl = &arc_cpu_rel[0]; tbl->id != 0xFF; tbl++) {
156+
for (tbl = &arc_hs_ver54_rel[0]; tbl->id != 0xFF; tbl++) {
162157
if (uarch.maj == tbl->id) {
163158
cpu->release = tbl->str;
164159
break;

0 commit comments

Comments
 (0)