mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 19:31:12 +00:00
minerva: Scale down RAM OC if stock boot
This commit is contained in:
parent
c01b8aa89c
commit
d42a94f148
3 changed files with 27 additions and 5 deletions
|
@ -104,21 +104,21 @@ u32 minerva_init()
|
||||||
}
|
}
|
||||||
|
|
||||||
mtc_cfg->rate_from = mtc_cfg->mtc_table[curr_ram_idx].rate_khz;
|
mtc_cfg->rate_from = mtc_cfg->mtc_table[curr_ram_idx].rate_khz;
|
||||||
mtc_cfg->rate_to = 204000;
|
mtc_cfg->rate_to = FREQ_204;
|
||||||
mtc_cfg->train_mode = OP_TRAIN;
|
mtc_cfg->train_mode = OP_TRAIN;
|
||||||
minerva_cfg(mtc_cfg, NULL);
|
minerva_cfg(mtc_cfg, NULL);
|
||||||
mtc_cfg->rate_to = 800000;
|
mtc_cfg->rate_to = FREQ_800;
|
||||||
minerva_cfg(mtc_cfg, NULL);
|
minerva_cfg(mtc_cfg, NULL);
|
||||||
mtc_cfg->rate_to = 1600000;
|
mtc_cfg->rate_to = FREQ_1600;
|
||||||
minerva_cfg(mtc_cfg, NULL);
|
minerva_cfg(mtc_cfg, NULL);
|
||||||
|
|
||||||
// FSP WAR.
|
// FSP WAR.
|
||||||
mtc_cfg->train_mode = OP_SWITCH;
|
mtc_cfg->train_mode = OP_SWITCH;
|
||||||
mtc_cfg->rate_to = 800000;
|
mtc_cfg->rate_to = FREQ_800;
|
||||||
minerva_cfg(mtc_cfg, NULL);
|
minerva_cfg(mtc_cfg, NULL);
|
||||||
|
|
||||||
// Switch to max.
|
// Switch to max.
|
||||||
mtc_cfg->rate_to = 1600000;
|
mtc_cfg->rate_to = FREQ_1600;
|
||||||
minerva_cfg(mtc_cfg, NULL);
|
minerva_cfg(mtc_cfg, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -139,6 +139,23 @@ void minerva_change_freq(minerva_freq_t freq)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void minerva_prep_boot_freq()
|
||||||
|
{
|
||||||
|
if (!minerva_cfg)
|
||||||
|
return;
|
||||||
|
|
||||||
|
mtc_config_t *mtc_cfg = (mtc_config_t *)&nyx_str->mtc_cfg;
|
||||||
|
|
||||||
|
// Check if there's RAM OC. If not exit.
|
||||||
|
if (mtc_cfg->mtc_table[mtc_cfg->table_entries - 1].rate_khz == FREQ_1600)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// FSP WAR.
|
||||||
|
minerva_change_freq(FREQ_204);
|
||||||
|
// Scale down to 800 MHz boot freq.
|
||||||
|
minerva_change_freq(FREQ_800);
|
||||||
|
}
|
||||||
|
|
||||||
void minerva_periodic_training()
|
void minerva_periodic_training()
|
||||||
{
|
{
|
||||||
if (!minerva_cfg)
|
if (!minerva_cfg)
|
||||||
|
|
|
@ -60,6 +60,7 @@ typedef enum
|
||||||
extern void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *);
|
extern void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *);
|
||||||
u32 minerva_init();
|
u32 minerva_init();
|
||||||
void minerva_change_freq(minerva_freq_t freq);
|
void minerva_change_freq(minerva_freq_t freq);
|
||||||
|
void minerva_prep_boot_freq();
|
||||||
void minerva_periodic_training();
|
void minerva_periodic_training();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1140,6 +1140,10 @@ int hos_launch(ini_sec_t *cfg)
|
||||||
bpmp_mmu_disable();
|
bpmp_mmu_disable();
|
||||||
bpmp_clk_rate_set(BPMP_CLK_NORMAL);
|
bpmp_clk_rate_set(BPMP_CLK_NORMAL);
|
||||||
|
|
||||||
|
// Scale down RAM OC if enabled.
|
||||||
|
if (ctxt.stock)
|
||||||
|
minerva_prep_boot_freq();
|
||||||
|
|
||||||
// emuMMC: Some cards (Sandisk U1), do not like a fast power cycle. Wait min 100ms.
|
// emuMMC: Some cards (Sandisk U1), do not like a fast power cycle. Wait min 100ms.
|
||||||
sdmmc_storage_init_wait_sd();
|
sdmmc_storage_init_wait_sd();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue