Commit Graph

373 Commits

Author SHA1 Message Date
Jan Beran 3fd8a6e320 fix: set sufficient buffer limit for idf.py confserver 2025-10-06 09:00:26 +02:00
Jan Beran 438e207e45 change: fix formatting issues before editing tools.py and core_ext.py 2025-10-06 09:00:26 +02:00
Jiang Jiang Jian 95d2e964b5 Merge branch 'feature/update-qemu-to-esp_develop_9.2.2_20250817_v5.5' into 'release/v5.5'
feat(tools): update qemu version to esp_develop_9.2.2_20250817 (v5.5)

See merge request espressif/esp-idf!41471
2025-09-28 18:48:35 +08:00
Xiao Xufeng 6049a4a1c2 feat(tools): add c5, c61 into supported targets list 2025-08-30 01:23:15 +08:00
Ivan Grokhotkov c2bb9881e6 fix(tools): use nvram.esp32s3.efuse device in qemu_ext.py
Related to https://github.com/espressif/esp-idf/issues/17258
2025-08-22 17:26:38 +02:00
Ivan Grokhotkov 76c3b8fcf3 feat(tools): enable PSRAM by default in "idf.py qemu" for ESP32-S3 2025-08-22 17:20:44 +02:00
Jiang Jiang Jian aa4faf57ef Merge branch 'ci/enable_sysview_tests_v5.5' into 'release/v5.5'
ci: enable sysview example tests for all chips (v5.5)

See merge request espressif/esp-idf!39472
2025-08-01 11:07:46 +08:00
Jiang Jiang Jian dafdf1205d Merge branch 'feat/secure_boot_ecdsa_p384_v5.5' into 'release/v5.5'
Support Secure Boot using ECDSA-P384 curve (v5.5)

See merge request espressif/esp-idf!40822
2025-07-31 21:24:55 +08:00
Peter Dragun 01f8074a3d change: Fix linting errors in serial_ext.py 2025-07-25 14:43:56 +05:30
harshal.patil 476f8f6f51 feat(bootloader_support): Support Secure Boot using ECDSA-P384 curve 2025-07-25 14:25:31 +05:30
Ivan Grokhotkov c930763a8a change(qemu_ext): ruff pre-commit fixes
Fixup of https://github.com/espressif/esp-idf/pull/15974
2025-07-25 09:01:41 +02:00
Rohan Fletcher db72fac86b fix(tools/idf-qemu): Add qemu_extra_args after monitor stdio -serial 2025-07-25 09:01:40 +02:00
Erhan Kurubas f4db15bc60 feat(tools): add esp32c3 rev1.1 rom version string 2025-07-23 13:19:52 +02:00
Marek Fiala 70d12d61e9 fix(tools): idf.py create-project works in read-only ESP-IDF
As the native copy function shutil.copyfile preserves directories metadata
such as file permissions, we need to ensure the copied destination
is writable for owner.

Closes https://github.com/espressif/esp-idf/issues/15964
Closes https://github.com/espressif/esp-idf/pull/16021
2025-06-20 11:52:27 +02:00
Marek Fiala ccfb41895d feat(tools): adjusted create_ext.py by ruff formatter 2025-06-20 11:52:27 +02:00
Ashish Sharma 88fa3e2c9e feat(security): fixes review comments 2025-03-17 18:23:14 +08:00
Ashish Sharma 4c23ba3c1f feat(security): update idf.py extensions to support security feature application 2025-03-17 18:23:14 +08:00
Wan Lei c7a0e45489 Merge branch 'feat/spi_master_dynamic_freq' into 'master'
feat(spi_master): add transaction config for device multi freq point

Closes IDFGH-12774

See merge request espressif/esp-idf!28579
2025-02-13 15:58:59 +08:00
wanckl 39c85269cc feat(spi_master): add transaction config for dynamic clock speed update
Closes https://github.com/espressif/esp-idf/issues/13753
2025-02-12 20:29:34 +08:00
Roland Dobai bbdf1e4a2a Merge branch 'feat/use_diag_module' into 'master'
feat(diag): use the esp-idf-diag module as a backend

See merge request espressif/esp-idf!36872
2025-02-12 18:39:53 +08:00
Frantisek Hrbata bdc94935fa feat(diag): use the esp-idf-diag module as a backend
Replace the original diag implementation in idf.py with the new one in a
separate esp-idf-diag python package. The interface is kept the same as
it was. The simple idf.py diag test is also preserved.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-02-11 11:26:47 +01:00
Chen Jichang 6f83f39dce feat(esp32h4): introduce target esp32h4(stage 1) 2025-02-08 17:07:44 +08:00
Roland Dobai 57b2ef83ea Merge branch 'feat/diag_cpuinfo' into 'master'
feat(tools): add basic system information to diag report

Closes IDF-12100

See merge request espressif/esp-idf!36627
2025-01-29 17:46:07 +08:00
Frantisek Hrbata 7216d11110 feat(tools): enable passing the purge file as an argument to diag
At present, the diag tool uses its default purge file. However, users
may find it beneficial to specify and reuse their own purge file. A new
command line option, --purge, has been introduced to allow users to
provide their own purge file to diag. When this option is used, the
default purge file is ignored.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-01-28 09:19:36 +01:00
Frantisek Hrbata 350dbaf73c feat(tools): add system.yml recipe to diag
This should enable the collection of more detailed information about the
operating system and basic CPU details.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-01-27 13:34:33 +01:00
Frantisek Hrbata f7b754acfa feat(tools): add option to execute steps only on a specific system
At present, the steps are executed unconditionally. With this
modification, we can restrict each step individually to determine if it
should run on a particular system. For instance, we can execute
different commands on different systems. This is achieved by adding a
new key, "system," to the step dictionary, with possible values being
Linux, Windows, and Darwin.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-01-27 13:34:19 +01:00
Frantisek Hrbata 88c099d756 fix(tools): allow to save stdout and stderr if the exec command fails
Currently, if a command run by the exec command returns an error
code, its stdout and stderr are not saved. It could be beneficial to
store at least the stderr if requested. Additionally, avoid creating
output files when there is no content and also store the stderr
of the failed command to diag.log.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-01-24 14:41:07 +01:00
Roland Dobai c640466e32 docs(coredump): Add minor documentation improvements for coredump 2025-01-22 13:44:56 +01:00
Roland Dobai 16ba8b7e4a Merge branch 'feature/add_utf_8_decoding' into 'master'
feat(tools): Enforced utf-8 encoding with Python open() functions

Closes IDF-10654

See merge request espressif/esp-idf!32303
2024-12-30 16:07:29 +08:00
Frantisek Hrbata 949f6cb9f7 feat(tools): add idf.py diag reporting tool
The initial implementation of a diagnostic tool that collects valuable
information about esp-idf and failed build to assist in investigating
reported issues.

The gathered information includes environmental variables, details about
the python virtual environment, installed tools, platform information,
project_description.json, sdkconfig, build logs, map file, linker
scripts, and others.

usage:

1) create the default report

   # allow diag to create the report directory name
   $ idf.py diag
   # explicitly specify the report directory
   $ idf.py diag --output <report directory>

2) examine the contents of the generated <report directory> for
   sensitive information and add additional content to the
   <report directory>

3) create report archive zip file that can be shared or attached to
   the reported issue

   $ idf.py diag --zip <report directory>

The tool collects information as described in what are known as recipe
files. A recipe file is a YAML file, similar to an Ansible playbook or a
GitHub action, but much more simplified. Each recipe outlines how to
gather a set of related information. For instance, the manager.yml
recipe gathers data related to the component manager. Each recipe
includes metadata such as its description, tags, and steps. Tags are
used to determine which recipes to use; by default, all built-in recipes
located in tools/idf_py_actions/diag/recipes are used. Steps consist of
a list of commands to be executed. Currently, there are four commands:
file, exec, env, and glob. For more detailed information about recipes,
their format, and commands, please refer to
tools/idf_py_actions/diag/recipes/README.md.

Recipe example for component manager:

description: IDF Component Manager information
tags: [manager, base, project]
output: manager
steps:
  - name: 'IDF Component Manager'
    cmds:
      - exec:
        cmd: 'python -m idf_component_manager version'
        output: manager.ver
      - file:
        path: '${PROJECT_DIR}/dependencies.lock'
      - glob:
        # Gather all idf_component.yml files from the project directory and
        # save them in directories relative to the project directory within
        # the idf_component directory.
        pattern: 'idf_component.yml'
        recursive: true
        relative: true
        path: '${PROJECT_DIR}'
        output: 'idf_component/'

Create report for manager

1) all recipes with manager tag

   $ idf.py diag --tag manager

2) use only the manager recipe explicitly; built-in recipes can be
   referenced simply by their name, but all recipes can be referenced
   by their path

   $ idf.py diag --recipe manager
   or
   $ idf.py diag --recipe <full path>

To display available recipes, use

   $ idf.py diag --list

and to verify recipes, use

   $ idf.py diag --check

Both --list and --check honers the --tag and --recipe options.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-27 12:08:59 +01:00
Frantisek Hrbata 642855c952 feat(tools): add command arguments in the logs produced by RunTool
Currrently, all logs generated by RunTool are stored in files named
idf_py_(stdout|stderr)_output_$$, making it difficult to identify which
log corresponds to which command. To simplify this for idf-diag, include
the command arguments at the beginning of the log. This will allow
idf-diag to use regex to differentiate logs for build, monitor, flash,
and other commands and targets.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-27 12:02:23 +01:00
Marek Fiala 2c814ef2fa feat(tools): Enforce utf-8 encoding with open() function 2024-12-27 17:12:21 +08:00
Roland Dobai 5603258961 Merge branch 'fix/missing_header_hint' into 'master'
fix(hints): improve suggestion for missing header file

Closes IDF-11895

See merge request espressif/esp-idf!35728
2024-12-20 19:39:54 +08:00
Roland Dobai 757d74abae Merge branch 'fix/failing_create_readonly_test_on_win' into 'master'
fix(tools): fixed failing Win CI (tests read_only, cli)

Closes IDF-11782

See merge request espressif/esp-idf!35549
2024-12-19 21:41:50 +08:00
David Čermák 7e2464720e Merge branch 'feat/lwip_extern_decl_sockutls' into 'master'
feat(lwip): Declare additional POSIX API if available

Closes IDFGH-14028 and IDFGH-12794

See merge request espressif/esp-idf!35683
2024-12-19 18:14:17 +08:00
David Cermak d66b6e2749 feat(hints): Add hints on using external sock utilities 2024-12-17 11:18:46 +01:00
Frantisek Hrbata 0c2843a071 fix(hints): improve suggestion for missing header file
Currently, we are only suggesting that the header file is likely not
part of the component's INCLUDE_DIRS. However, the header file may be
missing also because of the configuration settings. For instance, the
component might be disabled in sdkconfig, or the feature that supplies
the header might not be enabled. Enhance the hint message to address
this scenario as well.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-17 10:56:26 +01:00
Marek Fiala 0b78083595 fix(tools): fixed test_create_project_with_idf_readonly on Win 2024-12-16 14:55:15 +01:00
Tomas Rezucha bf86ab3926 feat(dfu): Enable DFU on ESP32-P4 2024-12-11 09:23:32 +01:00
Roland Dobai bfe065003d Merge branch 'fix/monitor_no_elf' into 'master'
fix(tools): fix running monitor without elf file

Closes IDF-11821

See merge request espressif/esp-idf!35479
2024-12-09 21:40:53 +08:00
Alexey Lapshin e0bb3a25e4 fix(tools): fix idf.py gdb execution in case app was not built 2024-12-06 19:15:56 +07:00
Peter Dragun 54d3c090be fix(tools): fix running monitor without elf file 2024-12-06 09:48:48 +01:00
Frantisek Hrbata 496e9cdff8 fix(hints): handle multiple missing headers in the output
The object files are compiled simultaneously, which can result in
several error messages about missing headers. The current regex used to
find missing headers in the compiler's output employs a greedy search,
potentially capturing multiple error messages from different compilation
units. This can cause bug reports where the original component cannot be
identified. Strengthen the regex to ensure it only processes the first
reported error.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-20 18:41:55 +08:00
Alexey Lapshin 2a6e08431b Merge branch 'feature/move-gdb-options-to_project_description_json' into 'master'
feat(debugging): move gdbinit generation to CMake

Closes IDF-11489

See merge request espressif/esp-idf!34779
2024-11-20 14:30:40 +08:00
Alexey Lapshin 48a49c8154 feat(debugging): move gdbinit generation to CMake
This feature is useful for 3rd-party software to run GDB with predefined
options that described in project_description.json file

allow to pass custom options to "idf.py gdb":

  --gdb-commands: command line arguments for gdb. (without changes)
  -ex: pass command to gdb.
  -x: pass gdbinit file to gdb. Alias for old --gdbinit command
2024-11-19 16:41:38 +07:00
Peter Dragun 6495a8318d Merge branch 'monitor_multi_elf' into 'master'
feat(monitor): Add support for decoding output based on multiple ELF files

Closes IDF-11026

See merge request espressif/esp-idf!34858
2024-11-19 17:18:35 +08:00
Tomas Rezucha 66596b7f59 feat(hints/usb): Add a hint about too small control transfer size 2024-11-18 21:03:30 +08:00
Peter Dragun 28dcb9a889 feat(monitor): Add support for decoding output based on multiple ELF files 2024-11-18 12:35:45 +01:00
gaoxu 64bbb53b8f feat(esp32h21): introduce target esp32h21(stage 1) 2024-11-12 15:42:27 +08:00
Aditya Patwardhan 6930dff98d Merge branch 'feature/add_option_to_provide_flash_file_for_qemu' into 'master'
feat(tools): Added option to specify flash image in "idf.py qemu"

See merge request espressif/esp-idf!34031
2024-10-24 02:22:43 +08:00