diff --git a/components/bootloader/Kconfig.projbuild b/components/bootloader/Kconfig.projbuild index c618085913..3680a478a9 100644 --- a/components/bootloader/Kconfig.projbuild +++ b/components/bootloader/Kconfig.projbuild @@ -44,14 +44,16 @@ config BOOTLOADER_SPI_WP_PIN The default value (GPIO 7) is correct for WP pin on ESP32-D2WD integrated flash. config BOOTLOADER_VDDSDIO_BOOST - bool "Increase VDDSDIO LDO voltage to 1.9V" + bool "Increase VDDSDIO 1.8V LDO voltage to 1.9V" default y help If this option is enabled, and VDDSDIO LDO is set to 1.8V (using EFUSE or MTDI bootstrapping pin), bootloader will change LDO settings to output 1.9V instead. This helps prevent flash chip from browning out during flash programming operations. - For 3.3V flash, this option has no effect. + + This option has no effect if VDDSDIO is set to 3.3V, or if the internal + VDDSDIO regulator is disabled via efuse. endmenu # Bootloader diff --git a/components/bootloader/subproject/main/bootloader_start.c b/components/bootloader/subproject/main/bootloader_start.c index 2a130d1d3a..99fb398fbe 100644 --- a/components/bootloader/subproject/main/bootloader_start.c +++ b/components/bootloader/subproject/main/bootloader_start.c @@ -745,12 +745,11 @@ static void vddsdio_configure() { #if CONFIG_BOOTLOADER_VDDSDIO_BOOST rtc_vddsdio_config_t cfg = rtc_vddsdio_get_config(); - if (cfg.tieh == 0) { // 1.8V is used + if (cfg.enable == 1 && cfg.tieh == 0) { // VDDSDIO regulator is enabled @ 1.8V cfg.drefh = 3; cfg.drefm = 3; cfg.drefl = 3; cfg.force = 1; - cfg.enable = 1; rtc_vddsdio_set_config(cfg); ets_delay_us(10); // wait for regulator to become stable }