hoc: 133mhz step mode

This commit is contained in:
souldbminersmwc
2026-04-25 16:16:26 -04:00
parent 4dc01c024a
commit 4261dd83f0
6 changed files with 25 additions and 1 deletions

View File

@@ -40,7 +40,7 @@ volatile CustomizeTable C = {
.eristaEmcMaxClock1 = 1600000,
.eristaEmcMaxClock2 = 1600000,
/* Available: 66MHz step rate, 100MHz step rate and jedec. */
/* Available: 66MHz step rate, 100MHz step rate, 133MHz step rate and jedec. */
/* Jedec freqs are 1333MHz, 1600MHz, 1866MHz, 2133MHz, 2400MHz, 2666MHz, 2933MHz, 3200MHz. */
.stepMode = StepMode_66MHz,

View File

@@ -40,6 +40,7 @@ enum StepMode: u32 {
StepMode_66MHz = 0,
StepMode_100MHz = 1,
StepMode_Jedec = 2,
StepMode_133MHz = 3,
};
/*

View File

@@ -609,6 +609,25 @@ namespace ams::ldr::hoc::pcv::mariko {
newEmcList.resize(std::min(newEmcList.size(), DvfsTableEntryLimit));
}
void MtcGenerate133StepTable() {
const u32 StepFreqs133[] = { 1733000, 1866000, 2000000, 2133000, 2266000, 2400000, 2533000, 2666000, 2800000, 2933000, 3066000, 3200000, 3333000, 3466000, }; // Avoid rounding issues
constexpr u32 StepFreqs133Size = std::size(StepFreqs133);
for (u32 i = 0; i < StepFreqs133Size; ++i) {
if (StepFreqs133[i] <= C.marikoEmcMaxClock) {
newEmcList.push_back(StepFreqs133[i]);
} else {
break;
}
}
if (newEmcList.back() != C.marikoEmcMaxClock) {
newEmcList.push_back(static_cast<u32>(C.marikoEmcMaxClock));
}
newEmcList.resize(std::min(newEmcList.size(), DvfsTableEntryLimit));
}
void MtcGenerateFreqTables() {
if (C.marikoEmcMaxClock <= EmcClkOSLimit) {
return;
@@ -629,6 +648,9 @@ namespace ams::ldr::hoc::pcv::mariko {
case StepMode_Jedec:
MtcGenerateJedecTable();
return;
case StepMode_133MHz:
MtcGenerate133StepTable();
return;
default:
stepRate = 66667;
break;

View File

@@ -986,6 +986,7 @@ protected:
std::vector<NamedValue> stepMode = {
NamedValue("66MHz", 0),
NamedValue("100MHz", 1),
NamedValue("133MHz", 3), // Mantain compatability
NamedValue("JEDEC.", 2),
};

Binary file not shown.

Binary file not shown.