Commit Graph

7594 Commits

Author SHA1 Message Date
Sahil Yadav c946ef3789 feat(nimble): Support NimBLE log compression and decompression over SPI 2026-04-21 14:00:27 +08:00
Sergei Silnov 52edbc934d Merge branch 'fix/test_project_components_overrides_extra_components' into 'master'
fix: test_managed_components_overrides_idf_components

Closes IDFCI-10153

See merge request espressif/esp-idf!47182
2026-04-20 14:44:33 +02:00
Frantisek Hrbata 4cd39bc28f Merge branch 'feat/ldgen_skip_generation' into 'master'
feat(ldgen): skip generation when section names unchanged

Closes IDFGH-17454

See merge request espressif/esp-idf!47278
2026-04-20 11:06:07 +02:00
Sudeep Mohanty 157370bac9 Merge branch 'test/fix_cmakev2_import_lib' into 'master'
fix(cmakev2): propagate IDF_TOOLCHAIN selection to sdkconfig generation

Closes IDFCI-10438

See merge request espressif/esp-idf!47590
2026-04-17 15:21:33 +02:00
Sudeep Mohanty 4b139455a8 test(cmakev2): verify IDF_TOOLCHAIN is propagated to sdkconfig
Add a buildv2 test that reconfigures the test app with both GCC and
clang toolchains and asserts that the selected IDF_TOOLCHAIN value
is propagated to sdkconfig. The clang case is skipped when a clang
compiler is not available in PATH.
2026-04-17 13:56:42 +02:00
Sudeep Mohanty 054c15eab3 fix(cmakev2): propagate IDF_TOOLCHAIN selection to sdkconfig generation
In the cmakev2 build framework, the selected toolchain was not
consistently propagated to sdkconfig generation. For clang builds,
this produced a configuration that was incompatible with the clang
toolchain and broke compilation.

Ensure the toolchain selection is observed consistently so sdkconfig
and component configuration reflect the intended toolchain for both
GCC and clang builds.

Made-with: Cursor
2026-04-17 13:49:00 +02:00
Igor Masar f3218ca0e8 Merge branch 'ci/esp32s31_usb_host_enable' into 'master'
ci(usb/host): enable esp32s31 and esp32h4 for USB host examples

See merge request espressif/esp-idf!47654
2026-04-17 18:26:55 +08:00
Roland Dobai 478e0861d8 Merge branch 'fix/cmake_quotations' into 'master'
Build & config: Quote variable references in conditional expressions

Closes IDFGH-17506

See merge request espressif/esp-idf!47675
2026-04-17 09:14:28 +02:00
Jiang Jiang Jian c09a6ee07a Merge branch 'chip/add_wifi_support_for_esp32s31_rebase_master' into 'master'
feat(wifi): add wifi support for esp32s31

See merge request espressif/esp-idf!47339
2026-04-17 14:24:43 +08:00
Linyan Liu 3ef5da096a feat(ble_audio): Support ISO & LE Audio functionalities (Preview) 2026-04-17 09:46:23 +08:00
igor.masar 37f58cf498 ci(usb/host): enable esp32s31 and esp32h4 for USB host examples
Remove the temporary esp32s31 disable from usb/host build-test rules.
Add esp32s31 and esp32h4 to the usb_host_msc and usb_host_lib pytest
matrices. Keep the tests temp-skipped in CI until usb_host_flash_disk
runners exist.
2026-04-16 16:25:26 +02:00
yinqingzhao 9f58583929 fix(ci): fix ci build issue of esp32s31 2026-04-16 20:19:54 +08:00
yinqingzhao c3da80ee52 feat(wifi): add esp32s31 wifi support 2026-04-16 20:17:07 +08:00
Roland Dobai 13b56cec79 fix(cmake): quote variable references in conditional expressions
Closes https://github.com/espressif/esp-idf/issues/18445
2026-04-16 13:41:48 +02:00
Fu Hanxi 2aee18d827 feat(build): support env var IDF_PY_BUILD_JOBS for ninja jobs 2026-04-16 13:27:18 +02:00
Fu Hanxi f15406fe33 ci: log per-job ccache stats 2026-04-16 13:27:18 +02:00
Marek Fiala ca08f28d22 Merge branch 'feat/extenral_components_from_valid_sources' into 'master'
feat(tools): Restrict loading extension components to trusted sources

Closes DOC-13994

See merge request espressif/esp-idf!46089
2026-04-16 15:54:38 +08:00
Marius Vikhammer 4d18240744 fix(esp_intr_dump): sync esp32s31 expected output
Keep the esp32s31 fixture aligned with the assist_debug reservation on interrupt 27.
2026-04-16 11:35:43 +08:00
Marek Fiala 4d1612cd3c feat(tools): Restrict loading extension components to trusted sources 2026-04-15 16:30:57 +08:00
Chen Jichang a970b9baa8 fix(ci): fix register rw half word check 2026-04-15 14:01:45 +08:00
igor.udot 9350c78301 ci: use set to compare exclude_runner_tags_set 2026-04-14 09:15:37 +02:00
Alexey Gerenkov 8c4897f62e Merge branch 'fix/coredump_fake_stack_range' into 'master'
fix(coredump): fix fake stack address range overlapping esp32s31 DRAM

Closes IDFCI-10393, IDFCI-10395, IDFCI-10396, IDFCI-10405, IDFCI-10402, IDFCI-10401, IDFCI-10403, IDFCI-10389, IDFCI-10406, IDFCI-10390, IDFCI-10391, IDF-14673, and IDF-14675

See merge request espressif/esp-idf!47480
2026-04-13 23:13:26 +08:00
Adam Múdry b29b9dc4d2 Merge branch 'feat/cmake_add_partition_flash_binary_function' into 'master'
feat(esp_partition): Add esp_partition_register_target Cmake function

Closes IDF-11870 and DOC-14244

See merge request espressif/esp-idf!37176
2026-04-13 15:54:27 +02:00
nilesh.kale a6a2696972 fix(cpu_region_protect): set DROM mask PMP entry to read-only
PMP entry 3 (SOC_DROM_MASK_HIGH, TOR mode) in the memprot path
was incorrectly granted RW permission on esp32h21 and esp32c61.
The mask ROM data region is inherently read-only; remove the W bit.

Also added necessary tests to check voilations and re-enabled
tests for ESP32P4
2026-04-13 10:27:58 +05:30
Erhan Kurubas 54287a574b test(panic): update multi-core target list in panic_dut 2026-04-10 19:58:56 +02:00
Erhan Kurubas 85a717f0a3 Merge branch 'esp32s31-assist-debug' into 'master'
feat(esp32s31): add assist_debug stack monitoring support

See merge request espressif/esp-idf!47282
2026-04-10 19:58:21 +02:00
Adam Múdry 749c446a7e feat(esp_partition): Add esp_partition_flash_binary() CMake function
Add a new CMake function esp_partition_flash_binary() that provides a
unified API for registering partition data binaries to be flashed. It
replaces the direct esptool_py_flash_target calls scattered across
components (spiffs, fatfs, nvs_flash) with a single function that:

- Resolves partition offset from the partition table automatically
- Determines encryption requirements (auto-detect or ALWAYS_PLAINTEXT)
- Creates per-partition flash targets (e.g. idf.py <partition>-flash)
- Optionally includes the binary in `idf.py flash` via FLASH_IN_PROJECT

On the linux target, the function registers binaries for pre-loading
into the emulated flash. A build-time manifest (linux_flash_data.txt)
is generated via file(GENERATE), and partition_linux.c reads it at
runtime to copy each binary into the memory-mapped flash buffer at
the correct offset.

The partition_ops example is updated to use the new function and
includes a custom_partition with pre-built data to demonstrate the
full workflow, including on the linux target.
2026-04-10 15:22:50 +02:00
Alexey Lapshin d480048406 Merge branch 'feature/update-gdb-to-17.1_20260402' into 'master'
feat(tools): update gdb version to 17.1_20260402

See merge request espressif/esp-idf!47384
2026-04-10 17:20:12 +04:00
Marius Vikhammer c1e5a95755 Merge branch 'ci/panic_tests_p4_s31' into 'master'
test(system): enable panic tests for P4 and S31

Closes IDF-14348

See merge request espressif/esp-idf!47442
2026-04-10 15:03:39 +08:00
Marius Vikhammer c216628442 test(system): enable panic tests for P4 and S31 2026-04-10 08:35:25 +08:00
Erhan Kurubas f6ae009f40 feat(esp32s31): add assist_debug stack monitoring support 2026-04-09 21:20:51 +08:00
Alexey Lapshin 08b423a06b feat(soc): ESP32-S31: enable SOC_ASYNCHRONOUS_BUS_ERROR_MODE
- Enable SOC_ASYNCHRONOUS_BUS_ERROR_MODE to correct MEPC value when debugging.
- Enable gdbstub test_hwloop_jump and test_coproc_registers
2026-04-09 10:39:17 +08:00
Alexey Lapshin bac9db713c feat(tools): update gdb version to 17.1_20260402 2026-04-08 21:07:13 +07:00
Frantisek Hrbata e4fa15b50a feat(ldgen): cache parsed fragment files
Profiling shows that parsing the linker fragment (.lf) files with
pyparsing is the single largest cost in ldgen (~58% of total runtime).
parse_fragment_file() rebuilds its grammar from scratch on every call
because the conditional parser closure has to capture sdkconfig to
evaluate if/elif/else at parse time.

Add a cache that pickles the parsed FragmentFile object list to
<output>.lfcache. The cache is keyed on fragment file paths+mtimes
plus sdkconfig and kconfig mtimes — sdkconfig is included because
fragment if/elif/else blocks are evaluated against it at parse time.

This avoids the pyparsing cost on rebuilds where ldgen has to run
but the fragment files themselves are unchanged — for example when
a function is added or removed in a source file. Cache hits produce
the same sections.ld as a full parse, and any pickle load failure
falls through to a normal parse, so cache corruption or a Python
upgrade cannot produce a wrong build.

Print "Skipping linker fragment parsing, fragment files unchanged"
on the lf cache hit path so build logs show when the optimization
fired — this makes it easy to diagnose user reports of unexpected
ldgen behavior.

The LDGEN_NO_CACHE environment variable disables the lf cache. When
set, ldgen falls through to a normal parse without consulting or
writing the cache file.

Measured on wifi_station (205 libs, 67 .lf files), median of 10 runs:

                                          before   after
  rebuild, section change, .lf unchanged   5.82s   1.34s

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-08 11:51:20 +02:00
Frantisek Hrbata e1f43e15b7 feat(ldgen): skip generation when section names unchanged
After running objdump on all libraries, extract section names from the
stored raw output using regex and compute a fingerprint (MD5 hash of
section names + mtimes of fragment files, sdkconfig, and kconfig).

If the fingerprint matches the cached value from the previous run,
skip the expensive pyparsing + generation step entirely and touch
the output file to update its timestamp. The fingerprint file is
stored next to the output (e.g. sections.ld.fingerprint) in the build
directory.

This avoids the pyparsing bottleneck for the common case of editing
function bodies without adding or removing symbols — section names
in the object files are unchanged, so the generated sections.ld
would be identical. When sections do change, the full generation
runs and the fingerprint is updated.

Print "Skipping linker script generation, section names unchanged"
on the fingerprint hit path so build logs show when the optimization
fired. This makes it easy to diagnose user reports of unexpected
ldgen behavior — the build log directly shows whether the cache was
used.

Add an LDGEN_NO_CACHE environment variable to disable the cache as a
workaround in case the optimization causes problems. When set, ldgen
prints "Linker script generation caches disabled by LDGEN_NO_CACHE"
and runs full generation as before, leaving any existing fingerprint
file untouched.

Measured on wifi_station (205 libs, 67 .lf files), median of 10 runs:

                                       before   after
  rebuild, section names unchanged      5.82s   0.82s

Closes https://github.com/espressif/esp-idf/issues/18408

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-08 10:26:55 +02:00
Marius Vikhammer 82c1f71d96 ci(esp_intr_dump): add expected output for esp32s31 2026-04-08 09:43:21 +08:00
Island 51bbd5257a Merge branch 'dev/ble-log-202603' into 'master'
dev: BLE Log 202603

See merge request espressif/esp-idf!46934
2026-04-03 18:10:47 +08:00
C.S.M f7031990f2 Merge branch 'ci/enable_s31_target_test' into 'master'
ci(esp32s31): Add ci target test for esp32s31

Closes IDF-14694

See merge request espressif/esp-idf!47208
2026-04-03 13:23:47 +08:00
Mahavir Jain b3bb9a2a91 Merge branch 'fix/fix_esp_local_ctrl_potential_double_free' into 'master'
fix(esp_local_ctrl): fixes a potential double free

See merge request espressif/esp-idf!46953
2026-04-03 09:36:48 +05:30
C.S.M 152b5ccb4c ci(esp32s31): Add ci target test for esp32s31 2026-04-03 11:38:45 +08:00
Armando (Dou Yiwen) b533c6750e Merge branch 'feat/mmu_s31' into 'master'
mmu: s31 support for external mmu

Closes IDF-14669

See merge request espressif/esp-idf!47133
2026-04-03 02:42:20 +00:00
Roland Dobai 6c6b1b8ae3 Merge branch 'feat/adopt_fast_reflashing' into 'master'
feat(idf_py): idf.py flash will reflash only changed data sectors by default

Closes IDF-11871

See merge request espressif/esp-idf!45542
2026-04-02 19:37:27 +02:00
Guillaume Souchere 25cb4d0196 Merge branch 'feat/esp-system-linux-support-update' into 'master'
feat(esp_system): Add linux support for freertos hooks and system init function

See merge request espressif/esp-idf!46570
2026-04-02 11:31:42 +02:00
Radim Karniš 38d37e5e9f feat(idf_py): idf.py flash will reflash only changed data sectors by default
idf.py flash -a is introduced to trigger a flash of all data (not just changed sectors).
2026-04-02 10:59:30 +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
Euripedes Rocha 099d7ee8ce Merge branch 'trim-common-components-networking-manifests' into 'master'
fix: Component depends rules for networking and protocols

See merge request espressif/esp-idf!46961
2026-04-02 08:54:05 +02:00
Ashish Sharma 544e71e263 fix(esp_local_ctrl): fixes a potential double free 2026-04-02 09:57:23 +08:00
armando ea124ede83 ci(s31): add s31 to no runner tag 2026-04-02 09:51:56 +08:00
Daniel Paul 166bdcee87 fix: test_project_components_overrides_extra_components 2026-04-01 17:22:17 +02:00
Mahavir Jain 1a4ad657be Merge branch 'docs/update_doc_for_fe_dev_mode_to_release_mode_transition' into 'master'
docs: added guide to transit from dev mode to release mode of FE

Closes IDF-15376

See merge request espressif/esp-idf!45919
2026-04-01 19:08:00 +05:30