Merge branch 'develop' of https://github.com/Horizon-OC/Horizon-OC into develop
This commit is contained in:
@@ -97,6 +97,8 @@ namespace ams::ldr::oc::pcv
|
|||||||
constexpr u32 GpuClkPllMax = 1300'000'000;
|
constexpr u32 GpuClkPllMax = 1300'000'000;
|
||||||
constexpr u32 GpuClkPllLimit = 2'600'000;
|
constexpr u32 GpuClkPllLimit = 2'600'000;
|
||||||
|
|
||||||
|
constexpr u32 CpuVminOfficial = 620;
|
||||||
|
|
||||||
/* GPU Max Clock asm Pattern:
|
/* GPU Max Clock asm Pattern:
|
||||||
*
|
*
|
||||||
* MOV W11, #0x1000 MOV (wide immediate) 0x1000 0xB (11)
|
* MOV W11, #0x1000 MOV (wide immediate) 0x1000 0xB (11)
|
||||||
|
|||||||
@@ -55,27 +55,20 @@ namespace ams::ldr::oc::pcv::mariko {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result CpuVoltRange(u32 *ptr) {
|
Result CpuVoltRange(u32 *ptr) {
|
||||||
u32 min_volt_got = *(ptr - 1);
|
if(!C.marikoCpuHighVmin && !C.marikoCpuLowVmin)
|
||||||
for (const auto &mv : CpuMinVolts) {
|
R_SKIP();
|
||||||
if (min_volt_got != mv)
|
PATCH_OFFSET((ptr - 5), C.marikoCpuHighVmin); // hf vmin
|
||||||
continue;
|
PATCH_OFFSET((ptr - 1), C.marikoCpuLowVmin); // lf vmin
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
if (!C.marikoCpuMaxVolt)
|
Result CpuVmax(u32 *ptr) {
|
||||||
R_SKIP();
|
if (!C.marikoCpuMaxVolt)
|
||||||
|
R_SKIP();
|
||||||
|
|
||||||
PATCH_OFFSET(ptr, C.marikoCpuMaxVolt);
|
PATCH_OFFSET(ptr, C.marikoCpuMaxVolt);
|
||||||
// Patch vmin for slt
|
|
||||||
if (C.marikoCpuUV) {
|
R_SUCCEED();
|
||||||
if (*(ptr - 5) == 620) {
|
|
||||||
PATCH_OFFSET((ptr - 5), C.marikoCpuLowVmin); // hf vmin
|
|
||||||
}
|
|
||||||
if (*(ptr - 1) == 620) {
|
|
||||||
PATCH_OFFSET((ptr - 1), C.marikoCpuHighVmin); // lf vmin
|
|
||||||
}
|
|
||||||
}
|
|
||||||
R_SUCCEED();
|
|
||||||
}
|
|
||||||
R_THROW(ldr::ResultInvalidCpuMinVolt());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Result CpuVoltDfll(u32 *ptr) {
|
Result CpuVoltDfll(u32 *ptr) {
|
||||||
@@ -846,7 +839,8 @@ namespace ams::ldr::oc::pcv::mariko {
|
|||||||
PatcherEntry<u32> patches[] = {
|
PatcherEntry<u32> patches[] = {
|
||||||
{"CPU Freq Vdd", &CpuFreqVdd, 1, nullptr, CpuClkOSLimit},
|
{"CPU Freq Vdd", &CpuFreqVdd, 1, nullptr, CpuClkOSLimit},
|
||||||
{"CPU Freq Table", CpuFreqCvbTable<true>, 1, nullptr, CpuCvbDefaultMaxFreq},
|
{"CPU Freq Table", CpuFreqCvbTable<true>, 1, nullptr, CpuCvbDefaultMaxFreq},
|
||||||
{"CPU Volt Limit", &CpuVoltRange, 13, nullptr, CpuVoltOfficial},
|
{"CPU Volt Range", &CpuVoltRange, 1, nullptr, CpuVminOfficial},
|
||||||
|
{"CPU Volt Limit", &CpuVmax, 13, nullptr, CpuVoltOfficial},
|
||||||
{"CPU Volt Dfll", &CpuVoltDfll, 1, nullptr, 0x0000FFCF},
|
{"CPU Volt Dfll", &CpuVoltDfll, 1, nullptr, 0x0000FFCF},
|
||||||
{"GPU Freq Table", GpuFreqCvbTable<true>, 1, nullptr, GpuCvbDefaultMaxFreq},
|
{"GPU Freq Table", GpuFreqCvbTable<true>, 1, nullptr, GpuCvbDefaultMaxFreq},
|
||||||
{"GPU Freq Asm", &GpuFreqMaxAsm, 2, &GpuMaxClockPatternFn},
|
{"GPU Freq Asm", &GpuFreqMaxAsm, 2, &GpuMaxClockPatternFn},
|
||||||
|
|||||||
Reference in New Issue
Block a user