This is an automated email from the ASF dual-hosted git repository.

lupyuen pushed a commit to branch releases/12.9
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/releases/12.9 by this push:
     new 7c95e3c613 espressif: Simplify the selection of the SPI flash frequency
7c95e3c613 is described below

commit 7c95e3c613820adf9802ba2fea0806333c02a553
Author: Tiago Medicci Serrano <tiago.medi...@espressif.com>
AuthorDate: Wed Apr 2 17:19:18 2025 -0300

    espressif: Simplify the selection of the SPI flash frequency
    
    This commit simplifies the selection of the SPI flash frequency for
    Espressif SoCs by using a standardized Kconfig-defined macro.
    
    Signed-off-by: Tiago Medicci Serrano <tiago.medi...@espressif.com>
---
 arch/risc-v/src/common/espressif/Bootloader.mk |  1 +
 arch/risc-v/src/common/espressif/Kconfig       | 18 ++++++++++++++
 arch/xtensa/src/common/espressif/Kconfig       | 33 +++++++++++++++++++++++++-
 arch/xtensa/src/esp32/Bootloader.mk            |  1 +
 arch/xtensa/src/esp32s2/Bootloader.mk          |  1 +
 arch/xtensa/src/esp32s3/Bootloader.mk          |  1 +
 tools/esp32/Config.mk                          | 10 +-------
 tools/esp32s2/Config.mk                        | 10 +-------
 tools/esp32s3/Config.mk                        | 10 +-------
 tools/espressif/Config.mk                      | 14 +----------
 tools/espressif/build_mcuboot.sh               |  2 +-
 11 files changed, 59 insertions(+), 42 deletions(-)

diff --git a/arch/risc-v/src/common/espressif/Bootloader.mk 
b/arch/risc-v/src/common/espressif/Bootloader.mk
index e14d627ba7..e46f723536 100644
--- a/arch/risc-v/src/common/espressif/Bootloader.mk
+++ b/arch/risc-v/src/common/espressif/Bootloader.mk
@@ -62,6 +62,7 @@ $(BOOTLOADER_CONFIG): $(TOPDIR)/.config $(BOOTLOADER_SRCDIR)
                $(if $(CONFIG_ESPRESSIF_FLASH_FREQ_40M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_40M)) \
                $(if $(CONFIG_ESPRESSIF_FLASH_FREQ_26M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_26M)) \
                $(if $(CONFIG_ESPRESSIF_FLASH_FREQ_20M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_20M)) \
+               $(call 
cfg_val,CONFIG_ESPTOOLPY_FLASHFREQ,$(CONFIG_ESPRESSIF_FLASH_FREQ)) \
        } > $(BOOTLOADER_CONFIG)
 ifeq ($(CONFIG_ESPRESSIF_BOOTLOADER_MCUBOOT),y)
        $(Q) { \
diff --git a/arch/risc-v/src/common/espressif/Kconfig 
b/arch/risc-v/src/common/espressif/Kconfig
index ea6e872f57..45b94ece08 100644
--- a/arch/risc-v/src/common/espressif/Kconfig
+++ b/arch/risc-v/src/common/espressif/Kconfig
@@ -1488,6 +1488,24 @@ config ESPRESSIF_FLASH_FREQ_20M
 
 endchoice # ESPRESSIF_FLASH_FREQ
 
+config ESPRESSIF_FLASH_FREQ
+       string
+       # On some of the ESP chips, max boot frequency would be equal to (or 
even lower than) 80m.
+       # We currently define this to `80m`.
+       default '80m' if ESPRESSIF_FLASH_FREQ_120M
+       default '80m' if ESPRESSIF_FLASH_FREQ_80M
+       default '60m' if ESPRESSIF_FLASH_FREQ_60M
+       default '48m' if ESPRESSIF_FLASH_FREQ_64M
+       default '48m' if ESPRESSIF_FLASH_FREQ_48M
+       default '24m' if ESPRESSIF_FLASH_FREQ_32M
+       default '30m' if ESPRESSIF_FLASH_FREQ_30M
+       default '24m' if ESPRESSIF_FLASH_FREQ_24M
+       default '40m' if ESPRESSIF_FLASH_FREQ_40M
+       default '26m' if ESPRESSIF_FLASH_FREQ_26M
+       default '20m' if ESPRESSIF_FLASH_FREQ_20M
+       default '12m' if ESPRESSIF_FLASH_FREQ_16M
+       default '20m' # if no clock can match in bin headers, go with minimal.
+
 config ESPRESSIF_SPI_FLASH_USE_ROM_CODE
        bool "Use SPI flash driver in ROM"
        default n
diff --git a/arch/xtensa/src/common/espressif/Kconfig 
b/arch/xtensa/src/common/espressif/Kconfig
index 88f71c879b..8652134582 100644
--- a/arch/xtensa/src/common/espressif/Kconfig
+++ b/arch/xtensa/src/common/espressif/Kconfig
@@ -433,24 +433,55 @@ endchoice # ESPRESSIF_FLASH_MODE
 
 choice ESPRESSIF_FLASH_FREQ
        prompt "SPI Flash frequency"
-       default ESPRESSIF_FLASH_FREQ_40M
+       default ESPRESSIF_FLASH_FREQ_120M if ESP32S3_FLASH_FREQ_120M
+       default ESPRESSIF_FLASH_FREQ_80M if ESP32_FLASH_FREQ_80M || 
ESP32S3_FLASH_FREQ_80M
+       default ESPRESSIF_FLASH_FREQ_40M if ESP32_FLASH_FREQ_40M || 
ESP32S3_FLASH_FREQ_40M
+       default ESPRESSIF_FLASH_FREQ_26M if ESP32_FLASH_FREQ_26M
+       default ESPRESSIF_FLASH_FREQ_20M if ESP32_FLASH_FREQ_20M || 
ESP32S3_FLASH_FREQ_20M
+       default ESPRESSIF_FLASH_FREQ_20M
        ---help---
                SPI Flash frequency.
 
+config ESPRESSIF_FLASH_FREQ_120M
+       bool "120 MHz"
+       depends on ESP32S3_FLASH_FREQ_120M
+
 config ESPRESSIF_FLASH_FREQ_80M
        bool "80 MHz"
+       depends on ESP32_FLASH_FREQ_80M || ESP32S3_FLASH_FREQ_80M
 
 config ESPRESSIF_FLASH_FREQ_40M
        bool "40 MHz"
+       depends on ESP32_FLASH_FREQ_40M || ESP32S3_FLASH_FREQ_40M
 
 config ESPRESSIF_FLASH_FREQ_26M
        bool "26 MHz"
+       depends on ESP32_FLASH_FREQ_26M
 
 config ESPRESSIF_FLASH_FREQ_20M
        bool "20 MHz"
+       depends on ESP32_FLASH_FREQ_20M || ESP32S3_FLASH_FREQ_20M
 
 endchoice # ESPRESSIF_FLASH_FREQ
 
+config ESPRESSIF_FLASH_FREQ
+       string
+       # On some of the ESP chips, max boot frequency would be equal to (or 
even lower than) 80m.
+       # We currently define this to `80m`.
+       default '80m' if ESPRESSIF_FLASH_FREQ_120M
+       default '80m' if ESPRESSIF_FLASH_FREQ_80M
+       default '60m' if ESPRESSIF_FLASH_FREQ_60M
+       default '48m' if ESPRESSIF_FLASH_FREQ_64M
+       default '48m' if ESPRESSIF_FLASH_FREQ_48M
+       default '24m' if ESPRESSIF_FLASH_FREQ_32M
+       default '30m' if ESPRESSIF_FLASH_FREQ_30M
+       default '24m' if ESPRESSIF_FLASH_FREQ_24M
+       default '40m' if ESPRESSIF_FLASH_FREQ_40M
+       default '26m' if ESPRESSIF_FLASH_FREQ_26M
+       default '20m' if ESPRESSIF_FLASH_FREQ_20M
+       default '12m' if ESPRESSIF_FLASH_FREQ_16M
+       default '20m' # if no clock can match in bin headers, go with minimal.
+
 if ESPRESSIF_HAVE_OTA_PARTITION
 
 comment "Application Image OTA Update support"
diff --git a/arch/xtensa/src/esp32/Bootloader.mk 
b/arch/xtensa/src/esp32/Bootloader.mk
index 822329fbfd..975eabc897 100644
--- a/arch/xtensa/src/esp32/Bootloader.mk
+++ b/arch/xtensa/src/esp32/Bootloader.mk
@@ -74,6 +74,7 @@ endif
                $(if $(CONFIG_ESP32_FLASH_FREQ_40M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_40M)) \
                $(if $(CONFIG_ESP32_FLASH_FREQ_26M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_26M)) \
                $(if $(CONFIG_ESP32_FLASH_FREQ_20M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_20M)) \
+               $(call 
cfg_val,CONFIG_ESPTOOLPY_FLASHFREQ,$(CONFIG_ESPRESSIF_FLASH_FREQ)) \
        } > $(BOOTLOADER_CONFIG)
 ifeq ($(CONFIG_ESP32_APP_FORMAT_MCUBOOT),y)
        $(Q) { \
diff --git a/arch/xtensa/src/esp32s2/Bootloader.mk 
b/arch/xtensa/src/esp32s2/Bootloader.mk
index f647c9e536..b83a59025c 100644
--- a/arch/xtensa/src/esp32s2/Bootloader.mk
+++ b/arch/xtensa/src/esp32s2/Bootloader.mk
@@ -77,6 +77,7 @@ endif
                $(if $(CONFIG_ESPRESSIF_FLASH_FREQ_40M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_40M)) \
                $(if $(CONFIG_ESPRESSIF_FLASH_FREQ_26M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_26M)) \
                $(if $(CONFIG_ESPRESSIF_FLASH_FREQ_20M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_20M)) \
+               $(call 
cfg_val,CONFIG_ESPTOOLPY_FLASHFREQ,$(CONFIG_ESPRESSIF_FLASH_FREQ)) \
                $(if $(CONFIG_ESP32S2_SECURE_BOOT),$(call 
cfg_en,CONFIG_SECURE_BOOT)$(call cfg_en,CONFIG_SECURE_BOOT_V2_ENABLED)$(call 
cfg_val,CONFIG_ESP_SIGN_KEY_FILE,$(abspath $(TOPDIR)/$(ESPSEC_KEYDIR)/$(subst 
",,$(CONFIG_ESP32S2_SECURE_BOOT_APP_SIGNING_KEY))))) \
                $(if 
$(CONFIG_ESP32S2_SECURE_SIGNED_APPS_SCHEME_RSA_2048),$(call 
cfg_en,CONFIG_ESP_USE_MBEDTLS)$(call cfg_en,CONFIG_ESP_SIGN_RSA)$(call 
cfg_val,CONFIG_ESP_SIGN_RSA_LEN,2048)) \
                $(if 
$(CONFIG_ESP32S2_SECURE_SIGNED_APPS_SCHEME_RSA_3072),$(call 
cfg_en,CONFIG_ESP_USE_MBEDTLS)$(call cfg_en,CONFIG_ESP_SIGN_RSA)$(call 
cfg_val,CONFIG_ESP_SIGN_RSA_LEN,3072)) \
diff --git a/arch/xtensa/src/esp32s3/Bootloader.mk 
b/arch/xtensa/src/esp32s3/Bootloader.mk
index c675f76fdb..7e47af0cc9 100644
--- a/arch/xtensa/src/esp32s3/Bootloader.mk
+++ b/arch/xtensa/src/esp32s3/Bootloader.mk
@@ -61,6 +61,7 @@ $(BOOTLOADER_CONFIG): $(TOPDIR)/.config $(BOOTLOADER_DIR)
                $(if $(CONFIG_ESP32S3_FLASH_FREQ_80M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_80M)) \
                $(if $(CONFIG_ESP32S3_FLASH_FREQ_40M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_40M)) \
                $(if $(CONFIG_ESP32S3_FLASH_FREQ_20M),$(call 
cfg_en,CONFIG_ESPTOOLPY_FLASHFREQ_20M)) \
+               $(call 
cfg_val,CONFIG_ESPTOOLPY_FLASHFREQ,$(CONFIG_ESPRESSIF_FLASH_FREQ)) \
        } > $(BOOTLOADER_CONFIG)
 ifeq ($(CONFIG_ESP32S3_APP_FORMAT_MCUBOOT),y)
        $(Q) { \
diff --git a/tools/esp32/Config.mk b/tools/esp32/Config.mk
index 7f155682a1..d3aa9c6545 100644
--- a/tools/esp32/Config.mk
+++ b/tools/esp32/Config.mk
@@ -44,15 +44,7 @@ else ifeq ($(CONFIG_ESP32_FLASH_MODE_QOUT),y)
        FLASH_MODE := qout
 endif
 
-ifeq ($(CONFIG_ESP32_FLASH_FREQ_80M),y)
-       FLASH_FREQ := 80m
-else ifeq ($(CONFIG_ESP32_FLASH_FREQ_40M),y)
-       FLASH_FREQ := 40m
-else ifeq ($(CONFIG_ESP32_FLASH_FREQ_26M),y)
-       FLASH_FREQ := 26m
-else ifeq ($(CONFIG_ESP32_FLASH_FREQ_20M),y)
-       FLASH_FREQ := 20m
-endif
+FLASH_FREQ := $(CONFIG_ESPRESSIF_FLASH_FREQ)
 
 ifeq ($(CONFIG_ESP32_FLASH_DETECT),y)
        ESPTOOL_WRITEFLASH_OPTS := -fs detect -fm dio -ff $(FLASH_FREQ)
diff --git a/tools/esp32s2/Config.mk b/tools/esp32s2/Config.mk
index 78b4cefe44..b79c4d4de2 100644
--- a/tools/esp32s2/Config.mk
+++ b/tools/esp32s2/Config.mk
@@ -44,15 +44,7 @@ else ifeq ($(CONFIG_ESPRESSIF_FLASH_MODE_QOUT),y)
        FLASH_MODE := qout
 endif
 
-ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_80M),y)
-       FLASH_FREQ := 80m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_40M),y)
-       FLASH_FREQ := 40m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_26M),y)
-       FLASH_FREQ := 26m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_20M),y)
-       FLASH_FREQ := 20m
-endif
+FLASH_FREQ := $(CONFIG_ESPRESSIF_FLASH_FREQ)
 
 ifeq ($(CONFIG_ESP32S2_FLASH_DETECT),y)
        ESPTOOL_WRITEFLASH_OPTS := -fs detect -fm dio -ff $(FLASH_FREQ)
diff --git a/tools/esp32s3/Config.mk b/tools/esp32s3/Config.mk
index ed8aa5b937..4e3aa20fcf 100644
--- a/tools/esp32s3/Config.mk
+++ b/tools/esp32s3/Config.mk
@@ -44,15 +44,7 @@ else ifeq ($(CONFIG_ESP32S3_FLASH_MODE_QOUT),y)
        FLASH_MODE := qout
 endif
 
-ifeq ($(CONFIG_ESP32S3_FLASH_FREQ_120M),y)
-       FLASH_FREQ := 120m
-else ifeq ($(CONFIG_ESP32S3_FLASH_FREQ_80M),y)
-       FLASH_FREQ := 80m
-else ifeq ($(CONFIG_ESP32S3_FLASH_FREQ_40M),y)
-       FLASH_FREQ := 40m
-else ifeq ($(CONFIG_ESP32S3_FLASH_FREQ_20M),y)
-       FLASH_FREQ := 20m
-endif
+FLASH_FREQ := $(CONFIG_ESPRESSIF_FLASH_FREQ)
 
 ifeq ($(CONFIG_ESP32S3_FLASH_DETECT),y)
        ESPTOOL_WRITEFLASH_OPTS := -fs detect -fm dio -ff $(FLASH_FREQ)
diff --git a/tools/espressif/Config.mk b/tools/espressif/Config.mk
index 568d749ca4..f356a7a439 100644
--- a/tools/espressif/Config.mk
+++ b/tools/espressif/Config.mk
@@ -48,19 +48,7 @@ else ifeq ($(CONFIG_ESPRESSIF_FLASH_MODE_QOUT),y)
        FLASH_MODE := qout
 endif
 
-ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_80M),y)
-       FLASH_FREQ := 80m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_64M),y)
-       FLASH_FREQ := 48m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_48M),y)
-       FLASH_FREQ := 48m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_40M),y)
-       FLASH_FREQ := 40m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_26M),y)
-       FLASH_FREQ := 26m
-else ifeq ($(CONFIG_ESPRESSIF_FLASH_FREQ_20M),y)
-       FLASH_FREQ := 20m
-endif
+FLASH_FREQ := $(CONFIG_ESPRESSIF_FLASH_FREQ)
 
 ifeq ($(CONFIG_ESPRESSIF_FLASH_DETECT),y)
        ESPTOOL_WRITEFLASH_OPTS := -fs detect -fm dio -ff $(FLASH_FREQ)
diff --git a/tools/espressif/build_mcuboot.sh b/tools/espressif/build_mcuboot.sh
index 1cf010f6ec..1e14dea2f9 100755
--- a/tools/espressif/build_mcuboot.sh
+++ b/tools/espressif/build_mcuboot.sh
@@ -65,7 +65,7 @@ build_mcuboot() {
     mcuboot_flashmode="dio"
   fi
 
-  mcuboot_flashfreq=$(sed -n 's/^CONFIG_ESPTOOLPY_FLASHFREQ_\(.*\)M=1/\1m/p' 
"${mcuboot_config}")
+  mcuboot_flashfreq=$(grep -oP '^CONFIG_ESPTOOLPY_FLASHFREQ=\K.*' 
"${mcuboot_config}")
   if [ -z "${mcuboot_flashfreq}" ]; then
     mcuboot_flashfreq="40m"
   fi

Reply via email to