diff --git a/bootloader/hos/hos.c b/bootloader/hos/hos.c index ca30a5b..04e7781 100644 --- a/bootloader/hos/hos.c +++ b/bootloader/hos/hos.c @@ -745,7 +745,7 @@ int hos_launch(ini_sec_t *cfg) // Flush cache and disable MMU. bpmp_mmu_disable(); bpmp_clk_rate_set(BPMP_CLK_NORMAL); - minerva_change_freq(FREQ_800); + minerva_change_freq(FREQ_1600); // emuMMC: Some cards (Sandisk U1), do not like a fast power cycle. Wait min 100ms. sdmmc_storage_init_wait_sd(); diff --git a/bootloader/main.c b/bootloader/main.c index 54ec942..9d8a880 100644 --- a/bootloader/main.c +++ b/bootloader/main.c @@ -1265,7 +1265,6 @@ void ipl_main() // Train DRAM and switch to max frequency. minerva_init(); - minerva_change_freq(FREQ_1600); display_init(); diff --git a/nyx/nyx_gui/mem/minerva.c b/nyx/nyx_gui/mem/minerva.c index 2992d7c..06db131 100644 --- a/nyx/nyx_gui/mem/minerva.c +++ b/nyx/nyx_gui/mem/minerva.c @@ -80,6 +80,15 @@ void minerva_init() minerva_cfg(mtc_cfg, NULL); mtc_cfg->rate_to = 1600000; minerva_cfg(mtc_cfg, NULL); + + // FSP WAR. + mtc_cfg->train_mode = OP_SWITCH; + mtc_cfg->rate_to = 800000; + minerva_cfg(mtc_cfg, NULL); + + // Switch to max. + mtc_cfg->rate_to = 1600000; + minerva_cfg(mtc_cfg, NULL); } void minerva_change_freq(minerva_freq_t freq) @@ -102,7 +111,7 @@ void minerva_periodic_training() return; mtc_config_t *mtc_cfg = (mtc_config_t *)&nyx_str->mtc_cfg; - if (minerva_cfg && mtc_cfg->rate_from == FREQ_1600) + if (mtc_cfg->rate_from == FREQ_1600) { mtc_cfg->train_mode = OP_PERIODIC_TRAIN; minerva_cfg(mtc_cfg, NULL); diff --git a/nyx/nyx_gui/nyx.c b/nyx/nyx_gui/nyx.c index a71121e..4b2ba69 100644 --- a/nyx/nyx_gui/nyx.c +++ b/nyx/nyx_gui/nyx.c @@ -374,8 +374,8 @@ void nyx_init_load_res() sd_mount(); + // Train DRAM and switch to max frequency. minerva_init(); - minerva_change_freq(FREQ_1600); load_saved_configuration();