spi_flash: Move mspi clock source switch to 64M in 2nd bootloader code from rtc_clk.c to bootloader_flash_config_esp32h2.c

This commit is contained in:
Song Ruo Jing
2023-03-14 19:16:40 +08:00
parent 9813947f62
commit 5816c47457
2 changed files with 8 additions and 2 deletions

View File

@@ -27,6 +27,7 @@
#include "hal/mmu_hal.h" #include "hal/mmu_hal.h"
#include "hal/cache_hal.h" #include "hal/cache_hal.h"
#include "hal/mmu_ll.h" #include "hal/mmu_ll.h"
#include "soc/pcr_reg.h"
void bootloader_flash_update_id() void bootloader_flash_update_id()
{ {
@@ -81,6 +82,12 @@ void IRAM_ATTR bootloader_configure_spi_pins(int drv)
esp_rom_gpio_pad_set_drv(wp_gpio_num, drv); esp_rom_gpio_pad_set_drv(wp_gpio_num, drv);
} }
static void IRAM_ATTR bootloader_flash_clock_init(void)
{
// At this moment, BBPLL should be enabled, safe to switch MSPI clock source to PLL_F64M (default clock src) to raise speed
REG_SET_FIELD(PCR_MSPI_CONF_REG, PCR_MSPI_CLK_SEL, 2);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr) static void update_flash_config(const esp_image_header_t *bootloader_hdr)
{ {
uint32_t size; uint32_t size;
@@ -180,6 +187,7 @@ static void print_flash_info(const esp_image_header_t *bootloader_hdr)
static void IRAM_ATTR bootloader_init_flash_configure(void) static void IRAM_ATTR bootloader_init_flash_configure(void)
{ {
bootloader_flash_clock_init();
bootloader_configure_spi_pins(1); bootloader_configure_spi_pins(1);
bootloader_flash_cs_timing_config(); bootloader_flash_cs_timing_config();
} }

View File

@@ -18,7 +18,6 @@
#include "esp_rom_sys.h" #include "esp_rom_sys.h"
#include "hal/clk_tree_ll.h" #include "hal/clk_tree_ll.h"
#include "hal/regi2c_ctrl_ll.h" #include "hal/regi2c_ctrl_ll.h"
#include "hal/spimem_flash_ll.h"
#include "soc/io_mux_reg.h" #include "soc/io_mux_reg.h"
#include "soc/lp_aon_reg.h" #include "soc/lp_aon_reg.h"
#include "soc/lp_clkrst_reg.h" #include "soc/lp_clkrst_reg.h"
@@ -154,7 +153,6 @@ static void rtc_clk_bbpll_disable(void)
static void rtc_clk_bbpll_enable(void) static void rtc_clk_bbpll_enable(void)
{ {
clk_ll_bbpll_enable(); clk_ll_bbpll_enable();
spimem_flash_ll_set_clock_source(MSPI_CLK_SRC_PLL_F64M); // Switch clock to PLL at same time.
} }
static void rtc_clk_bbpll_configure(rtc_xtal_freq_t xtal_freq, int pll_freq) static void rtc_clk_bbpll_configure(rtc_xtal_freq_t xtal_freq, int pll_freq)