Commit Graph
34704 Commits
Author SHA1 Message Date
Sudeep Mohanty 11dc12d2dd test(lp_core): use soc_filtered_targets for all LP core pytest parametrization
Made-with: Cursor
2026-04-28 16:14:00 +02:00
Sudeep Mohanty 299480a5c0 test(lp_core): extend LP UART multi-device test coverage
Refactor the LP UART multi-device tests to use a single parameterised
helper pair (test_lp_uart_write_cfg / test_lp_uart_read_cfg) instead of
one-off functions per config, and extend coverage to:

- write and read tests for 5-, 6-, 7-bit and even-parity configurations
- negative tests: word-length mismatch (FRAM_ERR recovery on LP side,
  garbled receive on HP side)
- LP GPIO Matrix routing tests (SOC_LP_GPIO_MATRIX_SUPPORTED chips only):
  swaps the default TX/RX GPIO numbers so both pins go through the LP GPIO
  Matrix, covering the lp_gpio_connect_in/out_signal() branch of
  lp_uart_config_io() that was previously untested at the data-transfer
  level; the same physical cross-wiring as all other LP UART tests is reused

Add rtc_gpio_deinit() cleanup at the end of single-board LP UART tests
so configured pins are returned to HP/digital mode and do not interfere
with subsequent tests that may reuse the same GPIOs.
2026-04-28 16:14:00 +02:00
Sudeep Mohanty 379f50a196 fix(lp_core): skip LP UART RTS/CTS pin setup when flow control is disabled
lp_core_uart_set_pin() unconditionally configured the RTS and CTS GPIO
pins even when flow control was disabled. Only configure the RTS pin
when UART_HW_FLOWCTRL_RTS is set, and the CTS pin when
UART_HW_FLOWCTRL_CTS is set.
2026-04-28 16:14:00 +02:00
Sudeep Mohanty 3b92ee04f0 fix(lp_core): fix LP UART IOMUX pin not bypassing LP GPIO Matrix for RX
On chips with SOC_LP_GPIO_MATRIX_SUPPORTED (esp32p4, esp32s31), when the
default IOMUX pin is used for LP UART, calling rtc_gpio_iomux_func_sel()
alone only selects the IOMUX function on the pad side but does not set
sig_in_sel=0 on the peripheral side. This leaves the LP UART RX input
still reading from the LP GPIO Matrix (where no signal is connected),
causing RX to receive nothing.

Apply the same fix that was already in the HP UART driver: use
rtc_gpio_iomux_input() / rtc_gpio_iomux_output() which additionally
configure the peripheral to bypass the LP GPIO Matrix for IOMUX pins.
2026-04-28 16:14:00 +02:00
Sudeep Mohanty 57167c2c74 fix(lp_core): fix LP UART init parameter validation
Align data_bits, flow_ctrl, and rx_flow_ctrl_thresh checks with uart_param_config().

Made-with: Cursor
2026-04-28 16:13:59 +02:00
Zhang Wen Xu 5f464307a7 Merge branch 'feat/radio_spinel_driver_interface_optimization_v6.0' into 'release/v6.0'
feat(openthread): optimize radio spinel uart interface (v6.0)

See merge request espressif/esp-idf!47410
2026-04-28 09:26:43 +00:00
Island 8f8afe6c98 Merge branch 'bugfix/fix_ble_pair_fail_v6.0' into 'release/v6.0'
fix(bt/bluedroid): fix BLE SMP pairing failure on BLE-only devices when using defalut param (6.0)

See merge request espressif/esp-idf!47401
2026-04-28 17:24:20 +08:00
morris 7a6ab6f1fb Merge branch 'fix/fix_mmu_dirom_reserve_search_logic_v6.0' into 'release/v6.0'
mmu: fixed drom/irom reservation bus cap search logic (v6.0)

See merge request espressif/esp-idf!47389
2026-04-28 16:47:02 +08:00
morris af360295bb Merge branch 'bugfix/lp_uart_rx_iomux_pin_not_work_v6.0' into 'release/v6.0'
fix(uart): lp uart rx iomux pin was not working as expected (v6.0)

See merge request espressif/esp-idf!47607
2026-04-28 16:46:48 +08:00
morris f1e632bcf1 Merge branch 'change/isp_hsize_check_v6.0' into 'release/v6.0'
isp: hsize check and lut size check (v6.0)

See merge request espressif/esp-idf!46987
2026-04-28 16:46:20 +08:00
morris 04c10be114 Merge branch 'fix/uhci_esp32p4_cache_v6.0' into 'release/v6.0'
fix(uhci): fix uhci cache issue on ESP32-P4 (v6.0)

See merge request espressif/esp-idf!47917
2026-04-28 16:44:32 +08:00
morris 2b874adaef Merge branch 'fix/uhci_test_3_v6.0' into 'release/v6.0'
test(uhci): fix false-pass bug in UHCI receive test (v6.0)

See merge request espressif/esp-idf!47662
2026-04-28 16:43:13 +08:00
morris 9bc9ac583c Merge branch 'fix/fix_spi_lcd_psram_mode_v6.0' into 'release/v6.0'
fix(spi_lcd): add a flag to decide whether dma accsess psram (v6.0)

See merge request espressif/esp-idf!47795
2026-04-28 16:42:33 +08:00
morris 5152f19a65 Merge branch 'fix/fix_lcd_cmd_bypassd_unexpectedly_v6.0' into 'release/v6.0'
fix(lcd): fix lcd cmd be bypassd unexpectedly (v6.0)

See merge request espressif/esp-idf!47805
2026-04-28 16:42:24 +08:00
morris 88483aeef2 Merge branch 'fix/isp_clk_error_v6.0' into 'release/v6.0'
Fix ISP clk source error and hal init error (v6.0)

See merge request espressif/esp-idf!47323
2026-04-28 16:41:23 +08:00
morris d53e191915 Merge branch 'fix/i2c_fsm_reset_sequence_v6.0' into 'release/v6.0'
fix(i2c): reset master before bus clear on chips without HW FSM reset (v6.0)

See merge request espressif/esp-idf!47507
2026-04-28 16:40:53 +08:00
morris 7189c22ef2 Merge branch 'doc/i2c_master_probe_comment_update_v6.0' into 'release/v6.0'
docs(i2c): update i2c_master_probe parameter comment (v6.0)

See merge request espressif/esp-idf!47511
2026-04-28 16:40:43 +08:00
Wang Meng Yang 622dcfb864 Merge branch 'bugfix/ai_review_hfp_v6.0' into 'release/v6.0'
fix(bt): fix HFP issues reported by AI code review (v6.0)

See merge request espressif/esp-idf!47761
2026-04-28 15:16:13 +08:00
Wang Meng Yang f93ff3e5f0 Merge branch 'bugfix/btm_sec_free_dev_v6.0' into 'release/v6.0'
fix(bt): avoid deleting device record on partial transport cleanup (v6.0)

See merge request espressif/esp-idf!47294
2026-04-28 15:15:08 +08:00
Wang Meng Yang 068145be52 Merge branch 'bugfix/ai_review_avrcp_v6.0' into 'release/v6.0'
fix(bt): fix AVRCP component issues reported by AI review (v6.0)

See merge request espressif/esp-idf!47676
2026-04-28 15:14:06 +08:00
Wang Meng Yang 8b82ddcadd Merge branch 'bugfix/spp_deinit_v6.0' into 'release/v6.0'
fix(bt/bluedroid): flushed all the DM PM at the end of SPP deinit (v6.0)

See merge request espressif/esp-idf!47289
2026-04-28 15:11:05 +08:00
Roland Dobai 11bc5423c9 Merge branch 'feat/cmakev2_bootloader_v6.0' into 'release/v6.0'
feat(cmakev2): build bootloader using the cmakev2 build system (v6.0)

See merge request espressif/esp-idf!47903
2026-04-28 08:53:53 +02:00
Island 7fc3744abd Merge branch 'change/ble_update_lib_20260409_v6.0' into 'release/v6.0'
change(ble): [AUTO_MR] 20260409 - Update ESP BLE Controller Lib (6.0)

See merge request espressif/esp-idf!47419
2026-04-28 14:25:25 +08:00
Island 6cf5b5f67f Merge branch 'dev/ble-log-202603_v6.0' into 'release/v6.0'
dev: BLE Log 202603 (6.0)

See merge request espressif/esp-idf!47277
2026-04-28 13:25:12 +08:00
Zhang Wen Xu 9e2188364b Merge branch 'feat/ot_make_esp_netif_glue_optional_v6.0' into 'release/v6.0'
feat(openthread): make esp_netif glue optional (v6.0)

See merge request espressif/esp-idf!47859
2026-04-28 02:41:19 +00:00
Xu Si Yu 6387704a9d feat(openthread): optimize radio spinel uart interface 2026-04-28 02:40:41 +00:00
Zhang Wen Xu b7cb1587d6 Merge branch 'fix/add_ifndef_ot_config_v6.0' into 'release/v6.0'
fix(openthread): add ifndef guards to ftd / mtd config (v6.0)

See merge request espressif/esp-idf!47171
2026-04-28 02:39:54 +00:00
Shu Chen ae4c1edc0c Merge branch 'feat/update_openthread_upstream_v6.0' into 'release/v6.0'
feat(openthread): update openthread upstream (v6.0)

See merge request espressif/esp-idf!47464
2026-04-28 02:37:57 +00:00
Island 4e1a423a0f Merge branch 'feat/support_adv_monitor_for_bluedroid_host_v6.0' into 'release/v6.0'
feat(ble/bluedroid): support adv monitor feature (6.0)

See merge request espressif/esp-idf!47038
2026-04-28 10:26:54 +08:00
Island 29687c6d70 Merge branch 'bugfix/fix_some_bluedroid_bugs_260121_v6.0' into 'release/v6.0'
Bugfix/fix some bluedroid bugs 260121 (6.0)

See merge request espressif/esp-idf!46984
2026-04-28 10:26:34 +08:00
Island 3ef0ca7e36 Merge branch 'feat/allow_creat_vendor_descriptor_by_service_table_v6.0' into 'release/v6.0'
feat(ble/bluedroid): Allow add vendor descriptor by service table create API (6.0)

See merge request espressif/esp-idf!47043
2026-04-28 10:25:59 +08:00
Marius Vikhammer 2f71725790 Merge branch 'feature/wdt_rom_patch_slim_v6.0' into 'release/v6.0'
fix(esp_hal_wdt): reduce IRAM usage of WDT init ROM patch (v6.0)

See merge request espressif/esp-idf!47359
2026-04-28 09:03:15 +08:00
Marius Vikhammer d11267de2b Merge branch 'docs/refresh-broken-links_v6.0' into 'release/v6.0'
docs: refresh broken documentation links (v6.0)

See merge request espressif/esp-idf!47493
2026-04-28 09:03:01 +08:00
Frantisek Hrbata e1fbff334b fix(cmakev2/bootloader): use bootloader.bin when signing is not enabled
When CONFIG_SECURE_BOOT_V2_ENABLED=y but
CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES is not set, produce the
binary directly as bootloader.bin instead of bootloader-unsigned.bin.

This matches the v1 behavior where the intermediate binary name is
conditional: bootloader-unsigned.bin only when build-time signing is
enabled (so the signed output can be named bootloader.bin), otherwise
the output is bootloader.bin directly.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata c6db3d1d07 fix(cmakev2/project): guard compiler optimization flags with build property
The __init_project_configuration() function in cmakev2's project.cmake
unconditionally applied app-level compiler optimization flags based on
CONFIG_COMPILER_OPTIMIZATION_* Kconfig options. When the bootloader
subproject was built with cmakev2, these app-level flags leaked into the
bootloader compile command alongside the correct bootloader-specific
flags from CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_*.

For example, with the default configuration (app: DEBUG, bootloader:
SIZE), the bootloader received both "-Og -fno-shrink-wrap" (from app
config) and "-Os -freorder-blocks" (from bootloader config). While GCC
uses the last -O flag (-Os wins), the stray -fno-shrink-wrap persisted.

Introduce a SET_COMPILER_OPTIMIZATION build property that defaults to
YES when unset. Subprojects that manage their own optimization flags
(like the bootloader) can set this to NO before calling
idf_project_init() to prevent the default optimization flags from being
applied. This keeps project.cmake generic without requiring it to know
about specific subproject types.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata f34fa1c269 fix(esp_rom): exclude TLSF/multi_heap ROM patches from bootloader build
The bootloader does not use the heap allocator or TLSF, so the ROM
patch files esp_rom_tlsf.c and esp_rom_multi_heap.c are not needed
in the bootloader build.

In the cmakev1 build system this was never an issue because cmakev1
uses an early expansion phase where only Kconfig files for components
listed in BUILD_COMPONENTS are processed. Since the heap component is
not part of the bootloader's component list, its Kconfig options
(CONFIG_HEAP_TLSF_USE_ROM_IMPL, etc.) were never defined and the
conditional compilation of these source files was effectively skipped.

In the cmakev2 build system, Kconfig options from all discovered
components are visible regardless of whether the component is part
of the build. Because the bootloader reuses the main project's
sdkconfig (where CONFIG_HEAP_TLSF_USE_ROM_IMPL defaults to y on
targets with ROM TLSF support like esp32c2), the TLSF patch sources
were being compiled into the bootloader's esp_rom. This caused a
build failure because esp_rom_tlsf.c includes tlsf_block_functions.h
from the heap component, which is not a dependency of esp_rom and is
not part of the bootloader build.

Guard the TLSF and multi_heap ROM patch sources with NOT
BOOTLOADER_BUILD to prevent them from being compiled in the
bootloader context. This fix is compatible with both cmakev1 and
cmakev2.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata bff4657ad6 feat(bootloader): build bootloader using cmakev2
Add CMakeLists_v2.txt to the bootloader subproject, implementing the
bootloader build using the new cmakev2 IDF build framework.

The file covers the full bootloader build pipeline:
- Sets PROJECT_COMPONENTS_SOURCE to "idf_components" so that the
  subproject's built-in components (main/, components/) are treated as
  IDF components (priority 0) rather than project components (priority
  3).  This preserves the cmakev1 behaviour where user-supplied
  components in bootloader_components/ can override the built-in ones.
- Registers optional user-supplied bootloader components from the
  application project's bootloader_components/ directory, with support
  for selectively excluding individual components via
  IGNORE_EXTRA_COMPONENT.
- Bootstraps the cmakev2 framework (idf.cmake) and initialises the
  project with BOOTLOADER_BUILD and NON_OS_BUILD properties, which are
  also exposed as C preprocessor definitions.
- Sets GENERATE_SDKCONFIG to 0 to prevent the bootloader subproject
  from regenerating the main project's sdkconfig, as the bootloader
  has a different set of components and hence different Kconfig files.
- Sets the common implicit component dependencies shared by every
  bootloader component (log, esp_rom, esp_common, esp_hw_support,
  esp_libc, arch-specific component).
- Applies the compiler options specific for bootloader
- Selects the correct target-specific linker script, including a
  separate script for ESP32-P4 silicon revisions < v3.
- Links the bootloader ELF via idf_build_executable and then converts it
  to a flat binary via one of three paths depending on the secure boot
  configuration:
    * No secure boot: plain binary + size check + metadata.
    * Secure Boot V1 one-time-flash: plain binary with post-build
      instructions showing the esptool.py flash command.
    * Secure Boot V1 reflashable: derives the symmetric eFuse key from
      the ECDSA signing key, produces the reflash-digest image, and
      prints burn/flash instructions.
    * Secure Boot V2: produces an unsigned binary, optionally signs it
      with the configured signing key (RSA-PSS 3072, ECDSA P-256, or
      ECDSA P-384) via idf_sign_binary, and prints flash/multi-key
      signing instructions.
- Adds comprehensive inline documentation explaining each section's
  purpose, the rationale behind individual flags, and the relationships
  between Kconfig symbols and generated artefacts.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata 3bd9f3806b fix(bootloader): remove CMAKE_CURRENT_LIST_DIR from bootloader_extra_component_dirs
`CMAKE_CURRENT_LIST_DIR` is actually `components/bootloader`, so it
doesn’t need to be passed via `EXTRA_COMPONENT_DIRS`: the build already
recognizes it as an esp-idf component.

In **cmakev1**, this is silently ignored: if a component with the same
name already exists, its directory is updated and the previous directory
is stored in the `COMPONENT_OVERRIDEN_DIR` component property.

In **cmakev2**, this is correctly detected and reported.

CMake Warning at /home/fhrbata/work/esp-idf/tools/cmakev2/utilities.cmake:63 (message):
   IDF: Component 'bootloader' directory '/home/fhrbata/work/esp-idf/components/bootloader'
   with higher priority 'project_extra_components' will be used instead of component directory
   '/home/fhrbata/work/esp-idf/components/bootloader' with lower priority 'idf_components'
Call Stack (most recent call first):
  /home/fhrbata/work/esp-idf/tools/cmakev2/component.cmake:625 (idf_warn)
  /home/fhrbata/work/esp-idf/tools/cmakev2/idf.cmake:411 (__init_component)
  /home/fhrbata/work/esp-idf/tools/cmakev2/project.cmake:580 (__init_components)
  CMakeLists_v2.txt:28 (idf_project_init)
  CMakeLists.txt:19 (include)

Since it doesn’t make sense to explicitly add the bootloader as an extra
component, remove it.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata 4d85eb5ba7 fix(bootloader_support/cmake): initialize priv_include_dirs variable
For the bootloader build, the `priv_include_dirs` variable is
uninitialized, but it is used in the common call to
`idf_component_register`.

Using uninitialized variables is not allowed in cmakev2 because a
component may be evaluated in the context of another component’s
variable scope.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Frantisek Hrbata 36d3a180cf fix(esp_partition/cmake): remove unused PRIV_INCLUDE_DIRS
Currently, the bootloader version of the `esp_partition` component sets
`PRIV_INCLUDE_DIRS` using the `private_include_dirs` variable. However,
this variable is not properly initialized, which causes issues in
cmakev2. In cmakev2, components are evaluated recursively, and a
component may be evaluated in the context of another component, so
components must initialize all variables before using them.

Moreover, there are effectively no `PRIV_INCLUDE_DIRS` to set when the
component is evaluated for the bootloader. Therefore, remove
`PRIV_INCLUDE_DIRS` entirely for bootloader and test builds.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-04-27 22:07:10 +08:00
Roland Dobai 9130b6dd53 Merge branch 'fix/mmu-page-size-always-pass-v6' into 'release/v6.0'
change(esptool_py): always pass --flash-mmu-page-size to elf2image(v6.0)

See merge request espressif/esp-idf!47421
2026-04-27 16:00:36 +02:00
Mahavir Jain 38e814ba35 Merge branch 'feat/add_server_handshake_failure_user_cb_v6.0' into 'release/v6.0'
feat(esp_https_server): adds support for user callback on handshake failure (v6.0)

See merge request espressif/esp-idf!47492
2026-04-27 19:26:51 +05:30
Mahavir Jain bd42cb2bde Merge branch 'fix/fix_esp_local_ctrl_potential_double_free_v6.0' into 'release/v6.0'
fix(esp_local_ctrl): fixes a potential double free (v6.0)

See merge request espressif/esp-idf!47488
2026-04-27 19:26:05 +05:30
Mahavir Jain ae33665e58 Merge branch 'feat/check_crlf_http_server_response_headers_v6.0' into 'release/v6.0'
feat(esp_http_server): adds check for crlf in response creation (v6.0)

See merge request espressif/esp-idf!47499
2026-04-27 19:25:20 +05:30
Mahavir Jain a7be1ba98c Merge branch 'fix/fix_esp_srp_sec2_auth_bypass_a_mod_n_v6.0' into 'release/v6.0'
fix(esp_srp): reject SRP client public key when A mod N is zero (v6.0)

See merge request espressif/esp-idf!47703
2026-04-27 19:25:01 +05:30
Mahavir Jain 9024a75850 Merge branch 'fix/protocomm-security2-srp-hd-double-free_v6.0' into 'release/v6.0'
fix(protocomm): null srp_hd after free in sec2 command0 error paths (v6.0)

See merge request espressif/esp-idf!47967
2026-04-27 19:24:24 +05:30
Euripedes Rocha c10c02297f Merge branch 'fix/remove_asio_v6.0' into 'release/v6.0'
fix(configs): Remove mentions of ASIO from configs files (v6.0)

See merge request espressif/esp-idf!47644
2026-04-27 15:52:03 +02:00
Euripedes Rocha 600f9daba1 Merge branch 'feat/esp_netif_custom_ip_events_v6.0' into 'release/v6.0'
[esp_netif]: Add support for custom got-ip/lost-ip events (v6.0)

See merge request espressif/esp-idf!47641
2026-04-27 15:42:35 +02:00
Euripedes Rocha 700176ffeb Merge branch 'fix/lwip_sys_mem_frag_v6.0' into 'release/v6.0'
[lwip]: Allocate signals/mboxes once to reduce heap frag (v6.0)

See merge request espressif/esp-idf!47642
2026-04-27 15:33:57 +02:00
Fu Hanxi 3132b2edb1 Merge branch 'ci/eco-to-rev_v6.0' into 'release/v6.0'
ci: rename eco tags to revision (v6.0)

See merge request espressif/esp-idf!47085
2026-04-27 15:31:16 +02:00