39
39
// Cavium
40
40
#define CPU_THUNDERX 7
41
41
#define CPU_THUNDERX2T99 8
42
+ //Hisilicon
43
+ #define CPU_TSV110 9
42
44
43
45
static char * cpuname [] = {
44
46
"UNKNOWN" ,
@@ -49,7 +51,8 @@ static char *cpuname[] = {
49
51
"CORTEXA73" ,
50
52
"FALKOR" ,
51
53
"THUNDERX" ,
52
- "THUNDERX2T99"
54
+ "THUNDERX2T99" ,
55
+ "TSV110"
53
56
};
54
57
55
58
static char * cpuname_lower [] = {
@@ -61,7 +64,8 @@ static char *cpuname_lower[] = {
61
64
"cortexa73" ,
62
65
"falkor" ,
63
66
"thunderx" ,
64
- "thunderx2t99"
67
+ "thunderx2t99" ,
68
+ "tsv110"
65
69
};
66
70
67
71
int get_feature (char * search )
@@ -145,6 +149,9 @@ int detect(void)
145
149
return CPU_THUNDERX ;
146
150
else if (strstr (cpu_implementer , "0x43" ) && strstr (cpu_part , "0x0af" ))
147
151
return CPU_THUNDERX2T99 ;
152
+ // HiSilicon
153
+ else if (strstr (cpu_implementer , "0x48" ) && strstr (cpu_part , "0xd01" ))
154
+ return CPU_TSV110 ;
148
155
}
149
156
150
157
p = (char * ) NULL ;
@@ -286,6 +293,21 @@ void get_cpuconfig(void)
286
293
printf ("#define DTB_DEFAULT_ENTRIES 64 \n" );
287
294
printf ("#define DTB_SIZE 4096 \n" );
288
295
break ;
296
+
297
+ case CPU_TSV110 :
298
+ printf ("#define TSV110 \n" );
299
+ printf ("#define L1_CODE_SIZE 65536 \n" );
300
+ printf ("#define L1_CODE_LINESIZE 64 \n" );
301
+ printf ("#define L1_CODE_ASSOCIATIVE 4 \n" );
302
+ printf ("#define L1_DATA_SIZE 65536 \n" );
303
+ printf ("#define L1_DATA_LINESIZE 64 \n" );
304
+ printf ("#define L1_DATA_ASSOCIATIVE 4 \n" );
305
+ printf ("#define L2_SIZE 524228 \n" );
306
+ printf ("#define L2_LINESIZE 64 \n" );
307
+ printf ("#define L2_ASSOCIATIVE 8 \n" );
308
+ printf ("#define DTB_DEFAULT_ENTRIES 64 \n" );
309
+ printf ("#define DTB_SIZE 4096 \n" );
310
+ break ;
289
311
}
290
312
}
291
313
0 commit comments