From 072b353b45b8fcb65095dd93994f117398b1f4bc Mon Sep 17 00:00:00 2001 From: Liu Zhi Fu Date: Mon, 19 Mar 2018 16:09:52 +0800 Subject: [PATCH] bootloader: force SDIO 1.9V if flash is 80M If the SPI flash frequency is 80M, the voltage of SDIO is 1.9V, otherwise, it can configured to 1.8V or 1.9V via menuconfig. --- components/bootloader/Kconfig.projbuild | 13 ++++++++++--- .../bootloader/subproject/main/bootloader_start.c | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/components/bootloader/Kconfig.projbuild b/components/bootloader/Kconfig.projbuild index 3680a478a9..18989dc089 100644 --- a/components/bootloader/Kconfig.projbuild +++ b/components/bootloader/Kconfig.projbuild @@ -43,9 +43,9 @@ 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 1.8V LDO voltage to 1.9V" - default y +choice BOOTLOADER_VDDSDIO_BOOST + bool "VDDSDIO LDO voltage" + default BOOTLOADER_VDDSDIO_BOOST_1_9V 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 @@ -55,6 +55,13 @@ config BOOTLOADER_VDDSDIO_BOOST This option has no effect if VDDSDIO is set to 3.3V, or if the internal VDDSDIO regulator is disabled via efuse. +config BOOTLOADER_VDDSDIO_BOOST_1_8V + bool "1.8V" + depends on !ESPTOOLPY_FLASHFREQ_80M +config BOOTLOADER_VDDSDIO_BOOST_1_9V + bool "1.9V" +endchoice + endmenu # Bootloader diff --git a/components/bootloader/subproject/main/bootloader_start.c b/components/bootloader/subproject/main/bootloader_start.c index 56839e2f86..7c70ac964d 100644 --- a/components/bootloader/subproject/main/bootloader_start.c +++ b/components/bootloader/subproject/main/bootloader_start.c @@ -743,7 +743,7 @@ static void print_flash_info(const esp_image_header_t* phdr) static void vddsdio_configure() { -#if CONFIG_BOOTLOADER_VDDSDIO_BOOST +#if CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V rtc_vddsdio_config_t cfg = rtc_vddsdio_get_config(); if (cfg.enable == 1 && cfg.tieh == 0) { // VDDSDIO regulator is enabled @ 1.8V cfg.drefh = 3;