Commit Graph

218 Commits

Author SHA1 Message Date
Sarvesh Bodakhe
94f226d73b feat(wifi): NAN encrypted datapath (Wi-Fi Aware M1-M4 handshake)
Implement the NAN Data Path encrypted datapath per Wi-Fi Aware v4.0
(§7.1.3.5, §9.5.16):

- Responder + initiator sides of the M1-M4 Shared-Key Descriptor
  exchange, with MIC compute/verify, PTK derivation, and PMK/PMKID
  derivation via PBKDF2-SHA256 over passphrase or pre-shared PMK.
- CSIA / SCIA attribute build + parse, NCS-SK-128 cipher suite.
- Per-NDL security context on ndl_info::security_ctx; per-svc PMK cache.
- ndp_response_indication callback for initiator peer-NDI binding.
- host<->blob ABI migrated from 27 direct esp_nan_* externs to a single
  nan_secure_dp_funcs callback struct in esp_private/wifi.h.
- nan_security.c split out of nan_app.c (~340 lines de-duplicated into
  shared M1-M4 helpers).
- CONFIG_ESP_WIFI_NAN_ENCRYPTED_DATAPATH gates the secure path so non-
  security builds compile out the crypto/handshake code.
- ROM patch (esp32s31): mask ieee80211_encap_esfbuf to match the
  c5/c6/c61 pattern for NAN-capable chips.

Hardening: PMK stack copies zeroized on every return, NDP attribute
parsers bounds-checked, CSID range-checked before shifting, NDL slot
reuse only when handshake state is IDLE, get_csia/scia_len aligned with
their builders on empty input.

API surface: NDP security types moved out of esp_wifi_types_generic.h
into esp_private/wifi.h (internal-only). security pointer dropped from
struct ndp_cb_peer_info. Discovery-side wifi_nan_security_type_t and
the NDP Info callbacks removed (subsumed by csid_bitmap and SSI
respectively).
2026-05-19 11:07:06 +05:30
Kapil Gupta
b585c0b364 fix(esp_wifi): Fixed some issues in roaming app found using static analysis 2026-05-06 15:50:54 +08:00
Song Ruo Jing
8f0e59fadf Merge branch 'feature/esp32s31_clock_support' into 'master'
feat(clk): support for esp32s31 clock tree

Closes IDF-14696 and IDF-14871

See merge request espressif/esp-idf!47048
2026-04-03 11:04:42 +08:00
Song Ruo Jing
50051b74a5 feat(clk): support for esp32s31 clock tree 2026-04-02 20:39:59 +08:00
Radim Karniš
c62515671d change(build): Rename Fast reflashing configuration to Minimize binary changes, make non-experimental 2026-04-02 10:53:32 +02:00
gaoxu
8ce11e1608 change(esp_hw_support): h21 eco1 support and fix drom address error 2026-03-25 15:38:49 +08:00
Jan Beran
ae6cc85d80 Revert "fix(linux): disable binary generating for linux target, leave only elf"
This reverts commit 31b2a047f2.
2026-02-25 09:44:30 +01:00
Jan Beran
31b2a047f2 fix(linux): disable binary generating for linux target, leave only elf 2026-02-24 13:47:12 +01:00
Marius Vikhammer
41e91faf79 Merge branch 'feature/s31_ipc_freertos' into 'master'
test(freertos): enable tests for esp32-s31

Closes IDF-14685, IDF-14682, and IDF-14668

See merge request espressif/esp-idf!45246
2026-01-23 10:13:32 +08:00
Marius Vikhammer
c9cf1b2fe5 fix(freertos): limit the experimental support of FREERTOS_SMP to esp32 2026-01-22 10:04:18 +08:00
C.S.M
e019482a36 docs(i3c): Add i3c master programming guide 2026-01-13 19:56:39 +08:00
Chen Jichang
8702d5c986 feat(clk): support clk tree on h4mp 2026-01-04 14:07:01 +08:00
Alexey Lapshin
bb1652a588 change(build): remove outdated string in COMPILER_ENABLE_RISCV_ZCMP help 2025-12-14 14:41:41 +07:00
Alexey Lapshin
31810ae993 feat(esp_libc): make picolibc default libc 2025-12-03 13:31:42 +07:00
Ashish Sharma
69ea28c886 feat: add Kconfig option for mbedTLS 4.x 2025-12-01 14:05:05 +08:00
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
a90c93541c feat(esp32s31): Introduce new target esp32s31 2025-11-17 14:48:55 +08:00
Alexey Lapshin
b0388ad4a5 feat(build): add COMPILER_ENABLE_RISCV_ZCMP option
Applicable for chips affected by interrupt issue:
  - ESP32C5
  - ESP32C61
  - ESP32H4

For all other chips that support the ZCMP extension without issues,
it will be enabled unconditionally.
2025-11-14 21:04:58 +07:00
Frantisek Hrbata
a034ef8713 feat(build): add initial configuration for fast reflashing
Introduce ESPTOOLPY_FAST_REFLASHING configuration option. It instructs
ldgen to group entity mappings for libraries deemed mutable (prone to
change) separately from those considered immutable (unlikely to change).

Organizing mutable and immutable libraries separately in the linker
script allows the linker to form larger contiguous blocks of data for
immutable libraries in the application's output sections. These blocks
are likely to stay mostly unchanged between application recompilations,
enabling them to be skipped during reflashing.

Separating mutable and immutable libraries in the linker script to
minimize changes in the output sections is insufficient. Padding is
added after the input sections of mutable libraries in the default data
and text output sections. This creates a buffer for the mutable
libraries, allowing additional changes to be made without altering the
layout of the binary image.

Additionally two optimizations currently in use can still mix data from
these libraries, leading to significant changes even within the grouped
immutable libraries.

1. constant merging

    Linker will try to merge input sections that have the MERGE and
    STRING flags from different libraries (object files) to perform
    optimizations like tail merging. For example, adding a string
    literal in a mutable library will also change the addresses of
    string literals from immutable libraries in such a merged section,
    causing changes in the generated code when those literals are
    referenced.

    Disabled with COMPILER_DISABLE_MERGE_CONSTANTS(-fno-merge-constants)

2. literal pools on Xtensa

    As optimization, the linker may merge literal pools from different
    libraries (object files) to improve the generated code size. This
    has the same effect as constant merging, and changes in mutable
    libraries may cause changes in the generated code for immutable
    libraries. To get larger unchanged continuous blocks in the text
    output sections for immutable libraries, we need to ensure that the
    Xtensa literal pools remain close to their references and are not
    merged.

    Disabled with CONFIG_COMPILER_ENABLE_TEXT_SECTION_LITERALS(-mtext-section-literals)

When ESPTOOLPY_FAST_REFLASHING is enabled, these two optimizations are
disabled to achieve larger unchaged continuous blocks for the grouped
immutable libraries, even though disabling these optimizations results
in slightly larger code.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-13 15:30:42 +01:00
Frantisek Hrbata
947d78a04e fix(kconfig): distinguish project configuration menu for excluded components
Currently both menu configs, for component's project configuration and
component's configuration, for components not included in the build have
the same name: "Configuration for components not included in the build".
This might be confusing. Let's use "Project configuration for components
not included in the build" for component Kconfig.projbuild files.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-04 11:39:19 +01:00
Roland Dobai
a0b589c147 Merge branch 'feat/cmakev2' into 'master'
feat(cmakev2): introduce cmake-based build system v2

See merge request espressif/esp-idf!42691
2025-11-04 02:53:36 +01:00
Frantisek Hrbata
2c518b2ca3 feat(Kconfig): source configuration for components not included in the build
Introduce new configuration menus for components that are not part of
the build. These menus will only be visible if the IDF_BUILD_V2
environment variable is defined and it will be set only in cmakev2. This
enables sharing of the root Kconfig file between cmakev1 and cmakev2.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-10-30 17:17:49 +08:00
Ashish Sharma
acf89924c8 feat(esp_http): migrate esp_http to PSA API 2025-10-26 10:13:14 +08:00
Peter Dragun
e3198fff3c feat: Update esptool to v5 2025-09-30 15:28:55 +02:00
Konstantin Kondrashov
0096599660 feat(build): Default warnings to be considered as errors 2025-09-26 10:15:46 +03:00
Alexey Gerenkov
f3dba4f778 Merge branch 'feature/add-constexpr-noinline-for-libstdcxx' into 'master'
feat(build): add CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR choise option

See merge request espressif/esp-idf!42079
2025-09-25 09:26:23 +08:00
Alexey Lapshin
6d1d5ccb1c feat(build): add CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR choise option
Allow to disable implicit inlining of constexpr functions from libstdc++.
This is a known GCC issue https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93008
that may affect C++ application size depending on its structure.
2025-09-23 15:13:28 +07:00
Marius Vikhammer
b46d001f6d change(newlib): COMPILER_ASSERT_NDEBUG_EVALUATE default value changed to 'n'
Closes https://github.com/espressif/esp-idf/issues/2758
2025-09-19 15:41:18 +08:00
armando
179d00a6f8 feat(p4): p4 rev3 real chip support 2025-08-28 17:56:16 +08:00
Chen Jichang
f8480a115a feat(h4mp): update breaking soc headers(part2) 2025-08-22 16:27:39 +08:00
gaoxu
41f954facf feat(h21_mp): update H21_MP soc headers 2025-08-21 14:19:41 +08:00
Alexey Lapshin
4dc6cb3fa1 change(newlib): change CONFIG_NEWLIB* prefix to CONFIG_LIBC_NEWLIB* 2025-08-11 19:06:44 +07:00
C.S.M
9b17b8470e feat(i3c): Add example for i2c mode in i3c peripheral 2025-07-21 19:23:29 +08:00
Song Ruo Jing
3519fbd30b Merge branch 'feature/esp32h4_clock_support' into 'master'
feat(clk): Add basic clock support for esp32h4

Closes IDF-12285, IDF-12912, and IDF-12499

See merge request espressif/esp-idf!40166
2025-07-11 15:51:43 +08:00
Song Ruo Jing
28df79aee8 feat(clk): Add basic clock support for esp32h4 2025-07-10 16:35:53 +08:00
armando
dfb0662de2 feat(esp32p4): support eco5 on fpga 2025-07-10 06:24:32 +00:00
Alexey Lapshin
0be466755b feat(build): add CONFIG_COMPILER_DISABLE_GCC15_WARNINGS and toolchain migration-guide 2025-06-25 18:01:47 +07:00
Song Ruo Jing
6d293c8582 feat(clk): Add basic clock support for esp32h21 2025-06-16 15:05:32 +08:00
Alexey Lapshin
555c511d28 feat(build): change orphan-handling behavior to error 2025-06-10 14:44:01 +08:00
Chen Ji Chang
713a63fb9f Merge branch 'feat/gdma_weight_based_arbitration' into 'master'
feat(gdma): support gdma weighted arbitration on C5 ECO2

Closes IDF-8007

See merge request espressif/esp-idf!32826
2025-05-29 19:59:44 +08:00
Chen Jichang
16d25b4a52 feat(gdma): support gdma weighted arbitration on ESP32C5 2025-05-29 11:41:02 +08:00
Marius Vikhammer
eb76e6341d Merge branch 'feature/h4_core_support' into 'master'
feat(core): bringup dual-core for H4

Closes IDF-12317, IDF-12319, IDF-12484, IDF-12311, and IDF-12293

See merge request espressif/esp-idf!39279
2025-05-28 14:42:58 +08:00
Marius Vikhammer
e527554144 feat(core): bringup dual-core for H4 2025-05-26 17:11:12 +02:00
laokaiyao
0359404330 feat(esp32c5): enable stub for esp32c5 eco2 2025-05-26 13:08:46 +08:00
laokaiyao
9a88effab8 ci: disabled RF soc caps for c5 eco2
Disable the RF soc caps to bypass the build of un-supported RF examples
2025-04-16 11:01:39 +08:00
laokaiyao
0abc755342 feat(rom): update rom for c5 eco2
Breaking: Starting from this commit, ESP-IDF can only support ESP32-C5 v1.0 (ECO2)
2025-04-16 11:01:36 +08:00
Chen Jichang
45ba78940f feat(esp32h4): finnal introduce hello world 2025-03-19 18:48:41 +08:00
Roman Leonov
858947e461 feat(ext_hub): Added support for low-speed devices, connected via hubs 2025-02-24 19:39:53 +08:00
Chen Jichang
6f83f39dce feat(esp32h4): introduce target esp32h4(stage 1) 2025-02-08 17:07:44 +08:00
Alexey Lapshin
888b5f7e8d feat(newlib): add picolibc support 2024-12-02 21:35:56 +07:00