@@ -26,6 +26,7 @@ EXPORT_PER_CPU_SYMBOL(__cpu_data);
2626struct cpu_info {
2727 int psr_vers ;
2828 const char * name ;
29+ const char * pmu_name ;
2930};
3031
3132struct fpu_info {
@@ -45,6 +46,9 @@ struct manufacturer_info {
4546#define CPU (ver , _name ) \
4647{ .psr_vers = ver, .name = _name }
4748
49+ #define CPU_PMU (ver , _name , _pmu_name ) \
50+ { .psr_vers = ver, .name = _name, .pmu_name = _pmu_name }
51+
4852#define FPU (ver , _name ) \
4953{ .fp_vers = ver, .name = _name }
5054
@@ -183,10 +187,10 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
183187},{
184188 0x17 ,
185189 .cpu_info = {
186- CPU (0x10 , "TI UltraSparc I (SpitFire)" ),
187- CPU (0x11 , "TI UltraSparc II (BlackBird)" ),
188- CPU (0x12 , "TI UltraSparc IIi (Sabre)" ),
189- CPU (0x13 , "TI UltraSparc IIe (Hummingbird)" ),
190+ CPU_PMU (0x10 , "TI UltraSparc I (SpitFire)" , "ultra12 " ),
191+ CPU_PMU (0x11 , "TI UltraSparc II (BlackBird)" , "ultra12 " ),
192+ CPU_PMU (0x12 , "TI UltraSparc IIi (Sabre)" , "ultra12 " ),
193+ CPU_PMU (0x13 , "TI UltraSparc IIe (Hummingbird)" , "ultra12 " ),
190194 CPU (-1 , NULL )
191195 },
192196 .fpu_info = {
@@ -199,7 +203,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
199203},{
200204 0x22 ,
201205 .cpu_info = {
202- CPU (0x10 , "TI UltraSparc I (SpitFire)" ),
206+ CPU_PMU (0x10 , "TI UltraSparc I (SpitFire)" , "ultra12 " ),
203207 CPU (-1 , NULL )
204208 },
205209 .fpu_info = {
@@ -209,12 +213,12 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
209213},{
210214 0x3e ,
211215 .cpu_info = {
212- CPU (0x14 , "TI UltraSparc III (Cheetah)" ),
213- CPU (0x15 , "TI UltraSparc III+ (Cheetah+)" ),
214- CPU (0x16 , "TI UltraSparc IIIi (Jalapeno)" ),
215- CPU (0x18 , "TI UltraSparc IV (Jaguar)" ),
216- CPU (0x19 , "TI UltraSparc IV+ (Panther)" ),
217- CPU (0x22 , "TI UltraSparc IIIi+ (Serrano)" ),
216+ CPU_PMU (0x14 , "TI UltraSparc III (Cheetah)" , "ultra3 " ),
217+ CPU_PMU (0x15 , "TI UltraSparc III+ (Cheetah+)" , "ultra3+ " ),
218+ CPU_PMU (0x16 , "TI UltraSparc IIIi (Jalapeno)" , "ultra3i " ),
219+ CPU_PMU (0x18 , "TI UltraSparc IV (Jaguar)" , "ultra3+ " ),
220+ CPU_PMU (0x19 , "TI UltraSparc IV+ (Panther)" , "ultra4+ " ),
221+ CPU_PMU (0x22 , "TI UltraSparc IIIi+ (Serrano)" , "ultra3i " ),
218222 CPU (-1 , NULL )
219223 },
220224 .fpu_info = {
@@ -234,6 +238,7 @@ static const struct manufacturer_info __initconst manufacturer_info[] = {
234238
235239const char * sparc_cpu_type ;
236240const char * sparc_fpu_type ;
241+ const char * sparc_pmu_type ;
237242
238243unsigned int fsr_storage ;
239244
@@ -244,6 +249,7 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
244249
245250 sparc_cpu_type = NULL ;
246251 sparc_fpu_type = NULL ;
252+ sparc_pmu_type = NULL ;
247253 manuf = NULL ;
248254
249255 for (i = 0 ; i < ARRAY_SIZE (manufacturer_info ); i ++ )
@@ -263,6 +269,7 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
263269 {
264270 if (cpu -> psr_vers == psr_vers ) {
265271 sparc_cpu_type = cpu -> name ;
272+ sparc_pmu_type = cpu -> pmu_name ;
266273 sparc_fpu_type = "No FPU" ;
267274 break ;
268275 }
@@ -290,6 +297,8 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
290297 psr_impl , fpu_vers );
291298 sparc_fpu_type = "Unknown FPU" ;
292299 }
300+ if (sparc_pmu_type == NULL )
301+ sparc_pmu_type = "Unknown PMU" ;
293302}
294303
295304#ifdef CONFIG_SPARC32
@@ -315,11 +324,13 @@ static void __init sun4v_cpu_probe(void)
315324 case SUN4V_CHIP_NIAGARA1 :
316325 sparc_cpu_type = "UltraSparc T1 (Niagara)" ;
317326 sparc_fpu_type = "UltraSparc T1 integrated FPU" ;
327+ sparc_pmu_type = "niagara" ;
318328 break ;
319329
320330 case SUN4V_CHIP_NIAGARA2 :
321331 sparc_cpu_type = "UltraSparc T2 (Niagara2)" ;
322332 sparc_fpu_type = "UltraSparc T2 integrated FPU" ;
333+ sparc_pmu_type = "niagara2" ;
323334 break ;
324335
325336 default :
0 commit comments