Commit Graph

1045 Commits

Author SHA1 Message Date
Aditya Patwardhan
67e10e2b56 change(secure_boot): mark ECDSA based Secure Boot V2 as insecure on affected SoCs
ECDSA based Secure Boot V2 is not functional for certain input vectors on
ESP32-C5/C61/H2/P4 and on the preview targets ESP32-H4/H21. RSA based Secure
Boot V2 is the recommended scheme where the SoC supports it. This issue will be
fixed in a future hardware ECO revision; more details will be shared through the
hardware errata document.

A new hidden Kconfig option SECURE_BOOT_V2_ECDSA_INSECURE marks the affected
mass-production SoCs (ESP32-C5/C61/H2/P4). On these SoCs, when hardware Secure
Boot V2 is enabled, the ECDSA (V2) signing scheme is no longer offered by
default; it must be turned on explicitly via SECURE_BOOT_V2_FORCE_ENABLE_ECDSA
under "Allow potentially insecure options" (CONFIG_SECURE_BOOT_INSECURE). App
signing without hardware Secure Boot is not affected. Note that ESP32-C61 has no
RSA based Secure Boot V2, so it has no Secure Boot scheme enabled by default.

The preview targets ESP32-H4 and ESP32-H21 mark ECDSA Secure Boot V2 as not
supported in their SoC capabilities instead of using the option above. As
ESP32-H4 has no other Secure Boot V2 scheme, Secure Boot is disabled entirely on
it; ESP32-H21 retains RSA based Secure Boot V2.

The security documentation keeps the ECDSA Secure Boot V2 content visible and
adds a warning describing the limitation (including that ECDSA Secure Boot V2 on
ESP32-C61 is not recommended for production). CI apps that exercise ECDSA Secure
Boot V2 on the affected SoCs set CONFIG_SECURE_BOOT_V2_FORCE_ENABLE_ECDSA
accordingly.
2026-06-09 16:55:57 +05:30
Guillaume Souchere
a010738ec2 Merge branch 'feat/new-freertos-linux-simulator' into 'master'
feat(freertos): Refactor linux simulator

Closes IDF-8339

See merge request espressif/esp-idf!43564
2026-06-05 12:18:44 +02:00
Marius Vikhammer
1d311a7349 Merge branch 'feature/psram_freertos' into 'master'
feat(freertos): added option for automatically placing task stacks in PSRAM

Closes IDF-15538, IDF-15539, and IDF-15540

See merge request espressif/esp-idf!48953
2026-06-05 09:08:33 +08:00
Guillaume Souchere
78420f2614 feat(freertos): soft-preempting linux simulator 2026-06-04 11:36:21 +02:00
Marius Vikhammer
d21dc8ca2e feat(freertos): added option for automatically placing task stacks in PSRAM
When CONFIG_FREERTOS_PLACE_TASK_STACKS_IN_EXT_RAM is enabled freertos will
now automatically allocate task stacks to PSRAM.
2026-06-04 16:06:52 +08:00
Guillaume Souchere
d670774f5c feat(esp_common): implement composable error code registration via link-time arrays
Refactor the esp_err_to_name() system to decouple esp_common from
higher-level components. Instead of a monolithic generated table,
each component registers its error codes into a dedicated linker
section (.esp_err_msg_table) via idf_define_esp_err_codes() in its
CMakeLists.txt.

New files:
- tools/err_codes_extract.py: extract ESP_ERR_* defines from headers to CSV
- tools/err_codes_to_c.py: generate C source placing entries into linker section
- tools/err_codes_to_rst.py: generate RST documentation from error codes
- tools/cmake/err_codes.cmake: CMake module providing idf_define_esp_err_codes()
- components/esp_common/include/esp_err_codes.h: esp_err_msg_t typedef
- components/esp_common/src/esp_err_to_name_new.c: new lookup using link-time array
- tools/test_apps/build_system/err_codes_check/: CI test app

Changes:
- Remove all optional component dependencies from esp_common/CMakeLists.txt
- Add .esp_err_msg_table section to all 5 linker scripts
- Register error codes in 18 components via idf_define_esp_err_codes()
- Add new scripts to .gitlab/ci/rules.yml build_check patterns
- use new scripts to generate doc and add CI validation
- Update esp_err.rst to add description of composable code registration
2026-05-28 09:53:32 +02:00
Sudeep Mohanty
301eeba878 Merge branch 'task/buildv2_hygiene_and_dep_declarations' into 'master'
fix(components): generic dep-declaration and scope-leakage hygiene exposed by cmakev2

See merge request espressif/esp-idf!48739
2026-05-26 10:18:22 +02:00
Renz Bagaporo
f6bf9206cc test(ci): re-enable skipped ESP32-H4 unicore bootloader tests 2026-05-22 11:10:28 +09:00
Sudeep Mohanty
6084733b91 fix(test_apps/g0_components): skip -D injection when Kconfig is processed
The CMakeLists injects CONFIG_ESP_REV_MIN_FULL and CONFIG_XTAL_FREQ on
the command line because those symbols live in esp_common's Kconfig,
which is outside the G0 closure and is not loaded during a restricted
COMPONENTS build. When every discovered component's Kconfig is processed
(IDF_BUILD_V2) the symbols are already defined via their Kconfig
defaults, and the additional -D would conflict with the existing
definition.

Gate the injection so it only runs when the Kconfig is not processed.
2026-05-21 13:58:27 +02:00
Sudeep Mohanty
6c3d8f8de5 fix(g1_components): force VFS_SUPPORT_IO=n for restricted COMPONENTS build
g1_components builds a minimal COMPONENTS list. When every component's
Kconfig is processed, components/vfs/Kconfig sets VFS_SUPPORT_IO=y by
default, and the conditional requires in esp_stdio and esp_libc pull
vfs, esp_driver_uart, and their transitive deps into the closure.

Add an sdkconfig.defaults that forces the symbol off so the dependency
graph stays restricted to the components actually under test.
2026-05-21 13:58:27 +02:00
Sudeep Mohanty
fb7d325b72 test(g1_components): record dep edges surfaced by DEFERRED optional requires
expected_dep_violations only listed the edges visible when
idf_component_optional_requires was a no-op for the dependency graph.
Under build system v2's DEFERRED mode the call propagates the resolved
dependency back into PRIV_REQUIRES, and the graph also captures
esp_common -> {efuse, bootloader_support, app_update} and esp_system ->
esp_app_format.

Add those entries so the script does not flag them when IDF_BUILD_V2
is set.
2026-05-21 13:58:22 +02:00
Sudeep Mohanty
77b7625b81 fix(test_apps/memprot): declare esp_hal_wdt as a private requirement of main
main/{esp32s2,esp32c3,esp32s3}/test_panic.c uses WDT registers from
esp_hal_wdt. Declare it explicitly so the build works under cmakev2's
strict component isolation.
2026-05-21 10:05:48 +02:00
Sudeep Mohanty
bdcd2d611c fix(test_apps/gdb): declare spi_flash as a private requirement of main
main/hello_world_main.c uses spi_flash headers. Declare spi_flash in
PRIV_REQUIRES so the build works under cmakev2's strict component
isolation.
2026-05-21 10:05:48 +02:00
Marius Vikhammer
ddea7a5c42 Merge branch 'ci/panic_test_split_coredump' into 'master'
ci: trim panic_coredump build-test dependencies

See merge request espressif/esp-idf!48442
2026-05-20 15:36:42 +08:00
C.S.M
e4d26b2572 feat(tsens): Add tsens support on esp32s31 2026-05-18 11:07:58 +08:00
Marius Vikhammer
6377ac3ec2 test(panic): refactor panic test to split out coredump 2026-05-15 11:00:44 +08:00
Mahavir Jain
cee71ceb39 Merge branch 'feat/enable_secure_boot_support_for_esp32h4' into 'master'
feat: enable support for secure boot in esp32h4

Closes IDF-12262 and IDF-12966

See merge request espressif/esp-idf!45603
2026-05-13 19:07:25 +05:30
Marius Vikhammer
1a65724653 Merge branch 'ci/h4_core_sys_test' into 'master'
test(ci): re-enable ESP32-H4 in core system test apps

Closes IDF-15602, IDF-15604, IDF-15605, IDF-15606, and IDF-15612

See merge request espressif/esp-idf!48454
2026-05-13 14:24:16 +08:00
Marius Vikhammer
8f6ea2a1ba test(ci): re-enable ESP32-H4 in core system test apps
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 09:00:12 +08:00
Konstantin Kondrashov
485ab9aa29 Merge branch 'feature/recovery_bootloader_support' into 'master'
feat(bootloader): Support recovery bootloader for ESP32P4

Closes IDF-15653 and IDF-13165

See merge request espressif/esp-idf!48215
2026-05-12 23:24:40 +03:00
Marius Vikhammer
96333567e8 ci(system): fixing misc core system H4 tests 2026-05-12 17:12:30 +08:00
C.S.M
036fcf8e37 Merge branch 'feat/bod_bringup_s31' into 'master'
feat(bod): Add bod support on esp32s31

Closes IDF-14658

See merge request espressif/esp-idf!48310
2026-05-12 15:29:19 +08:00
C.S.M
2b7992213c feat(bod): Add bod support on esp32s31 2026-05-12 12:30:35 +08:00
nilesh.kale
76e2e6d53f feat: enable support for secure boot in esp32h4 2026-05-11 16:26:01 +05:30
Chen Jichang
3c3b9a6a4e ci(esp32h4): disable tests which cannot pass 2026-05-11 16:48:58 +08:00
Chen Jichang
645ff40cde ci(esp32h4): enable ci target test 2026-05-11 16:48:58 +08:00
Konstantin Kondrashov
dd9a0a9a93 fix(test_apps): Increase CONFIG_PARTITION_TABLE_OFFSET to 0x9000
Fix some test apps that have a partition table offset of 0x8000,
which left no room for the bootloader for some chips.
2026-05-08 16:45:14 +03:00
Marius Vikhammer
64b1eeda3b Merge branch 'ci/deprecate_template_app' into 'master'
ci(build): remove esp-idf-template dependency, use in-tree test apps

See merge request espressif/esp-idf!47737
2026-05-07 16:48:10 +08:00
Jiang Jiang Jian
da0210b056 Merge branch 'fix/phy_tsens_test_app' into 'master'
fix(test_apps): fix bugs in phy tsens test apps

See merge request espressif/esp-idf!47046
2026-05-06 19:25:37 +08:00
Mahavir Jain
cadda9929e Merge branch 'feat/update_mbedtls_4_1_1' into 'master'
feat(mbedtls): update to version 4.1.0

Closes IDF-15544

See merge request espressif/esp-idf!47234
2026-05-05 14:00:03 +05:30
Ashish Sharma
cd38d68bd1 feat(bootloader_support): remove P192 curve support 2026-04-30 18:04:00 +08:00
sonika.rathi
8a9d7fdc30 fix(fatfsgen): stabilize host read-flash after UART close in pytest 2026-04-30 09:53:47 +02:00
Marius Vikhammer
c06bf7de44 ci(build): removed and replaced template with regular test-apps 2026-04-29 15:21:30 +08:00
yinqingzhao
61d08eb708 fix(test_apps): fix bugs in phy tsens test apps 2026-04-28 20:38:16 +08:00
yinqingzhao
c3da80ee52 feat(wifi): add esp32s31 wifi support 2026-04-16 20:17:07 +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
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
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
Marius Vikhammer
82c1f71d96 ci(esp_intr_dump): add expected output for esp32s31 2026-04-08 09:43:21 +08:00
C.S.M
152b5ccb4c ci(esp32s31): Add ci target test for esp32s31 2026-04-03 11:38:45 +08:00
Euripedes Rocha Filho
985af4a130 fix: Component depends rules for networking and protocols
Reduces the scope of testing to the direct dependencies.
2026-04-01 12:43:03 +02:00
Fu Hanxi
e93cda6391 Merge branch 'ci/apply-idf-ci-1.x' into 'master'
ci: upgrade idf-ci to 1.x

Closes CII-108

See merge request espressif/esp-idf!46623
2026-03-30 19:31:53 +02:00