Commit Graph
5961 Commits
Author SHA1 Message Date
Marek Fiala aff708b067 fix(tools): Enabled removing requirements.* files 2025-06-11 11:15:33 +02:00
Alexey Gerenkov e64f3d7559 Merge branch 'ci/fix-custom-oocd-setting_v5.3' into 'release/v5.3'
ci: select OpenOCD binary based on runner (v5.3)

See merge request espressif/esp-idf!39378
2025-06-09 23:17:49 +08:00
Sergei Silnov d8333672f0 Merge branch 'ci/disable-plugin-idf_ci_v5.3' into 'release/v5.3'
ci: disable idf-ci plugin (v5.3)

See merge request espressif/esp-idf!39667
2025-06-05 06:12:12 -03:00
Fu Hanxi e97adbf002 ci: disable idf-ci plugin
this plugin will be re-enabled with compatible code in !38755
2025-06-04 13:18:40 +02:00
Astha Verma 722a42f6e4 fix(nimble): Added support for ANCS in nimble 2025-06-04 14:29:33 +05:30
morris d11bc380ae Merge branch 'test/c61_disable_build_test_v5.3' into 'release/v5.3'
test(ci): disable c61 helloworld build

See merge request espressif/esp-idf!39629
2025-06-03 22:06:00 +08:00
wanckl 85e28b74aa test(ci): disable c61 helloworld build 2025-06-03 19:49:43 +08:00
Jan Beran 2ee0b6c4dd change(gen_soc_caps_kconfig): check if config options have the same type
Also introduce ignore pragma to prevent some #defines from .h files to
be translated to Kconfig files.
2025-06-02 10:21:36 +02:00
morris 2e89dce260 Merge branch 'feature/add_uart_io_deinit_process_v5.3' into 'release/v5.3'
fix(uart): eliminate garbled data on TX/RX line in sleep (v5.3)

See merge request espressif/esp-idf!39281
2025-05-23 16:46:37 +08:00
Samuel Obuch e75d5b9c46 ci: select OpenOCD binary based on runner 2025-05-23 00:42:49 +02:00
harshal.patil 29f7654c2b feat(cpu_region_protect): Enable basic memory protection for SPIRAM 2025-05-21 15:36:41 +05:30
Song Ruo Jing 266c576d20 fix(ci): remove esp32c5 from the build template app for release/v5.3 2025-05-21 14:37:26 +08:00
Roland Dobai f640db4613 Merge branch 'ci/rename-packages_v5.3' into 'release/v5.3'
ci: rename local idf_ci folder, avoid name collision (v5.3)

See merge request espressif/esp-idf!38758
2025-04-30 17:17:53 +08:00
Alexey Gerenkov 585da85759 feat(tools): update openocd version to v0.12.0-esp32-20250422 2025-04-26 12:41:10 +02:00
Fu Hanxi b27dd7c77a ci: rename local idf_ci folder, avoid name collision 2025-04-25 11:28:13 +02:00
Alexey Lapshin bbb257f893 feat(esp_system): drop .got* sections and add hint
Closes https://github.com/espressif/esp-idf/issues/14296
2025-04-24 16:36:31 +08:00
Roland Dobai 833adbc27c Merge branch 'fix/linux_std_flags_v5.3' into 'release/v5.3'
fix(build): don't call enable_language() before project() (v5.3)

See merge request espressif/esp-idf!37881
2025-04-21 15:53:28 +08:00
Roland Dobai d618bb56e1 Merge branch 'fix/remove-unused-from-gdbinit_cmake_v5.3' into 'release/v5.3'
fix(tools): remove unused variables in gdbinit.cmake (v5.3)

See merge request espressif/esp-idf!38046
2025-04-21 15:53:06 +08:00
Roland Dobai d73b3d8129 Merge branch 'fix/check_python_dependencies_v5.3' into 'release/v5.3'
fix(tools): handle packages with dots in their names during dependency checks (v5.3)

See merge request espressif/esp-idf!38063
2025-04-21 15:49:39 +08:00
Roland Dobai 81968004de Merge branch 'feat/deactivate_idf_env_every_run_v5.3' into 'release/v5.3'
feat(tools): Deactivate current ESP-IDF environment with every export run (v5.3)

See merge request espressif/esp-idf!38027
2025-04-21 15:49:13 +08:00
Roland Dobai 58c14765ae Merge branch 'fix/install_input_validation_v5.3' into 'release/v5.3'
fix(idf_tools): Validate input features (v5.3)

See merge request espressif/esp-idf!37890
2025-04-21 15:48:52 +08:00
Roland Dobai 3f2690aa78 Merge branch 'fix/extractall_deprecation_v5.3' into 'release/v5.3'
fix(idf_tools): Patch extractall() deprecation warning (v5.3)

See merge request espressif/esp-idf!37884
2025-04-21 15:48:34 +08:00
Roland Dobai 65699a0bda Merge branch 'change/move_deprecated_kconfig_checker_v5.3' into 'release/v5.3'
change: move check_deprecated_configs.py logic to esp-idf-kconfig (v5.3)

See merge request espressif/esp-idf!37406
2025-04-21 15:48:00 +08:00
Jiang Jiang Jian 10a20f3388 Merge branch 'ci/add_test_for_ecos_wifi_enterprise_v53' into 'release/v5.3'
ci(c2/c3): add major eco version tests(v5.3)

See merge request espressif/esp-idf!37806
2025-04-17 10:56:45 +08:00
morris 7c447b5525 Merge branch 'bugfix/gpio_dump_io_config_v5.3' into 'release/v5.3'
fix(gpio): fix pu, pd, drv value incorrect from gpio_dump_io_configuration on esp32 (v5.3)

See merge request espressif/esp-idf!37909
2025-04-16 10:17:44 +08:00
Alexey Gerenkov 67d7cde1f1 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20250226_v5.3' into 'release/v5.3'
feat(tools): update openocd version to v0.12.0-esp32-20250226 (v5.3)

See merge request espressif/esp-idf!37527
2025-04-16 00:12:14 +08:00
Shu Chen f8886ebb72 Merge branch 'fix/ldgen_section_name_v53' into 'release/v5.3'
fix(ldgen): extend section name regex to include '_' (v5.3)

See merge request espressif/esp-idf!38326
2025-04-15 14:56:36 +08:00
Mahavir Jain 352704257a Merge branch 'fix/examples_python3.13_ssl_conn_failure_v5.3' into 'release/v5.3'
Change in Python3.13's default ssl context caused SSL connection failure (v5.3)

See merge request espressif/esp-idf!38200
2025-04-15 12:37:07 +08:00
Marius Vikhammer 7fea3ef20f Merge branch 'bug/xtensa_cpu1_sys_lockup_v5.3' into 'release/v5.3'
fix(panic_handler): Updated panic handler to use RTC WDT (v5.3)

See merge request espressif/esp-idf!37115
2025-04-15 11:05:57 +08:00
Alexey Lapshin 6bb3dce495 fix(ldgen): extend section name regex to include '_' (e.g.: used by picolibc) 2025-04-09 16:51:38 +08:00
Martin Vychodil 6db3dc25df change(version): Update version to 5.3.3 2025-04-08 15:34:04 +02:00
luaijun 2f749a21e7 ci(c2/c3): add major eco version tests 2025-04-08 10:34:19 +08:00
harshal.patil 28e42429f4 fix(examples): Example CA certs must contain the Key Usage parameter
- Example CA certificates that are used for self-signed client certificates
need to include the Key Usage parameter.
- Python3.13 changed the default context of the SSL context that is
generated using ssl.create_default_context() by enabling the VERIFY_X509_STRICT
flag by default
2025-04-03 10:52:47 +05:30
Frantisek Hrbata b8d0de64f8 fix(build): don't call enable_language() before project()
For the Linux target, we currently attempt to fallback to older C/CXX
lagnuage standards in the __build_set_lang_version() function. The
language standard support is checked using CMake's language-specific
functions, such as check_c_compiler_flag(). These functions require the
language to be enabled[1] in CMake beforehand, which is done by calling
project() or by enabling the languages later with enable_language(). At
present, we use enable_language() to enable C and CXX languages in
CMake, allowing us to set the standard early, before invoking project().
However, newer CMake versions (>3.29) issue a warning[2] if
enable_language() is called before project(), as noted in CMP0165[3].

It should generally be acceptable to call __build_set_lang_version()
after __project(), but doing so would alter the behavior of the
COMPILE_OPTIONS also for non-Linux targets. Currently, users can
add to COMPILE_OPTIONS even before calling project() in the project's
CMakeLists.txt and the options will be in the desired order. In other
words, appending to COMPILE_OPTIONS can occur either before or after
calling project() in the project's CMakeLists.txt, with the outcome
remaining consistent. This means the user's settings will appear later
and take priority. However, if __build_set_lang_version() is called
after __project(), the user's COMPILE_OPTIONS settings would be
overridden if set before calling project(). Our documentation[4] explicitly
states that COMPILE_OPTIONS and similar properties should be modified
using idf_build_set_property() after calling project() to prevent
default values from overwriting them.

Even with this guidance, some existing components that modify
COMPILE_OPTIONS before invoking project() might be impacted by this
change. Therefore, separate the language standard settings for non-Linux
and Linux targets. For non-Linux targets, these settings are applied in
__build_set_default_build_specifications(), maintaining the current
behavior. For the Linux target, the language standard is set with
__linux_build_set_lang_version() after calling __project(), ensuring the
languages are already enabled in CMake and no warning is issued. Since the Linux
target is still in preview, this approach should be acceptable,
especially with the existing documentation[4].

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

[1] https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#languages
[2] https://gitlab.kitware.com/cmake/cmake/-/merge_requests/9396
[3] https://cmake.org/cmake/help/latest/policy/CMP0165.html#policy:CMP0165
[4] https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32/api-guides/
    build-system.html#overriding-default-build-specifications

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-03-31 14:51:01 +08:00
Frantisek Hrbata 99a08577b4 fix(tools): handle packages with dots in their names during dependency checks
The `setuptools` package starting with `v70.1.0`[1] contains built-in
`bdist_wheel` command. Before this version `setuptools` relied on the
`bdist_wheel` command implementation from the `wheel` package. Starting with
`setuptools` `v75.8.1` the `PEP 491`[3] restrictions on the distribution name
of a wheel package are enforced[4], replacting also `.` with `_`.  Note that
`PEP 491` actually allows `.` in the distribution name, but for some reason the
latest packaging docs[10][11] does not, stating that `.` should be replaced
with `_`. This was discussion here[12].

Also the `wheel` package starting with `v0.45.0`[5] is using the `bdist_wheel`
command from `setuptools`.  This means that any package which has `.` in its
distribution name, like `ruamel.yaml.clib`, can have different wheel name,
depending on which version of the `bdist_wheel` command was used.

The `bdist_wheel` command from setuptools prior `v75.8.1` or `wheel` prior
`v0.45.0` will keep the dots in distribution name preserved.  For exaple the
`ruamel.yaml.clib` package will have distribution name
`ruamel.yaml.clib-0.2.12.dist-info. Newer versions will replace the dots with
`_` according to [10][11], creating distribution like
`ruamel_yaml_clib-0.2.12.dist-info`.

From packaging point of view `ruamel.yaml.clib-0.2.12.dist-info` and
`ruamel_yaml_clib-0.2.12.dist-info` are the same packages, but this is not
reflected in `importlib.metadata` prior python 3.10[9], which does not perform
name normalization prior the distribution search. This causes the `version`
from `importlib.metadata` to fail on python prior the 3.10 version if the
package with dots in distribution name was generated with normalized paths with
newer `setuptools`. Note that the distribution name normalization was
backported to some later 3.9 python version.

Let's demonstrate this behavior on a simple package with the
`my.minimal.package` name.

```
my_minimal_package/
├── pkg
│   └── __init__.py
└── setup.py

from setuptools import setup, find_packages

setup(
    name='my.minimal.package',
    version='0.1.0',
    packages=find_packages(),
    install_requires=[],
    entry_points={},
)
```

With python 3.9.0 search for `my.minimal.package` fails because
of the missing name normalization.
```
docker run --rm -it --platform linux/x86_64 python:3.9.0 bash
python -m venv venv
. venv/bin/activate
pip install setuptools==v75.8.1
python setup.py bdist_wheel
pip install dist/my_minimal_package-0.1.0-py3-none-any.whl
python
Python 3.9.0 (default, Nov 18 2020, 13:28:38)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from importlib.metadata import version as get_version
>>> get_version('my.minimal.package')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 551, in version
    return distribution(distribution_name).version
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 524, in distribution
    return Distribution.from_name(distribution_name)
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 187, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: my.minimal.package
>>> get_version('my_minimal_package')
'0.1.0'
```

With python 3.10.0 search for both `my.minimal.package` and
`my_minimal_package` succeeds.
```
docker run --rm -it --platform linux/x86_64 python:3.10.0 bash
python
Python 3.10.0 (default, Dec  3 2021, 00:21:30) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from importlib.metadata import version as get_version
>>> get_version('my.minimal.package')
'0.1.0'
>>> get_version('my_minimal_package')
'0.1.0'
```

In our `tools/check_python_dependencies.py` we cannot relay on the default
distribution finder, used in the `version` function from `importlib.metadata`,
to do name normalization on older python versions.  To cope with this,
implement a fallback version search. If `version` fails with
`PackageNotFoundError`, do the name normalization according to [10][11] and try
again.

Note: There is also a `wheel`[6][7] `v0.43.0` package embeded in `setuptools`
along with the new implementation[8].  This one seems to be used if the
external `wheel` package is not available but imported. TBH this is all kinda
messy and I may have overlooked something.

* [1] https://setuptools.pypa.io/en/stable/history.html#v70-1-0
* [2] https://setuptools.pypa.io/en/stable/history.html#v75-8-1
* [3] https://peps.python.org/pep-0491/#escaping-and-unicode
* [4] https://github.com/pypa/setuptools/pull/4766/files
* [5] https://wheel.readthedocs.io/en/stable/news.html
* [6] https://github.com/pypa/setuptools/blob/main/setuptools/_vendor/wheel/__init__.py
* [7] https://github.com/pypa/setuptools/issues/1386
* [8] https://github.com/pypa/setuptools/blob/main/setuptools/command/bdist_wheel.py
* [9] https://github.com/python/cpython/commit/c6ca368867bd68d44f333df840aa85d425a51410
* [10] https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization
* [11] https://packaging.python.org/en/latest/specifications/binary-distribution-format/
       #escaping-and-unicode
* [12] https://github.com/pypa/setuptools/issues/3777

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-03-27 08:05:07 +01:00
Alexey Lapshin b64ddb1893 fix(tools): remove unused variables in gdbinit.cmake
Closes https://github.com/espressif/esp-idf/issues/15035
2025-03-26 19:51:33 +07:00
Marek Fiala f6ddf27a90 feat(tools): Deactivate current ESP-IDF environment with every export run
Unix systems only
2025-03-25 14:20:52 +01:00
Song Ruo Jing 0077f642df fix(gpio): fix 8/16-bit gpio, rtc/lp_io register access 2025-03-20 17:09:36 +08:00
Radim Karniš 3c8d99d8ef fix(idf_tools): Validate input features 2025-03-19 21:44:43 +01:00
Radim Karniš 61f3968e91 fix(idf_tools): Patch extractall() deprecation warning 2025-03-19 13:48:36 +01:00
Mahavir Jain 0a329ab9a4 fix(esp_local_ctrl): update for changes in protocomm security2 scheme 2025-03-10 10:00:12 +05:30
Mahavir Jain af1bd1472c fix(provisioning): fix incorrect AES-GCM IV usage in security2 scheme
Using same IV in AES-GCM across multiple invocation of
encryption/decryption operations can pose a security risk. It can help
to reveal co-relation between different plaintexts.

This commit introduces a change to use part of IV as a monotonic
counter, which must be incremented after every AES-GCM invocation
on both the client and the device side.

Concept of patch version for a security scheme has been introduced here
which can help to differentiate a protocol behavior for the provisioning
entity. The security patch version will be available in the JSON
response for `proto-ver` endpoint request with the field
`sec_patch_ver`.

Please refer to documentation for more details on the changes required
on the provisioning entity side (e.g., PhoneApps).
2025-03-10 10:00:00 +05:30
Sudeep Mohanty 81109e8bdd fix(panic_handler): Updated panic handler to use RTC WDT
This commit updates the following:
- Updates the panic handler to use only the RTC WDT to reset the system.
- Refactors some of the panic handler code.
- Updates Bluetooth files where in they now feed the WDTs instead of
  reconfiguring them.
- Removes some unnecessary configuration of WDTs from various files.
- Added a unit test to verify that the system does not lock up when the
  panic handler is stuck.
- Updates the memprot unit tests to work with the refactored panic
  handler.

Closes https://github.com/espressif/esp-idf/issues/15166
Closes https://github.com/espressif/esp-idf/issues/15018
Closes https://github.com/espressif/esp-idf/issues/10110
2025-03-06 09:13:17 +01:00
Erhan Kurubas 47c014f117 feat(tools): update openocd version to v0.12.0-esp32-20250226 2025-03-05 15:34:43 +01:00
Jan Beran 94e61d005b change: move check_deprecated_configs.py file to esp-idf-kconfig 2025-02-28 14:51:23 +01:00
Jiang Jiang Jian cb8d1796b8 Merge branch 'fix/xtensa_nmi_v5.3' into 'release/v5.3'
fix(esp_hw_support): make the NMI interrupts available for the main application (backport v5.3)

See merge request espressif/esp-idf!34268
2025-02-28 11:32:47 +08:00
akshat f8c552b560 bugfix(wifi): Fix header file errors and remove esp_supplicant from check_public_headers_exceptions.txt 2025-02-27 11:09:30 +08:00
Omar Chebib 209cfa313b fix(esp_hw_support): make the NMI interrupts available for the main application
Closes https://github.com/espressif/esp-idf/issues/13629

NMI interrupt level has been freed for all the Xtensa targets, making it possible
for the main application to use it. An example has been added to show how to
proceed.
2025-02-26 10:06:44 +08:00
Martin Vychodil 2c26a7e11e fix(security): Fixed ESP32S2 memory protection check for Peri1 RTCSLOW interrupt
- fixes the issue found in https://github.com/espressif/esp-idf/issues/15359
- extends debug printouts in the related tests
2025-02-21 16:29:04 +08:00
laokaiyao a137775d11 fix(i2s): fixed i2s_std initializer order for cpp compiler
Closes https://github.com/espressif/esp-idf/issues/15405
2025-02-18 15:06:51 +08:00