diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp index bac77101..98f25b1c 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp @@ -45,11 +45,11 @@ volatile CustomizeTable C = { .marikoCpuMaxVolt = 1185, -.marikoEmcMaxClock = 3000000, // Hynix NME and Samsung AM-MGCJ Rating (others are 4766MT, 2133MHz) +.marikoEmcMaxClock = 2933000, // Hynix NME and Samsung AM-MGCJ Rating (others are 4766MT, 2133MHz) .marikoEmcVddqVolt = 640000, -.marikoCpuUV = 0, // No undervolt +.marikoCpuUV = 8, // No undervolt .marikoGpuUV = 3, @@ -98,31 +98,30 @@ volatile CustomizeTable C = { // Ensure the voltages actually increase or stay the sameot .marikoGpuVoltArray = { - 610 /* 76 */, - 610 /* 153 */, - 610 /* 230 */, - 610 /* 307 */, - 610 /* 384 */, - 610 /* 460 */, - 610 /* 537 */, - 610 /* 614 */, - 610 /* 691 */, - 610 /* 768 */, - 620 /* 844 */, - 640 /* 921 */, - 675 /* 998 */, - 710 /* 1075 */, - 735 /* 1152 */, - 785 /* 1228 */, + 800 /* 76 */, + 800 /* 153 */, + 800 /* 230 */, + 800 /* 307 */, + 800 /* 384 */, + 800 /* 460 */, + 800 /* 537 */, + 800 /* 614 */, + 800 /* 691 */, + 800 /* 768 */, + 800 /* 844 */, + 800 /* 921 */, + 800 /* 998 */, + 800 /* 1075 */, + 800 /* 1152 */, + 800 /* 1228 */, 800 /* 1267 (Disabled by default) */, - 780 /* 1305 (Disabled by default) */, + 815 /* 1305 (Disabled by default) */, 960 /* 1344 (Disabled by default) */, 960 /* 1382 (Disabled by default) */, 960 /* 1420 (Disabled by default) */, 960 /* 1459 (Disabled by default) */, 0 /* 1497 (Disabled by default) */, 0 /* 1536 (Disabled by default) */, - }, .eristaGpuVoltArray = { @@ -235,7 +234,7 @@ volatile CustomizeTable C = { { 2703000, { 1857394, -37019, 113 }, { CPU_MAX_MAX_VOLT } }, { 2805000, { 1908891, -37707, 113 }, { CPU_MAX_MAX_VOLT } }, { 2907000, { 1960388, -38395, 113 }, { CPU_MAX_MAX_VOLT } }, - }, +}, /* - Erista GPU DVFS Table: */ diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/mariko/calculate_timings.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/mariko/calculate_timings.cpp index 6d0af09f..5d79fe63 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/mariko/calculate_timings.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/mariko/calculate_timings.cpp @@ -141,9 +141,6 @@ namespace ams::ldr::oc::pcv::mariko { void CalculateQpop() { qpop = FLOOR(((C.marikoEmcMaxClock / 1000.0) - 2133 + 167) / 200.0) + 0x2D + C.mem_burst_read_latency; - - if (C.marikoEmcMaxClock >= 3'100'000) qpop = 0x2B; /* TODO: Check if this is actually true. */ - else if (C.marikoEmcMaxClock >= 3'133'000) ++qpop; } void CalculatePdex2rw() { diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/mariko/timing_tables.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/mariko/timing_tables.cpp index 1fba3679..cfe132a0 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/mariko/timing_tables.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/mariko/timing_tables.cpp @@ -42,7 +42,7 @@ namespace ams::ldr::oc::pcv::mariko { {2'933'000, 0, 0x2E, 0xC, 0}, {2'966'000, 1, 0, 0, 0}, {3'033'000, 0, 0x2F, 0, 0}, - {3'100'000, 0, 0, 0, -2}, + {3'100'000, 0, 0, 0, 0}, {3'133'000, 1, 0x31, 0xD, 0}, }; @@ -133,8 +133,6 @@ namespace ams::ldr::oc::pcv::mariko { {2'733'000, -2}, {2'833'000, -9}, {2'933'000, -1}, - {3'100'000, -9}, - {3'133'000, -9}, }; const u32 g_ibdly_table_size = sizeof(g_ibdly_patches) / sizeof(g_ibdly_patches[0]); @@ -164,8 +162,8 @@ namespace ams::ldr::oc::pcv::mariko { {3'000'000, -2}, {3'033'000, -2}, {3'066'000, -2}, - {3'100'000, -4}, - {3'133'000, -4}, + {3'100'000, -2}, + {3'133'000, -2}, }; const u32 g_obdly_table_size = sizeof(g_obdly_patches) / sizeof(g_obdly_patches[0]); diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp index 7225093c..b6586254 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp @@ -89,7 +89,7 @@ namespace ams::ldr::oc::pcv::mariko { case 0: break; case 1: - PATCH_OFFSET(&(entry->tune0_low), 0x0000FF90); // process_id 0 // EOS UV1 + PATCH_OFFSET(&(entry->tune0_low), 0x0000FFA0); // process_id 0 // EOS UV1 PATCH_OFFSET(&(entry->tune0_high), 0x0000FFFF); PATCH_OFFSET(&(entry->tune1_low), 0x021107FF); PATCH_OFFSET(&(entry->tune1_high), 0x00000000); @@ -310,8 +310,8 @@ namespace ams::ldr::oc::pcv::mariko { WRITE_PARAM_ALL_REG(table, emc_qrst, qrst); WRITE_PARAM_ALL_REG(table, emc_qsafe, qsafe); WRITE_PARAM_ALL_REG(table, emc_tr_qpop, qpop); - WRITE_PARAM_ALL_REG(table, emc_rdv, rdv); WRITE_PARAM_ALL_REG(table, emc_qpop, qpop); + WRITE_PARAM_ALL_REG(table, emc_rdv, rdv); WRITE_PARAM_ALL_REG(table, emc_tr_rdv_mask, rdv + 2); WRITE_PARAM_ALL_REG(table, emc_rdv_early, rdv - 2); WRITE_PARAM_ALL_REG(table, emc_rdv_early_mask, rdv);