예제 #1
0
파일: SMU.cs 프로젝트: skyleve/ZenTimings
 public static SMU GetByType(SMU.CPUType type)
 {
     if (!settings.TryGetValue(type, out SMU output))
     {
         throw new NotImplementedException();
     }
     return(output);
 }
예제 #2
0
        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();
            }
        }