Commit Graph
7212 Commits
Author SHA1 Message Date
Erhan Kurubas 835e032498 fix(espcoredump): prevent double exception during int_wdt panic with custom stack 2025-11-28 12:06:03 +01:00
Roland Dobai 093c5f0b01 Merge branch 'fix/core_system_fixes_for_p4_eco5_v6_0' into 'release/v6.0'
Core System fixes for p4 eco5 (v6.0)

See merge request espressif/esp-idf!43629
2025-11-27 10:15:03 +01:00
Roland Dobai 2e470da924 Merge branch 'feat/cmakev2_fast_reflashing_v6.0' into 'release/v6.0'
feat(cmakev2/ldgen): provide ldgen with a list of mutable libraries (v6.0)

See merge request espressif/esp-idf!43774
2025-11-26 20:35:33 +01:00
Frantisek Hrbata c1b24d739a feat(cmakev2/ldgen): provide ldgen with a list of mutable libraries
The build system keeps track of each component source. Currently
there are four types of sources:

1. "project_components" - project components
2. "project_extra_components" - components from EXTRA_COMPONENT_DIRS
3. "project_managed_components" - custom project dependencies managed by the IDF Component Manager
4. "idf_components" - ESP-IDF built-in components, typically under /components

This can be used to identify the component libraries that are likely to
change during application development and pass them to ldgen as mutable
libraries. Add all components with "project_components" as their source
as mutable.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-26 16:18:35 +01:00
Frantisek Hrbata ada84b3ac4 fix(cmakev2/kconfig): avoid unnecessary sdkconfig generation
Add a helper function `__should_generate_sdkconfig()` that checks
whether the sdkconfig file should be generated.  The
`__generate_sdkconfig()` function can be called multiple times, such as
when the initial sdkconfig is generated at the start of the build
process and later after additional components are fetched by the
component manager.  There might be no components fetched by the
component manager, for example, in the hello_world example, or the
downloaded components may not contain any configuration files. In such
cases, there is no need to regenerate the sdkconfig. This helper
function stores the list of configuration files in the
`__PREV_KCONFIGS`, `__PREV_KCONFIG_PROJBUILDS`, and
`__PREV_SDKCONFIG_RENAMES` build properties at its end, and at the
beginning, it compares them with the current lists of configuration
files.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-26 16:17:43 +01:00
Roland Dobai 2da9307310 Merge branch 'change/add-support-for-kconfig-report_v6.0' into 'release/v6.0'
Change/add support for kconfig report (v6.0)

See merge request espressif/esp-idf!43592
2025-11-26 11:04:45 +01:00
Fu Hanxi 0c89f9a089 Merge branch 'ci/backport-to-release-6.0' into 'release/v6.0'
Ci/backport to release 6.0

See merge request espressif/esp-idf!43673
2025-11-26 09:14:36 +01:00
Jan Beran 9b7835ed97 change(kconfig): add support for configuration report 2025-11-25 20:50:47 +08:00
Fu Hanxi 41b5528b8d Merge branch 'ci/known-failure-dut-id-v6.0' into 'release/v6.0'
ci: pytest-ignore skip using dut id

See merge request espressif/esp-idf!43624
2025-11-25 12:58:27 +01:00
Omar Chebib 52aa13146a ci: re-enable eh_frame for the ESP32-P4 2025-11-25 13:35:51 +05:30
Marius Vikhammer 72c7bfe2e2 fix(system): fixed constructors not working properly on P4 ECO5 2025-11-25 13:35:51 +05:30
Marius Vikhammer 02b891f9de fix(lp-core): fixed rtc mem conflict on p4 eco5 between app and ULP 2025-11-25 13:35:50 +05:30
Fu Hanxi de78c0fdd0 ci: move host test unittest jobs to pytest 2025-11-24 15:00:01 +01:00
Fu Hanxi 11df972a25 ci: move the retry_failed_jobs to pre_check stage 2025-11-24 15:00:01 +01:00
Fu Hanxi 2d6f423c00 ci: cleanup build_template_app jobs 2025-11-24 15:00:01 +01:00
Fu Hanxi 1d1237d4c0 ci: cleanup after_script:build related rules 2025-11-24 15:00:00 +01:00
Fu Hanxi 6c0cac7a76 ci: remove generate_build_child_pipeline.py 2025-11-24 15:00:00 +01:00
Jiang Jiang Jian ee4be1af57 Merge branch 'feat/flash_enc_using_key_manager_v6.0' into 'release/v6.0'
Support Flash Encryption using Key Manager (v6.0)

See merge request espressif/esp-idf!43459
2025-11-24 10:35:48 +08:00
igor.udot 68b9bbe543 ci: pytest-ignore skip using dut id 2025-11-24 10:17:33 +08:00
Alexey Gerenkov d8e47c5e43 Merge branch 'feature/dynamic_flags_in_toolchain_cmake_v6.0' into 'release/v6.0'
feat(build): propagate compiler flags from files to toolchain.cmake (v6.0)

See merge request espressif/esp-idf!43499
2025-11-21 16:19:34 +08:00
Euripedes Rocha ec0ef59535 Merge branch 'chore/update-protocol-eth-connect_v6.0' into 'release/v6.0'
feat(protocol_examples_common): Use Ethernet Init component (v6.0)

See merge request espressif/esp-idf!43554
2025-11-21 08:22:17 +01:00
morris 45fa560e98 Merge branch 'feat/make_p4_rev3_default_v6.0' into 'release/v6.0'
p4: make v3 as default (v6.0)

See merge request espressif/esp-idf!43440
2025-11-21 15:12:44 +08:00
morris f050c1deb1 Merge branch 'fix/no_function_call_in_min_max_v6.0' into 'release/v6.0'
refactor: avoid function calls inside MIN/MAX macros (v6.0)

See merge request espressif/esp-idf!43476
2025-11-21 12:03:09 +08:00
armando 714b022a43 ci(p4): disable p4 rev3 invalid tests temporarily 2025-11-21 02:48:05 +00:00
armando f5f8fcc4cf ci(p4): re-enable p4 jobs 2025-11-21 02:48:05 +00:00
Roland Dobai fa1fceafd4 Merge branch 'feat/update_ccache_to_4.12.1_v6.0' into 'release/v6.0'
feat(tools): Updated ccache 4.11.2 -> 4.12.1 (v6.0)

See merge request espressif/esp-idf!43566
2025-11-21 00:13:27 +01:00
morris 7f0f043e63 Merge branch 'refactor/gpio_rom_func_rename_v6.0' into 'release/v6.0'
refactor(rom/gpio): add 'rom_' prefix to GPIO ROM functions (v6.0)

See merge request espressif/esp-idf!43400
2025-11-20 21:35:13 +08:00
Marek Fiala 063eebb046 feat(tools): Updated ccache 4.11.2 -> 4.12.1
Closes https://github.com/espressif/esp-idf/issues/17756
2025-11-20 14:11:26 +01:00
Marek Fiala 7a8389b6c8 refactor(tools): test_idf_tools.py ruff changes 2025-11-20 14:11:26 +01:00
Roland Dobai 0825f0f0cf Merge branch 'feat/cmakev2_size_targets_v6.0' into 'release/v6.0'
fix(cmakev2): add size report targets (v6.0)

See merge request espressif/esp-idf!43546
2025-11-20 13:54:22 +01:00
glmfe e187d3b259 feat(protocol_examples_common): Use Ethernet Init component
- Refactored protocol_examples_common to use ethernet_init component
2025-11-20 18:57:03 +08:00
Marius Vikhammer ad29ffc78f Merge branch 'ci/enable-junit-report-in-mr_v6.0' into 'release/v6.0'
ci: enable junit report in MR (v6.0)

See merge request espressif/esp-idf!43290
2025-11-20 18:43:39 +08:00
Frantisek Hrbata 91add83a38 feat(cmakev2/size): add idf_create_size_report function
The idf_create_size_report function allows for the creation of size
report targets based on the generated link map file. The size report
targets are created using the TARGET option name: "<target>",
"<target>-files", and "<target>-components". These size report targets
are added to the idf_default_project with the TARGET set to "size",
resulting in the creation of "size", "size-files", and "size-components"
targets for the default project.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:51 +01:00
Frantisek Hrbata 3318bd4c1d fix(cmakev2/project): unset global variables in idf_project_init macro
The idf_project_init macro is evaluated within the global variable
scope, and currently, there are a few variables still set. Let's ensure
all variables are properly unset to avoid polluting the global variable
namespace.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:51 +01:00
Frantisek Hrbata a500965fcb fix(cmakev2/build): display a warning when the MINIMAL_BUILD property is set
The MINIMAL_BUILD property is not relevant in cmakev2, as only
components explicitly linked through targets are included in the build
by design. Display a warning when this outdated build property is set.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
Frantisek Hrbata 177483ec55 fix(cmakev2/build): fix the generation of the link map file
The link flag for generating the map file is currently added globally to
the link_options. If multiple executables are generated, the link map
file is overwritten by the last created executable. Since cmakev2
supports building multiple executables, the link map file options need
to be set for each executable individually. To address this, add a new
MAPFILE_TARGET option to the idf_build_executable function. When set,
the link map file will be generated by the linker, and a target
specified in the MAPFILE_TARGET option will be created for the map file.

This also splits the idf_project_default macro.  Only the
idf_project_init macro needs be called within the global scope, as it
includes the project_include.cmake files and the cmake version of the
configuration. The remaining functionality of the idf_project_default
macro is implemented in a __project_default helper function to avoid
polluting the global variable space.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
Frantisek Hrbata f23de1f518 fix(cmakev2/build): pass binary target to idf_build_generate_metadata
Currently, the `idf_build_generate_metadata` function takes an
executable target as an argument, and the binary name is stored in the
`EXECUTABLE_BINARY` property. This approach is inconvenient because a
single executable might generate multiple binary images, making it
unreliable to store the binary image name in the executable property due
to the N:1 relationship. To address this, pass the binary image target
instead of the executable target to the `idf_build_generate_metadata`
function. This change is facilitated by linking the binary target,
executable target, and library interface targets with the following
properties:

binary:EXECUTABLE_TARGET -> executable:LIBRARY_INTERFACE -> library

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
Frantisek Hrbata 621af79762 fix(cmakev2/project): remove temporary workaround for partition and bootloader flash dependencies
With commit b719292b75 ("refactor(build-system): Simplify flash target creation"),
partition table and bootloader components are correctly adding their
dependency on the flash target, so there is no need for this to be done
in the build system. This removes the temporary workaround.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
harshal.patil c1503cd847 feat(bootloader_support): Support Flash Encryption using Key Manager 2025-11-20 11:37:05 +05:30
Sudeep Mohanty c3658a495e test(cmakev2): Enable test_build_uf2 for buildv2 CI tests 2025-11-19 14:45:55 +05:30
Sudeep Mohanty e5f35bc2d7 feat(cmakev2): Add uf2 target support for cmakev2
This commit adds support for uf2 targets for cmake2. The following
changes have been made:
- Adds a new tools/cmakev2/uf2.cmake.
- Adds the idf_create_uf2() function to create the uf2 targets. This
  function now takes the executable as an argument thus allowing the uf2
  target to be created per-executable.
- idf_project_default() is updated to create the uf2 targets.
2025-11-19 14:45:55 +05:30
Sudeep Mohanty e28a2262f3 test(cmakev2): Enable test_build_dfu for buildv2 CI tests 2025-11-19 14:45:55 +05:30
Sudeep Mohanty 0fe5868cf2 feat(cmakev2): Add dfu target support for cmakev2
This commit adds support for dfu targets for cmake2. The following
changes have been made:
- Adds a new tools/cmakev2/dfu.cmake file on similar lines as the
  tools/cmake/dfu.cmake file.
- Adds the idf_create_dfu() function to create the dfu targets. This
  function now takes the executable as an argument thus allowing the dfu
  target to be created per-executable.
- idf_project_default() is updated to create the dfu target.
2025-11-19 14:45:55 +05:30
Sudeep Mohanty 55de37fbf1 test(cmakev2): Enable test_rebuild.py for buildv2 CI tests
The test_rebuild_no_changes test verifies that running idf.py build
successively without any file changes results in identical build
artifacts on the second run (i.e., nothing gets rebuilt).

This test was failing in buildv2 because it expected kconfig_menus.json
to be present in build/config/ after a normal build. However, in
cmakev2, kconfig_menus.json is not generated during regular builds.

In cmakev1, kconfig_menus.json was generated globally during every
build alongside other config files (sdkconfig.h, sdkconfig.cmake, etc).

In cmakev2, kconfig_menus.json generation does not happend for
normal builds because it depends on the Kconfig menu hierarchy
and cannot be generated globally. It must be generated per-executable.

Hence, this commit updates the artefacts list for cmakev2 to not expect
the kconfig_menus.json file during a build/re-build action.
2025-11-19 14:45:55 +05:30
Song Ruo Jing ae7962e697 refactor(rom/gpio): add 'rom_' prefix to GPIO ROM functions 2025-11-19 12:17:52 +08:00
Alexey Lapshin cbe44f2e33 fix(test): fix tests according to the new toolchain flags 2025-11-19 01:12:40 +07:00
Alexey Lapshin a217630b1e feat(build): propagate compiler flags from files to toolchain.cmake
This change improves build consistency across external projects integrated
through CMake by ensuring that compiler flags defined in configuration files
are passed correctly to the toolchain. It covers the majority of use cases,
as external projects are typically also CMake-based. For projects that use
a custom build system, users will still need to specify the required flags
manually.
2025-11-19 01:12:40 +07:00
morris e9539d4560 refactor: avoid function calls inside MIN/MAX macros 2025-11-18 15:18:14 +08:00
Mahavir Jain 582d3cce08 Merge branch 'feat/extend_pmp_protection_esp32p4_eco5_v6.0' into 'release/v6.0'
Extend PMP memprot for ESP32-P4 V3 (v6.0)

See merge request espressif/esp-idf!43264
2025-11-17 10:18:18 +05:30
Euripedes Rocha 98a9e14d0e Merge branch 'removes_esp_mqtt_v6.0' into 'release/v6.0'
change(mqtt): Removes the mqtt client from idf (v6.0)

See merge request espressif/esp-idf!43292
2025-11-15 18:25:58 +01:00