@@ -51,6 +51,7 @@ static const struct id_to_str arc_cpu_rel[] = {
51
51
{ 0x51 , "R2.0" },
52
52
{ 0x52 , "R2.1" },
53
53
{ 0x53 , "R3.0" },
54
+ { 0x54 , "R4.0" },
54
55
#endif
55
56
{ 0x00 , NULL }
56
57
};
@@ -62,6 +63,7 @@ static const struct id_to_str arc_cpu_nm[] = {
62
63
#else
63
64
{ 0x40 , "ARC EM" },
64
65
{ 0x50 , "ARC HS38" },
66
+ { 0x54 , "ARC HS48" },
65
67
#endif
66
68
{ 0x00 , "Unknown" }
67
69
};
@@ -133,7 +135,7 @@ static void read_arc_build_cfg_regs(void)
133
135
}
134
136
135
137
for (tbl = & arc_cpu_nm [0 ]; tbl -> id != 0 ; tbl ++ ) {
136
- if ((cpu -> core .family & 0xF0 ) == tbl -> id )
138
+ if ((cpu -> core .family & 0xF4 ) == tbl -> id )
137
139
break ;
138
140
}
139
141
cpu -> name = tbl -> str ;
@@ -192,6 +194,14 @@ static void read_arc_build_cfg_regs(void)
192
194
cpu -> bpu .full = bpu .ft ;
193
195
cpu -> bpu .num_cache = 256 << bpu .bce ;
194
196
cpu -> bpu .num_pred = 2048 << bpu .pte ;
197
+
198
+ if (cpu -> core .family >= 0x54 ) {
199
+ unsigned int exec_ctrl ;
200
+
201
+ READ_BCR (AUX_EXEC_CTRL , exec_ctrl );
202
+ cpu -> extn .dual_iss_exist = 1 ;
203
+ cpu -> extn .dual_iss_enb = exec_ctrl & 1 ;
204
+ }
195
205
}
196
206
197
207
READ_BCR (ARC_REG_AP_BCR , bcr );
@@ -239,10 +249,11 @@ static char *arc_cpu_mumbojumbo(int cpu_id, char *buf, int len)
239
249
"\nIDENTITY\t: ARCVER [%#02x] ARCNUM [%#02x] CHIPID [%#4x]\n" ,
240
250
core -> family , core -> cpu_id , core -> chip_id );
241
251
242
- n += scnprintf (buf + n , len - n , "processor [%d]\t: %s %s (%s ISA) %s\n" ,
252
+ n += scnprintf (buf + n , len - n , "processor [%d]\t: %s %s (%s ISA) %s%s%s \n" ,
243
253
cpu_id , cpu -> name , cpu -> details ,
244
254
is_isa_arcompact () ? "ARCompact" : "ARCv2" ,
245
- IS_AVAIL1 (cpu -> isa .be , "[Big-Endian]" ));
255
+ IS_AVAIL1 (cpu -> isa .be , "[Big-Endian]" ),
256
+ IS_AVAIL3 (cpu -> extn .dual_iss_exist , cpu -> extn .dual_iss_enb , " Dual-Issue" ));
246
257
247
258
n += scnprintf (buf + n , len - n , "Timers\t\t: %s%s%s%s%s%s\nISA Extn\t: " ,
248
259
IS_AVAIL1 (cpu -> extn .timer0 , "Timer0 " ),
0 commit comments