7240 Commits

Author SHA1 Message Date
Roland Dobai
b60860eb7e Merge branch 'fix/cmakev2_unnecessary_config_generation' into 'master'
fix(cmakev2/kconfig): avoid unnecessary sdkconfig generation

Closes IDF-14431

See merge request espressif/esp-idf!43663
2025-11-26 13:32:12 +01:00
Roland Dobai
20e3e8a5af Merge branch 'feat/cmakev2_fast_reflashing' into 'master'
feat(cmakev2/ldgen): provide ldgen with a list of mutable libraries

Closes IDF-14322

See merge request espressif/esp-idf!43672
2025-11-26 13:31:58 +01:00
Roland Dobai
584e8c71fd Merge branch 'ci/unlock_click' into 'master'
Fixed ctx.params resolving for the new Click version

Closes IDF-14158

See merge request espressif/esp-idf!42610
2025-11-26 08:09:59 +01:00
Erhan Kurubas
c9bee75b52 Merge branch 'fix/int_wdt_double_exception' into 'master'
fix(espcoredump): prevent double exception during int_wdt panic with custom stack

Closes IDF-9361

See merge request espressif/esp-idf!43185
2025-11-25 14:03:03 +01:00
Jakub Kocka
6c2551b4a6 fix: Fixed ctx.params resolving because of the new Click 2025-11-25 09:58:53 +01:00
morris
e4192f88e6 refactor(g0_components): update component list to dynamically include esp_hal_* components 2025-11-25 15:21:48 +08:00
C.S.M
cb5f2ff4c2 Merge branch 'feat/update_esp32s31_g0_support' into 'master'
feat(esp32s31): Add g0 component support

See merge request espressif/esp-idf!43599
2025-11-25 13:49:55 +08:00
morris
c7f4c62e00 Merge branch 'refactor/bitscrambler_in_esp_hal_dma' into 'master'
refactor(hal): bitscrambler hal -> esp_hal_dma, usj hal -> esp_hal_usb

Closes IDF-14353

See merge request espressif/esp-idf!43542
2025-11-25 13:06:26 +08:00
C.S.M
b450150fff feat(esp32s31): Add g0 component support 2025-11-25 10:16:08 +08:00
Frantisek Hrbata
ca3974c937 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-24 14:58:02 +01:00
Frantisek Hrbata
4ba40bce20 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-24 13:44:01 +01:00
Fu Hanxi
26a01e843c Merge branch 'ci/known-failure-dut-id' into 'master'
ci: pytest-ignore skip using dut id

Closes CII-44

See merge request espressif/esp-idf!43539
2025-11-24 10:25:04 +01:00
morris
bc064a353a refactor(hal_dma): move bitscrambler from hal component
because bitscrambler can't live without DMA, it's highly binded with the
GDMA peripheral.
2025-11-21 16:10:16 +08:00
Omar Chebib
58e2fc7926 ci: re-enable eh_frame for the ESP32-P4 2025-11-21 15:40:40 +08:00
Fu Hanxi
6c585a0e18 Merge branch 'ci/simplify-ci' into 'master'
Ci/simplify ci

Closes IDFCI-6717

See merge request espressif/esp-idf!43157
2025-11-21 07:34:24 +01:00
igor.udot
083200737c ci: pytest-ignore skip using dut id 2025-11-21 11:43:15 +08:00
Marius Vikhammer
257ee931cd Merge branch 'bugfix/p4_eco5_init_arrays' into 'master'
fix(system): fixed constructors not working properly on P4 ECO5

Closes IDF-14425

See merge request espressif/esp-idf!43547
2025-11-21 09:42:26 +08:00
Marius Vikhammer
9632e67efd Merge branch 'bugfix/ulp_p4_eco5_fixes' into 'master'
fix(lp-core): fixed rtc mem conflict on p4 eco5 between app and ULP

Closes IDF-14422

See merge request espressif/esp-idf!43544
2025-11-21 09:40:45 +08:00
Roland Dobai
69a5c7384f Merge branch 'change/add-support-for-kconfig-report' into 'master'
Change/add support for kconfig report

Closes IDF-11816

See merge request espressif/esp-idf!37165
2025-11-20 23:30:54 +01:00
Roland Dobai
cbfda195a8 Merge branch 'feat/update_ccache_to_4.12.1' into 'master'
feat(tools): Updated ccache 4.11.2 -> 4.12.1

Closes IDFGH-16658

See merge request espressif/esp-idf!43521
2025-11-20 13:41:44 +01:00
Erhan Kurubas
083999290e fix(espcoredump): prevent double exception during int_wdt panic with custom stack 2025-11-20 11:14:42 +01:00
Marius Vikhammer
641420c5e0 fix(system): fixed constructors not working properly on P4 ECO5 2025-11-20 17:37:48 +08:00
Ondrej Kosta
1e6f49d178 Merge branch 'chore/update-protocol-eth-connect' into 'master'
feat(protocol_examples_common): Use Ethernet Init component

Closes IDF-14227

See merge request espressif/esp-idf!42265
2025-11-20 17:28:17 +08:00
Marius Vikhammer
cd0e6ec2ca fix(lp-core): fixed rtc mem conflict on p4 eco5 between app and ULP 2025-11-20 17:03:23 +08:00
Fu Hanxi
accfcc96f4 ci: move host test unittest jobs to pytest 2025-11-20 09:07:22 +01:00
C.S.M
958a4bffc8 feat(esp32s31): Add soc register from t~z and manually headers 2025-11-20 11:58:03 +08:00
glmfe
f398594982 feat(protocol_examples_common): Use Ethernet Init component
- Refactored protocol_examples_common to use ethernet_init component
2025-11-19 15:58:12 +01:00
Marek Fiala
a279eeac29 feat(tools): Updated ccache 4.11.2 -> 4.12.1
Closes https://github.com/espressif/esp-idf/issues/17756
2025-11-19 15:54:26 +01:00
Marek Fiala
0ce86cbb7b refactor(tools): test_idf_tools.py ruff changes 2025-11-19 15:53:25 +01:00
Frantisek Hrbata
e08aca162a 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-19 11:35:36 +01:00
Frantisek Hrbata
e216eeeebc 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-19 11:34:03 +01:00
Frantisek Hrbata
bba4446ee0 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-19 11:34:03 +01:00
Frantisek Hrbata
2b35b5b1bb 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-19 11:33:57 +01:00
Frantisek Hrbata
e97027214e 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-19 11:30:18 +01:00
Frantisek Hrbata
5130b7d228 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-19 11:26:07 +01:00
Fu Hanxi
18bb5bacca ci: move the retry_failed_jobs to pre_check stage 2025-11-19 10:51:20 +01:00
Fu Hanxi
2988329deb ci: cleanup build_template_app jobs 2025-11-19 10:29:26 +01:00
Fu Hanxi
0f0d97f958 ci: cleanup after_script:build related rules 2025-11-19 10:27:07 +01:00
Fu Hanxi
5304e95ac5 ci: remove generate_build_child_pipeline.py 2025-11-19 10:26:53 +01:00
Sudeep Mohanty
c7b4804ffa Merge branch 'feat/cmakev2_features_and_test_updates' into 'master'
Enable more cmakev2 CI tests and support dfu, uf2 targets

Closes IDF-14181, IDF-14182, and IDF-14183

See merge request espressif/esp-idf!43460
2025-11-19 10:15:08 +01:00
Kevin (Lao Kaiyao)
c94d08b9f2 Merge branch 'reafactor/esp_hal_i2s' into 'master'
feat(hal): graudate the I2S hal driver into a new component

Closes IDF-14078

See merge request espressif/esp-idf!43267
2025-11-19 14:08:20 +08:00
Jan Beran
bf9b9a0259 change(kconfig): add support for configuration report 2025-11-18 20:42:38 +08:00
Sudeep Mohanty
cad80548b1 test(cmakev2): Enable test_build_uf2 for buildv2 CI tests 2025-11-18 15:08:56 +05:30
Sudeep Mohanty
94809d6638 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-18 15:08:53 +05:30
Sudeep Mohanty
a609d5bcd2 test(cmakev2): Enable test_build_dfu for buildv2 CI tests 2025-11-18 15:08:20 +05:30
Sudeep Mohanty
5b0d81bc50 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-18 15:08:12 +05:30
Roland Dobai
a295be6658 Merge branch 'feat/ldgen_fast_reflashing' into 'master'
feat(ldgen): initial support for fast reflashing

Closes IDF-14213

See merge request espressif/esp-idf!42780
2025-11-18 10:28:49 +01:00
C.S.M
961bd0cf78 Merge branch 'feat/introduce_esp32s31' into 'master'
feat(esp32s31): Introduce new target esp32s31

See merge request espressif/esp-idf!43316
2025-11-18 15:55:16 +08:00
laokaiyao
e8f39b4c8d feat(hal): graudate the I2S hal driver into a new component 2025-11-18 15:47:16 +08:00
Sudeep Mohanty
f72292b0d7 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-18 10:12:12 +05:30