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