Add support for AMD Ryzen 5000 processors (#328)
* Add bare-minimum support for family 0x19 * Treat Zen 3 like Zen 2 in most-cases * Remove mistakenly added whitespace
This commit is contained in:
@@ -164,7 +164,7 @@ namespace LibreHardwareMonitor.Hardware.CPU
|
||||
Ring0.WritePciConfig(0x00, FAMILY_17H_PCI_CONTROL_REGISTER, F17H_M01H_SVI + 0x8);
|
||||
Ring0.ReadPciConfig(0x00, FAMILY_17H_PCI_CONTROL_REGISTER + 4, out smuSvi0Tfn);
|
||||
|
||||
bool isZen2 = false;
|
||||
bool supportsPerCCDTemperatures = false;
|
||||
|
||||
// TODO: find a better way because these will probably keep changing in the future.
|
||||
|
||||
@@ -176,14 +176,15 @@ namespace LibreHardwareMonitor.Hardware.CPU
|
||||
{
|
||||
sviPlane0Offset = F17H_M01H_SVI + 0x14;
|
||||
sviPlane1Offset = F17H_M01H_SVI + 0x10;
|
||||
isZen2 = true;
|
||||
supportsPerCCDTemperatures = true;
|
||||
break;
|
||||
}
|
||||
case 0x71: // Zen 2.
|
||||
case 0x21: // Zen 3.
|
||||
{
|
||||
sviPlane0Offset = F17H_M01H_SVI + 0x10;
|
||||
sviPlane1Offset = F17H_M01H_SVI + 0xC;
|
||||
isZen2 = true;
|
||||
supportsPerCCDTemperatures = true;
|
||||
break;
|
||||
}
|
||||
default: // Zen and Zen+.
|
||||
@@ -270,7 +271,7 @@ namespace LibreHardwareMonitor.Hardware.CPU
|
||||
}
|
||||
|
||||
// Tested only on R5 3600 & Threadripper 3960X.
|
||||
if (isZen2)
|
||||
if (supportsPerCCDTemperatures)
|
||||
{
|
||||
for (uint i = 0; i < _ccdTemperatures.Length; i++)
|
||||
{
|
||||
@@ -339,7 +340,7 @@ namespace LibreHardwareMonitor.Hardware.CPU
|
||||
}
|
||||
|
||||
// SoC (0x02), not every Zen cpu has this voltage.
|
||||
if (cpu.Model == 0x71 || cpu.Model == 0x31 || (smuSvi0Tfn & 0x02) == 0)
|
||||
if (cpu.Model == 0x21 || cpu.Model == 0x71 || cpu.Model == 0x31 || (smuSvi0Tfn & 0x02) == 0)
|
||||
{
|
||||
svi0PlaneXVddCor = (smuSvi0TelPlane1 >> 16) & 0xff;
|
||||
vcc = 1.550 - vidStep * svi0PlaneXVddCor;
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace LibreHardwareMonitor.Hardware.CPU
|
||||
_hardware.Add(new Amd10Cpu(index, coreThreads, settings));
|
||||
break;
|
||||
case 0x17:
|
||||
case 0x19:
|
||||
_hardware.Add(new Amd17Cpu(index, coreThreads, settings));
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -168,7 +168,7 @@ namespace LibreHardwareMonitor.Hardware.CPU
|
||||
threadMaskWith = 0;
|
||||
coreMaskWith = NextLog2(corePerPackage);
|
||||
|
||||
if (Family == 0x17)
|
||||
if (Family == 0x17 || Family == 0x19)
|
||||
{
|
||||
// ApicIdCoreIdSize: APIC ID size.
|
||||
// cores per DIE
|
||||
|
||||
Reference in New Issue
Block a user