hocclk: peak emc bw and mem display unit option

also correct bw reading to keep it accurate
This commit is contained in:
souldbminersmwc
2026-04-11 20:56:35 -04:00
parent d2a46e1202
commit 037f011c9b
13 changed files with 199 additions and 44 deletions

View File

@@ -112,6 +112,7 @@ typedef enum
HocClkPartLoad_RamBWAll,
HocClkPartLoad_RamBWCpu,
HocClkPartLoad_RamBWGpu,
HocClkPartLoad_RamBWPeak,
HocClkPartLoad_EnumMax
} HocClkPartLoad;
@@ -167,6 +168,13 @@ typedef enum {
MemoryFrequencyMeasurementMode_EnumMax,
} MemoryFrequencyMeasurementMode;
typedef enum {
MemDisplayUnit_MHz = 0,
MemDisplayUnit_MTs,
MemDisplayUnit_Both,
MemDisplayUnit_EnumMax,
} MemDisplayUnit;
#define HOCCLK_ENUM_VALID(n, v) ((v) < n##_EnumMax)
// Packed u32

View File

@@ -29,7 +29,7 @@
#include <stdint.h>
#include <stddef.h>
#include "board.h"
typedef enum {
HocClkConfigValue_PollingIntervalMs = 0,
HocClkConfigValue_TempLogIntervalMs,
@@ -69,6 +69,7 @@ typedef enum {
HocClkConfigValue_DisplayVoltage,
HocClkConfigValue_MemoryFrequencyMeasurementMode,
HocClkConfigValue_MemDisplayUnit,
KipConfigValue_custRev,
// KipConfigValue_mtcConf,
@@ -262,6 +263,9 @@ static inline const char* hocclkFormatConfigValue(HocClkConfigValue val, bool pr
case HocClkConfigValue_MemoryFrequencyMeasurementMode:
return pretty ? "Memory Frequency Measurement Mode" : "mem_freq_measurement_mode";
case HocClkConfigValue_MemDisplayUnit:
return pretty ? "Memory Frequency Display Unit" : "mem_display_unit";
// KIP config values
case KipConfigValue_custRev:
return pretty ? "Custom Revision" : "kip_cust_rev";
@@ -443,6 +447,8 @@ static inline uint64_t hocclkDefaultConfigValue(HocClkConfigValue val)
case HocClkConfigValue_GPUSchedulingMethod:
case HocClkConfigValue_MemoryFrequencyMeasurementMode:
return 0ULL;
case HocClkConfigValue_MemDisplayUnit:
return (uint64_t)MemDisplayUnit_MHz;
case HocClkConfigValue_EristaMaxCpuClock:
return 1785ULL;
@@ -599,6 +605,7 @@ static inline uint64_t hocclkValidConfigValue(HocClkConfigValue val, uint64_t in
case HocClkConfigValue_RAMVoltDisplayMode:
case HocClkConfigValue_CpuGovernorMinimumFreq:
case HocClkConfigValue_MemoryFrequencyMeasurementMode:
case HocClkConfigValue_MemDisplayUnit:
return true;
case HocClkConfigValue_BatteryChargeCurrent:
return ((input >= 1024) && (input <= 3072)) || !input;