Added support for Intel Core M-5xxx (14nm) Broadwell CPUs (Fixed Issue 646).

This commit is contained in:
Michael Möller
2014-12-28 15:34:37 +00:00
parent fdc917d504
commit ce61b81e50
2 changed files with 16 additions and 8 deletions

View File

@@ -23,7 +23,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
Nehalem, Nehalem,
SandyBridge, SandyBridge,
IvyBridge, IvyBridge,
Haswell Haswell,
Broadwell
} }
private readonly Sensor[] coreTemperatures; private readonly Sensor[] coreTemperatures;
@@ -139,11 +140,15 @@ namespace OpenHardwareMonitor.Hardware.CPU {
case 0x3C: // Intel Core i5, i7 4xxx LGA1150 (22nm) case 0x3C: // Intel Core i5, i7 4xxx LGA1150 (22nm)
case 0x3F: // Intel Xeon E5-2600/1600 v3, Core i7-59xx case 0x3F: // Intel Xeon E5-2600/1600 v3, Core i7-59xx
// LGA2011-v3, Haswell-E (22nm) // LGA2011-v3, Haswell-E (22nm)
case 0x45: case 0x45: // Intel Core i5, i7 4xxxU (22nm)
case 0x46: case 0x46:
microarchitecture = Microarchitecture.Haswell; microarchitecture = Microarchitecture.Haswell;
tjMax = GetTjMaxFromMSR(); tjMax = GetTjMaxFromMSR();
break; break;
case 0x3D: // Intel Core M-5xxx (14nm)
microarchitecture = Microarchitecture.Broadwell;
tjMax = GetTjMaxFromMSR();
break;
default: default:
microarchitecture = Microarchitecture.Unknown; microarchitecture = Microarchitecture.Unknown;
tjMax = Floats(100); tjMax = Floats(100);
@@ -187,7 +192,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
case Microarchitecture.Nehalem: case Microarchitecture.Nehalem:
case Microarchitecture.SandyBridge: case Microarchitecture.SandyBridge:
case Microarchitecture.IvyBridge: case Microarchitecture.IvyBridge:
case Microarchitecture.Haswell: { case Microarchitecture.Haswell:
case Microarchitecture.Broadwell: {
uint eax, edx; uint eax, edx;
if (Ring0.Rdmsr(MSR_PLATFORM_INFO, out eax, out edx)) { if (Ring0.Rdmsr(MSR_PLATFORM_INFO, out eax, out edx)) {
timeStampCounterMultiplier = (eax >> 8) & 0xff; timeStampCounterMultiplier = (eax >> 8) & 0xff;
@@ -246,7 +252,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
if (microarchitecture == Microarchitecture.SandyBridge || if (microarchitecture == Microarchitecture.SandyBridge ||
microarchitecture == Microarchitecture.IvyBridge || microarchitecture == Microarchitecture.IvyBridge ||
microarchitecture == Microarchitecture.Haswell) microarchitecture == Microarchitecture.Haswell ||
microarchitecture == Microarchitecture.Broadwell)
{ {
powerSensors = new Sensor[energyStatusMSRs.Length]; powerSensors = new Sensor[energyStatusMSRs.Length];
lastEnergyTime = new DateTime[energyStatusMSRs.Length]; lastEnergyTime = new DateTime[energyStatusMSRs.Length];
@@ -353,7 +360,8 @@ namespace OpenHardwareMonitor.Hardware.CPU {
} break; } break;
case Microarchitecture.SandyBridge: case Microarchitecture.SandyBridge:
case Microarchitecture.IvyBridge: case Microarchitecture.IvyBridge:
case Microarchitecture.Haswell: { case Microarchitecture.Haswell:
case Microarchitecture.Broadwell: {
uint multiplier = (eax >> 8) & 0xff; uint multiplier = (eax >> 8) & 0xff;
coreClocks[i].Value = (float)(multiplier * newBusClock); coreClocks[i].Value = (float)(multiplier * newBusClock);
} break; } break;

View File

@@ -10,5 +10,5 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("0.6.0.12")] [assembly: AssemblyVersion("0.6.0.13")]
[assembly: AssemblyInformationalVersion("0.6.0.12 Alpha")] [assembly: AssemblyInformationalVersion("0.6.0.13 Alpha")]