From d59d37bbcdf0123dcae2b9b9aa1d98999af94645 Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Fri, 3 Oct 2025 18:17:48 -0400 Subject: [PATCH] loader: hopefully fix 2500mhz bug --- .../loader/source/oc/pcv/pcv_mariko.cpp | 12 ++++++------ dist/atmosphere/kips/hoc.kip | Bin 270796 -> 270540 bytes 2 files changed, 6 insertions(+), 6 deletions(-) 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 5497911c..51029ff8 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp @@ -324,18 +324,18 @@ namespace ams::ldr::oc::pcv::mariko constexpr u32 MC_ARB_DIV = 4; constexpr u32 MC_ARB_SFA = 2; - // WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_cfg, C.marikoEmcMaxClock / (33.3 * 1000) / MC_ARB_DIV); //CYCLES_PER_UPDATE: The number of mcclk cycles per deadline timer update + WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_cfg, C.marikoEmcMaxClock / (33.3 * 1000) / MC_ARB_DIV); //CYCLES_PER_UPDATE: The number of mcclk cycles per deadline timer update WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rcd, CEIL(GET_CYCLE_CEIL(tRCD) / MC_ARB_DIV) - 2) WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rp, CEIL(GET_CYCLE_CEIL(tRPpb) / MC_ARB_DIV) - 1 + MC_ARB_SFA) WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rc, CEIL(GET_CYCLE_CEIL(tRC) / MC_ARB_DIV) - 1) WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_ras, CEIL(GET_CYCLE_CEIL(tRAS) / MC_ARB_DIV) - 2) WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_faw, CEIL(GET_CYCLE_CEIL(tFAW) / MC_ARB_DIV) - 1) WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rrd, CEIL(GET_CYCLE_CEIL(tRRD) / MC_ARB_DIV) - 1) - // WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rap2pre, CEIL(GET_CYCLE_CEIL(tRTP) / MC_ARB_DIV)) - // WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_wap2pre, CEIL((WTP) / MC_ARB_DIV)) - // WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_r2r, CEIL(table->burst_regs.emc_rext / MC_ARB_DIV) - 1 + MC_ARB_SFA) - // WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_r2w, CEIL((R2W) / MC_ARB_DIV) - 1 + MC_ARB_SFA) - // WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_w2r, CEIL((W2R) / MC_ARB_DIV) - 1 + MC_ARB_SFA) + WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rap2pre, CEIL(GET_CYCLE_CEIL(tRTP) / MC_ARB_DIV)) + WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_wap2pre, CEIL((WTP) / MC_ARB_DIV)) + WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_r2r, CEIL(table->burst_regs.emc_rext / MC_ARB_DIV) - 1 + MC_ARB_SFA) + WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_r2w, CEIL((R2W) / MC_ARB_DIV) - 1 + MC_ARB_SFA) + WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_w2r, CEIL((W2R) / MC_ARB_DIV) - 1 + MC_ARB_SFA) WRITE_PARAM_BURST_MC_REG(table, mc_emem_arb_timing_rfcpb, CEIL(GET_CYCLE_CEIL(tRFCpb) / MC_ARB_DIV)) } diff --git a/dist/atmosphere/kips/hoc.kip b/dist/atmosphere/kips/hoc.kip index c7955fb4d7752fdd559fc2e176e0925fa721b3e5..261bdeb2b9d15532d8e6aa6faa0cc4dbe2982bd5 100644 GIT binary patch delta 12988 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 delta 13273 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