Commit Graph
68 Commits
Author SHA1 Message Date
Sudeep Mohanty af12767402 change(esptool_py): hide serial flasher menu on linux target
The linux host_test target has no real flash, so the "Serial flasher
config" menu's options are meaningless there. Gate the menu on
!IDF_TARGET_LINUX so its symbols stay undefined on linux.
2026-05-25 15:24:25 +02:00
Radim Karniš c62515671d change(build): Rename Fast reflashing configuration to Minimize binary changes, make non-experimental 2026-04-02 10:53:32 +02:00
Mahavir Jain 21f8ca5e6f feat(app_update): add API for checking the spi mode compatibility
New API to check the SPI flash mode from the incoming firmware image
during OTA updates could prevent bootloader/app incompatibility of
DIO vs QIO flash modes.

More information:
 - https://github.com/espressif/esp-hosted-mcu/issues/143#issuecomment-3741753788
 - https://github.com/espressif/esp-idf/issues/9674#issuecomment-1232533757
 - https://github.com/espressif/esp-idf/issues/9542#issuecomment-1211317354
2026-02-10 12:53:50 +05:30
Frantisek Hrbata a034ef8713 feat(build): add initial configuration for fast reflashing
Introduce ESPTOOLPY_FAST_REFLASHING configuration option. It instructs
ldgen to group entity mappings for libraries deemed mutable (prone to
change) separately from those considered immutable (unlikely to change).

Organizing mutable and immutable libraries separately in the linker
script allows the linker to form larger contiguous blocks of data for
immutable libraries in the application's output sections. These blocks
are likely to stay mostly unchanged between application recompilations,
enabling them to be skipped during reflashing.

Separating mutable and immutable libraries in the linker script to
minimize changes in the output sections is insufficient. Padding is
added after the input sections of mutable libraries in the default data
and text output sections. This creates a buffer for the mutable
libraries, allowing additional changes to be made without altering the
layout of the binary image.

Additionally two optimizations currently in use can still mix data from
these libraries, leading to significant changes even within the grouped
immutable libraries.

1. constant merging

    Linker will try to merge input sections that have the MERGE and
    STRING flags from different libraries (object files) to perform
    optimizations like tail merging. For example, adding a string
    literal in a mutable library will also change the addresses of
    string literals from immutable libraries in such a merged section,
    causing changes in the generated code when those literals are
    referenced.

    Disabled with COMPILER_DISABLE_MERGE_CONSTANTS(-fno-merge-constants)

2. literal pools on Xtensa

    As optimization, the linker may merge literal pools from different
    libraries (object files) to improve the generated code size. This
    has the same effect as constant merging, and changes in mutable
    libraries may cause changes in the generated code for immutable
    libraries. To get larger unchanged continuous blocks in the text
    output sections for immutable libraries, we need to ensure that the
    Xtensa literal pools remain close to their references and are not
    merged.

    Disabled with CONFIG_COMPILER_ENABLE_TEXT_SECTION_LITERALS(-mtext-section-literals)

When ESPTOOLPY_FAST_REFLASHING is enabled, these two optimizations are
disabled to achieve larger unchaged continuous blocks for the grouped
immutable libraries, even though disabling these optimizations results
in slightly larger code.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-13 15:30:42 +01:00
Peter Dragun e3198fff3c feat: Update esptool to v5 2025-09-30 15:28:55 +02:00
armando 9b845f9f8b fix(flash): mutex between flash rom impl and flash opi 2025-03-20 15:32:21 +08:00
Jakub Kocka 12875d6f66 feat: Enable ESP32-C61 stub 2024-09-23 09:21:44 +02:00
Jaroslav Burian 82c8973add feat: Enable ESP32-C5 stub 2024-09-16 20:27:25 +08:00
C.S.M 44ff115557 refactor(spi_flash): Refactor the flash frequency config file 2024-09-11 14:13:26 +08:00
C.S.M fad2c740b1 feature(spi_flash): Promote the c61 mspi clock frequency from 40 to 80M 2024-08-22 10:58:50 +08:00
Song Ruo Jing 335d39b869 feat(clk): Add basic clock support for esp32c61
- Support SOC ROOT clock source switch
- Support CPU frequency change
- Support RTC SLOW clock source switch
- Support RTC SLOW clock + RC FAST calibration
- Remove FPGA build
2024-07-31 22:41:22 +08:00
Ondrej Kosta 4607cff1f9 fix(esptool): make 80MHZ Flash SPI speed not supported by v0.0 of P4 2024-07-19 15:04:14 +08:00
C.S.M d02758f56b feat(spi_flash): Increase flash frequency from 40M to 80M 2024-07-09 10:49:57 +08:00
Song Ruo Jing 40f3bc2e57 feat(clk): Add basic clock support for esp32c5 mp
- Support SOC ROOT clock source switch
- Support CPU frequency change
- Support RTC SLOW clock source switch
- Support RTC SLOW clock + RC FAST calibration
- Remove FPGA build
2024-06-26 14:26:34 +08:00
wanlei 20c18ac52b feat(esp32c61): final introduce helloworld support 2024-04-02 10:50:52 +08:00
laokaiyao 3d459e423a feat(esp32c5): support esp32c5 beta3 48M xtal 2024-01-09 13:11:11 +08:00
Xiao Xufeng 1f5fb3f921 spi_flash: fixed issue that enabling HPM-DC by default may cause app unable to restart 2023-10-24 10:38:08 +08:00
Armando c448597f24 kconfig: introduced CONFIG_IDF_ENV_BRINGUP for new chip bringup usage 2023-06-26 03:30:23 +00:00
laokaiyao bf2a7b2df6 esp32h4: removed esp32h4 related codes 2023-04-23 12:03:07 +00:00
Armando 739b3f03fb kconfig: make 120 MSPI DDR as experimental feature 2023-04-03 10:30:50 +08:00
Armando 6d4c0bb3aa mspi: support 120M DDR flash and psram on S3 (experimental) 2023-04-03 10:30:50 +08:00
Cao Sen Miao bc655a6890 spi_flash: Allow clock frequency up to 64M, and make it default on ESP32H2 2023-03-10 11:39:53 +08:00
wuzhenghui 0cbb4227b2 feature: add build framework support 2023-02-01 17:57:25 +08:00
Song Ruo Jing 182e937c5a clk_tree: Add basic clock support for esp32c6
- Support SOC ROOT clock source switch
    - Support CPU frequency change
    - Support RTC SLOW clock source switch
    - Support RTC SLOW clock + RC FAST calibration

    Remove FPGA build for esp32c6
2022-12-13 19:18:34 +08:00
laokaiyao 8677216576 esp32h2: renaming esp32h2 to esp32h4 2022-11-08 17:05:33 +08:00
Cao Sen Miao 2c9bb4eb7d spi_flash: Support select flash mode automatically at run time(Quad flash or Octal flash) 2022-10-18 11:25:35 +08:00
xiaqilin 5ebbefafc7 esp32h2: disable no_stub option
It helps to enable erase flash feature for esp32h2beta2
2022-08-04 19:49:44 +08:00
Cao Sen Miao ec6a56ed0c spi_flash: re-enable the HPM mode on several XMC chips 2022-07-22 09:54:56 +08:00
Roland Dobai d56c578ddb tools: Rename the flash size detection kconfig option
9c46c98b4c have changed the default value
of ESPTOOLPY_FLASHSIZE_DETECT. As the side effect, existing
projects (having the option still enabled) started to discard the SHA256 digest.

Rename the ESPTOOLPY_FLASHSIZE_DETECT option so existing projects would
have the value disabled by default.

Closes https://github.com/espressif/esp-idf/issues/9148
2022-06-14 15:56:20 +02:00
Roland Dobai 9c46c98b4c Tools: Don't add SHA256 digest to images when flash size detection is enabled 2022-06-01 08:57:07 +02:00
Cao Sen Miao 4418a855ba spi_flash: refactor the spi_flash clock configuration, and add support for esp32c2 2022-04-26 15:22:37 +08:00
Cao Sen Miao 52e88a0073 spi_flash: esptool temporarily supports C2/H2 clock configurations 2022-04-11 10:46:02 +08:00
rudi ;-) f242a1705a add support for Flash 32MB..128MB (S2, S3)
ESP32-S2 and ESP32-S3
supports up to 1 GB of external flash and RAM
add support for
-    32MB
-    64MB
-    128MB ( example NOR spiFLASH 1G-BIT W25Q01JVZEIQ Winbond 0xEF 0x40 0x21 )

Merges https://github.com/espressif/esp-idf/pull/7688

Signed-off-by: Ivan Grokhotkov <ivan@espressif.com>
2022-02-21 10:26:41 +03:00
Roland Dobai 36a4011ff8 Tools: Custom baud-rate setup is not possible for IDF Monitor from menuconfig anymore
IDF Monitor follows the console baud rate by default. Other baud rate
can be set from command line by "idf.py monitor -B <baud>" or through
environment variables. Run "idf.py monitor --help" for more information.
2022-01-24 18:13:38 +01:00
Roland Dobai aedb846a20 Tools: IDF Monitor follows the UART console baud rate by default 2022-01-24 18:13:38 +01:00
laokaiyao cf049e15ed esp8684: rename target to esp32c2 2022-01-19 11:08:57 +08:00
wuzhenghui 388615add0 update esp32h2beta2 chip_id to 14 2021-11-24 12:30:43 +08:00
wuzhenghui 968c42d88c 822 FPGA rnv init 2021-11-24 12:30:17 +08:00
Roland Dobai 9c1d4f5b54 Build & config: Remove the "make" build system
The "make" build system was deprecated in v4.0 in favor of idf.py
(cmake). The remaining support is removed in v5.0.
2021-11-10 09:53:53 +01:00
Cao Sen Miao 9ab043574d ESP8684: update esptool 2021-11-06 17:33:45 +08:00
Armando f9fa38463a spi_flash: make 120m config only visible on s3 sdr mode 2021-10-28 19:36:34 +08:00
Armando 2655a506c9 mspi: support auto detect octal flash vendor 2021-10-08 15:59:57 +08:00
Cao Sen Miao 6c0aebe279 esp_flash: add opi flash support in esp_flash chip driver, for MXIC 2021-09-07 14:44:40 +08:00
Cao Sen Miao 559c1ac3f9 esp_flash: add support mxic as a main flash under spi mode 2021-09-05 00:33:28 +08:00
Armando a3dc625da6 mspi: support 120MHz Quad Flash and PSRAM on ESP32S3 2021-08-31 16:06:44 +08:00
sly 11dfd802e0 esp32h2: add rtc clock support 2021-08-26 11:25:39 +08:00
Armando d325f4d557 mspi: support octal flash 120M STR mode on esp32s3 2021-08-19 10:44:30 +08:00
Shu Chen 2b9e8fed71 esp32h2: add esp32h2 build target
Add esp32h2 support in the following components:
 * Kconfig
 * components/esptool_py
 * components/riscv
 * components/xtensa
 * tools
2021-07-01 19:51:33 +08:00
Armando bc248278f8 spiflash: add octal spi psram support on 727 2021-06-25 19:41:57 +08:00
me-no-dev b64fd872bc Allow esptool's download stub to be disabled by other options and applications
Currently USB CDC Download requires the `--no-stub` option of `esptool`. This change inverts the Kconfig option to negative, so that it can be `selected` by other options or enabled in applications through `sdkconfig.defaults`.
2020-09-16 03:25:53 +00:00