diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/mtc_timing_value.hpp b/Source/Atmosphere/stratosphere/loader/source/oc/mtc_timing_value.hpp index 5d9aeef6..39c6b767 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/mtc_timing_value.hpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/mtc_timing_value.hpp @@ -13,15 +13,15 @@ namespace ams::ldr::oc { const std::array tRP_values = {18, 17, 16, 15, 14, 13}; const std::array tRAS_values = {42, 39, 36, 34, 32, 30}; - const std::array tRRD_values = {10, 7.5, 6, 4, 2}; - const std::array tFAW_values = {40, 30, 24, 16, 8}; + const std::array tRRD_values = {10, 7.5, 6, 4, 3}; + const std::array tFAW_values = {40, 30, 24, 16, 12}; const std::array tWR_values = {18, 15, 15, 12, 12, 8}; const std::array tRTP_values = {7.5, 7.5, 6, 6, 4, 4}; const std::array tRFC_values = {140, 120, 100, 80, 60}; - const std::array tWTR_values = {10, 8, 6, 4, 2}; + const std::array tWTR_values = {10, 8, 6, 4, 2, 1}; const std::array tREFpb_values = {488, 976, 1952, 3256, 9999}; @@ -38,8 +38,8 @@ namespace ams::ldr::oc { // tCK_avg (average clock period) in ns const double tCK_avg = 1000'000. / C.marikoEmcMaxClock; - const u32 WL = !TIMING_PRESET_SEVEN ? (C.marikoEmcMaxClock <= 2131200 ? 10 : 12) : tWL_values[TIMING_PRESET_SEVEN-1]; //? - const u32 RL = !TIMING_PRESET_SEVEN ? (C.marikoEmcMaxClock <= 2131200 ? 20 : 24) : WL*2; //? + const u32 WL = !TIMING_PRESET_SEVEN ? (C.marikoEmcMaxClock <= 2131200 ? 12 : 14) : tWL_values[TIMING_PRESET_SEVEN-1]; //? + const u32 RL = !TIMING_PRESET_SEVEN ? (C.marikoEmcMaxClock <= 2131200 ? 24 : 28) : WL*2; //? const u32 BL = 16; // tRFCpb (refresh cycle time per bank) in ns for 8Gb density @@ -131,4 +131,7 @@ namespace ams::ldr::oc { const u32 tFAW = !TIMING_PRESET_TWO ? 40 : tFAW_values[TIMING_PRESET_TWO-1]; // Valid Clock requirement before CKE Input HIGH in ns const double tCKCKEH = MAX(1.75, 3*tCK_avg); + const double tDQSQ = 0.18; + // p78 The first valid data is available RL × t CK + t DQSCK + t DQSQ + const u32 QUSE = RL + CEIL(tDQSCK_min/tCK_avg + tDQSQ); } diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_erista.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_erista.cpp index 5e81b06f..7250455e 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_erista.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_erista.cpp @@ -130,8 +130,6 @@ void MemMtcTableCustomAdjust(EristaMtcTable* table) { if (TIMING_PRESET_THREE) { WRITE_PARAM_ALL_REG(table, emc_r2p, GET_CYCLE_CEIL(tRTP)); WRITE_PARAM_ALL_REG(table, emc_w2p, WTP); - WRITE_PARAM_ALL_REG(table, emc_tratm, RATM); - WRITE_PARAM_ALL_REG(table, emc_twatm, WATM); WRITE_PARAM_ALL_REG(table, emc_rw2pden, WTPDEN); table->burst_mc_regs.mc_emem_arb_timing_rap2pre = CEIL(GET_CYCLE_CEIL(tRTP) / MC_ARB_DIV); @@ -163,10 +161,6 @@ void MemMtcTableCustomAdjust(EristaMtcTable* table) { WRITE_PARAM_ALL_REG(table, emc_w2p, WTP); WRITE_PARAM_ALL_REG(table, emc_rw2pden, WTPDEN); WRITE_PARAM_ALL_REG(table, emc_r2w, R2W); - WRITE_PARAM_ALL_REG(table, emc_trtm, RTM); - WRITE_PARAM_ALL_REG(table, emc_twtm, WTM); - WRITE_PARAM_ALL_REG(table, emc_tratm, RATM); - WRITE_PARAM_ALL_REG(table, emc_twatm, WATM); table->burst_mc_regs.mc_emem_arb_timing_wap2pre = CEIL(WTP / MC_ARB_DIV); table->burst_mc_regs.mc_emem_arb_timing_r2w = CEIL(R2W / MC_ARB_DIV) - 1 + SFA; 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 45ff402f..e6a4a3f8 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp @@ -101,7 +101,7 @@ void MemMtcTableAutoAdjust(MarikoMtcTable* table, const MarikoMtcTable* ref) { * you'd better calculate timings yourself rather than relying on following algorithm. */ - if (C.mtcConf != AUTO_ADJ_SAFE_ALL) + if (C.mtcConf != AUTO_ADJ_ALL) return; #define ADJUST_PROP(TARGET, REF) \ diff --git a/pages/src/main.ts b/pages/src/main.ts index f5625f93..892bcaa6 100644 --- a/pages/src/main.ts +++ b/pages/src/main.ts @@ -356,12 +356,13 @@ var AdvTable: Array = [ "Values are : tWTR", "0 : Do Not Adjust (2400Mhz: ??) (CUST_ADJ only)", "1 : 10 (Default timing)", - "2 : 9", - "3 : 8", - "4 : 7", - "5 : 6",], + "2 : 8", + "3 : 6", + "4 : 4", + "5 : 2", + "6 : 1",], 1, - [0,5], + [0,6], 1, ), new AdvEntry(