public static SMU GetByType(SMU.CPUType type) { if (!settings.TryGetValue(type, out SMU output)) { throw new NotImplementedException(); } return(output); }
private void InitSystemInfo() { SI = new SystemInfo { CpuId = GetCpuInfo() }; // CPU Check. Compare family, model, ext family, ext model. Ignore stepping/revision switch (SI.CpuId & 0xFFFFFFF0) { case 0x00800F10: // CPU \ Zen \ Summit Ridge \ ZP - B0 \ 14nm case 0x00800F00: // CPU \ Zen \ Summit Ridge \ ZP - A0 \ 14nm cpuType = SMU.CPUType.SummitRidge; break; case 0x00800F80: // CPU \ Zen + \ Pinnacle Ridge \ Colfax 12nm cpuType = SMU.CPUType.PinnacleRidge; break; case 0x00810F80: // APU \ Zen + \ Picasso \ 12nm cpuType = SMU.CPUType.Picasso; break; case 0x00810F00: // APU \ Zen \ Raven Ridge \ RV - A0 \ 14nm case 0x00810F10: // APU \ Zen \ Raven Ridge \ 14nm case 0x00820F00: // APU \ Zen \ Raven Ridge 2 \ RV2 - A0 \ 14nm cpuType = SMU.CPUType.RavenRidge; break; case 0x00870F10: // CPU \ Zen2 \ Matisse \ MTS - B0 \ 7nm + 14nm I/ O Die case 0x00870F00: // CPU \ Zen2 \ Matisse \ MTS - A0 \ 7nm + 14nm I/ O Die cpuType = SMU.CPUType.Matisse; break; case 0x00830F00: case 0x00830F10: // CPU \ Epyc 2 \ Rome \ Treadripper 2 \ Castle Peak 7nm cpuType = SMU.CPUType.Rome; break; case 0x00850F00: cpuType = SMU.CPUType.Fenghuang; break; case 0x00850F10: // APU \ Renoir cpuType = SMU.CPUType.Renoir; break; default: cpuType = SMU.CPUType.Unsupported; #if DEBUG cpuType = SMU.CPUType.DEBUG; #endif break; } ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard"); foreach (ManagementObject obj in searcher.Get()) { SI.MbVendor = ((string)obj["Manufacturer"]).Trim(); SI.MbName = ((string)obj["Product"]).Trim(); } if (searcher != null) { searcher.Dispose(); } searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor"); foreach (ManagementObject obj in searcher.Get()) { var cpuName = (string)obj["Name"]; cpuName = cpuName.Replace("(R)", ""); cpuName = cpuName.Replace("(TM)", ""); cpuName = cpuName.Trim(); SI.CpuName = cpuName; } if (searcher != null) { searcher.Dispose(); } searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS"); foreach (ManagementObject obj in searcher.Get()) { SI.BiosVersion = ((string)obj["SMBIOSBIOSVersion"]).Trim(); } if (searcher != null) { searcher.Dispose(); } }