@@ -170,28 +170,33 @@ static void detectArmName(FFstrbuf* cpuinfo, FFCPUResult* cpu, uint32_t implId)
170170 if (!ffStrStartsWith (line , "CPU part\t: " )) continue ;
171171 uint32_t partId = (uint32_t ) strtoul (line + strlen ("CPU part\t: " ), NULL , 16 );
172172 const char * name = NULL ;
173- if ( partId > 0 ) // Linux reports 0 for unknown CPUs
173+ switch ( implId )
174174 {
175- switch (implId )
176- {
177- case 0x41 : name = armPartId2name (partId ); break ;
178- case 0x42 : name = brcmPartId2name (partId ); break ;
179- case 0x43 : name = caviumPartId2name (partId ); break ;
180- case 0x44 : name = decPartId2name (partId ); break ;
181- case 0x46 : name = fujitsuPartId2name (partId ); break ;
182- case 0x48 : name = hisiPartId2name (partId ); break ;
183- case 0x4e : name = nvidiaPartId2name (partId ); break ;
184- case 0x50 : name = apmPartId2name (partId ); break ;
185- case 0x51 : name = qcomPartId2name (partId ); break ;
186- case 0x53 : name = samsungPartId2name (partId ); break ;
187- case 0x56 : name = marvellPartId2name (partId ); break ;
188- case 0x61 : name = applePartId2name (partId ); break ;
189- case 0x66 : name = faradayPartId2name (partId ); break ;
190- case 0x69 : name = intelPartId2name (partId ); break ;
191- case 0x6d : name = msPartId2name (partId ); break ;
192- case 0x70 : name = ftPartId2name (partId ); break ;
193- case 0xc0 : name = amperePartId2name (partId ); break ;
194- }
175+ case 0x41 : name = armPartId2name (partId ); break ;
176+ case 0x42 : name = brcmPartId2name (partId ); break ;
177+ case 0x43 : name = caviumPartId2name (partId ); break ;
178+ case 0x44 : name = decPartId2name (partId ); break ;
179+ case 0x46 : name = fujitsuPartId2name (partId ); break ;
180+ case 0x48 : name = hisiPartId2name (partId ); break ;
181+ case 0x4e : name = nvidiaPartId2name (partId ); break ;
182+ case 0x50 : name = apmPartId2name (partId ); break ;
183+ case 0x51 : name = qcomPartId2name (partId ); break ;
184+ case 0x53 : name = samsungPartId2name (partId ); break ;
185+ case 0x56 : name = marvellPartId2name (partId ); break ;
186+ case 0x61 :
187+ if (partId == 0 )
188+ {
189+ // https://github.com/Dr-Noob/cpufetch/issues/213#issuecomment-1927782105
190+ ffStrbufSetStatic (& cpu -> name , "Virtualized Apple Silicon" );
191+ return ;
192+ }
193+ name = applePartId2name (partId );
194+ break ;
195+ case 0x66 : name = faradayPartId2name (partId ); break ;
196+ case 0x69 : name = intelPartId2name (partId ); break ;
197+ case 0x6d : name = msPartId2name (partId ); break ;
198+ case 0x70 : name = ftPartId2name (partId ); break ;
199+ case 0xc0 : name = amperePartId2name (partId ); break ;
195200 }
196201 if (lastPartId != partId )
197202 {
0 commit comments