hoc-clk: add reversenx sync

This commit is contained in:
souldbminersmwc
2025-10-02 15:08:06 -04:00
parent 923dc00b53
commit fde9a5b1a3
16 changed files with 221 additions and 4 deletions

View File

@@ -16,10 +16,18 @@
#include "config.h"
#include "board.h"
#include <nxExt/cpp/lockable_mutex.h>
#include "integrations.h"
class ReverseNXSync;
class ClockManager
{
public:
static ClockManager* GetInstance();
static void Initialize();
static void Exit();
ClockManager();
virtual ~ClockManager();
@@ -30,6 +38,7 @@ class ClockManager
void GetFreqList(SysClkModule module, std::uint32_t* list, std::uint32_t maxCount, std::uint32_t* outCount);
void Tick();
void WaitForNextTick();
void SetRNXRTMode(ReverseNXMode mode);
protected:
bool IsAssignableHz(SysClkModule module, std::uint32_t hz);
@@ -39,6 +48,8 @@ class ClockManager
void RefreshFreqTableRow(SysClkModule module);
bool RefreshContext();
static ClockManager *instance;
std::atomic_bool running;
LockableMutex contextMutex;
struct {
@@ -51,4 +62,5 @@ class ClockManager
std::uint64_t lastFreqLogNs;
std::uint64_t lastPowerLogNs;
std::uint64_t lastCsvWriteNs;
ReverseNXSync *rnxSync;
};