Compare commits

..

2751 Commits

Author SHA1 Message Date
Roland Dobai
ea1c174c1c change(version): Update version to 5.4.3 2025-10-21 13:13:31 +02:00
Roland Dobai
33451fa25c Merge branch 'ci/github-docker-build_v5.4' into 'release/v5.4'
GitHUB CI fix: Add GH hosted large runner for Docker builds (v5.4)

See merge request espressif/esp-idf!42747
2025-10-21 12:24:03 +02:00
Tomas Sebestik
b805ae3a8d ci(github-docker-build): add GH hosted large runner for docker builds 2025-10-21 10:26:34 +02:00
Jiang Jiang Jian
7863b3c419 Merge branch 'fix/fix_32k_config_revoke_breaks_io_holding_v5.4' into 'release/v5.4'
fix(esp_system): fix ext 32k io revoking breaks sleep io holding (v5.4)

See merge request espressif/esp-idf!42496
2025-10-11 14:12:09 +08:00
Jiang Jiang Jian
59bbb31d3b Merge branch 'fix/fix_esp32c2_auth_thre_issue_v54' into 'release/v5.4'
fix(wifi): fix esp32c2 auth threshold issue

See merge request espressif/esp-idf!42509
2025-10-11 14:03:42 +08:00
wangtao@espressif.com
735f443c98 fix(wifi): fix esp32c2 auth threshold issue 2025-10-11 11:43:33 +08:00
Jiang Jiang Jian
cc158ee7ac Merge branch 'bugfix/roam_app_neighbor_crash_v5.4' into 'release/v5.4'
fix(wifi_apps): Fix crash due to neighbor_list lock (v5.4)

See merge request espressif/esp-idf!42503
2025-10-11 11:32:46 +08:00
Jiang Jiang Jian
d7d895ceb5 Merge branch 'docs/update_nimble_pts_info_v5.4' into 'release/v5.4'
docs(ble): Updated NimBLE certification info (v5.4)

See merge request espressif/esp-idf!42462
2025-10-11 10:40:32 +08:00
Jiang Jiang Jian
bfe8fd5e07 Merge branch 'contrib/github_pr_17652_v5.4' into 'release/v5.4'
fix(esp_tls_conn_new_sync): Fix `esp_tls_conn_new_sync`'s doc to reflect its implementation (GitHub PR) (v5.4)

See merge request espressif/esp-idf!42330
2025-10-11 10:26:55 +08:00
Jiang Jiang Jian
ef7d8e9be5 Merge branch 'bugfix/bt_idf_ci_v5.4' into 'release/v5.4'
fix(example/classic_bt): Fix the stack overflow of the SPPAppT and mouse_move_task tasks (v5.4)

See merge request espressif/esp-idf!42482
2025-10-11 10:17:22 +08:00
Jiang Jiang Jian
0926ce5f8e Merge branch 'bugfix/fix_some_bt_bugs_v5.4' into 'release/v5.4'
fix(bt): fix some bluetooth bugs (v5.4)

See merge request espressif/esp-idf!42469
2025-10-11 10:03:54 +08:00
Jiang Jiang Jian
d3a98e250a Merge branch 'bugfix/fix_some_wifi_bugs_250929_v5.4' into 'release/v5.4'
fix(wifi): fix some wifi bugs 20250929(Backport v5.4)

See merge request espressif/esp-idf!42275
2025-10-11 01:30:45 +08:00
Shreyas Sheth
b274fc9e44 fix(wifi_apps): Fix crash due to neighbor_list lock 2025-10-10 19:59:53 +05:30
wuzhenghui
b20d8c1afb fix(esp_system): fix ext 32k io revoking breaks sleep io holding 2025-10-10 20:20:50 +08:00
yangfeng
73ae66088c fix(example/classic_bt): Fix the stack overflow of the SPPAppT and mouse_move_task tasks 2025-10-10 16:14:04 +08:00
muhaidong
c0cdb94682 fix(wifi): fix some wifi bugs 20250929
1. fix scan done event miss issue
2. fix cant sleep if connection breaks during sending probe
3. fix some esp-now issues and lightsleep issues
4. feat(coex): support backgorund scan for coex, fix some issues of scan when connected
2025-10-10 15:51:11 +08:00
sibeibei
cd32a512fb feat(coex): support backgorund scan for coex, fix some issues of scan when connected 2025-10-10 15:29:39 +08:00
liuning
027e174aa0 fix(pm): reserve txqblocks when mac init at offchannels 2025-10-10 15:28:42 +08:00
liuning
11536c7bcd fix(pm): fix ps none status check 2025-10-10 15:28:32 +08:00
liuning
a3f96471e4 fix(wifi): fix cant sleep if connection breaks during sending probe 2025-10-10 15:27:58 +08:00
linruihao
a757b667f4 fix(bt): fix btbb may not reinit when coex with wifi
Closes https://github.com/espressif/esp-idf/issues/15841
2025-10-10 14:35:35 +08:00
Wei Yu Han
548c0ff4ad docs(ble): Updated NimBLE certification info
(cherry picked from commit 661ca1abf2)

Co-authored-by: Wei Yuhan <weiyuhan@espressif.com>
2025-10-10 12:24:57 +08:00
Michael (XIAO Xufeng)
2d0f48e2d5 Merge branch 'feat/p4_eco5_soc_changes_v5.4' into 'release/v5.4'
feat(p4): p4 rev3 soc support (v5.4)

See merge request espressif/esp-idf!42065
2025-10-09 12:52:06 +08:00
Jiang Jiang Jian
b2eefe5a83 Merge branch 'fix/controll_dcdc_switch_by_pmu_in_dslp_v5.4' into 'release/v5.4'
fix(esp_hw_support): control DCDC switch by PMU FSM while control DCDC_EN by software (v5.4)

See merge request espressif/esp-idf!42274
2025-10-09 11:05:02 +08:00
Mahavir Jain
b0f6b878da Merge branch 'fix/change_write_protection_bit_of_shared_security_efuses_v5.4' into 'release/v5.4'
Reorder write protection bits of some shared security efuses (v5.4)

See merge request espressif/esp-idf!42328
2025-10-06 14:22:15 +05:30
Mahavir Jain
2e64a16ef9 Merge branch 'fix/cjson_cpe_v5.4' into 'release/v5.4'
fix(cjson): add CPE with davegamble as vendor (v5.4)

See merge request espressif/esp-idf!42071
2025-10-06 14:20:43 +05:30
Mahavir Jain
07cd1c2fae Merge branch 'fix(esp_tls)/dynamic_buffer_ssl_crash_v5.4' into 'release/v5.4'
fix(esp_tls): fix potential ssl crash with dynamic buffer (v5.4)

See merge request espressif/esp-idf!42139
2025-10-06 14:20:27 +05:30
Jared Pon
85695ce8ab fix(esp_tls_conn_new_sync): Fix esp_tls_conn_new_sync's doc to reflect its implementation
Closes https://github.com/espressif/esp-idf/pull/17652
Closes https://github.com/espressif/esp-idf/issues/17598
2025-10-01 10:18:49 +08:00
harshal.patil
5fa0347a8b fix(bootloader_support): Allow pre-programmed XTS-AES psuedo round level efuses
- The API esp_flash_encryption_set_release_mode() by defualt programs
the XTS-AES pseudo round level efuse to level low but did not considered
any existing value that would have been programmed in the efuse bit.
2025-09-30 15:38:44 +05:30
Shen Mengjing
8d9f3669c7 docs: Add the updated CN translation 2025-09-30 15:38:38 +05:30
harshal.patil
dd3d58a315 fix(bootloader_support): Reorder write disabling ECDSA_CURVE_MODE 2025-09-30 15:38:27 +05:30
harshal.patil
b40f14cff6 fix(bootloader_support): Reorder write protection bits of some shared security efuses 2025-09-30 15:37:25 +05:30
Jiang Jiang Jian
8574a0a609 Merge branch 'bugfix/sae_identifier_nvs_v5.4' into 'release/v5.4'
fix(esp_wifi): Set default nvs value for sae identifier to NULL

See merge request espressif/esp-idf!42277
2025-09-30 16:55:29 +08:00
Shreyas Sheth
6e434df326 fix(esp_wifi): Set default nvs value for sae identifier to NULL 2025-09-29 11:55:43 +05:30
wuzhenghui
ee7f15d5ea change(esp_hw_support): remove DCDC-to-LDO power switch support in ESP32P4 lightsleep 2025-09-29 14:15:38 +08:00
wuzhenghui
072bca4296 change(esp_hw_support): control DCDC switch by PMU FSM while control DCDC_EN by software 2025-09-29 14:11:06 +08:00
morris
bb14ab2480 Merge branch 'refactor/update_component_dependency_v5.4' into 'release/v5.4'
feat: Update driver dependency for new version external components (v5.4)

See merge request espressif/esp-idf!42211
2025-09-29 13:47:13 +08:00
Jiang Jiang Jian
2d556f7cdb Merge branch 'fix/add_check_for_wifi_set_config_v54' into 'release/v5.4'
fix(wifi): add check for esp_wifi_set_config v54

See merge request espressif/esp-idf!42251
2025-09-29 10:21:04 +08:00
Island
24dfb49e5f Merge branch 'docs/update_6.0_ble_feature_status_v5.4' into 'release/v5.4'
docs(ble): Added BLE 6.0 features support status (v5.4)

See merge request espressif/esp-idf!42188
2025-09-28 19:25:01 +08:00
Jiang Jiang Jian
f0ad835040 Merge branch 'bugfix/add_dependency_suiteb_on_enterprise_v5.4' into 'release/v5.4'
fix(esp_wifi): Add depenedency of 192 bit config on wifi enterprise (v5.4)

See merge request espressif/esp-idf!42058
2025-09-28 18:55:59 +08:00
Jiang Jiang Jian
76d19ae713 Merge branch 'bugfix/enter_sniff_failed_v5.4' into 'release/v5.4'
fix(bt/controller): fixed the sniff anchor point can be mismatch from central and peripheral (v5.4)

See merge request espressif/esp-idf!42241
2025-09-28 18:43:37 +08:00
wangtao@espressif.com
2aa2ed12e9 fix(wifi): add check for esp_wifi_set_config 2025-09-28 15:31:15 +08:00
Jin Cheng
655b866459 fix(bt/controller): fixed the sniff anchor point can be mismatch from central and peripheral 2025-09-28 11:43:29 +08:00
Island
c5e3208af4 Merge branch 'feat/support_wakeup_causes_in_bt_wakeup' into 'release/v5.4'
Feat/support wakeup causes in bt wakeup

See merge request espressif/esp-idf!42064
2025-09-28 10:30:22 +08:00
Chen Chen
b98c067a26 feat: Update driver dependency for new version outside components 2025-09-26 16:36:58 +08:00
Wei Yu Han
42d3fb5694 docs(ble): Added BLE 6.0 features support status
(cherry picked from commit 5e4c16410b)

Co-authored-by: Wei Yuhan <weiyuhan@espressif.com>
2025-09-26 09:21:34 +08:00
armando
3b21b60da2 change(ci): update regex to match soc headers in check_public_header.py 2025-09-25 11:41:32 +08:00
armando
a7ad7728da feat(p4): p4 rev3 soc support 2025-09-25 11:41:32 +08:00
Ashish Sharma
ee5df2ec4e fix(esp_tls): limit ret code from esp_mbedtls_handshake 2025-09-24 15:55:26 +08:00
Frantisek Hrbata
dfb640ef9b fix(cjson): add CPE with davegamble as vendor
The latest cJSON vulnerabilities appear to list "davegamble" as the
vendor instead of "cjson_project." Add a new CPE with "davegamble" as
the vendor.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-09-22 08:07:20 +02:00
cjin
32b71fa394 feat(ble): get wakeup cause when wake up on ESP32-H2 2025-09-22 11:03:22 +08:00
cjin
f8dc8242ba feat(ble): get wakeup cause when wake up on ESP32-C5 2025-09-22 11:03:22 +08:00
cjin
bc09833dbf feat(ble): get wakeup cause when wake up on ESP32-C6 2025-09-22 11:03:22 +08:00
cjin
bf7e9f0914 feat(ble): get wakeup cause when wake up on ESP32-C2 2025-09-22 11:03:22 +08:00
Kapil Gupta
eb93cd9932 fix(esp_wifi): Add depenedency of 192 bit config on wifi enterprise
Closes https://github.com/espressif/esp-idf/issues/17567
2025-09-21 12:31:00 +05:30
Jiang Jiang Jian
df2c123290 Merge branch 'bugfix/offchan_action_tx_failure_v5.4' into 'release/v5.4'
Fix issues with offchannel action tx and ROC operations (Backport v5.4)

See merge request espressif/esp-idf!38497
2025-09-20 13:30:41 +08:00
Jiang Jiang Jian
101cab34b1 Merge branch 'change/ble_update_lib_20250919_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250919 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!42030
2025-09-20 13:21:23 +08:00
Jiang Jiang Jian
501f0979a7 Merge branch 'feature/p4_add_3bit_for_wafer_major_v5.4' into 'release/v5.4'
feat(efuse): Adds 3-bit field for wafer major version in ESP32-P4 (v5.4)

See merge request espressif/esp-idf!40514
2025-09-20 04:20:55 +08:00
Jiang Jiang Jian
8d4f0af74a Merge branch 'fix/handle_error_and_dispatch_event_while_reading_data_from_server_v5.4' into 'release/v5.4'
feat(esp_http_client): handle error while reading data from server (v5.4)

See merge request espressif/esp-idf!41325
2025-09-20 00:46:09 +08:00
Jiang Jiang Jian
bf24dfcce2 Merge branch 'fix/http_server_async_requests_on_same_socket_blocks_v5.4' into 'release/v5.4'
Fix async requests on same socket blocking server (v5.4)

See merge request espressif/esp-idf!41998
2025-09-20 00:31:30 +08:00
Jiang Jiang Jian
e3e1941b1f Merge branch 'bugfix/esp_idf_esp32_reject_sleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix the configuration of reject sources for release/v5.4

See merge request espressif/esp-idf!42006
2025-09-20 00:31:16 +08:00
Jiang Jiang Jian
de5cc2bf27 Merge branch 'feat/support_larger_than_4m_partition_on_linux_target_v5.4' into 'release/v5.4'
feat(esp_partition): add support for partition tables larger than 4MB with linux target (v5.4)

See merge request espressif/esp-idf!42017
2025-09-20 00:31:01 +08:00
Jiang Jiang Jian
8763c4266e Merge branch 'feature/update-qemu-to-esp_develop_9.2.2_20250817_v5.4' into 'release/v5.4'
feat(tools): update qemu version to esp_develop_9.2.2_20250817 (v5.4)

See merge request espressif/esp-idf!41472
2025-09-20 00:25:14 +08:00
Jiang Jiang Jian
694c3a97a2 Merge branch 'featue/allow_custom_key_purposes_v5.4' into 'release/v5.4'
feat(efuse): Allow custom key purposes (v5.4)

See merge request espressif/esp-idf!41936
2025-09-20 00:24:57 +08:00
tarun.kumar
bd9888270b fix(wifi) : Commented out few ld file functions corresponding to offchan changes 2025-09-19 15:28:24 +05:30
tarun.kumar
767273f264 fix(esp_wifi): Making action tx and roc API's public and modifying os_time_t datatype for platform and compiler independence 2025-09-19 15:14:30 +05:30
jgujarathi
ad3355e915 fix(esp_wifi): Formatting calls to ROC API to match new prototype
- Making necessary changes to DPP module and offchannel tests
  to reflect the changes made to ROC API.
2025-09-19 14:55:30 +05:30
jgujarathi
9996978c92 fix(esp_wifi): Fix issues with offchannel action tx and ROC operations
- Fix issues with sending NULL data on the target channel instead of home
  channel when connected sta attempts action tx or ROC.
- Fix issues with sending action tx on the home channel instead of target
  channel when connected sta attempts action tx.
- Add new status codes to event data of WIFI_EVENT_ROC_DONE
- Adds new request structure esp_wifi_remain_on_channel operation
- Fixes issues with cancelling off channel operations such as ROC or
  action frames TX.
2025-09-19 14:55:26 +05:30
Zhou Xiao
dbd6a69bca change(ble): [AUTO_MR] updated rom linker script for ESP32-C2
(cherry picked from commit 09a3b29d01)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-19 11:33:22 +08:00
Zhou Xiao
9426f8c276 change(ble): [AUTO_MR] Update lib_esp32c2 to 58398575
(cherry picked from commit a56e7df710)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-19 11:33:19 +08:00
Zhou Xiao
8f68334081 change(ble): [AUTO_MR] Update lib_esp32c6 to 390a8efd
(cherry picked from commit 26dcd59599)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-19 11:33:17 +08:00
Zhou Xiao
660ccc089e change(ble): [AUTO_MR] Update lib_esp32h2 to 390a8efd
(cherry picked from commit a7b87fe832)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-19 11:33:15 +08:00
Ivan Grokhotkov
c72a237311 fix(toolchain): install qemu-xtensa if esp32s3 target is requested
Related to https://github.com/espressif/vscode-esp-idf-extension/issues/1404
2025-09-19 07:55:57 +08:00
Ivan Grokhotkov
018a4cd3d6 fix(tools): use nvram.esp32s3.efuse device in qemu_ext.py
Related to https://github.com/espressif/esp-idf/issues/17258
2025-09-19 07:55:57 +08:00
Ivan Grokhotkov
dc55e0f06a feat(tools): enable PSRAM by default in "idf.py qemu" for ESP32-S3 2025-09-19 07:55:57 +08:00
Ivan Grokhotkov
a0416361df feat(tools): update qemu version to esp_develop_9.2.2_20250817 2025-09-19 07:55:57 +08:00
Jiang Jiang Jian
08f80a8ff3 Merge branch 'feature/update-gdb-to-16.3_20250913_v5.4' into 'release/v5.4'
feat(tools): update gdb version to 16.3_20250913 (v5.4)

See merge request espressif/esp-idf!41969
2025-09-19 03:24:26 +08:00
Jiang Jiang Jian
3ad2b49d80 Merge branch 'bugfix/encrypt_len_for_sb_update_case_v5.4' into 'release/v5.4'
fix(bootloader): correct encryption length for secure update without secure boot (v5.4)

See merge request espressif/esp-idf!41924
2025-09-19 03:22:17 +08:00
Jiang Jiang Jian
b3f053863d Merge branch 'bugfix/esp_flash_escape_checking_v5.4' into 'release/v5.4'
fix(esp_flash): fixed issue of escaping boundary check (v5.4)

See merge request espressif/esp-idf!40118
2025-09-19 03:19:26 +08:00
Jiang Jiang Jian
8856476b6d Merge branch 'fix/correct_adc_periph_num_on_c2_v5.4' into 'release/v5.4'
fix(adc): fix ESP32-C2/P4 wrong adc periph num (v5.4)

See merge request espressif/esp-idf!41537
2025-09-19 02:57:37 +08:00
Jiang Jiang Jian
94657ad3bf Merge branch 'fix/tcm-mem-not-considered-in-esp_ptr_eexecutable_v5.4' into 'release/v5.4'
fix(memory-utils): Check TCM in esp_ptr_internal and esp_ptr_byte_accessible (v5.4)

See merge request espressif/esp-idf!39984
2025-09-19 02:22:38 +08:00
Jiang Jiang Jian
12b8f9c9d5 Merge branch 'fix/eh_frame_infinite_loop_v5.4' into 'release/v5.4'
fix(esp_system): prevent .eh_frame-based unwinding from looping indefinitely (release v5.4)

See merge request espressif/esp-idf!41579
2025-09-19 02:20:06 +08:00
Jiang Jiang Jian
a9ba29d6f6 Merge branch 'feature/ipc_allows_recursion_calls_v5.4' into 'release/v5.4'
feat(ipc): Allow IPC recursion calls in esp_ipc_call (v5.4)

See merge request espressif/esp-idf!41939
2025-09-19 02:19:56 +08:00
Jiang Jiang Jian
1021335ed9 Merge branch 'fix/fix_dhcp_server_recv_decline_issue_v54' into 'release/v5.4'
fix(lwip): fix dhcp arp check issue

See merge request espressif/esp-idf!41771
2025-09-19 01:41:29 +08:00
Jiang Jiang Jian
cf9d588523 Merge branch 'change/ble_update_lib_20250828_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250828 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!41961
2025-09-19 00:15:50 +08:00
Jiang Jiang Jian
d547f4feb9 Merge branch 'fix/rng_adc_error_after_deep_sleep' into 'release/v5.4'
fix(adc): fix rng adc error after deep sleep (v5.4)

See merge request espressif/esp-idf!40805
2025-09-18 23:39:20 +08:00
Jiang Jiang Jian
7d95eae732 Merge branch 'feat/add_cherryusb_demo_v5.4' into 'release/v5.4'
feat(usb): add CherryUSB serial device and host example (v5.4)

See merge request espressif/esp-idf!41701
2025-09-18 23:35:24 +08:00
Konstantin Kondrashov
4182337e40 feat(efuse): Adds 3-bit field for wafer major version in ESP32-P4 2025-09-18 23:33:02 +08:00
Konstantin Kondrashov
4dcd6c68fb feat(efuse): Allow custom key purposes 2025-09-18 23:32:18 +08:00
Jiang Jiang Jian
529956b663 Merge branch 'fix/ble_mesh_micellaneous_fix_v5.4' into 'release/v5.4'
Fix/ble mesh micellaneous fix (v5.4)

See merge request espressif/esp-idf!41288
2025-09-18 23:28:25 +08:00
Jiang Jiang Jian
35950a6a2d Merge branch 'feat/menuconfig_for_rio_enable_v5.4' into 'release/v5.4'
lwip: backport IPv6 improvements, NAPT fixes, and ND6 RIO support (v5.4)

See merge request espressif/esp-idf!41689
2025-09-18 23:22:23 +08:00
Jiang Jiang Jian
2d65061cce Merge branch 'bugfix/ble_enhanced_security_v5.4' into 'release/v5.4'
Update BluFi document (v5.4)

See merge request espressif/esp-idf!41763
2025-09-18 23:22:02 +08:00
Jiang Jiang Jian
c63bda505b Merge branch 'fix/ulp_riscv_delay_cycles_v5.4' into 'release/v5.4'
fix(ulp_riscv): Fix ulp_riscv_delay_cycles() to handle small delays correctly (v5.4)

See merge request espressif/esp-idf!41942
2025-09-18 23:14:29 +08:00
Marius Vikhammer
6d5a54e33f Merge branch 'fix/esp_ringbuf_nosplit_full_return_one_v5.4' into 'release/v5.4'
feat(esp_ringbuf): Fixes full no-split buffer frees item incorrectly (v5.4)

See merge request espressif/esp-idf!41931
2025-09-18 22:58:30 +08:00
sonika.rathi
00c8e268e6 feat(esp_partition): add support for partition tables larger than 4MB with linux target 2025-09-18 13:14:54 +02:00
hrushikesh.bhosale
eae77c8767 fix(esp_http_server): Fix async requests on same socket blocking issue
1. In async requests, if the two or more requests are made on same
socket then it used to block the second request.
2. The main thread is used to block on select call. And there done
no FD_SET for particular fd.

Closes https://github.com/espressif/esp-idf/issues/16998
2025-09-18 16:11:06 +05:30
Wang Meng Yang
c66629e31c Merge branch 'bugfix/fix_esp32_bt_sw_intr_v5.4' into 'release/v5.4'
fix(bt): fixed sw_intr issue with BT register or trigger error core on ESP32 (v5.4)

See merge request espressif/esp-idf!41634
2025-09-18 17:47:19 +08:00
hebinglin
721854291a fix(esp_hw_support): fix the configuration of reject sources for release/v5.4 2025-09-18 17:06:38 +08:00
Alexey Lapshin
a27305c164 feat(tools): update gdb version to 16.3_20250913 2025-09-17 16:24:36 +07:00
Rahul Tank
632ee747f2 Merge branch 'fix/connect_gap_event_status_handling_v5.4' into 'release/v5.4'
fix(nimble): Fixed incorrect HCI status in connect event (v5.4)

See merge request espressif/esp-idf!41881
2025-09-17 13:51:33 +05:30
Zhao Wei Liang
41948feece feat(ble): add console command to get dtm rx rssi in hci example
(cherry picked from commit c58f07ed1e)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 14:47:17 +08:00
Zhao Wei Liang
8c6836847d feat(ble): add console command to get dtm rx rssi on ESP32-C6
(cherry picked from commit b40f7c773b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 14:47:17 +08:00
Island
fb48856a23 Merge branch 'feat/ble_log_v2_esp_target_support_v5.4' into 'release/v5.4'
Feat/ble log v2 esp target support (v5.4)

See merge request espressif/esp-idf!41920
2025-09-17 13:08:59 +08:00
Zhao Wei Liang
885eeaeeeb fix(ble): update ext_version on ESP32-H2
(cherry picked from commit b091ec843c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 11:14:30 +08:00
Zhao Wei Liang
0dfd3f9cf3 fix(ble): update ext_version on ESP32-C6
(cherry picked from commit 3558f20a4e)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 11:14:28 +08:00
Zhao Wei Liang
67f1f86e6b change(ble): [AUTO_MR] updated rom linker script for ESP32-C2
(cherry picked from commit 32c3556c7a)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 11:14:25 +08:00
Zhao Wei Liang
1d72a8405d change(ble): [AUTO_MR] Update lib_esp32c2 to e08d6058
(cherry picked from commit 0ec2a92d79)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 11:14:23 +08:00
Zhao Wei Liang
4059907e8d change(ble): [AUTO_MR] Update lib_esp32c6 to 000475d3
(cherry picked from commit 32a510900c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 11:14:20 +08:00
Zhao Wei Liang
3ee4dbdb44 change(ble): [AUTO_MR] Update lib_esp32h2 to 000475d3
(cherry picked from commit 141362fe48)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-09-17 11:14:17 +08:00
Zhou Xiao
fc5f66f0d5 fix(ble): fixed ble log config for ESP32-C3/ESP32-S3 2025-09-16 22:47:52 +08:00
Zhou Xiao
b6be31309f feat(ble): supported ble log v2 for ESP32 2025-09-16 19:13:00 +08:00
Zhou Xiao
32cb69706b feat(ble): supported ble log v2 for ESP32-C3/ESP32-S3 2025-09-16 19:13:00 +08:00
Zhou Xiao
b65ba9a601 feat(ble): supported ble log v2 for ESP32-C2 2025-09-16 19:13:00 +08:00
Zhou Xiao
c943a88ee2 feat(ble): supported ble log v2 for ESP32-H2 2025-09-16 19:13:00 +08:00
Zhou Xiao
c6e8c016e2 feat(ble): supported ble log v2 for ESP32-C6 2025-09-16 19:13:00 +08:00
Zhou Xiao
732358eebf fix(ble): fixed ble log v2 configuration issues 2025-09-16 19:13:00 +08:00
Konstantin Kondrashov
bcdb428aa1 fix(ulp_riscv): Fix a delay function to handle small delays correctly
Fixed ulp_riscv_delay_cycles function

Closes https://github.com/espressif/esp-idf/issues/16891
2025-09-16 10:43:35 +03:00
Konstantin Kondrashov
27456ea2f3 feat(ipc): Allow IPC recursion calls in esp_ipc_call 2025-09-16 10:38:46 +03:00
Konstantin Kondrashov
8c7e060910 feat(esp_ringbuf): Fixes full no-split buffer frees item incorrectly
Closes https://github.com/espressif/esp-idf/issues/17466#issuecomment-3209730773
2025-09-16 10:19:48 +03:00
Marius Vikhammer
05534d2686 Merge branch 'refactor/ulp_riscv_i2c_logs_v5.4' into 'release/v5.4'
refactor(ulp_riscv): Modify i2c read/write API for better logging and return error code (v5.4)

See merge request espressif/esp-idf!41674
2025-09-16 13:33:44 +08:00
Mahavir Jain
0bddd778a9 fix(bootloader): correct encryption length for secure update without secure boot
For secure update without secure boot case, the encryption length for
app image must consider signature block length as well. This was
correctly handled for secure boot case but not for secure update without
secure boot.
2025-09-16 10:20:26 +05:30
luoxu
9acb50df44 feat(ble_mesh): add adv lock to avoid allocated buffers
cherry-picked from 4905b6eae1
2025-09-16 00:05:31 +08:00
Luo Xu
8770f562e0 feat(ble_mesh): Add lock to avoid tx being modified at the same time
(cherry picked from commit 334e2bf8ab)

Co-authored-by: luoxu <luoxu@espressif.com>
2025-09-16 00:05:31 +08:00
chendejin
b567f95ea4 lwip: Add IPv6 improvements, NAPT fixes, and ND6 RIO support (v5.4)
[LWIP submodule changes]: git log --oneline fa4dffdf..fd432e4e
nd6: add a unit test case for nd6 rio support (esp-lwip@fd432e4e)
nd6: support route information option in router advertisement (esp-lwip@1adc49f9)
ip6: add some unit test cases for ip6 forwarding (esp-lwip@ebabd6d7)
ip6: clone the buf when forwarding a PBUF_REF packet (esp-lwip@adcd330e)
napt: Fixed NULL pointer dereference in ip_napt_enable (esp-lwip@0a44efa1)
napt: Added unit tests for napt (esp-lwip@865d7d0c)
2025-09-15 17:06:43 +02:00
LiPeng
fa96dfeaa1 fix(bt): fixed sw_intr issue with BT register or trigger error core on ESP32 2025-09-15 19:16:16 +08:00
Mahavir Jain
d7228f798e Merge branch 'fix/rng_entropy_mixing_with_rtc_timer_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fixed entropy mixing of RTC timer with RNG (v5.4)

See merge request espressif/esp-idf!41825
2025-09-15 13:02:21 +05:30
Astha Verma
ff33779405 fix(nimble): Fixed incorrect HCI status in connect event 2025-09-15 11:00:17 +05:30
Meet Patel
1b5138e37e refactor(ulp_riscv): Modify ulp i2c read/write functions to return error code
Updated the i2c read/write APIs ulp_riscv_i2c_master_read_from_device
and ulp_riscv_i2c_master_write_to_device in ulp_riscv component to
return error codes back to the application

Closes https://github.com/espressif/esp-idf/issues/15904
2025-09-15 10:35:20 +05:30
Meet Patel
032e141150 refactor(ulp_riscv): Modify ESP_EARLY_LOG to ESP_LOG and move it outside critical section
Moved the error logs outside critical section for i2c communication errors
like READ fail, WRITE fail etc. in the ulp_riscv_i2c component

Also changed the error log API from ESP_EARLY_LOG to ESP_LOG, so we can support
tag based filtering and enabling/disabling of logs

Closes https://github.com/espressif/esp-idf/issues/17425
2025-09-15 10:35:20 +05:30
Mahavir Jain
bf0c45e18d Merge branch 'change/exclude_cve-2025-57052_v5.4' into 'release/v5.4'
change(cjson): Update to v1.7.19 (v5.4)

See merge request espressif/esp-idf!41838
2025-09-15 08:21:36 +05:30
Island
1bfe1595fa Merge branch 'feat/support_ble_log_uart_dma_out_v5.4' into 'release/v5.4'
Feat/support ble log uart dma out (v5.4)

See merge request espressif/esp-idf!40656
2025-09-15 10:29:15 +08:00
Rahul Tank
484e6e2523 Merge branch 'bugfix/fix_periodic_reattempt_v5.4' into 'release/v5.4'
fix(nimble): Fixed reattempt count handling for perdiodic adv (v5.4)

See merge request espressif/esp-idf!41820
2025-09-12 16:22:07 +05:30
morris
859c65a718 Merge branch 'doc/fix_ext1_wakeup_cause_v5.4' into 'release/v5.4'
docs(sleep_mode): updated ext1 wakeup status (v5.4)

See merge request espressif/esp-idf!41831
2025-09-12 16:57:33 +08:00
LiPeng
01a1028df8 feat(cherry_usb): Pin cherryusb component version 2025-09-12 15:50:07 +08:00
nilesh.kale
e4e2f88566 fix(esp_http_client): fix dispatching of finish event condition
This commit updates the condition for dispatching of FINISH event.
With this, FINISH event will be dispatched after complete data is read.

Closes https://github.com/espressif/esp-idf/issues/17437
2025-09-12 10:19:37 +05:30
nilesh.kale
9b14abc1f5 feat(esp_http_client): handle error while reading data from server
This commit updated API esp_http_cleint_perform() to handle error and
dispatched error  event if any error occured whiling reading data from server.
2025-09-12 10:19:09 +05:30
Rahul Tank
4fbba5b460 Merge branch 'bugfix/set_tx_power_in_example_v5.4' into 'release/v5.4'
fix(nimble): Add Tx power information in adv data (v5.4)

See merge request espressif/esp-idf!41814
2025-09-11 14:25:23 +05:30
Ashish Sharma
66bbe67adc change(cjson): update cjson version to 1.7.19 2025-09-11 15:36:10 +08:00
laokaiyao
ce5d2daaa5 change: remove the updated doc's list for c5 2025-09-11 15:24:53 +08:00
laokaiyao
2123ee4c1a docs(sleep_mode): updated ext1 wakeup status 2025-09-11 15:17:49 +08:00
Aditya Patwardhan
f286036a7b fix(esp_hw_support): Fixed entropy mixing of RTC timer with RNG
Previously the RTC timer entropy was being mixed with the RNG timer
    in a wrong way. Which led to the overwriting of the LSB with rtc
    timer value.
    This change fixes that behaviour
2025-09-11 12:05:46 +05:30
Island
ceb32b58f2 Merge branch 'fix/uninited_local_var_in_nimble_example_v5.4' into 'release/v5.4'
fix(ble): init return code in nimble example (v5.4)

See merge request espressif/esp-idf!41811
2025-09-11 11:06:45 +08:00
Rahul Tank
1e77360946 fix(nimble): Fixed reattempt count handling for perdiodic adv 2025-09-10 18:52:39 +05:30
Rahul Tank
8fe269f8ec fix(nimble): Add Tx power information in adv data 2025-09-10 18:46:42 +05:30
Zhou Xiao
0adb736e8f fix(ble): init return code in nimble example
* Closes https://github.com/espressif/esp-idf/issues/17547


(cherry picked from commit 916f87b333)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-10 21:13:34 +08:00
Xiao Xufeng
9cfc314c5b fix(esp_flash): fixed issue of escaping boundary check
Also patched corresponding ROM functions
2025-09-10 16:36:57 +08:00
Zhou Xiao
dddb7898ef feat(ble): support ble log uart dma out for ESP32-H2
(cherry picked from commit d45778f784)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-10 15:17:47 +08:00
Zhou Xiao
290a87781d feat(ble): support ble log uart dma out for ESP32-C6
(cherry picked from commit ae8a7c8117)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-10 15:17:47 +08:00
Zhou Xiao
d177b7d78f feat(ble): support ble log uart dma out
(cherry picked from commit 534b43e85a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-10 15:17:46 +08:00
wangtao@espressif.com
a82bc2a4f7 fix(lwip): fix dhcp arp check issue 2025-09-09 16:23:48 +08:00
Zhang Hai Peng
db1bff6ffa feat(blufi): Update BluFi document
(cherry picked from commit 3f4bedd3a5)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-09-09 11:52:26 +08:00
Island
edf60a792f Merge branch 'feat/ble_log_v2_v5.4' into 'release/v5.4'
feat(ble): refactored ble log module with layered design (v5.4)

See merge request espressif/esp-idf!41658
2025-09-03 14:18:26 +08:00
LiPeng
df0a9610e9 fix(usb): fix ths bug that ALT escape input for USB HID keyboard 2025-09-03 10:53:23 +08:00
LiPeng
9e1a90f565 feat(usb): add CherryUSB support for multiple USB controllers selection 2025-09-03 10:30:34 +08:00
LiPeng
57b1c80bcd feat(usb): add CherryUSB host msc example 2025-09-03 10:30:34 +08:00
LiPeng
d55edd8503 feat(usb): add ALT escape input for USB HID keyboard 2025-09-03 10:30:34 +08:00
LiPeng
53bd498b7b feat(examples/peripherals/usb/cherryusb/host/cherryusb_host): add CherryUSB host example 2025-09-03 10:30:34 +08:00
LiPeng
8ca3bba8f7 feat(examples/peripherals/usb/cherryusb/device/cherryusb_serial_device): add CherryUSB serial device example 2025-09-03 10:30:34 +08:00
Jiang Jiang Jian
11a46c0d13 Merge branch 'fix/wrong_auth_mode_in_sta_connected_evt_v5.4' into 'release/v5.4'
fix(wifi): send correct wifi_auth_mode_t in WIFI_EVENT_STA_CONNECTED and logs (Backport v5.4)

See merge request espressif/esp-idf!41650
2025-09-02 15:05:09 +08:00
Jiang Jiang Jian
203f114f20 Merge branch 'opt/opt_ble_stability_v5.4' into 'release/v5.4'
Improve ESP32 stability and security (v5.4)

See merge request espressif/esp-idf!41547
2025-09-02 14:08:24 +08:00
Jiang Jiang Jian
696cf590eb Merge branch 'docs/migration_guides_bt_classic_v5.4' into 'release/v5.4'
docs: Add SoC conditional flag for Bluetooth Classic in migration guides (v5.4)

See merge request espressif/esp-idf!41523
2025-09-02 14:06:47 +08:00
Jiang Jiang Jian
a15becb589 Merge branch 'feat/new_api_to_get_all_wakeup_causes_v5.4' into 'release/v5.4'
feat(esp_hw_support): add new API to get all wakeup sources (v5.4)

See merge request espressif/esp-idf!41498
2025-09-02 14:01:17 +08:00
Jiang Jiang Jian
b3c8bc44c3 Merge branch 'change/remove_assert_in_esp_sleep_pd_config_v5.4' into 'release/v5.4'
change(esp_hw_support): warning in esp_sleep_pd_config instead of assert (v5.4)

See merge request espressif/esp-idf!41118
2025-09-02 14:01:04 +08:00
Rahul Tank
e252fb278b Merge branch 'fix/table_structure_v5.4' into 'release/v5.4'
fix(nimble): Restructure the table in README.md file (v5.4)

See merge request espressif/esp-idf!41661
2025-09-02 10:27:48 +05:30
Mahavir Jain
a301c06b4c Merge branch 'feat/support_authentication_feature_for_ws_v5.4' into 'release/v5.4'
Added pre handshake callback for websocket (v5.4)

See merge request espressif/esp-idf!41038
2025-09-02 09:18:37 +05:30
Roland Dobai
5fe466ee6b Merge branch 'feat/support_kconfig_in_pacman_v5.4' into 'release/v5.4'
feat: support kconfig in component manager (v5.4)

See merge request espressif/esp-idf!40493
2025-09-01 17:01:24 +02:00
Roland Dobai
a13f3d3989 Merge branch 'fix/click_version_v5.4' into 'release/v5.4'
Fixed click deprecation warnings (v5.4)

See merge request espressif/esp-idf!40894
2025-09-01 11:59:10 +02:00
Fu Hanxi
8f2801f20c fix: make sure sdkconfig.json is updated after running the menuconfig 2025-09-01 09:40:38 +02:00
Fu Hanxi
d16f0da931 fix: kconfig optional dependency in transitive dependency 2025-09-01 09:40:38 +02:00
Fu Hanxi
097ffd3238 feat: support kconfig in component manager 2025-09-01 09:40:38 +02:00
Marius Vikhammer
08e7d2d276 Merge branch 'ci/fix_cpp_leak_test_case_v5.4' into 'release/v5.4'
test(cpp): fixed cpp test case mem leak (v5.4)

See merge request espressif/esp-idf!41617
2025-09-01 14:08:39 +08:00
Shreeyash
710f445fcf fix(nimble): Restructure the table in README.md file 2025-09-01 10:57:35 +05:30
Zhou Xiao
c06cb84c0c feat(ble): refactored ble log module with layered design
(cherry picked from commit 797a0c4e6eafaf6164e0f9c34f3867a46733924c)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-09-01 13:13:43 +08:00
Marius Vikhammer
ea68500941 Merge branch 'bugfix/lp_core_array_bounds_p4_v5.4' into 'release/v5.4'
fix(lp_core): fixed array-bound warning when compiling on P4 with -Os (v5.4)

See merge request espressif/esp-idf!41614
2025-09-01 10:52:46 +08:00
Sarvesh Bodakhe
1dc6256a8b fix(wifi): add GCMP-128 support for SoftAP and some other bugfixes
- GCMP-256 SoftAP support was previously added as part of SAE Extended Key handling.
- Fixes the authmode sent in WIFI_EVENT_STA_CONNECTED, which was previously taken
  directly from the AKM field. This caused incorrect values in some cases.
- Updates the security log to show the correct wifi_auth_mode_t.
- Fixes wrong authmode strength used in the connection path.
2025-08-29 23:06:31 +05:30
Jiang Jiang Jian
11edebdbbe Merge branch 'bugfix/wpa2_suiteb_192bit_and_eap_changes_v5.4' into 'release/v5.4'
Send disonnect event in connect fail for 192bit enterprise and add some fixes for wpa_supplicant(v5.4)

See merge request espressif/esp-idf!41587
2025-08-29 15:50:40 +08:00
morris
8a94f1957c Merge branch 'feat/uart_dma_support_v5.4' into 'release/v5.4'
feat(uhci): Add uhci(uart-dma) support on current chips (backport v5.4)

See merge request espressif/esp-idf!41517
2025-08-29 13:49:56 +08:00
Marius Vikhammer
7c90e1c6b4 fix(lp_core): fixed array-bound warning when compiling on P4 with -Os
Closes https://github.com/espressif/esp-idf/issues/17054
2025-08-29 13:17:53 +08:00
morris
13f276c030 Merge branch 'ci/ulp_defaults_config_v5.4' into 'release/v5.4'
ci(ulp): fixed default config not running in CI (v5.4)

See merge request espressif/esp-idf!41612
2025-08-29 10:44:21 +08:00
Marius Vikhammer
03b3d02b7c test(cpp): fixed cpp test case mem leak 2025-08-29 09:57:37 +08:00
Marius Vikhammer
74b003cfa1 ci(ulp): fixed default config not running in CI 2025-08-29 09:56:45 +08:00
Kapil Gupta
1502a50bc6 fix (esp_wifi): Set default akm as eap for non AKM APs 2025-08-28 11:02:26 +05:30
Kapil Gupta
5e91cd87a8 fix(wpa_supplicant): Delay sending of EAP_START for EAP auth 2025-08-28 11:00:10 +05:30
tarun.kumar
4ad66853df fix(wifi): Sending disconnect event in connect fail and add enterprise check in Suite-B 192-bit certification 2025-08-28 10:58:19 +05:30
morris
07e4ffd618 Merge branch 'bugfix/fix_multi_pdm_rx_slot_clock_issue_v5.4' into 'release/v5.4'
fix(i2s_pdm): fixed pdm multi slot clock issue (v5.4)

See merge request espressif/esp-idf!41179
2025-08-28 13:27:21 +08:00
Omar Chebib
1285e19cab fix(esp_system): prevent .eh_frame-based unwinding from looping indefinitely 2025-08-28 09:54:36 +08:00
Jiang Jiang Jian
00ee8827c3 Merge branch 'backport/backport_some_bugfix_250822_v5.4' into 'release/v5.4'
fix(wifi): fix some wifi bugs(backport v5.4)

See merge request espressif/esp-idf!41469
2025-08-27 13:49:40 +08:00
luweike
490d96ecfc docs: Add SoC conditional flag for Bluetooth Classic in migration guides 2025-08-27 12:02:13 +08:00
liqigan
d04831c92d fix(bt/controller): Fixed some controller bugs 2025-08-27 11:11:48 +08:00
JinCheng
1c7c8554af fix(bt/controller): fixed some controller bugs 2025-08-27 11:11:31 +08:00
Zhang Hai Peng
309f031dd6 fix(bt): Update esp32 libbtdm_app.a (f1dc7d8)
- Improve ESP32 stability and security


(cherry picked from commit 8ec5410236)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-08-26 21:53:31 +08:00
wuzhenghui
7635a54b1e feat(esp_hw_support): add new API to get all wakeup sources 2025-08-26 21:53:01 +08:00
gaoxu
123b041f4e fix(adc): fix wrong adc periph num on C2/P4 2025-08-26 18:54:48 +08:00
C.S.M
f148acc534 feat(uhci): Add uhci (uart-dma) support on current chips 2025-08-26 16:06:49 +08:00
laokaiyao
37d7edd6cb feat(i2s): add PLL240M clock source on S3 and C6
Closes https://github.com/espressif/esp-idf/issues/17056
2025-08-26 15:21:32 +08:00
laokaiyao
c05e5d1e0f fix(i2s_pdm): fixed pdm multi slot clock issue
Fixed the sample rate slow down issue when using more than 4 slots in  pdm rx mode.
2025-08-26 15:21:32 +08:00
Mahavir Jain
6f651211fa Merge branch 'doc/update_blufi_doc_v5.4' into 'release/v5.4'
docs(ble): add advisory for CVE-2025-55297 found in Blufi example (v5.4)

See merge request espressif/esp-idf!41487
2025-08-26 10:34:29 +05:30
Jiang Jiang Jian
59d86f5dd5 Merge branch 'feat/support_11ax_rate_for_cert_test_v5.4' into 'release/v5.4'
Feat/support 11ax rate for cert test v5.4(Backport v5.4)

See merge request espressif/esp-idf!41465
2025-08-26 12:04:40 +08:00
Jiang Jiang Jian
378bab6e55 Merge branch 'feat/usb-cdc-select_v5.4' into 'release/v5.4'
feat(usb_cdc): Add select functionality (backport v5.4)

See merge request espressif/esp-idf!40892
2025-08-26 10:51:11 +08:00
yinqingzhao
5d3016aaed fix(wifi): fix some wifi bugs 2025-08-26 10:49:23 +08:00
Marius Vikhammer
0f42bb5b50 Merge branch 'bugfix/esp_timer_dump_corruption_v5.4' into 'release/v5.4'
fix(esp_timer): fixed potential buffer overflow with esp_timer_dump() (v5.4)

See merge request espressif/esp-idf!41451
2025-08-26 10:44:17 +08:00
Jiang Jiang Jian
1efc75a9d8 Merge branch 'bugfix/snd_chan_update_v5.4' into 'release/v5.4'
fix(esp_wifi): Fix incorrect values for negotiated bandwidth for 2040 coex cases

See merge request espressif/esp-idf!41417
2025-08-26 10:37:24 +08:00
Marius Vikhammer
79fe827549 Merge branch 'bugfix/fix_secondary_console_no_vfs_v5.4' into 'release/v5.4'
fix(console): fixed secondary console not working on all chips without VFS (v5.4)

See merge request espressif/esp-idf!40025
2025-08-26 09:18:13 +08:00
Rahul Tank
7912b04e6b Merge branch 'bugfix/post_conn_failure_v5.4' into 'release/v5.4'
fix(nimble): Add code to post connection failure (v5.4)

See merge request espressif/esp-idf!41443
2025-08-25 16:49:58 +05:30
Zhang Hai Peng
96c2152f7f docs(ble): add advisory for CVE-2025-55297 found in Blufi example
(cherry picked from commit 1952f0333c)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-08-25 17:53:34 +08:00
Mahavir Jain
09f104bc84 Merge branch 'feat/make_https_async_request_under_crt_bundle_config_v5.4' into 'release/v5.4'
feat(esp_http_client): Make https_async request under CERT BUNDLE config (v5.4)

See merge request espressif/esp-idf!41459
2025-08-25 11:49:54 +05:30
Shreyas Sheth
57dd53cf45 fix(esp_wifi): Fix incorrect values for negotiated bandwidth for 2040 coex cases 2025-08-25 11:38:34 +05:30
Jiang Jiang Jian
508441f986 Merge branch 'fix/fix_submode_lost_in_reset_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix ESP_SLEEP_RTC_USE_RC_FAST_MODE submode lost in reset (v5.4)

See merge request espressif/esp-idf!41410
2025-08-25 10:58:49 +08:00
Jiang Jiang Jian
e8486a1dd4 Merge branch 'bugfix/update_librtc_v5.4' into 'release/v5.4'
fix(esp_phy): update esp32 librtc.a for coex problems (v5.4)

See merge request espressif/esp-idf!41252
2025-08-25 10:58:34 +08:00
Jiang Jiang Jian
def9a65770 Merge branch 'bugfix/offchan_fixes_v5.4' into 'release/v5.4'
fix(wifi): Fix issues discovered by customer for offchannel

See merge request espressif/esp-idf!41134
2025-08-25 10:34:37 +08:00
Marius Vikhammer
da892099cf Merge branch 'doc/remove_cpp_section_placement_limitation_v5.4' into 'release/v5.4'
docs(cplusplus): remove the limitation on IRAM_ATTR for templates (v5.4)

See merge request espressif/esp-idf!41474
2025-08-25 09:39:18 +08:00
Ivan Grokhotkov
c172f56013 docs(cplusplus): remove the limitation on IRAM_ATTR for templates
The issue has been fixed since GCC 14.

Related to https://github.com/espressif/esp-idf/issues/4542
2025-08-22 17:30:34 +02:00
muhaidong
2feecb3ffd feat(phy): update 11ax rate for cert test 2025-08-22 19:21:00 +08:00
muhaidong
6eb51bcc05 feat(phy): add 11ax rate for cert test 2025-08-22 19:21:00 +08:00
hrushikesh.bhosale
09bc497e1e feat(esp_http_client): Make https_async request under CERT BUNDLE config
Make https_async rqeuest under MBEDTLS_CERTIFICATE_BUNDLE config
2025-08-22 16:31:28 +05:30
Rahul Tank
9b93a39ffb fix(nimble): Add code to post connection failure
In event of a corner case, where connection is not completed,
connection reattempt is disabled, so need to post connection
failure event to application to make it aware of the failure
2025-08-22 16:16:54 +05:30
Shreyas Sheth
d47ec84145 fix(wifi): Fix issues discovered by customer for offchannel 2025-08-22 15:25:19 +05:30
Marius Vikhammer
bc3a35a88c fix(esp_timer): fixed potential buffer overflow with esp_timer_dump()
esp_timer_dump could overflow when dumping a large amount of timers

Closes https://github.com/espressif/esp-idf/issues/17008
2025-08-22 15:26:59 +08:00
Island
4302fa1dc0 Merge branch 'bugfix/fixed_ble_init_crash_issue_v5.4' into 'release/v5.4'
fix(ble): Invoke ble_transport_ll_init after ble_transport_hs_init for nimble (v5.4)

See merge request espressif/esp-idf!41429
2025-08-22 14:22:55 +08:00
Marius Vikhammer
f9e47732aa Merge branch 'bugfix/enable_misc_test_case_v5.4' into 'release/v5.4'
ci: cleanup misc system build-test-rules (v5.4)

See merge request espressif/esp-idf!41318
2025-08-22 11:26:58 +08:00
JinCheng
0067640a04 fix(esp_phy): update esp32 librtc.a for coex problems
- ESP32 phy_version: 4861, b71b5ad, Aug, 5 2025
- ESP32 librtc version: 6758f983, Mar 22 2024, 13:39:26
2025-08-22 10:53:31 +08:00
morris
4ad5bfb02b Merge branch 'fix/mcpwm_foc_example_fix_angle_calc_v5.4' into 'release/v5.4'
fix(driver_mcpwm): in foc example correct the angle calcutation (v5.4)

See merge request espressif/esp-idf!41421
2025-08-22 10:22:22 +08:00
Marius Vikhammer
00f4245160 fix(console): fixed secondary console not working on all chips without VFS 2025-08-22 09:38:46 +08:00
Alexey Gerenkov
ac1fdc16d3 Merge branch 'fix/no_inline__atomic_test_and_set_v5.4' into 'release/v5.4'
fix(newlib): add missing __atomic_test_and_set for RISCV chips wo 'a' extension (v5.4)

See merge request espressif/esp-idf!36706
2025-08-21 22:12:33 +08:00
Shen Wei Long
fda2c315e9 fix(ble): Invoke ble_transport_ll_init after ble_transport_hs_init for nimble
(cherry picked from commit c3f42161a1)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-08-21 09:23:42 +00:00
Wang Meng Yang
2dac39bd83 Merge branch 'bugfix/fix_bt_security_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data (v5.4)

See merge request espressif/esp-idf!41398
2025-08-21 16:17:12 +08:00
John Boiles
8f937d3b0a fix(memory-utils): Use esp_ptr_in_tcm to check TCM range 2025-08-21 09:40:27 +02:00
John Boiles
b025006b95 fix(memory-utils): Check TCM in esp_ptr_internal and esp_ptr_byte_accessible
Modifies `esp_ptr_internal` and `esp_ptr_byte_accessible` to also check TCM
when `SOC_MEM_TCM_SUPPORTED`.
2025-08-21 09:40:27 +02:00
Island
803d852c12 Merge branch 'feat/ble_iso_nimble_support_v5.4' into 'release/v5.4'
feat(ble): ISO minor support for NimBLE Host (v5.4)

See merge request espressif/esp-idf!41374
2025-08-21 14:02:30 +08:00
wanckl
99650931a1 fix(driver_mcpwm): in foc example correct the angle calcutation
Closes https://github.com/espressif/esp-idf/issues/17015
2025-08-21 13:44:24 +08:00
Jiang Jiang Jian
2b2a722add Merge branch 'bugfix/fix_open_mode_rx_fragment_fail_issue_v5.4' into 'release/v5.4'
fix(wifi): fix open mode rx fragment fail issue(Backport v5.4)

See merge request espressif/esp-idf!41068
2025-08-21 12:04:28 +08:00
Jiang Jiang Jian
70032d7f3e Merge branch 'fix/c6_phylib_for_modem_state_v5.4' into 'release/v5.4'
fix(esp_phy): fix c6 modem state (v5.4)

See merge request espressif/esp-idf!40869
2025-08-21 12:01:00 +08:00
Jiang Jiang Jian
c128e14375 Merge branch 'bugfix/roam_event_scan_failure_v5.4' into 'release/v5.4'
bugfix(wifi): Reset scan_ongoing flag in scan done event to allow scan trigger post roam (Backport v5.4)

See merge request espressif/esp-idf!40440
2025-08-21 11:57:29 +08:00
Island
61ee93bc5e Merge branch 'change/ble_update_lib_20250814_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250814 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!41371
2025-08-21 10:55:01 +08:00
Liu Linyan
cec09344dc feat(ble): ISO minor support for NimBLE Host 2025-08-20 17:00:53 +05:30
Rahul Tank
de407c6905 Merge branch 'fix/adding_missing_apis_nimble_v5.4' into 'release/v5.4'
fix(nimble): Added helper APIs in NimBLE (v5.4)

See merge request espressif/esp-idf!40929
2025-08-20 16:19:34 +05:30
wuzhenghui
9298596ea7 fix(esp_hw_support): test ESP_SLEEP_RTC_USE_RC_FAST_MODE sleep submode after reset 2025-08-20 17:33:35 +08:00
wuzhenghui
1e979793b4 fix(esp_hw_support): fix ESP_SLEEP_RTC_USE_RC_FAST_MODE sub_mode lost after cpu/sys reset
Closes https://github.com/espressif/esp-idf/issues/16243
2025-08-20 17:33:10 +08:00
yangfeng
0c7f765b69 fix(bt/bluedroid): Prevent out-of-bounds access and add type check when resolving EIR data 2025-08-20 14:30:52 +08:00
Jiang Jiang Jian
c0c0ee4a55 Merge branch 'enhancement/protect_from_odd_phy_disable_operations_by_single_modem_v5.4' into 'release/v5.4'
esp_phy: Add protection of consecutive disable operations by single modem source (v5.4)

See merge request espressif/esp-idf!41292
2025-08-20 14:24:00 +08:00
Jiang Jiang Jian
080cccfb5c Merge branch 'fix/fix_lightsleep_pd_modem_breaks_common_fe_clock_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix lightsleep pd modem breaks common fe clock (v5.4)

See merge request espressif/esp-idf!41111
2025-08-20 14:23:28 +08:00
Jiang Jiang Jian
cd3fb82062 Merge branch 'contrib/github_pr_15057_v5.4' into 'release/v5.4'
feat(dhcps): Support for multiple DNS servers (GitHub PR) (v5.4)

See merge request espressif/esp-idf!39267
2025-08-20 14:19:48 +08:00
Island
d66354c354 Merge branch 'bugfix/ble_enhanced_security_v2_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed potential out-of-bounds memory access when resolve adv data (v5.4)

See merge request espressif/esp-idf!41306
2025-08-20 11:18:22 +08:00
Island
cc252485ae Merge branch 'feat/support_blufi_adv_with_name_v5.4' into 'release/v5.4'
feat(bt/blufi): Support Blufi start advertising with specified name (v5.4)

See merge request espressif/esp-idf!41337
2025-08-20 10:38:06 +08:00
Mahavir Jain
872bcb6056 Merge branch 'feat/add_new_client_state_and_update_state_flow_v5.4' into 'release/v5.4'
feat(esp_http_client): added new HTTP state HTTP_STATE_CONNECTING and change state flow (v5.4)

See merge request espressif/esp-idf!41277
2025-08-19 20:14:04 +05:30
Island
dfc292844f Merge branch 'feat/support_cble50y24_108_v5.4' into 'release/v5.4'
Support multi-connection optimization and examples on Bluedroid (v5.4)

See merge request espressif/esp-idf!41199
2025-08-19 21:11:00 +08:00
Astha Verma
0181cbd3ca fix(nimble): Added missing api in nimble which present in bluedroid 2025-08-19 12:23:31 +05:30
Zhou Xiao
03f48ed829 feat(ble): support pawr feature in ble sdk on ESP32-H2
(cherry picked from commit 2f7e200fc8)

Co-authored-by: cjin <jinchen@espressif.com>
2025-08-19 13:14:34 +08:00
Zhou Xiao
1b68ee2287 feat(ble): support pawr feature in ble sdk on ESP32-C6
(cherry picked from commit 410d904845)

Co-authored-by: cjin <jinchen@espressif.com>
2025-08-19 13:14:30 +08:00
Zhou Xiao
ba758fc764 feat(ble): add clk source freq change of ble slow clock on ESP32-H2
(cherry picked from commit cb60528f23)

Co-authored-by: cjin <jinchen@espressif.com>
2025-08-19 13:14:27 +08:00
Zhou Xiao
4d10df602b feat(ble): add clk source freq change of ble slow clock on ESP32-C6
(cherry picked from commit b5ce766c7f)

Co-authored-by: cjin <jinchen@espressif.com>
2025-08-19 13:14:25 +08:00
Zhou Xiao
fdea67236f change(ble): [AUTO_MR] Update lib_esp32c6 to 9492a0cb
(cherry picked from commit 236baa7585)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-08-19 13:14:22 +08:00
Zhou Xiao
e535a8a938 change(ble): [AUTO_MR] Update lib_esp32h2 to 9492a0cb
(cherry picked from commit ea32d4cd18)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-08-19 13:14:20 +08:00
Wang Meng Yang
ab49f68409 Merge branch 'bugfix/check_bd_addr_only_for_bredr_v5.4' into 'release/v5.4'
fix(bt): check bd address only for bredr in bluedroid host l2cu_allocate_lcb() (v5.4)

See merge request espressif/esp-idf!41360
2025-08-19 11:41:02 +08:00
Marius Vikhammer
77266e7c11 Merge branch 'fix/panic_handler_reboot_before_halt_v5.4' into 'release/v5.4'
fix(panic_handler): Fixed a issue where the system reboots before halt (v5.4)

See merge request espressif/esp-idf!41267
2025-08-19 09:23:21 +08:00
Alexey Lapshin
7df8290e61 fix(newlib): add missing __atomic_test_and_set for RISCV chips wo 'a' extension
Before the change described in
https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631393.html it
appeared that inlining built-in GCC function __atomic_test_and_set() was
incorrect. It resulted in a non-atomic write.
After the change now present in GCC, the IDF should include the function
__atomic_test_and_set() to successfully link the final binary.

Closes https://github.com/espressif/esp-idf/issues/15167
2025-08-18 23:24:17 +08:00
Alexey Gerenkov
e155cfc255 Merge branch 'fix/coredump_max_tasks_num_v5.4' into 'release/v5.4'
fix(coredump): implement CONFIG_ESP_COREDUMP_MAX_TASKS_NUM limitation (v5.4)

See merge request espressif/esp-idf!41016
2025-08-18 23:23:01 +08:00
Shen Wei Long
bb650efb21 fix(bt): check bd address only for bredr in bluedroid host l2cu_allocate_lcb()
(cherry picked from commit 61c13ef849)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-08-18 13:23:27 +00:00
Mahavir Jain
c916109745 Merge branch 'change/ecdsa_does_not_use_mpi_esp32h2_eco5_v5.4' into 'release/v5.4'
The ECDSA module of ESP32-H2 ECO5 does not use the MPI module (v5.4)

See merge request espressif/esp-idf!41219
2025-08-18 14:02:43 +05:30
Chen Jian Hua
b130c3f309 feat(bt/blufi): Support Blufi start advertising with specified name
(cherry picked from commit ea8bcdc360)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-08-18 14:54:53 +08:00
morris
025b6c6734 Merge branch 'refactor/use_gdma_link_in_rmt_v5.4' into 'release/v5.4'
refactor(rmt): use gdma link list driver to mount buffer (v5.4)

See merge request espressif/esp-idf!41237
2025-08-18 14:54:44 +08:00
morris
d834828e2a Merge branch 'fix/rmt_simple_encoder_done_with_mem_full_v5.4' into 'release/v5.4'
fix(rmt): fix the state of simple encoder with mem full (v5.4)

See merge request espressif/esp-idf!41244
2025-08-18 14:43:53 +08:00
Marius Vikhammer
75f2d74569 ci(system): enabled and cleanup misc system test-apps build-test-rules 2025-08-18 10:24:07 +08:00
morris
b8ea51b2aa Merge branch 'bugfix/ledc_update_duty_wait_v5.4' into 'release/v5.4'
fix(ledc): duty_start bit should wait for its self-clear before next set on esp32 (v5.4)

See merge request espressif/esp-idf!41273
2025-08-15 18:15:59 +08:00
morris
d626163d29 Merge branch 'bugfix/gpio_esp32_workaround_v5.4' into 'release/v5.4'
fix(gpio): fix ESP32 GPIO sleep mode handling (v5.4)

See merge request espressif/esp-idf!41216
2025-08-15 18:13:44 +08:00
Zhang Hai Peng
5fbd219533 fix(ble/bluedroid): Update Gatt_Server_Service_Table_Example_Walkthrough.md
(cherry picked from commit 6b360dacf6)

Co-authored-by: Cody <codyhubman4@gmail.com>
2025-08-15 14:54:01 +08:00
Zhang Hai Peng
e9f2d8cc2d fix(ble/bluedroid): Fixed the problem of macro definition error
(cherry picked from commit 6b212c7d47)

Co-authored-by: BLKDASH <128231495+BLKDASH@users.noreply.github.com>
2025-08-15 14:53:58 +08:00
Zhang Hai Peng
7b97a8ee35 fix(ble/bluedroid): Fixed potential out-of-bounds memory access when resolve adv data
(cherry picked from commit 12df54e8d1)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-08-15 14:53:56 +08:00
Chen Jian Hua
3dee8b54a5 feat(ble/bluedroid): Added BLE multiple connections examples
(cherry picked from commit b8996f3953)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-08-15 14:35:04 +08:00
Island
e7281f4dd7 Merge branch 'fix/spi_ble_log_get_lc_ts_ceva_v5.4' into 'release/v5.4'
fix(ble): disabled get lc ts for ESP32-C3 and ESP32-S3 (v5.4)

See merge request espressif/esp-idf!41230
2025-08-15 13:48:29 +08:00
Wang Mengyang
f26341ac93 fix(esp_phy): Add protection of consecutive disable operations by single modem source 2025-08-15 07:21:09 +08:00
Erhan Kurubas
99b9886725 fix(coredump): implement CONFIG_ESP_COREDUMP_MAX_TASKS_NUM limitation 2025-08-15 03:55:36 +08:00
nilesh.kale
97cfde9512 feat(esp_http_client): avoid dispatching of spurious event while closing closes connection
This commit updated the client closing condition to avoid spurious
dispatching of event HTTP_EVENT_DISCONNECTED while closing closeed connection.

Closes https://github.com/espressif/esp-idf/issues/16070
2025-08-14 17:06:32 +05:30
Song Ruo Jing
a194b02246 fix(ledc): duty_start bit should wait for its self-clear before next set on esp32 2025-08-14 19:07:06 +08:00
Sudeep Mohanty
80ad7ec71a test(panic_handler): Added unit test to verify panic handler can halt
This test verifies that the panic handler can indeed halt when
configured to print and halt instead of rebboting.
2025-08-14 12:54:38 +02:00
morris
5d20d91dac Merge branch 'bugfix/fix_touch_isr_safe_issue_v5.4' into 'release/v5.4'
fix(legacy_touch): fixed touch read API can't be called in ISR context (v5.4)

See merge request espressif/esp-idf!41078
2025-08-14 17:17:13 +08:00
Sudeep Mohanty
17037437ff fix(panic_handler): Fixed a issue where the system reboots before halt
This commit fixes an issue where the panic handler may reboot even if it
is configured to halt the CPU.

Closes https://github.com/espressif/esp-idf/issues/17260
2025-08-14 11:03:24 +02:00
Chen Jichang
0cc6d037ea fix(rmt): fix the state of the simple encoder with mem full
Closes https://github.com/espressif/esp-idf/issues/17244
2025-08-14 15:49:12 +08:00
Marius Vikhammer
8888cf92af Merge branch 'fix/linenoise-arrow-usage_v5.4' into 'release/v5.4'
fix(linenoise): Read escape sequences one character at a time (v5.4)

See merge request espressif/esp-idf!40691
2025-08-14 14:23:43 +08:00
Chen Jichang
6a17241f1f feat(rmt): allow to set init level before any tx transmission
Closes https://github.com/espressif/esp-idf/issues/16068
2025-08-14 11:28:29 +08:00
Chen Jichang
ccf13b9732 fix(rmt): deal with spurious RX done interrupts on ESP32
Closes https://github.com/espressif/esp-idf/issues/15948
2025-08-14 11:28:26 +08:00
Zhou Xiao
4c8830809c fix(ble): disabled get lc ts for ESP32-C3 and ESP32-S3
(cherry picked from commit c17bf63874)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-08-14 11:14:03 +08:00
harshal.patil
93473a0558 change(mbedtls/ecdsa): The ECDSA module of ESP32-H2 ECO5 does not use MPI module 2025-08-13 20:38:12 +05:30
Song Ruo Jing
dd9676051c fix(gpio): remove GPIO_OUTPUT_SET macro for ESP32P4
Use GPIO_OUTPUT_SET led to compilation error

Closes https://github.com/espressif/esp-idf/issues/16050
2025-08-13 21:30:32 +08:00
Song Ruo Jing
8b00eb2472 fix(ci): add ci test for gpio etm test cases 2025-08-13 21:27:46 +08:00
Song Ruo Jing
67a2dfa293 fix(lp_io): w1ts/w1tc register access performance is improved
by avoiding "read-modify-write" operation. The registers designed to be
write only.
2025-08-13 21:24:19 +08:00
Olivér Remény
130b83fee7 fix(gpio): Avoid error message when calling reset on an input only pin
The `gpio_reset_pin` function attempted to enable internal pullup on pins which does not have one.
This change adds a guard to `gpio_reset_pin` for calling `gpio_pullup_en`
- the same guard that makes `gpio_pullup_en` print the error.
2025-08-13 21:19:53 +08:00
Song Ruo Jing
a8e8b828af fix(gpio): fix ESP32 GPIO sleep mode handling
The previous workaround does not work, the backup/restore should apply to RTC IO registers.
2025-08-13 21:14:28 +08:00
Island
becda540cd Merge branch 'change/ble_update_lib_20250806_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250806 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!41140
2025-08-13 14:28:17 +08:00
Chen Jian Hua
ef85ffbfe5 feat(ble/bluedroid): Support multi-connection optimization vendor hci command
(cherry picked from commit f0cfb6e33c)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-08-12 21:33:56 +08:00
Chen Jian Hua
108a394e2c fix(ble/bluedroid): Fixed the connection count limit in multi-connection
(cherry picked from commit 437aba1653)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-08-12 21:33:54 +08:00
Chen Jian Hua
7cdd1068f7 fix(bt/bluedroid): adjust L2CAP round robin msg send strategy
(cherry picked from commit 2ccae5330e)

Co-authored-by: xuzhekai <xuzhekai@espressif.com>
2025-08-12 21:33:51 +08:00
Rahul Tank
d0ad380c8c Merge branch 'fix/update_ble_gatts_show_local_with_cpfd_v5.4' into 'release/v5.4'
fix(nimble): Update ble_gatts_show_local with CPFDs and CAFDs (v5.4)

See merge request espressif/esp-idf!41169
2025-08-12 14:59:07 +05:30
Shu Chen
4e4b5d7c73 Merge branch 'feat/add_154_mac_logs_when_ot_assert_v5.4' into 'release/v5.4'
feat(openthread): add option to dump 802.15.4 MAC debug info on assert (v5.4)

See merge request espressif/esp-idf!40971
2025-08-12 07:32:46 +00:00
Alexey Gerenkov
bd4e3613e4 Merge branch 'feat/esp32c5_lp_debug_example_v5.4' into 'release/v5.4'
feat(ulp): esp32c5 and esp32p4 support in debugging example (v5.4)

See merge request espressif/esp-idf!41007
2025-08-11 22:27:38 +08:00
Sumeet Singh
dec8a657ce fix(nimble): Update ble_gatts_show_local with CPFDs and CAFDs (v5.4) 2025-08-11 17:33:50 +05:30
morris
4877b2f1b8 Merge branch 'fix/fix_dvp_dma_desc_type_on_s3_v5.4' into 'release/v5.4'
camera: fixed dvp dma desc type on s3 (v5.4)

See merge request espressif/esp-idf!41085
2025-08-11 17:18:39 +08:00
laokaiyao
2a1811c8cd fix(legacy_touch): fixed touch read API can't be called in ISR context
Closes https://github.com/espressif/esp-idf/issues/17045
2025-08-11 14:02:35 +08:00
Rahul Tank
98f0a9b9e2 Merge branch 'feat/add_vsc_specify_scan_chan_v5.4' into 'release/v5.4'
fix(nimble): Add VSC for Set Scan Channel Bitmap (v5.4)

See merge request espressif/esp-idf!41093
2025-08-11 11:23:41 +05:30
Zhao Wei Liang
23163e8fc7 change(ble): enabled specify scan channel vs hci cmd for ESP32-C2
(cherry picked from commit 2818eb91f1)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-08-11 10:32:16 +08:00
akshat
42caf87f66 bugfix(wifi): Reset scan_ongoing flag in scan done event to allow scan trigger post roam 2025-08-11 10:30:52 +08:00
muhaidong
c497c89984 fix(wifi): fix open mode rx fragment fail issue 2025-08-11 10:27:48 +08:00
armando
85525a3caa fix(cam): fixed dvp dma desc type on s3" 2025-08-11 01:52:38 +00:00
Zhao Wei Liang
830ecc651c change(ble): [AUTO_MR] updated rom linker script for ESP32-C2
(cherry picked from commit 7f7c8e2c85)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-08-08 21:14:16 +08:00
Zhao Wei Liang
65c3b2a120 change(ble): [AUTO_MR] Update lib_esp32c2 to dbd33ef2
(cherry picked from commit 043143ab8b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-08-08 21:14:13 +08:00
Zhao Wei Liang
6aed375fc7 change(ble): [AUTO_MR] Update lib_esp32c6 to 898f73cb
(cherry picked from commit fe22519bb5)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-08-08 21:14:11 +08:00
Zhao Wei Liang
5cd35bf979 change(ble): [AUTO_MR] Update lib_esp32h2 to 898f73cb
(cherry picked from commit 4990dfdd23)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-08-08 21:14:08 +08:00
Island
ee2a48c3c1 Merge branch 'bugfix/fixed_ble_dtm_err_v5.4' into 'release/v5.4'
Bugfix/fixed ble dtm err (v5.4)

See merge request espressif/esp-idf!40954
2025-08-08 20:23:46 +08:00
wuzhenghui
f1066f5f34 change(esp_hw_support): warning in esp_sleep_pd_config instead of assert
Closes https://github.com/espressif/esp-idf/issues/16872#event-18649904083
2025-08-08 14:32:00 +08:00
Rahul Tank
9d9e3a8ee4 fix(nimble): Add VSC for Set Scan Channel Bitmap 2025-08-08 11:30:25 +05:30
Rahul Tank
bd7085243f Merge branch 'bugfix/correct_attr_count_in_get_db_api_v5.4' into 'release/v5.4'
fix(nimble): Updating the count parameter when fetching the gatt db (v5.4)

See merge request espressif/esp-idf!41031
2025-08-08 11:15:11 +05:30
wuzhenghui
881b02598c change(esp_hw_support): always do hardware clock enable in modem module enabling 2025-08-08 11:53:41 +08:00
wuzhenghui
40ba25aecd fix(esp_hw_support): fix MODEM_ADC_COMMON_FE destroyed by modem powerdown lightsleep 2025-08-08 11:53:30 +08:00
Alexey Gerenkov
da5b2a4dae Merge branch 'feature/update-toolchain-to-esp-14.2.0_20250730_v5.4' into 'release/v5.4'
feat(tools): update toolchain version to esp-14.2.0_20250730

See merge request espressif/esp-idf!41020
2025-08-07 21:48:43 +08:00
Jiang Jiang Jian
6f769323fe Merge branch 'bugfix/enable_ipv6_if_nan_v5.4' into 'release/v5.4'
bugfix(wifi): Enable IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled (Backport v5.4)

See merge request espressif/esp-idf!40488
2025-08-06 19:50:56 +08:00
zwx
fa22ef2017 feat(openthread): add option to dump 802.15.4 MAC debug info on assert 2025-08-06 06:34:02 +00:00
hrushikesh.bhosale
3a7380f5bc feat(esp_http_server): Added pre handshake callback for websocket
1. If the user wants authenticate the request, then user needs to do
this before upgrading the protocol to websocket.
2. To achieve this, added pre_handshake_callack, which will execute
before handshake, i.e. before switching protocol.
2025-08-06 11:43:22 +05:30
Mahavir Jain
7c82234872 Merge branch 'fix/update_postman_root_certificate_v5.4' into 'release/v5.4'
Updated postman root certificate (v5.4)

See merge request espressif/esp-idf!41052
2025-08-05 19:39:56 +05:30
hrushikesh.bhosale
e3b14de2c1 fix(esp_http_client): Moved httpd_async request from cert_pem to crt_bundle
Moved the httpd_async request from cert_pem to esp_crt_bundle. As cert_pem
is alredy tested for howmyssl URL
2025-08-05 16:27:20 +05:30
Astha Verma
d89aaefc46 fix(nimble): Handle count correctly by considering offset. 2025-08-05 14:43:17 +05:30
Astha Verma
62c0875cf2 fix(nimble): Updating the count parameter when fetching gatt db 2025-08-05 14:19:28 +05:30
Island
7148f294e1 Merge branch 'bugfix/fix_bt_hci_not_effective_v5.4' into 'release/v5.4'
Fixed bt hci event was not report to host when hci command was sent (v5.4)

See merge request espressif/esp-idf!41012
2025-08-05 14:30:56 +08:00
Alexey Lapshin
c5f20de997 feat(tools): update toolchain version to esp-14.2.0_20250730 2025-08-05 12:50:52 +08:00
Mahavir Jain
1e8d469730 Merge branch 'fix(esp_http_client)/fix_potential_double_free_v5.4' into 'release/v5.4'
fix(esp_http_client): fix possible double memory free (v5.4)

See merge request espressif/esp-idf!40978
2025-08-05 09:50:25 +05:30
Zhao Wei Liang
1796aafeb1 fix(ble): fixed dtm function error on ESP32-H2
(cherry picked from commit 43c82b3b20)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-08-05 12:03:59 +08:00
Zhao Wei Liang
8ea01297c8 fix(ble): fixed dtm function error on ESP32-C6
(cherry picked from commit ca0fdad4f2)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-08-05 12:03:59 +08:00
morris
4ed057ceef Merge branch 'bugfix/fix_es7210_example_dependency_breaking_change_v5.4' into 'release/v5.4'
fix(i2s_es7210): fixed breaking change of dependency migration (v5.4)

See merge request espressif/esp-idf!41043
2025-08-05 11:52:44 +08:00
laokaiyao
342986f291 fix(i2s_es7210): fixed breaking change of dependency migration 2025-08-05 11:24:01 +08:00
Samuel Obuch
6ce0ed4a2e fix(lp_core): dont reset lp cpu with debug attached 2025-08-04 09:52:20 +02:00
Jiang Jiang Jian
6b0b85b6a2 Merge branch 'fix/wpsreg_crash_due_to_double_reset_v5.4' into 'release/v5.4'
fix(wifi): Fix crash in WPS-registrar due to nested 'eap_wsc_reset()' calls (backport v5.4)

See merge request espressif/esp-idf!40958
2025-08-04 15:04:35 +08:00
akshat
c210171775 bugfix(wifi): Define ETH_ALEN for IPV6 Communication Type 2025-08-04 14:00:00 +08:00
akshat
efde9587d6 bugfix(wifi): Enable IPv6 support via LWIP_IPV6 when WiFi Aware(NAN) is enabled 2025-08-04 14:00:00 +08:00
Jiang Jiang Jian
15ce8e4bee Merge branch 'fix/fix_esp32c2_eco4_ld_issue_v54' into 'release/v5.4'
fix(wifi): fix esp32c2 eco4 ld issue v54

See merge request espressif/esp-idf!40923
2025-08-04 13:58:49 +08:00
Jiang Jiang Jian
1527c1c1e0 Merge branch 'bugfix/classic_bt-safe-string-handling_v5.4' into 'release/v5.4'
Bugfix/classic bt safe string handling v5.4

See merge request espressif/esp-idf!40947
2025-08-04 12:11:37 +08:00
Zhang Hai Peng
832dddb973 fix(bt/ble): Update esp32 libbtdm_app.a (722c907a)
- Fixed bt hci event was not report to host when hci command was sent


(cherry picked from commit 155c32be20)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-08-04 11:53:30 +08:00
Jiang Jiang Jian
d9251d7efd Merge branch 'bugfix/brownout_log_v5.4' into 'release/v5.4'
fix: change brownout log from INFO to ERROR (v5.4)

See merge request espressif/esp-idf!40960
2025-08-04 10:38:18 +08:00
Jiang Jiang Jian
7436ed4b5f Merge branch 'fix/fix_submode_assert_in_slowck_changed_ota_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix assert when changing 8MD256 RTC slow clock source during OTA  (v5.4)

See merge request espressif/esp-idf!40821
2025-08-01 20:15:49 +08:00
Ashish Sharma
b72f3124ba fix(esp_http_client): fix possible double memory free 2025-08-01 15:09:44 +08:00
Roland Dobai
1dd3d7360f Merge branch 'feat/ide_requirements_v5.4' into 'release/v5.4'
feat(tools/requirements): Add IDE requirements files (v5.4)

See merge request espressif/esp-idf!40941
2025-08-01 07:41:36 +02:00
wangtao@espressif.com
a27c0d5e5e fix(phy): fix esp32c2 build issue 2025-08-01 12:05:59 +08:00
Mahavir Jain
f778e6fcac fix: change brownout log from INFO to ERROR 2025-08-01 08:48:23 +05:30
Sarvesh Bodakhe
ddf7ea9de9 fix(wifi): prevent crash in WPS-registrar due to nested 'eap_wsc_reset()' calls
When a WPS handshake is already in progress and the enrollee sends another EAPOL-Start
(e.g., due to missed packets or timeout), the registrar resets its state by calling
'eap_wsc_reset()'. This function frees 'sm->eap_method_priv' and then calls
'esp_wifi_ap_wps_disable()', which internally triggers another call to 'eap_wsc_reset()'.

This results in a double reset where the second invocation accesses the already freed
'sm->eap_method_priv', leading to a crash.

This fix sets 'sm->eap_method_priv' to NULL immediately after freeing it to ensure
any subsequent calls to eap_wsc_reset() do not access an invalid pointer.
2025-08-01 08:46:41 +05:30
morris
dc2f9df970 Merge branch 'fix/fix_dvp_loss_isr_v5.4' into 'release/v5.4'
Cam: fixed dvp lose frame issue (v5.4)

See merge request espressif/esp-idf!40886
2025-08-01 09:58:17 +08:00
JinCheng
35061a7a36 fix(bt/bluedroid): safe string returns and cleanups for bt_discovery example 2025-07-31 21:08:57 +08:00
Nikheel Savant
ade3529edf fix(bt/bluedroid): safe string returns and cleanups 2025-07-31 21:08:57 +08:00
Peter Dragun
4ae64843a3 feat(tools/requirements): Add IDE requirements files 2025-07-31 12:06:03 +02:00
wangtao@espressif.com
2aad5e4185 fix(wifi): fix esp32c2 eco4 ld issue 2025-07-31 17:03:35 +08:00
Island
a5c7fe8697 Merge branch 'change/ble_update_lib_20250728_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250728 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!40911
2025-07-31 11:51:43 +08:00
Jiang Jiang Jian
51257119d5 Merge branch 'feat/eap_method_limit_v5.4' into 'release/v5.4'
feat(esp_wifi): Add support to limit EAP methods (v5.4)

See merge request espressif/esp-idf!40503
2025-07-31 10:06:52 +08:00
morris
0f6b683441 Merge branch 'fix/spi_master_p4_change_default_clk_pll_v5.4' into 'release/v5.4'
fix(driver_spi): master driver change esp32p4 default src to pll (v5.4)

See merge request espressif/esp-idf!40114
2025-07-31 09:51:58 +08:00
Roland Dobai
1b03eaf6fd Merge branch 'feat/extend_shell_classes_uppercase_v5.4' into 'release/v5.4'
feat(tools): Normalize detected shell name to lowercase on Windows (v5.4)

See merge request espressif/esp-idf!40922
2025-07-30 17:02:31 +02:00
Marek Fiala
576ccaf394 feat(tools): Normalized detected shell names to lowercase on Windows
Closes https://github.com/espressif/esp-idf/issues/16868
2025-07-30 16:31:50 +02:00
Marek Fiala
5920a073a8 change(tools): shell_types.py ruff formatting 2025-07-30 16:31:50 +02:00
zwx
7cf5ab166d fix(esp_phy): fix c6 modem state 2025-07-30 20:44:46 +08:00
Shu Chen
7edf40d101 Merge branch 'fix_ot_src_addr_select_v5.4' into 'release/v5.4'
Fix ot src addr select (v5.4)

See merge request espressif/esp-idf!40874
2025-07-30 09:55:04 +00:00
Island
175cb021b7 Merge branch 'bugfix/fix_ble_aa_check_v2_v5.4' into 'release/v5.4'
Optimize check Access Address when receive connection request PDU (v5.4)

See merge request espressif/esp-idf!40749
2025-07-30 16:55:23 +08:00
Island
477aa4e052 Merge branch 'opt/opt_ble_hid_example_pair_fail_v5.4' into 'release/v5.4'
fix(ble/bluedroid): set sec_conn only on successful pairing in ble_hid_device_demo (v5.4)

See merge request espressif/esp-idf!40902
2025-07-30 16:54:30 +08:00
Jakub Kocka
2807696eb9 fix(tools): Fixed click function usage to solve deprecation issue 2025-07-30 09:34:17 +02:00
Jakub Kocka
bab2ee9600 fix(tools): Avoided using the click's deprecated __version__ 2025-07-30 09:34:17 +02:00
Zhou Xiao
83171aca21 feat(ble): ble log spi out dev phase 5
* supported ts sync for light sleep
* removed controller event queue dependency
* supported get lc ts for ESP32-C3/S3
* optimized ble log spi out code size


(cherry picked from commit f99389e00d)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-30 13:14:33 +08:00
Zhou Xiao
d61e7c150c feat(ble): add flash only param config api on ESP32-H2
(cherry picked from commit 4c8258ca38)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-07-30 13:14:31 +08:00
Zhou Xiao
521555079f feat(ble): add flash only param config api on ESP32-C6
(cherry picked from commit dc65875e57)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-07-30 13:14:28 +08:00
Zhou Xiao
07023d94d6 change(ble): [AUTO_MR] updated rom linker script for ESP32-C2
(cherry picked from commit ac6acf3629)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-30 13:14:26 +08:00
Zhou Xiao
563b2e0dc4 change(ble): [AUTO_MR] Update lib_esp32c2 to 4556045f
(cherry picked from commit 0a7660d0f3)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-30 13:14:23 +08:00
Zhou Xiao
88528d1162 change(ble): [AUTO_MR] Update lib_esp32c6 to 499c41fb
(cherry picked from commit f2741f1932)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-30 13:14:21 +08:00
Zhou Xiao
89512cdf0c change(ble): [AUTO_MR] Update lib_esp32h2 to 499c41fb
(cherry picked from commit ee48ef2167)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-30 13:14:18 +08:00
wanckl
5583e8d95e fix(driver_spi): master driver change esp32p4 default src to pll 2025-07-30 10:14:01 +08:00
Zhang Hai Peng
d53035ab0a fix(ble/bluedroid): set sec_conn only on successful pairing in ble_hid_device_demo
(cherry picked from commit 50fe55ca59)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-07-29 21:53:35 +08:00
Rahul Tank
77402d2fa6 Merge branch 'bugfix/minor_update_readme_v5.4' into 'release/v5.4'
fix(nimble): Documentation update in btsnoop script README (v5.4)

See merge request espressif/esp-idf!40881
2025-07-29 16:16:20 +05:30
Guillaume Souchere
d5dca1a78d feat(usb_cdc): Add select functionality 2025-07-29 10:14:19 +02:00
zhanghaipeng
0268445333 fix(bt/ble): Update esp32 libbtdm_app.a (3a27e2e)
- Optimize check Access Address when receive connection request PDU
2025-07-29 15:38:58 +08:00
gaoxu
8baec757ef fix(dvp): fix dvp loss frame error 2025-07-29 14:48:15 +08:00
Rahul Tank
aee72d03f3 fix(nimble): Minor documentation update in btsnoop script usage 2025-07-29 11:54:14 +05:30
Island
8e094e7087 Merge branch 'bugfix/fix_some_ble_bugs_250628_cjh_esp32_v5.4' into 'release/v5.4'
Fixed some BLE bugs 250628 on esp32(d9a3de0) (v5.4)

See merge request espressif/esp-idf!40797
2025-07-29 14:11:47 +08:00
Rahul Tank
3dd2087108 Merge branch 'bugfix/fix_compilation_issue_v5.4' into 'release/v5.4'
fix(nimble): Fixed compilation issue with BLE_GATTS flag (v5.4)

See merge request espressif/esp-idf!40810
2025-07-29 11:26:26 +05:30
zwx
9215751334 fix(openthread): use OpenThread API in lwIP source address selection hook 2025-07-29 11:51:10 +08:00
zwx
d7fcba0280 fix(openthread): fix the preference of the ip6 address set to lwip 2025-07-29 11:51:10 +08:00
Kapil Gupta
297c9de26a fix(esp_wifi): Address review comments 2025-07-28 12:35:55 +05:30
Kapil Gupta
9c8ac5c3fb feat(esp_wifi): Add support to limit EAP methods
Added support to limit EAP method supported by device based on
user configuration.
2025-07-28 12:33:44 +05:30
Jiang Jiang Jian
88d8f5d299 Merge branch 'bugfix/fix_find_the_oldest_device_v5.4' into 'release/v5.4'
Bugfix/fix find the oldest device (v5.4)

See merge request espressif/esp-idf!40837
2025-07-28 14:45:34 +08:00
Jiang Jiang Jian
78d082470d Merge branch 'fix/ieee802154_example_rx_v5.4' into 'release/v5.4'
fix(ieee802154): set rx_when_idle to false when Rx stop (v5.4)

See merge request espressif/esp-idf!40824
2025-07-28 14:45:24 +08:00
Jiang Jiang Jian
d0354479bd Merge branch 'ci/enable_sysview_tests_v5.4' into 'release/v5.4'
ci: enable sysview example tests for all chips (v5.4)

See merge request espressif/esp-idf!39473
2025-07-28 14:43:14 +08:00
Abhik Roy
ee34949087 fix(dhcps): Fixed DNS server handling for previous breaking changes 2025-07-28 14:34:27 +08:00
Lorenzo Consolaro
418ed7a575 feat(dhcps): Support for multiple DNS servers 2025-07-28 14:34:27 +08:00
Jiang Jiang Jian
9c4fbf3e3f Merge branch 'bugfix/fix_phy_test_crash_v5.4' into 'release/v5.4'
fix(PHY): Fixed phy test example crash (v5.4)

See merge request espressif/esp-idf!40757
2025-07-28 13:57:48 +08:00
Jiang Jiang Jian
ca0f20941f Merge branch 'bugfix/fix_pmksa_cache_expired_after_sntp_issue_v5.4' into 'release/v5.4'
fix(wifi): fix pmksa cache expiration caused by sntp time synchronization issue(Backport v5.4)

See merge request espressif/esp-idf!40832
2025-07-28 13:57:25 +08:00
Rahul Tank
2fcaa705ba fix(nimble): Added code under correct flags to fix compilation warnings 2025-07-28 10:22:42 +05:30
Jiang Jiang Jian
edeae998f7 Merge branch 'feat/add_bip_softAP_sae_ext_key_v5.4' into 'release/v5.4'
Add support for SAE-EXT on softAP and BIP on AP mode(5.4)

See merge request espressif/esp-idf!40829
2025-07-28 10:42:54 +08:00
Aditya Patwardhan
c6599cbd3e Merge branch 'fix/gcm_fallback_must_depend_on_software_gcm_symbol_v5.4' into 'release/v5.4'
fix(mbedtls/gcm): Allow enabling GCM fallback only if software GCM is available (v5.4)

See merge request espressif/esp-idf!40807
2025-07-27 12:28:01 +05:30
Zhang Hai Peng
bbc3f1d8d8 fix(ble/bluedroid): Fixed fail to disconnect when device record is cleared
(cherry picked from commit b6dc79af47)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-07-25 21:54:04 +08:00
Zhang Hai Peng
c640b35a48 fix(ble/bluedroid): fix incorrect resolving_list_avail_size update
(cherry picked from commit ac385530af)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-07-25 21:54:01 +08:00
Zhang Hai Peng
4616982b39 fix(ble/bluedroid): ensure resolving list is updated when the oldest device is removed
(cherry picked from commit 61606a6f95)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-07-25 21:53:59 +08:00
Zhang Hai Peng
5b79aa9a12 fix(ble/bluedroid): Fix issue causing BTM_GetSecurityFlags failed
(cherry picked from commit 48235c7b25)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-07-25 21:53:56 +08:00
muhaidong
f9fb14a3f3 fix(wifi): fix pmksa cache expiration caused by sntp time synchronization issue 2025-07-25 19:59:38 +08:00
zhangyanjiao
b54dff0968 fix(wifi/mesh): fixed the mesh crash issue when changing mesh AP's authmode
fix(wifi/mesh): fixed the esp_mesh_scan_get_ap_record() error in chain toplogy
2025-07-25 17:21:14 +05:30
Kapil Gupta
0a19eac18f fix(esp_wifi): Set default ap mgmt cipher 2025-07-25 16:53:25 +05:30
tarun.kumar
7d56951775 fix(wifi): Made changes in api for sending bcast deauth frames 2025-07-25 16:49:39 +05:30
tarun.kumar
7a4c91b2ab fix(wifi): Resolve out-of-bounds memory access in ieee80211w_kde_add 2025-07-25 16:47:25 +05:30
tarun.kumar
b8d7a33366 feat(wifi): Add SAE-EXT-KEY feature on softAP 2025-07-25 16:46:17 +05:30
Rahul Tank
ace0f634d3 Merge branch 'fix/clear_gatt_svc_len_v5.4' into 'release/v5.4'
fix(nimble): Clear GATT service entries counter upon GATT deinit (v5.4)

See merge request espressif/esp-idf!40546
2025-07-25 16:36:38 +05:30
Tan Yan Quan
901a10497c fix(ieee802154): set rx_when_idle to false when Rx stop 2025-07-25 17:22:32 +08:00
Tan Yan Quan
43dbfe2385 fix(ieee802154): initialize nvs before enable ieee802154 2025-07-25 17:22:32 +08:00
wuzhenghui
1de92b2e70 fix(esp_hw_support): enable ESP_SLEEP_RTC_FAST_USE_XTAL_MODE only once in RTC_FAST selection 2025-07-25 16:51:58 +08:00
wuzhenghui
2a815e9037 fix(esp_hw_support): fix assert when changing 8MD256 RTC slow clock source during OTA 2025-07-25 16:51:49 +08:00
Mahavir Jain
95699fe5f8 Merge branch 'bugfix/fix_memory_leak_on_http_header_fetch_failure_v5.4' into 'release/v5.4'
fix(esp_http_client): free header in case of ESP_ERR_HTTP_FETCH_HEADER (v5.4)

See merge request espressif/esp-idf!40663
2025-07-25 09:32:48 +05:30
harshal.patil
e761d83cf8 fix(mbedtls/gcm): Allow enabling GCM fallback only if software GCM is available 2025-07-25 08:48:16 +05:30
gaoxu
ac47fca1db fix(adc): fix rng adc error after deep sleep 2025-07-25 10:22:16 +08:00
Chen Jian Hua
b5151105d3 fix(bt): Update bt lib for ESP32(d9a3de0)
- Support BLE vendor HCI related params reset
- Support multi conn optimization vendor hci command
- Fixed the issue where rssi of conn is incorrect when latency is no zero
- Fixed prio setting for BLE events
- Fixed disconnection issue when coexisting with other BLE events
- Fixed crash due to bandwidth full when updating conn params


(cherry picked from commit f20c6a2813)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-07-24 21:33:33 +08:00
Zhi Wei Jian
1b1cab1c93 fix(rf/example): Fixed phy test example crash
(cherry picked from commit e2e5d4915b)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-07-24 16:14:07 +08:00
Guillaume Souchere
2bfea59aa8 fix(linenoise): Read escape sequences one character at a time 2025-07-24 08:21:45 +02:00
Rahul Tank
2ff67c4beb Merge branch 'bugfix/retry_packet_alloc_v5.4' into 'release/v5.4'
fix(nimble): Add packet allocation retry for limited iteration (v5.4)

See merge request espressif/esp-idf!40684
2025-07-24 10:13:47 +05:30
Mahavir Jain
4c4435c12f Merge branch 'fix/mqtt_ssl_ds_build_failure_v5.4' into 'release/v5.4'
fix(mqtt): Increased partition size to fix build failure (v5.4)

See merge request espressif/esp-idf!40767
2025-07-24 09:26:40 +05:30
Island
45751f9588 Merge branch 'feat/add_cte_iq_report_example_v5.4' into 'release/v5.4'
Add Bluetooth LE CTE connless example. (v5.4)

See merge request espressif/esp-idf!39782
2025-07-23 20:50:21 +08:00
Rahul Tank
0747047d9e Merge branch 'bugfix/add_old_btsnoop_hci_py_v5.4' into 'release/v5.4'
fix(nimble): Updated parser script for HCI log creation (v5.4)

See merge request espressif/esp-idf!40728
2025-07-23 16:21:42 +05:30
Aditya Patwardhan
6c1f794343 fix(mqtt): Increased partition size to fix build failure 2025-07-23 15:38:58 +05:30
Jiang Jiang Jian
09bea2a533 Merge branch 'fix/disconnect_sta_in_wps_start_v5.4' into 'release/v5.4'
fix(wifi): Disconnect station from previous AP in wps_start instead of wps_enable (Backport v5.4)

See merge request espressif/esp-idf!40644
2025-07-23 14:11:22 +08:00
Mahavir Jain
7183a69502 Merge branch 'contrib/github_pr_16076_v5.4' into 'release/v5.4'
fix(esp_http_client): fix spurious async open error (GitHub PR) (v5.4)

See merge request espressif/esp-idf!40741
2025-07-22 20:32:53 +05:30
Geng Yu Chao
e7be340569 Merge branch 'release/v5.4' into 'feat/add_cte_iq_report_example_v5.4' 2025-07-22 16:12:50 +08:00
Richard Allen
ae26235ebf fix(esp_http_client): fix spurious async open error
Fix esp_http_client_open() often triggering a
spurious HTTP_EVENT_ERROR when is_async=true.

Fixes https://github.com/espressif/esp-idf/issues/16075
2025-07-22 11:37:17 +05:30
Mahavir Jain
a1b7cc9f65 Merge branch 'feature/support_ds_peripheral_rsa_decryption_v5.4' into 'release/v5.4'
feat(mbedtls): Add support for RSA decryption with DS peripheral (v5.4)

See merge request espressif/esp-idf!40450
2025-07-22 10:36:14 +05:30
Fu Hanxi
b12def1fc3 ci: use fixed telnetlib since python 3.13 removed this from stdlib 2025-07-21 15:17:01 +02:00
Wang Meng Yang
8c002cf576 Merge branch 'feat/add_handl_in_sdp_evt_v5.4' into 'release/v5.4'
feat(bt): Add record_handle in ESP_SDP_REMOVE_RECORD_COMP_EVT(v5.4)

See merge request espressif/esp-idf!40719
2025-07-21 19:10:06 +08:00
Rahul Tank
ff57a02d00 fix(nimble): Add support to parser script to parse logs with/without ts
Introduced a new "--has-ts" input parameter to script to detect if logs
has timestamp information or not
2025-07-21 13:56:14 +05:30
xiongweichao
f1b7b474c5 feat(bt): Add record_handle in ESP_SDP_REMOVE_RECORD_COMP_EVT 2025-07-21 10:27:34 +08:00
Roland Dobai
6013186591 Merge branch 'feat/extend_pip_user_option_check_v5.4' into 'release/v5.4'
feat(tools): Disabled pip 'user' option, when installing ESP-IDF python virtual environment (v5.4)

See merge request espressif/esp-idf!40571
2025-07-18 10:09:59 +02:00
Jiang Jiang Jian
fd78cc61fd Merge branch 'fix/fix_esp32_core1_access_rtc_fast_in_sleep_code_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32 APP_CPU accessing RTC_FAST memory in sleep code (v5.4)

See merge request espressif/esp-idf!40557
2025-07-18 15:39:23 +08:00
Jiang Jiang Jian
0d179e7cd6 Merge branch 'bugfix/ci_release_zip_base_image_v5.4' into 'release/v5.4'
Bump ubuntu version for release zips workflow (v5.4)

See merge request espressif/esp-idf!40647
2025-07-18 15:39:15 +08:00
Rocha Euripedes
b9f20e3e3c Merge branch 'fix/bridge_test_ssh_v5.4' into 'release/v5.4'
fix(esp_eth): bridge test to use SSH key when connect to endnode (v5.4)

See merge request espressif/esp-idf!40623
2025-07-18 15:36:45 +08:00
Rahul Tank
c868984de5 Merge branch 'feat/add_timestamp_v5.4' into 'release/v5.4'
fix(nimble): Enhanced HCI logging by adding timestamp information (v5.4)

See merge request espressif/esp-idf!40634
2025-07-18 12:27:33 +05:30
Rahul Tank
1410ab3335 fix(nimble): Add packet allocation retry for limited iteration 2025-07-18 11:00:05 +05:30
Marek Fiala
6cd12fe8dd feat(tools): Enforce pip 'user' option to no, when installing python env
Closes https://github.com/espressif/esp-idf/issues/16189
2025-07-18 13:03:09 +08:00
morris
46b67d4674 Merge branch 'docs/remove_incorrect_info_for_esp32p4_sdmmc_v5.4' into 'release/v5.4'
docs: Remove incorrect description for ESP32-P4 SDMMC (v5.4)

See merge request espressif/esp-idf!40674
2025-07-18 12:27:45 +08:00
Ashish Sharma
cfcf66f0b4 fix(esp_http_client): fix memory leak in current_header_value buffer
Fixed memory leak in esp_http_client_cleanup() where current_header_value
buffer was not being freed when ESP_ERR_HTTP_FETCH_HEADER is returned
during header parsing failures.
2025-07-18 12:00:11 +08:00
Zhang Shuxian
ce4a3fb86c docs: Remove incorrect description for ESP32-P4 SDMMC 2025-07-18 09:31:57 +08:00
Mahavir Jain
b257023dba Merge branch 'contrib/github_pr_15767_v5.4' into 'release/v5.4'
fix(esp_http_server): WebSocket frame parsing errors (GitHub PR) (v5.4)

See merge request espressif/esp-idf!40618
2025-07-17 14:42:37 +05:30
Sergei Silnov
5bbfdddf1d ci: bump ubuntu version for release zips workflow 2025-07-17 10:16:25 +02:00
Sarvesh Bodakhe
b33aa5384a fix(wifi): Disconnect station in wps_start instead of wps_enable
Modifies changes from 4cc09f2436
2025-07-17 13:38:47 +05:30
Rahul Tank
8c5e5fa3f3 fix(nimble): Enhanced HCI logging by adding timestamp information 2025-07-17 10:19:00 +05:30
Rahul Tank
a16d45cee9 Merge branch 'bugfix/make_blufi_adv_custom_v5.4' into 'release/v5.4'
feat(nimble): Add a way to make blufi advertising customizable (v5.4)

See merge request espressif/esp-idf!40530
2025-07-17 10:13:14 +05:30
Ondrej Kosta
33e8b1c4bd fix(esp_eth): bridge test to use SSH key when connect to endnode 2025-07-16 15:08:12 +02:00
Island
8ae27d8ab8 Merge branch 'change/ble_update_lib_20250709_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250709 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!40470
2025-07-16 19:12:01 +08:00
Vincent Hamp
b7ab27341e fix(esp_http_server): WebSocket frame parsing errors
Fixes the Websocket frame pasring error, by making sure
that two bytes are read compulsary for length bytes 126.

Closes https://github.com/espressif/esp-idf/pull/15767
Closes https://github.com/espressif/esp-idf/issues/15235
2025-07-16 14:15:08 +05:30
Samuel Obuch
d944c9274a fix(sysview): fix timestamp freq when not using APB clock 2025-07-15 21:25:14 +02:00
Samuel Obuch
64d9fd72c6 ci: enable example tests for esp32p4 2025-07-15 21:25:14 +02:00
Erhan Kurubas
8adc0dbfc5 feat(tools): add esp32c3 rev1.1 rom version string 2025-07-15 21:25:14 +02:00
Samuel Obuch
d40278174d ci: use shared OpenOCD class for GDB test app 2025-07-15 21:25:14 +02:00
Samuel Obuch
2ae20f9cb6 ci: OpenOCD class as fixture 2025-07-15 21:25:14 +02:00
Samuel Obuch
44e9bf61ae ci: enable sysview examples for all chips 2025-07-15 21:25:10 +02:00
Roland Dobai
1cc06bbdcb Merge branch 'fix/username_special_characters_v5.4' into 'release/v5.4'
feat(tools): Added encoding when special characters used with username (v5.4)

See merge request espressif/esp-idf!40569
2025-07-15 12:56:47 +02:00
Rocha Euripedes
c8ca9d813d Merge branch 'fix_mqtt_test_app_broker_v5.4' into 'release/v5.4'
fix(mqtt): Adds sdkconfig to use test broker (v5.4)

See merge request espressif/esp-idf!40586
2025-07-15 18:29:05 +08:00
Euripedes Rocha
7c818e81df fix(mqtt): Adds sdkconfig to use test broker
Changes the configuration to make test to use internal broker on CI
runs.
2025-07-15 08:48:00 +02:00
Jiang Jiang Jian
77d416b5b8 Merge branch 'bugfix/fix_second_scan_error_in_smartconfig_v5.4' into 'release/v5.4'
fix(wifi): fix duplicated offchan error, add coex wifi event imm (v5.4)

See merge request espressif/esp-idf!40495
2025-07-15 13:52:41 +08:00
zhangyanjiao
99eb1ced8e fix(wifi): fix duplicated offchan error, add coex wifi event imm 2025-07-14 19:52:11 +08:00
Jiang Jiang Jian
28e9f352f7 Merge branch 'bugfix/wpa_eap_v1_connect_issue_v5.4' into 'release/v5.4'
Adjusted authentication mode for wpa-eap version 1(v5.4)

See merge request espressif/esp-idf!40474
2025-07-14 19:37:27 +08:00
Aditya Patwardhan
0b78d625bf Merge branch 'fix/make_nack_log_debug_lvl_v5.4' into 'release/v5.4'
fix(i2c): Make i2c nack log as debug level ,etc (backport v5.4)

See merge request espressif/esp-idf!40535
2025-07-14 16:54:40 +05:30
Marek Fiala
5fe513cd18 feat(tools): Added encoding when special characters used with username
Closes https://github.com/espressif/esp-idf/issues/16229
2025-07-14 13:16:35 +02:00
tarun.kumar
68d8b1e7ca fix(softAP): Adjusted authentication mode for wpa-eap version 1 2025-07-14 12:28:08 +05:30
Jiang Jiang Jian
7ae6d4b022 Merge branch 'fix/retry_cnt_issue_for_non_pmf_sta_v5.4' into 'release/v5.4'
fix(failure_retry_cnt): Prevent NON-PMF STA retries if esp_wifi_disconnect() before handshake (Backport v5.4)

See merge request espressif/esp-idf!39544
2025-07-14 14:31:49 +08:00
wuzhenghui
ea314e9dd9 feat(esp_hw_support): add core1 enter deepsleep test case 2025-07-14 11:49:56 +08:00
wuzhenghui
d8e73e94f2 fix(esp_hw_support): fix esp32 APP_CPU accessing RTCFAST memory in sleep code
Closes https://github.com/espressif/esp-idf/issues/16243
2025-07-14 11:49:52 +08:00
Sumeet Singh
7dc79fd9f7 fix(nimble): Clear GATT service entries counter upon GATT deinit (v5.4) 2025-07-11 17:54:35 +05:30
Rahul Tank
e4756b3a9f fix(nimble): Add a way to make blufi advertising customizable
Based on changes in https://github.com/espressif/esp-idf/pull/8958
2025-07-11 15:29:43 +05:30
C.S.M
d77dc39bb2 fix(i2c): Add gpio reserve check on i2c driver,
Closes https://github.com/espressif/esp-idf/issues/15995
2025-07-11 15:21:59 +08:00
C.S.M
b55b718804 fix(i2c): Make i2c nack log as debug level 2025-07-11 15:21:21 +08:00
Jiang Jiang Jian
e839ed589c Merge branch 'feature/enable_support_for_deterministic_mode_and_ecdsa_192_v5.4' into 'release/v5.4'
enable support for deterministic mode and ecdsa 192 in ESP32H2 (v5.4)

See merge request espressif/esp-idf!39541
2025-07-11 13:47:39 +08:00
Jiang Jiang Jian
142c18f176 Merge branch 'feat/support_disable_pll_track_v5.4' into 'release/v5.4'
Support disable pll track (v5.4)

See merge request espressif/esp-idf!40340
2025-07-11 13:46:37 +08:00
Jiang Jiang Jian
fb0e8de755 Merge branch 'fix/force_enable_uart0_sclk_in_esp_restart_v5.4' into 'release/v5.4'
fix(esp_system): force enable uart0 sclk in esp_restart (v5.4)

See merge request espressif/esp-idf!40347
2025-07-11 13:46:00 +08:00
Jiang Jiang Jian
0f4cc8eb44 Merge branch 'bugfix/ag_data_callback_cleared_after_deinit_v5.4' into 'release/v5.4'
fix(bt): Fixed HFP AG data callback cleared after profile is re-initialized(v5.4)

See merge request espressif/esp-idf!39978
2025-07-11 13:44:25 +08:00
Jiang Jiang Jian
583fd13cd5 Merge branch 'feat/update_mbedtls_3.6.4_v5.4' into 'release/v5.4'
feat(mbedtls): update to version 3.6.4 (v5.4)

See merge request espressif/esp-idf!40376
2025-07-11 13:43:42 +08:00
Jiang Jiang Jian
f10ac3eec2 Merge branch 'fix/sdspi_cmd52_error_v5.4' into 'release/v5.4'
fix(sdmmc): fix sdmmc initialization issue caused by CMD52 CRC error (v5.4)

See merge request espressif/esp-idf!40283
2025-07-11 13:42:47 +08:00
Jiang Jiang Jian
fbac072325 Merge branch 'fix/lwip_dhcp_option_len_assert_v5.4' into 'release/v5.4'
fix(lwip): Fix appending DHCP option with HW-ID (v5.4)

See merge request espressif/esp-idf!40232
2025-07-11 13:42:13 +08:00
Jiang Jiang Jian
309c95216a Merge branch 'bugfix/add_the_cve_2025_52471_to_list_v5.4' into 'release/v5.4'
fix(wifi): Added CVE-2025-52471 to vulnerabilities list (v5.4)

See merge request espressif/esp-idf!40206
2025-07-11 13:41:10 +08:00
Jiang Jiang Jian
cc6b993b60 Merge branch 'feat/enable_wakeup_tests_for_more_chips_v5.4' into 'release/v5.4'
feat(esp_hw_support): enable wakeup tests for more chips (v5.4)

See merge request espressif/esp-idf!40046
2025-07-11 13:40:33 +08:00
Jiang Jiang Jian
d727ae38c2 Merge branch 'feat/remove-unecessray-condition-in-usj-read_v5.4' into 'release/v5.4'
fix(driver): remove unecessary if conditions in the read function (v5.4)

See merge request espressif/esp-idf!39944
2025-07-11 13:36:24 +08:00
Jiang Jiang Jian
1b74938811 Merge branch 'change/update-esp-event-register-doxygen_v5.4' into 'release/v5.4'
change(esp-event): Update the doxygen comment of esp_event_handler_register (v5.4)

See merge request espressif/esp-idf!39854
2025-07-11 13:36:06 +08:00
Jiang Jiang Jian
48825b4af4 Merge branch 'fix/ble_mesh_solic_tx_pdu_fix_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed issues with proxy solic pdu adv (v5.4)

See merge request espressif/esp-idf!39527
2025-07-11 13:35:47 +08:00
Zhou Xiao
815232ce12 fix(ble): updated rom linker script for ESP32-C2 2025-07-11 11:50:20 +08:00
cjin
25f219c6df feat(ble): enable broker initialization on ESP32-C6 2025-07-11 11:50:20 +08:00
cjin
8999678339 feat(ble): enable broker initialization on ESP32-H2 2025-07-11 11:50:20 +08:00
cjin
061466c9f1 feat(ble): support memory allocation check debug feature on ESP32-H2 2025-07-11 11:50:20 +08:00
cjin
0b904ff5de feat(ble): support memory allocation check debug feature on ESP32-C6 2025-07-11 11:50:20 +08:00
cjin
456a4682c8 feat(ble): support memory allocation check debug feature on ESP32-C2 2025-07-11 11:50:20 +08:00
Zhou Xiao
e17f857cb0 change(ble): [AUTO_MR] Update lib_esp32c2 to c7732d48 2025-07-11 11:50:20 +08:00
Zhou Xiao
c3806feb9e change(ble): [AUTO_MR] Update lib_esp32c6 to ca6c20bc 2025-07-11 11:50:20 +08:00
Zhou Xiao
db928ed77d change(ble): [AUTO_MR] Update lib_esp32h2 to ca6c20bc 2025-07-11 11:38:18 +08:00
Island
94496778ac Merge branch 'change/ble_update_lib_20250630_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250630 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!40300
2025-07-11 10:45:57 +08:00
Zhou Xiao
87396ab0ce fix(ble): ensure ble controller disable safety for ESP32-C2 2025-07-10 22:47:41 +08:00
zwl
20da1d9266 fix(ble): fixed occasional assert triggered during controller disable on ESP32-C2 2025-07-10 22:47:36 +08:00
zwl
a495def473 change(ble): [AUTO_MR] Update lib_esp32c2 to 9af627ef 2025-07-10 22:47:31 +08:00
zwl
331b28d37f change(ble): [AUTO_MR] Update lib_esp32c6 to d2d70d40 2025-07-10 22:47:23 +08:00
zwl
2cdd1c2074 change(ble): [AUTO_MR] Update lib_esp32c5 to d2d70d40 2025-07-10 22:47:18 +08:00
zwl
b98df991f9 change(ble): [AUTO_MR] Update lib_esp32h2 to d2d70d40 2025-07-10 22:47:13 +08:00
Jiang Jiang Jian
ef59c0c296 Merge branch 'bugfix/connect_before_connected_v5.4' into 'release/v5.4'
fix(conn): wifi connect before connected status (v5.4)

See merge request espressif/esp-idf!40103
2025-07-10 21:12:47 +08:00
Alexey Gerenkov
05cf51dc74 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20250707_v5.4' into 'release/v5.4'
feat(tools): update openocd version to v0.12.0-esp32-20250707 (v5.4)

See merge request espressif/esp-idf!40460
2025-07-10 19:32:46 +08:00
Jiang Jiang Jian
8685b76599 Merge branch 'feat/ble_mesh_micellaneous_fix_v5.4' into 'release/v5.4'
Feat/ble mesh micellaneous fix (v5.4)

See merge request espressif/esp-idf!39637
2025-07-10 12:06:19 +08:00
Ashish Sharma
89fa1559d9 feat(mbedtls): adds support for RSA decryption with DS peripheral 2025-07-10 11:29:44 +08:00
Jiang Jiang Jian
ddb8b8a8ac Merge branch 'fix/netif_ppp_dhcp_v5.4' into 'release/v5.4'
fix(esp_netif): Fix incorrect DHCP call for PPP interfaces (v5.4)

See merge request espressif/esp-idf!40239
2025-07-10 11:27:33 +08:00
Island
c31df8ff8a Merge branch 'feat/ble_log_spi_out_dev_phase_4_v5.4' into 'release/v5.4'
BLE Log SPI Out Dev Phase 4 (v5.4)

See merge request espressif/esp-idf!40425
2025-07-09 14:06:38 +08:00
morris
5c67763a53 Merge branch 'feature/lcd_cam_dvp_driver_only_gen_clock_v5.4' into 'release/v5.4'
feat(esp_driver_cam): DVP driver supports only initializing the clock and XCLK pin to generate a clock for the external device (v5.4)

See merge request espressif/esp-idf!40448
2025-07-09 14:01:17 +08:00
Erhan Kurubas
39ee584f82 change(sysview): drop ESP mcore extension 2025-07-09 07:39:15 +02:00
Erhan Kurubas
40f38c4912 feat(sysview): update multicore files for testing 2025-07-09 07:38:21 +02:00
Erhan Kurubas
a3a154a7ea change(sysview): set default core name as core0 2025-07-09 07:38:21 +02:00
Erhan Kurubas
3bc7803c85 feat(sysview): Add SEGGER multicore trace file support 2025-07-09 07:38:21 +02:00
Erhan Kurubas
a0c490bfb1 feat(sysview): update to version 3.56 2025-07-09 07:38:21 +02:00
Erhan Kurubas
cc1ac5316d change(docs): replace deprecated openocd cfg files 2025-07-09 07:38:21 +02:00
Erhan Kurubas
b326bba065 feat(tools): update openocd version to v0.12.0-esp32-20250707 2025-07-09 07:38:21 +02:00
Zhang Shuxian
80528d184d docs: Update CN translation for ecdsa.rst 2025-07-09 13:05:56 +08:00
nilesh.kale
cebbedbac2 feat: enable support for deterministic mode for esp32h2 2025-07-09 13:05:56 +08:00
nilesh.kale
497fc7ed18 feat: enabled ECDSA-P192 support for ESP32H2 2025-07-09 13:05:56 +08:00
Rahul Tank
96ae24c832 Merge branch 'fix/ble_ancs_adding_entry_for_chip_v5.4' into 'release/v5.4'
fix(nimble): Add ble_ancs example to build-test-rules.yml (v5.4)

See merge request espressif/esp-idf!40444
2025-07-09 10:06:23 +05:30
Dong Heng
46b6014676 feat(esp_driver_cam): DVP driver supports only initializing the clock and XCLK pin to generate a clock for the external device 2025-07-09 12:02:19 +08:00
Island
65c0360524 Merge branch 'bugfix/fix_some_ble_bugs_250610_cjh_esp32c3_v5.4' into 'release/v5.4'
Fixed some BLE bugs 250610 on esp32c3(2edb0b0) (v5.4)

See merge request espressif/esp-idf!40430
2025-07-09 10:26:12 +08:00
Rahul Tank
10a1413155 Merge branch 'bugfix/fix_gatt_cache_server_compile_v5.4' into 'release/v5.4'
fix(nimble): Fix compilation issues when gatt caching is enabled in peripheral only mode (v5.4)

See merge request espressif/esp-idf!40400
2025-07-08 16:20:01 +05:30
Astha Verma
256a5af190 fix(nimble): Add ble_ancs example to build-test-rules.yml 2025-07-08 15:58:26 +05:30
morris
95c40cc81a Merge branch 'feat/lcd_cam_dvp_driver_s3_v5.4' into 'release/v5.4'
DVP support and example for ESP32S3 (v5.4)

See merge request espressif/esp-idf!40330
2025-07-08 17:58:07 +08:00
Chen Jian Hua
4f94202609 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(2edb0b0)
- Fixed TX issue when the event is aborted
- Fixed BLE assert llc_llcp.c 487
- Fixed BLE assert sch_prog.c 304
- Fixed anonymous extended adv reporting
- Support vendor HCI related params reset


(cherry picked from commit ad71a2cd33)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-07-08 13:33:34 +08:00
Zhou Xiao
243facef85 change(ble): upgraded spi log frame header
(cherry picked from commit 5f3ac91d63)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:31 +08:00
Zhou Xiao
7f5c88e27a fix(ble): nimble host & hci log write race condition workaround
(cherry picked from commit 6e384644c8)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:29 +08:00
Zhou Xiao
ba406e871e change(ble): support task buffer number configuration
(cherry picked from commit 4946a1fe8d)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:26 +08:00
Zhou Xiao
deebad0bbe fix(ble): update error code in controller init for ESP32-S3/ESP32-C3
(cherry picked from commit b8b7e153a7)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:24 +08:00
Zhou Xiao
2dacf4bb86 fix(ble): fixed controller log api call for ESP32-C3/ESP32-S3
(cherry picked from commit 6ac541aa4a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:21 +08:00
Zhou Xiao
6dc7c032d1 change(ble): removed esp log to save code size
(cherry picked from commit 0088541f54)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:19 +08:00
Zhou Xiao
b58dbc325f change(ble): enable hci log spi out for ESP chips
(cherry picked from commit c60dd1a10e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:17 +08:00
Zhou Xiao
275047b476 change(ble): enable bluedroid logs over debug level through spi output
(cherry picked from commit c0d2792b9d)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:15 +08:00
Zhou Xiao
2351e02b21 feat(ble): support ble mesh log module
(cherry picked from commit 066e1d3f1b)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:12 +08:00
Zhou Xiao
b073f02a05 feat(ble): support host & hci log module
(cherry picked from commit dd4cbe5e00)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:10 +08:00
Zhou Xiao
d086865c1f change(ble): replaced ul log codes with template
(cherry picked from commit d353bf2802)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:07 +08:00
Zhou Xiao
1da626b0a7 change(ble): replaced le audio log codes with template
(cherry picked from commit feaee0a6fe)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:05 +08:00
Zhou Xiao
db90e63884 change(ble): implemented log module template
(cherry picked from commit 8b2c176eff)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:03 +08:00
Zhou Xiao
23d4c90c6d change(ble): updated ble log spi out ts sync module
* use freertos ts instead of esp ts for better performance
* enable ts sync sleep support by default
* use esp ts as fallback of lc time getter


(cherry picked from commit 56e42be859)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-07-08 13:15:00 +08:00
Island
2b0b65fb0a Merge branch 'bugfix/fix_blecibr25_119_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed extended adv restart failure during reconnection (v5.4)

See merge request espressif/esp-idf!39777
2025-07-08 11:40:43 +08:00
Jiang Jiang Jian
e12ceb9d55 Merge branch 'fix/incorrect_unit_of_cpb_rx_clk_v5.4' into 'release/v5.4'
fix(bt): fixed the incorrect unit of clk in cpb rx event(backport v5.4)

See merge request espressif/esp-idf!40392
2025-07-08 10:00:26 +08:00
gaoxu
c3518d33a2 feat(cam): add camera buffer alloc function 2025-07-07 15:33:43 +08:00
gaoxu
9a2997e25c feat(lcd_cam): add lc_dma_int value atomic protect for lcd and cam 2025-07-07 15:33:43 +08:00
gaoxu
e8ff923342 fix(cam): fix camera kconfig about dw_gdma 2025-07-07 15:33:43 +08:00
gaoxu
041a0fa9ee feat(cam): add dvp example for ESP32S3-EYE 2025-07-07 15:33:43 +08:00
gongyantao
caea2feae7 fix(bt): fixed the incorrect unit of clk in cpb rx event 2025-07-07 14:54:29 +08:00
gaoxu
a0578c231d feat(cam): add esp32s3 dvp cam support 2025-07-07 14:25:50 +08:00
Rahul Tank
50b6bdb61b fix(nimble): Fix compilation issues when gatt caching is enabled in server only mode 2025-07-07 11:40:56 +05:30
Sergei Silnov
ac6a12e860 Merge branch 'feat/smaller_release_size_v5.4' into 'release/v5.4'
ci: Use new release-zips-action with shallow history (v5.4)

See merge request espressif/esp-idf!39939
2025-07-06 12:42:14 -03:00
Rahul Tank
eff801c799 Merge branch 'bugfix/handle_3e_rem_feat_read_name_v5.4' into 'release/v5.4'
fix(nimble): Handle 0x3e disconnect during rem feat/ read version (v5.4)

See merge request espressif/esp-idf!40175
2025-07-05 14:52:44 +05:30
Mahavir Jain
86d6a60952 Merge branch 'doc/update_esp_https_ota_pre_encrypted_doc_v5.4' into 'release/v5.4'
docs(system/esp_https_ota): adds ECIES-256 to pre-enc ota design doc (v5.4)

See merge request espressif/esp-idf!40373
2025-07-04 20:53:23 +05:30
Wang Meng Yang
2a78865be6 Merge branch 'bugfix/bt_sleep_log_consistent_v5.4' into 'release/v5.4'
fix(ble): keep the log of the bluetooth sleep clock source consistent(v5.4)

See merge request espressif/esp-idf!40356
2025-07-04 19:17:34 +08:00
Ashish Sharma
98fa9a3829 feat(mbedtls): update to version 3.6.4 2025-07-04 17:36:08 +08:00
renpeiying
6160c164e8 docs: Update CN translation for esp_http_ota.rst 2025-07-04 17:31:37 +08:00
Ashish Sharma
974b70a8cf docs(system/esp_https_ota): adds ECIES-256 to pre-enc ota design doc 2025-07-04 17:31:15 +08:00
Island
68a63ff1a9 Merge branch 'change/ble_update_lib_20250613_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250613 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!40160
2025-07-04 15:13:24 +08:00
Island
a02d583e56 Merge branch 'fix/ensure_internal_mem_for_ble_log_spi_out_v5.4' into 'release/v5.4'
fix(ble): ensure internal malloc in ble log spi out (v5.4)

See merge request espressif/esp-idf!40182
2025-07-04 15:12:50 +08:00
Island
d07f840b82 Merge branch 'bugfix/fix_ble_smp_fail_0x82_v5.4' into 'release/v5.4'
Bugfix/fix ble smp fail 0x82 (v5.4)

See merge request espressif/esp-idf!39662
2025-07-04 14:03:49 +08:00
xiongweichao
900ecc4d03 fix(ble): keep the log of the bluetooth sleep clock source consistent 2025-07-04 10:27:49 +08:00
morris
58ddea7946 Merge branch 'doc/update_32b_addr_limit_in_flash_doc_v5.4' into 'release/v5.4'
flash: updated 32bit addr support related doc (v5.4)

See merge request espressif/esp-idf!40332
2025-07-04 10:14:18 +08:00
morris
963fc9228e Merge branch 'fix/pcnt_miss_accum_value_when_overflow_v5.4' into 'release/v5.4'
fix(pcnt): fix the accum_value missing when overflow (v5.4)

See merge request espressif/esp-idf!40314
2025-07-04 10:12:30 +08:00
Alexey Gerenkov
949e6c1bcf Merge branch 'feature/update-gdb-to-16.2_20250324_v5.4' into 'release/v5.4'
feat(tools): update gdb version to 16.2_20250324 (v5.4)

See merge request espressif/esp-idf!39335
2025-07-03 23:46:20 +08:00
wuzhenghui
37d25de531 fix(esp_system): force enable uart0 sclk in esp_restart 2025-07-03 19:16:56 +08:00
Island
1fcf178ed4 Merge branch 'bugfix/fixed_set_conn_mode_assert_on_esp32c2_v5.4' into 'release/v5.4'
fix(ble): fixed assertion issue in connection state on ESP32C2-ECO4 (v5.4)

See merge request espressif/esp-idf!40023
2025-07-03 15:32:23 +08:00
cjin
884573a419 feat(ble): add sm count reserve cnt setting on ESP32-H2 2025-07-03 15:24:12 +08:00
cjin
1653442b7b feat(ble): add sm count reserve cnt setting on ESP32-C6 and ESP32-C61 2025-07-03 15:24:12 +08:00
cjin
a4b0800444 feat(ble): add sm count reserve cnt setting on ESP32-C5 2025-07-03 15:24:12 +08:00
cjin
5845d3a7df change(ble): update lib_esp32c6 and esp32c61 to ea6c58c7 2025-07-03 15:24:12 +08:00
cjin
9f3be8aa92 change(ble): update lib_esp32h2 to ea6c58c7 2025-07-03 15:24:12 +08:00
cjin
640e44eff8 change(ble): update lib_esp32c5 to ea6c58c7 2025-07-03 15:24:12 +08:00
Zhou Xiao
39e7147613 change(ble): [AUTO_MR] Update lib_esp32c2 to e865b4f9 2025-07-03 15:24:12 +08:00
Zhou Xiao
ea7689c503 change(ble): [AUTO_MR] Update lib_esp32c6 to b8770ab2 2025-07-03 15:24:12 +08:00
Zhou Xiao
6dfaa7caec change(ble): [AUTO_MR] Update lib_esp32c5 to b8770ab2 2025-07-03 15:24:12 +08:00
Zhou Xiao
11b7dfabe2 change(ble): [AUTO_MR] Update lib_esp32h2 to b8770ab2 2025-07-03 15:24:12 +08:00
Rahul Tank
5e2b0636a9 fix(nimble): Handle 0x3e disconnect during rem feat/ read version 2025-07-03 12:52:27 +05:30
Island
da976e3607 Merge branch 'feat/add_ble_dtm_on_cert_test_v5.4' into 'release/v5.4'
feat(ble): add dtm test code to cert test example on ESP32-C6 (v5.4)

See merge request espressif/esp-idf!39834
2025-07-03 15:20:01 +08:00
Island
b84ccbc475 Merge branch 'change/ble_update_lib_20250606_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250606 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!39739
2025-07-03 15:19:55 +08:00
Rahul Tank
d1e87afe62 Merge branch 'bugfix/add_missing_unlock_v5.4' into 'release/v5.4'
fix(nimble): Add missing ble_hs_unlock() call (v5.4)

See merge request espressif/esp-idf!40234
2025-07-03 12:49:24 +05:30
yinqingzhao
e8612772d5 feat(wifi): set phy pll track disable default 2025-07-03 14:57:08 +08:00
Zhangwx
cd3b7f052c feat(phy): add a config for pll track feature 2025-07-03 14:56:12 +08:00
armando
42123b3115 doc(flash): updated 32bit addr support doc 2025-07-03 14:13:18 +08:00
morris
f68ffa218a Merge branch 'camera/add_dvp_example_v5.4' into 'release/v5.4'
P4 DVP example and bugfix (v5.4)

See merge request espressif/esp-idf!39909
2025-07-03 10:44:10 +08:00
Chen Jichang
2dcfc31c05 fix(pcnt): fix the accum_value missing when overflow 2025-07-02 20:02:23 +08:00
Rahul Tank
6d9484e029 fix(nimble): Add missing ble_hs_unlock() call 2025-07-02 16:13:23 +05:30
Song Ruo Jing
ca3f313938 feat(isp_dvp): add SC030IOT camera support to dvp_isp_dsi example 2025-07-02 17:46:46 +08:00
Dong Heng
e7899b1d61 fix(esp_driver_cam): Fix DVP get trans buffer error 2025-07-02 17:46:08 +08:00
gaoxu
ba1ca47fac feat(cam): add cam sensor handle and deinit api 2025-07-02 17:46:05 +08:00
gaoxu
9e47bd79e4 docs(camera): add lcd_cam dvp driver docs for camera 2025-07-02 17:46:03 +08:00
gaoxu
e4e0a6be4f fix(cam): fix dvp do not generate clock 2025-07-02 17:46:00 +08:00
gaoxu
061967b55d feat(cam): add esp32p4 dvp example 2025-07-02 17:45:57 +08:00
gaoxu
f9889909bb fix(cam): fix dvp can not get cam_buffer 2025-07-02 17:45:55 +08:00
gaoxu
fc13f2f5cc fix(cam): decrease i2c sccb frequency for camera 2025-07-02 17:45:52 +08:00
Island
3e5d2c7d58 Merge branch 'bugfix/fix_ble_crash_when_check_send_pkts_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed null pointer assert in l2c_link_check_send_pkts (v5.4)

See merge request espressif/esp-idf!39598
2025-07-02 15:53:23 +08:00
Island
f5edc85801 Merge branch 'bugfix/fix_ble_init_exception_v5.4' into 'release/v5.4'
Fixed double free exception during BLE init under low memory (v5.4)

See merge request espressif/esp-idf!39747
2025-07-02 15:53:17 +08:00
Island
e6c334cbb9 Merge branch 'bugfix/fix_some_ble_build_fail_v5.4' into 'release/v5.4'
fix(ble/bluedroid): fix build failure when some BLE features are disabled (v5.4)

See merge request espressif/esp-idf!40130
2025-07-02 15:53:12 +08:00
morris
b3269af4d0 Merge branch 'feature/usb_dual_host_2_backport_v5.4' into 'release/v5.4'
feat(usb/host): Add option to choose peripheral for USB host library (backport v5.4)

See merge request espressif/esp-idf!39722
2025-07-02 15:52:52 +08:00
Shu Chen
2793457427 Merge branch 'fix_br_selfhosted_address_v5.4' into 'release/v5.4'
feat(openthread): move mesh local address judeging function to public (v5.4)

See merge request espressif/esp-idf!40257
2025-07-02 06:09:46 +00:00
Jiang Jiang Jian
a56f2016ed Merge branch 'fix/improve_tcp_performance_v54' into 'release/v5.4'
fix(wifi): improve esp32c2 and esp32s2 tcp performance

See merge request espressif/esp-idf!39508
2025-07-02 13:56:04 +08:00
Mahavir Jain
9b21141bba Merge branch 'feat/adding_hidden_config_for_dynamic_buffer_control_configuration_v5.4' into 'release/v5.4'
feat(esp_tls): Added hidden config in esp-tls for dynamic buffer strategy configuration (v5.4)

See merge request espressif/esp-idf!40266
2025-07-02 10:56:18 +05:30
Wang Meng Yang
32adb5f5ea Merge branch 'bugfix/fix_coex_ble_disc_v5.4' into 'release/v5.4'
fix(coex): Fix ble disconnect when coexisting wifi on esp32c2 (v5.4)

See merge request espressif/esp-idf!39626
2025-07-02 11:02:39 +08:00
Wang Meng Yang
d4cf9d279d Merge branch 'bugfix/fix_bt_avrcp_build_issue_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fix AVRCP build issue when disable Cover Art (v5.4)

See merge request espressif/esp-idf!40034
2025-07-02 11:02:17 +08:00
Sergei Silnov
e311d727b2 Merge branch 'ci/raise_macos_cache_to_50g_v5.4' into 'release/v5.4'
macOS runners - set CCACHE back to 50GB to help VMs (v5.4)

See merge request espressif/esp-idf!40276
2025-07-01 13:29:47 -03:00
sonika.rathi
33c3a2ab45 fix(sdmmc): fix sdmmc initialization issue in caused by CMD52 CRC error 2025-07-01 13:40:58 +02:00
Peter Macko
aca02616b6 ci: macOS runners - set CCACHE back to 50GB to help VMs 2025-07-01 13:02:20 +02:00
Alexey Gerenkov
f1a10bac66 Merge branch 'fix/apptrace_crc_calculation_v5.4' into 'release/v5.4'
fix(apptrace): calculate crc16 of the current block before swap (v5.4)

See merge request espressif/esp-idf!40249
2025-07-01 17:49:59 +08:00
Zhang Shuxian
e48a920176 docs: Update CN for usb_host.rst 2025-07-01 10:12:01 +02:00
Tomas Rezucha
8fb0366f70 feat(usb/host): Add option to choose peripheral for USB host library
Starting with ESP32-P4 we can have targets that have more than 1 USB-OTG peripheral.
This commit adds an option to choose which peripherals will be used by USB Host lib.

Internally, we will still have only 1 Root HUB but with multiple Root ports.
2025-07-01 10:11:55 +02:00
hrushikesh.bhosale
99da2b8c2d feat(esp_tls): Added hidden config in esp-tls for dynamic buffer strategy configuration
Added the hidden config in the esp-tls component for the dynamic buffer
strategy configuration feature. So that external components like ota
can findout whether this feature is supported or not
2025-07-01 11:51:40 +05:30
Alexey Lapshin
57b1127ee3 fix(gdbstub): remove QThreadEvents+ from qSupported 2025-07-01 13:17:59 +07:00
Alexey Lapshin
87dd86f98f feat(tools): update gdb version to 16.2_20250324
Closes https://github.com/espressif/esp-idf/issues/16219
2025-07-01 13:17:22 +07:00
Roland Dobai
3867241e01 Merge branch 'feat/update_ccache_to_4.11.2_v5.4' into 'release/v5.4'
feat(tools): Update ccache 4.10.2 -> 4.11.2 (v5.4)

See merge request espressif/esp-idf!39573
2025-07-01 07:49:14 +02:00
Mahavir Jain
6cd66a0191 Merge branch 'docs/fix_secure_download_mode_unsupported_esp32_v5.4' into 'release/v5.4'
fix(bootloader): Fix documentation as ESP32 does not support secure download mode (v5.4)

See merge request espressif/esp-idf!40214
2025-07-01 10:35:41 +05:30
Chen Dejin
a03919a2f7 fix(openthread/discovery): use mesh local for self-hosted service if OMR is not preferred
* esp-openthread: thread_zigbee/esp-openthread@f54481eb0
* openthread: espressif/openthread@b945928d7
* esp-idf: espressif/esp-idf@eb7a19554
2025-07-01 03:13:04 +00:00
chendejin
eb7a19554a feat(openthread): move mesh local address judeging function to public 2025-07-01 11:07:57 +08:00
Shu Chen
26d4b9c96b Merge branch 'feat/call_meshcop_mdns_publish_in_idf_v5.4' into 'release/v5.4'
Handle MeshCoP mDNS service in state change callback, update OpenThread upstream (v5.4)

See merge request espressif/esp-idf!40083
2025-07-01 02:52:59 +00:00
Shu Chen
3ecfb66e8d Merge branch 'feat/rcp_over_usb_v5.4' into 'release/v5.4'
feat(openthread): support rcp based on USB Serial JTAG (v5.4)

See merge request espressif/esp-idf!40246
2025-07-01 02:10:44 +00:00
Erhan Kurubas
820a5c9aa5 fix(apptrace): calculate crc16 of the current block before swap 2025-06-30 14:37:19 +02:00
Simonas Kazlauskas
c43c0b1e9c feat(openthread): support rcp based on USB Serial JTAG 2025-06-30 20:18:03 +08:00
David Cermak
2e173e7754 fix(esp_netif): Fix incorrect DHCP call for PPP interfaces
Closes https://github.com/espressif/esp-protocols/issues/800
2025-06-30 12:21:35 +02:00
David Cermak
7f07eba674 fix(lwip): Fix appending DHCP option with HW-ID 2025-06-30 12:13:56 +02:00
Xu Si Yu
25d8789815 feat(openthread): update border router lib
* esp-openthread: thread_zigbee/esp-openthread@16bfed5ec
* openthread: espressif/openthread@b945928d7
* esp-idf: espressif/esp-idf@05a3159e5
2025-06-30 09:50:43 +00:00
Roland Dobai
ee6ada0528 Merge branch 'change/support_lowercase_kconfig_filename_v5.4' into 'release/v5.4'
Backport: Support misspelled Kconfig[.projbuild] files (v5.4)

See merge request espressif/esp-idf!39583
2025-06-30 11:49:08 +02:00
Marek Fiala
cb649d7201 feat(tools): Update ccache 4.10.2 -> 4.11.2
Closes https://github.com/espressif/idf-installer/issues/305
2025-06-30 17:48:15 +08:00
Shu Chen
74f0347b9c Merge branch 'fix/rx_abort_next_op_v5.4' into 'release/v5.4'
fix(openthread): disable rx_abort events in next operation (v5.4)

See merge request espressif/esp-idf!39959
2025-06-30 09:40:59 +00:00
Shu Chen
8147067519 Merge branch 'feat/and_function_to_exit_ot_mainloop_v5.4' into 'release/v5.4'
feat(openthread): add a function to exit openthread mainloop safely (v5.4)

See merge request espressif/esp-idf!39611
2025-06-30 09:40:48 +00:00
Xu Si Yu
05a3159e59 feat(openthread): update openthread upstream 2025-06-30 17:31:42 +08:00
Xu Si Yu
75ae28d232 feat(openthread): handle MeshCoP mDNS service in state change callback 2025-06-30 17:31:42 +08:00
Xu Si Yu
84ac9e2054 feat(openthread): optimize trel reception 2025-06-30 17:31:42 +08:00
zwx
f9dc7e7491 feat(openthread): support openthread cli console command register 2025-06-30 17:31:42 +08:00
morris
747f9448bc Merge branch 'change/remove_mmap_paddr_remap_warning_log_v5.4' into 'release/v5.4'
mmu: remove paddr remap warning log (v5.4)

See merge request espressif/esp-idf!40203
2025-06-30 16:07:18 +08:00
Alexey Gerenkov
45f26112af Merge branch 'disable_esp32c61_test_v5.4' into 'release/v5.4'
ci(change): disable esp32c61 tests

See merge request espressif/esp-idf!39658
2025-06-30 15:40:58 +08:00
harshal.patil
9d2cfcd094 fix(bootlaoder): Fix documentation as ESP32 does not support secure download mode 2025-06-30 10:27:04 +05:30
Wang Meng Yang
21335ad1b1 Merge branch 'bugfix/auth_collision_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed bugs on LMP legacy and secure authentication collision (v5.4)

See merge request espressif/esp-idf!40011
2025-06-30 11:57:57 +08:00
Wang Meng Yang
27d2a245fe Merge branch 'feat/add_avrcp_init_state_event_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Add events to indicate the initialization states of AVRCP(v5.4)

See merge request espressif/esp-idf!39535
2025-06-30 11:57:50 +08:00
Wang Meng Yang
9e939ae970 Merge branch 'change/opt_hid_device_connect_description_v5.4' into 'release/v5.4'
docs(bt/bluedroid): Updated HID Device connect API description (v5.4)

See merge request espressif/esp-idf!39604
2025-06-30 11:57:44 +08:00
zhangyanjiao
cf21272c94 fix(wifi): Added CVE-2025-52471 to vulnerabilities list 2025-06-30 11:49:10 +08:00
zhangyanjiao
f373165b24 fix(wifi): Added CVE-2024-53845 to vulnerabilities list 2025-06-30 11:48:29 +08:00
morris
489eba4048 Merge branch 'refactor/change_mmap_cache_lock_type_v5.4' into 'release/v5.4'
mmu: use cache freeze for mmap APIs (v5.4)

See merge request espressif/esp-idf!39795
2025-06-30 11:25:31 +08:00
armando
8e67d9a912 change(mmu): remove paddr remap warning log 2025-06-30 10:51:11 +08:00
morris
6926e5c94a Merge branch 'fix/fix_xip_psram_ptr_check_v5.4' into 'release/v5.4'
psram: fixed psram ptr check issue under xip_psram condition for ESP32P4 (v5.4)

See merge request espressif/esp-idf!39733
2025-06-30 10:29:38 +08:00
morris
02e1de5ba1 Merge branch 'feat/support_fallback_to_default_pattern_when_psram_id_not_match_v5.4' into 'release/v5.4'
psram: support fallback to use default driver pattern when id isn't match (v5.4)

See merge request espressif/esp-idf!39995
2025-06-30 10:22:23 +08:00
morris
435cf83a52 Merge branch 'refactor/p4_touch_channel_increase_1_v5.4' into 'release/v5.4'
refactor(touch): adjust touch channel number on P4 from 0-13 to 1-14 (v5.4)

See merge request espressif/esp-idf!39792
2025-06-30 10:19:58 +08:00
morris
121b41a495 Merge branch 'feature/usb_host_ext_hub_collective_backport_v5.4' into 'release/v5.4'
feat(usb_host): External Hub collective backport to v5.4

See merge request espressif/esp-idf!39579
2025-06-30 10:18:58 +08:00
morris
e055bd526f Merge branch 'feat/usb-explicit-fifo-config_v5.4' into 'release/v5.4'
feat(usb/hal): Add HAL API to configure custom FIFO layout (backport v5.4)

See merge request espressif/esp-idf!39265
2025-06-30 10:18:31 +08:00
morris
066a24e696 Merge branch 'fix/jpeg_encode_msync_v5.4' into 'release/v5.4'
fix(jpeg): Fix wrong parameter in jpeg encoder msync ,eliminate random black line on jpeg decoder (backport v5.4)

See merge request espressif/esp-idf!39888
2025-06-30 10:17:31 +08:00
morris
ddc3001ad4 Merge branch 'fix/fix_c3_c2_cache_freeze_soc_caps_issue_v5.4' into 'release/v5.4'
cache: fixed SOC_CACHE_FREEZE_SUPPORTED not defined on C3 / C2 issue (v5.4)

See merge request espressif/esp-idf!39883
2025-06-30 10:16:58 +08:00
morris
b5f5f3d589 Merge branch 'fix/s2_adc_cali_loss_resolution_v5.4' into 'release/v5.4'
fix(adc): fix s2 cali loss resolution (v5.4)

See merge request espressif/esp-idf!38595
2025-06-30 10:16:09 +08:00
morris
75ad884299 Merge branch 'docs/add_doc_link_for_esp32p4_v5.4' into 'release/v5.4'
docs: Update hw-reference/index.rst for esp32p4 (v5.4)

See merge request espressif/esp-idf!39730
2025-06-30 10:08:59 +08:00
morris
cde982d67f Merge branch 'docs/p4_eco1_usb_pins_backport_v5.4' into 'release/v5.4'
docs(usb): Update ESP32-P4 USB pins to MP version (backport to v5.4)

See merge request espressif/esp-idf!39903
2025-06-30 10:08:13 +08:00
morris
00c39fbba8 Merge branch 'refactor/migrate_i2c_driver_in_es7210_example_v5.4' into 'release/v5.4'
refactor(i2s_es7210): refactor es7210 example (v5.4)

See merge request espressif/esp-idf!40067
2025-06-30 10:07:09 +08:00
morris
2e75f56dcd Merge branch 'refactor/upgrade_i2s_codec_example_dependency_v5.4' into 'release/v5.4'
refactor(i2s_es8311): refactor es8311 example (v5.4)

See merge request espressif/esp-idf!40050
2025-06-30 10:06:30 +08:00
Roland Dobai
8a2e7224c1 Merge branch 'fix/idf_tools_install_tool_version_v5.4' into 'release/v5.4'
fix(tools): fixed command `idf_tools.py install tool@version` (v5.4)

See merge request espressif/esp-idf!40038
2025-06-28 05:26:34 +02:00
Roland Dobai
da67469963 Merge branch 'fix/create_project_read_only_v5.4' into 'release/v5.4'
fix(tools): idf.py create-project works in read-only ESP-IDF (v5.4)

See merge request espressif/esp-idf!40036
2025-06-28 05:26:10 +02:00
Roland Dobai
f6500bb5d5 Merge branch 'ci/add-kconfig-pre-commit_v5.4' into 'release/v5.4'
docs:fix spelling/"casing" of the word "Kconfig" (v5.4)

See merge request espressif/esp-idf!40017
2025-06-28 05:25:37 +02:00
Roland Dobai
c8a8e7d36d Merge branch 'fix/enable_remove_requirements_file_v5.4' into 'release/v5.4'
fix(tools): handle missing `requirements.*.txt` files for enabled features (v5.4)

See merge request espressif/esp-idf!39803
2025-06-28 05:25:12 +02:00
Roland Dobai
dde432d135 Merge branch 'fix/gen_soc_caps_v5.4' into 'release/v5.4'
change: config options of the same name must have the same type (v5.4)

See merge request espressif/esp-idf!39570
2025-06-28 05:24:48 +02:00
Rahul Tank
66a5a5884f Merge branch 'fix/gatt_cache_peer_init_incl_svc_v5.4' into 'release/v5.4'
fix(nimble): Added parameter in peer_init for included service allocation (v5.4)

See merge request espressif/esp-idf!39913
2025-06-27 22:09:21 +05:30
Astha Verma
af628e5ccb fix(nimble): Added parameter in peer_init for included service allocation 2025-06-27 12:30:30 +05:30
Rahul Tank
c52e8ee1f5 Merge branch 'feat/auto_security_initiate_v5.4' into 'release/v5.4'
feat(nimble): Automatically initiate security if a GATT service request fails (v5.4)

See merge request espressif/esp-idf!39863
2025-06-27 12:02:25 +05:30
Rahul Tank
2b33f32a6b Merge branch 'bugfix/add_ci_files_v5.4' into 'release/v5.4'
fix(nimble): Add CI files for base configurations (v5.4)

See merge request espressif/esp-idf!39242
2025-06-27 12:02:11 +05:30
Mahavir Jain
858a988d6e Merge branch 'feat/adding_different_strategy_to_perform_tls_using_dynamic_feature_v5.4' into 'release/v5.4'
Add configuration to control dynamic buffer strategy in mbedtls (v5.4)

See merge request espressif/esp-idf!39920
2025-06-27 10:42:24 +05:30
Zhou Xiao
2182760096 fix(ble): ensure internal malloc in ble log spi out
(cherry picked from commit d300617aa6)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-06-26 20:33:23 +08:00
Rahul Tank
2355e2f22d fix(nimble): Added CI files for various configurations 2025-06-26 16:38:11 +05:30
Rahul Tank
f26f6e4692 Merge branch 'bugfix/pawr_sync_v5.4' into 'release/v5.4'
fix(nimble): memset the sync structs to prevent uncertainty for ext_adv reports (v5.4)

See merge request espressif/esp-idf!39716
2025-06-26 16:36:00 +05:30
Rahul Tank
81064fa0e7 Merge branch 'feat/nimble_ancs_final_v5.4' into 'release/v5.4'
fix(nimble): Added support for ANCS in nimble (v5.4)

See merge request espressif/esp-idf!39655
2025-06-26 16:35:45 +05:30
Rahul Tank
a44d34a278 Merge branch 'bugfix/fix_kconfig_names_v5.4' into 'release/v5.4'
fix(nimble): Modified Kconfig information to make it more user friendly (v5.4)

See merge request espressif/esp-idf!39648
2025-06-26 16:35:33 +05:30
Rahul Tank
03e9d2d789 Merge branch 'feat/ram_optimization_v5.4' into 'release/v5.4'
fix(nimble): Add support to minimize ram consumption (v5.4)

See merge request espressif/esp-idf!39619
2025-06-26 16:35:03 +05:30
Sumeet Singh
225c404b7c feat(nimble): Added two GATT features:
1. Automatically initiate security if a GATT service request fails
2. Encryption, Authentication, and Authorization requirement on CCCD
2025-06-26 16:32:39 +05:30
Rahul Tank
de813ca8bd Merge branch 'fix/nimble_pr_issues_v5.4' into 'release/v5.4'
fix(nimble): Add fixes for compilation issues in nimble (v5.4)

See merge request espressif/esp-idf!39842
2025-06-26 16:30:51 +05:30
Sergei Silnov
b5d3d1253d Merge branch 'ci/fix-submodule-cache_v5.4' into 'release/v5.4'
ci: remove cached submodule metadata while checking with github (v5.4)

See merge request espressif/esp-idf!40094
2025-06-26 05:58:37 -03:00
Mahavir Jain
72775cd61c Merge branch 'fix/suppress_cert_bundle_serial_number_warning_v5.4' into 'release/v5.4'
fix(mbedtls/esp_crt_bundle): Suppress non-negative serial number warning (v5.4)

See merge request espressif/esp-idf!39402
2025-06-26 13:39:08 +05:30
Mahavir Jain
7ac6f01b94 Merge branch 'feat/httpd_register_uri_handler_strdup_failure_case_check_v5.4' into 'release/v5.4'
Handling httdp_register_uri_handler() strdup function failure case check (v5.4)

See merge request espressif/esp-idf!39512
2025-06-26 13:38:51 +05:30
Sergei Silnov
e50c191ec1 Merge branch 'docs/fetch-all-tags-while-deploying_v5.4' into 'release/v5.4'
docs: fetch all tags while deploying (v5.4)

See merge request espressif/esp-idf!40006
2025-06-26 04:27:15 -03:00
Sergei Silnov
e3d37f5dbc Merge branch 'ci/disable-plugin-idf_ci_v5.4' into 'release/v5.4'
ci: disable idf-ci plugin (v5.4)

See merge request espressif/esp-idf!39666
2025-06-26 04:26:54 -03:00
hrushikesh.bhosale
d7b3e3b978 feat(mbedtls): Add configuration to control dynamic buffer strategy in mbedtls
Problem:
1. In low-memory scenarios, the dynamic buffer feature can fail due to memory fragmentation.
2. It requires a contiguous 16KB heap chunk, but continuous allocation and deallocation of
the RX buffer can lead to fragmentation.
3. If another component allocates memory between these operations, it can break up the
available 16KB block, causing allocation failure.

Solution:
1. Introduce configurable strategy for using dynamic buffers in TLS connections.
2. For example, convert RX buffers to static after the TLS handshake.
3. Allow users to select the strategy via a new field in the esp_http_client_cfg_t structure.
4. The strategy can be controlled independently for each TLS session.
2025-06-26 12:22:44 +05:30
Michael (XIAO Xufeng)
1abb219dd4 Merge branch 'feature/support_chip912_pvt_auto_dbias_360m_backport_v5.4' into 'release/v5.4'
feat(esp_hw_support): use pvt to auto control digital ldo and rtc ldo for esp32p4_backport_v5.4

See merge request espressif/esp-idf!40070
2025-06-26 12:12:03 +08:00
yanzihan@espressif.com
34b8f67a89 feat(esp_hw_support): use pvt to auto control digital ldo and rtc ldo for esp32p4 2025-06-25 18:22:02 +08:00
Geng Yu Chao
b4da3f873d feat(ble): Add Bluetooth LE CTE connectionless AoA/AoD examples
(cherry picked from commit d8631ed3db)

Co-authored-by: Geng Yuchao <gengyuchao@espressif.com>
2025-06-25 12:07:03 +08:00
Zhang Hai Peng
096acfc67c fix(ble/bluedroid): fix build failure when some BLE features are disabled
(cherry picked from commit a29cd4ad5f)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-06-25 11:53:41 +08:00
armando
18d17ebd23 fix(cache): fixed SOC_CACHE_FREEZE_SUPPORTED not defined on c3/c2 issue 2025-06-25 09:48:42 +08:00
ding huan
89f5e5d149 fix(conn): wifi connect before connected status 2025-06-24 17:27:29 +08:00
Fu Hanxi
56f6dc55a5 ci: remove cached submodule metadata while checking with github 2025-06-24 10:55:22 +02:00
Michael (XIAO Xufeng)
dfa785ed44 Merge branch 'update/version_5_4_2' into 'release/v5.4'
Update version to 5.4.2

See merge request espressif/esp-idf!40009
2025-06-24 14:04:14 +08:00
gaoxu
b5b2231268 fix(adc): fix s2 cali loss resolution 2025-06-24 10:17:06 +08:00
laokaiyao
0298a147f8 refactor(i2s_es7210): refactor es7210 example 2025-06-23 20:39:12 +08:00
laokaiyao
50cfbaf573 refactor(i2s_es8311): remove esp-box bsp support 2025-06-23 12:12:38 +08:00
laokaiyao
96366a204a refactor(i2s_es8311): refactor es8311 example 2025-06-23 12:02:29 +08:00
armando
ff195f3492 feat(psram): support fallback to use default driver pattern when id isn't match 2025-06-23 10:14:54 +08:00
wuzhenghui
28aa20045e feat(esp_hw_support): enable wakeup tests for more chips 2025-06-23 09:57:42 +08:00
wuzhenghui
5bc5a1474c fix(hal): fix pmu_ll_ext1_clear_wakeup_status API 2025-06-23 09:54:07 +08:00
Marek Fiala
e7e7f8feb9 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 15:26:14 +02:00
Marek Fiala
347748a6f8 fix(tools): idf_tools.py uninstall decide based on preferred tool version
idf_tools.py uninstall now doesn't take only recommended version, but
makes the decision based on preferred installed versions.
2025-06-20 13:25:14 +02:00
Marek Fiala
38354b9ecd test(tools): Added test for installing supported tool version
Added test_export_supported_version_cmake in `test_idf_tools.py`,
that installs and exports supported version of tool - cmake.
2025-06-20 13:05:05 +02:00
Marek Fiala
84760adf2d fix(tools): idf_tools.py install tool@version 2025-06-20 13:05:02 +02:00
Marek Fiala
dcdd823263 feat(tools): adjusted create_ext.py by ruff formatter 2025-06-20 11:52:38 +02:00
linruihao
45080e9740 ci(bt/bluedroid): Add CI build test for A2DP Sink example with Caver Art disabled 2025-06-20 17:31:28 +08:00
linruihao
c32377d6e7 fix(bt/bluedroid): Fix AVRCP build issue when disable Cover Art
Closes https://github.com/espressif/esp-idf/issues/16155
2025-06-20 17:31:28 +08:00
linruihao
421be5de07 fix(coex): Fix ble disconnect when coexisting wifi on esp32c2 2025-06-20 17:12:09 +08:00
Zhao Wei Liang
e6c8cc5a65 fix(ble): fixed assertion issue in connection state on ESP32C2-ECO4
(cherry picked from commit 83fd955f11)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-20 15:31:35 +08:00
Jan Beran
391e90ba73 docs: Fix spelling of the word "Kconfig" 2025-06-20 09:17:48 +02:00
Jan Beran
d36596bc56 change: detect misspelled Kconfig[.projbuild] file names
Original issue: https://github.com/espressif/esp-idf-kconfig/issues/14
2025-06-20 15:06:31 +08:00
liqigan
950a7d22c8 fix(bt/controller): Fixed bugs on LMP legacy and secure authentication collision 2025-06-20 14:57:20 +08:00
Xiao Xufeng
f5c3654a1c change(version): Update version to 5.4.2 2025-06-20 14:35:04 +08:00
Fu Hanxi
312ff02b43 docs: fetch all tags while deploying 2025-06-20 08:19:35 +02:00
Jiang Jiang Jian
f0f2980d05 Merge branch 'bugfix/http_client_test_failure_v5.4' into 'release/v5.4'
fix: update root certificate for postman-echo endpoint (v5.4)

See merge request espressif/esp-idf!39847
2025-06-20 14:18:29 +08:00
laokaiyao
4ecedae60f fix(touch): fixed touch interval freq unit convert issue 2025-06-19 14:18:38 +08:00
laokaiyao
52c860144a fix(touch): fixed incorrect interval clock source 2025-06-19 14:17:49 +08:00
laokaiyao
c8a6d41c27 refactor(touch): adjust touch channel number on P4 from 0-13 to 1-14 2025-06-19 14:17:49 +08:00
Wang Mengyang
0b383b9d59 fix(bt): Fixed HFP AG data callback cleared after profile is re-initialized 2025-06-19 07:22:51 +08:00
Guillaume Souchere
8182f20774 feat(usb_serial_jtag): Update vfs read to be POSIX compliant
The function now returns with available data in blocking mode
instead of waiting for the requested size to be available before
returning.
2025-06-18 10:25:52 +02:00
Tan Yan Quan
aa66cb8d1c feat(openthread): use apb_freq_max mode for esp_openthread_sleep pm lock 2025-06-18 15:35:06 +08:00
Xu Si Yu
7f94080c3b feat(openthread): add some configurations in Kconfig 2025-06-18 15:35:06 +08:00
Tan Yan Quan
3a1f8ffd9b fix(openthread): disable rx_abort events in next operation 2025-06-18 15:35:06 +08:00
morris
fe5927aee6 Merge branch 'ci/readme_remove_c61_fix_ci' into 'release/v5.4'
ci(esp32c61): remove c61 support from readme on 5.4

See merge request espressif/esp-idf!39892
2025-06-18 11:30:52 +08:00
Guillaume Souchere
fd1103d39c feat(usb_cdc): Update vfs read() to comply with POSIX standards 2025-06-17 14:27:09 +02:00
Guillaume Souchere
0650ee6900 feat(usb_serial_tag_vfs): Add test for read exit conditions
Add a test to make sure the VFS read does not return on reception
of the \n character
2025-06-17 14:25:44 +02:00
Guillaume Souchere
b13ade8e0c fix(driver): remove unecessary if conditions in the read function
This changes affect usb_serial_jtag_vfs and cdcacm_vfs read functions.
This commit removes the exit condition on reception of \n character.
2025-06-17 14:24:50 +02:00
Sergei Silnov
c658f460b7 ci: Use new release-zips-action with shallow history 2025-06-17 11:27:22 +02:00
morris
ee76b46195 fix(onewire): enable internal pull-up resistor by default
In case there's no pull-up resistor on the external device
2025-06-17 15:09:40 +08:00
wanckl
ea03622621 ci(esp32c61): remove c61 support from readme on 5.4 2025-06-17 15:09:40 +08:00
Tomas Rezucha
4ccd76343c docs(usb): Update ESP32-P4 USB pins to MP version
Closes https://github.com/espressif/esp-idf/issues/16136
2025-06-16 16:39:19 +02:00
Jiang Jiang Jian
75f9cc646d Merge branch 'fix/update_dfs_compensate_table_v5.4' into 'release/v5.4'
fix(esp_hw_support): update esp32 dfs table to make the timing drift always negative (v5.4)

See merge request espressif/esp-idf!39839
2025-06-16 20:42:34 +08:00
C.S.M
373fe5f0d9 fix(jpeg): Fix wrong parameter in jpeg encoder msync 2025-06-16 14:27:37 +08:00
C.S.M
ef0323aedd bugfix(jpeg): eliminate random black line on jpeg decoder 2025-06-16 14:27:27 +08:00
wuzhenghui
2519605acb change(bt): increase BTDM_MODEM_WAKE_UP_DELAY 2025-06-13 20:37:35 +08:00
wuzhenghui
626123bbeb change(esp_timer): make esp_timer timming drift always be negative 2025-06-13 20:37:30 +08:00
Guillaume Souchere
d57fb88764 change(esp-event): Update the doxygen comment of esp_event_handler_register
Add a comment to specify what happens when registering a handler several times
to the same event.
2025-06-13 08:22:25 +02:00
Mahavir Jain
96eb236610 fix: update root certificate for postman-echo endpoint
The certificate chain for postman-echo endpoint has switched to
Let's Encrypt root CA
2025-06-13 11:05:38 +05:30
wuzhenghui
5b64757042 fix(esp_hw_support): config lact in critical 2025-06-13 12:06:18 +08:00
zwl
81b2bea2f7 feat(ble): add dtm test code to cert test example on ESP32-C6 2025-06-13 11:45:28 +08:00
liqigan
e7db79eb46 docs(bt/bluedroid): Updated HID Device connect API description
Closes https://github.com/espressif/esp-idf/issues/16020
2025-06-13 07:07:44 +08:00
Rahul Tank
3393aa99d1 fix(nimble): Add fixes for compilation issues in nimble
1. Fix compile failures when CSFCS is 0
2. Wrap BLE service API with extern "C"
2025-06-12 20:36:30 +05:30
armando
e930680857 feat(mmu): use cache freeze for mmap apis 2025-06-12 10:05:30 +08:00
Marek Fiala
b148826269 fix(tools): Enabled removing requirements.* files 2025-06-11 11:14:47 +02:00
Fu Hanxi
4594a84ddb ci: disable idf-ci plugin
this plugin will be re-enabled with compatible code in !38755
2025-06-11 10:56:24 +02:00
chenjianhua
93eb5e705d feat(ble/bluedroid): Support anonymous address type for white list 2025-06-11 11:09:55 +08:00
chenjianhua
40b5315ca4 feat(ble/bluedroid): Add config for BLE vendor hci command and event 2025-06-11 11:09:49 +08:00
chenjianhua
c334e00661 feat(ble/bluedroid): Support BLE vendor event reporting with params 2025-06-11 11:09:42 +08:00
chenjianhua
fac072401a fix(bt/bluedroid): Fixed BLE connection active count getting 2025-06-11 11:09:36 +08:00
Chen Jian Hua
caeb78c90e fix(ble/bluedroid): Fixed extended adv restart failure during reconnection
(cherry picked from commit 6392180813)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-06-10 21:33:32 +08:00
Jiang Jiang Jian
46909c5048 Merge branch 'bugfix/add_missing_deinit_call_v5.4' into 'release/v5.4'
fix(nimble): Add invocation for mempool_deinit (v5.4)

See merge request espressif/esp-idf!39671
2025-06-10 19:23:27 +08:00
morris
e03d8d7ee9 Merge branch 'test/c61_disable_build_test_v5.4' into 'release/v5.4'
test(ci): disable c61 build test on 5.4

See merge request espressif/esp-idf!39630
2025-06-09 17:23:33 +08:00
Zhang Hai Peng
45dcdc4709 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(4713a69)
- Fixed double free exception during BLE init under low memory


(cherry picked from commit 49a4325b15)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-06-09 15:13:44 +08:00
Zhao Wei Liang
112644547d fix(ble): change the default ble cca thresh on ESP32-C2
(cherry picked from commit a10696d7e1)

Co-authored-by: cjin <jinchen@espressif.com>
2025-06-09 11:04:47 +08:00
Zhao Wei Liang
b575652e62 fix(ble): change the default ble cca thresh on ESP32-H2
(cherry picked from commit a2fab0ad60)

Co-authored-by: cjin <jinchen@espressif.com>
2025-06-09 11:04:44 +08:00
Zhao Wei Liang
ecfafb77f5 fix(ble): change the default ble cca thresh on ESP32-C6
(cherry picked from commit 581521526b)

Co-authored-by: cjin <jinchen@espressif.com>
2025-06-09 11:04:41 +08:00
Zhao Wei Liang
6723eae6ec fix(ble): change the default ble cca thresh on ESP32-C5
(cherry picked from commit c802176535)

Co-authored-by: cjin <jinchen@espressif.com>
2025-06-09 11:04:38 +08:00
Zhao Wei Liang
557ad56c6b fix(ble): change ld file on ESP32-C2
(cherry picked from commit 6c5bff1bd8)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:36 +08:00
Zhao Wei Liang
dbd4e8ffe7 fix(ble): fixed an occasional abnormal scanning stop issue on ESP32-C5
(cherry picked from commit 44d7fc43f6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:34 +08:00
Zhao Wei Liang
33022b7bbc fix(ble): fixed an occasional assertion issue during sync on ESP32-C6
(cherry picked from commit 3c8ba488e0)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:32 +08:00
Zhao Wei Liang
35e7d1ad03 change(ble): [AUTO_MR] Update lib_esp32c2 to 7f72c031
(cherry picked from commit 4be18a2469)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:29 +08:00
Zhao Wei Liang
373f68a86e change(ble): [AUTO_MR] Update lib_esp32c6 to 35fe65f4
(cherry picked from commit 57c8d23800)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:27 +08:00
Zhao Wei Liang
67fb299421 change(ble): [AUTO_MR] Update lib_esp32c5 to 35fe65f4
(cherry picked from commit dacaae746e)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:25 +08:00
Zhao Wei Liang
a502f01187 change(ble): [AUTO_MR] Update lib_esp32h2 to 35fe65f4
(cherry picked from commit dbf7835a6b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-06-09 11:04:23 +08:00
armando
70fe58d935 fix(psram): fixed psram ptr check under xip_psram condition
Closes https://github.com/espressif/esp-idf/pull/15999
Closes https://github.com/espressif/esp-idf/issues/15997
2025-06-09 10:34:11 +08:00
John Boiles
c5e02f95dd fix(memory-utils): Add _instruction_reserved_start/end to esp_psram_check_ptr_addr
Adds missing range check that can be used when SPIRAM_XIP_FROM_PSRAM is enabled.
2025-06-09 10:34:08 +08:00
John Boiles
fb51a125af fix(freertos): Use ESP_EARLY_LOGE in vPortTLSPointersDelCb for RISCV
Using ESP_LOG* in this function causes a crash
2025-06-09 10:34:04 +08:00
Zhang Shuxian
59b727663f docs: Update hw-reference/index.rst for esp32p4 2025-06-09 10:27:35 +08:00
Zhang Hai Peng
7a17d9c2f7 fix(ble/bluedroid): Fixed BLE SMP state machine inconsistency on disconnection
(cherry picked from commit 99121258d4)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-06-09 00:03:38 +08:00
Zhang Hai Peng
00e26f15b4 feat(ble/bluedroid): Include SMP state in BLE status reporting
(cherry picked from commit de9a367f13)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-06-09 00:03:38 +08:00
Abhinav Kudnar
2a76a7f206 fix(nimble): memset the sync structs to prevent uncertainty for ext_adv reports 2025-06-06 17:13:56 +05:30
Xu Si Yu
f99db02e59 feat(openthread): add a function to exit openthread main loop safely 2025-06-06 15:32:24 +08:00
luoxu
8c729ffef1 feat(ble_mesh): update lib to f15b27e2d2 2025-06-06 14:38:38 +08:00
luoxu
976409b59e fix(ble_mesh): fixed issue with recv ntf before ccc done 2025-06-06 14:31:22 +08:00
luoxu
cf2780a7c3 fix(ble_mesh): fixed proxy server might send segment message with incorrect format
refer commit: 7738bca124
2025-06-06 14:29:37 +08:00
Island
b3d3a82daa Merge branch 'fix/ble_log_spi_out_timer_delete_v5.4' into 'release/v5.4'
fix(ble): set timer handle to null after deletion (v5.4)

See merge request espressif/esp-idf!39559
2025-06-06 14:19:27 +08:00
Rahul Tank
401f0a7cae fix(nimble): Add invocation for mempool_deinit 2025-06-04 17:02:41 +05:30
Erhan Kurubas
f91a687bae ci(change): disable esp32c61 tests 2025-06-04 13:07:40 +02:00
Astha Verma
7f3ad9aa95 fix(nimble): Added support for ANCS in nimble 2025-06-04 14:23:38 +05:30
Rahul Tank
3104d97737 fix(nimble): Modified Kconfig information to make it more user friendly 2025-06-04 11:01:29 +05:30
wanckl
66c8539368 test(ci): disable c61 build test on 5.4 2025-06-03 20:09:05 +08:00
Shreeyash
7d86471ea9 fix(nimble): Add support to minimize ram consumption 2025-06-03 16:06:57 +05:30
Zhang Hai Peng
b768e1e42a fix(ble/bluedroid): Fixed null pointer assert in l2c_link_check_send_pkts
(cherry picked from commit 8150573012)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-06-03 12:13:37 +08:00
Roman Leonov
7aa117477d fix(ext_hub): Added processing waiting_release flag while dev changed to IDLE
11382a2a fix(ext_hub): Added processing waiting_release flag while dev changed to IDLE

Co-authored-by: Roman Leonov <roman.leonov@espressif.com>
2025-06-02 11:44:32 +02:00
Roman Leonov
628d7ad77d refactor(ext_hub): Device release (allows to run usb_host test with ext hub)
754d357f refactor(ext_hub): Fixed device release, optimized the order of closing usbh device
fc61875a refactor(ext_hub): Pospone the device release, if device is not IDLE
3fd17b8b refactor(hub): Applied new ext_hub api, refactor func names
3003362b refactor(usb_host): Cancel hub porpagation to the user, rename non-critical func
19ce9ed6 refactor(test_usb_host_async): Added host_lib_task finish notification
f238d75b refactor(ext_port): Remove the error verification, as error will be handled in ext hub driver

Co-authored-by: Roman Leonov <roman.leonov@espressif.com>
2025-06-02 11:44:22 +02:00
Jan Beran
421f499317 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:16:55 +02:00
Zhou Xiao
c3c7164dc5 fix(ble): set timer handle to null after deletion
(cherry picked from commit 1614e71eb6)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-30 19:53:39 +08:00
Sarvesh Bodakhe
e7c2b9a8f8 fix(wif): Prevent NON-PMF STA retries if esp_wifi_disconnect() before handshake
Ensure that NON-PMF station does not attemp connection retries when
'esp_wifi_disconnect()' is called before the 4-way-handshake completes,
even if 'failure_retry_cnt' allows retries.
2025-05-30 12:18:08 +05:30
luoxu
571fe2eae6 fix(ble_mesh): fixed issues with proxy solic pdu adv 2025-05-30 11:08:46 +08:00
xiongweichao
a36d9ab0dd feat(bt/bluedroid): Add events to indicate the initialization states of AVRCP 2025-05-30 10:07:30 +08:00
Jiang Jiang Jian
28980b62c9 Merge branch 'bugfix/add_more_checks_when_receiving_espnow_v5.4' into 'release/v5.4'
fix(wifi): Added more check when receiving espnow data (v5.4)

See merge request espressif/esp-idf!39518
2025-05-30 00:35:27 +08:00
sibeibei
b369c44beb fix(wifi): rx bcn failed when sta off channel under modem state 2025-05-29 20:46:16 +08:00
zhangyanjiao
d4dafbdc35 fix(wifi): Added more check when receiving espnow data 2025-05-29 20:46:16 +08:00
Jiang Jiang Jian
306f101a2b Merge branch 'fix/incorrect_setting_of_sco_packet_type_mask_v5.4' into 'release/v5.4'
fix(bt): fixed incorrect mask was used to exclude sco packets (backport v5.4)

See merge request espressif/esp-idf!39500
2025-05-29 16:19:08 +08:00
Jiang Jiang Jian
8497af9b77 Merge branch 'bugfix/scan_stop_when_conenct_v5.4' into 'release/v5.4'
fix(esp_wifi): Fix locking in incorrect state when stop_scan is called after connect

See merge request espressif/esp-idf!39481
2025-05-29 16:18:35 +08:00
Shreyas Sheth
5fb9c3a849 fix(esp_wifi): Fix locking in incorrect state when stop_scan is called after connect 2025-05-29 12:53:42 +05:30
hrushikesh.bhosale
923ac4da5a feat(http_server): httpd register handler strdup failure case check
In httpd_register_uri_handler api, for the strdup function failure case was not
checked and not returned any error by freeing previously allocated memory, if the memory
allocation for strdup function did not gets successful.

Closes https://github.com/espressif/esp-idf/issues/15878
2025-05-29 11:50:14 +05:30
Jiang Jiang Jian
d5a43edfbc Merge branch 'feature/add_uart_io_deinit_process_v5.4' into 'release/v5.4'
fix(uart): eliminate garbled data on TX/RX line in sleep (v5.4)

See merge request espressif/esp-idf!39263
2025-05-29 13:50:38 +08:00
Jiang Jiang Jian
b901c89f95 Merge branch 'feat/impl_bt_coex_timer_event_v5.4' into 'release/v5.4'
feat(coex): implement BT coex timer event (Backport v5.4)

See merge request espressif/esp-idf!39437
2025-05-29 13:50:16 +08:00
Jiang Jiang Jian
104f57db68 Merge branch 'bugfix/fix_sta_connection_info_error_on_c5_c6_v5.4' into 'release/v5.4'
fix(wifi): fix the issue that sta connection info loss lr info on C5/C6 (v5.4)

See merge request espressif/esp-idf!39439
2025-05-29 11:33:19 +08:00
wangtao@espressif.com
b26fa86bf8 fix(wifi): improve esp32c2 and esp32s2 tcp performance 2025-05-29 11:30:52 +08:00
gongyantao
ac5b71e415 fix(bt): fixed incorrect mask was used to exclude sco packets 2025-05-29 09:55:41 +08:00
zhangyanjiao
49ac962c51 fix(wifi): fix the issue that sta connection info loss lr info on C5/C6 2025-05-28 19:09:34 +08:00
Jiang Jiang Jian
c8b1951189 Merge branch 'fix/rrm_config_set_v5.4' into 'release/v5.4'
Set rrm config condition in case RRM monitoring is enabled

See merge request espressif/esp-idf!39431
2025-05-28 17:56:45 +08:00
Jiang Jiang Jian
f906de4eb6 Merge branch 'bugfix/incorrect_sae_pk_flag_v5.4' into 'release/v5.4'
Disable SAE-PK indication in Assoc Request when not configured (Backport v5.4)

See merge request espressif/esp-idf!39075
2025-05-28 17:56:27 +08:00
Jiang Jiang Jian
7cc3e9c957 Merge branch 'bugfix/supplicant_analyzer_fixes_v5.4' into 'release/v5.4'
Bugfix/supplicant analyzer fixes (v5.4)

See merge request espressif/esp-idf!39455
2025-05-28 14:29:59 +08:00
Jiang Jiang Jian
ebcbbb94fe Merge branch 'bugfix/fix_few_nimble_issues_10052025_v5.4' into 'release/v5.4'
fix(nimble): fix few issues 10052025(v5.4)

See merge request espressif/esp-idf!39014
2025-05-28 14:24:57 +08:00
Jiang Jiang Jian
70ff14e4fa Merge branch 'bugfix/fix_some_external_coexist_issues_v5.4' into 'release/v5.4'
fix(coex): fix some external coexist issue(Backport v5.4)

See merge request espressif/esp-idf!39435
2025-05-28 14:24:53 +08:00
Jiang Jiang Jian
a68299e69f Merge branch 'fix/bootloader_reserved_area_alignment_v5.4' into 'release/v5.4'
fix(esp_system): fix RTC reserved area alignment in the linker script (backport v5.4)

See merge request espressif/esp-idf!39253
2025-05-28 14:24:20 +08:00
akshat
bcd91ec882 bugfix(wifi): Fix incorrect SAE-PK advertisement in assoc request 2025-05-28 14:23:56 +08:00
Jiang Jiang Jian
df50dda690 Merge branch 'bugfix/wps_pbc_overlap_uuid_v5.4' into 'release/v5.4'
fix(wpa_supplicant): Ensure pbc_overlap event is posted correctly (Backport v5.4)

See merge request espressif/esp-idf!39056
2025-05-28 14:22:27 +08:00
Jiang Jiang Jian
fe9669d4fb Merge branch 'ci/fix-custom-oocd-setting_v5.4' into 'release/v5.4'
ci: select OpenOCD binary based on runner (v5.4)

See merge request espressif/esp-idf!39377
2025-05-28 14:20:39 +08:00
Island
9b329bb893 Merge branch 'feat/reduce_bin_size_and_iram_for_ble_rom_code_v5.4' into 'release/v5.4'
feat(ble/controller): Reduce bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (v5.4)

See merge request espressif/esp-idf!39452
2025-05-28 11:19:00 +08:00
Island
282c1d6576 Merge branch 'bugfix/fix_send_delete_link_key_cmd_1_v5.4' into 'release/v5.4'
Bugfix/fix send delete link key cmd 1 (v5.4)

See merge request espressif/esp-idf!39445
2025-05-28 10:58:37 +08:00
Island
f3e781b8a2 Merge branch 'fix/ble_mesh_micellaneous_update_v5.4' into 'release/v5.4'
Fix/ble mesh micellaneous update v5.4

See merge request espressif/esp-idf!39460
2025-05-28 10:58:14 +08:00
luoxu
6305482abb feat(ble_mesh): update lib to bbb57d10f9 2025-05-27 20:57:18 +08:00
luoxu
549cecbe6e feat(ble_mesh): Change the type of rpl size from uint8 to uint16 2025-05-27 20:57:18 +08:00
luoxu
355e56ba55 fix(ble_mesh): update ble 50 macro on unsupported version 2025-05-27 20:57:18 +08:00
luoxu
736eda2189 fix(ble_mesh): fixed issue where private beacon used incorrect adv type 2025-05-27 20:57:18 +08:00
luoxu
85fcf36fb0 fix(ble_mesh): fixed some issues with ble50 2025-05-27 20:57:18 +08:00
luoxu
822385a92e feat(ble_mesh): Remote Provisioning Server UUID Matchs Supported 2025-05-27 20:57:18 +08:00
luoxu
228470339f fix(ble_mesh): Remote Provisioning Client/Server bugs fixed 2025-05-27 20:57:18 +08:00
Kapil Gupta
2348bc3ff9 ci(esp_wifi): Extend eloop test to verify wifi deinit properly 2025-05-27 13:43:03 +05:30
Kapil Gupta
6d97c71d91 fix(esp_wifi): Fixed some concurrency issues in eloop deinit 2025-05-27 13:42:55 +05:30
Kapil Gupta
3e810f5936 fix(esp_wifi): Add eloop blocking call API for public APIs 2025-05-27 13:42:41 +05:30
Kapil Gupta
221f641eb8 fix(esp_wifi): Fixed static analyzer issues 2025-05-27 13:39:08 +05:30
Kapil Gupta
4514aa8e11 fix(esp_wifi): Disble IP renew skip by default 2025-05-27 13:37:23 +05:30
Zhi Wei Jian
33df4408d7 feat(ble/controller): Reduce bin size and IRAM for BLE rom code
(cherry picked from commit 1d739291ca)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-05-27 16:03:34 +08:00
Zhang Hai Peng
3ebab4f681 fix(ble/bluedroid): Fixed clear BLE device recored
(cherry picked from commit 21391a45fd)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-27 15:13:54 +08:00
Zhang Hai Peng
3b6faa8514 fix(ble/bluedroid): Fixed issue with deleting link key when classic Bluetooth is not used
(cherry picked from commit 7c16bce827)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-27 15:13:51 +08:00
linruihao
b50ce3c7ac feat(coex): implement BT coex timer event 2025-05-27 15:00:12 +08:00
Jiang Jiang Jian
6f5c9d4a4c Merge branch 'change/exclude_cve-2023-53154_v5.4' into 'release/v5.4'
change: adds CVE-2023-53154 to cJSON sbom exclude list (v5.4)

See merge request espressif/esp-idf!39416
2025-05-27 14:43:37 +08:00
muhaidong
279dc78e38 fix(coex): fix some external coexist issue 2025-05-27 14:36:28 +08:00
Song Ruo Jing
a46990ff5e fix(uart): fix nmea0183 example wrong knots to m/s unit conversion
Closes https://github.com/espressif/esp-idf/issues/15695
2025-05-27 14:15:33 +08:00
Song Ruo Jing
ec373b51b8 fix(uart): correct C3/S3 module enable porcedure to avoid undesired line noise 2025-05-27 14:15:33 +08:00
Song Ruo Jing
3b3ae85bbe fix(sleep): uart suspend/flush should also check if port is enabled on esp32 2025-05-27 14:15:33 +08:00
Song Ruo Jing
16fced715f docs(uart): improve set/get baud rate API docs
Closes https://github.com/espressif/esp-idf/issues/15449
2025-05-27 14:15:33 +08:00
Song Ruo Jing
1084a1e14c fix(uart): fixed coverity ininitialized scalar variable in uart_tcgetattr 2025-05-27 14:15:33 +08:00
Song Ruo Jing
253c69da08 fix(dedic_gpio): fix calloc to heap_caps_calloc 2025-05-27 14:15:33 +08:00
Song Ruo Jing
bb52e53ede fix(uart): eliminate garbled data on UART TX/RX line in sleep 2025-05-27 14:15:33 +08:00
Song Ruo Jing
60f5828a4a feat(uart): add pin release process to uart driver 2025-05-27 14:15:29 +08:00
Rahul Tank
78214d16ee fix(nimble): Add changes for coverity reported issue 2025-05-27 11:08:25 +05:30
Rahul Tank
66c12d4efe fix(nimble): Add support for minimilistic builds 2025-05-27 11:07:33 +05:30
Rahul Tank
89c26078da fix(nimble): Extend support for allow connect during scan for more chips 2025-05-27 11:06:12 +05:30
Rahul Tank
c36adf0947 fix(nimble): Add configurable option to select ext adv v2 command 2025-05-27 11:04:54 +05:30
Astha Verma
6e4a2619ee fix(nimble): Added api's for fetching gatt cache info and discover included service 2025-05-27 11:03:20 +05:30
tarun.kumar
11334e1afd fix(wifi) : Set rrm config condition in case RRM monitoring is enabled 2025-05-27 10:53:07 +05:30
Jiang Jiang Jian
606ba21345 Merge branch 'feat/ble_log_spi_out_dev_phase_3_v5.4' into 'release/v5.4'
Feat/ble log spi out dev phase 3 (v5.4)

See merge request espressif/esp-idf!39355
2025-05-27 11:32:51 +08:00
Omar Chebib
fd7cfe0b04 fix(esp_system): fix RTC reserved area alignment in the linker script
Make sure the size of the RTC reserved area complies with the alignment requirement.

Closes https://github.com/espressif/esp-idf/issues/13082
2025-05-27 11:20:07 +08:00
Jiang Jiang Jian
76b003c8d6 Merge branch 'bugfix/fix_ble_scan_no_adv_report_when_connected_v5.4' into 'release/v5.4'
Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (v5.4)

See merge request espressif/esp-idf!39275
2025-05-27 11:15:50 +08:00
Jiang Jiang Jian
3c118a4a10 Merge branch 'bugfix/handle_flow_control_flag_v5.4' into 'release/v5.4'
fix(nimble): Add chip dependancy flag for Flow control feature (v5.4)

See merge request espressif/esp-idf!39294
2025-05-27 11:15:32 +08:00
Jiang Jiang Jian
89edea04e1 Merge branch 'bugfix/esp32s2_memprot_clear_v5.4' into 'release/v5.4'
fix(esp_hw_support): clear the memory protection interrupt status on boot (backport v5.4)

See merge request espressif/esp-idf!38052
2025-05-27 11:14:39 +08:00
Jiang Jiang Jian
871aeae6ad Merge branch 'fix/lp_periph_use_int_raw_v5.4' into 'release/v5.4'
change(lp-core): Update LP I2C and LP UART drivers to use raw interrupt status (v5.4)

See merge request espressif/esp-idf!39249
2025-05-27 11:11:29 +08:00
Jiang Jiang Jian
9d6a4e6962 Merge branch 'docs/fix_p4_usb_jtag_pins_v5.4' into 'release/v5.4'
docs(jtag): fix esp32p4 usb jtag pins (v5.4)

See merge request espressif/esp-idf!39157
2025-05-27 11:02:02 +08:00
Jiang Jiang Jian
82eba308c8 Merge branch 'docs/autocolor_multiline_v5.4' into 'release/v5.4'
docs(tools/idf-monitor): Add note about autocoloring limitation on multiline logs (v5.4)

See merge request espressif/esp-idf!39147
2025-05-27 11:01:24 +08:00
Jiang Jiang Jian
0ba1b04ebb Merge branch 'bugfix/fix_some_ble_bugs_0422_v5.4' into 'release/v5.4'
Bugfix/fix some ble bugs 0422 (v5.4)

See merge request espressif/esp-idf!39072
2025-05-27 10:58:54 +08:00
Jiang Jiang Jian
5c11f71fbc Merge branch 'backport/backport_some_changes_250512_v5.4' into 'release/v5.4'
fix(wifi): fix some wifi bugs(backport v5.4)

See merge request espressif/esp-idf!39400
2025-05-27 10:52:57 +08:00
Jiang Jiang Jian
87c18b1a46 Merge branch 'feat/socket_count_checks_v5.4' into 'release/v5.4'
feat(network/lwip): Add checks for maximum socket count (v5.4)

See merge request espressif/esp-idf!38865
2025-05-27 10:32:30 +08:00
Jiang Jiang Jian
fc5b878c65 Merge branch 'fix/remove-unnecessary-select_v5.4' into 'release/v5.4'
fix(esp_system): Remove unnecessary select from esp_system/Kconfig (v5.4)

See merge request espressif/esp-idf!37520
2025-05-26 19:52:26 +08:00
Jiang Jiang Jian
c8848f4147 Merge branch 'fix/slot0_requires_all_pins_in_1bit_mode_issue_v5.4' into 'release/v5.4'
sd: fixed all pins need to be set when using slot0 on esp32p4 issue (v5.4)

See merge request espressif/esp-idf!39306
2025-05-26 19:48:59 +08:00
Jiang Jiang Jian
aed8bdc8dd Merge branch 'update/v5.4_esp-idf-doc-env-v5.4_ubuntu_24.04' into 'release/v5.4'
Update esp-idf-doc-env-v5.4 image

See merge request espressif/esp-idf!38955
2025-05-26 19:48:14 +08:00
Jiang Jiang Jian
b53f520ebc Merge branch 'fix/fix_esp_timer_accuracy_when_do_dfs_v5.4' into 'release/v5.4'
fix(esp_hw_support): improve esp timer accuracy on DFS for esp32 & esp32s2 (v5.4)

See merge request espressif/esp-idf!39340
2025-05-26 19:46:58 +08:00
Jiang Jiang Jian
ee04629723 Merge branch 'feat/some_xip_psram_related_optimisations_and_fixes_v5.4' into 'release/v5.4'
feat(esp_psram): Add some wasted XIP PSRAM memory in heap and PSRAM protection (v5.4)

See merge request espressif/esp-idf!38872
2025-05-26 19:46:08 +08:00
Jiang Jiang Jian
9a36e3fea9 Merge branch 'contrib/github_pr_15059_v5.4' into 'release/v5.4'
feat(https): Get TLS errors from http client (GitHub PR) (v5.4)

See merge request espressif/esp-idf!39142
2025-05-26 19:45:50 +08:00
Jiang Jiang Jian
afa7b83ed7 Merge branch 'bugfix/gpio_dump_io_config_v5.4' into 'release/v5.4'
fix(gpio): fix pu, pd, drv value incorrect from gpio_dump_io_configuration on esp32 (v5.4)

See merge request espressif/esp-idf!37778
2025-05-26 19:45:25 +08:00
Jiang Jiang Jian
b999d102d1 Merge branch 'feat/calibrate_bus_latency_v5.4' into 'release/v5.4'
Feat/calibrate bus latency v5.4

See merge request espressif/esp-idf!39131
2025-05-26 19:44:51 +08:00
Jiang Jiang Jian
cf0c42936b Merge branch 'fix/fix_esp32p4_stuck_in_pd_ana_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32p4 may get stuck when entering deepsleep (v5.4)

See merge request espressif/esp-idf!39282
2025-05-26 19:44:17 +08:00
Jiang Jiang Jian
c61c31e884 Merge branch 'ci/enable_gcov_test_v5.4' into 'release/v5.4'
ci: enable gcov example for all chips (v5.4)

See merge request espressif/esp-idf!39164
2025-05-26 19:42:51 +08:00
Jiang Jiang Jian
84174f6ffc Merge branch 'feat/apptrace-crc16_v5.4' into 'release/v5.4'
Store CRC16 checksum value in the PERFMON1 reg (v5.4)

See merge request espressif/esp-idf!39209
2025-05-26 19:42:34 +08:00
Jiang Jiang Jian
28c4303059 Merge branch 'refactor/add_dfs_init_auto_test_v5.4' into 'release/v5.4'
fix(mcpwm): the wrong pm lock type on esp32 and esp32s3 (v5.4)

See merge request espressif/esp-idf!39193
2025-05-26 19:41:09 +08:00
Jiang Jiang Jian
f8be92085d Merge branch 'fix/gattc_proc_comparison_v5.4' into 'release/v5.4'
fix(nimble): Fix proc rx entry comparison (v5.4)

See merge request espressif/esp-idf!39187
2025-05-26 19:40:47 +08:00
Jiang Jiang Jian
e5145a9352 Merge branch 'refactor/usb_dwc_buff_delay_on_p4_backport_v5.4' into 'release/v5.4'
refactor(hcd_dwc): Apply ls_via_fs_hub delay for all targets (backport to v5.4)

See merge request espressif/esp-idf!39149
2025-05-26 19:40:06 +08:00
Jiang Jiang Jian
6837ed3974 Merge branch 'fix/usbjtag_after_tinyusb_backport_v5.4' into 'release/v5.4'
fix(usb/phy): Fix ability to switch back to USB/JTAG after uninstalling TinyUSB (backport to v5.4)

See merge request espressif/esp-idf!39126
2025-05-26 19:39:25 +08:00
Jiang Jiang Jian
b29391408b Merge branch 'feature/parttable_tool_use_only_ascii_for_names_v5.4' into 'release/v5.4'
fix(partition_table): Ignore UTF-8 BOM bytes in csv file (v5.4)

See merge request espressif/esp-idf!39180
2025-05-26 19:38:42 +08:00
Jiang Jiang Jian
12143d6587 Merge branch 'contrib/github_pr_15942_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fix compile error on esp_cpu_int_has_handler on ESP32-P4 (GitHub PR) (v5.4)

See merge request espressif/esp-idf!39118
2025-05-26 19:38:22 +08:00
Jiang Jiang Jian
c51c27e879 Merge branch 'fix/fix_usb_hs_phy_leakage_on_deepsleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fix deepsleep leakage after initializing USB HS phy (v5.4)

See merge request espressif/esp-idf!39168
2025-05-26 19:36:29 +08:00
Jiang Jiang Jian
10bf6f8b0d Merge branch 'feat/usb_host_move_dma_cap_mem_to_psram_p4_backport_v5.4' into 'release/v5.4'
feat(usb_host): Move DMA capable memory to external ram on P4 (backport v5.4)

See merge request espressif/esp-idf!39078
2025-05-26 19:35:12 +08:00
Jiang Jiang Jian
e84c28eff8 Merge branch 'freertos_sysview_deadlock_fix_v5.4' into 'release/v5.4'
fix(app_trace): prevent deadlock on sysview start (v5.4)

See merge request espressif/esp-idf!39137
2025-05-26 19:34:22 +08:00
Jiang Jiang Jian
9bb2fd0a83 Merge branch 'fix/cache_support_duing_pure_ram_app_v5.4' into 'release/v5.4'
fix(esp_mm): Move cache-related sources out of pure RAM app check (v5.4)

See merge request espressif/esp-idf!39063
2025-05-26 19:33:28 +08:00
Jiang Jiang Jian
43d3dd7b9c Merge branch 'bugfix/secure_ota_no_secure_boot_v5.4' into 'release/v5.4'
fix: secure OTA without secure boot issue for MMU page size configurable SoCs (v5.4)

See merge request espressif/esp-idf!39124
2025-05-26 19:30:53 +08:00
Jiang Jiang Jian
b4cacfe9ae Merge branch 'fix/fix_usj_pad_leakage_v5.4' into 'release/v5.4'
fix(esp_hw_support): always disable USJ pad in sleep to supress leakage (v5.4)

See merge request espressif/esp-idf!39106
2025-05-26 19:29:39 +08:00
akshat
4cc09f2436 fix(wpa_supplicant): Disconnect from previous AP while initiating WPS 2025-05-26 19:27:46 +08:00
akshat
4d8b266c08 fix(wpa_supplicant): Detect PBC overlap even when UUID is null 2025-05-26 19:27:46 +08:00
akshat
255c34ba9f fix(wpa_supplicant): Ensure pbc_overlap event is posted correctly
Preserves the pbc_overlap flag to allow proper event posting.
This ensures that pbc overlap detection functions as expected.
2025-05-26 19:27:46 +08:00
Jiang Jiang Jian
022805670d Merge branch 'bugfix/enable_additional_lp_io_wakeup_v5.4' into 'release/v5.4'
fix(lp_io): enable setting edge type wakeup sources for targets that support this (v5.4)

See merge request espressif/esp-idf!36010
2025-05-26 19:26:28 +08:00
Tomáš Rohlínek
0a9105a406 feat(network/lwip): Add checks for maximum socket count 2025-05-26 19:23:31 +08:00
Ashish Sharma
14a41c29c9 feat(cjson): update to latest upstream 2025-05-26 17:39:50 +08:00
Ashish Sharma
02a0db1dc4 change: adds CVE-2023-53154 to cJSON sbom exclude list 2025-05-26 17:31:11 +08:00
harshal.patil
f81c69eabc fix(mbedtls/esp_crt_bundle): Suppress non-negative serial number warning
Co-authored-by: Mahavir Jain <mahavir.jain@espressif.com>
2025-05-26 13:34:38 +05:30
Zhou Xiao
a13ddd5c85 change(ble): make falling edge when disabling ts sync 2025-05-26 15:35:18 +08:00
yinqingzhao
bdc1f1b172 fix(wifi): fix some wifi bugs 2025-05-26 14:48:53 +08:00
Zhou Xiao
e2742ca1f7 fix(ble): fixed spi log init failure return value for ESP32 2025-05-26 10:47:14 +08:00
Zhou Xiao
d6cbc45350 fix(ble): fixed ts sync sleep support trigger 2025-05-23 19:13:00 +08:00
Zhou Xiao
279777aec8 fix(ble): fixed printf va list cross function pass failure 2025-05-23 12:29:46 +08:00
Samuel Obuch
6ee607b00f ci: select OpenOCD binary based on runner 2025-05-23 00:41:15 +02:00
Zhou Xiao
10ec6c6f27 fix(ble): fixed upper layer trans append failure bug
(cherry picked from commit 1e6bc70837)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:09 +08:00
Zhou Xiao
772fa9b2c7 feat(ble): support ts sync for sleep app
(cherry picked from commit e10460ce14)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:07 +08:00
Zhou Xiao
1bde1985ff feat(ble): support controller raw log print out
(cherry picked from commit ed09e97c66)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:05 +08:00
Zhou Xiao
1ddc2a69c1 feat(ble): refactored loss report module and represent frame using struct
(cherry picked from commit 9800d715a5)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:02 +08:00
Zhou Xiao
eb73902c9c feat(ble): support le audio log buffer separation
(cherry picked from commit cd3aa6527c)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:00 +08:00
Zhou Xiao
7298a27121 feat(ble): optimized printf functions code size and speed
(cherry picked from commit e4be25ba63)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:57 +08:00
Zhou Xiao
c690670f65 feat(ble): refactored flush module and provided public flush api
(cherry picked from commit 70792443c7)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:55 +08:00
Zhou Xiao
1cc5a41322 feat(ble): refactored ll isr buffer append and buffer flush using event handler
(cherry picked from commit bba90309e7)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:52 +08:00
Zhou Xiao
4f1e4cc83b feat(ble): provided dynamic spi enable/disable api
(cherry picked from commit 3568f19fef)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:50 +08:00
Zhou Xiao
bfdc8f3924 feat(ble): support hci log buffer separation
(cherry picked from commit 16a3b2c71b)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:47 +08:00
Zhou Xiao
25cd0ef51a feat(ble): optimized macros readability
(cherry picked from commit f8699785e9)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:45 +08:00
wuzhenghui
3fa79684cd ci(esp_timer): add UT case for esp_timer period alarm with DFS 2025-05-22 15:18:22 +08:00
wuzhenghui
b5da8a52c6 feat(esp_hw_support): compensate the error introduced to LACT during APB frequency switching 2025-05-22 15:18:21 +08:00
wuzhenghui
db6aedef25 fix(esp_hw_support): update systimer step immediately when XTAL changes on esp32s2 2025-05-22 15:18:21 +08:00
wuzhenghui
78e9c47580 fix(esp_hw_support): update LACT clock prescale immediately when APB changes on esp32 2025-05-22 15:18:16 +08:00
armando
6e3d0e5384 fix(sd): fixed menuconfig multi pin definitions issue 2025-05-21 11:11:33 +08:00
armando
d6b5320bf6 fix(sd): fixed slot0 requires all pins to be set when using 1bit iomux mode on p4 2025-05-21 11:11:28 +08:00
igor.masar
d191538f18 feat(usb/hal): Add support for explicit FIFO configuration
Introduce a new HAL API `usb_dwc_hal_set_fifo_config()` that allows advanced users
to manually configure RX, Non-Periodic TX, and Periodic TX FIFO sizes. This offers
fine-grained control beyond the previous bias-based sizing approach.

The HAL function no longer returns `esp_err_t`, and internal validations are enforced
via `HAL_ASSERT()`. Responsibility for input validation has been moved to the HCD layer.

FIFO configuration must be applied before any USB pipes are created or activated.
This feature is intended for use during `usb_host_install()`.

If no custom FIFO configuration is provided (i.e., all values are zero),
the driver falls back to a bias-based default layout based on Kconfig settings
(`CONFIG_USB_HOST_HW_BUFFER_BIAS_*`). Bias resolution is done inside `hcd_port_init()`.

The `port_obj_t` structure has been extended with a `fifo_config` field, which stores
the configuration to allow re-application after a USB port reset.

Obsolete FIFO bias enums (`usb_hal_fifo_bias_t`, `hcd_port_fifo_bias_t`) and related
APIs (`hcd_port_set_fifo_bias()`) have been removed in favor of the new structure-based mechanism.

The HCD initialization and port reset flow has been updated to use the explicit
FIFO configuration.

USB Host maintainer documentation (`maintainers.md`) has been updated accordingly.
Test cases were updated to remove the usage of removed bias API and now rely on default
or custom FIFO configuration.
2025-05-20 16:11:40 +02:00
Rahul Tank
58f1f092e9 fix(nimble): Add chip dependancy flag for Flow control feature 2025-05-20 18:10:26 +05:30
wuzhenghui
e27321ab51 fix(esp_hw_support): fix esp32p4 may get stuck when entering deepsleep 2025-05-20 15:52:52 +08:00
Song Ruo Jing
c3e4134b0c feat(gpio): gpio_reset_pin should do IO reservation revoke
Closes https://github.com/espressif/esp-idf/issues/15598
2025-05-20 15:30:26 +08:00
Song Ruo Jing
8f231272f6 fix(gpio): fix IO output enable control
oen_sel and oen_inv_sel fields from func_out_sel_cfg register
2025-05-20 15:30:26 +08:00
Song Ruo Jing
9ed617fb17 fix(gpio): removed unnecessary step when routing input signal to a pin 2025-05-20 15:30:26 +08:00
Song Ruo Jing
f61b453a25 fix(gpio): fix 8/16-bit gpio, rtc/lp_io register access 2025-05-20 15:30:26 +08:00
Song Ruo Jing
6cffc5c994 fix(gpio): fix pu, pd, drv value incorrect from gpio_dump_io_configuration on esp32
Closes https://github.com/espressif/esp-idf/issues/14931
2025-05-20 15:30:14 +08:00
Island
734b1b1be5 Merge branch 'change/ble_update_lib_20250516_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250516 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!39237
2025-05-20 11:41:52 +08:00
Zhang Hai Peng
abb3b2d70c fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(4713205)
- Fix: Missing ADV reports after bonding and connection


(cherry picked from commit 244d4f8fa7)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-20 11:13:32 +08:00
Zhao Wei Liang
6f99672c32 feat(ble): support creating connections during scanning process on ESP32-C5
(cherry picked from commit 9d687daf36)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 19:17:03 +08:00
Sudeep Mohanty
6b75576db2 change(lp-core): Update LP I2C and LP UART drivers to use raw interrupt status
This commit updates the LP I2C and LP UART drivers to use the raw
interrupt status without enabling the interrupts.
2025-05-19 10:33:21 +02:00
Zhao Wei Liang
6a9fedcab3 fix(ble): added missed printf for ll log interface
(cherry picked from commit d12e072b35)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-19 12:04:21 +08:00
Zhao Wei Liang
2f92b39cc5 feat(ble): support creating connections during scanning process on ESP32-H2
(cherry picked from commit 207d85a5f7)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:18 +08:00
Zhao Wei Liang
efd16c699a fix(ble): fixed occasional assert issue in scan and connection scenarios on ESP32-C6
(cherry picked from commit cd6038b6cf)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:16 +08:00
Zhao Wei Liang
d15978a30d change(ble): [AUTO_MR] Update lib_esp32c2 to 664e4255
(cherry picked from commit 3cfd4d0166)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:14 +08:00
Zhao Wei Liang
60d528f7a7 change(ble): [AUTO_MR] Update lib_esp32c6 to 1304a9d0
(cherry picked from commit 69158d5064)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:11 +08:00
Zhao Wei Liang
8a447d44c6 change(ble): [AUTO_MR] Update lib_esp32c5 to 1304a9d0
(cherry picked from commit 27220c1b4c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:09 +08:00
Zhao Wei Liang
af84660236 change(ble): [AUTO_MR] Update lib_esp32h2 to 1304a9d0
(cherry picked from commit 29f89efea6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:07 +08:00
Erhan Kurubas
41ac26292f feat(apptrace): Store CRC16 checksum value of exposed block in the perfmon reg 2025-05-16 11:32:41 +02:00
Konstantin Kondrashov
809925eb60 refactor(partition_table): Refactoring of code style 2025-05-16 09:42:03 +03:00
morris
488ab842e3 fix(mcpwm): the wrong pm lock type on esp32 and esp32s3 2025-05-16 10:50:43 +08:00
Sumeet Singh
4bfd493087 fix(nimble): Fix proc rx entry comparison (v5.4) 2025-05-15 19:44:48 +05:30
Konstantin Kondrashov
41dd352149 fix(partition_table): Ignore UTF-8 BOM bytes in csv file 2025-05-15 13:35:28 +03:00
Samuel Obuch
d452abc17e ci: fix app_trace_basic rules and test 2025-05-15 11:29:27 +02:00
Samuel Obuch
3c673cbea3 ci: enable gcov example for all chips 2025-05-15 11:29:22 +02:00
wuzhenghui
1811757ad9 fix(esp_hw_support): Fix deepsleep leakage after initializing USB HS phy 2025-05-15 16:05:05 +08:00
Anton Maklakov
7ec02857f4 docs(jtag): fix esp32p4 usb jtag pins 2025-05-15 12:13:31 +07:00
renpeiying
f114a94369 docs: Update CN for idf-monitor.rst 2025-05-14 13:55:08 +02:00
Peter Dragun
bb3655d6e7 docs(tools/idf-monitor): Add note about autocoloring limitation on multiline logs
Closes https://github.com/espressif/esp-idf/issues/15793
2025-05-14 13:54:55 +02:00
Roman Leonov
2034360d96 refactor(hcd_dwc): Apply ls_via_fs_hub delay for all targets 2025-05-14 13:53:34 +02:00
nilesh.kale
10fe93f1c3 fix(esp_http_client): update code format for API
This commit update code format as per IDF standard for API
esp_http_client_get_and_clear_last_tls_error().
2025-05-14 15:25:06 +05:30
Lorenzo Consolaro
5bd8026249 feat(https): Get TLS errors from http client
update PR

update mr

Update components/esp_http_client/esp_http_client.c

Co-authored-by: Nilesh Kale <nilesh.kale@espressif.com>
2025-05-14 15:25:06 +05:30
Samuel Obuch
23773bb4dc fix(sysview): do not use freertos ticks to prevent deadlock 2025-05-14 11:22:21 +02:00
Tan Yan Quan
5e3f2e7129 feat(openthread): change border agent to kconfig option 2025-05-14 16:12:27 +08:00
Tan Yan Quan
a53f89e66c fix(openthread): handle SetTimeSyncState when ifconfig up or down 2025-05-14 16:12:17 +08:00
Tan Yan Quan
f59e0b6dc7 feat(openthread): support bus_latency for dual-chip BR solution 2025-05-14 16:12:10 +08:00
John Boiles
2557132185 fix(usb/phy): Fix ability to switch back to USB/JTAG after uninstalling TinyUSB
Fixes #15912. This is a revert of a change made in 005ae0554 that breaks the
ability to re-initalize the USB/JTAG device after uninstalling TinyUSB.

Closes https://github.com/espressif/esp-idf/issues/15912
2025-05-14 08:25:40 +02:00
Mahavir Jain
e1d41ada5c test: add secure image verification case for C6/H2 2025-05-14 10:57:09 +05:30
Mahavir Jain
09fbed0eec fix: secure OTA without secure boot issue for MMU page size configurable SoCs
For secure app verification during OTA update case, the image was
getting memory mapped twice and hence the failure in verification.

Modified from memory mapped flash read to SPI flash read approach
for the MMU page size from image header.

Regression from 07318a4987

Closes https://github.com/espressif/esp-idf/issues/15936
2025-05-14 10:55:48 +05:30
Weltenprinz
d34bdc8394 fix(esp_hw_support): Fix compile error on esp_cpu_int_has_handler on ESP32-P4
Merges https://github.com/espressif/esp-idf/pull/15942
Closes https://github.com/espressif/esp-idf/issues/15941
2025-05-13 18:20:42 +03:00
wuzhenghui
daaba0f36c fix(esp_hw_support): always disable USJ pad in sleep to supress leakage 2025-05-13 20:11:18 +08:00
peter.marcisovsky
95bd653ec1 feat(usb_host): Move DMA capable memory to external ram on P4
- DWC-OTG internal DMA can access psram on esp32p4
    - Move DMA memory buffs to psram, to save internal ram
    - HCD tests and MSC example runs in CI with psram enabled
2025-05-13 13:31:17 +02:00
Peter Macko
417fe048a1 change(ci): Update esp-idf-docs-env-v5.4 image
- Add Sphinx warnings caused by [#11323](https://github.com/doxygen/doxygen/issues/11323)
- Update esp-idf-doc-env-v5.4 to use the updated parent image (Ubuntu 24.04 and Node.js 22)
- Exclude sphinx-known-warnings.txt from pre-commit checks.
2025-05-13 11:21:58 +02:00
Zhang Hai Peng
0743b4ad6e fix(ble/bluedroid): Reduce Bluedroid host log output over SPI
(cherry picked from commit 0586d10317)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:14 +08:00
Zhang Hai Peng
8a11127ddd fix(ble/bluedroid): Added value len check in esp_ble_gatts_send_indicate()
(cherry picked from commit bfa0fff2e5)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-05-13 16:14:12 +08:00
Zhang Hai Peng
e2915a60c5 fix(ble/bluedroid): Change maximum length of attribute value to 517
(cherry picked from commit df8c1f7a96)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:09 +08:00
Zhang Hai Peng
901fc0c9ac docs(ble): clarify meaning of 0 value for esp_ble_gap_start_ext_scan() parameters
(cherry picked from commit ebb76933d0)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:07 +08:00
Zhang Hai Peng
4f050ed635 fix(ble/bluedroid): Fixed BLE GAP appearance configuration check
(cherry picked from commit 6552854cb5)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:04 +08:00
nilesh.kale
93ca084b62 fix(esp_mm): Move cache-related sources out of pure RAM app check
This change resolves build issues when compiling with
CONFIG_APP_BUILD_TYPE_PURE_RAM_APP enabled.
2025-05-13 12:57:19 +05:30
Jan Beran
fdca2c76f3 fix(esp_system): Remove unnecessary select from esp_system/Kconfig 2025-05-12 09:51:04 +02:00
Marius Vikhammer
fe75355314 Merge branch 'bugfix/heap_in_flash_v5.4' into 'release/v5.4'
fix(heap): fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not working together with CONFIG_HEAP_TLSF_USE_ROM_IMPL (v5.4)

See merge request espressif/esp-idf!38121
2025-05-12 11:50:39 +08:00
Jiang Jiang Jian
fd37cd46b2 Merge branch 'feat/nvs_pytest_add_non_ascii_string_test_v5.4' into 'release/v5.4'
feat: Add NVS generator check test for CRC of non-ASCII strings (v5.4)

See merge request espressif/esp-idf!38842
2025-05-12 10:46:10 +08:00
Jiang Jiang Jian
063d9d4307 Merge branch 'contrib/github_pr_15132_v5.4' into 'release/v5.4'
fix(newlib): usleep returning early (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38708
2025-05-12 10:42:50 +08:00
morris
77ae1d2b04 Merge branch 'bugfix/fixed_mismatch_of_tx_queue_statue_v5.4' into 'release/v5.4'
fix(i2s): fixed the false buf catenate while use preload (v5.4)

See merge request espressif/esp-idf!38967
2025-05-12 10:35:14 +08:00
Marius Vikhammer
2fcebb7483 fix(lp_io): allow edge wakeup types for LP-IO on chips which support it 2025-05-12 09:48:30 +08:00
Marius Vikhammer
cccccd6da8 fix(newlib): fixed newlib malloc wrappers IRAM/flash placement
If HEAP_PLACE_FUNCTION_INTO_FLASH = y then we should also place
the newlib wrappers for the heap in to flash.
2025-05-12 09:47:08 +08:00
Marius Vikhammer
209ac93ac2 fix(heap): fixed HEAP_PLACE_FUNCTION_INTO_FLASH disabled if heap impl in ROM 2025-05-12 09:47:08 +08:00
Rahul Tank
4a927ac8d6 Merge branch 'bugfix/provide_user_option_delete_pair_v5.4' into 'release/v5.4'
fix(nimble): Added option to stack to handle repeat pairing internally (v5.4)

See merge request espressif/esp-idf!38959
2025-05-10 22:55:07 +08:00
Shu Chen
3fc7689ea1 Merge branch 'feat/ot_br_esp32p4_v5.4' into 'release/v5.4'
feat(br): support ot_br example for esp32p4 (v5.4)

See merge request espressif/esp-idf!39003
2025-05-09 19:46:49 +08:00
Jiang Jiang Jian
4f09162f42 Merge branch 'bugfix/hwlp_coproc_saving_master_v5.4' into 'release/v5.4'
fix(freertos): workaround a hardware bug related to HWLP coprocessor (backport v5.4)

See merge request espressif/esp-idf!38059
2025-05-09 19:31:06 +08:00
Jiang Jiang Jian
ed8580011c Merge branch 'fix/reduce_rtc_text_size_v5.4' into 'release/v5.4'
fix(system): linker script: free unused .rtc.text memory for esp32c3, esp32s2 (v5.4)

See merge request espressif/esp-idf!35366
2025-05-09 18:54:01 +08:00
Jiang Jiang Jian
a3b5428364 Merge branch 'docs/fix-kconfserver-link_v5.4' into 'release/v5.4'
docs: Fix link to the kconfserver documentation (v5.4)

See merge request espressif/esp-idf!38905
2025-05-09 17:58:50 +08:00
Jiang Jiang Jian
90607ee77b Merge branch 'bugfix/esp32_c6_rev0_ecdsa_build_v5.4' into 'release/v5.4'
fix: Secure boot (ECDSA) build failure for C6 rev0 target (v5.4)

See merge request espressif/esp-idf!38834
2025-05-09 17:57:55 +08:00
Jiang Jiang Jian
aa1db69a13 Merge branch 'feat/remove_const_from_voltopart_v5.4' into 'release/v5.4'
feat(fatfs/diskio): Remove const from PARTITION VolToPart (v5.4)

See merge request espressif/esp-idf!38782
2025-05-09 17:55:57 +08:00
morris
bb2c83ef20 Merge branch 'fix/rmt_race_condition_v5.4' into 'release/v5.4'
fix(rmt): fix race condition and add receive config error message (v5.4)

See merge request espressif/esp-idf!38998
2025-05-09 17:20:53 +08:00
Mahavir Jain
103db4a4ac Merge branch 'fix/async_handler_example_stack_overflow_issue_v5.4' into 'release/v5.4'
fix(esp_http_server): Async handler example stack overflow fix (v5.4)

See merge request espressif/esp-idf!38996
2025-05-09 17:12:27 +08:00
Tan Yan Quan
58f08be521 feat(openthread/br): update thread-lib for esp32p4 and OT upstream ec2b0d487
* esp-openthread: thread_zigbee/esp-openthread@80d6e2f8e
* openthread: espressif/openthread@ec2b0d487
* esp-idf: espressif/esp-idf@64d713a71
2025-05-09 07:43:49 +00:00
Tan Yan Quan
64d713a712 feat(openthread): update OT upstream to ec2b0d487 2025-05-09 14:42:15 +08:00
Tan Yan Quan
58c1339077 feat(openthread): support esp32p4 as ot_br 2025-05-09 14:40:48 +08:00
Island
8ad0d3d8f2 Merge branch 'change/ble_update_lib_20250430_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250430 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!38974
2025-05-09 14:05:17 +08:00
Island
1b1796fb2d Merge branch 'docs/update_ble_feature_status_latest_v5.4' into 'release/v5.4'
Updated BLE feature status (v5.4)

See merge request espressif/esp-idf!38991
2025-05-09 14:02:54 +08:00
Chen Jichang
65e8047c07 fix(rmt): fix race condition and add receive config error message
Closes https://github.com/espressif/esp-idf/issues/15842
Closes https://github.com/espressif/esp-idf/issues/15836
2025-05-09 13:44:18 +08:00
hrushikesh.bhosale
ccdd373eca fix(esp_http_server): Async handler example stack overflow fix
1. In async handler example, on hitting /long URI and closing the
connection forcefully from client (example ctrl + c) cause more stack
size (almost 200 bytes) than successfull request.
2. The connection should be closed from the server as soon as the client
closes the connect (i.e. handler should return ESP_FAIL to close the
connection)
2025-05-09 10:18:13 +05:30
Mahavir Jain
daf1057209 fix: Secure boot (ECDSA) build failure for C6 rev0 target
Closes https://github.com/espressif/esp-idf/issues/15856
2025-05-09 12:03:07 +08:00
Alexey Lapshin
c06fb3b759 fix(system): linker script: free unused .rtc.text memory for esp32c3/esp32s2/esp32s3 2025-05-09 11:39:24 +08:00
Omar Chebib
827f6bca2b fix(freertos): optimize HWLP context switch by disabling it when unused 2025-05-09 11:38:33 +08:00
Omar Chebib
d973153488 fix(freertos): workaround a hardware bug related to HWLP coprocessor
This commit manually sets the HWLP context to dirty when a Task that needs it is scheduled it.
2025-05-09 11:38:33 +08:00
Omar Chebib
f3fad943fd fix(esp_hw_support): clear the memory protection interrupt status on boot
Fixes https://github.com/espressif/esp-idf/issues/15359
2025-05-09 11:37:40 +08:00
Wei Yu Han
4c62b9b8e9 Updated BLE feature status
(cherry picked from commit b6fc400d1d818094de959930c20e1583c2e22c1a)

Co-authored-by: weiyuhan <weiyuhan@espressif.com>
2025-05-09 11:36:42 +08:00
Jiang Jiang Jian
796ca12684 Merge branch 'fix/ble_mesh_trans_pending_fix_v5.4' into 'release/v5.4'
fix(ble_mesh): remove tx pending assert (v5.4)

See merge request espressif/esp-idf!38936
2025-05-09 11:35:06 +08:00
morris
d62e3c7d14 Merge branch 'contrib/github_pr_15638_v5.4' into 'release/v5.4'
fix(i2c): Fix clear bus issue in legacy i2c driver, etc. (backport v5.4)

See merge request espressif/esp-idf!38828
2025-05-09 10:38:11 +08:00
Jiang Jiang Jian
d2b2909f6a Merge branch 'bugfix/fix_modem_state_rx_bcn_failed_v5.4' into 'release/v5.4'
fix(wifi):fix modem state rx bcn failed when tbtt update, support modem state for coexist (backport v5.4)

See merge request espressif/esp-idf!38935
2025-05-09 10:15:57 +08:00
Wang Meng Yang
304acd5c4c Merge branch 'feat/add_sdkconfig_for_secure_connection_v5.4' into 'release/v5.4'
fix(bt): disable dm1 for acl-u when aes-ccm is on in peripheral(backport v5.4)

See merge request espressif/esp-idf!38975
2025-05-09 09:38:58 +08:00
morris
a2022990a4 Merge branch 'ci/remove_c5_support_from_readme' into 'release/v5.4'
ci(esp32c5): remove c5 support from readme on v5.4

See merge request espressif/esp-idf!38851
2025-05-08 18:27:24 +08:00
gongyantao
44cc3f963d fix(bt): disable dm1 for acl-u when aes-ccm is on in peripheral 2025-05-08 18:20:45 +08:00
Rahul Tank
581dbafe22 fix(nimble): Added option to stack to handle repeat pairing internally 2025-05-08 15:33:05 +05:30
Rahul Tank
5d4d3c697e Merge branch 'feat/autopts_and_ssc_fixes_v5.4' into 'release/v5.4'
feat(nimble): Added fixes related to SSC and AutoPTS testing (v5.4)

See merge request espressif/esp-idf!38796
2025-05-08 17:59:05 +08:00
Mahavir Jain
977a9182ea Merge branch 'feat/c6_v002_compatibility_v5.4' into 'release/v5.4'
hw_support: Add Kconfig option for c6 v0.2 (v5.4)

See merge request espressif/esp-idf!38942
2025-05-08 16:48:31 +08:00
Shen Wei Long
08dbf8b7ff fix(ble): update ld file on ESP32-C2
(cherry picked from commit ee6607b489)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-08 14:54:15 +08:00
Shen Wei Long
ef8873f8b8 change(ble): [AUTO_MR] Update lib_esp32c2 to 16e16586
(cherry picked from commit 26754d8e71)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:13 +08:00
Shen Wei Long
fe0899f94f change(ble): [AUTO_MR] Update lib_esp32c6 to 9ecb81c8
(cherry picked from commit a477bfb140)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:11 +08:00
Shen Wei Long
59b8d97e3e change(ble): [AUTO_MR] Update lib_esp32c5 to 9ecb81c8
(cherry picked from commit 852a095b59)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:08 +08:00
Shen Wei Long
3da6ad8f3a change(ble): [AUTO_MR] Update lib_esp32h2 to 9ecb81c8
(cherry picked from commit a3cc91dbf0)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:06 +08:00
laokaiyao
30e78a644c fix(i2s): fixed the false buf catenate while use preload
Closes https://github.com/espressif/esp-idf/issues/15775
2025-05-08 14:24:10 +08:00
Shu Chen
c5f88c452c Merge branch 'feat/mtd_parent_search_v5.4' into 'release/v5.4'
feat(openthread): enable parent search function for MTD (v5.4)

See merge request espressif/esp-idf!38820
2025-05-08 14:13:05 +08:00
Shu Chen
323af330b9 Merge branch 'fix/calibrate_csl_rx_v5.4' into 'release/v5.4'
fix(openthread): calibrate CSL parameters (v5.4)

See merge request espressif/esp-idf!38533
2025-05-08 14:11:45 +08:00
Jiang Jiang Jian
5e7a047ad7 Merge branch 'bugfix/tsens_read_abnormal_value_v5.4' into 'release/v5.4'
fix: tsens read abnormal value in esp32c2eco4 (backport v5.4)

See merge request espressif/esp-idf!38900
2025-05-08 12:40:14 +08:00
laokaiyao
4318434aa6 ci(esp32c5): remove c5 support from readme on v5.4 2025-05-08 11:08:07 +08:00
Rahul Tank
151dc0bd74 Merge branch 'bugfix/conn_with_scan_c6_h2_v5.4' into 'release/v5.4'
fix(nimble): Enable support for Connect with scan for 32/ c6/ h2 chip (v5.4)

See merge request espressif/esp-idf!38852
2025-05-08 00:28:01 +08:00
Sumeet Singh
ffaa688582 feat(nimble): Added some fixes for autopts testing 2025-05-07 16:58:36 +05:30
Island
c799865f91 Merge branch 'bugfix/fix_scan_stopped_with_high_rtc_freq_v5.4' into 'release/v5.4'
fix(ble): fix rtc freq set too high on ESP32-C2 (v5.4)

See merge request espressif/esp-idf!38931
2025-05-07 18:47:22 +08:00
Xiao Xufeng
94217c03ec feat(soc): add config option for c6 v0.2 2025-05-07 16:45:53 +08:00
Rahul Tank
b65d20d371 fix(nimble): Enable support for Connect with scan for esp32/c6/ h2 chip 2025-05-07 12:40:18 +05:30
Island
8686f29e4f Merge branch 'fix/ble_mesh_fixed_insufficient_link_close_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed issue with insufficient link close transmit cnt (v5.4)

See merge request espressif/esp-idf!38898
2025-05-07 14:58:26 +08:00
luoxu
b1d1170499 fix(ble_mesh): remove tx pending assert 2025-05-07 14:55:21 +08:00
Li Shuai
7014cfc831 fix(esp_hw_support): fix modem wakeup req always high caused by pmu min slp cycle update 2025-05-07 14:25:05 +08:00
Li Shuai
d5ff59f144 change(esp_hw_support): add interface to calculate slow clock period by clock frequency 2025-05-07 14:15:20 +08:00
Rahul Tank
6af56914c8 Merge branch 'fix/optimize_nimble_throughput_example_v5.4' into 'release/v5.4'
fix(nimble): Added support of Dynamic switching between different Phy modes. (v5.4)

See merge request espressif/esp-idf!38910
2025-05-07 12:38:55 +08:00
sibeibei
444dddd87d fix(wifi):fix modem state rx bcn failed when tbtt update, support modem state for coexist 2025-05-07 11:57:55 +08:00
morris
be8d37700b Merge branch 'feature/usb_host_ext_hub_collective_backport_v5.4' into 'release/v5.4'
feat(usb_host): External Hub collective backport to v5.4

See merge request espressif/esp-idf!37266
2025-05-07 10:48:35 +08:00
morris
02a4deca7d Merge branch 'contrib/github_pr_15853_v5.4' into 'release/v5.4'
Fix for an infinite wait in spi-lcd-touch example (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38899
2025-05-07 10:46:02 +08:00
Jin Chen
ffad40df88 fix(ble): fix rtc freq set too high on ESP32-C2
(cherry picked from commit 6a80deac03)

Co-authored-by: cjin <jinchen@espressif.com>
2025-05-07 10:18:38 +08:00
Roman Leonov
e329d34109 refactor(ext_port): Removed ext_hub dependency 2025-05-06 15:22:15 +02:00
Roman Leonov
f78927334f refactor(ext_port): Changed the mechanism for hub class request
Merged all Hub Class specific request to one function.
Added a callback for the External Port Driver to break the dependency from ext_hub.h
2025-05-06 15:02:03 +02:00
Roman Leonov
08fd2d8d4e feat(ext_hub): Added device error handling 2025-05-06 14:58:26 +02:00
Roman Leonov
fb6e803bfa feat(usbh): Added uid presence check in USBH device object list 2025-05-06 14:58:26 +02:00
Shreeyash
4dfa2beaf1 fix(nimble): Added support for 1m, 2m, coded phy channels and optimized throughput 2025-05-06 17:58:17 +05:30
Rahul Tank
05e67781a1 Merge branch 'bugfix/add_adv_type_parse_v5.4' into 'release/v5.4'
fix(nimble): Add API to parse adv report for given type (v5.4)

See merge request espressif/esp-idf!38789
2025-05-06 19:55:48 +08:00
Jiang Jiang Jian
beb0bcc970 Merge branch 'bugfix/wps_msg_timeout_increase_v5.4' into 'release/v5.4'
fix(esp_wifi): Increase WPS message timeout (v5.4)

See merge request espressif/esp-idf!38875
2025-05-06 16:37:56 +08:00
akshat
71fde740e1 fix(wpa_supplicant): Fix build errors when Supplicant logs are enabled 2025-05-06 12:47:33 +05:30
Kapil Gupta
0de5180d8a fix(esp_wifi): Increase WPS timeout 2025-05-06 12:46:42 +05:30
Jan Beran
d0dd9c0511 docs: Fix link to the kconfserver documentation 2025-05-06 09:15:04 +02:00
Chen Jichang
c979548bfe fix(lcd): fix test failure regression 2025-05-06 14:31:32 +08:00
Chen Jichang
0daccd7f30 fix(lcd): fix the infinite wait when lvgl timer is no ready
Merges https://github.com/espressif/esp-idf/pull/15853
2025-05-06 14:31:32 +08:00
sibeibei
e2a1b933e8 fix: tsens read abnormal value in esp32c2eco4 2025-05-06 14:20:17 +08:00
Jiang Jiang Jian
45d95b1bd8 Merge branch 'fix/fix_esp32p4_retention_cost_v5.4' into 'release/v5.4'
fix(esp_hw_support): optimize retention cost and update sleep time compensation (v5.4)

See merge request espressif/esp-idf!38744
2025-05-06 14:18:49 +08:00
Decstar77
7cef584834 fix(spi-lcd-touch-example): Fix for an infinite wait caused by UINT32_MAX 2025-05-06 14:14:14 +08:00
Jiang Jiang Jian
89a76e918e Merge branch 'docs/update_ble_feature_support_status_v5.4' into 'release/v5.4'
Docs: update ble feature support status (v5.4)

See merge request espressif/esp-idf!37091
2025-05-06 14:02:31 +08:00
morris
0448c4bda5 Merge branch 'fix/usb_host_hcd_dma_ls_via_fs_hubs_backport_v5.4' into 'release/v5.4'
fix(hcd): Added delay to slow down scatter-gather dma for ls device via fs hubs (backport v5.4)

See merge request espressif/esp-idf!38650
2025-05-06 13:41:08 +08:00
Luo Xu
df82a96f15 fix(ble_mesh): fixed issue with insufficient link close transmit cnt
(cherry picked from commit ad1073693e)

Co-authored-by: luoxu <luoxu@espressif.com>
2025-05-06 12:23:33 +08:00
Jiang Jiang Jian
6a75fd8518 Merge branch 'bugfix/fix_not_update_country_in_beacon_v5.4' into 'release/v5.4'
fix(wifi): fix not update country in beacon(backport v5.4)

See merge request espressif/esp-idf!38831
2025-05-06 09:54:43 +08:00
harshal.patil
26586deb7d fix(esp_psram): Add XIP PSRAM alignment gaps in heap only if PSRAM protection is enabled 2025-05-05 11:52:15 +05:30
harshal.patil
9406fde68d feat(cpu_region_protect): Enable basic memory protection for SPIRAM 2025-05-05 11:52:04 +05:30
Rahul Tank
10d6bee001 Merge branch 'bugfix/fix_ext_disc_example_usage_v5.4' into 'release/v5.4'
fix(nimble): Corrected structure field name usage in examples (v5.4)

See merge request espressif/esp-idf!38858
2025-05-05 13:44:32 +08:00
harshal.patil
f77e96e7c6 feat(esp_psram): Add the gap created due to alignment of XIP segments in heap 2025-05-05 11:09:52 +05:30
harshal.patil
fac460f89e feat(esp_psram): Add some helper APIs to get usable PSRAM memory size 2025-05-05 11:09:52 +05:30
Mahavir Jain
b62c2cef1b Merge branch 'docs/fix_unterminated_quotes_v5.4' into 'release/v5.4'
fix(docs): Fix unterminated quotes in secure-boot-v2.rst (v5.4)

See merge request espressif/esp-idf!38885
2025-05-02 18:48:59 +08:00
harshal.patil
9276f7b294 fix(docs): Fix unterminated quotes in secure-boot-v2.rst 2025-05-02 15:16:39 +05:30
morris
92a5676c6e Merge branch 'fix/usb_comprehensive_heap_backport_v5.4' into 'release/v5.4'
fix(usb/host): Do not call heap_caps_get_allocated_size() in USB host driver (backport to v5.4)

See merge request espressif/esp-idf!38864
2025-05-01 07:58:56 +08:00
Roland Dobai
f811882a11 Merge branch 'ci/rename-packages_v5.4' into 'release/v5.4'
ci: rename local idf_ci folder, avoid name collision (v5.4)

See merge request espressif/esp-idf!38757
2025-04-30 17:17:23 +08:00
Tomas Rezucha
462c1ed957 fix(usb/host): Do not call heap_caps_get_allocated_size() in USB host driver
It causes heap corruption if heap poisoning is enabled on ESP32-P4.
It returns incorrect size on ESP32-S3.

Closes https://github.com/espressif/esp-idf/issues/15815
2025-04-30 08:38:37 +02:00
morris
733ff2bff6 Merge branch 'fix/fix_image_check_16_mega_bytes_limit_v5.4' into 'release/v5.4'
bootloader: fixed image cannot exceed 16MB issue (v5.4)

See merge request espressif/esp-idf!38846
2025-04-30 14:22:35 +08:00
Shu Chen
2423cd3257 Merge branch 'fix/fix_ot_set_mac_framecounter_v5.4' into 'release/v5.4'
backport: OpenThread features and bug fixes to v5.4

See merge request espressif/esp-idf!38816
2025-04-30 13:04:27 +08:00
Marius Vikhammer
93c7af19c7 Merge branch 'bugfix/linux_host_test_v5.4' into 'release/v5.4'
fix(linux): fix mixed linux host test issues found after CI docker image upgrade (v5.4)

See merge request espressif/esp-idf!38232
2025-04-30 13:02:25 +08:00
Aditya Patwardhan
f3617e69b6 Merge branch 'fix/build_failure_when_sha1_config_is_disabled_v5.4' into 'release/v5.4'
Fix build failure when CONFIG_MBEDTLS_SHA1_C is disabled (v5.4)

See merge request espressif/esp-idf!38815
2025-04-30 12:06:16 +08:00
Island
3e39358976 Merge branch 'bugfix/fix_cble50y25_207_v5.4' into 'release/v5.4'
Fixed MIC error disconnection when pairing with iOS devices on ESP32-C3 and ESP32-S3(edf923e) (v5.4)

See merge request espressif/esp-idf!38764
2025-04-30 11:16:53 +08:00
Marius Vikhammer
7781b4ac2b Merge branch 'fix/multi_core_race_cond_in_panic_handler_v5.4' into 'release/v5.4'
fix(panic_handler): Prevent race condition in panic handler (v5.4)

See merge request espressif/esp-idf!38664
2025-04-30 11:02:07 +08:00
armando
0255950b63 fix(bootloader): fixed image cannot exceed 16MB issue
flash 32-bit-addr is an experimental feature that has multiple
dependencies, e.g. flash chip vendor, etc.

If CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH can be enabled
successfully and tests are passed, we can allow images to be
placed on higher-than-16MB flash addresses
2025-04-30 10:33:10 +08:00
Rahul Tank
fec3a5f5bd fix(nimble): Corrected structure field name usage in examples 2025-04-29 21:44:57 +05:30
Adam Múdry
5929a8eacc feat: Add NVS generator check test for CRC of non-ASCII strings 2025-04-29 16:47:24 +02:00
yinqingzhao
c10d0fd84a fix(wifi): fix not update country in beacon 2025-04-29 21:44:38 +08:00
C.S.M
94cbc9bbac fix(i2c): Fix that fsm reset cause i2c scl frequency changed on esp32s2 2025-04-29 16:58:36 +08:00
C.S.M
30f60557ec fix(i2c): Fix some i2c coverity issue 2025-04-29 16:20:27 +08:00
C.S.M
d41636cfad fix(i2c): I2C should not clear bus in a nack state 2025-04-29 16:20:27 +08:00
Jonathan Swoboda
7079f03fb6 fix(i2c): Fix clear bus issue in legacy i2c driver,
Closes https://github.com/espressif/esp-idf/pull/15638
2025-04-29 16:20:27 +08:00
Rahul Tank
ddac3bfa71 fix(nimble): Add API to parse adv report for given type 2025-04-29 12:25:24 +05:30
Tan Yan Quan
cac14a0a61 feat(openthread): enable parent search function for MTD 2025-04-29 14:37:07 +08:00
morris
678ac6a83a Merge branch 'bugfix/remove_invalid_link_in_parlio_rx_example_v5.4' into 'release/v5.4'
fix(parlio_rx): remove invalid link in example readme (v5.4)

See merge request espressif/esp-idf!38750
2025-04-29 14:23:57 +08:00
Xu Si Yu
352ea8d02c feat(openthread): add a callback to handle rcp reset failure 2025-04-29 14:23:35 +08:00
Xu Si Yu
f1ae86f830 feat(openthread): dns server of border router bind unspecified netif 2025-04-29 14:23:34 +08:00
Xu Si Yu
0804c77a51 fix(openthread): use esp_netif_tcpip_exec when sending a trel message 2025-04-29 14:23:34 +08:00
Xu Si Yu
e134817623 feat(openthread): add a function to ensure monotonically increasing frame counter 2025-04-29 14:12:50 +08:00
Jiang Jiang Jian
ed9d55a0cb Merge branch 'refactor/sae_pt_flag_v5.4' into 'release/v5.4'
refactor(wifi): Optimize wifi bin size for station mode (Backport v5.4)

See merge request espressif/esp-idf!38306
2025-04-29 13:47:41 +08:00
laokaiyao
5750b0cc8f ci(esp32c5): disable c5 target tests on v5.4 2025-04-29 13:44:47 +08:00
laokaiyao
26a7397b35 fix(parlio_rx): remove invalid link in example readme 2025-04-29 13:44:47 +08:00
Kapil Gupta
ad4f3277db fix(esp_wifi): Use supplicant's internal SHA1 if not available from IDF 2025-04-29 11:10:56 +05:30
harshal.patil
05353d8d8f fix(mbedtls): Fix config dependencies when ROM mbedtls is used 2025-04-29 10:53:06 +05:30
harshal.patil
1f0aa66f4e fix(wpa_supplicant): Disable fastpbkdf2 when s/w and h/w SHA1 is disabled 2025-04-29 10:53:06 +05:30
harshal.patil
37dba24869 fix(esp-tls): Fix build failure when CONFIG_MBEDTLS_SHA1_C is disabled 2025-04-29 10:53:06 +05:30
Marius Vikhammer
ad821b3367 test(app_format): fixed buffer overflow in esp_app_format test 2025-04-29 11:59:36 +08:00
Marius Vikhammer
cb29838788 test(heap): fixed align_alloc issues in host test 2025-04-29 11:59:36 +08:00
Marius Vikhammer
b1d1494290 ci(linux): re-enable failures for test_pytest_linux jobs 2025-04-29 11:59:36 +08:00
Marius Vikhammer
204017af9f test(log): fixed buffer overflow in log host test fixture 2025-04-29 11:59:36 +08:00
Alexey Gerenkov
986a52a52f Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20250422_v5.4' into 'release/v5.4'
feat(tools): update openocd version to v0.12.0-esp32-20250422 (v5.4)

See merge request espressif/esp-idf!38799
2025-04-28 23:33:31 +08:00
Sudeep Mohanty
8423f5fc46 test(newlib): Added unit tests for usleep and sleep_for functions
This commit adds unit tests to verify the basic functionality of
usleep() and this_thread::sleep_for() std functions.
2025-04-28 17:07:52 +02:00
Stephen Noonan
ac386c7416 fix(newlib): usleep returning early
This commit updates usleep() to always sleep for the required sleep
period or more. This fixes a bug where the usleep() could sleep for less
than the request sleep period.

Closes https://github.com/espressif/esp-idf/pull/15132
2025-04-28 17:07:17 +02:00
Rahul Tank
837eecabca Merge branch 'bugfix/blufi_add_missing_adv_stop_v5.4' into 'release/v5.4'
fix(nimble): Added code for missing adv stop in blufi (v5.4)

See merge request espressif/esp-idf!38718
2025-04-28 19:19:18 +08:00
Sajia
36940f8c0e refactor(wifi): Optimize wifi bin size for station mode 2025-04-28 14:28:01 +05:30
Marius Vikhammer
204907a927 Merge branch 'feat/heap-update-to-latest-tlsf_v5.4' into 'release/v5.4'
feat(heap): Update to latest TLSF (v5.4)

See merge request espressif/esp-idf!38711
2025-04-28 15:58:25 +08:00
chenjianhua
96bde12558 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(edf923e)
- Fixed ble lib linkage issue
2025-04-28 14:10:14 +08:00
Chen Jian Hua
07233ed2d3 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(edf923e)
- Fixed MIC error disconnection when pairing with iOS devices


(cherry picked from commit 0df0b53b0a)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-04-28 14:09:56 +08:00
Jiang Jiang Jian
d0068c4203 Merge branch 'bugfix/fix_some_wifi_bugs_0427_v5.4' into 'release/v5.4'
fix(phy): fix phy data partition restoring default fails issue(Backport v5.4)

See merge request espressif/esp-idf!38770
2025-04-28 10:50:28 +08:00
Wang Meng Yang
e912a4f6ba Merge branch 'bugfix/l2cap_no_report_stop_server_evt_v5.4' into 'release/v5.4'
fix(bt): Fixed l2cap not reporting stop server completion event(v5.4)

See merge request espressif/esp-idf!38698
2025-04-28 08:19:43 +08:00
Adam Múdry
f7054acf46 feat(fatfs/diskio): Remove const from PARTITION VolToPart
Closes https://github.com/espressif/esp-idf/issues/14148
2025-04-28 01:21:48 +02:00
Jiang Jiang Jian
475301889e Merge branch 'fix/fix_usj_pad_retention_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix usj pad config bad retention (v5.4)

See merge request espressif/esp-idf!38746
2025-04-27 19:32:13 +08:00
Rahul Tank
012b9c7031 Merge branch 'bugfix/ios_hid_failure_v5.4' into 'release/v5.4'
fix(nimble): Update hid device example in nimble to work with iOS (v5.4)

See merge request espressif/esp-idf!38676
2025-04-27 18:36:25 +08:00
muhaidong
592e747c78 fix(wifi): fix some wifi bugs 250427
1. fix ersu compatibility issue
2. fix association timeout timer issue for wep shared auth
2025-04-27 15:18:21 +08:00
muhaidong
57fd0fe836 fix(phy): fix phy data partition restoring default fails issue
Closes https://github.com/espressif/esp-idf/issues/14698
2025-04-27 14:58:24 +08:00
Island
b9123d5554 Merge branch 'feat/add_sync_cte_type_in_pa_sync_v5.4' into 'release/v5.4'
Feat/add sync cte type in pa sync (v5.4)

See merge request espressif/esp-idf!38592
2025-04-27 14:11:35 +08:00
Island
fcd5c75e3a Merge branch 'feat/spi_ble_log_improvement_v5.4' into 'release/v5.4'
feat(ble): Improved SPI BLE Log functionality (v5.4)

See merge request espressif/esp-idf!38741
2025-04-27 14:04:32 +08:00
Island
0bfda8cfda Merge branch 'feat/optimize_cble50y24_109_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added throughput mode for BLE SPP example (v5.4)

See merge request espressif/esp-idf!38693
2025-04-27 10:15:05 +08:00
Alexey Gerenkov
abd28fb2be feat(tools): update openocd version to v0.12.0-esp32-20250422 2025-04-26 12:40:11 +02:00
Jiang Jiang Jian
5295bc39e5 Merge branch 'fix/update_os_time_struct_v5.4' into 'release/v5.4'
Modifying os_time_t datatype for platform and compiler independence

See merge request espressif/esp-idf!38736
2025-04-25 18:28:16 +08:00
Fu Hanxi
bed18219c6 ci: rename local idf_ci folder, avoid name collision 2025-04-25 11:26:15 +02:00
wuzhenghui
33aca83c63 change(ci): remove esp32c5 from readme since esp32c5 skipped CI build 2025-04-25 17:13:27 +08:00
wuzhenghui
dbd4934205 fix(esp_hw_support): specify optimize options to avoid dirtying L2 mem after L1D$ writeback 2025-04-25 17:13:27 +08:00
wuzhenghui
8cfe912053 fix(esp_hw_support): fix wrong APB clock freq on retenion 2025-04-25 17:13:26 +08:00
wuzhenghui
192ffcb894 feat(esp_hw_support): count pau backup time into sleep rejection judgment 2025-04-25 17:13:26 +08:00
wuzhenghui
41e6e25e2d feat(esp_hw_support): remeasure sleep_time_overhead_out if min_freq_mhz changed 2025-04-25 17:13:26 +08:00
wuzhenghui
81860c55d6 feat(esp_hw_support): use non-lock regi2c fast-up cpll/mpll enable process after sleep wakeup 2025-04-25 17:13:22 +08:00
wuzhenghui
c29cd7333b fix(esp_hw_support): fix usj pad config bad retention
Closes https://github.com/espressif/esp-idf/issues/15797
2025-04-25 15:52:10 +08:00
wuzhenghui
41dd6ef81a feat(esp_hw_support): optimize esp32p4 GPIO retention link 2025-04-25 15:26:05 +08:00
wuzhenghui
d9fdab14d0 fix(esp_hw_support): iomux slp_sel is not avaliable to isolate mspi pin leakage on esp32p4 2025-04-25 15:26:02 +08:00
Sudeep Mohanty
f56cf54183 fix(panic_handler): Prevent race condition in panic handler
This commit updates all RTC WDT contexts to be local instead of global
to avoid race conditions when both cores enter the panic handler
simultaneously.
2025-04-25 09:10:58 +02:00
Zhou Xiao
1771685866 feat(ble): Improved SPI BLE Log functionality
* Added checksum for every frame
* Added SPI slave transaction interval workaround
* Added SPI tx done isr issue workaround
* Turned buffer flush to a menuconfig and disabled by default
* Modified packet loss write operation and trigger condition
* Optimized buffer append efficiency for controller ISR


(cherry picked from commit 243705c143)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-25 14:53:46 +08:00
tarun.kumar
96e06bd2ca fix(esp_wifi): Modifying os_time_t datatype for platform and compiler independence 2025-04-25 11:21:31 +05:30
Rahul Tank
f3b3c4362c fix(nimble): Update hid device example in nimble to work with iOS 2025-04-25 10:43:09 +05:30
Wang Meng Yang
a15c978f08 Merge branch 'feat/add_api_get_avrc_status_v5.4' into 'release/v5.4'
feat(bt): Add API to get some information of Classic Bluetooth profile(v5.4)

See merge request espressif/esp-idf!38685
2025-04-25 12:05:15 +08:00
xiongweichao
be9713fe10 fix(bt): Fixed l2cap not reporting stop server completion event 2025-04-25 11:39:51 +08:00
morris
705592c719 Merge branch 'test/parlio_rx_cache_safe_v5.4' into 'release/v5.4'
Reenable parlio rx cache safe test (v5.4)

See merge request espressif/esp-idf!38683
2025-04-25 10:09:56 +08:00
Martin Vychodil
1c29e55deb Merge branch 'fix/nvs_logger_json_output_v5.4' into 'release/v5.4'
fix(nvs_flash/nvs_tool): Fix nvs_tool.py to output required values (v5.4)

See merge request espressif/esp-idf!38681
2025-04-25 00:46:40 +08:00
Jiang Jiang Jian
b4bbfe16c1 Merge branch 'fix/fix_dhcp_server_recv_decline_issue_v54' into 'release/v5.4'
fix(dhcp): fix dhcp server recv decline issue v54

See merge request espressif/esp-idf!38507
2025-04-24 19:52:13 +08:00
Jiang Jiang Jian
97af977d0b Merge branch 'bugfix/fix_some_wifi_bugs_0421_v5.4' into 'release/v5.4'
fix(wifi): fix some wifi bugs 0421 (v5.4)

See merge request espressif/esp-idf!38594
2025-04-24 19:46:22 +08:00
Rahul Tank
cb29590a70 fix(nimble): Added code for missing adv stop in blufi 2025-04-24 14:17:39 +05:30
Guillaume Souchere
826f8a5f53 feat(heap): Update to latest TLSF
- this new version of TLSF uses uintptr_t instead of unsigned int
  casting in tlsf_malloc_addr to allow proper use of the function
  on 64bit targets.
2025-04-24 10:39:41 +02:00
morris
0e584aa200 Merge branch 'bugfix/fix_esp32_touch_example_task_watchdog_issue_v5.4' into 'release/v5.4'
fix(legacy_touch): fixed touch read WDT issue on esp32 (v5.4)

See merge request espressif/esp-idf!38581
2025-04-24 16:37:19 +08:00
Aditya Patwardhan
7dfccfb5d0 Merge branch 'bugfix/crypto_reset_on_exit_v5.4' into 'release/v5.4'
fix(esp_system): reset crypto peripherals before device restart (v5.4)

See merge request espressif/esp-idf!38475
2025-04-24 15:27:57 +08:00
Marius Vikhammer
63d0aa7ecb Merge branch 'fix/dram_dma_aligned_attr_for_p4_v5.4' into 'release/v5.4'
fix(esp_common): Fix DRAM_DMA_ALIGNED_ATTR for ESP32-P4 (v5.4)

See merge request espressif/esp-idf!38643
2025-04-24 14:43:53 +08:00
Marius Vikhammer
ef797e0239 Merge branch 'fix/freertos_tickless_idle_tick_jump_v5.4' into 'release/v5.4'
fix(freertos): Fixed tickless idle tick count accounting (v5.4)

See merge request espressif/esp-idf!38510
2025-04-24 13:35:50 +08:00
morris
8770ad5fcc Merge branch 'fix/fix_p4_adc_reread_oneshot_error' into 'release/v5.4'
fix(ADC): fix P4 ADC oneshot error when reread  (v5.4)

See merge request espressif/esp-idf!38634
2025-04-24 13:13:26 +08:00
zwl
edaea6dc23 feat(ble): add configuration command during RF testing 2025-04-24 12:08:47 +08:00
zhangbowen
c9a7aea7d2 feat(bt/bluedroid): Added throughput mode for BLE SPP example 2025-04-24 12:08:01 +08:00
Shu Chen
70e0e18576 Merge branch 'fix/meshcop_udp_port_v5.4' into 'release/v5.4'
fix(openthread/meshcop): get right udp port for publishing meshcop-e (v5.4)

See merge request espressif/esp-idf!38659
2025-04-24 11:04:55 +08:00
Shu Chen
c0146964d2 Merge branch 'fix/ieee802154_tx_ack_timeout_crash_v5.4' into 'release/v5.4'
fix(802.15.4): fix 15.4 process for unsupported frame (v5.4)

See merge request espressif/esp-idf!38669
2025-04-24 10:58:44 +08:00
morris
50e1d46980 fix(parlio): reenable parlio rx driver cache safe test 2025-04-24 10:41:08 +08:00
morris
bd396ad476 fix(spi): allocate driver memory with caps explicitly 2025-04-24 10:41:08 +08:00
Island
e6885983fa Merge branch 'feat/support_136k_rc_clk_on_ble_sleep_v5.4' into 'release/v5.4'
Feat/support 136k rc clk on ble sleep (v5.4)

See merge request espressif/esp-idf!38621
2025-04-24 10:37:55 +08:00
xiongweichao
b59e8634f2 feat(bt): Add API to get some information of Classic Bluetooth profile 2025-04-24 10:34:07 +08:00
morris
7e11597089 Merge branch 'bugfix/fix_i2s_assign_and_check_sequence_v5.4' into 'release/v5.4'
fix(i2s): fixed i2s inappropriate check and assign sequence (v5.4)

See merge request espressif/esp-idf!38605
2025-04-24 10:32:48 +08:00
Jiang Jiang Jian
4854f415e4 Merge branch 'bugfix/fix_bt_access_ext_mem_in_intr_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed access external memory in isr context (v5.4)

See merge request espressif/esp-idf!38572
2025-04-24 10:29:45 +08:00
wangtao@espressif.com
c8e36049b1 fix(dhcp): fix dhcp server recv decline issue 2025-04-24 10:29:26 +08:00
hrushikesh.bhosale
6988a149b4 feat(nvs_tool): Test for print_minimal_json
Added the test for the print_minimal_json function
and setup_minimal_json function to setup the test.
2025-04-23 16:23:18 +02:00
hrushikesh.bhosale
f21a30fee2 fix(nvs_flash/nvs_tool): Fix nvs_tool.py to output required values
nvs_tool.py did not provide the minimal output support which outputs
the only necessary data.

nvs_tool.py minimal text ouptut, the deliminators were not handled
in the output

Closes https://github.com/espressif/esp-idf/issues/15274
2025-04-23 16:23:18 +02:00
Rahul Tank
81c34b09f0 Merge branch 'fix/pawr_docs_v5.4' into 'release/v5.4'
feat(nimble):Added tutorials for PAwR examples (v5.4)

See merge request espressif/esp-idf!38622
2025-04-23 19:44:40 +08:00
Rahul Tank
b5802d7230 Merge branch 'feat/pawr_bugfix_v5.4' into 'release/v5.4'
fix(nimble): Fix sync handle assignment for pawr connection (v5.4)

See merge request espressif/esp-idf!38502
2025-04-23 19:35:28 +08:00
zwx
dcb1e52988 fix(802.15.4): fix 15.4 process for unsupported frame 2025-04-23 19:01:34 +08:00
Island
69173b1864 Merge branch 'bugfix/fix_some_ble_bugs_250331_esp32c3_v5.4' into 'release/v5.4'
Fixed some BLE bugs 250331 on esp32c3 (v5.4)

See merge request espressif/esp-idf!38580
2025-04-23 18:13:52 +08:00
Tan Yan Quan
98363edfaf fix(openthread/meshcop): get right udp port for publishing meshcop-e
* esp-openthread: thread_zigbee/esp-openthread@ad81e1b23
* openthread: espressif/openthread@8c30b93fe
* esp-idf: espressif/esp-idf@a97879b71
2025-04-23 10:10:35 +00:00
Mahavir Jain
5cdc53df23 fix(esp_system): reset crypto peripherals before device restart
This change addresses a rare but critical issue observed on certain
ESP32-C3 and ESP32-S3 devices, where secure boot verification
intermittently fails due to improper cleanup of crypto peripherals
during a restart.

Background – Restart Behavior in IDF
------------------------------------
In ESP-IDF, when the device restarts (via `esp_restart()` or due to a
panic/exception), a partial peripheral reset is performed followed by a
CPU reset. However, until now, crypto-related peripherals were not
included in this selective reset sequence.

Problem Scenario
----------------
If a restart occurs while the application is in the middle of a bignum
operation (i.e., using the MPI/Bignum peripheral), the ROM code may
encounter an inconsistent peripheral state during the subsequent boot.
This leads to transient RSA-PSS secure boot verification failures.

Following such a failure, the ROM typically triggers a full-chip reset
via the watchdog timer (WDT). This full reset clears the crypto
peripheral state, allowing secure boot verification to succeed on the
next boot.

Risk with Aggressive Revocation
-------------------------------
If secure boot aggressive revocation is enabled (disabled by default in
IDF), this transient verification failure could mistakenly lead to
revocation of the secure boot digest.

If your product configuration has aggressive revocation enabled,
applying this fix is strongly recommended.

Frequency of Occurrence
-----------------------
The issue is rare and only occurs in corner cases involving
simultaneous use of the MPI peripheral and an immediate CPU reset.

Fix
---
This fix ensures that all crypto peripherals are explicitly reset prior
to any software-triggered restart (including panic scenarios),
guaranteeing a clean peripheral state for the next boot and preventing
incorrect secure boot behavior.
2025-04-23 17:53:09 +08:00
Marius Vikhammer
a97879b71c Merge branch 'feature/add_core_num_def_for_linux_v5.4' into 'release/v5.4'
feat(soc): Adds core_num definition for Linux target (v5.4)

See merge request espressif/esp-idf!38485
2025-04-23 17:38:08 +08:00
Jiang Jiang Jian
ee317c3d6f Merge branch 'bugfix/sae_send_confirm_v5.4' into 'release/v5.4'
fix(esp_wifi): Fix send_confirm according to specification provided by IEEE 802.11 (v5.4)

See merge request espressif/esp-idf!38434
2025-04-23 16:37:50 +08:00
Roman Leonov
b760531d5b fix(usb_host): Correctly initialize set pipe ep char 2025-04-23 10:09:18 +02:00
Roman Leonov
56daed6169 fix(hcd): Added delay to slow down scatter-gather dma for ls device via fs hubs 2025-04-23 10:09:18 +02:00
Konstantin Kondrashov
5c3910d8ca fix(esp_common): Fix DRAM_DMA_ALIGNED_ATTR for P4 2025-04-23 10:37:00 +03:00
gaoxu
c04ae03729 fix(ADC): fix P4 ADC oneshot error when reread 2025-04-23 11:33:06 +08:00
linruihao
224e9feed9 fix(bt/controller): Fixed access external memory in isr context 2025-04-23 11:25:48 +08:00
Jin Cheng
529a471a55 fix(bt/controller): update libbtdm_app.a
- fixed errors in the coexistance of ACL and SCO
- fixed dynamic priority config error in dual mode
2025-04-23 11:25:48 +08:00
Island
180ee9ef0e Merge branch 'feat/optimize_cble50y24_111_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added BLE eddystone sender example (v5.4)

See merge request espressif/esp-idf!38158
2025-04-23 10:32:30 +08:00
morris
15da3ccc52 Merge branch 'ci/disable_c5_target_test_on_v5.4' into 'release/v5.4'
ci(esp32c5): disable esp32c5 build and target test on v5.4

See merge request espressif/esp-idf!38587
2025-04-23 09:56:36 +08:00
Abhinav Kudnar
2a86fcd4e5 feat(nimble):Added tutorials for PAwR examples 2025-04-22 19:18:03 +08:00
Jin Chen
b0e1c7b244 feat(ble): support ble sleep using 136 kHz RC on ESP32-H2
(cherry picked from commit 6c8ee69151)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:50 +08:00
Jin Chen
bc5962499d feat(ble): support ble sleep using 136 kHz RC on ESP32-C6
(cherry picked from commit 718dd7a87a)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:48 +08:00
Jin Chen
3dc694f167 feat(ble): support ble sleep using 136 kHz RC on ESP32-C5
(cherry picked from commit cb8ea7951c)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:45 +08:00
Jin Chen
5226629d18 feat(ble): support ble sleep using 136 kHz RC on ESP32-C2
(cherry picked from commit 73f1084bf8)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:43 +08:00
Sudeep Mohanty
8f2f1abdd5 test(freertos): Added a unit test for tickless idle tick jump scenario
This commit adds a unit test to test that tickless idle mode does not
cause an unexpected jump in tick count after tickless idle mode is
exited.
2025-04-22 16:32:08 +08:00
Sudeep Mohanty
3e18049461 fix(freertos): Fixed tickless idle tick count accounting
This commit fixes an issue where the FreeRTOS kernel does not account
for the pended ticks occuring during automatic light-sleep mode and
hence causing a jump in the tick count at a later stage in the
application lifetime.

Closes: https://github.com/espressif/esp-idf/issues/15642
2025-04-22 16:32:08 +08:00
laokaiyao
ecf073e650 ci: disable esp32c5 build and target test on v5.4 2025-04-22 16:07:50 +08:00
laokaiyao
e5e713892b fix(i2s): add check for the minimum sample rate
Closes https://github.com/espressif/esp-idf/issues/15659
2025-04-22 15:37:47 +08:00
laokaiyao
f22cd54760 fix(i2s): reset the dma buf_size while allocation failed
Closes https://github.com/espressif/esp-idf/issues/15648
2025-04-22 15:19:39 +08:00
Jiang Jiang Jian
bb60389063 Merge branch 'esp32/run_panic_debug_v5.4' into 'release/v5.4'
fix(esp32): Fixed qa program may fail issue when cpu 240m (v5.4)

See merge request espressif/esp-idf!37231
2025-04-22 15:06:11 +08:00
morris
93cff127be Merge branch 'fix/gpio_pull_enable_disable_strategy_v5.4' into 'release/v5.4'
fix(i2c,mcpwm): fix gpio pull strategy (v5.4)

See merge request espressif/esp-idf!38565
2025-04-22 13:33:33 +08:00
Island
26b9ba6b63 Merge branch 'bugfix/fix_some_ble_bugs_2503_v5.4' into 'release/v5.4'
Bugfix/fix some ble bugs 2503 (v5.4)

See merge request espressif/esp-idf!38291
2025-04-22 11:49:13 +08:00
zhangyanjiao
53164297d7 fix(wifi): update the wifi lib for espnow and lr issues 2025-04-22 11:06:58 +08:00
zhangyanjiao
c5a61099c1 fix(docs): update max data length in espnow doc 2025-04-22 11:06:58 +08:00
liuning
5bf37234b8 feat(docs): update connectionless module window syncronization documentation 2025-04-22 11:06:58 +08:00
zhangyanjiao
41fed6aec5 fix(wifi): fix the noise floor error on ESP32C5
Closes https://github.com/espressif/esp-idf/issues/15594
2025-04-22 11:06:58 +08:00
zhangyanjiao
56257439a2 fix(wifi/vendor): separate the lr bit in phy mode for station and softAP
Closes https://github.com/espressif/esp-idf/issues/9978
2025-04-22 11:06:58 +08:00
zhangyanjiao
133d40d6d1 fix(wifi): Fixed the scan information error in LR only mode 2025-04-22 11:06:58 +08:00
zhangyanjiao
ab71248476 fix(wifi): Fixed the max log level not work when it exceeds the default log level 2025-04-22 11:06:58 +08:00
zhangyanjiao
8bee78e5ea docs(wifi): update the description for esp_mesh_send() return value
Closes https://github.com/espressif/esp-idf/issues/14440
2025-04-22 11:06:58 +08:00
zhangyanjiao
c9cc85b68c fix(wifi): fix the ESPNOW data length issue and connection issue
1. Changed the max data length to 1470 bytes for ESP-NOW v2.0
2. Added timer to send wake null after STA received assoc response
2025-04-22 11:06:58 +08:00
zhangyanjiao
e9d8241b53 fix(wifi): Update the doc for espnow add peer 2025-04-22 11:06:58 +08:00
zhangyanjiao
1a7ed6c1df fix(wifi): fixed the espnow data length error in example 2025-04-22 11:06:58 +08:00
chaijie@espressif.com
bb8a86856a fix(esp32): Fixed qa program may fail issue when cpu 240m (v5.4) 2025-04-22 10:24:27 +08:00
Chen Jian Hua
cc336b0d88 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(a684dd5)
- Fixed clear legacy adv error when adv not exist
- Disable anonymous extended adv reporting
- Fixed BLE assert lld_adv.c 2992
- Fixed heap assert due to adv data buffer double freeing
- Fixed BLE 0x08 disconnect when the win size is greater than half of the conn interval


(cherry picked from commit 4602665e5d)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-04-22 09:58:34 +08:00
laokaiyao
8e6a7845b7 fix(touch): fixed tie option take no effect 2025-04-21 20:45:50 +08:00
Jiang Jiang Jian
be719bfe2d Merge branch 'bugfix/pmkid_password_mismatch_regression_v5.4' into 'release/v5.4'
fix(wifi): Avoid writing to NVS if station configuration is not changed (Backport v5.4)

See merge request espressif/esp-idf!38486
2025-04-21 17:41:38 +08:00
Zhi Wei Jian
6098df35ec feat(ble/bluedroid): Add sync_cte_type in creat_periodic_adv_sync function
(cherry picked from commit eb647d10c6)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-04-21 17:03:36 +08:00
Zhi Wei Jian
a30d47b6fe fix(ble/bluedroid): Fixed BLE_FEAT_CREATE_SYNC_ENH define error in bluedroid host
(cherry picked from commit cf6135c990)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-04-21 17:03:33 +08:00
Roland Dobai
17e79ef8b6 Merge branch 'bugfix/linux_cert_bundle_build_warn_v5.4' into 'release/v5.4'
fix(tools): suppress GNU bin-utils warning about executable stack (v5.4)

See merge request espressif/esp-idf!38345
2025-04-21 16:45:44 +08:00
Marius Vikhammer
7256deafc9 Merge branch 'fix/lp_wakeup_cause_bits_accumulation_v5.4' into 'release/v5.4'
fix(ulp): Fix accumulation of wakeup cause bits in ULP (v5.4)

See merge request espressif/esp-idf!38561
2025-04-21 16:42:47 +08:00
laokaiyao
f1903f095a fix(legacy_touch): fixed the concurrent issue in esp32 touch driver 2025-04-21 14:57:29 +08:00
laokaiyao
a9f8ed3bbf fix(touch): fixed touch read WDT issue on esp32
Closes https://github.com/espressif/esp-idf/issues/15629
2025-04-21 14:47:26 +08:00
Island
2038923cc4 Merge branch 'fix/blemesh25-92_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed issues with decrypt failed when resending messages (v5.4)

See merge request espressif/esp-idf!38560
2025-04-21 14:22:04 +08:00
Tan Yan Quan
781123eb08 fix(openthread): check state for ot wake 2025-04-21 10:45:44 +08:00
Tan Yan Quan
72c4063d1a fix(openthread): relax CSL accuracy default value 2025-04-21 10:45:44 +08:00
Island
3ad36321ea Merge branch 'change/ble_update_lib_20250417_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250417 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!38545
2025-04-21 10:40:38 +08:00
Chen Jichang
cbc6382b26 fix(i2c,mcpwm): fix gpio pull strategy
Closes https://github.com/espressif/esp-idf/issues/15774
2025-04-21 10:35:52 +08:00
Sarvesh Bodakhe
c74773c091 fix(wifi): Avoid writing to NVS if station configuration is not changed
Fixes the regression introduced by f8b1c0976a

Co-authored-by: yinqingzhao <yinqingzhao@espressif.com>
2025-04-19 17:33:39 +05:30
Konstantin Kondrashov
93750520fe fix(ulp): Fix accumulation of wakeup cause bits in ULP
Closes https://github.com/espressif/esp-idf/issues/15794
2025-04-18 15:52:28 +03:00
Luo Xu
5c65747537 fix(ble_mesh): fixed issues with decrypt failed when resending messages
(cherry picked from commit 4803cea3cc)

Co-authored-by: luoxu <luoxu@espressif.com>
2025-04-18 20:23:49 +08:00
Shen Weilong
de00b516b8 change(ble): [AUTO_MR] Update lib_esp32c5 to cd6ba0ec 2025-04-18 19:59:48 +08:00
Alexey Gerenkov
438b6cf3e6 Merge branch 'disable_apptrace_test_on_c5_v5.4' into 'release/v5.4'
ci(change): disable esp32c5 apptrace test (v5.4)

See merge request espressif/esp-idf!38528
2025-04-18 15:29:30 +08:00
Shen Wei Long
ca02c5ec24 change(ble): [AUTO_MR] Update lib_esp32c6 to cd6ba0ec
(cherry picked from commit a89916eef4)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-04-18 14:10:14 +08:00
Shen Wei Long
5c3edd7a74 change(ble): [AUTO_MR] Update lib_esp32h2 to cd6ba0ec
(cherry picked from commit d48cc9ce2a)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-04-18 14:10:12 +08:00
morris
af3fa8731f Merge branch 'refactor/gdma_set_iram_safe_in_runtime_v5.4' into 'release/v5.4'
refactor(gdma): use run-time iram-safe config (v5.4)

See merge request espressif/esp-idf!38459
2025-04-18 13:26:42 +08:00
Island
017480b377 Merge branch 'change/ble_update_lib_20250414_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250414 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!38494
2025-04-18 11:07:01 +08:00
Erhan Kurubas
80ec596e1e ci(change): disable esp32c5 apptrace test 2025-04-17 18:57:10 +02:00
Jiang Jiang Jian
274925fa8a Merge branch 'bugfix/pmf_enabled_sae_query_v5.4' into 'release/v5.4'
fix(wifi): SA Query responses not transmitted (Backport v5.4)

See merge request espressif/esp-idf!38245
2025-04-17 22:44:28 +08:00
Jiang Jiang Jian
dbfa8ba5b2 Merge branch 'fix/fix_uart_console_broken_after_sleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): fixed gpio sleep switching filling junk data to the console UART FIFO (v5.4)

See merge request espressif/esp-idf!38444
2025-04-17 17:14:33 +08:00
Jiang Jiang Jian
79d965f16a Merge branch 'change/allow_keep_sar_poweron_in_light_sleep_v5.4' into 'release/v5.4'
change(esp_hw_support): allow sar power keep on during lightsleep (v5.4)

See merge request espressif/esp-idf!38454
2025-04-17 17:14:11 +08:00
Jiang Jiang Jian
9f8548bb2d Merge branch 'feat/enable_esp32p4_auto_clock_gate_v5.4' into 'release/v5.4'
feat(esp_hw_support): enable auto clock gating for multi peripherals (v5.4)

See merge request espressif/esp-idf!38443
2025-04-17 17:13:40 +08:00
Jiang Jiang Jian
9c9d5cc1a2 Merge branch 'fix/esp32p4_xtal_path_not_on_top_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32p4 xtal_xpd depends on TOP power domain (v5.4)

See merge request espressif/esp-idf!38452
2025-04-17 17:03:47 +08:00
morris
0be344409b Merge branch 'fix/fix_mmu_map_concurrent_issue_v5.4' into 'release/v5.4'
mmu: fix mmu map concurrent issue (v5.4)

See merge request espressif/esp-idf!38411
2025-04-17 15:59:06 +08:00
Wang Meng Yang
4ad27c76c6 Merge branch 'feat/add_l2cap_register_event_v5.4' into 'release/v5.4'
feat(bt): Added events for l2cap register and unregister vfs(v5.4)

See merge request espressif/esp-idf!38421
2025-04-17 14:40:32 +08:00
Abhinav Kudnar
5a6072d035 fix(nimble): Fix sync handle assignment for pawr connection 2025-04-17 14:06:58 +08:00
Jiang Jiang Jian
65e0d49246 Merge branch 'fix/fix_current_leakage_after_ext_osc_detect_failed_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix current leakage if ext32k slow clock source not exists (v5.4)

See merge request espressif/esp-idf!38439
2025-04-17 11:04:57 +08:00
Zhou Xiao
9ef1c15bba fix(ble): remove null pointer assert in npl event deinit
(cherry picked from commit ece108c0bf)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:56 +08:00
Zhou Xiao
75343d25d0 change(ble): bugs fixed on spi ble log
* removed spi master in iram select for flash only firmware
* fixed memory issue in transaction init function
* fixed memory issue in transaction deinit function


(cherry picked from commit 7c3b9fa56f)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:54 +08:00
Zhou Xiao
46b786d79a feat(ble): support configurable rxbuf opt feat on ESP32-C6
(cherry picked from commit 5fbbec8655)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-17 10:54:52 +08:00
Zhou Xiao
e90390a90a feat(ble): support configurable rxbuf opt feat on ESP32-H2
(cherry picked from commit 4937d3c883)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-17 10:54:49 +08:00
Zhou Xiao
0cc6e2bb36 feat(ble): use new section for ble sleep on ESP32-C2
(cherry picked from commit ce4e012c8b)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-17 10:54:47 +08:00
Zhou Xiao
ebef86f435 change(ble): [AUTO_MR] Update lib_esp32c2 to fca2b9ea
(cherry picked from commit 09467baed0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:45 +08:00
Zhou Xiao
6836bd9870 change(ble): [AUTO_MR] Update lib_esp32c6 to 76549818
(cherry picked from commit e2d1a5509e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:43 +08:00
Zhou Xiao
eecf74a7c9 change(ble): [AUTO_MR] Update lib_esp32h2 to 76549818
(cherry picked from commit c11bb1ddd0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:41 +08:00
akshat
cd3a072c0f fix(wifi): Fix occasional dropping of SA Query responses by SoftAP 2025-04-16 22:24:28 +05:30
Konstantin Kondrashov
295535985c feat(soc): Adds core_num definition for Linux target
Closes https://github.com/espressif/esp-idf/issues/15758
2025-04-16 18:32:18 +03:00
Jiang Jiang Jian
395295cc35 Merge branch 'feat/add_svc_info_in_sdf_v5.4' into 'release/v5.4'
Add extended SSI support for NAN Services (Backport v5.4)

See merge request espressif/esp-idf!38302
2025-04-16 20:02:44 +08:00
morris
2c376ff99f refactor(drivers): refactor the iram-safe option of the gdma peripherals
Closes https://github.com/espressif/esp-idf/issues/15771
2025-04-16 17:09:04 +08:00
morris
7bcb7248bb feat(gdma): support allocate cache safe ISR for channels separately 2025-04-16 16:44:41 +08:00
wuzhenghui
e22c4a146d change(esp_hw_support): allow sar power keep on during lightsleep
Closes https://github.com/espressif/esp-idf/issues/12426
2025-04-16 15:51:48 +08:00
Mahavir Jain
7ddb2ba0a0 Merge branch 'feat/update_mbedtls_3.6.3_v5.4' into 'release/v5.4'
feat(component/mbedtls): update to upstream v3.6.3 (v5.4)

See merge request espressif/esp-idf!38178
2025-04-16 15:49:09 +08:00
wuzhenghui
d2755374e0 fix(esp_hw_support): fix esp32p4 xtal_xpd depends on TOP power domain 2025-04-16 15:37:11 +08:00
wuzhenghui
76d021ad11 fix(esp_hw_support): fixed gpio sleep switching filling junk data to the console UART FIFO 2025-04-16 15:23:27 +08:00
wuzhenghui
7643f77225 feat(esp_hw_support): enable auto clock gating for multi peripherals 2025-04-16 15:08:51 +08:00
wuzhenghui
ba88b91e28 fix(esp_hw_support): fix unused OSC source deinit breaks XTAL32K configuration 2025-04-16 14:56:49 +08:00
wuzhenghui
54c4606111 fix(esp_hw_support): fix current leakage if ext32k slow clock source not exists 2025-04-16 14:56:12 +08:00
Shreyas Sheth
8221f0b01b ci(wifi): Add build test for with wpa3 disabled for station and softap 2025-04-16 11:56:20 +05:30
Shreyas Sheth
8b979114e0 fix(esp_wifi): Fix send_confirm according to specification provided by IEEE 802.11 2025-04-16 11:56:20 +05:30
Shu Chen
a7cc6804df Merge branch 'feature/add_ot_cli_ci_case_v5.4' into 'release/v5.4'
feat(openthread): add openthread ci ssed case v5.4

See merge request espressif/esp-idf!38256
2025-04-16 10:15:13 +08:00
morris
b8bb557085 Merge branch 'feat/allow_rmt_tx_channel_to_switch_other_gpios_v5.4' into 'release/v5.4'
feat(rmt_tx): allow to switch gpio in tx channal (v5.4)

See merge request espressif/esp-idf!38394
2025-04-16 10:12:07 +08:00
Ashish Sharma
605206b69f feat(mbedtls): new config to allow weak cert verification 2025-04-16 09:50:24 +08:00
Ashish Sharma
7578913742 feat(mbedtls): update to version 3.6.3 2025-04-16 09:50:24 +08:00
Mahavir Jain
87947712af fix(tools): suppress GNU bin-utils warning about executable stack
Newer GNU bin-utils version 2.39 has started emitting a warning
about an executable stack region for Linux target build:

/usr/bin/ld: warning: x509_crt_bundle.S.o: missing .note.GNU-stack section implies executable stack

Fix the issue by adding appropriate "noexecute" attribute for stack
section.
2025-04-15 21:55:30 +08:00
xiongweichao
93bd316b3a fix(bt): fixed spp not reporting write event 2025-04-15 19:03:02 +08:00
xiongweichao
63ca09cacd fix(bt): Fixed the issue with l2cap not using dynamic memory 2025-04-15 19:02:33 +08:00
xiongweichao
ebce1de0fc fix(bt): Fixed write_read task stack overflow in l2cap example 2025-04-15 19:02:28 +08:00
xiongweichao
3d2faed4c6 feat(bt): Added events for l2cap register and unregister vfs 2025-04-15 19:02:22 +08:00
armando
873cde487c test(system): increased 200B memory leak thresh due to mmu mmap mutex
200B to extend the thresh, real increase to the memory usage will be smaller
2025-04-15 14:22:48 +08:00
armando
256dbafe15 test(mmu): added esp_mmu_map concurrency test 2025-04-15 14:21:51 +08:00
armando
56cd01899c fix(mmu): fixed esp_mmu_map concurrent issue and add related docs 2025-04-15 14:21:46 +08:00
morris
ef1a5075f5 Merge branch 'refactor/ana_cmpr_driver_v5.4' into 'release/v5.4'
refactor(ana_cmpr): enhanced the driver implementation (v5.4)

See merge request espressif/esp-idf!38388
2025-04-15 13:15:23 +08:00
Marius Vikhammer
6b617c54c2 Merge branch 'bugfix/p4_lpwdt_efuse_v5.4' into 'release/v5.4'
fix(lpwdt): P4 LP-WDT now takes into account the EFUSE_WDT_DELAY for the timeout (v5.4)

See merge request espressif/esp-idf!38392
2025-04-15 12:28:38 +08:00
Wang Meng Yang
26e415dcb4 Merge branch 'feature/add_profile_stat_v5.4' into 'release/v5.4'
feat(bt): Add API to get profile status(v5.4)

See merge request espressif/esp-idf!38274
2025-04-15 08:13:24 +08:00
Chen Jichang
7be85fd8ba feat(rmt_tx): allow to switch gpio in tx channal 2025-04-14 18:38:45 +08:00
morris
d20d3c7a60 fix(ana_cmpr): ETM event not work for Unit 1 2025-04-14 17:13:48 +08:00
Island
8e473c6bed Merge branch 'bugfix/fix_ble_controller_only_error_if_hci_uart_enabled_v5.4' into 'release/v5.4'
fix(ble/controller): Fixed controller flash only bug if hci-uart is enabled (v5.4)

See merge request espressif/esp-idf!38148
2025-04-14 17:12:53 +08:00
morris
9d3b69fabb Merge branch 'doc/touch_element_support_esp32s3_v5.4' into 'release/v5.4'
docs(touch): build the touch element doc for esp32s3 (v5.4)

See merge request espressif/esp-idf!38390
2025-04-14 16:48:01 +08:00
Tan Yan Quan
86db777bd2 feat(openthread): add esp_system dependency for SSED CI 2025-04-14 16:37:52 +08:00
Tan Yan Quan
94af9e2a54 feat(openthread): relax conditions for trel case approval 2025-04-14 16:37:47 +08:00
Tan Yan Quan
400d7efaed feat(openthread): add openthread ci ssed case 2025-04-14 16:37:40 +08:00
Tan Yan Quan
c66fe0a72c feat(openthread): use freertos timer for debug logs 2025-04-14 16:37:35 +08:00
xiongweichao
ecf646cefc feat(bt): Add API to get profile status 2025-04-14 15:43:22 +08:00
Marius Vikhammer
8e1f47ef04 fix(lpwdt): P4 LP-WDT now takes into account the EFUSE_WDT_DELAY forthe timeout 2025-04-14 14:52:15 +08:00
morris
794f5b04a9 docs(touch): build the touch element doc for esp32s3
Closes https://github.com/espressif/esp-idf/issues/15755
2025-04-14 14:49:42 +08:00
akshat
90c008fe8c feat(esp_wifi): Add extended SSI support for NAN Services 2025-04-14 10:57:23 +05:30
morris
756cd17c61 Merge branch 'contrib/github_pr_15484_v5.4' into 'release/v5.4'
fix(twai): fixed twai assert fail during recover (GitHub PR) (v5.4)

See merge request espressif/esp-idf!37988
2025-04-14 13:23:02 +08:00
Alexey Gerenkov
72de7111cc Merge branch 'fix/coredump_uart_checksum_error_v5.4' into 'release/v5.4'
Fix/coredump uart checksum error (v5.4)

See merge request espressif/esp-idf!38364
2025-04-11 20:54:14 +08:00
Rocha Euripedes
9103ce5d03 Merge branch 'fix/fix-test-socks-transport_v5.4' into 'release/v5.4'
fix(tcp_transport): Fix test for socks transport (v5.4)

See merge request espressif/esp-idf!38293
2025-04-11 20:26:54 +08:00
Kapil Gupta
a18ce5df2d Merge branch 'bugfix/roaming_app_issues_v5.4' into 'release/v5.4'
fix(wifi): Fix some issues observed in roaming app (v5.4)

See merge request espressif/esp-idf!37414
2025-04-11 19:34:05 +08:00
Kapil Gupta
d255e7e7b5 fix(esp_wifi): Fix some compilation errors in roaming app 2025-04-11 15:49:12 +05:30
Kapil Gupta
5574205935 fix(esp_wifi): Removed unnecessary handlers to cleanup 2025-04-11 15:49:06 +05:30
Kapil Gupta
2b495713b2 fix(esp_wifi): Roaming app, sync api naming 2025-04-11 15:47:19 +05:30
Kapil Gupta
e5915c3ce3 fix(esp_wifi): Some more cleanup for roaming app 2025-04-11 15:47:17 +05:30
Kapil Gupta
8ed1cf8050 fix(esp_wifi): moving around roaming app code a bit 2025-04-11 15:46:25 +05:30
Kapil Gupta
7c94365ce9 fix(roaming_app): Add get set config params for the app 2025-04-11 15:46:25 +05:30
Kapil Gupta
e296094b00 fix(wifi): Provide a config option to skip IP renew during roam 2025-04-11 15:46:25 +05:30
Kapil Gupta
84ae3dc848 fix(esp_wifi): Set minimum scan time to 30ms in roaming app 2025-04-11 15:46:25 +05:30
Kapil Gupta
516551adc4 fix(wifi): Fix some issues observed in roaming app 2025-04-11 15:46:25 +05:30
Rahul Tank
b4ebe7a0af Merge branch 'fix/fix_incorrect_ota_address_assignment_v5.4' into 'release/v5.4'
fix(nimble): Fix incorrect OTA address type assignment (v5.4)

See merge request espressif/esp-idf!38348
2025-04-11 14:06:58 +08:00
morris
5190ce55a0 Merge branch 'fix/usb-hal-dwc-host-channel-num_v5.4' into 'release/v5.4'
fix(usb/hal/dwc): Correct host channel number calculation (backport v5.4)

See merge request espressif/esp-idf!37367
2025-04-11 11:27:34 +08:00
Erhan Kurubas
1ddd160dd2 fix(coredump): make sure consistency with uart data and calculated checksum
Closes https://github.com/espressif/esp-idf-monitor/issues/23
2025-04-10 16:27:25 +02:00
Martin Vychodil
a542b2b36a Merge branch 'fix/fatfs_use_dyn_buf_kconfig_mistake_v5.4' into 'release/v5.4'
fix(fatfs): Mistake in Kconfig for FATFS_USE_DYN_BUFFERS

See merge request espressif/esp-idf!38347
2025-04-10 20:30:45 +08:00
diplfranzhoepfinger
30d871d206 fix(twai): fixed twai assert fail when recover
driver try start new frame in ISR however already bus off

Closes https://github.com/espressif/esp-idf/issues/9697
2025-04-10 20:08:34 +08:00
Shreeyash
5b796a93e4 fix(nimble): Fix incorrect OTA address assignment 2025-04-10 15:15:36 +05:30
Adam Múdry
338dab5358 fix(fatfs): Mistake in Kconfig for FATFS_USE_DYN_BUFFERS 2025-04-10 10:53:19 +02:00
Wang Meng Yang
1bdd5daa83 Merge branch 'fix/some_issues_in_bt_controller_v5.4' into 'release/v5.4'
fix(bt): fixed some issues in bt controller(backport v5.4)

See merge request espressif/esp-idf!38331
2025-04-10 16:45:08 +08:00
Jiang Jiang Jian
24a92a3b23 Merge branch 'feat/eap_domain_check_v5.4' into 'release/v5.4'
esp_wifi: Add EAP domain validation support (v5.4)

See merge request espressif/esp-idf!38278
2025-04-10 14:59:41 +08:00
Jiang Jiang Jian
b79dcab1ec Merge branch 'feature/add_ds_param_in_probe_req_v5.4' into 'release/v5.4'
Add DS parameter in probe requests from STA (Backport v5.4)

See merge request espressif/esp-idf!38310
2025-04-10 13:53:22 +08:00
Shu Chen
a7f74bb220 Merge branch 'fix/ldgen_section_name_v54' into 'release/v5.4'
fix(ldgen): extend section name regex to include '_' (v5.4)

See merge request espressif/esp-idf!38323
2025-04-10 11:15:11 +08:00
morris
220a036318 Merge branch 'bugfix/remove_broken_link_for_wifi_expansion_v5.4' into 'release/v5.4'
bugfix: Remove the broken link in wifi-expansion.rst (v5.4)

See merge request espressif/esp-idf!38332
2025-04-10 10:41:40 +08:00
Rahul Tank
bf1a803795 Merge branch 'bugfix/fix_sscanf_usage_v5.4' into 'release/v5.4'
fix(nimble): Updated sscanf usage in examples to work for all versions (v5.4)

See merge request espressif/esp-idf!38021
2025-04-10 09:16:06 +08:00
Rahul Tank
297ebc7db7 fix(nimble): Updated sscanf usage in examples to work for all versions 2025-04-09 18:27:58 +05:30
Zhang Shuxian
2586e86cec bugfix: Remove the broken link in wifi-expansion.rst 2025-04-09 19:05:07 +08:00
gongyantao
af494b8b4e fix(bt): fixed some issues in bt controller
- add check for Wi-Fi channel
- fix the incorrect unit of duration_min in cpb tx
- recalculate the channel map when afh is enabled
- fix incorrect vendor event count causing an assertion failure
2025-04-09 18:58:44 +08:00
morris
c94014cc3d Merge branch 'fix/flash_encryption_verify_write_etc_v5.4' into 'release/v5.4'
fix(spi_flash): Fix flash encryption write verify (backport v5.4)

See merge request espressif/esp-idf!38269
2025-04-09 17:12:50 +08:00
Alexey Lapshin
6ad902d5be fix(ldgen): extend section name regex to include '_' (e.g.: used by picolibc) 2025-04-09 16:44:25 +08:00
Rahul Tank
5e38aaeb22 Merge branch 'bugfix/handle_missing_unlock_v5.4' into 'release/v5.4'
fix(nimble): Fixed one missing ble_hs_unlock() (v5.4)

See merge request espressif/esp-idf!38259
2025-04-09 13:24:37 +08:00
morris
89e81dfdc9 Merge branch 'fix/i2c_race_condition_etc_v5.4' into 'release/v5.4'
fix(i2c_master): Fix i2c master race condition issue, etc. (backport v5.4)

See merge request espressif/esp-idf!38265
2025-04-09 10:55:54 +08:00
C.S.M
9282eec541 fix(spi_flash): Add suspend check on esp32c6 and esp32h2 for some reason 2025-04-09 10:10:47 +08:00
Kapil Gupta
0cb892d6a2 Merge branch 'feature/github_pull_15073_v5.4' into 'release/v5.4'
feat(wpa_supplicant): Add optimized PSK implementation (v5.4)

See merge request espressif/esp-idf!38104
2025-04-09 00:21:40 +08:00
Kapil Gupta
582c2d8d4c fix(esp_wifi): Flush PMK when EAP config is changed 2025-04-08 17:58:24 +05:30
Kapil Gupta
c2fad24731 fix(esp_wifi): Code cleanup for PR#15550 PR#15551
Closes https://github.com/espressif/esp-idf/pull/15550
Closes https://github.com/espressif/esp-idf/pull/15551
2025-04-08 17:57:27 +05:30
akshat
c6a56d0216 feat(esp_wifi): Add DS parameter in probe requests from STA
Parse the DS IE to get intended channel when softAP rx request,
send probe response only if request is intended for the channel
2025-04-08 16:40:47 +05:30
morris
bfdca51a67 Merge branch 'fix/fix_l2_cache_miss_issue_v5.4' into 'release/v5.4'
cache: fixed l2 cache suspended/frozen but l1cache triggers l2 writeback issue (v5.4)

See merge request espressif/esp-idf!37998
2025-04-08 18:15:16 +08:00
Jiang Jiang Jian
3ee14caf6b Merge branch 'backport/backport_some_code_to_v5.4' into 'release/v5.4'
fix(wifi): fix twt post just one event for multiple flow(backport v5.4)

See merge request espressif/esp-idf!38273
2025-04-08 14:05:17 +08:00
Shu Chen
c0c7023dd8 Merge branch 'feature/add_txrx_frame_dump_debugging_v5.4' into 'release/v5.4'
feat(802.15.4): supported tx/rx frame dumping (v5.4)

See merge request espressif/esp-idf!38234
2025-04-08 11:01:54 +08:00
glmfe
5c76c789f8 fix(tcp_transport): Fix test for socks transport
- Removed out of scope stack acess
2025-04-07 12:09:34 -03:00
Zhang Hai Peng
20910df9d6 feat(ble/bluedroid): Implement BLE channel map reading API
(cherry picked from commit 55043e280a)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:23 +08:00
Zhang Hai Peng
d47d3230cd fix(ble/bluedroid): Fix potential uint32_t overflow in BLE btu_start_timer
(cherry picked from commit a9286567f0)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:21 +08:00
Zhang Hai Peng
e2c02966d2 fix(ble/bluedrooid): Fixed memory leak issue when deinit the host
(cherry picked from commit 6becf74cbb)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:19 +08:00
Zhang Hai Peng
44f3208a49 feat(bluedroid): Support get bt config path
(cherry picked from commit d6bb90b453)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:16 +08:00
Zhang Hai Peng
03e87e18f7 fix(ble/bluedroid): Fix missing event reporting in esp_ble_create_sc_oob_data
(cherry picked from commit f291725936)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:14 +08:00
Zhang Hai Peng
d7e8cfadca fix(ble/bluedroid): Fixed BLE crash when disable bluedroid host
(cherry picked from commit 9dfa6ab0e9)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:12 +08:00
morris
796bac0b74 Merge branch 'fix/jpeg_dma_stuck_v5.4' into 'release/v5.4'
fix(jpeg): use dma2d empty rx desc event to avoid a stuck on bad quality image (backport v5.4)

See merge request espressif/esp-idf!38262
2025-04-07 19:03:50 +08:00
Michael Stoll
4470cf7b49 fix: Force validate when using the default crt bundle 2025-04-07 14:43:15 +05:30
Michael Stoll
8144ed8599 feat: Add domain match to wifi_enterprise example 2025-04-07 14:43:03 +05:30
morris
781712062a Merge branch 'refactor/improve_p4_psram_timing_tuning_point_selection_v5.4' into 'release/v5.4'
mspi: improve p4 psram timing tuning point selection (v5.4)

See merge request espressif/esp-idf!38190
2025-04-07 17:10:38 +08:00
Michael Stoll
134b9ac589 feat(esp_wifi): Implement esp_eap_client_set_domain_match 2025-04-07 14:28:45 +05:30
yinqingzhao
0f07bfdef3 fix(wifi): fix twt post just one event for multiple flow 2025-04-07 16:13:49 +08:00
zhiweijian
33093418f8 feat(ble/bluedroid): report cte_type in periodic adv report if CTE feature is enabled 2025-04-07 16:04:24 +08:00
zhiweijian
15a901fb5e fix(bt/controller): Fixed controller flash only bug if hci-uart is enabled 2025-04-07 16:03:45 +08:00
Island
4e61ce24d6 Merge branch 'feat/support_bluedroid_host_iso_feature_master_v5.4' into 'release/v5.4'
Support bluedroid host new  features (v5.4)

See merge request espressif/esp-idf!38163
2025-04-07 16:01:16 +08:00
Mahavir Jain
6f36eddc48 Merge branch 'contrib/github_pr_15715_v5.4' into 'release/v5.4'
fix(esp_http_client): fix error return when set_header has value==NULL (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38264
2025-04-07 15:29:42 +08:00
C.S.M
04a0c758e7 fix(spi_flash): Return false directly in suspend caps check 2025-04-07 15:22:39 +08:00
C.S.M
5ea148a80c fix(spi_flash): Fix flash encryption write verify,
Closes https://github.com/espressif/esp-idf/issues/15380
2025-04-07 15:22:21 +08:00
Jiang Jiang Jian
ba9b1c46e2 Merge branch 'fix/fix_sleep_reject_on_esp32_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix short duration sleep requests rejected in pd_flash lightsleep(v5.4)

See merge request espressif/esp-idf!38226
2025-04-07 15:20:53 +08:00
C.S.M
c29d6575a1 fix(i2c): Fix i2c customize only read one byte issue 2025-04-07 14:08:23 +08:00
C.S.M
0752abf3c7 fix(i2c_master): Fix the stretch happen cause timeout in probe,
Closes https://github.com/espressif/esp-idf/issues/15589
2025-04-07 14:08:10 +08:00
C.S.M
785e45cfcb fix(i2c): Fix i2c slave auto selection issue,
Closes https://github.com/espressif/esp-idf/issues/15644
2025-04-07 14:07:58 +08:00
C.S.M
e2ce4d256a fix(i2c): Fix the array size of static operation,
Closes https://github.com/espressif/esp-idf/issues/15583
2025-04-07 14:07:45 +08:00
C.S.M
a4ecb6b15c fix(i2c_master): Fix i2c master race condition issue,
Closes https://github.com/espressif/esp-idf/issues/15444
2025-04-07 14:05:32 +08:00
Kapil Gupta
2a0866ac9f fix(ci): Update UT to verify fast psk calculations
Also update some comments
2025-04-07 14:02:48 +08:00
Kapil Gupta
b9f2ca9068 fix(esp_wifi): Add some comments in github PR 15073
Closes https://github.com/espressif/esp-idf/pull/15073
2025-04-07 14:02:48 +08:00
Chien Wong
d3ec99b9cd feat(wpa_supplicant): Add optimized PSK impl
Signed-off-by: Chien Wong <m@xv97.com>
2025-04-07 14:02:48 +08:00
Jiang Jiang Jian
19e864060a Merge branch 'fix/rmii_ref_ckl_v5.4' into 'release/v5.4'
fix(esp_eth): fixed ESP32P4 EMAC REF RMII CLK output mode (v5.4)

See merge request espressif/esp-idf!38039
2025-04-07 13:58:48 +08:00
Jiang Jiang Jian
b809629dba Merge branch 'contrib/github_pr_15637_v5.4' into 'release/v5.4'
fix(esp_eth): Fix order of fields in ETH_ESP32_EMAC_DEFAULT_CONFIG on P4 (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38165
2025-04-07 13:58:32 +08:00
Jiang Jiang Jian
9920b0994c Merge branch 'fix/test_nvs_gen_check_read_only_part_support_v5.4' into 'release/v5.4'
fix: test_nvs_gen_check.py support for read-only NVS partitions (v5.4)

See merge request espressif/esp-idf!37078
2025-04-07 13:57:25 +08:00
Jiang Jiang Jian
5bedbdf8e0 Merge branch 'feat/ff_fs_nofsinfo_kconfig_v5.4' into 'release/v5.4'
feat(fatfs): Add an option to set FF_FS_NOFSINFO value (v5.4)

See merge request espressif/esp-idf!36678
2025-04-07 13:56:54 +08:00
Jiang Jiang Jian
8c68adfbf1 Merge branch 'fix/apptrace_basic_tests_v5.4' into 'release/v5.4'
test(apptrace): run tests from custom OpenOCD class (v5.4)

See merge request espressif/esp-idf!37602
2025-04-07 13:53:21 +08:00
Jiang Jiang Jian
dc68766ea3 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20250226_v5.4' into 'release/v5.4'
feat(tools): update openocd version to v0.12.0-esp32-20250226 (v5.4)

See merge request espressif/esp-idf!37526
2025-04-07 13:53:05 +08:00
Jiang Jiang Jian
6897a7bf40 Merge branch 'ci/add_test_for_ecos_wifi_enterprise_v54' into 'release/v5.4'
ci(c2/c3): add major eco version tests(v5.4)

See merge request espressif/esp-idf!37808
2025-04-07 13:52:43 +08:00
Jiang Jiang Jian
7ea75e3c58 Merge branch 'bugfix/ci_eth_ip_v5.4' into 'release/v5.4'
iperf fix on SH runners (v5.4)

See merge request espressif/esp-idf!37331
2025-04-07 13:51:38 +08:00
nilesh.kale
27951298ab fix(esp_http_client): Added test case to verify set header functionality
This commit added testcase to verify esp_http_client_set_header
allows header value as NULL. Setting this NULL will delete the header.

Closes https://github.com/espressif/esp-idf/issues/15714
2025-04-07 11:14:13 +05:30
Mathew Harman
bbd57a2204 fix(esp_http_client): fix error return when set_header has value==NULL
Prior to v5.4, headers could be deleted from an HTTP client by calling
esp_http_client_set_header("Header", NULL). This pattern is used by
esp_http_client_set_post_field(NULL, 0), which is the only API usage
that will delete the request body in a persistent connection scenario.
2025-04-07 11:14:13 +05:30
C.S.M
ba3d59c69e fix(jpeg): use dma2d empty rx desc event to avoid a stuck 2025-04-07 13:37:06 +08:00
C.S.M
05d0fdb7a5 feat(dma2d): Add a rx empty event callback 2025-04-07 13:36:57 +08:00
Rahul Tank
3b08b2b82d fix(nimble): Fixed one missing ble_hs_unlock() 2025-04-07 09:39:17 +05:30
Rahul Tank
f8b7c14703 Merge branch 'bugfix/handle_invalid_rd_rem_feat_v5.4' into 'release/v5.4'
fix(nimble): Handle connection posting condition (v5.4)

See merge request espressif/esp-idf!38227
2025-04-07 12:01:02 +08:00
armando
b67b1160e7 fix(cache): fixed l2 cache suspended/frozen but l1cache triggers l2 writeback issue 2025-04-07 11:37:40 +08:00
Jiang Jiang Jian
0d11e40920 Merge branch 'bugfix/pmkid_password_mismatch_v5.4' into 'release/v5.4'
fix(wifi): Fix wrong PMKSA cache entry being used when wifi password is changed (Backport v5.4)

See merge request espressif/esp-idf!38250
2025-04-07 11:14:41 +08:00
armando
71e99e8eaa refactor(mspi): improve p4 timing tuning delayline configurations 2025-04-07 10:14:17 +08:00
armando
98496eca72 refactor(mspi): improved timing tuning max consecutive success points calculation 2025-04-07 10:14:17 +08:00
Sajia
a73c5c0312 fix(wifi): Fix crash when set config is called with changed password
Closes https://github.com/espressif/esp-idf/issues/15584
2025-04-06 15:22:15 +05:30
Sarvesh Bodakhe
f8b1c0976a fix(wifi): Fix wrong PMKSA cache entry being used when wifi password is changed 2025-04-06 15:21:56 +05:30
Rahul Tank
b1a0b0c698 Merge branch 'bugfix/replace_sizeof_with_strlen_v5.4' into 'release/v5.4'
fix(nimble): Replaced incorrect sizeof with strnlen (v5.4)

See merge request espressif/esp-idf!37797
2025-04-04 19:04:19 +08:00
Aditya Patwardhan
cb24473016 Merge branch 'fix/examples_python3.13_ssl_conn_failure_v5.4' into 'release/v5.4'
Change in Python3.13's default ssl context caused SSL connection failure (v5.4)

See merge request espressif/esp-idf!38199
2025-04-04 13:57:16 +08:00
Mahavir Jain
952e0e3bfb Merge branch 'feat/configurable_mbedtls_sha1_v5.4' into 'release/v5.4'
feat(mbedtls): Make mbedtls SHA1 support configurable (v5.4)

See merge request espressif/esp-idf!37980
2025-04-04 12:32:38 +08:00
igor.masar
c9c0e8b63e fix(usb/hal/dwc): Correct host channel number calculation
The hardware field `ghwcfg2.numhstchnl` is zero-based, meaning the actual
number of available host channels is `numhstchnl + 1`. This off-by-one
error caused the USB Host controller to report N-1 channels instead of N,
leading to premature "No more HCD channels available" errors when
connecting multiple devices.

This issue affects ESP32-S2, ESP32-S3, and ESP32-P4.
2025-04-03 23:53:01 +08:00
Aditya Patwardhan
26ffbce8c2 Merge branch 'fix/fix_security_app_readme_v5.4' into 'release/v5.4'
fix(security): Fixed README for security features app (v5.4)

See merge request espressif/esp-idf!38184
2025-04-03 22:38:35 +08:00
Jiang Jiang Jian
d1b0c395c6 Merge branch 'feature/support_sco_coexist_v5.4' into 'release/v5.4'
feat(coex): Support BR/EDR (e)SCO and Wi-Fi coexistence

See merge request espressif/esp-idf!38133
2025-04-03 20:13:03 +08:00
zwx
75abe550a3 feat(802.15.4) add a build CI test for debugging feature 2025-04-03 17:30:50 +08:00
zwx
c72bbe13ba feat(802.15.4): supported tx/rx frame dumping 2025-04-03 17:30:50 +08:00
Martin Vychodil
9df731bf36 Merge branch 'fix/incorrect_console_open_and_close_behaviour_v5.4' into 'release/v5.4'
fix(storage/vfs_console): stop new console opens from overwriting existing fds (v5.4)

See merge request espressif/esp-idf!35267
2025-04-03 17:01:57 +08:00
Marius Vikhammer
6f13ac088f Merge branch 'fix/memory-utils-ptr-executable_v5.4' into 'release/v5.4'
fix(memory-utils): Missing case in esp_ptr_executable logic (backport v5.4)

See merge request espressif/esp-idf!37101
2025-04-03 14:58:36 +08:00
Island
a3cf6b07b7 Merge branch 'bugfix/fixed_c2eco4_ble_crash_issue_5.4' into 'release/v5.4'
fix(ble): fixed a heap assertion issue when enabling BLE for esp32c2 v2.0

See merge request espressif/esp-idf!38213
2025-04-03 14:42:30 +08:00
Rahul Tank
3abd397e67 fix(nimble): Handle connection posting condition 2025-04-03 11:05:57 +05:30
harshal.patil
dcd80b2528 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:51:09 +05:30
Rahul Tank
77771f50d5 fix(nimble): Replaced incorrect sizeof with strnlen 2025-04-03 10:22:15 +05:30
wuzhenghui
ddd19eee94 fix(esp_hw_support): fix min sleep time calculation missmatch in powerdown flash decision 2025-04-03 11:51:57 +08:00
Island
dd9dbfccd6 Merge branch 'change/ble_update_lib_20250313_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250313 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!37822
2025-04-03 11:18:35 +08:00
Marius Vikhammer
7929002754 Merge branch 'fix/memory-utils-unused-var_v5.4' into 'release/v5.4'
fix(esp_hw_support): Unused variables in memory_utils functions (backport v5.4)

See merge request espressif/esp-idf!36351
2025-04-03 10:55:43 +08:00
morris
7e1238de97 Merge branch 'fix/parlio_add_gdma_fifo_reset_v5.4' into 'release/v5.4'
fix(parlio_tx): add clock and fifo reset in disable function (v5.4)

See merge request espressif/esp-idf!36273
2025-04-03 10:27:04 +08:00
morris
ae57289414 Merge branch 'fix/usb-host-device-close-err-give-semaphore_v5.4' into 'release/v5.4'
fix(usb_host): Give semaphore on attempted close of non-opened device (backport v5.4)

See merge request espressif/esp-idf!38151
2025-04-03 10:23:24 +08:00
Shu Chen
0355d741cf Merge branch 'feat/update_ot_upstream_v54' into 'release/v5.4'
feat(openthread): update openthread upstream submodule to support BR DNS resolution (v5.4)

See merge request espressif/esp-idf!38191
2025-04-03 09:52:03 +08:00
Shen Weilong
39acce7c40 fix(ble): fixed a heap assertion issue when enabling BLE for esp32c2 v2.0 2025-04-03 08:42:45 +08:00
Roland Dobai
17a2461297 Merge branch 'fix/linux_std_flags_v5.4' into 'release/v5.4'
fix(build): don't call enable_language() before project() (v5.4)

See merge request espressif/esp-idf!37880
2025-04-02 23:42:58 +08:00
baohongde
12117c66d4 feat(coex): Support BR/EDR (e)SCO and Wi-Fi coexistence 2025-04-02 19:25:53 +08:00
Zhou Xiao
e3e91deca2 fix(ble): fix ble log init failure mem leak for ESP32-C3 2025-04-02 15:18:22 +08:00
Shen Weilong
e1920ec42f feat(ble/controller): Added memory boundary check for ESP32-C6/C5/H2/C2/C61 2025-04-02 15:18:18 +08:00
Geng Yuchao
0645197a46 fix(ble): Add link requires esp_phy for ble. 2025-04-02 15:18:18 +08:00
Zhou Xiao
94480cc0c0 feat(ble): support ble log simple output via SPI interface 2025-04-02 15:18:18 +08:00
Zhou Xiao
18725220d4 fix(ble): fix ble log init failure mem leak for ESP32 2025-04-02 15:18:18 +08:00
cjin
1848a85f99 fix(ble): remove macro in lpclk src get api on ESP32-C6 2025-04-02 15:18:18 +08:00
cjin
15d421c060 fix(ble): remove macro in lpclk src get api on ESP32-C5 2025-04-02 15:18:18 +08:00
zwl
c93081cec4 feat(ble): add enhanced connect function on ESP32-C2 2025-04-02 15:18:18 +08:00
Zhou Xiao
b7bffc84f9 feat(ble): support ble log simple output via SPI interface for ESP32-C6 2025-04-02 15:18:17 +08:00
Zhou Xiao
8e036761ed feat(ble): support ble log simple output via SPI interface for ESP32-C5 2025-04-02 15:18:17 +08:00
Zhou Xiao
9a3b5e8393 feat(ble): support ble log simple output via SPI interface for ESP32-H2 2025-04-02 15:18:17 +08:00
Zhou Xiao
8eb051cb30 feat(ble): support ble log simple output via SPI interface for ESP32-C2 2025-04-02 15:18:17 +08:00
Zhou Xiao
cda345ffc7 fix(ble): add feed wdts during ble log dump for ESP32-C2 2025-04-02 15:18:17 +08:00
Zhou Xiao
3051078939 fix(ble): fix flushout and sync issues 2025-04-02 15:18:17 +08:00
zhanghaipeng
e323d22353 fix(ble/bluedroid): Added SPI output support for Bluedroid host log 2025-04-02 15:18:17 +08:00
zhanghaipeng
231bf742b0 fix(ble/bluedroid): Support SPI log output options for HCI 2025-04-02 15:18:17 +08:00
Zhou Xiao
41a33fcd46 feat(ble): add printf and write with timestamp interface for ble log spi out
(cherry picked from commit f8efa4cd80)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-02 15:18:17 +08:00
Roland Dobai
58210d69b2 Merge branch 'fix/remove-unused-from-gdbinit_cmake_v5.4' into 'release/v5.4'
fix(tools): remove unused variables in gdbinit.cmake (v5.4)

See merge request espressif/esp-idf!38008
2025-04-02 15:14:37 +08:00
Island
6f0255713e Merge branch 'feat/support_blecrt_359_v5.4' into 'release/v5.4'
Support BLE vendor hci set rx sensie and max gain on esp32c3 (v5.4)

See merge request espressif/esp-idf!38130
2025-04-02 15:06:58 +08:00
Tan Yan Quan
41e9933e2f feat(openthread): increase CI timeout for dns CLI commands 2025-04-02 14:59:31 +08:00
Tan Yan Quan
d6b6583995 feat(openthread): update thread-lib to support BR DNS resolution 2025-04-02 14:59:11 +08:00
Tan Yan Quan
30ffbfcf6b feat(openthread): revert to OT upstream main branch 2025-04-02 14:49:43 +08:00
Tan Yan Quan
17f206400d fix(openthread): change include statement to updated upstream path 2025-04-02 14:49:37 +08:00
Tan Yan Quan
8063f82219 fix(openthread): update openthread upstream to support BR DNS resolution 2025-04-02 14:49:29 +08:00
Marius Vikhammer
d2eb653916 Merge branch 'fix/esp-log-put-function-in-iram_v5.4' into 'release/v5.4'
fix(log): Modified linker script to move functions from flash to iram (backport v5.4)

See merge request espressif/esp-idf!36817
2025-04-02 14:44:48 +08:00
Guillaume Souchere
2bdfba3c30 fix(memory-utils): Missing case in esp_ptr_executable logic
esp_ptr_executable does not consider that the PSRAM and FLASH
memory mapping are not always matching.

Added a "pointer is in PSRAM" specific check in the logic to
fix the issue.
2025-04-02 08:44:22 +02:00
Guillaume Souchere
e82a248593 fix(esp_hw_support): Unused variables in memory_utils functions 2025-04-02 08:43:37 +02:00
Marius Vikhammer
58c5aa2591 Merge branch 'fix/memory-utils-esp_ptr_in_rtc_dram_fast_v5.4' into 'release/v5.4'
fix(esp_hw_support): esp_ptr_in_rtc_iram_fast check to return false (backport v5.4)

See merge request espressif/esp-idf!36933
2025-04-02 14:33:43 +08:00
Aditya Patwardhan
f7bce692ab fix(security): Fixed README for security features app 2025-04-02 10:18:43 +05:30
morris
7fe190313c Merge branch 'feat/p4_adc_calibration' into 'release/v5.4'
Feature/esp32 p4 adc calibration (backport v5.4)

See merge request espressif/esp-idf!36179
2025-04-02 11:04:46 +08:00
Island
cebb126055 Merge branch 'feat/support_ble_vendor_hci_event_report_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Support BLE vendor hci event reporting (v5.4)

See merge request espressif/esp-idf!37354
2025-04-02 10:44:09 +08:00
chenjianhua
e2bc4fc39f fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(566c8e3)
- Support BLE vendor hci set RX sensitivity and AGC gain command
- Fixed enhanced TX power setting and getting for legacy adv
- Fixed BLE assert lld_con.c 2387
- Fixed compatibility issues during the encryption procedure
- Support BLE vendor hci enable CCA command
- Added BLE controller debug log trace
- Added BLE controller log module
2025-04-02 10:38:40 +08:00
zhiweijian
c06b78595d fix(ble/bluedroid): move setting host feature API to GAP 2025-04-02 10:31:42 +08:00
zhiweijian
0e6e23ec53 feat(bt/bluedroid): Support ble bluedroid host connection subrating feature 2025-04-02 10:31:33 +08:00
zhiweijian
5425ed8eef feat(bt/bluedroid): Support ble bluedroid host power control feature 2025-04-02 10:31:24 +08:00
zhiweijian
b47a6003a1 feat(bt/bluedroid): Support BLE CTE in bluedroid host 2025-04-02 10:31:14 +08:00
zhiweijian
e3bf21b31a feat(bt/bluedroid): Support BLE iso in bluedroid host 2025-04-02 10:31:04 +08:00
morris
ff8c836be3 Merge branch 'feat/allow_setting_rmt_group_prescale_v5.4' into 'release/v5.4'
refactor(rmt): set group clock prescale dynamically (v5.4)

See merge request espressif/esp-idf!36737
2025-04-02 10:15:16 +08:00
morris
13baf981ca Merge branch 'bugfix/sdmmc_high_prio_timeout_v5.4' into 'release/v5.4'
fix(sdmmc): move DMA descriptor refilling into the ISR (v5.4)

See merge request espressif/esp-idf!37694
2025-04-02 10:13:22 +08:00
Sergei Silnov
891f7eeef2 Merge branch 'ci/update_esp-env-v5.4_to_ubuntu_24.04' into 'release/v5.4'
5.4: Update ubuntu base image for esp-env-v5.4 to 24.04

See merge request espressif/esp-idf!37872
2025-04-02 02:30:09 +08:00
Island
b641411c06 Merge branch 'feat/add_save_debug_context_250226_v5.4' into 'release/v5.4'
Feat/add save debug context 250226 (v5.4)

See merge request espressif/esp-idf!37297
2025-04-01 19:33:51 +08:00
Shu Chen
f481174cbd Merge branch 'feat/add_config_to_set_addrfamily_v5.4' into 'release/v5.4'
feat(tcp_transport): add an api to configure the addr family (v5.4)

See merge request espressif/esp-idf!37911
2025-04-01 19:32:14 +08:00
morris
a125701444 Merge branch 'bugfix/uart_async_rxtxtasks_example_stack_overflow_v5.4' into 'release/v5.4'
fix(uart): enlarged task stack size for uart_async_rxtxtasks example (v5.4)

See merge request espressif/esp-idf!37590
2025-04-01 18:48:00 +08:00
Ondrej Kosta
ac29bd7ca4 ci(esp_eth): enabled Ethernet target tests 2025-04-01 12:45:59 +02:00
Jonathan Swoboda
3581d9d5a9 fix(esp_eth): Fix order of fields in ETH_ESP32_EMAC_DEFAULT_CONFIG on P4 2025-04-01 07:24:19 +00:00
chenjianhua
352ee491db feat(bt/bluedroid): Support BLE vendor hci event reporting 2025-04-01 15:12:28 +08:00
Island
f6dc2b658d Merge branch 'feat/optimize_hci_data_recv_process_v5.4' into 'release/v5.4'
Feat/optimize hci data recv process (v5.4)

See merge request espressif/esp-idf!37834
2025-04-01 15:12:28 +08:00
chenjianhua
189e40bc7b feat(bt/bluedroid): Support BLE setting vendor event mask 2025-04-01 15:12:28 +08:00
Kapil Gupta
2863fe328c fix(esp_wifi): Add alternate SHA1 APIs in WiFi
Add alternate SHA1 APIs to handle cases when
`CONFIG_MBEDTLS_SHA1_C` is disabled.
2025-04-01 12:40:55 +05:30
harshal.patil
96f48cd1cf feat(mbedtls): Make mbedtls SHA1 support configurable 2025-04-01 12:40:55 +05:30
gaoxu
221da3fbb4 docs(adc): add ADC calibration docs on ESP32P4 2025-04-01 15:08:04 +08:00
gaoxu
d74f12dea7 feat(adc): support ADC calibration on ESP32P4 2025-04-01 15:07:56 +08:00
gaoxu
b227da9b2b ci(adc): enable P4 ADC test and correct ADC performance thresh 2025-04-01 15:05:36 +08:00
gaoxu
f380cb6a4d fix(adc): fix P4 adc continuous mode stop early 2025-04-01 15:05:34 +08:00
gaoxu
3e9c1ae62b fix(adc): fix adc1 error after bootloader random 2025-04-01 15:05:31 +08:00
Rahul Tank
9d45436a5f Merge branch 'feat/added_change_to_ble_spp_client_v5.4' into 'release/v5.4'
feat(nimble): Allow BLE SPP Client to subscribe to the server (v5.4)

See merge request espressif/esp-idf!37455
2025-04-01 14:58:52 +08:00
Marius Vikhammer
8c9946fe9b Merge branch 'feat/enable_freertos_smp_for_c5_c61_v5.4' into 'release/v5.4'
feat(freertos): Enable Amazon FreeRTOS SMP kernel for esp32c5 and esp32c61 (v5.4)

See merge request espressif/esp-idf!38073
2025-04-01 14:56:32 +08:00
Marius Vikhammer
a218e3f553 Merge branch 'fix/ringbuf_allow_split_receive_crash_v5.4' into 'release/v5.4'
fix(ringbuf): xRingbufferReceive() crashes for allow-split buffers (v5.4)

See merge request espressif/esp-idf!37922
2025-04-01 14:55:36 +08:00
Marius Vikhammer
4354c3080a Merge branch 'fix/lp_uart_flush_wait_for_idle_v5.4' into 'release/v5.4'
fix(lp_uart): Update the `lp_core_uart_tx_flush()` API to wait for UART Tx idle state (v5.4)

See merge request espressif/esp-idf!37473
2025-04-01 14:55:18 +08:00
Marius Vikhammer
592c6312b6 Merge branch 'bugfix/adc_work_mode_for_ulp_riscv_v5.4' into 'release/v5.4'
fix(ulp-riscv): Fixed ADC oneshot initialization for ULP RISC-V (v5.4)

See merge request espressif/esp-idf!37372
2025-04-01 14:54:56 +08:00
Wang Meng Yang
0cecb7bcf3 Merge branch 'bug/xtensa_cpu1_sys_lockup_v5.4' into 'release/v5.4'
fix(panic_handler): Updated panic handler to use RTC WDT (v5.4)

See merge request espressif/esp-idf!37112
2025-04-01 14:51:18 +08:00
Rahul Tank
078a29e351 Merge branch 'fix/periodic_adv_example_v5.4' into 'release/v5.4'
fix(nimble):Fix conversion for min-max itvl of periodic adv param (v5.4)

See merge request espressif/esp-idf!38091
2025-04-01 14:49:42 +08:00
Ondrej Kosta
300adf0045 fix(esp_eth): fixed emac_ll_pause_frame_enable for ESP32P4 2025-04-01 08:32:09 +02:00
Ondrej Kosta
e544d57179 fix(esp_eth): fixed ESP32P4 EMAC REF RMII CLK output mode
fixed units returned and used by periph_rtc_mpll_freq_set function
2025-04-01 08:32:09 +02:00
Rahul Tank
4d749ee5b0 Merge branch 'fix/ble_issue_10032025_v5.4' into 'release/v5.4'
fix(nimble): Fix some nimble issues ble_issue_10032025_v5.4

See merge request espressif/esp-idf!37625
2025-04-01 12:47:00 +08:00
Shu Chen
8fa7bf6c47 Merge branch 'fix/csl_rx_off_when_idle_v5.4' into 'release/v5.4'
fix(openthread): turn off rx for SSED running CSL during idle (v5.4)

See merge request espressif/esp-idf!37992
2025-04-01 11:30:38 +08:00
Shu Chen
f122d1113c Merge branch 'bugfix/fix_ot_ci_cases_avahi_service_issue_v5.4' into 'release/v5.4'
feat(openthread): fix ci avahi service cases issue (v5.4)

See merge request espressif/esp-idf!37861
2025-04-01 11:29:14 +08:00
Shu Chen
667b2431ee Merge branch 'fix/154_txpower_set_api_v5.4' into 'release/v5.4'
fix(802.15.4): fix the behavior of the `esp_ieee802154_set_txpower` (v5.4)

See merge request espressif/esp-idf!37736
2025-04-01 11:28:56 +08:00
Shu Chen
89c73fc502 Merge branch 'support/ieee802154_set_txon_delay_using_phylib_impl_v5.4' into 'release/v5.4'
feat(802.15.4): configure tx on delay using phylib implementation (v5.4)

See merge request espressif/esp-idf!37656
2025-04-01 11:28:47 +08:00
morris
beee8e047e Merge branch 'contrib/github_pr_15499_v5.4' into 'release/v5.4'
Add missing break statements to usb_serial_jtag_ll_phy_select (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38124
2025-04-01 11:14:52 +08:00
morris
57a83359d5 Merge branch 'bugfix/clear_ledc_gamma_ram_v5.4' into 'release/v5.4'
fix(ledc): left-off gamma ram registers should be cleared (v5.4)

See merge request espressif/esp-idf!37572
2025-04-01 11:13:32 +08:00
Chen Jichang
da4c0a3a8d fix(parlio): fix non-free running test case 2025-04-01 11:11:44 +08:00
Chen Jichang
4e7c593098 fix(parlio): fix rempty interrupt during resetting fifo
Move the fifo reset to after disabling the tx core clock.
And add external non-free running clock src test.
2025-04-01 11:11:44 +08:00
Chen Jichang
21792d572e fix(parlio_tx): add clock and fifo reset in disable function 2025-04-01 11:11:44 +08:00
morris
8bce1430ee Merge branch 'bugfix/lp_uart_baudrate_limitation_v5.4' into 'release/v5.4'
fix(uart): LP UART does not have the pre-divider for its clock source (v5.4)

See merge request espressif/esp-idf!37594
2025-04-01 10:35:29 +08:00
Renze Nicolai
e743875cd8 fix: add missing break statements to usb_serial_jtag_ll_phy_select,
Closes https://github.com/espressif/esp-idf/pull/15499
2025-04-01 10:09:47 +08:00
morris
46685f1dfd Merge branch 'docs/update_translation_for_nvs_bootloader_v5.4' into 'release/v5.4'
docs: Provide CN translation for nvs bootloader and fix broken link (v5.4)

See merge request espressif/esp-idf!37445
2025-04-01 10:03:21 +08:00
morris
321fd07663 Merge branch 'docs/add_note_about_twai_instance_install_v5.4' into 'release/v5.4'
docs: Add a note about TWAI multiple instances install (v5.4)

See merge request espressif/esp-idf!37965
2025-04-01 10:03:02 +08:00
morris
80be2e9dac Merge branch 'fix/usb_host_docs_host_num_chan_reference_backport_v5.4' into 'release/v5.4'
fix(usb_host): Fixing reference to OTG_NUM_HOST_CHAN in docs backport to v5.4

See merge request espressif/esp-idf!37384
2025-04-01 10:02:31 +08:00
morris
373f508a99 Merge branch 'update_usb_jtag_doc_v5.4' into 'release/v5.4'
docs(jtag): add esp32p4 usb jtag pin numbers (v5.4)

See merge request espressif/esp-idf!37241
2025-04-01 10:01:53 +08:00
morris
3076186e8f Merge branch 'fix/pr_15513_psram_bss_noinit_calc_issue_v5.4' into 'release/v5.4'
psram: correct .bss and .noinit vaddr calculation (v5.4)

See merge request espressif/esp-idf!37664
2025-04-01 10:00:56 +08:00
morris
fba83778cb Merge branch 'bugfix/ledc_fade_stop_race_condition_v5.4' into 'release/v5.4'
fix(ledc): fix race condition in ledc_fade_stop causing assert failure (v5.4)

See merge request espressif/esp-idf!38080
2025-04-01 09:59:31 +08:00
morris
62ace4d687 Merge branch 'fix/spi_master_halt_using_rc_fast_v5.4' into 'release/v5.4'
fix(spi_master): fix spi halt when remove device who using rc_fast (v5.4)

See merge request espressif/esp-idf!37002
2025-04-01 09:58:50 +08:00
morris
0e3cdc3b75 Merge branch 'feat/update_pcnt_reg_on_h2_eco5_v5.4' into 'release/v5.4'
feat(pcnt): update pcnt reg on h2 eco5 (v5.4)

See merge request espressif/esp-idf!38117
2025-04-01 09:54:51 +08:00
weiyuhan
6fe81dfc1b docs(ble): Updated the Bluetooth SIG Qualification information for ESP32C6 2025-04-01 09:33:05 +08:00
Wei Yu Han
10f7a7b8b7 Updated BLE feature status
(cherry picked from commit 6a584e9698)

Co-authored-by: weiyuhan <weiyuhan@espressif.com>
2025-04-01 09:33:05 +08:00
Chen Jian Hua
45400a78d0 feat(bt/bluedroid): Added BLE eddystone sender example
(cherry picked from commit 06366353d8)

Co-authored-by: zhangbowen <zhangbowen@espressif.com>
2025-04-01 09:30:56 +08:00
Wang Meng Yang
74d5769159 Merge branch 'feat/add_sdk_config_for_sdp_size_option_v5.4' into 'release/v5.4'
feat(bt): Implement SDK Config SDP Size Options (backport v5.4)

See merge request espressif/esp-idf!37209
2025-04-01 09:08:00 +08:00
igor.masar
2e8a928ee7 fix(usb_host): Fix return code and description
Changed error code from ESP_ERR_INVALID_STATE to ESP_ERR_NOT_FOUND
when the client never opened the device.
Updated function documentation to correctly reflect return values.
2025-03-31 23:44:27 +02:00
Myk Melez
71d098ed63 fix(usb_host): Give semaphore on attempted close of non-opened device
If you call *usb_host_device_close()* for a device that isn't open, the function exits early,
without giving back the semaphore it took, which causes any other call that tries to take
that semaphore to hang indefinitely.

Strangely, there's redundant handling of this condition, with two checks in a row that both handle
the case where `_check_client_opened_device(client_obj, dev_addr)` returns `false`:

```c
    HOST_CHECK_FROM_CRIT(_check_client_opened_device(client_obj, dev_addr), ESP_ERR_NOT_FOUND);
    if (!_check_client_opened_device(client_obj, dev_addr)) {
        // Client never opened this device
        ret = ESP_ERR_INVALID_STATE;
        HOST_EXIT_CRITICAL();
        goto exit;
    }
…
exit:
    xSemaphoreGive(p_host_lib_obj->constant.mux_lock);
    return ret;
```

The first line is the one that exits early, as HOST_CHECK_FROM_CRIT returns its second parameter
if its first parameter is false, without giving back the semaphore (although it does exit
the critical section).

The subsequent block handles the exact same case, except that it ensures the semaphore is given
back before returning. Currently, this block is never reached.

Perhaps the first check was added, then someone noticed the issue and added the second check,
but they forgot to remove the first one.

In any case, this PR removes the first check, so the second check can properly handle this case
by giving back the semaphore before returning.

This bug appears to have been present in the initial commit of the USB Host library to the ESP-IDF
repo: accbaee57c

Of course, if you never try to close a non-opened device, then you won't encounter it!
Unfortunately, I have some code that tried to do that, which is how I found the issue.
2025-03-31 23:44:27 +02:00
Mahavir Jain
710ed9bcad Merge branch 'contrib/github_pr_15291_v5.4' into 'release/v5.4'
fix(esp_http_client): Fix invalid content length header (GitHub PR) (v5.4)

See merge request espressif/esp-idf!37540
2025-03-31 21:32:49 +08:00
Mahavir Jain
54283c9567 Merge branch 'feature/add_support_for_ota_resumption' into 'release/v5.4'
feat(app_update): Introduced API for managing OTA resumption scenarios (v5.4)

See merge request espressif/esp-idf!37194
2025-03-31 21:32:14 +08:00
Mahavir Jain
a33851c9db Merge branch 'fix/incorrect_calculation_of_used_xip_pages_v5.4' into 'release/v5.4'
fix(esp_psram): Fix incorrect calculation of used XIP PSRAM pages (v5.4)

See merge request espressif/esp-idf!37495
2025-03-31 21:31:59 +08:00
Jiang Jiang Jian
1113c7183d Merge branch 'doc/add_wakeup_source_usage_precautions_v5.4' into 'release/v5.4'
change(doc): added more usage notes & warings about PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP (v5.4)

See merge request espressif/esp-idf!37391
2025-03-31 17:33:32 +08:00
Wang Meng Yang
75721348d8 Merge branch 'bugfix/sec_service_record_conn_fail_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fix the issue of connection failure when initializing multiple profiles(v5.4)

See merge request espressif/esp-idf!38074
2025-03-31 17:15:22 +08:00
Wang Meng Yang
8f2b6dfe95 Merge branch 'bugfix/fix_esp32_bt_disable_crash_v5.4' into 'release/v5.4'
fix(bt): Fix controller disable cause iwdt timeout on esp32 (v5.4)

See merge request espressif/esp-idf!37772
2025-03-31 17:14:52 +08:00
Wang Meng Yang
b1a3813698 Merge branch 'bugfix/fix_hid_reconnect_issue_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Add Kconfig option to keep device bonding info when HID unplugging (v5.4)

See merge request espressif/esp-idf!37181
2025-03-31 17:14:40 +08:00
Wang Meng Yang
381379354d Merge branch 'bugfix/spp_mem_leak_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed memory leaks in SPP callback mode (v5.4)

See merge request espressif/esp-idf!37385
2025-03-31 17:14:12 +08:00
Wang Meng Yang
b1659a5cd1 Merge branch 'bugfix/spp_free_server_slot_err_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed freeing spp server memory when disconnected(v5.4)

See merge request espressif/esp-idf!37608
2025-03-31 17:13:50 +08:00
Wang Meng Yang
d6a436c97a Merge branch 'bugfix/err_disc_state_changed_evt_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed other events being reported when disconnected(v5.4)

See merge request espressif/esp-idf!37936
2025-03-31 17:13:48 +08:00
Island
4af23443e0 Merge branch 'feat/ble_read_long_value_v5.4' into 'release/v5.4'
feat(ble/bluedroid): Add Read Long Characteristic Values example (v5.4)

See merge request espressif/esp-idf!37489
2025-03-31 17:10:03 +08:00
Island
3fbc2b7bce Merge branch 'feat/optimize_ble_config_reduce_bin_v5.4' into 'release/v5.4'
Feat/optimize bluedroid host config and reduce bin size (v5.4)

See merge request espressif/esp-idf!37261
2025-03-31 17:09:50 +08:00
Island
55352b6b62 Merge branch 'bugfix/fix_ble_kconfig_v5.4' into 'release/v5.4'
fix(ble/controller): Fix BLE Kconfig on ESP32 to avoid unexpected behavior (v5.4)

See merge request espressif/esp-idf!37422
2025-03-31 17:08:42 +08:00
Island
08d2987db4 Merge branch 'bugfix/fix_ble_report_len_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fix adv data and scan rsp data not reported together in BLE active scan (v5.4)

See merge request espressif/esp-idf!37203
2025-03-31 17:08:30 +08:00
morris
21d470dd26 Merge branch 'fix/i2s_iram_safe_issue_while_use_psram_v5.4' into 'release/v5.4'
fix(i2s): fixed failure when dma is iram_safe but i2s not (v5.4)

See merge request espressif/esp-idf!38003
2025-03-31 17:07:43 +08:00
morris
70ab1ccdd0 Merge branch 'bugfix/ppa_srm_scale_frag_yuv420_v5.4' into 'release/v5.4'
fix(ppa): fix ppa srm potentially get blocked when scaling to YUV420 (v5.4)

See merge request espressif/esp-idf!37592
2025-03-31 17:05:23 +08:00
morris
8d446396bf Merge branch 'fix/jpeg_decoder_collective_backport_v5.4' into 'release/v5.4'
fix(jpeg_decoder): JPEG Decoder collective backport to v5.4

See merge request espressif/esp-idf!37509
2025-03-31 16:53:25 +08:00
morris
67a6fbc72e Merge branch 'fix/usb_phy_pull_override_backport_v5.4' into 'release/v5.4'
fix(usb_phy): Removed pad pull override config for Full-speed (backport to v5.4)

See merge request espressif/esp-idf!36776
2025-03-31 16:50:37 +08:00
morris
de3964a9c0 Merge branch 'bugfix/adc_oneshot_error_after_continuous_v5.4' into 'release/v5.4'
fix(adc): fix adc oneshot error after continuous v5.4

See merge request espressif/esp-idf!37143
2025-03-31 16:47:34 +08:00
morris
c3b4d5a895 Merge branch 'fix/rmt_lim_thres_incorrect_v5.4' into 'release/v5.4'
fix(rmt): fix the received symbols issue (v5.4)

See merge request espressif/esp-idf!37899
2025-03-31 16:45:28 +08:00
morris
74ec3b3c7f Merge branch 'docs/update_i2c_static_v5.4' into 'release/v5.4'
docs: Update static for i2c.rst (v5.4)

See merge request espressif/esp-idf!37764
2025-03-31 16:44:51 +08:00
morris
e29346014f Merge branch 'feat/add_temperature_calib_v5.4' into 'release/v5.4'
feat(temperature_sensor): Add temperature sensor calibration support (backport v5.4)

See merge request espressif/esp-idf!37311
2025-03-31 16:43:31 +08:00
morris
a8e166ec07 Merge branch 'feat/unilc_psram_s3_v5.4' into 'release/v5.4'
psram: supported UnilC octal psram on s3 (v5.4)

See merge request espressif/esp-idf!37859
2025-03-31 16:43:01 +08:00
morris
70e8afb9a1 Merge branch 'fix/fix_cam_iram_safe_compile_error_v5.4' into 'release/v5.4'
cam: fix cam iram safe compile error (v5.4)

See merge request espressif/esp-idf!37606
2025-03-31 16:42:44 +08:00
morris
2dd1f03b0d Merge branch 'bugfix/spi_lcd_dc_io_setup_v5.4' into 'release/v5.4'
fix(lcd): DC signal shouldn't affect the input path of the GPIO (v5.4)

See merge request espressif/esp-idf!37449
2025-03-31 16:40:17 +08:00
morris
7c7c96e815 Merge branch 'refactor/spi_remove_unnecessary_dependency_v5.4' into 'release/v5.4'
fix(spi): removed PERIPH_CTRL_FUNC_IN_IRAM dependency (v5.4)

See merge request espressif/esp-idf!37563
2025-03-31 16:39:13 +08:00
morris
f74b338539 Merge branch 'bugfix/missing_kconfig_definition_v5.4' into 'release/v5.4'
fix(i2c): add Kconfig to skip driver conflict check (v5.4)

See merge request espressif/esp-idf!37761
2025-03-31 16:39:04 +08:00
morris
ff74f67de4 Merge branch 'bugfix/usj_wrong_return_value_v5.4' into 'release/v5.4'
fix(usb_serial_jtag): wrong return value in usb_serial_jtag_write_bytes (v5.4)

See merge request espressif/esp-idf!37969
2025-03-31 16:38:22 +08:00
morris
2d582fec60 Merge branch 'refactor/gptimer_isr_logs_opt_int_v5.4' into 'release/v5.4'
feat(gptimer): make start and stop function idempotent (v5.4)

See merge request espressif/esp-idf!37248
2025-03-31 16:36:46 +08:00
morris
ddd8a5d348 Merge branch 'bugfix/rmt_simple_encoder_example_v5.4' into 'release/v5.4'
fix(example): wrong ws2812 reset duration (v5.4)

See merge request espressif/esp-idf!37466
2025-03-31 16:36:08 +08:00
morris
b59ecd5e3d Merge branch 'feat/enable_l2mem_burst_buffer_mode_v5.4' into 'release/v5.4'
improve AXI-ICM QoS function (v5.4)

See merge request espressif/esp-idf!37468
2025-03-31 16:35:49 +08:00
morris
3d650abcba Merge branch 'feat/can_bypass_buffer_align_check_v5.4' into 'release/v5.4'
feat(gdma): allow bypass the alignment check in the link driver (v5.4)

See merge request espressif/esp-idf!37423
2025-03-31 16:21:25 +08:00
Roland Dobai
13bc9ceec0 Merge branch 'change/move_deprecated_kconfig_checker_v5.4' into 'release/v5.4'
change: move check_deprecated_configs.py logic to esp-idf-kconfig (v5.4)

See merge request espressif/esp-idf!37405
2025-03-31 16:10:44 +08:00
Roland Dobai
215d90a87a Merge branch 'fix/fix_kconfig_files_v5.4' into 'release/v5.4'
fix(kconfig): Fix issues with Kconfig files (v5.4)

See merge request espressif/esp-idf!37575
2025-03-31 16:10:25 +08:00
Roland Dobai
43b42c6dfd Merge branch 'fix/extractall_deprecation_v5.4' into 'release/v5.4'
fix(idf_tools): Patch extractall() deprecation warning (v5.4)

See merge request espressif/esp-idf!37883
2025-03-31 16:10:08 +08:00
Roland Dobai
916d1d30a7 Merge branch 'fix/install_input_validation_v5.4' into 'release/v5.4'
fix(idf_tools): Validate input features (v5.4)

See merge request espressif/esp-idf!37889
2025-03-31 16:08:58 +08:00
Roland Dobai
6d4faa0956 Merge branch 'feat/deactivate_idf_env_every_run_v5.4' into 'release/v5.4'
feat(tools): Deactivate current ESP-IDF environment with every export run (v5.4)

See merge request espressif/esp-idf!38026
2025-03-31 16:08:39 +08:00
Roland Dobai
487b26a72e Merge branch 'fix/check_python_dependencies_v5.4' into 'release/v5.4'
fix(tools): handle packages with dots in their names during dependency checks (v5.4)

See merge request espressif/esp-idf!38062
2025-03-31 16:08:21 +08:00
Frantisek Hrbata
a30e3051fb 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 16:06:06 +08:00
Chen Jichang
51cbe9291b fix(pcnt): remove the gpi0_reset_pin function 2025-03-30 13:48:02 +08:00
Chen Jichang
5a6e4760d4 fix(pcnt): update pcnt_reg on esp32h2 eco5 2025-03-30 13:48:01 +08:00
Peter Macko
a71141a250 ci: Update esp-env-v5.4 to Ubuntu 24.04 and handle related issues
- Allow test_pytest_linux failures
- Allow test_transport_on_host failures
- Fix deprecated C++ syntax by removing unused volatile variable in nvs_page_test
- Add x509_crt_bundle.S.o GNU-stack ld warning to ignore list
2025-03-28 15:59:44 +01:00
Abhinav Kudnar
a441421b2c fix(nimble): Fix conversion for min-max itvl of periodic adv param 2025-03-28 14:19:07 +08:00
xiongweichao
34e6333dd3 fix(bt/bluedroid): fix the issue of connection failure when initializing multiple profiles
- Due to the number of service security records exceeding the maximum value, the connection failed
2025-03-28 08:34:00 +08:00
xiongweichao
b48c152ca6 fix(bt/bluedroid): Fixed freeing spp server memory when disconnected 2025-03-28 08:20:01 +08:00
linruihao
e3bb3216df fix(bt): Fix controller disable cause iwdt timeout on esp32 2025-03-28 08:17:24 +08:00
Michael (XIAO Xufeng)
2f7dcd862a Merge branch 'update/version_5_4_1' into 'release/v5.4'
Update version to 5.4.1

See merge request espressif/esp-idf!38067
2025-03-28 02:04:54 +08:00
Song Ruo Jing
ac883027c3 fix(ledc): fix race condition in ledc_fade_stop causing assert failure
Closes https://github.com/espressif/esp-idf/issues/15580
2025-03-27 20:16:53 +08:00
Sudeep Mohanty
30f8649fb8 feat(freertos): Enable Amazon FreeRTOS SMP kernel for esp32c5 and esp32c61
This commit enables the Amazon SMP port for FreeRTOS for the esp32c5 and
esp32c61 targets.
2025-03-27 11:17:47 +01:00
Xiao Xufeng
4c2820d377 change(version): Update version to 5.4.1 2025-03-27 15:29:07 +08:00
Frantisek Hrbata
39ebccb7fb 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] c6ca368867
* [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:04:55 +01:00
Geng Yu Chao
ca75074cf7 feat(ble): Add Kconfig support for direction finding feature
(cherry picked from commit 8c7af817d89c254714dc9c93414499fead3717d3)

Co-authored-by: Geng Yuchao <gengyuchao@espressif.com>
2025-03-27 10:01:17 +05:30
Geng Yuchao
ba7e760473 feat(ble): Support Bluetooth LE 5.1 direction finding feature 2025-03-27 10:01:17 +05:30
Rahul Tank
e092561bc8 fix(nimble): Fix SMP command allocation 2025-03-27 10:01:17 +05:30
Shreeyash
105b3d7816 feat(nimble): support vendor event mask set and vendor HCI event on nimble host 2025-03-27 10:01:17 +05:30
Rahul Tank
68ef1bdfe0 fix(nimble): Fix incorrect event deinit in gatt caching discovery 2025-03-27 10:01:17 +05:30
Abhinav Kudnar
d714ad6bc1 fix(nimble): Exposed the ble_gap_wl_tx_add API to add a device in whitelist 2025-03-27 10:01:17 +05:30
Shen Weilong
15262e37a8 feat(bt): support hardware ecc acceleration for bt tinycrypt 2025-03-27 10:01:17 +05:30
Shen Weilong
6ea8cd1c0f change(bt): moved porting/ext/tinycrypt into common 2025-03-27 10:01:17 +05:30
Rahul Tank
5c982b0923 fix(nimble): Fix SC only pairing failure 2025-03-27 10:01:17 +05:30
Rahul Tank
26d71a5cbc fix(nimble): Handle probable release breaking change
link_estab event may be handled by customers in application and the previous would break it.
Revert few changes so as to not break the customer's code
2025-03-27 10:01:17 +05:30
Rahul Tank
54e22cfd49 fix(nimble): update data length after connection for all chips 2025-03-27 10:01:17 +05:30
Rahul Tank
20f902c953 fix(nimble): Keep only BLE_GAP_EVENT_CONNECT gap event 2025-03-27 10:01:17 +05:30
Alexey Lapshin
f810a440c9 fix(tools): remove unused variables in gdbinit.cmake
Closes https://github.com/espressif/esp-idf/issues/15035
2025-03-26 19:56:03 +07:00
Island
daf8117cb9 Merge branch 'feature/add_vendor_ble_cmd_definitions_5.4' into 'release/v5.4'
Feature/add vendor ble cmd definitions (v5.4)

See merge request espressif/esp-idf!37956
2025-03-26 16:39:28 +08:00
zwx
f519297704 fix(802.15.4) fix the behavior of the esp_ieee802154_set_txpower 2025-03-26 13:47:05 +08:00
Marek Fiala
8180dd00ab feat(tools): Remove PATH duplicity from first call of tools/activate.py 2025-03-25 14:16:16 +01:00
Marek Fiala
0cace3827b feat(tools): Deactivate current ESP-IDF environment with every export run
Unix systems only
2025-03-25 14:16:16 +01:00
laokaiyao
5bc5fd34d6 fix(i2s): add check for i2s DMA buffer array allocation
Closes https://github.com/espressif/esp-idf/issues/15607
2025-03-25 15:23:38 +08:00
laokaiyao
b22964cc4f fix(i2s): fixed mismatch of the i2s and gdma iram-safe config
Closes https://github.com/espressif/esp-idf/issues/15533
2025-03-25 15:17:47 +08:00
zhiweijian
f66322c9b7 feat(bt): fixed some doc error and add ocf parameters description 2025-03-25 14:27:02 +08:00
Tan Yan Quan
d3bc511c36 fix(openthread): add some bugfixes to pass CI pipeline 2025-03-25 13:33:03 +08:00
Tan Yan Quan
fceb55dd25 refactor(openthread): move isr_handle_timerX to esp_ieee802154_timer 2025-03-25 13:33:03 +08:00
Tan Yan Quan
b014901619 fix(openthread): calibrate CSL tx parameters 2025-03-25 13:33:03 +08:00
Tan Yan Quan
47cd629459 fix(openthread): modify ETM task numbers for esp32c5 2025-03-25 13:33:03 +08:00
Tan Yan Quan
469b5c14e4 fix(openthread): turn off rx for SSED running CSL during idle 2025-03-25 13:33:01 +08:00
Shen Weilong
e35dbbbee0 feat(bt): added definitions for bluetooth hci vendor commands and events 2025-03-24 20:28:22 +08:00
Shen Wei Long
da1372d691 feat(ble/controller): Deleted useless functions for ESP32-C2 2025-03-24 20:28:22 +08:00
morris
7164043140 fix(usb_serial_jtag): wrong return value in usb_serial_jtag_write_bytes
Closes https://github.com/espressif/esp-idf/issues/15620
2025-03-24 11:46:47 +08:00
Zhang Shuxian
50b5db12e3 docs: Add a note about TWAI multiple instances install 2025-03-24 10:54:29 +08:00
Shen Wei Long
6d9c2b9c0f feat(ble/controller): Deleted useless functions for ESP32-C6/C61/H2/C5 2025-03-21 19:56:59 +08:00
zhiweijian
119048bb75 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3 (d74042a8)
- Remove unused functions in the controller
2025-03-21 19:44:30 +08:00
baohongde
57bcbbb449 feat(bt): added definitions for BR/EDR hci vendor commands and events 2025-03-21 19:32:22 +08:00
chenjianhua
bc38724221 fix(bt): Update bt lib for ESP32(dc1cd581)
- Remove unused functions in the controller
- Add an SDK config for the minimum size of encryption key
2025-03-21 19:29:32 +08:00
Jiang Jiang Jian
8b80e26f4d Merge branch 'bugfix/11r_compile_error_v5.4' into 'release/v5.4'
fix(wifi): Fixed compilation error when 11KV is disabled and 11R is enabled (v5.4)

See merge request espressif/esp-idf!37865
2025-03-21 17:38:45 +08:00
Jiang Jiang Jian
74eadefb1a Merge branch 'bugfix/fix_github_cert_verification_simpleota_v5.4' into 'release/v5.4'
fix: failing Github certificate verification (v5.4)

See merge request espressif/esp-idf!37824
2025-03-21 16:55:17 +08:00
Jiang Jiang Jian
b1d0ffba15 Merge branch 'feat/add_protocomm_sec_patch_config_v5.4' into 'release/v5.4'
feat(protocomm): add (hidden) config option to indicate security patch feature (v5.4)

See merge request espressif/esp-idf!37790
2025-03-21 16:54:50 +08:00
xiongweichao
e74cae7016 fix(bt/bluedroid): fixed other events being reported when disconnected
- Since no initial value is assigned, the variable evt is a random value,
causing the ESP_BT_GAP_DISC_STATE_CHANGED_EVT event to be reported when
the connection is disconnected.
2025-03-21 11:11:37 +08:00
Sudeep Mohanty
3f5f6ec13e fix(ringbuf): xRingbufferReceive() crashes for allow-split buffers
This commit adds an assert check to xRingbufferReceive() and
xRingbufferReceiveFromISR() functions to prevent them from being used to
retrieve items from an allow-split buffer. Corresponding documentation
has also been updated.
2025-03-20 11:48:59 +01:00
Xu Si Yu
db3840e94d feat(tcp_transport): add an api to configure the addr family 2025-03-20 16:07:54 +08:00
Chen Jichang
916af811f4 fix(rmt): fix the received symbols issue 2025-03-20 10:36:45 +08:00
Radim Karniš
1aeb50d497 fix(idf_tools): Validate input features 2025-03-19 21:44:18 +01:00
Radim Karniš
a262ce2cc7 fix(idf_tools): Patch extractall() deprecation warning 2025-03-19 13:48:15 +01:00
luaijun
c8508e992f ci(c2/c3): add major eco version tests 2025-03-19 18:40:21 +08:00
yiwenxiu
8b72fa3c17 feat(openthread): fix ci avahi service cases issue 2025-03-19 18:08:02 +08:00
Kapil Gupta
a2d0171a17 ci(wifi): Add builds for FT, RRM and WNM configs 2025-03-19 12:43:30 +05:30
Kapil Gupta
24fed6d3c2 fix(wifi): Fixed compilation error when 11R is enabled without 11KV 2025-03-19 12:43:20 +05:30
armando
4bd0d04c2f feat(psram): supported new octal psram on s3 2025-03-19 10:20:44 +08:00
Zhao Wei Liang
86001719b3 feat(ble): change nimble whitelist max size to 31
(cherry picked from commit 93357e8613)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:05:00 +08:00
Zhao Wei Liang
2662cdd232 feat(ble): change whitelist max size to 31 on ESP32-C5
(cherry picked from commit fdae270427)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:58 +08:00
Zhao Wei Liang
8297b40cf5 feat(ble): change whitelist max size to 31 on ESP32-C2
(cherry picked from commit 578f2358c6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:56 +08:00
Zhao Wei Liang
1fe9c33ea2 feat(ble): change whitelist max size to 31 on ESP32-C6
(cherry picked from commit 2b435687b0)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:53 +08:00
Zhao Wei Liang
11aca2398b fix(ble): Fixed warning that the gpio is not usable when reconfig hci uart pin
(cherry picked from commit 57417ca30f)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:51 +08:00
Zhao Wei Liang
5d5c0209e6 fix(ble): fixed hci driver stack protection fault issue on ESP32-C5
(cherry picked from commit 132e0d6695)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:49 +08:00
Zhao Wei Liang
bd1223cc91 fix(ble): fixed hci driver stack protection fault issue on ESP32-C2
(cherry picked from commit afd44d14b9)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:47 +08:00
Zhao Wei Liang
f496072977 fix(ble): fixed hci driver stack protection fault issue on ESP32-C6
(cherry picked from commit ec4a1324f5)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:44 +08:00
Zhao Wei Liang
1626f36867 fix(ble): delete ble_hci_trans header file
(cherry picked from commit 327182e3e6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:42 +08:00
Zhao Wei Liang
abc7beac70 fix(ble): fixed hci assertion issue when uart interference occurs
(cherry picked from commit 84f0b39e4d)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:40 +08:00
Ashish Sharma
a83a0ab02b fix(component/mbedtls): Adds github root cert to cmn_crt_authorities.csv 2025-03-18 14:36:18 +08:00
Mahavir Jain
291a008840 feat(protocomm): add (hidden) config option to indicate security patch feature 2025-03-17 13:30:45 +05:30
peter.marcisovsky
1b4fd125c4 fix(jpeg_decoder): Correctly handle invalid 0xffff JPEG marker 2025-03-14 22:16:27 +08:00
peter.marcisovsky
16d16320ce feat(jpeg_decode): Add support for default Huffman tables
- In case of a missing Huffman table, while decoding a JPEG image
    - Define a default Huff table and add it to JPEG image header
2025-03-14 22:16:27 +08:00
peter.marcisovsky
52f380741c feat(jpeg_decoder): Correctly set JPEG restart interval 2025-03-14 22:16:27 +08:00
Island
5cbd2a3877 Merge branch 'bugfix/reduce_controller_bin_size_v5.4' into 'release/v5.4'
fix(ble/controller): reduce controller bin size (backport v5.4)

See merge request espressif/esp-idf!37754
2025-03-14 19:26:56 +08:00
zhanghaipeng
cdefff9cc5 feat(ble/bluedroid): Support read periodic advertiser list size command 2025-03-14 18:03:31 +08:00
zhiweijian
7f5af25348 feat(ble/bluedroid): reduce bluedrois host bin size and disable BLE_HOST_BG_CONNECT_EN 2025-03-14 18:03:31 +08:00
zhiweijian
85fe2c584b feat(ble/bluedroid): disable bluedroid host unused functions 2025-03-14 18:03:31 +08:00
zhiweijian
694ed47dbb feat(bt/bluedroid): optimize bluedroid menuconfig 2025-03-14 18:03:31 +08:00
zhiweijian
388626019e feat(bt/bluedroid): delete unused host congest check 2025-03-14 18:03:31 +08:00
Zhang Shuxian
3bb893414c docs: Update static for i2c.rst 2025-03-14 12:00:40 +08:00
morris
eca61e07ce fix(i2c): add Kconfig to skip driver conflict check 2025-03-14 11:17:58 +08:00
zhiweijian
c26ce742cf fix(ble/controller): reduce controller bin size 2025-03-14 11:10:20 +08:00
morris
9b493740ab Merge branch 'fix/change_pm_lock_type_v5.4' into 'release/v5.4'
fix(pm): use CPU lock in dirvers use axi dma to access psram (v5.4)

See merge request espressif/esp-idf!37712
2025-03-13 13:51:08 +08:00
Chen Jichang
3d55047a09 fix(drivers): use CPU_MAX lock in dirvers use axi dma to access psram 2025-03-13 11:20:27 +08:00
morris
2bed64fafc fix(axi_icm): qos can be applied to read and write independently 2025-03-12 21:36:53 +08:00
Tomáš Rohlínek
8e0239f04b fix(storage/console): fix test configuration 2025-03-12 20:06:31 +08:00
Tomáš Rohlínek
c6d24bddf7 fix(storage/vfs_console): stop new console opens from overwriting existing fds 2025-03-12 20:06:31 +08:00
Ivan Grokhotkov
c27683eb98 test(sdmmc): add test for high-prio task busy while writing
Related to https://github.com/espressif/esp-idf/issues/13934
2025-03-12 10:30:58 +08:00
Ivan Grokhotkov
4bd2322993 fix(sdmmc): move DMA descriptor refilling into the ISR
Previously, as DMA descriptors were processed, the task performing
SDMMC transfer would get woken up and would refill the descriptors.
This design didn't work correctly when higher priority tasks occupied
the CPU for too long, resulting in SDMMC transfer timing out.

This change moves DMA descriptor refilling into SDMMC ISR. Now the
"DMA done" interrupt is delivered back to task context only when
the entire transfer is completed.

Closes https://github.com/espressif/esp-idf/issues/13934
2025-03-12 10:30:53 +08:00
armando
53d019563b refactor(psram): rename .bss .noinit segments to sections
Closes https://github.com/espressif/esp-idf/pull/15513
2025-03-11 11:43:01 +08:00
Erki Aring
d23549db4c fix(psram): correct heap vaddr calculation
- fixes https://github.com/espressif/esp-idf/issues/15496

Signed-off-by: armando <douyiwen@espressif.com>
2025-03-11 11:42:57 +08:00
zwx
959dbe37ad feat(802.15.4): configure tx on delay using phylib impl 2025-03-11 11:36:11 +08:00
Island
061ba0c99e Merge branch 'bugfix/disable_dbg_hci_cmd_on_esp32_v5.4' into 'release/v5.4'
Disable debug vendor hci command on ESP32 (v5.4)

See merge request espressif/esp-idf!37630
2025-03-11 11:10:51 +08:00
Jiang Jiang Jian
7c0e10ba41 Merge branch 'bugfix/fix_some_wifi_bugs_202502_v5.4' into 'release/v5.4'
fix(sniffer): fix channel in rx_ctrl is zero when using sniffer(Backport v5.4)

See merge request espressif/esp-idf!37568
2025-03-11 10:41:30 +08:00
Jiang Jiang Jian
4f39b2476e Merge branch 'bugfix/wps_reconnect_failure_v5.4' into 'release/v5.4'
fix(wpa_suppplicant): Fix for issue in wps reconnection (Backport v5.4)

See merge request espressif/esp-idf!37641
2025-03-11 10:40:45 +08:00
Jiang Jiang Jian
f8843158b2 Merge branch 'bugfix/provisioning_sec2_aes_iv_usage_v5.4' into 'release/v5.4'
fix(provisioning): fix incorrect AES-GCM IV usage in security2 scheme (v5.4)

See merge request espressif/esp-idf!37613
2025-03-11 10:40:27 +08:00
Jiang Jiang Jian
8e031cf8c3 Merge branch 'fix/fix_esp32s3_reboot_cache_failure_v5.4' into 'release/v5.4'
fix(esp_system): fix possible cache_error by another core accessing flash in esp_restart (v5.4)

See merge request espressif/esp-idf!37586
2025-03-10 21:04:24 +08:00
Sarvesh Bodakhe
f86473e255 fix(wifi): Resolved WPS connectivity issue with pre-connected stations
This fixes the issue where station was not able connect using WPS if it was
already in connected state.

wifi_wps_scan_done() issues an esp_wifi_disconnect() before
calling esp_wifi_connect() to associate with the newly discovered AP. This
behavior incorrectly triggered a failure event (WIFI_EVENT_STA_WPS_ER_FAILED)
even though the disconnection was part of the normal WPS flow. This commit
prevents sending the false failure event, ensuring expected WPS behavior.
2025-03-10 14:58:12 +05:30
Aditi
24f00874af fix(wpa_suppplicant): Add fix for issue in wps reconnection 2025-03-10 14:58:06 +05:30
Song Ruo Jing
e774dbfd0f fix(uart): LP UART does not have the pre-divider for its clock source
Closes https://github.com/espressif/esp-idf/issues/15427
2025-03-10 15:29:09 +08:00
chenjianhua
6bad67bf3c fix(bt): Update bt lib for ESP32(e250cf1)
- Disable debug vendor hci command
2025-03-10 15:23:42 +08:00
gongyantao
8eab42d7e1 fix(bt): fixed some issues in bt controller
- fixed the issue where the NULL pointer was deferenced in lc_free state
- avoid accessing released ACL resources in SCO logic
2025-03-10 15:23:33 +08:00
Jin Cheng
9d59600746 fix(bt/controller): fixed some controller bugs on ESP32.
1. added a VSC to control whether to initiate lmp_auto_rate
        - Closes https://github.com/espressif/esp-idf/issues/15133
    2. fixed EA resource cleanup error after SNIFF negotiation failure
        - Closes https://github.com/espressif/esp-idf/issues/13605
    3. removed an assertion in SCO data TX handler after disconnection
        - Closes https://github.com/espressif/esp-idf/issues/15176
2025-03-10 15:23:17 +08:00
shenmengjing
aa60465e13 docs(provisioning): Sync CN translation and EN source 2025-03-10 09:29:47 +05:30
Mahavir Jain
2469db58a9 fix(esp_local_ctrl): update for changes in protocomm security2 scheme 2025-03-10 09:29:44 +05:30
Mahavir Jain
109532bbf9 fix(docs): update for changes in provisioning security2 scheme 2025-03-10 09:29:42 +05:30
Mahavir Jain
6d749486b9 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 09:29:39 +05:30
Mahavir Jain
2fa5c7d9eb fix(protocomm): memory leak issue for session command0 failure case 2025-03-10 09:29:35 +05:30
wuzhenghui
6de3fde3c2 fix(esp_system): fix possible cache_error by another core accessing flash in esp_restart 2025-03-10 11:40:10 +08:00
yinqingzhao
e72c3b4ee4 fix(sniffer): fix channel in rx_ctrl is zero when using sniffer 2025-03-10 11:39:33 +08:00
Jiang Jiang Jian
9fcb33d3ac Merge branch 'bugfix/c5_libphy_20250124_v5.4' into 'release/v5.4'
change(ble): update c5 beta5 lib phy to phy_version: 1 103, 48ac5755, Feb 22 2025 (v5.4)

See merge request espressif/esp-idf!37514
2025-03-10 11:38:57 +08:00
Jiang Jiang Jian
e1b32b4363 Merge branch 'fix/sleep_cpu_mspi_freq_mismatch_issue_p4_v5.4' into 'release/v5.4'
mspi: fixed cpu and mspi freq mismatch issue when in dfs/sleep on p4 (v5.4)

See merge request espressif/esp-idf!37583
2025-03-10 11:27:44 +08:00
armando
b806496635 test(cam): added cache-safe build test 2025-03-10 10:34:36 +08:00
armando
a446e78469 refactor(cam): rename IRAM-Safe to Cache-Safe 2025-03-10 10:34:32 +08:00
armando
20014ea97c fix(cam): fixed cam iram safe build error 2025-03-10 10:34:27 +08:00
Erhan Kurubas
38d17fe1cd test(apptrace): enable esp32c5 and esp32c61 tests 2025-03-09 17:28:27 +01:00
Erhan Kurubas
288dfc7c2b test(apptrace): run tests from custom OpenOCD class 2025-03-08 21:00:14 +01:00
wuzhenghui
7f88cf3ee9 change(esp_hw_support): only do mpll disable in lightsleep process 2025-03-08 14:06:12 +08:00
Armando
419e8b2e20 fix(mspi): fixed cpu and mspi freq mismatch issue when in dfs/sleep on p4 2025-03-08 14:06:09 +08:00
Song Ruo Jing
d8c1d9f603 fix(gpio): fix bad bit shift operation and OOB (h2) in io_mux.c 2025-03-07 21:16:18 +08:00
Song Ruo Jing
3d08efd83a refactor(uart): increase test app memory leak tolerance 2025-03-07 21:15:51 +08:00
Song Ruo Jing
9f08e5e9d8 fix(ppa): fix ppa srm potentially get blocked when scaling to YUV420
YUV420 requires scale_x_frag, scale_y_frag be even
2025-03-07 21:04:49 +08:00
Song Ruo Jing
9004e5009a fix(dma2d): dma2d_force_end should not crash when rx channel is idle 2025-03-07 21:04:49 +08:00
Song Ruo Jing
24747868dd docs(uart): aligned the config order in the programming guide with examples
Closes https://github.com/espressif/esp-idf/issues/13182
2025-03-07 21:01:16 +08:00
Song Ruo Jing
602393dfea fix(uart): enlarged task stack size for uart_async_rxtxtasks example
Meanwhile, added CI pytest for some UART examples

Closes https://github.com/espressif/esp-idf/issues/15363
2025-03-07 21:01:16 +08:00
Song Ruo Jing
9aaa4f9e9c fix(ledc): overflowed integer argument in ledc_hal_clear_left_off_fade_param 2025-03-07 20:33:01 +08:00
Guillaume Souchere
6545e21f4b fix(esp_hw_support): esp_ptr_in_rtc_iram_fast check to return false
esp_ptr_in_rtc_iram_fast logic should be executed if
SOC_RTC_FAST_MEM_SUPPORTED is set but it should also be executed
if IRAM and DRAM region mapping is the same. Remove the
SOC_RTC_IRAM_LOW != SOC_RTC_DRAM_LOW part of the check.

Update heap component to use the modify function appropriately.
2025-03-07 12:21:22 +01:00
Jan Beran
f943491014 fix(kconfig): Fix issues with Kconfig files 2025-03-07 11:31:37 +01:00
Song Ruo Jing
bea4615d0c docs(ledc): add notes for ledc_set_fade_with_time API reference
Closes https://github.com/espressif/esp-idf/issues/15085
2025-03-07 17:22:40 +08:00
Song Ruo Jing
b2dbcd7804 fix(ledc): left-off gamma ram registers should be cleared
Hardware reads in (range_number+1) fade parameter registers, which could
cause output waveform error.
2025-03-07 17:22:39 +08:00
Song Ruo Jing
351e11ebd2 fix(ledc): updated docs for esp32h2 eco5 bugfix 2025-03-07 17:22:39 +08:00
morris
22d2b85c11 fix(spi): removed PERIPH_CTRL_FUNC_IN_IRAM dependency 2025-03-07 15:44:43 +08:00
Jiang Jiang Jian
3f69abdb7e Merge branch 'bugfix/11kv_config_break_v5.4' into 'release/v5.4'
fix(esp_wifi): Correctly break 11kv config into wnm and rrm configs (v5.4)

See merge request espressif/esp-idf!37478
2025-03-07 10:55:28 +08:00
Sudeep Mohanty
cd887ef59a 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:17:26 +01:00
Christopher Durand
72d4204a6f fix(esp_http_client): Fix invalid content length header
In case a request with no content is sent after one with the content
length header set the header of the previous request is sent with the
subsequent one.
For instance, an empty GET request after a PUT request will still
indicate the non-zero content length of the previous request.

This is fixed by clearing the content length header when it shouldn't be
set.
2025-03-06 12:18:20 +05:30
Jiang Jiang Jian
b0306575a8 Merge branch 'fix/fix_ot_uart_init_bug_v5.4' into 'release/v5.4'
fix(openthread): fix a bug of openthread uart init port (v5.4)

See merge request espressif/esp-idf!37322
2025-03-06 14:44:11 +08:00
Jiang Jiang Jian
3144cef12e Merge branch 'fix/secure_boot_verfication_failure_sig_block_key_digest_mismatch_combo_v5.4' into 'release/v5.4'
fix(bootloader_support): Fix SB verification failure when application is not signed with the boot loader's first key (v5.4)

See merge request espressif/esp-idf!37497
2025-03-06 10:36:01 +08:00
Jiang Jiang Jian
2ed77df856 Merge branch 'fix/fix_bad_dslp_param_after_lightsleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fixed the issue that light sleep destroyed the parameters of subsequent deep sleep (v5.4)

See merge request espressif/esp-idf!37302
2025-03-06 10:35:11 +08:00
Erhan Kurubas
fcd48a71d7 test(hmac_soft_jtag): check jtag connection status properly 2025-03-05 15:34:04 +01:00
Erhan Kurubas
61f30a58fb feat(tools): update openocd version to v0.12.0-esp32-20250226 2025-03-05 15:31:26 +01:00
Zhou Xiao
78f615f979 change(ble): update c5 beta5 lib phy to phy_version: 1 103, 48ac5755, Feb 22 2025 2025-03-05 19:55:42 +08:00
Kapil Gupta
793fe61c81 fix(esp_wifi): Prevent flushing of FT data mistakenly 2025-03-05 12:41:10 +05:30
Kapil Gupta
2ed843bdd2 fix(esp_wifi): Correctly break 11kv config into wnm and rrm configs 2025-03-05 12:40:54 +05:30
Shreeyash
7650812920 feat(nimble): Allow BLE SPP Client to subscribe to the server 2025-03-05 11:38:16 +05:30
harshal.patil
0076bb0289 fix(secure_boot): Fix SB verification failure when sig block and key digest mismatch
- Secure boot V2 verification failed when multiple keys are used to sign the bootloader
  and the application is signed with a key other than the first key that is used to
  sign the bootloader.
- The issue was introduced as a regression from the commit `ff16ce43`.
2025-03-05 11:26:33 +05:30
harshal.patil
0cdcd3a0fb fix(esp_psram): Fix incorrect calculation of used XIP PSRAM pages
The functions mmu_config_psram_text_segment() and mmu_config_psram_rodata_segment()
used to return the value of next start page in *out_page instead of the number
of pages used as mentioned in the documentation
2025-03-05 10:37:21 +05:30
Jiang Jiang Jian
5afa94872b Merge branch 'fix/sdmmc_concurrency_slot_count_doesnt_work_v5.4' into 'release/v5.4'
fix(sdmmc): SDMMC concurrency change active slot only after the slot is initialized (v5.4)

See merge request espressif/esp-idf!36653
2025-03-05 10:38:08 +08:00
Zhang Hai Peng
52390f9b3e feat(ble/bluedroid): Add Read Long Characteristic Values example
(cherry picked from commit 32e4fb79e8)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-03-04 22:13:41 +08:00
Sudeep Mohanty
528b1b3c37 fix(lp_uart): Update the lp_core_uart_tx_flush() API to wait for Tx idle
This commit updates the lp_core_uart_tx_flush() API to wait for the Tx line
to become idle, therefore confirming that all bytes are sent out.

Closes https://github.com/espressif/esp-idf/issues/15433
2025-03-04 08:52:22 +01:00
morris
fe2bf07209 fix(example): wrong ws2812 reset duration
Closes https://github.com/espressif/esp-idf/issues/15498
2025-03-04 11:10:44 +08:00
morris
f305313922 fix(lcd): DC signal shound't affect the input path of the GPIO
With this fix, user can use the same GPIO for both LCD DC output and SPI
MISO input.

Closes https://github.com/espressif/esp-idf/issues/15478
2025-03-03 18:29:17 +08:00
Zhang Shuxian
cbbfdb1e3d docs: Provide CN translation for nvs bootloader and fix broken link 2025-03-03 17:10:30 +08:00
Jiang Jiang Jian
d4aa25a38e Merge branch 'docs/fix_some_coexist_doc_issue_v5.4' into 'release/v5.4'
docs(coex): update rf coexistence documents (v5.4)

See merge request espressif/esp-idf!37344
2025-03-03 11:39:01 +08:00
Jiang Jiang Jian
57d976b7f3 Merge branch 'feat/add_h2_config_and_maxver_for_v5.4' into 'release/v5.4'
feat(soc): add Kconfig rev min option and increase max ver for H2 v1.2 (v5.4)

See merge request espressif/esp-idf!36416
2025-03-03 11:38:41 +08:00
Jiang Jiang Jian
154b7548cb Merge branch 'docs/wifi_wpa3_ent_migration_guide_backport_v5.4' into 'release/v5.4'
docs: Add migration guide for WPA3-Enterprise authentication modes for v5.4 (Backport v5.4)

See merge request espressif/esp-idf!37189
2025-03-03 11:36:51 +08:00
morris
9a93c89945 feat(gdma): allow bypass the alignment check in the link driver
Closes https://github.com/espressif/esp-idf/issues/15228
2025-03-03 11:21:22 +08:00
Zhang Hai Peng
0eb4b9aa15 fix(ble/controller): Fix BLE Kconfig on ESP32 to avoid unexpected behavior
(cherry picked from commit 9496949132)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-03-03 11:13:46 +08:00
Jan Beran
f7bf1a992c change: move check_deprecated_configs.py file to esp-idf-kconfig 2025-02-28 14:51:09 +01:00
wuzhenghui
e549dca8ae change(doc): added more usage notes & warings about PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP 2025-02-28 16:43:02 +08:00
peter.marcisovsky
aae16c1cfd fix(usb_host): Fixing dererence to OTG_NUM_HOST_CHAN in docs 2025-02-28 09:21:27 +01:00
Jin Cheng
8c1b39f2df fix(bt/bluedroid): fixed memory leaks in SPP callback mode 2025-02-28 16:11:33 +08:00
Tomas Rezucha
141c4414ee fix(usb/phy): Fixed crash on external PHY init with speed != UNDEFINED
Also deprecated usb_phy_otg_dev_set_speed()
and usb_phy_action() which are no longer used in esp-idf
2025-02-27 15:08:28 +01:00
Roman Leonov
894cecf174 fix(usb_phy): Removed pad pull override config for Full-speed 2025-02-27 15:08:28 +01:00
Sudeep Mohanty
3675245a23 fix(ulp-riscv): Fixed ADC oneshot initialization for ULP RISC-V
This commit fixes a bug in the ADC oneshot driver initialization for the
ULP RISC-V.
2025-02-27 15:06:18 +01:00
linruihao
7b95c5d571 docs(coex): update rf coexistence documents
- remove BLE connecting state in coexistence scenario
- remove WIFI section in H2 docs
2025-02-27 11:06:49 +08:00
Shu Chen
7e31189ede docs(coex): add the supported coexistence scenario for Wi-Fi and 802.15.4 2025-02-27 11:05:51 +08:00
Ondrej Kosta
0121f4fc40 fix(esp_eth): init Ethernet after repl init in iperf example 2025-02-26 13:38:18 +00:00
Xu Si Yu
99fe472c8f fix(openthread): fix a bug of openthread uart init port 2025-02-26 19:22:02 +08:00
C.S.M
44315b715c feat(temperature_sensor): Add temperature sensor calibration support 2025-02-26 17:50:54 +08:00
wuzhenghui
6e2b2a0e54 fix(esp_hw_support): fix lightsleep destroys deepsleep rtc parameters 2025-02-26 16:51:46 +08:00
Xiao Xufeng
e1ef60deef feat(soc): add Kconfig rev min option and increase max ver for H2 v1.2 2025-02-26 15:48:00 +08:00
Zhao Wei Liang
86585699a7 feat(ble): add a debug way to retain scene on ESP32-C5
(cherry picked from commit da07b1fabe)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-26 15:03:49 +08:00
Zhao Wei Liang
ea463572a2 feat(ble): add a debug way to retain scene on ESP32-C6
(cherry picked from commit bc299e784c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-26 15:03:46 +08:00
Zhao Wei Liang
907e11c880 fix(ble): fixed common kconfig error when controller enable only
(cherry picked from commit 5b8ac71ace)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-26 15:03:44 +08:00
Chen Jichang
fc5d2e1bae refactor(rmt): set group clock prescale dynamically
Closes https://github.com/espressif/esp-idf/issues/14760
2025-02-26 14:17:12 +08:00
morris
46cc737580 feat(gptimer): make start and stop function idempotent
Closes https://github.com/espressif/esp-idf/issues/12325
Closes https://github.com/espressif/esp-idf/issues/13486
2025-02-25 11:41:56 +08:00
Erhan Kurubas
a289d1e0fe docs(jtag): add esp32p4 usb jtag pin numbers 2025-02-24 14:44:19 +01:00
Zhang Shuxian
fcfa85cb77 docs: Update CN translation for fatfs 2025-02-21 21:35:06 +08:00
Adam Múdry
d4c9da31e2 feat(fatfs): Add Kconfig options to set FF_FS_NOFSINFO value
Closes https://github.com/espressif/esp-idf/issues/15241
2025-02-21 21:35:06 +08:00
Sarvesh Bodakhe
03e9656ce0 docs: Add migration guide for WPA3-Enterprise authentication modes for v5.4 2025-02-21 16:58:04 +05:30
gongyantao
65f46b68b4 change(bt): optimize the macro definition for sdp_max_pad_len 2025-02-21 17:39:04 +08:00
Mitch Cairns
018aae7c3e feat(bt): Implement SDK Config SDP size options
Closes https://github.com/espressif/esp-idf/pull/15321
2025-02-21 17:39:04 +08:00
nilesh.kale
c107fa24f7 feat(app_update): enabled ota resumption feature
This commit added ota resumption changes for app_update
component. This commit is specifically added for release/v5.4.
2025-02-21 14:38:54 +05:30
Zhang Hai Peng
c2f399b4b0 fix(ble/bluedroid): Fix adv data and scan rsp data not reported together in BLE active scan
(cherry picked from commit 7f2cedc048)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-02-21 16:13:53 +08:00
Jiang Jiang Jian
0ba53566fa Merge branch 'fix/fix_s2_s3_rtc_iomux_clock_management_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32s2/esp32s3 RTC IOMUX clock management (v5.4)

See merge request espressif/esp-idf!37145
2025-02-21 12:19:07 +08:00
linruihao
0c95b541e8 feat(bt/bluedroid): Add Kconfig option to keep device bonding info when HID unplugging 2025-02-21 11:49:48 +08:00
Jiang Jiang Jian
aa97a0fc3c Merge branch 'bugfix/fix_i2s_std_initializer_order_for_cpp_compiler_v5.4' into 'release/v5.4'
fix(i2s): fixed i2s_std initializer order for cpp compiler (v5.4)

See merge request espressif/esp-idf!37047
2025-02-21 11:48:58 +08:00
morris
6150ea9a43 Merge branch 'bugfix/fix_cache_count_flash_pages_patchs_return_wrong_value_v5.4' into 'release/v5.4'
fix(rom): Fix s2 and s3 Cache_Count_Flash_Pages rom function wrapper (v5.4)

See merge request espressif/esp-idf!37153
2025-02-21 10:17:27 +08:00
Jiang Jiang Jian
62db86d229 Merge branch 'fix/memprot-config-used-in-memory-layouts_v5.4' into 'release/v5.4'
fix(heap): Fix wrong config to enable MALLOC_CAP_EXEC in memory_layout.c (backport  v5.4)

See merge request espressif/esp-idf!35200
2025-02-21 10:01:36 +08:00
wuzhenghui
8e6ec50bcc fix(esp_hw_support): fix esp32s2/esp32s3 RTC IOMUX clock management 2025-02-21 09:50:42 +08:00
Jiang Jiang Jian
ccb69d4cf6 Merge branch 'change/ble_update_lib_20250217_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250217 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!37131
2025-02-21 09:44:45 +08:00
Jiang Jiang Jian
0ee066c8b5 Merge branch 'feature/esp32h2_eco5_ecc_v5.4' into 'release/v5.4'
feat(ecc): enable ECC constant time mode for ESP32-H2 ECO5 (v5.4)

See merge request espressif/esp-idf!36581
2025-02-21 09:44:35 +08:00
Martin Vychodil
8a44211856 Merge branch 'bugfix/memprot_s2_intr_peri1_v5.4' into 'release/v5.4'
fix(security): ESP32S2 memory protection check for Peri1 RTCSLOW interrupt (v5.4)

See merge request espressif/esp-idf!37117
2025-02-21 01:57:46 +08:00
laokaiyao
b18506da8b fix(i2s): fixed the pdm2pcm capability on c5 and c61 2025-02-20 21:41:33 +08:00
laokaiyao
4ecb1cec3c docs(i2s): fix some i2s capabilities in programming guide 2025-02-20 21:41:33 +08:00
laokaiyao
1312472337 fix(i2s): fixed i2s_std initializer order for cpp compiler
Closes https://github.com/espressif/esp-idf/issues/15405
2025-02-20 21:41:33 +08:00
morris
a043a96abb Merge branch 'revert/i2s_apll_pm_type_v5.4' into 'release/v5.4'
fix(i2s): lock APB when using apll with DFS feature (v5.4)

See merge request espressif/esp-idf!37144
2025-02-20 21:33:39 +08:00
Zhang Shuxian
2d14e692eb docs: Update CN translation for size.rst 2025-02-20 21:03:10 +08:00
Aditya Patwardhan
b301e03f57 feat(docs): Update minimizing binary size
The ESP32-H2 software countermeasure may not be necessary
        for ESP32-H2 v1.2 and above, this commit updates
        the relevant documentation
2025-02-20 21:03:10 +08:00
laokaiyao
202b74eca8 refactor(ecdsa): rely on efuse to get chip revision 2025-02-20 21:03:10 +08:00
Aditya Patwardhan
2ff128ebf4 fix(soc): Fixed ECDSA register compatibility 2025-02-20 21:03:10 +08:00
Aditya Patwardhan
3bcafe77d8 fix(hal): Make the ECDSA countermeasure dynamically applicable
This commit makes the ECDSA countermeasure dynamically applicable
    across different revisions of the ESP32H2 SoC.
2025-02-20 21:03:10 +08:00
Mahavir Jain
748d29b5ad feat(ecc): enable ECC constant time mode for ESP32-H2 ECO5 2025-02-20 21:03:10 +08:00
Jiang Jiang Jian
2fe702e8f7 Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
Fix/backport wifi fixes v5.4

See merge request espressif/esp-idf!37147
2025-02-20 21:02:14 +08:00
Jiang Jiang Jian
2c3b9ff383 Merge branch 'docs/fix_gps_broken_link_v5.4' into 'release/v5.4'
docs(examples): fixed broken link in uart example readme (v5.4)

See merge request espressif/esp-idf!37149
2025-02-20 20:30:37 +08:00
Jiang Jiang Jian
87d39ac41b Merge branch 'fix/esp_vfs_register_fd_range_warning_message_v5.4' into 'release/v5.4'
fix(storage/vfs): incorrect log level in esp_vfs_register_fd_range (v5.4)

See merge request espressif/esp-idf!36318
2025-02-20 20:29:14 +08:00
Guillaume Souchere
0f74a1608f fix(log): fix file name for esp_log_level_get_timeout 2025-02-20 20:21:31 +08:00
Cristian Funes
f4ed4d4954 fix(log): Modified linker script to move functions from flash to iram 2025-02-20 20:21:31 +08:00
Adam Múdry
1185786adb fix(sdmmc): SDMMC concurrency change active slot only after the slot is initialized
Fixes counting of initialized slots
2025-02-20 20:05:53 +08:00
Island
36ef188b85 Merge branch 'feat/improve_bt_log_spi_output_interface_v5.4' into 'release/v5.4'
Feat/improve bt log spi output interface (v5.4)

See merge request espressif/esp-idf!37137
2025-02-20 19:51:25 +08:00
cjin
f2330fd2fb change(ble): update esp32c6 lib to 7ead2d29 2025-02-20 18:01:46 +08:00
cjin
bbb160a083 change(ble): update esp32c5 lib to 7ead2d29 2025-02-20 18:01:46 +08:00
cjin
49164ce77f change(ble): update esp32h2 lib to 7ead2d29 2025-02-20 18:01:46 +08:00
zwl
18ce40a23a feat(ble): implement ble capture info user handler on ESP32-C5 2025-02-20 18:01:41 +08:00
zwl
aeff03bac4 feat(ble): implement ble capture info user handler on ESP32-C6 and ESP32-H2 2025-02-20 18:00:07 +08:00
Shen Weilong
a92f4ed389 change(ble): Supported cuttable architecture for ble 2025-02-20 17:36:55 +08:00
Tomasz Kramkowski
452e20d90b fix(rom): Fix s2 and s3 Cache_Count_Flash_Pages rom function wrapper
The rom function on the s2 and s3 only counts one page for any pages
which are mapped to page 0 of flash as the Cache_Flash_To_SPIRAM_Copy
function attempts to map all flash page 0 mapped pages to one PSRAM
page.

As this function can be called for multiple regions, it needs to track
if a page mapped to page 0 has previously been accounted for by a
previous call. It does this using the page0_mapped in-out parameter.
This logic contains an error:

```
if (*page0_mapped == 0) {
    // BUG: If page0_count is 0, 1 is still added
    count = valid_flash_count + 1 - page0_count;
} else {
    count = valid_flash_count - page0_count;
}
*page0_mapped += page0_count;
return count;
```

The current Cache_Count_Flash_Pages wrapper in the idf attempts to
compensate for this bug by checking if the page0_mapped parameter was
changed by a call to the function and reducing the count if it has not.

This, however, will incorrectly over-compensate in situations where the
initial value of page0_mapped was not zero as the code above only
miscounts when it was zero.

This patch addresses the issue in this wrapper function by correctly
compensating for the bug only in cases where the final page0_mapped
value is 0.
2025-02-20 15:17:35 +08:00
morris
96c3f6c041 Merge branch 'fix/build_when_rom_patch_disable_v5.4' into 'release/v5.4'
fix(spi_flash): Fix build fail when rom_patch config disabled  (backport v5.4)

See merge request espressif/esp-idf!37103
2025-02-20 14:41:25 +08:00
Jiang Jiang Jian
f9ae8dfb04 Merge branch 'fix/esp32p4_lightsleep_fixes_v5.4' into 'release/v5.4'
fix(esp_hw_support): some fixes of esp32p4 lightsleep retention & power switch process (v5.4)

See merge request espressif/esp-idf!37086
2025-02-20 13:48:50 +08:00
Marius Vikhammer
8f756b6a59 docs(examples): fixed broken link in uart example readme 2025-02-20 12:49:21 +08:00
Aditi
bb639472b9 fix(esp_wifi): Fix for issue in esp_now_send when wifi tx callback registered 2025-02-20 11:39:56 +08:00
tarun.kumar
a7ee422cff fix(wifi): Modify authmode to sta for sta connect event 2025-02-20 11:38:49 +08:00
Jiang Jiang Jian
e9285cc50c Merge branch 'fix/env_var_idf_path_old_not_set_in_ps1_v5.4' into 'release/v5.4'
fix(tools): IDF_PATH_OLD not found in PowerShell (v5.4)

See merge request espressif/esp-idf!37076
2025-02-20 11:29:08 +08:00
Jiang Jiang Jian
6d455feb22 Merge branch 'feature/c3_libphy_20250120_v5.4' into 'release/v5.4'
feat(phy): update libphy for RXDC cal opt, no antenna current opt, add cca api(Backport v5.4)

See merge request espressif/esp-idf!37102
2025-02-20 11:28:13 +08:00
morris
85a53f96ad Merge branch 'bugfix/dma_alignment_for_encryption_memory_v5.4' into 'release/v5.4'
fix(gdma): relax alignment constraint for internal memory (v5.4)

See merge request espressif/esp-idf!37093
2025-02-20 11:11:03 +08:00
morris
5054e0caf3 Merge branch 'fix/i2c_scl_freq_s2_v5.4' into 'release/v5.4'
fix(i2c): Fix scl frequency is wrong on esp32s2 in legacy i2c driver & Add api for customize i2c transaction interface for un-standard i2c device  (backport v5.4)

See merge request espressif/esp-idf!37113
2025-02-20 11:10:13 +08:00
Zhou Xiao
a03b8e13be change(ble): update ble log spi out config for ESP32-C5 2025-02-20 10:56:51 +08:00
Jiang Jiang Jian
ab0e43d75b Merge branch 'bugfix/sdp_uuid16_match_err_v5.4' into 'release/v5.4'
fix(bt): Fix the incorrect record found using uuid16 search(v5.4)

See merge request espressif/esp-idf!36843
2025-02-20 10:56:37 +08:00
morris
cf392937b6 Merge branch 'feature/flash_software_resume_v5.4' into 'release/v5.4'
feat(spi_flash): Add config for adding auto check status after suspend to improve performance (backport v5.4)

See merge request espressif/esp-idf!36525
2025-02-20 10:52:17 +08:00
Jiang Jiang Jian
23db06892b Merge branch 'feat/wait_pll_stable_after_sleep_wakeup_fix_xtal_v5.4' into 'release/v5.4'
feat(esp_hw_support): wait pll stable after sleep wakeup (v5.4)

See merge request espressif/esp-idf!36018
2025-02-20 10:36:20 +08:00
laokaiyao
6f40f19047 docs(i2s): add application notes to es7210 example 2025-02-20 10:22:49 +08:00
laokaiyao
409397f181 fix(i2s): lock APB when using apll with DFS feature
Closes https://github.com/espressif/esp-idf/issues/14707

Append to the commit ad9021a844.
2025-02-20 10:22:49 +08:00
gaoxu
6771e388f4 fix(adc): fix adc oneshot apb cnts incosistency v5.4
closes https://github.com/espressif/esp-idf/issues/14502
2025-02-20 10:20:56 +08:00
gaoxu
ec15fa9e4b fix(adc): fix adc oneshot error after continuous v5.4
closes https://github.com/espressif/esp-idf/issues/14506
2025-02-20 10:20:49 +08:00
Frantisek Hrbata
1de2bee28f fix(tools): honor IDF_PYTHON_ENV_PATH value
The active.py script is currently clearing the IDF_PYTHON_ENV_PATH,
preventing it from being set to a custom location for the python virtual
environment directory. Although the install script checks to ensure that
an existing python virtual environment is not overwritten with one for a
different ESP-IDF version than it was originally created for, we should
still permit setting a custom path for the python virtual environment.

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-02-19 15:37:11 +01:00
Jiang Jiang Jian
69bd12d792 Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
fix(wifi): backport some fixes to v5.4

See merge request espressif/esp-idf!37008
2025-02-19 21:59:20 +08:00
Martin Vychodil
fef8695c7a 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-19 14:25:55 +01:00
Zhou Xiao
d3a639bb06 feat(ble): support ble log spi out for ESP32-C3 and ESP32-S3
(cherry picked from commit e41f619566)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:38 +08:00
Zhou Xiao
e7f712f78f feat(ble): support ble log spi out for ESP32
(cherry picked from commit e2fbec5d2e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:35 +08:00
Zhou Xiao
ef95009563 change(ble): update ble log spi out config for ESP32-H2
(cherry picked from commit 608ecf63e2)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:33 +08:00
Zhou Xiao
5425ab7b83 change(ble): update ble log spi out config for ESP32-C6
(cherry picked from commit e61089e7e0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:29 +08:00
Zhou Xiao
c6ea18fd55 change(ble): update ble log spi out config for ESP32-C2
(cherry picked from commit e4b698fc32)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:27 +08:00
Zhou Xiao
21f7a2b152 feat(ble): improved ble log spi output interface to support multisource log
(cherry picked from commit 2221133ba8)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:24 +08:00
C.S.M
3299b654b9 docs(i2c): Add document for customize i2c transaction interface for un-standard i2c device 2025-02-19 17:43:50 +08:00
C.S.M
d6de1df245 test(i2c): Add test for customize i2c transaction interface for un-standard i2c device 2025-02-19 17:43:50 +08:00
C.S.M
c6161380d3 feat(i2c): Add api for customize i2c transaction interface for un-standard i2c device 2025-02-19 17:43:50 +08:00
C.S.M
bd4f0b44f4 fix(i2c): Fix scl frequency is wrong on esp32s2 in legacy i2c driver,
Closes https://github.com/espressif/esp-idf/issues/15301,
Closes https://github.com/espressif/esp-idf/issues/14603
2025-02-19 17:38:32 +08:00
Island
93651ddbd5 Merge branch 'change/ble_update_lib_20250212_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250212 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!37044
2025-02-19 17:19:04 +08:00
muhaidong
ca1ac73e0e feat(phy): update libphy for RXDC cal opt, no antenna current opt, add cca api 2025-02-19 16:52:43 +08:00
C.S.M
569ac03d7f refactor(spi_flash): remove redundent flash suspend check 2025-02-19 16:50:13 +08:00
C.S.M
4da5de094e fix(spi_flash): Fix build fail when rom_patch config disabled,
Closes https://github.com/espressif/esp-idf/issues/15229
2025-02-19 16:50:03 +08:00
morris
c7e8b6819c Merge branch 'fix/esp_mmu_vaddr_to_paddr_cannot_figure_psram_p4_v5.4' into 'release/v5.4'
mmu: vaddr to paddr cannot figure psram vaddr on esp32p4 (v5.4)

See merge request espressif/esp-idf!37049
2025-02-19 16:48:12 +08:00
wanlei
9ecfa3a0e7 fix(spi_master): fix spi halt when remove device who using rc_fast 2025-02-19 16:44:48 +08:00
Marius Vikhammer
315f0fc3f1 Merge branch 'bugfix/freertos_wcaps_coproc_v5.4' into 'release/v5.4'
fix(freertos): fix a bug in `prvTaskDeleteWithCaps` related to coprocessors (backport v5.4)

See merge request espressif/esp-idf!37081
2025-02-19 16:44:01 +08:00
Island
b9ebf6cd91 Merge branch 'feat/support_ble_debug_with_gpio_v5.4' into 'release/v5.4'
Support change HID task size by Kconfig in HID example (v5.4)

See merge request espressif/esp-idf!36999
2025-02-19 16:37:14 +08:00
morris
36de1af357 fix(gdma): relax alignment constraint for internal memory
external memory encryption should not affect internal memory alignment

Closes https://github.com/espressif/esp-idf/issues/15228
2025-02-19 15:16:08 +08:00
wuzhenghui
b654a78646 change(esp_hw_support): wrapper sleep dcdc/ldo ops with ll 2025-02-19 14:32:22 +08:00
wuzhenghui
8233c250de feat(esp_hw_support): add branch prediction config retention 2025-02-19 14:32:19 +08:00
wuzhenghui
a63e9c5aef fix(esp_hw_support): fix DCDC switch bad software powerdown 2025-02-19 14:32:15 +08:00
wuzhenghui
4542c463c6 change(esp_hw_support): not use ROM Cache invalidate in sleep process to avoid dirtying the L1 Cache 2025-02-19 14:32:12 +08:00
wuzhenghui
ea05eba7f5 feat(esp_hw_support): do mstatus restore on each core 2025-02-19 14:32:08 +08:00
wuzhenghui
228e74e06c feat(esp_hw_support): do esp32p4 l1 cache invalidate by regdma 2025-02-19 14:32:04 +08:00
wuzhenghui
f3cc52d234 feat(esp_hw_support): do esp32p4 l1&l2 cache regs retention by regdma 2025-02-19 14:32:00 +08:00
Jiang Jiang Jian
da3f2ea5ce Merge branch 'fix/add_sleep_duration_check_for_timer_wakeup_v5.4' into 'release/v5.4'
fix(esp_hw_support): add timer wakeup sleep duration check (v5.4)

See merge request espressif/esp-idf!37010
2025-02-19 13:48:17 +08:00
Jiang Jiang Jian
c7c332761a Merge branch 'fix/disable_wfe_feature_for_e906_chips_v5.4' into 'release/v5.4'
change(esp_hw_support): disable CPU wait-for-event mode on cpu start (v5.4)

See merge request espressif/esp-idf!37000
2025-02-19 13:48:02 +08:00
Nachiket Kukade
597cfcb4f3 feat(wifi): Enable Wi-Fi Aware (NAN) for ESP32C5 and ESP32C61 2025-02-19 10:48:43 +08:00
muhaidong
cbcfecd604 fix(wifi): fix some esp32p4 host issues 2025-02-19 10:48:43 +08:00
zhangyanjiao
2e55890069 fix(wifi): update wifi lib for doc changes 2025-02-19 10:48:43 +08:00
Linda
afab2130fd docs: update the API description for esp-wifi_scan_get_ap_records 2025-02-19 10:48:43 +08:00
Nachiket Kukade
50e700792b fix(esp_wifi): Check SSID from Assoc Req before starting SA Query 2025-02-19 10:48:43 +08:00
Sarvesh Bodakhe
0a33f8fda0 fix(wifi): Fix crash when failure_retry_cnt is set in station config
Fixes the regression introduced by 21c2bef602
2025-02-19 10:48:43 +08:00
Sarvesh Bodakhe
b565bbdbab fix(wifi): Fix stack overflow when failure_retry_cnt is set
Fix issue of increased stack usage when failure_retry_cnt is set
and wifi driver internally retries connection attempts
2025-02-19 10:48:43 +08:00
muhaidong
df4667849c fix(wifi): fix wep shared auth connect fail issue 2025-02-19 10:48:43 +08:00
wangtao@espressif.com
35771eed0e fix(wifi): fix max idle period 1 issue 2025-02-19 10:48:43 +08:00
Omar Chebib
54f257b909 fix(freertos): fix a bug in prvTaskDeleteWithCaps related to coprocessors
When a coprocessor is used, the stack pointer is altered. It must be restored
before freeing the memory allocated to the task.
2025-02-19 10:22:23 +08:00
morris
15e75f21a7 Merge branch 'fix/adc_func_register_not_reset_issue_v5.4' into 'release/v5.4'
adc: func register not reset issue (v5.4)

See merge request espressif/esp-idf!37045
2025-02-19 10:02:29 +08:00
Shu Chen
11b3f939a4 Merge branch 'support/ieee802154_get_rssi_comp_from_phy_v5.4' into 'release/v5.4'
feat(802.15.4): support ieee802154 get rssi comp from phylib (v5.4)

See merge request espressif/esp-idf!37051
2025-02-19 10:00:38 +08:00
Adam Múdry
8db2420a2e fix: test_nvs_gen_check.py support for read-only NVS partitions 2025-02-18 16:33:43 +01:00
Marek Fiala
1fa9db53bd fix(tools): IDF_PATH_OLD not found in PowerShell
Closes https://github.com/espressif/esp-idf/issues/15396
2025-02-18 16:09:00 +01:00
morris
bcb3c32d3a Merge branch 'bugfix/sdmmc_reset_pins_slot_width_v5.4' into 'release/v5.4'
fix(sdmmc): fix reset of pins above slot width (v5.4)

See merge request espressif/esp-idf!36874
2025-02-18 22:53:26 +08:00
Ivan Grokhotkov
8ad144a415 fix(sdmmc): fix missed deinitialization of CD and WP pins in f8f40ad
Related to https://github.com/espressif/esp-idf/issues/15330
2025-02-18 12:23:16 +01:00
Ivan Grokhotkov
722cc23a89 fix(sdmmc): fix reset of pins above slot width
Closes https://github.com/espressif/esp-idf/issues/15328
2025-02-18 12:23:16 +01:00
wuzhenghui
95fb085fe3 fix(esp_hw_support): add timer wakeup sleep duration check
Closes https://github.com/espressif/esp-idf/issues/15255
2025-02-18 19:21:57 +08:00
Jiang Jiang Jian
c93d7d0132 Merge branch 'bugfix/idf-11643_v5.4' into 'release/v5.4'
backport v5.4: fix some issues on esp32c61 eco2

See merge request espressif/esp-idf!36987
2025-02-18 19:21:21 +08:00
wuzhenghui
1e11f287e1 change(esp_hw_support): disable CPU wait-for-event mode on cpu start 2025-02-18 19:21:09 +08:00
Marius Vikhammer
36ae237691 Merge branch 'fix/usb-cdc-non-blocking-read_v5.4' into 'release/v5.4'
fix(esp_vfs_console): USB CDC read when non blocking (backport v5.4)

See merge request espressif/esp-idf!36750
2025-02-18 12:17:08 +08:00
zwx
44e7fecbe6 feat(802.15.4): use btbb function to get rssi comp for h2 2025-02-18 12:09:25 +08:00
Armando
03e344df86 test(flash_mmap): added psram enabled test for esp32p4 as mmu is per target 2025-02-18 11:50:52 +08:00
Armando
253fc4f35a test(mmu): added test for checking esp_mmu_vaddr_to_paddr with psram vaddrs 2025-02-18 11:49:50 +08:00
Armando
7bbfe91432 fix(mmu): fixed esp_mmu_vaddr_to_paddr cannot figure out psram vaddr issue on esp32p4 2025-02-18 11:49:45 +08:00
Marius Vikhammer
7a71c4bb65 Merge branch 'test/fix_flaky_lp_uart_tests_v5.4' into 'release/v5.4'
fix(lp_uart): Fixed flaky LP UART unit tests (v5.4)

See merge request espressif/esp-idf!37023
2025-02-18 11:15:09 +08:00
Li Shuai
61fb531471 fix(esp_hw_support): fix the issue of mmu table content loss due to default sd signal 2025-02-18 10:39:50 +08:00
Armando
a387ec0123 fix(adc): fixed adc function register not reset issue 2025-02-18 10:33:25 +08:00
zwl
8e5aee2261 feat(ble): support enhanced controller log capabilities on ESP32-C5 2025-02-18 10:32:44 +08:00
zwl
3c6236df50 feat(ble): add channel assessment and enhanced connect function on ESP32-C5 2025-02-18 10:32:28 +08:00
zwl
8eb5c15376 change(ble): [AUTO_MR] Update lib_esp32c5 to 1d7eebaf 2025-02-18 10:32:09 +08:00
Zhou Xiao
9912a9c029 feat(ble): support enhanced controller log capabilities on ESP32-C2
(cherry picked from commit bbcb4a2e1f)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:47 +08:00
Zhou Xiao
de1cbf7f2f feat(ble): support enhanced controller log capabilities on ESP32-C6 and ESP32-H2
(cherry picked from commit f598976c6b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:44 +08:00
Zhou Xiao
e6b590b243 feat(ble): add channel assessment and enhanced connect function on ESP32-H2
(cherry picked from commit 0ffac92586)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:41 +08:00
Zhou Xiao
b9616fdd7f feat(ble): add channel assessment and enhanced connect function on ESP32-C6
(cherry picked from commit 821e587fda)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:39 +08:00
Zhou Xiao
553992e1fa change(ble): [AUTO_MR] Update lib_esp32c6 to 1d7eebaf
(cherry picked from commit 4579e083ef)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-18 10:23:36 +08:00
Zhou Xiao
95a101d359 change(ble): [AUTO_MR] Update lib_esp32h2 to 1d7eebaf
(cherry picked from commit 4f0e0f371a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-18 10:23:33 +08:00
Shu Chen
e37d33cc1c Merge branch 'feature/disable-c5-ci-build' into 'release/v5.4'
feat(zigbee): disable the build process of zigbee example on esp32c5

See merge request espressif/esp-idf!37024
2025-02-18 09:34:14 +08:00
xieqinan@espressif.com
60f820e7c0 feat(zigbee): disable the build process of zigbee example on esp32c5 2025-02-17 18:54:08 +08:00
Sudeep Mohanty
1e5308211d fix(lp_uart): Fixed flaky LP UART unit tests
This commit fixes some flaky LP UART multi device tests. It also adds
code to put the HP core to light sleep for few tests.
2025-02-17 10:29:04 +01:00
Martin Vychodil
e6815fd6a5 Merge branch 'bugfix/storage_generic_pytests_v5.4' into 'release/v5.4'
fix(ci): Removed storage related entries in known generate test child pipeline warnings (v5.4)

See merge request espressif/esp-idf!36683
2025-02-17 17:09:08 +08:00
wuzhenghui
003a7f6bcb fix(esp_hw_support): fix lp/hp clock wait time calculation after wait pll ready 2025-02-17 16:53:28 +08:00
wuzhenghui
67a4de4e77 change(esp_hw_support): switch to sleep_flags earlier to identify sleep state 2025-02-17 16:53:28 +08:00
wuzhenghui
87c4227e44 change(esp_hw_support): wait pll calibration done in regdma link instead of wait fixed value 2025-02-17 16:53:27 +08:00
Jiang Jiang Jian
c3044cad28 Merge branch 'bugfix/fix_delete_queue_error_in_espnow_example_v5.4' into 'release/v5.4'
fix(wifi): fix the delete queue error in espnow exapmle (v5.4)

See merge request espressif/esp-idf!37014
2025-02-17 16:10:53 +08:00
Jiang Jiang Jian
30307f6977 Merge branch 'bugfix/ifdef_cplusplus_bracket_v5.4' into 'release/v5.4'
bugfix(wifi): Add missing brackets in the C++ guard (Backport v5.4)

See merge request espressif/esp-idf!36830
2025-02-17 15:50:16 +08:00
Jiang Jiang Jian
0ba139c535 Merge branch 'bugfix/fix_some_wifi_bugs_250214' into 'release/v5.4'
Bugfix/fix some wifi bugs 250214(Backport v5.4)

See merge request espressif/esp-idf!36985
2025-02-17 15:48:22 +08:00
zhangyanjiao
aeb4e0288c fix(wifi): fix the delete queue error in espnow exapmle
Closes https://github.com/espressif/esp-idf/issues/15383
2025-02-17 14:54:38 +08:00
Marius Vikhammer
b808062f2e Merge branch 'bugfix/esp32p4_linker_script_v5.4' into 'release/v5.4'
fix(esp_system): add missing `arrays` attribute in the ESP32-P4 linker script (backport v5.4)

See merge request espressif/esp-idf!36094
2025-02-17 11:16:48 +08:00
Zhang Hai Peng
ddff846e4e feat(ble/bluedroid): Support change HID task size by Kconfig in HID example
(cherry picked from commit d4b3a7e99d)

Co-authored-by: Mitch Cairns <mitch.cairns@handheldlegend.com>
2025-02-17 11:15:46 +08:00
Zhang Hai Peng
53fa7a7df0 docs(ble/bluedroid): Optimize doc for implementation of a characteristic with 128 bit UUID
(cherry picked from commit fa40d971a5)

Co-authored-by: Erast  <78802792+MatoiDev@users.noreply.github.com>
2025-02-17 11:15:43 +08:00
Zhang Hai Peng
7790c95832 fix(ble/bluedroid): Don't log error on 16/128-bit UUID mixed descriptors
(cherry picked from commit fed1d41aa7)

Co-authored-by: Nebojša Cvetković <nebkat@gmail.com>
2025-02-17 11:15:40 +08:00
Zhang Hai Peng
41ccc00c15 refactor(ble/bluedroid): Fix typos in gatt_sr.c
(cherry picked from commit 63b2dcc3a7)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-02-17 11:15:37 +08:00
Zhang Hai Peng
c0b060c1a8 fix(ble/bluedroid): Allow 0 length indications
(cherry picked from commit 9b5a52e2f7)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-02-17 11:15:32 +08:00
Zhang Hai Peng
635e1489b7 refactor(ble/bluedroid): Fix typos in bta_gatts_act.c
(cherry picked from commit a8041a9953)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-02-17 11:15:29 +08:00
morris
3ecfa81c9b Merge branch 'bugfix/gpio_rom_patch_fix_v5.4' into 'release/v5.4'
fix(gpio): fix esp_rom_gpio_connect_out_signal for gpio num over 31 on esp32/s2 (v5.4)

See merge request espressif/esp-idf!36865
2025-02-17 11:14:21 +08:00
Zhang Hai Peng
a0f37ef893 fix(ble): Update bt lib for ESP32(2a2631f)
- Support ESP32 BLE GPIO DEBUG


(cherry picked from commit 0a7888f839)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-02-17 11:13:56 +08:00
Island
c34702fc0c Merge branch 'feat/add_spi_output_v5.4' into 'release/v5.4'
Feat/add spi output (v5.4)

See merge request espressif/esp-idf!36956
2025-02-17 11:04:37 +08:00
Rahul Tank
ae5cf32ab9 Merge branch 'bugfix/handle_slave_extra_disconn_v5.4' into 'release/v5.4'
fix(nimble): Handle not sending disconnect event if connect was not sent (v5.4)

See merge request espressif/esp-idf!36920
2025-02-15 22:43:07 +08:00
Rahul Tank
d4d795c56d fix(nimble): Handle not sending disconnect event if connect was not sent 2025-02-15 09:22:55 +05:30
Rahul Tank
f30ee2a6bc Merge branch 'feat/long_read_offset_v5.4' into 'release/v5.4'
feat(nimble): Add offset in GATT server long read context (v5.4)

See merge request espressif/esp-idf!36976
2025-02-15 11:26:47 +08:00
Jiang Jiang Jian
72770713b9 Merge branch 'bugfix/mem_leak_sae_pk_v5.4' into 'release/v5.4'
fix(wifi): Bugfix memory leak due to sae public key (v5.4)

See merge request espressif/esp-idf!36925
2025-02-14 19:34:53 +08:00
muhaidong
5dc5f0e566 fix(coex): fix disable external coex fail issue 2025-02-14 19:24:12 +08:00
muhaidong
67141ce7b5 feat(phy): add gpio cmd for cert test 2025-02-14 19:23:53 +08:00
Roland Dobai
dd315ebc88 Merge branch 'fix/ldgen_interm_no_secs_v5.4' into 'release/v5.4'
fix(ldgen): don't emit intermediate placements without sections (v5.4)

See merge request espressif/esp-idf!36967
2025-02-14 18:58:59 +08:00
Jiang Jiang Jian
266f7e878c Merge branch 'bugfix/skip_memory_reordering_wpa2_semaphr_v5.4' into 'release/v5.4'
fix(esp_wifi): fixed stack corruption in WiFi tasks (v5.4)

See merge request espressif/esp-idf!36936
2025-02-14 17:53:35 +08:00
Aditya Patwardhan
d2b7479f6f Merge branch 'refactor/security_docs_re-org_v5.4' into 'release/v5.4'
refactor(docs): re-organize security docs for better navigation (v5.4)

See merge request espressif/esp-idf!36960
2025-02-14 16:32:05 +08:00
Frantisek Hrbata
c06b3d213e fix(ldgen): don't emit intermediate placements without sections
When a symbol needs to be placed to a different target than the one
designated for the object file, the object file is expanded, which
includes the following steps:

1. Creating a new placement for the symbol's input section with the
   specified target.
2. Excluding the object placement from the orignal target.
3. Creating a new intermediate placement for the object for the original
   target, where its input sections are expanded, excluding the input
   section for the symbol.

Let's illustrate the object expansion process with the following example:

[sections:rodata]
entries:
    .rodata+
    .sdata2+
    .srodata+

[scheme:default]
entries:
    text -> flash_text
    rodata -> flash_rodata

[scheme:noflash]
entries:
    text -> iram0_text
    rodata -> dram0_data

[mapping:soc_pm]
archive: libsoc.a
entries:
    gpio_periph: GPIO_HOLD_MASK (noflash)

gpio_periph section headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .text             PROGBITS        00000000 000034 000000 00  AX  0   0  2
  [ 2] .data             PROGBITS        00000000 000034 000000 00  WA  0   0  1
  [ 3] .bss              NOBITS          00000000 000034 000000 00  WA  0   0  1
  [ 4] .rodata.GPIO_HOLD_MASK PROGBITS        00000000 000034 000058 00   A  0   0  4
  [ 5] .rodata.GPIO_PIN_MUX_REG PROGBITS        00000000 00008c 000058 00   A  0   0  4
  [ 6] .debug_info       PROGBITS        00000000 0000e4 0000d8 00      0   0  1
  [ 7] .rela.debug_info  RELA            00000000 0009d4 000108 0c   I 16   6  4
  [ 8] .debug_abbrev     PROGBITS        00000000 0001bc 000070 00      0   0  1
  [ 9] .debug_aranges    PROGBITS        00000000 00022c 000018 00      0   0  1
  [10] .rela.debug_aranges RELA            00000000 000adc 00000c 0c   I 16   9  4
  [11] .debug_line       PROGBITS        00000000 000244 0001ab 00      0   0  1
  [12] .debug_str        PROGBITS        00000000 0003ef 00022d 01  MS  0   0  1
  [13] .comment          PROGBITS        00000000 00061c 000030 01  MS  0   0  1
  [14] .note.GNU-stack   PROGBITS        00000000 00064c 000000 00      0   0  1
  [15] .riscv.attributes RISCV_ATTRIBUTES 00000000 00064c 000044 00      0   0  1
  [16] .symtab           SYMTAB          00000000 000690 000260 10     17  36  4
  [17] .strtab           STRTAB          00000000 0008f0 0000e1 00      0   0  1
  [18] .shstrtab         STRTAB          00000000 000ae8 0000d1 00      0   0  1

1. Creating a new placement
.dram0.data :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_HOLD_MASK .sdata2.GPIO_HOLD_MASK .srodata.GPIO_HOLD_MASK)
}

2. Excluding the object placement
.flash.rodata :
{
    *(EXCLUDE_FILE(*libsoc.a:gpio_periph.*) .rodata.* ...)
}

3. Creating a new intermediate placement
.flash.rodata :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_PIN_MUX_REG)
}

Now, let's do the same, but also move GPIO_PIN_MUX_REG to noflash with an updated mapping.

[mapping:soc_pm]
archive: libsoc.a
entries:
    gpio_periph: GPIO_HOLD_MASK (noflash)
    gpio_periph: GPIO_PIN_MUX_REG (noflash)

1. Creating a new placement
.dram0.data :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_HOLD_MASK .sdata2.GPIO_HOLD_MASK .srodata.GPIO_HOLD_MASK)
    *libsoc.a:gpio_periph.*(.rodata.GPIO_PIN_MUX_REG .sdata2.GPIO_PIN_MUX_REG
                            .srodata.GPIO_PIN_MUX_REG)
}

2. Excluding the object placement
.flash.rodata :
{
    *(EXCLUDE_FILE(*libsoc.a:gpio_periph.*) .rodata.* ...)
}

3. Creating a new intermediate placement
.flash.rodata :
{
    *libsoc.a:gpio_periph.*
}

The *libsoc.a:gpio_periph.* entity in step 3 no longer has input
sections, as there are no remaining .rodata input sections in the object
file. The linker behavior for this mapping is to include all object
input sections that have not yet been placed as described in
https://sourceware.org/binutils/docs/ld.html#Input-Section-Basics
"If you use a file name without a list of sections, then all sections in
the input file will be included in the output section. This is not
commonly done, but it may by useful on occasion."

The map file for such mapping now contains following input sections

 .flash.rodata   0x3c0a0120    0x19b34
     *libsoc.a:gpio_periph.*()
     .debug_info    0x3c0b95bf       0xd8 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_abbrev  0x3c0b9697       0x70 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_aranges
                    0x3c0b9707       0x18 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_line    0x3c0b971f      0x1ab esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_str     0x3c0b98ca      0x21a esp-idf/soc/libsoc.a(gpio_periph.c.obj)
                                    0x22d (size before relaxing)
     .comment       0x3c0b9ae4       0x30 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .note.GNU-stack
                    0x3c0b9ae4        0x0 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .riscv.attributes
                    0x3c0b9ae4       0x44 esp-idf/soc/libsoc.a(gpio_periph.c.obj)

This is incorrect, and such intermediate placement should not be
generated. This type of placement can be recognized because it is not
explicitly defined in the mapping and lacks input sections. We can
identify this in the significant function and prevent issuing commands
for such placement.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-02-14 08:04:29 +01:00
Mahavir Jain
721b0de1b1 refactor(docs): re-organize security docs for better navigation 2025-02-14 11:45:04 +05:30
Abhinav Kudnar
222d7a7741 feat(nimble): Add offset in GATT server long read context 2025-02-14 11:21:30 +05:30
Rahul Tank
15da152e21 Merge branch 'fix/blesync_periodic_adv_v5.4' into 'release/v5.4'
fix(nimble): Added sync reattempt for periodic adv (v5.4)

See merge request espressif/esp-idf!36789
2025-02-14 13:45:38 +08:00
Zhou Xiao
ec495372ab feat(ble): support esp ble controller spi output interface for ESP32-H2
(cherry picked from commit 9c98c7e040)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:23 +08:00
Zhou Xiao
78f1241f78 feat(ble): support esp ble controller spi output interface for ESP32-C6
(cherry picked from commit 58b8775f95)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:20 +08:00
Zhou Xiao
8d3fcb78ee feat(ble): support esp ble controller spi output interface for ESP32-C2
(cherry picked from commit 0b57f8ae87)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:16 +08:00
Zhou Xiao
2acf21413c feat(ble): add spi output interface for esp ble controller log
(cherry picked from commit 52106c9895)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:13 +08:00
Omar Chebib
d3a9545e95 fix(esp_system): add missing arrays attribute in the ESP32-P4 linker script 2025-02-14 10:58:12 +08:00
xiongweichao
44c606e165 fix(bt): Fixed SDP record integrity check bug 2025-02-14 10:21:46 +08:00
David Čermák
462ed8353d Merge branch 'bugfix/ethernet_example_netif_glue_assignment_v5.4' into 'release/v5.4'
fix(ethernet_basic): Fix second Ethernet device not receiving IP address (v5.4)

See merge request espressif/esp-idf!36945
2025-02-13 22:00:31 +08:00
Astha Verma
ff55cabe6d fix(nimble): Added sync reattempt for periodic adv 2025-02-13 18:24:38 +05:30
Bogdan Kolendovskyy
bcf5075278 fix(ethernet_basic): Fix second Ethernet device not receiving IP address 2025-02-13 12:41:14 +01:00
Rahul Tank
18ba5dd4ab Merge branch 'fix/core_err_code_def_v5.4' into 'release/v5.4'
fix(nimble): Enhanced error handling by adding to print core error definitions (v5.4)

See merge request espressif/esp-idf!36654
2025-02-13 19:37:52 +08:00
Mahavir Jain
e348fdd5e6 Merge branch 'bugfix/http_client_select_read_error_v5.4' into 'release/v5.4'
fix(tcp_tranport): Fix handling of select() return value (v5.4)

See merge request espressif/esp-idf!36917
2025-02-13 19:19:11 +08:00
Kapil Gupta
31b88484a6 fix(esp_wifi): Fix stack corruption in wpa3 task 2025-02-13 14:23:08 +05:30
Kapil Gupta
698392735c fix(esp_wifi): fixed Stack corruption in DPP task 2025-02-13 14:23:08 +05:30
Kapil Gupta
a64056fac2 fix(esp_wifi): fixed Stack corruption in WPS processing 2025-02-13 14:23:08 +05:30
Kapil Gupta
c3959700b3 fix(esp_wifi): Fixed memory corruption in wifi enterprise
Closes https://github.com/espressif/esp-idf/issues/15370
2025-02-13 14:23:08 +05:30
Shu Chen
576264c704 Merge branch 'feat/add_ot_br_lib_check_case_v5.4' into 'release/v5.4'
feat(openthread): add br library check case (v5.4)

See merge request espressif/esp-idf!36885
2025-02-13 15:49:45 +08:00
Shreyas Sheth
3cbbcf25c7 fix(wifi): Fixed memory leak occurring in SAE PK connection 2025-02-13 12:02:13 +05:30
Astha Verma
34a8c8ae28 fix(nimble): Enhanced error handling by adding to print core error definitions 2025-02-13 08:57:08 +05:30
Rahul Tank
9555aa0912 Merge branch 'fix/NVS_corruption_v5.4' into 'release/v5.4'
fix(nimble): Handle NVS corruption caused by non removal of security records (v5.4)

See merge request espressif/esp-idf!36894
2025-02-13 11:19:15 +08:00
morris
7d07fe5047 Merge branch 'feat/async_memcpy_any_alignment_v5.4' into 'release/v5.4'
async memcpy destination address doesn't have to be cache aligned (v5.4)

See merge request espressif/esp-idf!36633
2025-02-13 10:36:23 +08:00
morris
5aee72a86f Merge branch 'fix/rgb_lcd_drift_on_esp32s3_v5.4' into 'release/v5.4'
fix(rgb_lcd): drift issue caused by restart (v5.4)

See merge request espressif/esp-idf!36889
2025-02-13 10:10:43 +08:00
David Čermák
1ddbb7bceb Merge branch 'fix/eth_example_stat_ip_v5.4' into 'release/v5.4'
fix(esp_eth): fixed Static IP example for Ethernet (v5.4)

See merge request espressif/esp-idf!36915
2025-02-13 02:14:20 +08:00
nilesh.kale
5ad73e97e8 fix(tcp_tranport): Fix handling of select() return value
When both readset/writeset and errset are set for a single socket,
the HTTP client incorrectly handled the condition, causing premature termination.
Added a check to ensure readset/writeset is prioritized before errset.

Closes https://github.com/espressif/esp-idf/issues/14673
2025-02-12 20:23:23 +05:30
Ondrej Kosta
7b1648f004 fix(esp_eth): fixed Static IP example for Ethernet
Fixed IP event handler unregistering for Ethernet
2025-02-12 13:55:20 +00:00
Alexey Gerenkov
945d750d5a Merge branch 'fix/coredump_note_section_alignment_v5.4' into 'release/v5.4'
Fix/coredump note section headers and alignments (v5.4)

See merge request espressif/esp-idf!36880
2025-02-12 21:31:14 +08:00
Jiang Jiang Jian
97404fa883 Merge branch 'fix/fix_branch_predictor_access_flash_after_cache_diabled_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix branch predictor access flash after cache disabled (v5.4)

See merge request espressif/esp-idf!36558
2025-02-12 17:59:36 +08:00
Jiang Jiang Jian
f8ed34f75f Merge branch 'bugfix/analyzer_issues_supplicant_v5.4' into 'release/v5.4'
fix(esp_wifi): fix some analyzer issues (v5.4)

See merge request espressif/esp-idf!36825
2025-02-12 13:56:16 +08:00
Jiang Jiang Jian
c7a66c0801 Merge branch 'bugfix/wps_scan_freq_v5.4' into 'release/v5.4'
fix(esp_wifi): Reduce scan frequency in WPS (v5.4)

See merge request espressif/esp-idf!36819
2025-02-12 13:56:01 +08:00
Astha Verma
5a9fc48b73 fix(nimble): fix NVS corruption 2025-02-12 10:50:50 +05:30
Rahul Tank
49262fd40c Merge branch 'bugfix/fix_warn_write_string_v5.4' into 'release/v5.4'
fix(nimble): Fixed warnings with COMPILTER_WARN_WRITE_STRINGS set (v5.4)

See merge request espressif/esp-idf!36699
2025-02-12 12:56:26 +08:00
Mahavir Jain
f8c10a5504 Merge branch 'bugfix/fix_blufi_crash_opt_v5.4' into 'release/v5.4'
fix(blufi): Enhance security in BLUFI example (v5.4)

See merge request espressif/esp-idf!36861
2025-02-12 12:31:56 +08:00
morris
1a430290f2 fix(rgb_lcd): drift issue caused by restart
Closes https://github.com/espressif/esp-idf/issues/15013
2025-02-12 10:43:16 +08:00
Shu Chen
f6c304005a Merge branch 'feature/ieee802154_txpower_table_v5.4' into 'release/v5.4'
Feature/ieee802154 txpower table (v5.4)

See merge request espressif/esp-idf!36132
2025-02-12 10:32:19 +08:00
morris
d65c108888 Merge branch 'feat/mmu_find_paddr_caps_by_any_offset_v5.4' into 'release/v5.4'
mmu: supported find paddr caps by any paddr offset (v5.4)

See merge request espressif/esp-idf!36813
2025-02-12 10:30:35 +08:00
yiwenxiu
d4ec677253 feat(openthread): add br library check case 2025-02-12 09:33:46 +08:00
Wang Meng Yang
667c1b6e70 Merge branch 'bugfix/add_bluedroid_init_migration_v5.4' into 'release/v5.4'
docs(bt/bluedroid): Added migration guide for bluedroid init API[backport v5.4]

See merge request espressif/esp-idf!36875
2025-02-12 09:22:17 +08:00
Erhan Kurubas
99b1a685c8 fix(coredump): disable uart txd pullup using gpio hal 2025-02-11 16:53:18 +01:00
Erhan Kurubas
52c1538f01 fix(coredump): fix note section alignments 2025-02-11 16:53:18 +01:00
Erhan Kurubas
f1fbac9dc8 fix(coredump): only clear high bit in PC when set 2025-02-11 16:53:18 +01:00
liqigan
0576fce0c8 docs(bt/bluedroid): Added migration guide for bluedroid init API
Closes https://github.com/espressif/esp-idf/issues/15352
2025-02-11 19:37:27 +08:00
morris
952f1aa2b8 Merge branch 'feature/malloc_cap_simd_flag_v5.4' into 'release/v5.4'
feat(heap): add a MALLOC_CAP_SIMD flag (v5.4)

See merge request espressif/esp-idf!36649
2025-02-11 17:42:09 +08:00
Song Ruo Jing
ed46ec4433 fix(gpio): fix esp_rom_gpio_connect_out_signal for gpio num over 31 on esp32/s2
Closes https://github.com/espressif/esp-idf/issues/15209
2025-02-11 16:05:11 +08:00
Armando
efd8c467d0 test(mmu): test can find paddr caps by any paddr offset 2025-02-11 15:51:45 +08:00
Armando
d7cdbbb07d feat(mmu): supported find paddr caps by any paddr offset
Closes https://github.com/espressif/esp-idf/issues/14988
2025-02-11 15:51:45 +08:00
Zhang Hai Peng
5f93ec3b11 fix(blufi): Enhance security in BLUFI example
(cherry picked from commit 3fc6c93936)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-02-11 15:13:50 +08:00
morris
e121a77c92 fix(dma): also consider buffer alignment when calculating the DMA nodes
Closes https://github.com/espressif/esp-idf/issues/15228
2025-02-11 13:46:12 +08:00
morris
5c0611cb3b feat(async_memcpy): support rx buffer unaligned to cache line size 2025-02-11 13:46:12 +08:00
morris
565d0331f1 refactor(dma): split rx buffer to cache aligned ones 2025-02-11 13:46:12 +08:00
zwx
053a67f209 fix(802.15.4): fix a typo for 15.4 Kconfig 2025-02-11 13:23:57 +08:00
zwx
22a5444773 feat(802.15.4): introduce a series of APIs related power table 2025-02-11 13:23:57 +08:00
zwx
86eed3f3ab feat(openthread): support preferred channel mask 2025-02-11 13:22:47 +08:00
Wang Meng Yang
cb19765809 Merge branch 'feat/esp32_set_get_bt_lpclk_src_v5.4' into 'release/v5.4'
feat(bt): Added API to get/set low power clock source(v5.4)

See merge request espressif/esp-idf!36562
2025-02-11 12:14:58 +08:00
xiongweichao
62eaef77ef fix(bt/bluedroid): fixed the format error of passkey printing 2025-02-11 11:57:16 +08:00
xiongweichao
f9ea7a47b1 fix(bt/bluedroid): Fixed incorrect types of some variables in SDP 2025-02-11 11:57:11 +08:00
xiongweichao
26491fbe67 fix(bt): Fix incorrect type returned when searching SAP record 2025-02-11 11:57:07 +08:00
xiongweichao
b8a4d9f74f fix(bt): Fix the incorrect record found using uuid16 search 2025-02-11 11:57:03 +08:00
Shu Chen
b853fc6742 Merge branch 'feature/support_hw_reset_when_handling_rcp_failure_v5.4' into 'release/v5.4'
feat(openthread): support hardware reset RCP while processing RCP failure (v5.4)

See merge request espressif/esp-idf!36553
2025-02-11 11:29:31 +08:00
Island
05eb9d0c4a Merge branch 'bugfix/h2_ble_timer_clk_enable_fix_v5.4' into 'release/v5.4'
fix: H2 ble timer clk enable issue. (v5.4)

See merge request espressif/esp-idf!36545
2025-02-11 10:45:33 +08:00
morris
737cce3c9f Merge branch 'bugfix/fix_i2s_reconfig_slot_issue_v5.4' into 'release/v5.4'
fix(i2s): fixed incorrect logic in slot reconfig (v5.4)

See merge request espressif/esp-idf!36641
2025-02-11 10:40:32 +08:00
Rahul Tank
5ede5942b1 fix(nimble): Fixed warnings with COMPILTER_WARN_WRITE_STRINGS set 2025-02-10 21:50:15 +05:30
Rahul Tank
86a8f691e1 Merge branch 'fix/spp_server_readme_change_v5.4' into 'release/v5.4'
docs: Updated README.md by removing unclear lines (v5.4)

See merge request espressif/esp-idf!36742
2025-02-10 23:59:39 +08:00
Rahul Tank
f9f71f0fa8 Merge branch 'fix/wifi_provisioning_ble_v5.4' into 'release/v5.4'
fix(nimble): Handle nested locks when BT_NIMBLE_DEBUG enabled (v5.4)

See merge request espressif/esp-idf!36497
2025-02-10 23:57:47 +08:00
radek.tandler
b02cb7d552 fix(storage/nvs): Fixed failing test cases in example folder 2025-02-10 16:43:34 +01:00
radek.tandler
03ca56d8fb fix(storage/vfs): Fixed failing test cases in test_apps 2025-02-10 16:43:33 +01:00
radek.tandler
9a21f5fb81 fix(ci): Removed storage related ignore warnings 2025-02-10 16:43:33 +01:00
akshat
767afc9ce4 bugfix(wifi): Fix header file errors and remove esp_supplicant from check_public_headers_exceptions.txt 2025-02-10 18:52:01 +05:30
akshat
22382490ab bugfix(wifi): Add missing brackets in the C++ guard
Closes https://github.com/espressif/esp-idf/issues/14991
2025-02-10 18:51:31 +05:30
Kapil Gupta
cd934c08ab fix(esp_wifi): Add review comments and some cleanup 2025-02-10 15:46:30 +05:30
Kapil Gupta
3c085db83e fix(esp_wifi): fix some analyzer issues
Closes https://github.com/espressif/esp-idf/issues/15097
Closes https://github.com/espressif/esp-idf/issues/15098
Closes https://github.com/espressif/esp-idf/issues/15099
2025-02-10 15:46:30 +05:30
Kapil Gupta
17032b875a fix(esp_wifi): Reduce scan frequency in WPS 2025-02-10 15:11:14 +05:30
Jiang Jiang Jian
5436955fd9 Merge branch 'bugfix/esp32c5_eco1_wifi_ps_v5.4' into 'release/v5.4'
backport v5.4: fix some wifi power save issues and optimize phy sleep for esp32c5 eco1 and beta5

See merge request espressif/esp-idf!36561
2025-02-10 15:22:59 +08:00
Jiang Jiang Jian
1aab4bf1b2 Merge branch 'bugfix/pm-300-v5.4' into 'release/v5.4'
backport v5.4: fix some esp32c5 and esp32c61 light sleep wakeup issues

See merge request espressif/esp-idf!36075
2025-02-10 15:22:22 +08:00
Marius Vikhammer
5c75a994da Merge branch 'fix/esp-event-profiling_v5.4' into 'release/v5.4'
fix(esp_event): Fix event loop profiling in handler_execute function (backport v5.4)

See merge request espressif/esp-idf!36684
2025-02-10 14:45:15 +08:00
xiongweichao
76a66a7879 feat(bt): Added API to get/set low power clock source 2025-02-10 14:10:38 +08:00
laokaiyao
5d4598f986 fix(i2s): fix uninitialize warning for the default macros
Closes https://github.com/espressif/esp-idf/issues/15271
2025-02-10 11:16:19 +08:00
laokaiyao
80ef7b7494 fix(i2s): fixed incorrect logic in slot reconfig
Closes https://github.com/espressif/esp-idf/issues/15256
2025-02-10 11:16:19 +08:00
Wang Meng Yang
8deb26be27 Merge branch 'feat/add_vsc_to_support_test_v5.4' into 'release/v5.4'
feat(bt): add vendor hci command and event to support test (v5.4)

See merge request espressif/esp-idf!36571
2025-02-10 10:49:13 +08:00
Song Ruo Jing
6cb64d7025 feat(heap): add a MALLOC_CAP_SIMD flag
MALLOC_CAP_SIMD can be used to allocate memory to be used for SIMD instructions
2025-02-08 16:28:41 +08:00
Shu Chen
5fa3e381c9 Merge branch 'feat/add_callback_for_esp_ot_radio_spinel_init_v5.4' into 'release/v5.4'
feat(openthread): add an API to set rcp version string (v5.4)

See merge request espressif/esp-idf!36746
2025-02-08 16:26:56 +08:00
morris
35dc076e79 Merge branch 'fix/usb_non_periodic_backport_v5.4' into 'release/v5.4'
fix(usb/host): Set SCHED_INFO for all channels (backport v5.4)

See merge request espressif/esp-idf!36770
2025-02-08 10:07:39 +08:00
Jiang Jiang Jian
ebc370a796 Merge branch 'bugfix/remove_unused_sco_state_v5.4' into 'release/v5.4'
Bugfix/remove unused sco state (v5.4)

See merge request espressif/esp-idf!36729
2025-02-07 19:51:01 +08:00
Tomáš Rohlínek
653fa4a1f5 fix(storage/vfs): incorrect log level in esp_vfs_register_fd_range
Closes https://github.com/espressif/esp-idf/issues/14327
2025-02-07 15:24:08 +08:00
Geng Yu Chao
095d82eb9b fix(esp32h2): H2 ble timer clk enable issue
(cherry picked from commit ac8204c4ba)

Co-authored-by: Geng Yuchao <gengyuchao@espressif.com>
2025-02-07 11:46:50 +08:00
Guillaume Souchere
4b5e246b5b fix(esp_vfs_console): USB CDC read when non blocking
In non blocking mode, the read function is expected
to return weather data is available for reading or not.

In case data are available but the size does not match
the expected size, the function read should return whatever
data is available.

Previously, the function was returning -1 with errno set
to EWOULDBLOCK even if the size of data in the buffer was
less than the requested size. It would only return the
available data if the size in the buffer was greater or equal
to the requested size.

The implementation of cdcacm_read is modified to return the avilable
data from the buffer even is the size is lesser than the requested
size.
2025-02-06 09:01:30 +01:00
Tomas Rezucha
4e4c9dc726 fix(usb/host): Set SCHED_INFO for all channels
Although the hardware documentation suggests that SCHED_INFO is only used
for periodic channels, empirical evidence shows that omitting this configuration
on non-periodic channels can cause them to freeze.
Therefore, we set this field for all channels to ensure reliable operation.
2025-02-06 08:17:59 +01:00
Jiang Jiang Jian
b26d933e08 Merge branch 'change/default_value_for_esp_coex_vsc_in_bluedroid_v5.4' into 'release/v5.4'
change(bt): Set default value for BT_BLUEDROID_ESP_COEX_VSC conditionally (v5.4)

See merge request espressif/esp-idf!36734
2025-02-06 10:50:03 +08:00
Astha Verma
447887de03 fix(nimble): Handle nested locks when BT_NIMBLE_DEBUG enabled 2025-02-05 14:48:43 +05:30
morris
d79e743b79 Merge branch 'fix/move_spi_lcd_cb_fun_to_iram_v5.4' into 'release/v5.4'
feat(spi_lcd): move callback function to iram (v5.4)

See merge request espressif/esp-idf!36739
2025-02-05 14:56:01 +08:00
Xu Si Yu
77fb4e42bd feat(openthread): add an API to set rcp version string 2025-02-05 14:40:17 +08:00
David Cermak
8e8d922edc fix(esp_eth): Fix test code to unregister event correctly 2025-02-05 07:34:27 +01:00
Astha Verma
fbcdf56981 docs: Updated README.md by removing unclear lines 2025-02-05 11:54:58 +05:30
morris
724f762f57 Merge branch 'fix/periodic_fs_usb_on_p4_backport_v5.4' into 'release/v5.4'
fix(usb/host): Fixed Full Speed periodic transfers on ESP32-P4 (backport v5.4)

See merge request espressif/esp-idf!36647
2025-02-05 14:17:43 +08:00
morris
9659998ce3 Merge branch 'fix/usb_host_enum_unchecked_return_coverity_backport_v5.4' into 'release/v5.4'
fix(usb_host): Fixed unchecked return value in enum driver (coverity) (backport to v5.4)

See merge request espressif/esp-idf!36669
2025-02-05 11:49:10 +08:00
Chen Jichang
a05a12526d feat(spi_lcd): move callback function to iram
Closes https://github.com/espressif/esp-idf/issues/15160
2025-02-05 11:21:46 +08:00
Wang Mengyang
d0c2b8337b change(bt): Set default value for BT_BLUEDROID_ESP_COEX_VSC conditionally
- Set default value of BT_BLUEDROID_ESP_COEX_VSC to n if software coexistence is not required,
in host-controller combined Bluetooth stack configuration.
2025-02-05 10:16:05 +08:00
Wang Mengyang
ff6dd1f083 change(bt): Remove unused state variable for (e)SCO disconnect reason in Bluedroid 2025-02-05 10:08:51 +08:00
David Cermak
8763e28c0b fix(esp_event): Fix minor no-ISR post regression
from 15f6775f5d
2025-02-04 09:17:36 +01:00
Alexey Gerenkov
f277fbf24e Merge branch 'fix/coredump_test_uart_data_missing_v5.4' into 'release/v5.4'
Fix missing coredump uart data in tests (v5.4)

See merge request espressif/esp-idf!36711
2025-02-03 23:48:56 +08:00
Erhan Kurubas
9f3a5eb3ab test(coredump): collect all expected uart data first, then process lazily 2025-02-03 15:06:25 +01:00
Rocha Euripedes
4d02ae2562 Merge branch 'fix/test_app_certificate_v5.4' into 'release/v5.4'
Regenerate certificates for testing (v5.4)

See merge request espressif/esp-idf!36672
2025-01-31 15:59:48 +08:00
Mahavir Jain
99601e8e57 Merge branch 'feat/bootloader_nvs_read_encrypted_v5.4' into 'release/v5.4'
fix(esptool_py): NVS partition being incorrectly marked as encrypted by the build system (v5.4)

See merge request espressif/esp-idf!36679
2025-01-30 17:14:11 +08:00
Guillaume Souchere
8c89773e0d fix(esp_event): Handler unregistration by itself issue
when esp_event_handler_unregister_with_internal cannot take
the loop mutex (e.g., when the handler unregisters itself),
create an event with a special base identifier and add it to
the queue of the corresponding loop to postpone the removal
of the handler from the list at a time when the loop mutex can be
successfully taken.
2025-01-30 08:59:12 +01:00
Guillaume Souchere
f870a03223 fix(esp_event): Fix event loop profiling in handler_execute function
handler_execute function is looking to match the handler only in the
list of loop events but does not look in the base event handler list
nor the id event handler list. So unless the event handler is
registered to be triggered for all event bases and all event ids of
an event loop, its profiling fields (invoked and time) are not updated
when it is called.

This commit updates the search for the matching handler to also look
in base event list and ID event list.

Closes https://github.com/espressif/esp-idf/issues/15041
2025-01-30 08:59:02 +01:00
harshal.patil
646492db0c fix(esptool_py): Fix NVS partition being incorrectly marked as encrypted
- The CMake function esptool_py_partition_needs_encryption() in the esptool_py
component used to mark NVS partition as encrypted, instead it should have marked
the NVS keys partition as encrypted.
2025-01-30 12:01:21 +05:30
David Čermák
6b473288c3 Merge branch 'fix/ping_data_race_v5.4' into 'release/v5.4'
fix(lwip): Fix potential data-race in ping tcpip callback (v5.4)

See merge request espressif/esp-idf!36534
2025-01-30 14:15:06 +08:00
David Cermak
e7a0a93a40 fix(lwip): Fix potential data-race in ping tcpip callback
Need to use tcpip_api_call() instead of tcpip_callback(), since the
former waits for the tcpip task to complete and thus prevents potential
data races with subsequent TCP/IP tasks.
2025-01-29 23:34:18 +08:00
David Čermák
433817915c Merge branch 'test/bridge_v5.4' into 'release/v5.4'
[network/examples]: Fix build rules to test builds on for all targets (v5.4)

See merge request espressif/esp-idf!36629
2025-01-29 23:21:27 +08:00
Rocha Euripedes
836b594262 Merge branch 'lwip/dhcp_network_changed_fix_v5.4' into 'release/v5.4'
fix(lwip): Fixed compilation issue with LWIP_DHCP_RESTORE_LAST_IP (v5.4)

See merge request espressif/esp-idf!36619
2025-01-29 22:01:41 +08:00
Euripedes Rocha
ca7cf4de4b fix(mqtt): Regenerate certificates for testing
- Previous fix ommited one of the client certificates by mistaque.
- This regenerates all certificates to clean that up.
2025-01-29 14:03:29 +01:00
Roman Leonov
65aa60f844 fix(usb_host): Fixed unchecked return value in enum driver (coverity) 2025-01-29 12:51:39 +01:00
Zhang Hai Peng
28a78ba1fb fix(ble): Update bt lib for ESP32(194dd63)
- Fix the issue where disconnection events were not reported as a slave.
- Enhance Access Address validation in compatibility mode.


(cherry picked from commit b4e3c5c1e2)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-27 18:03:17 +08:00
Zhang Hai Peng
806012cc51 feat(bt): add vendor hci command and event to support test
- add afh related vendor hci command and event
- add vendor event mask command


(cherry picked from commit b225703712)

Co-authored-by: gongyantao <gongyantao@espressif.com>
2025-01-27 18:03:17 +08:00
Tomas Rezucha
cd7fab3bdc refactor(usb): Include supported PHYs information in SoC 2025-01-27 08:08:02 +01:00
Tomas Rezucha
d12312bf76 fix(usb): Fixed missing GPIO drive capability on ESP32-P4
All USB PHYs that share their IOs with GPIOs must set
the GPIO's drive capability to maximum.
2025-01-27 08:07:42 +01:00
Tomas Rezucha
febc33a094 fix(usb/host): Fixed Full Speed periodic transfers on ESP32-P4
For FS periodic endpoints 'tokens_per_frame' must be set to 8
LL usb_dwc_ll_hctsiz_set_sched_info() function.
2025-01-27 08:07:34 +01:00
Li Shuai
27f0aef7c1 fix(uart): fix esp32c61 light sleep uart wakeup failed 2025-01-26 14:54:59 +08:00
Li Shuai
e2113d927d fix(esp_hw_support): fix esp32c5 and esp32c61 wakeup failed when TOP rejects PD 2025-01-26 14:54:59 +08:00
Li Shuai
8d303248cd fix(ci): fix some ci build issues to pass ci pipeline 2025-01-26 14:54:33 +08:00
Li Shuai
325f1f33f5 refactor(esp_phy): refactor phy sleep data initialize, split it to support multiple targets 2025-01-26 14:54:33 +08:00
Li Shuai
9e1b5eb173 change(soc): fix idf_size error caused by ldgen to run success for ci pipeline 2025-01-26 14:54:33 +08:00
Li Shuai
c74a5e3e8e change(esp_hw_support): fix wifi mac rx buffer link exception caused by pll clock 2025-01-26 14:54:33 +08:00
Li Shuai
761833493a change(esp_phy): fix some wifi power save issues and optimize phy sleep for esp32c5 eco1 and beta5 2025-01-26 14:54:33 +08:00
Island
998e365a61 Merge branch 'bugfix/fix_esp32c61_eco2_ble_light_sleep_issue_v5.4' into 'release/v5.4'
fix(ble): fix rtc freq div error on esp32c61 (v5.4)

See merge request espressif/esp-idf!36601
2025-01-26 14:26:02 +08:00
David Cermak
d244c98858 fix(network/examples): Fix build rules to test builds on for all targets
Uses wifi defines only if wifi is enabled for this target
2025-01-24 17:01:41 +01:00
Abhik Roy
eed1e02fdc test(lwip): Added LWIP_DHCP_RESTORE_LAST_IP config in lwip test apps
Enabled CONFIG_LWIP_DHCP_RESTORE_LAST_IP configuration to compile and
test the DHCP last IP restore functionality in CI tests.
2025-01-24 21:35:12 +11:00
Abhik Roy
37657757ba fix(lwip): Fixed compilation issue with LWIP_DHCP_RESTORE_LAST_IP
Closes https://github.com/espressif/esp-idf/issues/14582
2025-01-24 21:35:12 +11:00
Jin Chen
4300c344ca fix(ble): fix rtc freq div error on esp32c61
(cherry picked from commit b7571dd711)

Co-authored-by: cjin <jinchen@espressif.com>
2025-01-24 12:12:01 +08:00
Mahavir Jain
649f9a72ae Merge branch 'feat/support_aes_pseudo_round_func_in_esp32h2_eco5_v5.4' into 'release/v5.4'
Support AES and XTS-AES's pseudo round function in ESP32H2-ECO5 (v5.4)

See merge request espressif/esp-idf!36463
2025-01-23 13:20:20 +08:00
Jiang Jiang Jian
52807c1f79 Merge branch 'fix/fix_p4_usb_phy_bad_suspend_on_lslp_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix p4 OTG phy bad suspend cause high power consumption on sleep (v5.4)

See merge request espressif/esp-idf!36365
2025-01-23 11:04:50 +08:00
morris
206b3a22ad Merge branch 'feat/spi_std_timing_and_bit_trans_v5.4' into 'release/v5.4'
feat(driver_spi): support adjust master rx to standard timing (v5.4)

See merge request espressif/esp-idf!36399
2025-01-23 10:38:07 +08:00
wuzhenghui
cfcd8990f6 fix(esp_hw_support): fix branch predictor access flash after cache disabled 2025-01-22 19:24:48 +08:00
morris
473771bc14 Merge branch 'fix/p4_spi_slave_example_not_work_v5.4' into 'release/v5.4'
fix(driver_spi): fixed slave (and slave_hd) driver and example error with alignment check (v5.4)

See merge request espressif/esp-idf!36403
2025-01-22 18:57:59 +08:00
Island
794d8bdad3 Merge branch 'bugfix/fix_blufi_crash_v5.4' into 'release/v5.4'
fix(blufi): Fixed crash issue during memcpy in example (v5.4)

See merge request espressif/esp-idf!36552
2025-01-22 18:18:18 +08:00
Island
b05de813e3 Merge branch 'change/ble_update_lib_20250114_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250114 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!36480
2025-01-22 18:17:46 +08:00
zwx
86fe5a7313 feat(openthread): support hardware reset RCP while processing RCP failure 2025-01-22 17:12:15 +08:00
Zhang Hai Peng
f77da0d5b5 fix(blufi): Fixed some security issue in blufi example
(cherry picked from commit abc18e93eb)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-22 16:34:41 +08:00
Shu Chen
9309dc5670 Merge branch 'feature/support_esp32h2eco5_phylib_v5.4' into 'release/v5.4'
feat(esp_phy): support esp32h2eco5 phylib (v5.4)

See merge request espressif/esp-idf!36208
2025-01-22 11:57:50 +08:00
zhangwenxu
73be9efbfb feat(esp_phy): support esp32h2eco5 phylib 2025-01-21 17:52:43 +08:00
Jiang Jiang Jian
e347bdd44b Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
fix(Wi-Fi): Backport some Wi-Fi fixes to v5.4

See merge request espressif/esp-idf!36495
2025-01-21 17:45:57 +08:00
Jiang Jiang Jian
f4721d8170 Merge branch 'bugfix/clic_register_issues_v5.4' into 'release/v5.4'
fix(soc): fix clic register definition and description (backport v5.4)

See merge request espressif/esp-idf!35590
2025-01-21 15:52:58 +08:00
renpeiying
69f788024c docs: Update CN trans for security docs 2025-01-21 12:28:23 +05:30
harshal.patil
b06a4c198a feat(bootloader_support): Permanently enable XTS-AES pseudo rounds when FE release mode is enabled 2025-01-21 12:28:23 +05:30
harshal.patil
e3acb360e3 feat(hal/spi_flash_encrypted): Enable pseudo rounds function during XTS-AES operations 2025-01-21 12:28:23 +05:30
harshal.patil
7d803e661e feat(hal/aes): Enable pseudo rounds function during AES operations 2025-01-21 12:28:23 +05:30
C.S.M
82b3f5413c feat(spi_flash): Add config for adding auto check status after suspend to improve performance 2025-01-21 14:50:23 +08:00
C.S.M
c4bb6a3970 feat(spi_flash): support software resume after suspend in unicore 2025-01-21 14:50:23 +08:00
Shu Chen
0fb61ec9e0 Merge branch 'fix/ci_restart_avahi_daemon_v5.4' into 'release/v5.4'
fix(ci): restart avahi-daemon in otbr service discovery test case (v5.4)

See merge request espressif/esp-idf!36433
2025-01-21 14:41:58 +08:00
zwx
138cd7cf24 fix(ci): restart avahi-daemon in otbr service discovery test case 2025-01-21 11:26:10 +08:00
Shu Chen
3341d6ac1b Merge branch 'fix/fix_coex_macro_control_v5.4' into 'release/v5.4'
fix(openthread): use the correct macros to control code compilation (v5.4)

See merge request espressif/esp-idf!36456
2025-01-20 19:14:13 +08:00
Xu Si Yu
149ea88752 fix(openthread): use the correct macros to control code compilation 2025-01-20 16:45:36 +08:00
morris
d512a2999a Merge branch 'refactor/usb_merge_p4_phy_backport_v5.4' into 'release/v5.4'
refactor(usb/phy): Merge P4 and S2/S3 PHYs into one module (backport 5.4)

See merge request espressif/esp-idf!36449
2025-01-20 14:34:43 +08:00
linruihao
e6e09dbc4c feat(coex): add coexist scheme for bt inquiry/page coexist with wifi 2025-01-20 14:20:29 +08:00
zhangyanjiao
9195bcbe22 fix(wifi/mesh): fixed the mesh connection failure in WPA3 mode after erasing flash
Closes https://github.com/espressif/esp-idf/issues/14095
2025-01-20 14:19:37 +08:00
Sarvesh Bodakhe
e789554997 fix(wifi): Fix bug in authmode detection for wpa2/wpa3 enterprise
WPA3-Enterprise mandates the use of AKM suite selector
00:0F:AC:5 (IEEE80211 802.1X with SHA-256)
2025-01-20 14:18:51 +08:00
Kapil Gupta
85156cceff fix(esp_wifi): Address some review comments 2025-01-20 14:18:14 +08:00
Aditi
7900eeca4e fix(wpa_supplicant): Remove the btm_rrm task from supplicant
This commit removes btm_rrm_t task and CONFIG_SUPPLICANT_TASK from
wpa_supplicant and make the functions work in wifi task's context.
2025-01-20 14:17:58 +08:00
Aditi
5f2fb56755 fix(wpa_supplicant): Fix for sending alternate ft-auth in roaming 2025-01-20 14:17:48 +08:00
Aditi
318ad17991 fix(wpa_supplicant): Add two separate flags for RRM and WNM
Added two separate flags CONFIG_RRM(80211k) and CONFIG_WNM(80211v)
    flags under IEEE80211KV support flag.
2025-01-20 14:17:38 +08:00
Aditi
3f3c3d9a14 fix(wpa_supplicant): Add some minor fixes in roaming
1) Add a fix in roaming example for 11kvr
    2) Removed length constraint for neighbor report received.
2025-01-20 14:17:27 +08:00
Aditi
bdc099af7f fix(esp_wifi): Add fix for error handling for FT-Auth 2025-01-20 14:17:17 +08:00
yinqingzhao
c725253d53 feat(wifi): add wifi support for esp32c61 eco2 2025-01-20 14:16:30 +08:00
xuxiao
dd11e4514b feat(wifi): add phy support for esp32c5 beta5 2025-01-20 14:16:12 +08:00
Martin Vychodil
86ace15e10 Merge branch 'fix/broken_fatfsgen_tests_v5.4' into 'release/v5.4'
fix(storage/fatfsgen): broken test_apps scripts for fatfsgen (v5.4)

See merge request espressif/esp-idf!36488
2025-01-18 05:39:01 +08:00
Tomáš Rohlínek
a92d5e9358 fix(storage/fatfsgen): broken test_apps scripts for fatfsgen 2025-01-17 18:31:50 +01:00
Marius Vikhammer
5fdc217858 Merge branch 'docs/correct_ulp_idf_monitor_command_v5.4' into 'release/v5.4'
docs(ulp): Fix esp_idf_monitor command for ulp monitoring (v5.4)

See merge request espressif/esp-idf!36470
2025-01-17 18:05:51 +08:00
Jiang Jiang Jian
ebd04eb2fc Merge branch 'fix/fix_esp32c2_eco4_rx_csa_ld_v54' into 'release/v5.4'
fix(wifi): fix esp32c2eco4 sta_rx_csa ld

See merge request espressif/esp-idf!36203
2025-01-17 17:42:02 +08:00
morris
cad9cc2ab2 Merge branch 'refactor/improve_the_compatible_method_on_h2_v5.4' into 'release/v5.4'
refactor(lpperi): improve compatibility solution (v5.4)

See merge request espressif/esp-idf!36422
2025-01-17 16:56:56 +08:00
Zhou Xiao
1c5f26af2b change(ble): update esp32c2 rom ld file
(cherry picked from commit e5feba6ed3)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-01-17 16:54:09 +08:00
Zhou Xiao
bf0ba2bb51 change(ble): [AUTO_MR] Update lib_esp32c2 to 7b7ee440
(cherry picked from commit c263c75897)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-17 16:54:06 +08:00
Zhou Xiao
cc1b79e98c change(ble): [AUTO_MR] Update lib_esp32c6 to bbc1903d
(cherry picked from commit 06a6b311a8)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-17 16:54:04 +08:00
Zhou Xiao
1f8539e9b3 change(ble): [AUTO_MR] Update lib_esp32h2 to bbc1903d
(cherry picked from commit 4f5f0b0954)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-17 16:54:02 +08:00
Sudeep Mohanty
36139f8620 docs(ulp): Fix esp_idf_monitor command for ulp monitoring
The commit fixes the esp_idf_monitor command for monitoring ulp serial
output as mentioned in the docs.
2025-01-17 08:29:19 +01:00
Jiang Jiang Jian
e7e3d5924e Merge branch 'fix/fix_tsens_power_after_modem_wakeup_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix tsensor power enable failed after modem state wakeup (v5.4)

See merge request espressif/esp-idf!36228
2025-01-17 11:45:25 +08:00
Jiang Jiang Jian
58cc66ac65 Merge branch 'ci/iperf_esp32p4_v5.4' into 'release/v5.4'
ci(esp_eth): added ESP32P4 to iperf CI test (v5.4)

See merge request espressif/esp-idf!36389
2025-01-17 11:44:15 +08:00
Jiang Jiang Jian
26fd34b864 Merge branch 'fix/lwip_ping_getnetif_threadsafe_v5.4' into 'release/v5.4'
fix(lwip): Fix ping session calling thread unsafe API (v5.4)

See merge request espressif/esp-idf!36379
2025-01-17 11:43:24 +08:00
Jiang Jiang Jian
192874f939 Merge branch 'change/ble_update_lib_20250103_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250103 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!36373
2025-01-17 11:42:18 +08:00
wangtao@espressif.com
18aced40f9 fix(wifi): fix esp32c2eco4 sta_rx_csa ld 2025-01-17 11:41:43 +08:00
gaoxiaojie
58df18a361 fix(soc): fix clic register define and add description 2025-01-17 11:40:50 +08:00
Jiang Jiang Jian
74896d4187 Merge branch 'feature/efuse_update_for_esp32h2_eco5_v5.4' into 'release/v5.4'
feat(efuse): Adds efuses for esp32h2 eco5 (v5.4)

See merge request espressif/esp-idf!36238
2025-01-17 11:39:31 +08:00
Jiang Jiang Jian
054a0be454 Merge branch 'bugfix/sync_buf_crash_v5.4' into 'release/v5.4'
fix(bt/controller): fixed missing critical protections on linked-list structure of (e)SCO buffers (v5.4)

See merge request espressif/esp-idf!36340
2025-01-17 11:38:28 +08:00
wanckl
6c6454357c feat(driver_spi): support using SPI_DEVICE_STD_TIMING to adjust master rx in standard timing 2025-01-17 10:51:47 +08:00
Shu Chen
f4e4591180 Merge branch 'fix/set_154_cca_duration_v5.4' into 'release/v5.4'
fix(15.4): set 15.4 energy scan duration before cca (v5.4)

See merge request espressif/esp-idf!36424
2025-01-17 09:27:19 +08:00
Tomas Rezucha
f1fa7b1408 refactor(usb/phy): Merge P4 and S2/S3 PHYs into one module
P4 had separate PHY implementation for initial bring-up,
now we can merge it with the original PHY driver.
2025-01-16 10:19:31 +01:00
Jiang Jiang Jian
fbd97514df Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
fix(wifi): backport wifi fixes to v5.4

See merge request espressif/esp-idf!36330
2025-01-16 17:16:13 +08:00
morris
9fb37219a2 Merge branch 'refactor/cleanup_usb_phy_v5.4' into 'release/v5.4'
Cleanup USB PHY (backport v5.4)

See merge request espressif/esp-idf!36236
2025-01-16 16:53:31 +08:00
Xu Si Yu
35a590c437 fix(15.4): set 15.4 energy scan duration before cca 2025-01-16 11:45:29 +08:00
laokaiyao
889537960e refactor(lpperi): improve compatibility solution 2025-01-16 10:21:17 +08:00
Ondrej Kosta
a2eba1e25a ci(esp_eth): added ESP32P4 to iperf CI test
Updated (increased) ETH_THROUGHPUT_SPI_ETH limits.
Improved iperf optimization description
2025-01-15 22:53:04 +08:00
Nachiket Kukade
ba8494eb87 fix(wpa_supplicant): Fix some coverity issues in wpa_supplicant
1. Fix leak in SoftAP while sending SAE Confirm
2. Move NULL check before pointer is getting used
3. Remove some dead code
2025-01-15 19:42:12 +05:30
wangtao@espressif.com
08db2390e5 fix(wifi): fix build issue when disable wpa3 sae 2025-01-15 19:42:12 +05:30
Shreyas Sheth
29a95d30cc fix(wifi): Resolve comments for softap fixes 2025-01-15 19:42:12 +05:30
Shreyas Sheth
913999b8c3 fix(wifi): Resolve comments on feature/softap_fixes_for_ceritification 2025-01-15 19:42:11 +05:30
Shreyas Sheth
98c47bbfae fix(wifi): Make sure auth is sent after sae process 2025-01-15 19:42:11 +05:30
Shreyas Sheth
81070bce92 feat(wifi): Add support for transition_disable for softAP
Bugfix rsnxe len for assoc req
2025-01-15 19:42:11 +05:30
liuning
ce124478f1 fix(wifi): fix double max active time, fix coex pwr period cant been updated by ps type set 2025-01-15 19:42:11 +05:30
liuning
fbe0e5a358 feat(coex): update coexist debug default event 2025-01-15 19:42:11 +05:30
Sarvesh Bodakhe
716c5731ec feat(wpa_supplicant): Add WIFI_EVENT_AP_WRONG_PASSWORD in SoftAP
This event is triggered when external station tries connecting to softAP
with wrong password.

Currently supported softAP AUTH modes: WPA-PSK, WPA2-PSK and WPA3-PSK (SAE-auth)
2025-01-15 19:42:11 +05:30
yinqingzhao
3fca3a1223 fix(wifi): expend bit width of channel in rxctrl 2025-01-15 19:42:11 +05:30
yinqingzhao
f890bbe616 feat(wifi): wifi support 80211tx using 11ax and 11ac rate 2025-01-15 19:42:11 +05:30
wangtao@espressif.com
3c8926d3b6 fix(wifi): fix hostap recv unassoc pspoll send deauth issue 2025-01-15 19:42:11 +05:30
Rahul Tank
2ebbfef5f4 Merge branch 'bugfix/fix_compilation_warn_v5.4' into 'release/v5.4'
fix(nimble): Address compilation warnings for different flag combination (v5.4)

See merge request espressif/esp-idf!36392
2025-01-15 21:33:32 +08:00
Roland Dobai
a84b03dd41 Merge branch 'fix/remove_duplicates_from_sdkconfig_renames_v5.4' into 'release/v5.4'
fix: remove duplicit lines from sdkconfig.rename files (v5.4)

See merge request espressif/esp-idf!36346
2025-01-15 17:58:26 +08:00
morris
1cb5c64fc0 Merge branch 'refactor/update_lpperi_regs_for_h2_eco5_v5.4' into 'release/v5.4'
refactor(lpperi): compatible refactor for H2 ECO5 (v5.4)

See merge request espressif/esp-idf!36335
2025-01-15 16:09:59 +08:00
wanckl
86741aebd4 fix(driver_spi): fixed slave example error on esp32p4 2025-01-15 16:03:12 +08:00
wanckl
273f2be226 fix(driver_spi): fixed slave_hd driver transaction alignment check 2025-01-15 16:03:12 +08:00
Rahul Tank
7029c169cb fix(nimble): Fix compilation issues for different flag combinations 2025-01-15 10:09:52 +05:30
morris
a75eab44ba Merge branch 'change/bs_cmake_cleanup_v5.4' into 'release/v5.4'
feat(gdma): added help function to count the bytes in the receive buffer (v5.4)

See merge request espressif/esp-idf!36375
2025-01-15 12:27:10 +08:00
morris
bd5c6b0645 Merge branch 'contrib/github_pr_15144_v5.4' into 'release/v5.4'
fix(twai): TWAI_GENERAL_CONFIG_DEFAULT_V2 initialize general_flags (GitHub PR) (v5.4)

See merge request espressif/esp-idf!36323
2025-01-15 12:26:58 +08:00
Shu Chen
3b41c1a5a0 Merge branch 'feat/update_thread_lib_v5.4' into 'release/v5.4'
fix(openthread): update SRP server to support zero subtype (v5.4)

See merge request espressif/esp-idf!36345
2025-01-15 10:57:46 +08:00
David Cermak
d715abb8fd fix(lwip): Fix ping session calling thread unsafe API
Closes https://github.com/espressif/esp-idf/issues/14982
2025-01-14 11:25:31 +01:00
Zhou Xiao
dace9697b5 change(ble): updated esp_bt.h controller config for ESP32-C5 2025-01-14 17:52:59 +08:00
zwl
6bdfda8169 fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-C5 2025-01-14 17:50:56 +08:00
zwl
be796ba6c7 feat(ble): support for putting ble code into flash on ESP32-C5 2025-01-14 17:50:48 +08:00
zhouxiao
4bcbad08ea change(ble): Update lib_esp32c5 to 3422b706 2025-01-14 17:50:37 +08:00
Zhou Xiao
d4ebd1ec26 fix(ble): fixed ld file for c2eco0 and c2eco4
(cherry picked from commit 937fe2a6e3)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 17:45:32 +08:00
morris
2d6bc67fb5 feat(gdma): added API to count the size of rx buffer until eof 2025-01-14 16:39:05 +08:00
Zhou Xiao
52b06af63f fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-H2
(cherry picked from commit d2b62f2130)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:51 +08:00
Zhou Xiao
7d6ce29de9 fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-C6
(cherry picked from commit 8d6ec12838)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:49 +08:00
Zhou Xiao
a190bae264 fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-C2
(cherry picked from commit 6a752eeb89)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:47 +08:00
Zhou Xiao
d1a1156d4d feat(ble): support for putting ble code into flash on ESP32-H2
(cherry picked from commit 5a9acdc379)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:45 +08:00
Zhou Xiao
8fb74a1235 feat(ble): support for putting ble code into flash on ESP32-C6
(cherry picked from commit 02d6d6fd73)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:43 +08:00
Zhou Xiao
00fb58c133 change(ble): Update lib_esp32c2 to 2a00fb0b
(cherry picked from commit 7cd3fe6953)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 14:54:40 +08:00
Zhou Xiao
d63157b914 change(ble): Update lib_esp32c6 to 3422b706
(cherry picked from commit 4fc95fa91f)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 14:54:38 +08:00
Zhou Xiao
59a90dd17c change(ble): Update lib_esp32h2 to 3422b706
(cherry picked from commit fe5a12e7e7)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 14:54:36 +08:00
wuzhenghui
9b7ce542f2 fix(esp_hw_support): fix p4 OTG phy bad suspend cause high power consumption on sleep 2025-01-14 14:22:39 +08:00
Mahavir Jain
9acf088718 Merge branch 'bugfix/update_api_to_get_url_correctly_v5.4' into 'release/v5.4'
fix(esp_http_client): updated API esp_http_client_get_url() to get URL in correct format (v5.4)

See merge request espressif/esp-idf!36331
2025-01-14 12:45:07 +08:00
Jan Beran
350d38f989 fix: remove duplicit lines from sdkconfig.rename files 2025-01-13 09:07:21 +01:00
Mahavir Jain
c8bb53292d Merge branch 'fix/return_esp_err_t_for_httpd_req_get_url_query_str_v5.4' into 'release/v5.4'
feat(https_server): Added checks to verify if uri is empty (v5.4)

See merge request espressif/esp-idf!36286
2025-01-13 15:57:45 +08:00
Tan Yan Quan
ddd0843d0e fix(openthread): update SRP server to support zero subtype/v5.4 2025-01-13 15:24:47 +08:00
morris
cf1692c96c Merge branch 'bugfix/reset_axi_gdma_gracefully_v5.4' into 'release/v5.4'
fix(gdma): stop the axi gdma gracefully on CPU SW reset (v5.4)

See merge request espressif/esp-idf!36283
2025-01-13 15:12:26 +08:00
Jin Cheng
6d1b21b167 fix(bt/controller): fixed missing critical protections on linked-list structure of (e)SCO buffers 2025-01-13 14:52:28 +08:00
laokaiyao
25f64d9cbd refactor(lpperi): compatible refactor for H2 ECO5 2025-01-13 14:36:00 +08:00
nilesh.kale
90d2dbad99 fix(esp_http_client): updated API esp_http_client_get_url to get URL in correct format
This commit updates the API to include the port number in the URL,
which was previously missing.
2025-01-13 11:14:20 +05:30
Rahul Tank
c6637ae369 Merge branch 'bugfix/fix_few_nimble_issues_v5.4' into 'release/v5.4'
fix(nimble): Fix few nimble issues 11012025 (v5.4)

See merge request espressif/esp-idf!36310
2025-01-13 13:24:50 +08:00
Shu Chen
1ceb4e4682 Merge branch 'feature/154_api_enhancement_for_mp_v5.4' into 'release/v5.4'
feat(802.15.4): support register isr callback (v5.4)

See merge request espressif/esp-idf!36198
2025-01-13 10:57:07 +08:00
morris
6af9dc6934 test(twai): add cxx build test 2025-01-13 10:13:56 +08:00
Nebojsa Cvetkovic
b1abc47d74 fix(twai): TWAI_GENERAL_CONFIG_DEFAULT_V2 initialize general_flags
Closes https://github.com/espressif/esp-idf/pull/15144
2025-01-13 10:13:53 +08:00
morris
93f91c4f0f Merge branch 'ci/re_enable_i2s_pytest_exceptions_v5.4' into 'release/v5.4'
ci(i2s): re-enable example pytest exceptions (v5.4)

See merge request espressif/esp-idf!36312
2025-01-11 22:13:32 +08:00
laokaiyao
c61b2c4095 ci(i2s): re-enable example pytest exceptions 2025-01-10 20:20:04 +08:00
Abhinav Kudnar
3f4dd2bf35 feat(nimble): Additional changes in PAWR IDF Examples/support for ESP IP 2025-01-10 17:11:32 +05:30
Rahul Tank
99af3abadf fix(nimble): Fixed a typo in Kconfig file 2025-01-10 17:11:16 +05:30
Astha Verma
d9de2b7dde fix(nimble): Added HCI_Read_Remote_Version_Information command 2025-01-10 17:10:43 +05:30
Rahul Tank
1bbc6fb9b8 fix(nimble): Clear our and peer security records during unpair 2025-01-10 17:09:51 +05:30
Roland Dobai
72112c3fda Merge branch 'feature/add_utf_8_decoding_v5.4' into 'release/v5.4'
feat(tools): Enforced utf-8 encoding with Python open() functions (v5.4)

See merge request espressif/esp-idf!36125
2025-01-10 19:26:10 +08:00
Roland Dobai
f6ad4d5056 Merge branch 'fix/test_idf_gdb_v5.4' into 'release/v5.4'
test(system): mark gdb test runners properly (v5.4)

See merge request espressif/esp-idf!35586
2025-01-10 18:15:32 +08:00
Island
fe24a1c835 Merge branch 'feat/add_config_for_ble_vs_qa_cmd_v5.4' into 'release/v5.4'
fixed interrupt WDT when shutdown bt controller on ESP32(ba6739f) (v5.4)

See merge request espressif/esp-idf!36176
2025-01-10 14:17:41 +08:00
Marek Fiala
b37383f75b feat(tools): Enforce utf-8 encoding with open() function 2025-01-10 13:52:58 +08:00
Roland Dobai
73d1c139e7 Merge branch 'ci/improve_overall_logging_v5.4' into 'release/v5.4'
ci: target-test job skip installing toolchain, only install python env (v5.4)

See merge request espressif/esp-idf!34905
2025-01-10 13:52:24 +08:00
zwx
699af05b57 feat(802.15.4): introduced a feature for registering 802.15.4 ISR callbacks 2025-01-10 13:51:30 +08:00
hrushikesh.bhosale
f96a118ebf feat(https_server): Added checks to verify if uri is empty
Added the checks if the URI is empty for the funtions httpd_req_get_url_query_len
and httpd_req_get_url_query_str in httpd_parser.c
2025-01-10 11:09:31 +05:30
morris
098ecb1cf1 Merge branch 'bugfix/uart_single_wire_mode_v5.4' into 'release/v5.4'
fix(uart): allow same pin for tx and rx in uart_set_pin; UART_SELECT_READ_NOTIF race conditon fix (v5.4)

See merge request espressif/esp-idf!36250
2025-01-10 11:39:53 +08:00
wuzhenghui
667011cd46 fix(esp_hw_support): fix tsens power enable failed after modem state wakeup 2025-01-10 10:21:39 +08:00
morris
605fb6e894 fix(dma): abort the axi dma gracefully on CPU SW reset 2025-01-10 10:14:36 +08:00
Fu Hanxi
be2ec1615c ci: target-test job skip installing toolchain, only install python env
also run with collapsed time section to better track run time
2025-01-10 02:25:32 +08:00
Fu Hanxi
7e465dd526 ci: ignore test-specific 3rd-party libs while building clang projects 2025-01-10 02:25:32 +08:00
Fu Hanxi
e1781df75b feat: idf_tools.py export support env var "IDF_SKIP_TOOLS_CHECK" 2025-01-10 02:25:32 +08:00
Fu Hanxi
f326d5d7ce ci: print esp-coredump output when failed in panic tests 2025-01-10 02:25:32 +08:00
Fu Hanxi
ffdb0f012e ci: remove gcc dependency in target test 2025-01-10 02:25:32 +08:00
Fu Hanxi
257878ddb4 ci: change logging level from debug to info for build jobs 2025-01-10 02:25:32 +08:00
Fu Hanxi
ffbdd8a145 ci: add timeout for build jobs 2025-01-10 02:25:32 +08:00
Fu Hanxi
e0f374d92b ci: stop print presigned url, since the credential is masked 2025-01-10 02:25:32 +08:00
Erhan Kurubas
8aabaea4f5 change(cmake): use board configuration file for ftdi interface 2025-01-09 12:39:23 +01:00
Erhan Kurubas
e565643a3b test(system): mark gdb test runners properly 2025-01-09 12:37:19 +01:00
Roland Dobai
5bb41c4932 Merge branch 'feature/move-gdb-options-to_project_description_json_v5.4' into 'release/v5.4'
feat(debugging): move gdbinit generation to CMake (v5.4)

See merge request espressif/esp-idf!35175
2025-01-09 18:58:23 +08:00
morris
a45778a028 Merge branch 'feat/ldo_can_output_3v3_v5.4' into 'release/v5.4'
feat(ldo): support output rail voltage (3.3V) (v5.4)

See merge request espressif/esp-idf!36130
2025-01-09 17:15:00 +08:00
Jiang Jiang Jian
db6e451f14 Merge branch 'bugfix/channel_resolution_calculation_v5.4' into 'release/v5.4'
fix(rmt): channel resolution divider rounding issue (v5.4)

See merge request espressif/esp-idf!36032
2025-01-09 11:38:53 +08:00
Jiang Jiang Jian
5747e16f74 Merge branch 'fix/blufi_example_mem_access_v5.4' into 'release/v5.4'
fix(ble/blufi): Fixed blufi example security issue (v5.4)

See merge request espressif/esp-idf!36164
2025-01-09 11:38:08 +08:00
Jiang Jiang Jian
dd00aa1776 Merge branch 'fix/heap-allocate-in-rtc-iram_v5.4' into 'release/v5.4'
fix(heap): MALLOC_CAP_EXEC does not allocate in RTC IRAM (backport v5.4)

See merge request espressif/esp-idf!35623
2025-01-09 11:36:16 +08:00
Jiang Jiang Jian
7317a6213c Merge branch 'docs/update_cn_vfs_v5.4' into 'release/v5.4'
docs: Update CN translation for vfs.rst (v5.4)

See merge request espressif/esp-idf!35404
2025-01-09 11:35:25 +08:00
Island
4986601e66 Merge branch 'bugfix/fix_some_ble_bugs_241224_esp32c3_v5.4' into 'release/v5.4'
Fixed some BLE bugs 241224 on ESP32C3(fd62b31) (v5.4)

See merge request espressif/esp-idf!36196
2025-01-09 11:35:07 +08:00
chenjianhua
ecf663cb7d fix(bt): Update bt lib for ESP32(ba6739f)
- Fixed assert in lld_evt.c at line 2353
- Fixed interrupt WDT when shutdown bt controller
- Added config for BLE vendor HCI QA command
- Added config for BLE channel assessment and ping procedure
2025-01-09 10:39:10 +08:00
Island
96c2beeef2 Merge branch 'docs/refactor_ceva_bt_controller_api_v5.4' into 'release/v5.4'
docs(ble): Refactored the API reference for esp32/c3/s3 BT controller (v5.4)

See merge request espressif/esp-idf!35353
2025-01-09 10:36:03 +08:00
Wei Yu Han
3e49a5fb68 docs(ble): Refactored the API reference for esp32/c3/s3 BT controller (v5.4) 2025-01-09 10:36:03 +08:00
Marius Vikhammer
8612033b17 Merge branch 'fix/ringbuf_receives_after_aq_wraparound_v5.4' into 'release/v5.4'
fix(esp_ringbuf): Fixed no-split ringbuf issue where acquire pointer  wraps around (v5.4)

See merge request espressif/esp-idf!35867
2025-01-09 09:30:18 +08:00
morris
ac6e1341c4 Merge branch 'fix/flash_noos_issues_v5.4' into 'release/v5.4'
flash: fixed some no_os API issues (v5.4)

See merge request espressif/esp-idf!35791
2025-01-08 22:12:16 +08:00
Rahul Tank
92fab01566 Merge branch 'bugfix/fix_csfc_write_nvs_v5.4' into 'release/v5.4'
fix(nimble): Corrected storing method of csfc to nvs (v5.4)

See merge request espressif/esp-idf!36165
2025-01-08 21:47:47 +08:00
Alex Bethel
441effd499 docs: Fix gpio_dump_io_configuration typo in docs
The mentioned `gpio_dump_all_io_configuration` function doesn't exist,
the correct function is `gpio_dump_io_configuration`.

Merges https://github.com/espressif/esp-idf/pull/15031
2025-01-08 20:40:53 +08:00
Song Ruo Jing
131330034a fix(uart): allow same pin for tx and rx in uart_set_pin
Closes https://github.com/espressif/esp-idf/issues/14787
2025-01-08 20:38:11 +08:00
Sergei Silnov
6d888a9584 Merge branch 'ci/pre-commit-idf-build-apps-version_v5.4' into 'release/v5.4'
ci: update idf-build-apps version in pre-commit (v5.4)

See merge request espressif/esp-idf!35465
2025-01-08 19:58:56 +08:00
Song Ruo Jing
f693485ad0 fix(uart): fix race condition with the use of UART_SELECT_READ_NOTIF
UART_SELECT_READ_NOTIF needs to be sent after received data got processed
to avoid the potential race condition
2025-01-08 19:44:36 +08:00
Konstantin Kondrashov
a98c20d4e0 feat(espefuse): Adds efuses for esp32h2 eco5
- Support efuses that are not present in the main efuse table
2025-01-08 11:16:49 +02:00
Tomas Rezucha
f93e1bc43b refactor(usb/phy): Start using values from usb_dwc_info in PHY driver
Add tests for PHY sanity checks
2025-01-08 09:26:48 +01:00
Tomas Rezucha
b78bcaea36 refactor(usb/phy): Do not use deprecated variables in usb_phy 2025-01-08 09:26:41 +01:00
Tomas Rezucha
ac3a3f801d feat(hal/usb): Explicitly enable clock and reset USB WRAP on init 2025-01-08 09:25:42 +01:00
Shu Chen
d43f647f80 Merge branch 'feat/support_setting_event_for_154_txrx_5_4' into 'release/v5.4'
feat(15.4): support setting 15.4 txrx pti when coex is enabled (backport to 5.4)

See merge request espressif/esp-idf!36109
2025-01-08 16:09:36 +08:00
Rahul Tank
128534dd66 fix(nimble): Corrected storing method of csfc to nvs 2025-01-08 13:04:31 +05:30
Marius Vikhammer
dc23968cc2 Merge branch 'fix/esp32p4_unexpected_reset_v5.4' into 'release/v5.4'
fix(system): avoid unexcpected hp_sys_wdt reset (v5.4)

See merge request espressif/esp-idf!35801
2025-01-08 13:40:40 +08:00
morris
c4b2f65031 Merge branch 'feat/rmt_return_real_channel_resolution_v5.4' into 'release/v5.4'
feat(rmt): add API to return the real clock resolution of a channel (v5.4)

See merge request espressif/esp-idf!35901
2025-01-08 11:23:31 +08:00
Marius Vikhammer
589020f0df Merge branch 'docs/remove_coex_doxy_v5.4' into 'release/v5.4'
docs(doxygen): removed coex header from doxyfile (v5.4)

See merge request espressif/esp-idf!36222
2025-01-08 10:32:51 +08:00
morris
cfc878a650 Merge branch 'refactor/cleanup_usb_phy_backport_v5.4' into 'release/v5.4'
fix(usb/host): Fix reaction on High-Speed NYET packet (backport v5.4)

See merge request espressif/esp-idf!36119
2025-01-08 10:22:50 +08:00
Marius Vikhammer
ef9bbf344b docs(doxygen): removed coex header from doxyfile
Failing to build due to missing comments, but the header was
never included in the docs anyway, so might as well remove it.
2025-01-08 09:38:35 +08:00
Rahul Tank
ad9e0d5b7c Merge branch 'bugfix/ble_common_issues_v5.4' into 'release/v5.4'
Bugfix/ble common issues v5.4

See merge request espressif/esp-idf!35790
2025-01-07 23:35:21 +08:00
Armando
4a9fb951cf fix(cache): fixed cache hal ctx not initialised in app issue 2025-01-07 20:08:02 +08:00
Armando
8c8f8836e5 fix(spi_flash): fixed no_os flash API not consider branch predictor on c5/c61 2025-01-07 20:08:02 +08:00
Armando
49826c241b fix(spi_flash): fixed no_os flash API not consider cache states issue on h2/p4/c6/c5/c61 2025-01-07 20:08:02 +08:00
Erhan Kurubas
954132b68a fix(system): avoid unexcpected hp_sys_wdt reset 2025-01-07 20:07:17 +08:00
Rahul Tank
71b0d14b21 fix(nimble): Fix compilation issue in esp_hid_host example 2025-01-07 16:27:20 +05:30
Rahul Tank
8163aa8496 fix(nimble): Address few coverity reported issues
1. Overflowed constant (INTEGER_OVERFLOW): Added change to typecast
value
2. Structurally dead code: Removed dead code
3. Resource leak: Added a free for allocated memory, in case of failure
4. too_few_printf_args: Corrected print statement to pass arguments
5. Fixed nesting levels
6. Fixed unused value warnings
7. Illegal memory access fix
2025-01-07 16:27:18 +05:30
Abhinav Kudnar
c28509987c fix(nimble): Save the gatt context in case of preemption 2025-01-07 16:23:19 +05:30
Rahul Tank
594137b0e3 fix(nimble): Fix compilation issue for combination of Ext Adv and Reattempt conn flag 2025-01-07 16:23:19 +05:30
Rahul Tank
8108f35850 fix(nimble): Add ATT Tx queue cleanup during link disconnection 2025-01-07 16:23:19 +05:30
Rahul Tank
0dc38beb81 fix(nimble): Fix compilation issues when BLE_MAX_STORE_BOND is set to 0 2025-01-07 16:23:19 +05:30
Shreeyash
b5dd19e613 fix(nimble): Added a check for invalid offset 2025-01-07 16:23:19 +05:30
shreeyash
0aab10f023 fix(nimble): Updated peer OTA address type 2025-01-07 16:23:19 +05:30
Astha Verma
53744fe62c fix(nimble): fix memory leak issue in Blufi example 2025-01-07 16:23:19 +05:30
Astha Verma
f84739cce0 fix(nimble): Added a function for printing HCI error definition 2025-01-07 16:23:19 +05:30
Abhinav Kudnar
408d841dfe fix(nimble): Changing esp_rom_printf to ESP_LOGI when memory allocation fails 2025-01-07 16:23:18 +05:30
Rahul Tank
fc3ecc2527 fix(nimble): Corrected link_estab event handling parameters 2025-01-07 16:23:17 +05:30
Shu Chen
ebd77e121d Merge branch 'feat/set_get_ack_timeout_v5.4' into 'release/v5.4'
feat(802.15.4): add api for set/get ack timeout (v5.4)

See merge request espressif/esp-idf!36085
2025-01-07 14:54:16 +08:00
Zhuang Hang
e9220ca8e6 feat(802.15.4): add api for set/get ack timeout (v5.4) 2025-01-07 14:54:16 +08:00
Chen Jian Hua
331e368647 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(fd62b31)
- Fixed periodic adv enable params checking
- Fixed BLE assert lld_scan.c 1728 when receiving directed adv
- Support resolving RPA to identity address when creating connection
- Fixed BLE assert rwble.c 505 param 00400010
- Fixed peer address type error in HCI LE meta event
- Fixed setting random address failed when extended adv is enabled


(cherry picked from commit 326f391f9c)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-01-07 14:33:39 +08:00
Rahul Tank
03a4e24394 fix(nimble): Fixes for security vulnerabilities reported in NimBLE 2025-01-07 10:19:30 +05:30
Astha Verma
bc29f45224 fix(nimble): added a function for printing HCI error definition 2025-01-07 10:19:30 +05:30
Xu Si Yu
59cd4c481d feat(15.4): support setting 15.4 txrx pti when coex is enabled 2025-01-07 12:23:24 +08:00
Xu Si Yu
a4843338e8 fix(openthread): fix openthread radio spinel deinit 2025-01-07 12:22:16 +08:00
Xu Si Yu
17ec36e3e0 fix(openthread): fix a naming error of kconfig 2025-01-07 12:21:38 +08:00
Shu Chen
488c9c6d3f Merge branch 'feature/change_ot_ci_cases_wlan_to_ethernet_v5.4' into 'release/v5.4'
feat(openthread): change wlan to ethernet (Backport v5.4)

See merge request espressif/esp-idf!35742
2025-01-07 10:58:54 +08:00
Jiang Jiang Jian
6345fd74a4 Merge branch 'bugfix/enable_eap_workarounds_v5.4' into 'release/v5.4'
fix(esp_wifi): Enable EAP workarounds by default (v5.4)

See merge request espressif/esp-idf!36152
2025-01-07 10:56:16 +08:00
Jiang Jiang Jian
f58ca2bde3 Merge branch 'fix/fix_flash_clock_changed_after_sleep_bak_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix mspi clock freq changed after lightsleep (v5.4)

See merge request espressif/esp-idf!36002
2025-01-07 10:55:43 +08:00
Jiang Jiang Jian
7cd2a1483e Merge branch 'fix/fix_p4_deepsleep_io_leakage_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32p4 JTAG pad deepsleep current leakage (v5.4)

See merge request espressif/esp-idf!36008
2025-01-07 10:53:13 +08:00
Jiang Jiang Jian
ca4133f2c3 Merge branch 'fix/fix_flash_leakage_workaroud_config_dependcy_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix FLASH leakage workaround kconfig dependcy (v5.4)

See merge request espressif/esp-idf!35990
2025-01-07 10:52:25 +08:00
Jiang Jiang Jian
0cdeed5329 Merge branch 'fix/fix_pm_trace_rtc_domain_keeping_v5.4' into 'release/v5.4'
fix(esp_pm): enable RTC_PERIPH domain once in esp_pm_trace_init (v5.4)

See merge request espressif/esp-idf!35997
2025-01-07 10:52:07 +08:00
Jiang Jiang Jian
805b4d3158 Merge branch 'bugfix/fix_some_wifi_bugs_20241221_v5.4' into 'release/v5.4'
fix some wifi bugs 20241221(Backport v5.4)

See merge request espressif/esp-idf!35861
2025-01-07 10:51:30 +08:00
Jiang Jiang Jian
93f7ae66c2 Merge branch 'ci/add_build_test_eco_versions_v5.4' into 'release/v5.4'
ci: add build test for eco versions (v5.4)

See merge request espressif/esp-idf!35818
2025-01-07 10:50:58 +08:00
Jiang Jiang Jian
19dcf3c1a8 Merge branch 'fix/lwip_autoip_next_addr_after_rate_limit_v5.4' into 'release/v5.4'
fix(lwip): Fix AUTOIP new address after rate limit (v5.4)

See merge request espressif/esp-idf!35842
2025-01-07 10:50:32 +08:00
Jiang Jiang Jian
55fb426d2e Merge branch 'bugfix/fix_sniffer_fail_on_ci_v5.4' into 'release/v5.4'
fix(ci): Enlarge the pcap memory size in sniffer example (v5.4)

See merge request espressif/esp-idf!35698
2025-01-07 10:49:48 +08:00
Jiang Jiang Jian
6d7225f336 Merge branch 'bugfix/ws_head_buf_size_v5.4' into 'release/v5.4'
fix(tcp_transport): Fix websocket header read to handle overflow (v5.4)

See merge request espressif/esp-idf!35667
2025-01-07 10:49:25 +08:00
Jiang Jiang Jian
5b09d8d66e Merge branch 'fix/esp_netif_ppp_nullptr_check_v5.4' into 'release/v5.4'
fix(esp_netif): Prevent null deref when checking netif type (v5.4)

See merge request espressif/esp-idf!35670
2025-01-07 10:48:30 +08:00
Jiang Jiang Jian
95dd312cb0 Merge branch 'bugfix/fix_ble_disconn_error_on_c61_v5.4' into 'release/v5.4'
fix(ble): fix btbb retention register size on esp32c61 (v5.4)

See merge request espressif/esp-idf!35257
2025-01-07 10:47:51 +08:00
Jiang Jiang Jian
176b9c9dba Merge branch 'fix/fix_esp32c2_ld_issue_v54' into 'release/v5.4'
fix(wifi): fix esp32c2 ld issue

See merge request espressif/esp-idf!35610
2025-01-07 10:47:32 +08:00
Jiang Jiang Jian
9b9f991ec5 Merge branch 'enable_esp32c5_ci_test_v5.4' into 'release/v5.4'
fix(ci): enable esp32c5 eco1 ci test (Backport v5.4)

See merge request espressif/esp-idf!34899
2025-01-07 10:46:33 +08:00
morris
8379cd7b92 Merge branch 'feature/isp_dvp_example_v5.4' into 'release/v5.4'
feat(dvp_isp_dsi_example): add new option to connect a DVP camera sensor (ov2640) through ISP_DVP (v5.4)

See merge request espressif/esp-idf!35973
2025-01-07 10:45:23 +08:00
morris
e456840f2c Merge branch 'feat/mcpwm_sleep_retention_support_p4_v5.4' into 'release/v5.4'
feat(mcpwm): support mcpwm sleep retention on p4 (v5.4)

See merge request espressif/esp-idf!35342
2025-01-07 10:42:39 +08:00
morris
92208b309d Merge branch 'feat/support_step_notify_on_h2eco5_v5.4' into 'release/v5.4'
feat(pcnt): support step_notify on esp32h2 eco5 (v5.4)

See merge request espressif/esp-idf!35620
2025-01-07 10:38:10 +08:00
Shu Chen
8b1b4df6f7 Merge branch 'feature/add_rx_buff_statistic_v5.4' into 'release/v5.4'
feat(802.15.4): IEEE802.15.4 add rx buffer statistic (v5.4)

See merge request espressif/esp-idf!35639
2025-01-07 10:34:54 +08:00
Shu Chen
89e47be331 Merge branch 'feat/example_connect_thread_v5_4' into 'release/v5.4'
feat(protocol_examples_common): Add Thread connect to support Thread for the protocol examples(v5.4)

See merge request espressif/esp-idf!36090
2025-01-07 10:34:12 +08:00
Shu Chen
0731b3c14d Merge branch 'feature/use_fixed_dut_in_ot_ci_cases_v5.4' into 'release/v5.4'
feat(openthread): use fixed port in ot ci cases (Backport v5.4)

See merge request espressif/esp-idf!36048
2025-01-07 10:34:02 +08:00
Shu Chen
2e06b60757 Merge branch 'fix/openthread_dns_hook_v5_4' into 'release/v5.4'
fix(openthread): Fix external DNS resolve hook for DNS64 client(v5.4)

See merge request espressif/esp-idf!35983
2025-01-07 10:33:49 +08:00
Shu Chen
97a13a769a Merge branch 'fix/add_macros_for_otbr_v5.4' into 'release/v5.4'
fix(openthread): add macros for ot_br (v5.4)

See merge request espressif/esp-idf!35892
2025-01-07 10:33:38 +08:00
Shu Chen
487b522629 Merge branch 'fix/thread-lib-v54' into 'release/v5.4'
fix(openthread): update esp-thread-lib branch (v5.4)

See merge request espressif/esp-idf!35812
2025-01-07 10:33:31 +08:00
Shu Chen
e2edf1318b Merge branch 'fix/disable_border_agent_default_v5_4' into 'release/v5.4'
fix(openthread): Disable Border Agent features by default(v5.4)

See merge request espressif/esp-idf!35550
2025-01-07 10:33:17 +08:00
Shu Chen
976f186a10 Merge branch 'fix/add_delay_before_command_in_ot_ci_case_v5.4' into 'release/v5.4'
feat(openthread): add delay before execute wifi command in openthread ci cases (Backport v5.4)

See merge request espressif/esp-idf!35422
2025-01-07 10:33:01 +08:00
morris
7a04d353b5 Merge branch 'feat/support_i80_lcd_via_parlio_v5.4' into 'release/v5.4'
refactor(i80_lcd): adapt example to lvgl9 (v5.4)

See merge request espressif/esp-idf!35519
2025-01-07 10:31:48 +08:00
morris
c670044eab Merge branch 'feature/uart_sleep_retention_support_c5_c61_v5.4' into 'release/v5.4'
feat(uart): support uart sleep retention on C5/C61 (v5.4)

See merge request espressif/esp-idf!35400
2025-01-07 10:29:23 +08:00
morris
51bae98066 Merge branch 'bugfix/uart_vfs_read_behavior_v5.4' into 'release/v5.4'
fix(uart_vfs): read() now aligned to POSIX defined behavior (v5.4)

See merge request espressif/esp-idf!35392
2025-01-07 10:28:54 +08:00
morris
2ad251bd1d Merge branch 'bugfix/ledc_get_freq_calc_v5.4' into 'release/v5.4'
fix(ledc): fix ledc_get_freq calculation err due to overflow (v5.4)

See merge request espressif/esp-idf!36005
2025-01-07 10:28:30 +08:00
morris
b8820cf4be Merge branch 'feat/xmc_32d_support_v5.4' into 'release/v5.4'
feat(spi_flash): support 120M on xmc25q32d flash (backport v5.4)

See merge request espressif/esp-idf!36078
2025-01-07 10:28:11 +08:00
morris
f36f04ef0d feat(ldo): support output rail voltage (3.3V) 2025-01-06 18:52:29 +08:00
Island
5bac8a9382 Merge branch 'docs/add_ble_qualification_table_v5.4' into 'release/v5.4'
docs(ble): Added BLE Qualification Information to API Guides (v5.4)

See merge request espressif/esp-idf!35711
2025-01-06 17:33:09 +08:00
Wei Yu Han
6f4b1d8767 docs(ble): Added BLE Qualification Information to API Guides (v5.4) 2025-01-06 17:33:09 +08:00
Island
f4138ade17 Merge branch 'bugfix/fixed_ble_issues_241220_v5.4' into 'release/v5.4'
Bugfix/fixed ble issues 241220 (v5.4)

See merge request espressif/esp-idf!35924
2025-01-06 17:01:07 +08:00
Sudeep Mohanty
334c9ac268 fix(esp_ringbuf): Fixed no-split ringbuf issue where acquire pointer wraps around
This commit fixes an issue with no-split ring buffers where in the the
buffer did not receive items correctly if the acquire pointer wraps
around before items are sent to it.
2025-01-06 16:45:04 +08:00
Marius Vikhammer
c277ec9e6d Merge branch 'fix/intr_alloc_level_bug_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix a bug in the interrupt allocator related to shared interrupts (backport v5.4)

See merge request espressif/esp-idf!35477
2025-01-06 16:01:46 +08:00
Roland Dobai
bbdc6cfe4f Merge branch 'feat/dfu_p4_backport_v5.4' into 'release/v5.4'
feat(dfu): Enable DFU on ESP32-P4 (backport v5.4)

See merge request espressif/esp-idf!35829
2025-01-06 15:41:29 +08:00
Roland Dobai
a85d7cbe21 Merge branch 'fix/failing_create_readonly_test_on_win_v5.4' into 'release/v5.4'
fix(tools): fixed failing Win CI (tests read_only) (v5.4)

See merge request espressif/esp-idf!36122
2025-01-06 15:40:32 +08:00
Roland Dobai
aac6f2c911 Merge branch 'fix/export_fish_esp_python_v5.4' into 'release/v5.4'
fix(tools): Use ESP_PYTHON with activate.py in export.fish (v5.4)

See merge request espressif/esp-idf!36121
2025-01-06 15:40:14 +08:00
Roland Dobai
ed9f2827cc Merge branch 'fix/missing_header_hint_v5.4' into 'release/v5.4'
fix(hints): improve suggestion for missing header file (v5.4)

See merge request espressif/esp-idf!36043
2025-01-06 15:39:41 +08:00
Roland Dobai
1e788836a5 Merge branch 'fix/honor_idf_python_env_path_v5.4' into 'release/v5.4'
fix(tools): honor IDF_PYTHON_ENV_PATH value (v5.4)

See merge request espressif/esp-idf!35873
2025-01-06 15:39:24 +08:00
Roland Dobai
58137e67b2 Merge branch 'change/bump_up_kconfig_precommit_v5.4' into 'release/v5.4'
ci(pre-commit): bump kconfig checker pre-commit version to 2.4.1 (v5.4)

See merge request espressif/esp-idf!35825
2025-01-06 15:39:10 +08:00
Roland Dobai
6030cf5b1b Merge branch 'feat/add_idf_path_setting_info_v5.4' into 'release/v5.4'
feat(tools): Add info message to install/export scripts about IDF_PATH being set/change. (v5.4)

See merge request espressif/esp-idf!35805
2025-01-06 15:38:58 +08:00
Roland Dobai
25a6b4f71c Merge branch 'fix/tools_pip_upgrade_v5.4' into 'release/v5.4'
fix(idf_tools.py): Upgrade pip and setuptools separately (v5.4)

See merge request espressif/esp-idf!35774
2025-01-06 15:38:29 +08:00
morris
f708e43b03 Merge branch 'refactor/cp_dma_use_gdma_link_v5.4' into 'release/v5.4'
refactor(cp_dma): to use gdma_link driver for descriptor config (v5.4)

See merge request espressif/esp-idf!35443
2025-01-06 15:13:08 +08:00
morris
0646301e81 Merge branch 'feat/rgb_lcd_increase_pclk_v5.4' into 'release/v5.4'
feat(lcd): increase the upper limit of pclk frequency for RGB LCD (v5.4)

See merge request espressif/esp-idf!35928
2025-01-06 15:09:42 +08:00
Island
3412026c77 Merge branch 'fix/ble_mesh_bugs_fixed_v5.4' into 'release/v5.4'
fix(ble_mesh): Miscellaneous update (v5.4)

See merge request espressif/esp-idf!35427
2025-01-06 15:08:31 +08:00
Island
05382efdfe Merge branch 'fix/ble_mesh_enable_high_duty_itvl_on_nimble_v5.4' into 'release/v5.4'
feat(ble_mesh): select BT_NIMBLE_HIGH_DUTY_ADV_ITVL when using random adv itvl (v5.4)

See merge request espressif/esp-idf!35599
2025-01-06 15:08:26 +08:00
Island
9909d42b67 Merge branch 'bugfix/fix_ble_ke_mem_267_assert_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed BLE assert ke_mem.c line 267 on ESP32-C3 and ESP32-S3 (backport v5.4)

See merge request espressif/esp-idf!35335
2025-01-06 15:02:59 +08:00
Island
1937a28539 Merge branch 'bugfix/fix_blufi_prepare_write_v5.4' into 'release/v5.4'
fix(blufi): Fixed crash issue in Blufi example during prepare write operation (v5.4)

See merge request espressif/esp-idf!35717
2025-01-06 15:02:54 +08:00
Island
3146964e1a Merge branch 'bugfix/fix_hid_crash_v5.4' into 'release/v5.4'
fix(ble): Fix crash issue during logging (v5.4)

See merge request espressif/esp-idf!35511
2025-01-06 15:02:48 +08:00
morris
446aa359d3 Merge branch 'feature/efuse_s3_adds_psram_cap_bit_v5.4' into 'release/v5.4'
feat(efuse): Adds 3 bit for PSRAM_CAP efuse field (v5.4)

See merge request espressif/esp-idf!35120
2025-01-06 15:02:01 +08:00
Island
aa87a691a6 Merge branch 'refactor/optimize_ble_gatt_api_doc_v5.4' into 'release/v5.4'
refactor(bt/bluedroid): Optimize BLE GATT related APIs reference (v5.4)

See merge request espressif/esp-idf!35919
2025-01-06 15:01:15 +08:00
Island
faca49d791 Merge branch 'bugfix/fix_set_perfer_ext_conn_param_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed setting perfer conn params complete event report (v5.4)

See merge request espressif/esp-idf!35748
2025-01-06 15:01:09 +08:00
Island
05fa0e76f0 Merge branch 'feat/add_get_started_example_on_bluedroid_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added BLE get started examples for Bluedroid (v5.4)

See merge request espressif/esp-idf!35653
2025-01-06 15:01:04 +08:00
Island
ae31b783f3 Merge branch 'feat/support_bleqabr24_1539_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added config for saving BLE bonding keys to NVS (v5.4)

See merge request espressif/esp-idf!35604
2025-01-06 15:01:00 +08:00
morris
0a859b5356 Merge branch 'bugfix/test_esp_flash_write_v5.4' into 'release/v5.4'
fix(spi_flash): Fix Test esp_flash_write (v5.4)

See merge request espressif/esp-idf!35384
2025-01-06 15:00:52 +08:00
morris
f04f21b352 Merge branch 'bugfix/modbus_serial_examples_fix_mode_v54' into 'release/v5.4'
fix(modbus): Fix the mode setup in modbus slave (backport v5.4)

See merge request espressif/esp-idf!36158
2025-01-06 15:00:15 +08:00
Island
ffab5890e4 Merge branch 'fix/optimize_ble_example_ci_build_rule_v5.4' into 'release/v5.4'
fix(ble): Optimizied the bluetooth build test rules (v5.4)

See merge request espressif/esp-idf!35327
2025-01-06 15:00:03 +08:00
morris
da06959166 Merge branch 'bugfix/uart_8_16_bit_access_v5.4' into 'release/v5.4'
fix(uart): fix 8/16-bit uart register access (v5.4)

See merge request espressif/esp-idf!35958
2025-01-06 14:59:09 +08:00
morris
7797db32f6 Merge branch 'docs/update_pcnt_pm_lock_docs_v5.4' into 'release/v5.4'
docs(pcnt): update pcnt pm lock docs (v5.4)

See merge request espressif/esp-idf!36069
2025-01-06 14:56:49 +08:00
morris
6011f69d94 Merge branch 'fix/fix_parlio_tx_example_line_address_v5.4' into 'release/v5.4'
fix(parlio_tx): fix line address in simple_rgb_martix example (v5.4)

See merge request espressif/esp-idf!36070
2025-01-06 14:55:45 +08:00
morris
edb344b56d Merge branch 'feat/allow_to_skip_legacy_driver_conflict_check_v5.4' into 'release/v5.4'
feat(legacy_driver): add kconfig to skip legacy confilct check (v5.4)

See merge request espressif/esp-idf!35615
2025-01-06 14:55:22 +08:00
morris
fd31502ca7 Merge branch 'fix/ble_i2c_v5.4' into 'release/v5.4'
fix(i2c_slave): Support 10-bit address on esp32 (backport v5.4)

See merge request espressif/esp-idf!36055
2025-01-06 14:53:48 +08:00
morris
8da106901a Merge branch 'fix/fix_adc_cali_check_scheme_api_issue_v5.4' into 'release/v5.4'
adc: fixed adc_cali_check_scheme wrong return on c2/h2/c6 (v5.4)

See merge request espressif/esp-idf!35718
2025-01-06 14:53:25 +08:00
morris
cab5334de2 Merge branch 'fix/fix_psram_mode_reg_wrong_timing_v5.4' into 'release/v5.4'
psram: fixed mode reg read bad timing on octal and hex psrams (v5.4)

See merge request espressif/esp-idf!35955
2025-01-06 14:52:13 +08:00
Marius Vikhammer
f335a2d6ea Merge branch 'fix/coredump_checksum_error_v5.4' into 'release/v5.4'
Fix/coredump checksum error (v5.4)

See merge request espressif/esp-idf!35762
2025-01-06 14:38:57 +08:00
Marius Vikhammer
012de83f3c Merge branch 'fix/coredump-gcc-analyzer-warnings_v5.4' into 'release/v5.4'
fix(system): fix GCC-14 analyzer warnings for coredump (v5.4)

See merge request espressif/esp-idf!35521
2025-01-06 14:38:23 +08:00
Island
ceffa4fb73 Merge branch 'feat/support_some_vendor_hci_for_qa_v5.4' into 'release/v5.4'
fix(ble): fixed the connect issue when rx error aa on ESP32-C2 (v5.4)

See merge request espressif/esp-idf!35647
2025-01-06 14:08:32 +08:00
Marius Vikhammer
4defdd90c3 Merge branch 'bugfix/h2_wifi_intr_v5.4' into 'release/v5.4'
fix(interrupt): fixed wrongly reserved interrupt for wifi on H2 (v5.4)

See merge request espressif/esp-idf!36108
2025-01-06 13:35:02 +08:00
morris
c02a6fc523 Merge branch 'bugfix/gdma_burst_config_esp32c5_v5.4' into 'release/v5.4'
fix(gdma): burst size should be configurable on esp32c5 (v5.4)

See merge request espressif/esp-idf!35363
2025-01-06 13:20:35 +08:00
morris
cd1ce6164b Merge branch 'refactor/fine_tune_dphy_pll_v5.4' into 'release/v5.4'
feat(mipi): fine tune DPHY PLL clock (v5.4)

See merge request espressif/esp-idf!35291
2025-01-06 13:20:01 +08:00
morris
e293123154 Merge branch 'bugfix/fix_i2s_24b_buf_size_calc_v5.4' into 'release/v5.4'
fix(i2s): fixed some issues in I2S driver (v5.4)

See merge request espressif/esp-idf!35768
2025-01-06 13:18:16 +08:00
Mahavir Jain
7576f17b20 Merge branch 'bug/wifi_provisioning_failure_even_after_connecting_v5.4' into 'release/v5.4'
fix(esp_wifi_prov): Provisioning App failure on first failed attempt (v5.4)

See merge request espressif/esp-idf!35545
2025-01-06 12:56:34 +08:00
Rahul Tank
0880fc007a Merge branch 'feat/pts_changes_v5.4' into 'release/v5.4'
feat(nimble): BLE 5.4 PTS Related Features and Fixes (v5.4)

See merge request espressif/esp-idf!34974
2025-01-06 12:44:49 +08:00
Wang Meng Yang
b8044d0f74 Merge branch 'bugfix/fix_btqabr2023330_v5.4' into 'release/v5.4'
fix(bt): Fix error code returned by create_conn_cancel_cmd at different status (backport v5.4)

See merge request espressif/esp-idf!35577
2025-01-06 12:23:58 +08:00
Wang Meng Yang
84053a42f4 Merge branch 'bugfix/fix_some_bugs_in_bluedroid' into 'release/v5.4'
fix(bt/bluedroid): Fixed some avrcp cover art related bugs

See merge request espressif/esp-idf!35505
2025-01-06 12:21:49 +08:00
Wang Meng Yang
a1c8f06211 Merge branch 'bugfix/sdp_get_uuid_error_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed issues introduced by byte alignment (v5.4)

See merge request espressif/esp-idf!35250
2025-01-06 12:21:46 +08:00
Zhang Hai Peng
668a2ab2ef fix(ble/bluedroid): Fixed BLE feature selection configuration
(cherry picked from commit 117aa74705)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:24 +08:00
Zhang Hai Peng
b592934f0a docs(ble/bluedroid): Added BLE log when bond info was deleted
(cherry picked from commit c9cdf51b05)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:06 +08:00
Zhang Hai Peng
41e7f893aa docs(ble/bluedroid): Optimize doc for registering BLE callback functions
(cherry picked from commit d84ccadf90)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:04 +08:00
Zhang Hai Peng
4d7cd8f23b fix(ble/blufi): Fixed blufi example security issue
(cherry picked from commit 3cb2d9c3c6)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:02 +08:00
aleks
e5c7999f08 fix(modbus): Fix the mode setup in modbus slave
https://github.com/espressif/esp-idf/pull/14878
2025-01-03 14:09:24 +01:00
Kabir Waraich
6925877bea Update slave.c to fix the mode
There is an issue in the lines that I have changed. I think it was copied over from the enum by mistake.
2025-01-03 14:09:12 +01:00
Kapil Gupta
5abadc5b38 fix(esp_wifi): Enable EAP workarounds by default
Enabling this will make sure our behavior is same as upstream
wpa_supplicant.
2025-01-03 17:42:53 +05:30
Michael (XIAO Xufeng)
6b7b8ea3d2 Merge branch 'update/version_5_4_0' into 'release/v5.4'
Update version to 5.4.0

See merge request espressif/esp-idf!36089
2025-01-03 17:26:43 +08:00
Marek Fiala
524f44dfc3 fix(tools): fixed test_create_project_with_idf_readonly on Win 2025-01-02 12:37:24 +01:00
Marek Fiala
0c476d4361 fix(tools): Use ESP_PYTHON with activate.py in export.fish
Closes https://github.com/espressif/esp-idf/issues/15058
2025-01-02 11:10:55 +01:00
Tomas Rezucha
8e35c7854d fix(usb/host): Fix reaction on High-Speed NYET packet
In Scatter-Gather DMA mode, the USB-DWC will automatically enable
PING protocol if an OUT packet is NACKed by the High-Speed device.
The PING bit must be manually reset.
2025-01-02 10:57:14 +01:00
Marius Vikhammer
79fe10fe1c fix(interrupt): fixed wrongly reserved interrupt for wifi on H2 2025-01-02 16:39:10 +08:00
Xiao Xufeng
67c1de1eeb change(version): Update version to 5.4.0 2024-12-31 14:57:04 +08:00
Xu Si Yu
1569b826ad feat(openthread): update build test rules 2024-12-31 14:22:43 +08:00
WanqQixiang
b1a68f5849 fix(openthread): Fix CI failure of ot_trel example build 2024-12-31 14:22:37 +08:00
WanqQixiang
c5a9e39653 feat(protocol_examples_common): Add Thread connect to support Thread for the protocol examples 2024-12-31 14:22:31 +08:00
C.S.M
3952879feb feat(spi_flash): support 120M on xmc25q32d flash 2024-12-31 11:29:42 +08:00
Michael (XIAO Xufeng)
b70331a9b7 Merge branch 'feat/increase_c2_supported_ver_v5.4' into 'release/v5.4'
feat(soc): increase c2 max supported version (v5.4)

See merge request espressif/esp-idf!35970
2024-12-31 03:15:18 +08:00
Chen Jichang
d3dbbf1351 fix(parlio_tx): fix line address in simple_rgb_martix example 2024-12-30 17:08:43 +08:00
Chen Jichang
0f937a7e90 docs(pcnt): remove pm_lock content in glitch_filter
Closes https://github.com/espressif/esp-idf/issues/15027
2024-12-30 17:05:53 +08:00
Chen Jichang
bcf13b4be7 docs(pcnt): update pcnt power down description 2024-12-30 17:05:53 +08:00
Guillaume Souchere
388ed349e5 fix(heap): MALLOC_CAP_EXEC does not allocate in RTC IRAM
This commit fixes the issue when trying to allocate memory
with the MALLOC_CAP_EXEC in RTC memory. Prior to the fix,
the heap allocator was returning an address in RTC DRAM.

To fix this issue:
- modified memory_layout.c of the concerned targets to fill the iram_address
field in the rtc entry of the soc_memory_region array properly.
- modified heap component  related functions to return IRAM address when
an allocation in RTC memory with MALLOC_CAP_EXEC is requested.

Closes https://github.com/espressif/esp-idf/issues/14835
2024-12-30 08:51:14 +01:00
C.S.M
f29110eee7 fix(i2c_slave): Support 10-bit address on esp32 2024-12-30 13:49:51 +08:00
yiwenxiu
88d639f8cb feat(openthread): use fixed port in ot ci cases 2024-12-30 10:06:12 +08:00
Frantisek Hrbata
6237a97b10 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-29 18:56:33 +01:00
morris
d566bd431b fix(rmt): channel resolution divider rounding issue
Closes https://github.com/espressif/esp-idf/issues/15092
2024-12-27 16:57:47 +08:00
wuzhenghui
0609f9111e fix(esp_hw_support): fix mspi clock freq changed after lightsleep 2024-12-26 19:25:48 +08:00
Song Ruo Jing
31d7a2056c fix(ledc): fix ledc_get_freq calculation err due to overflow
Closes https://github.com/espressif/esp-idf/pull/14882
2024-12-26 19:12:07 +08:00
wuzhenghui
c7c70a8ec6 fix(esp_hw_support): fix esp32p4 JTAG pad deepsleep current leakage 2024-12-26 16:03:42 +08:00
wuzhenghui
e49faab8d4 fix(esp_pm): enable RTC_PERIPH domain once in esp_pm_trace_init 2024-12-26 14:09:52 +08:00
Song Ruo Jing
706b5b483e fix(isp): isp_dvp raw->rgb needs a workaround 2024-12-26 12:12:17 +08:00
Song Ruo Jing
274321d82c fix(isp): isp demosaic module should never be disabled for non-raw8 output format 2024-12-26 12:12:17 +08:00
Song Ruo Jing
2830a44495 feat(dvp_isp_dsi_example): add an example shows DVP-ISP-DSI combination 2024-12-26 12:11:21 +08:00
wuzhenghui
7df7db7284 fix(esp_hw_support): fix FLASH leakage workaround kconfig dependcy 2024-12-26 11:35:04 +08:00
WanqQixiang
8af82e8a22 fix(openthread): Fix external DNS resolve hook for DNS64 client 2024-12-26 10:14:30 +08:00
Xiao Xufeng
38b95cf146 feat(soc): increase c2 max supported version 2024-12-25 20:30:15 +08:00
Aditya Patwardhan
0fae01c7b0 Merge branch 'feature/add_support_for_http_1.0_requests_v5.4' into 'release/v5.4'
feat(esp_http_server): add support to handle HTTP 1.0 requests (v5.4)

See merge request espressif/esp-idf!35659
2024-12-25 16:42:32 +08:00
Song Ruo Jing
7167b04e6e fix(uart): fix 8/16-bit uart register access 2024-12-25 15:32:06 +08:00
Armando
e12812a4d7 fix(psram): fixed mode reg read bad timing on octal and hex psrams 2024-12-25 11:00:12 +08:00
morris
00f21c37fe feat(lcd): increase the upper limit of pclk frequency for RGB LCD 2024-12-25 10:29:08 +08:00
zwl
7eaf08631e feat(ble): add dtm configuration command in hci example 2024-12-24 19:26:01 +08:00
Zhao Wei Liang
2e8b169bfe feat(ble): Support get ble controller free heap size on ESP32-C2
(cherry picked from commit 2cb7d2437b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:50 +08:00
Zhao Wei Liang
c881b9e829 feat(ble): Support get ble controller free heap size on ESP32-H2
(cherry picked from commit 12f226be7d)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:48 +08:00
Zhao Wei Liang
7ad5dc1fef feat(ble): Support get ble controller free heap size on ESP32-C6
(cherry picked from commit aa7feb9449)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:46 +08:00
Zhao Wei Liang
b908018780 feat(ble): fixed some ble issues on ESP32-C2
(cherry picked from commit 5f9a3cdd1a)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:44 +08:00
Zhao Wei Liang
e840c84322 feat(ble): adjust bt default scheme position
(cherry picked from commit 446239251c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:42 +08:00
Chen Jian Hua
85bc8bb63c Merge branch 'refactor/optimize_ble_gatt_api_doc' into 'master'
refactor(bt/bluedroid): Optimize BLE GATT related APIs reference

See merge request espressif/esp-idf!34650

(cherry picked from commit 19b5381c99)

7320c77d refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
8a80617c refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
0ac97e98 refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
27b17c69 refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
ea8d7686 docs: Update gattc & gatts api header files
f508772f Apply 3 suggestion(s) to 2 file(s)
03469b52 Apply 2 suggestion(s) to 1 file(s)
aa2cf7a5 docs: fix minor issue
46dc6e96 docs(ble): Replaced "closed" with "terminated" for physical connection.

Co-authored-by: Wei Yu Han <weiyuhan@espressif.com>
2024-12-24 15:20:05 +08:00
laokaiyao
f2f74b8b89 fix(i2s): add check for the tdm frame bits num 2024-12-24 12:12:31 +08:00
Gustavo Litovsky
9dfc163691 change(esp32): undo forcing two slots in I2S
fix(i2s): fixed the issue in PR 14879

Closes https://github.com/espressif/esp-idf/pull/14879

[Kevin: Update to only remove the limitation for PCM short format]
2024-12-24 12:12:31 +08:00
laokaiyao
3d9f6a1299 refactor(i2s): refactor i2s examples common dependencies
Closes https://github.com/espressif/esp-idf/issues/14751

Make the common I2S dependencies as an example common component,
so that to avoid slash & backslash issue on windows
when use absolute include path.
2024-12-24 12:12:31 +08:00
laokaiyao
c828775d8f docs(example): added troubleshooting for i2s_es8311 example
Closes https://github.com/espressif/esp-idf/issues/15047
2024-12-24 12:12:31 +08:00
laokaiyao
7fb15156ae fix(i2s): return error when mclk_div is smaller than 2 2024-12-24 12:12:31 +08:00
laokaiyao
a47e157731 fix(i2s): fixed incorrect buf size calculation 2024-12-24 12:12:31 +08:00
morris
55d5ba38c6 feat(rmt): add API to return the real clock resolution of a channel
Closes https://github.com/espressif/esp-idf/pull/15074
2024-12-24 11:16:50 +08:00
Tan Yan Quan
a3fe6540b6 fix(openthread): add macros for ot_br 2024-12-23 21:30:54 +08:00
muhaidong
e699e8a4ed fix(wifi): fixed blufi connect wep or wpa ap fail issue 2024-12-23 15:49:37 +08:00
muhaidong
9389bde893 fix(phy): fixed calibration warning infomation inaccurate issue
Closes https://github.com/espressif/esp-idf/issues/14963
2024-12-23 15:44:23 +08:00
Marius Vikhammer
25a1ad7e98 Merge branch 'update/version_5_4_0' into 'release/v5.4'
Update version to 5.4.0

See merge request espressif/esp-idf!35879
2024-12-23 14:29:57 +08:00
xiongweichao
0e0588b86f fix(bt): Fixed some controller bugs
- Fix epr not being initiated after authentication is completed
- Fixed the issue HCI_READ_CLOCK returned parameter in slot
- Fixed the missmatching of CLKN and FCNT after clock update
2024-12-23 14:16:49 +08:00
chenqingqing
de01dd8ac8 fix(bt): Fix error code returned by create_conn_cancel_cmd at different status
- Closes https://github.com/espressif/esp-idf/issues/7763
2024-12-23 14:16:49 +08:00
Marius Vikhammer
443e1cfd11 change(version): Update version to 5.4.0 2024-12-23 11:22:27 +08:00
Marius Vikhammer
497858f8d9 Merge branch 'docs/add_html_download_link_v5.4' into 'release/v5.4'
feat(docs): Replace PDF download link with HTML zip download link (v5.4)

See merge request espressif/esp-idf!35832
2024-12-23 09:21:18 +08:00
Frantisek Hrbata
a87fe7aa3a fix(tools): honor IDF_PYTHON_ENV_PATH value
The active.py script is currently clearing the IDF_PYTHON_ENV_PATH,
preventing it from being set to a custom location for the python virtual
environment directory. Although the install script checks to ensure that
an existing python virtual environment is not overwritten with one for a
different ESP-IDF version than it was originally created for, we should
still permit setting a custom path for the python virtual environment.

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-21 09:55:08 +01:00
Zhang Shuxian
d7a8b7374e docs: Update CN translation for dfu 2024-12-20 11:13:40 +01:00
Tomas Rezucha
53135e389c feat(dfu): Enable DFU on ESP32-P4 2024-12-20 11:12:33 +01:00
David Cermak
1816632e65 fix(lwip): Fix AUTOIP new address after rate limit
submodule update: git log --oneline a587d929..fa4dffdf
  - autoip: Choose next address after rate limit (espressif/esp-lwip@fa4dffdfa)
2024-12-20 08:41:17 +01:00
Tan Yan Quan
7564ff78d2 fix(openthread): update esp-thread-lib branch 2024-12-20 12:30:20 +08:00
Marius Vikhammer
50948285c1 feat(docs): Replace PDF download link with HTML zip download link
PDF build would randomly fail after S3 docs grew to a certain size.

At 3k+ pages PDF is not very usable anyways.
For offline use an HTML archive makes more sense.
2024-12-20 10:27:09 +08:00
Jan Beran
5a5a86a16b ci(pre-commit): bump kconfig checker pre-commit version to 2.4.1 2024-12-19 15:45:01 +01:00
Chen Yudong
8c1cad3a67 ci: add build test for eco versions 2024-12-19 21:02:40 +08:00
Marek Fiala
d8296b1fda fix(tools): Enable to use IDF_PATH with export.sh 2024-12-19 13:00:47 +01:00
renpeiying
bd9db4e08c docs: Update CN translation for idf-tools.rst 2024-12-19 10:28:50 +01:00
Marek Fiala
79031f1905 feat(tools): Inform user about IDF_PATH set/change in install/export scripts 2024-12-19 10:28:49 +01:00
Roland Dobai
b6e0bb91e8 fix(idf_tools.py): Upgrade pip and setuptools separately
This way the setuptools version dependency resolution will be done by
the upgraded pip.
2024-12-18 12:57:07 +01:00
Erhan Kurubas
e5079eb28e change(coredump): include coredump own stack into coredump file 2024-12-18 13:15:56 +03:00
Erhan Kurubas
3c22283b6b change(coredump): make sure consistency with written data and calculated checksum 2024-12-18 13:15:56 +03:00
chenjianhua
183e810422 fix(bt/bluedroid): Fixed LE channel selection algorithm event reporting 2024-12-18 11:49:15 +08:00
Chen Jian Hua
7cfafa1d4b fix(bt/bluedroid): Fixed setting perfer conn params complete event report
(cherry picked from commit 4b352d1c4f)

Co-authored-by: xuzhekai <xuzhekai@espressif.com>
2024-12-18 11:33:38 +08:00
Marius Vikhammer
034245938c Merge branch 'ci/docs_master_build_v5.4' into 'release/v5.4'
ci(docs): revert d98e77a4a7 to simplify CI (v5.4)

See merge request espressif/esp-idf!35684
2024-12-18 11:08:35 +08:00
yiwenxiu
a5bde4c061 feat(openthread): change wlan to ethernet 2024-12-18 10:11:03 +08:00
Zhang Hai Peng
e09ef803d6 fix(blufi): Fixed crash issue in Blufi example during prepare write operation
(cherry picked from commit 5acb9c9b5f)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-17 16:13:44 +08:00
Armando
886a9acbcf fix(adc): fixed adc_cali_check_scheme wrong return on c2/h2/c6 2024-12-17 16:12:43 +08:00
zhangyanjiao
1b84759d02 fix(ci): Enlarge the pcap memory size in sniffer example 2024-12-17 11:15:43 +08:00
Troy
f33430deb4 fix(wifi/mesh): Modify examples/mesh/internal_communication
Delete the secondary judgment of whether it is the root node in the sending task

Closes https://github.com/espressif/esp-idf/pull/14373

Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>
2024-12-17 11:15:35 +08:00
xiongweichao
f9e0f46f47 fix(ble): fixed that the resolvable private address does not change when light sleep is enabled 2024-12-17 10:59:15 +08:00
zhanghaipeng
4b1d137342 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(555b0a2)
- Check Access Address when receive connection request PDU
- Fix issue with BLE5.0 duplicate scan for chained packets
2024-12-17 10:59:05 +08:00
Marius Vikhammer
66c456ab59 ci(docs): revert d98e77a4a7 to simplify CI 2024-12-17 10:08:44 +08:00
David Cermak
ce8af835b2 fix(esp_netif): Prevent null deref when checking netif type
Most esp_netif public API check for invalid arguments, but when enabling
PPP the macros to check netif type could potentially dereference
esp_netif without any null-check.

Releted to https://github.com/espressif/esp-idf/issues/14816
2024-12-16 11:14:50 +01:00
David Cermak
89ef743876 fix(tcp_transport): Fix websocket header read to handle overflow 2024-12-16 11:13:52 +01:00
nilesh.kale
4026e64c32 feat(esp_http_server): add support to handle HTTP 1.0 requests
This commit adds support to handle HTTP/1.0 requests alongside HTTP/1.1 for
legacy compliance purposes.
2024-12-16 14:10:30 +05:30
Chen Jian Hua
a767bcc509 feat(bt/bluedroid): Added BLE get started examples for Bluedroid
(cherry picked from commit d051a2a39d)

Co-authored-by: xuzhekai <xuzhekai@espressif.com>
2024-12-16 11:33:57 +08:00
Zhao Wei Liang
cb90787ac5 fix(ble): fixed the connect issue when rx error aa on ESP32-C2
(cherry picked from commit 6b01a56e09)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-16 11:03:53 +08:00
Zhao Wei Liang
a2cc9fc69b feat(ble): support some vendor hci commands on ESP32-H2
(cherry picked from commit 15203f9f35)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-16 11:03:51 +08:00
Zhao Wei Liang
5f1053ef43 feat(ble): support some vendor hci commands on ESP32-C6
(cherry picked from commit 5bd66eaa57)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-16 11:03:49 +08:00
Tan Yan Quan
ff5d32aa53 feat(802.15.4): add some documentation for txrx statistics and debug record 2024-12-16 10:38:51 +08:00
Tan Yan Quan
ad2846b830 feat(802.15.4): IEEE802.15.4 add documentation and refactor component structure 2024-12-16 10:38:51 +08:00
Tan Yan Quan
52d5a4321c feat(802.15.4): IEEE802.15.4 add some minor edits for readability 2024-12-16 10:38:51 +08:00
Tan Yan Quan
fc1b1b129c feat(802.15.4): IEEE802.15.4 add rx buffer statistic 2024-12-16 10:38:51 +08:00
Ivan Grokhotkov
9dcd2990a7 Merge branch 'feat/vfs_ops_make_all_op_pointers_const_v5.4' into 'release/v5.4'
feat(storage/vfs): make all member pointer of vfs_ops struct const (v5.4)

See merge request espressif/esp-idf!35624
2024-12-13 18:03:24 +08:00
Ivan Grokhotkov
bd0fc67f13 Merge branch 'feature/std_filesystem_supported_v5.4' into 'release/v5.4'
storage: make std::filesystem supported (v5.4)

See merge request espressif/esp-idf!35430
2024-12-13 17:56:42 +08:00
Jiang Jiang Jian
e8e8e2bc2a Merge branch 'bugfix/periph_clk_init_p4_v5.4' into 'release/v5.4'
fix(esp_system): hp periph clk should not be gated on core/system reset (v5.4)

See merge request espressif/esp-idf!35403
2024-12-13 13:55:16 +08:00
Jiang Jiang Jian
829419cef9 Merge branch 'fix/fix_esp32c2eco4_wifi_deinit_crash_issue_v54' into 'release/v5.4'
fix(wifi): fix esp32c2eco4 wifi deinit crash issue v54

See merge request espressif/esp-idf!35391
2024-12-13 13:48:50 +08:00
Song Ruo Jing
77e88f98cd fix(esp_system): still gate hp periph clk on core/system reset for power saving
Leaving only hp periph clk source should not be gated on core/system reset
2024-12-12 21:03:37 +08:00
Song Ruo Jing
192f01c65f fix(esp_system): hp periph clk should not be gated on core/system reset 2024-12-12 21:03:37 +08:00
Tomáš Rohlínek
d6d4de0907 feat(storage/vfs): make all member pointer of vfs_ops struct const 2024-12-12 13:49:46 +01:00
Chen Jichang
3779757cd3 feat(pcnt): support step_notify on esp32h2 eco5 2024-12-12 19:40:20 +08:00
Chen Jichang
3b3a6b4725 feat(legacy_driver): add kconfig to skip legacy confilct check 2024-12-12 18:39:11 +08:00
Michael (XIAO Xufeng)
a0a85db5f5 Merge branch 'fix/adc_monitor_not_work_v5.4' into 'release/v5.4'
fix(esp_adc): fixed adc continue monitor don't work issue (v5.4)

See merge request espressif/esp-idf!35165
2024-12-12 16:55:04 +08:00
wangtao@espressif.com
7f844e0e0f fix(wifi): fix esp32c2 ld issue 2024-12-12 15:02:44 +08:00
Chen Jian Hua
d70e7d6534 fix(bt/bluedroid): Fixed failure to get host status when host is not enabled
(cherry picked from commit 23455ea9c2)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2024-12-12 12:33:47 +08:00
Chen Jian Hua
4eda7b124d feat(bt/bluedroid): Added config for saving BLE bonding keys to NVS
(cherry picked from commit 6d1160b2e6)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2024-12-12 12:33:44 +08:00
Luo Xu
f6fede26b7 feat(ble_mesh): select BT_NIMBLE_HIGH_DUTY_ADV_ITVL
(cherry picked from commit 6faf0a59fdcf063d40fc1000a209341318131185)

Co-authored-by: luoxu <luoxu@espressif.com>

(cherry picked from commit a7622efd0c)

Co-authored-by: Luo Xu <luoxu@espressif.com>
2024-12-12 12:23:37 +08:00
Chen Jichang
6aa4f8b63e feat(mcpwm): support mcpwm sleep retention on p4 2024-12-12 11:43:54 +08:00
Michael (XIAO Xufeng)
944329fff4 Merge branch 'fix/enhance_i2c_slave_test_stability_v5.4' into 'release/v5.4'
fix(i2c): Fix i2c read from fifo issue when enabling bt/wifi/uart, etc... (backport v5.4)

See merge request espressif/esp-idf!35434
2024-12-12 11:16:24 +08:00
Michael (XIAO Xufeng)
0f1bec184d Merge branch 'bugfix/warn_rc32k_use_in_kconfig_v5.4' into 'release/v5.4'
fix(clk): add an inevitable kconfig option to be selected to use rc32k (v5.4)

See merge request espressif/esp-idf!35285
2024-12-11 23:39:34 +08:00
morris
183834a82c Merge branch 'feat/add_pcnt_gpio_input_config_v5.4' into 'release/v5.4'
docs(pcnt): add gpio input mode documentation (v5.4)

See merge request espressif/esp-idf!35518
2024-12-11 22:09:10 +08:00
morris
714c7738cd Merge branch 'fix/fix_esp32_pico_v3_psram_not_ignored_issue_v5.4' into 'release/v5.4'
psram: fixed esp32p pico-v3 psram init not ignored issue (v5.4)

See merge request espressif/esp-idf!35377
2024-12-11 22:07:25 +08:00
Jiang Jiang Jian
25346eb694 Merge branch 'fix/fix_tg_retention_failure_v5.4' into 'release/v5.4'
fix(esp_driver_gptimer): do gptimer retention by timer unit rather than timer group (v5.4)

See merge request espressif/esp-idf!35354
2024-12-11 20:55:15 +08:00
Jiang Jiang Jian
b3f2e1957b Merge branch 'bugfix/access_null_in_hf_cb_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed access NULL in HFP callback handler (v5.4)

See merge request espressif/esp-idf!35407
2024-12-11 20:54:38 +08:00
wanckl
5703a780af fix(esp_adc): fixed adc continue monitor don't work issue
Closes https://github.com/espressif/esp-idf/issues/14769
Closes https://github.com/espressif/esp-idf/issues/14814
2024-12-11 17:36:57 +08:00
Island
b06209230c Merge branch 'bugfix/fix_ble_create_conn_params_copy_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed connection params copying when creating LE connection (v5.4)

See merge request espressif/esp-idf!35406
2024-12-11 14:27:20 +08:00
WanqQixiang
68fbe1dd83 fix(openthread): Disable Border Agent features by default 2024-12-11 10:49:48 +08:00
hrushikesh.bhosale
9e9577b3f2 fix(esp_wifi_prov): Send failure msg on first fail
Added new sta state WIFI_PROV_ATTEMPT_FAILED, which is
returned on first failure with attemps_remaining field.
2024-12-10 17:52:47 +05:30
hrushikesh.bhosale
2bde704d1a fix(esp_wifi_prov): Moved the registering of wifi event handler
Moved the registering of of wifi event handler if under the condition
if device is already provisioned
2024-12-10 17:52:47 +05:30
Erhan Kurubas
190f021ba8 fix(espcoredump): prevent null pointer dereference in panic reason handling 2024-12-09 14:48:39 +01:00
Erhan Kurubas
cd913c60be change(tools): enhance expect_reg_dump to support any or specific core values 2024-12-09 14:48:39 +01:00
Erhan Kurubas
2837c83dc9 fix(espcoredump): fix incorrect pointer usage in checksum update call 2024-12-09 14:48:39 +01:00
Alexey Lapshin
3375c87e55 fix(espcoredump): fix GCC-14 analyzer warnings for coredump 2024-12-09 14:48:39 +01:00
Chen Jichang
5a1e5d04d0 feat(parlio_tx): add check of fifo empty event 2024-12-09 20:35:37 +08:00
Chen Jichang
174fa30ade refactor(i80_lcd): adapt example to lvgl9 2024-12-09 20:35:37 +08:00
Chen Jichang
9b112e2a70 docs(pcnt): add pullup and pulldown documentation
Closes https://github.com/espressif/esp-idf/issues/14277
2024-12-09 20:23:06 +08:00
linruihao
76dbdaadf2 fix(bt/bluedroid): Allow adding empty header in OBEX and GOEP 2024-12-09 17:46:01 +08:00
Zhang Hai Peng
285e4ac4f3 feat(bt): Add support for converting BT HCI logs to btsnoop format
(cherry picked from commit decb24f940)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-09 17:45:49 +08:00
Zhang Hai Peng
304a655804 fix(blufi): Fixed blufi init fail after deinit
(cherry picked from commit 7addb57ccd)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-09 17:45:33 +08:00
Zhang Hai Peng
efe62a875c fix(ble): Fixed crash in BLE HID host example during logging
(cherry picked from commit ab1e3c1ffd)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-09 17:15:14 +08:00
linruihao
ee02d14cd6 change(bt/bluedroid): Remove a duplicate macro in OBEX 2024-12-09 14:26:00 +08:00
linruihao
a8f9246123 feat(bt/bluedroid): Allow using bitwise OR on GOEP return value 2024-12-09 14:25:11 +08:00
linruihao
336f22c097 fix(bt/bluedroid): Fix memory leak in AVRCP cover art get image 2024-12-09 14:24:34 +08:00
linruihao
b9f2be9200 fix(bt/bluedroid): Fix l2cap psm not dereister when obex disconnect 2024-12-09 14:24:25 +08:00
shenmengjing
12f8c24846 docs: Update CN translation for docs in jtag-degugging 2024-12-06 19:36:47 +07:00
Alexey Lapshin
0e57dc044e 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-12-06 19:36:41 +07:00
Omar Chebib
ce9bbd66ba fix(esp_hw_support): fix a bug in the interrupt allocator related to shared interrupts
On RISC-V targets, when allocating a shared interrupt, the provided level would
override the current level of the allocated interrupt. As such, a medium level
interrupt could become a low level one and vice versa.
2024-12-06 18:15:38 +08:00
Omar Chebib
1468e5aff2 fix(esp_hw_support): fix the interrupt allocator test app's CMakeLists.txt 2024-12-06 15:11:37 +08:00
igor.udot
6f28a59a27 ci: update idf-build-apps version in pre-commit 2024-12-06 12:04:47 +08:00
C.S.M
37101f5e0f fix(i2c): Fix some issue in programming guide,
Closes https://github.com/espressif/esp-idf/issues/14794
2024-12-05 13:22:51 +08:00
C.S.M
82903b0bc6 fix(i2c): Add bus handle check so that it will not be panic when there is no free bus,
Closes https://github.com/espressif/esp-idf/issues/14819
2024-12-05 13:22:43 +08:00
Jin Cheng
e7e7605d22 fix(bt/bluedroid): fixed access NULL in HFP callback handler 2024-12-05 13:20:50 +08:00
morris
bd45800cd5 refactor(cp_dma): to use gdma_link driver for descriptor config 2024-12-05 11:41:55 +08:00
C.S.M
36834f34cd fix(i2c_slave): Fix the wrong semaphore take in isr 2024-12-04 19:29:05 +08:00
C.S.M
2ab0921a80 fix(i2c): Fix lose byte during data reading in i2c master on esp32,
Closes https://github.com/espressif/esp-idf/issues/12860
2024-12-04 19:28:43 +08:00
C.S.M
2803aed082 fix(i2c): Enhance lp clock source and avoid deadlock,
Closes https://github.com/espressif/esp-idf/issues/14908,
Closes https://github.com/espressif/esp-idf/issues/14906
2024-12-04 19:28:18 +08:00
C.S.M
122b579024 test(i2c): Enhance the stability for i2c tests 2024-12-04 19:28:10 +08:00
Ivan Grokhotkov
da2c883622 docs(cxx): add a section about std::filesystem limitations
Co-authored-by: Shen Meng Jing <shenmengjing@espressif.com>
2024-12-04 11:22:02 +01:00
Ivan Grokhotkov
e3f5a5a347 feat(storage): add a test app for std::filesystem features 2024-12-04 11:22:02 +01:00
Ivan Grokhotkov
80d4c75b89 feat(fatfs): add support for a few fcntl commands 2024-12-04 11:22:02 +01:00
Ivan Grokhotkov
7a214c1fab feat(newlib): add dummy implementations of pathconf, chmod, dirfd
Closes https://github.com/espressif/esp-idf/issues/14174
2024-12-04 11:22:02 +01:00
Nebojša Cvetković
d79c4f7e28 docs(cxx): mark std::filesystem as generally supported (#5003)
Closes https://github.com/espressif/esp-idf/pull/13736
2024-12-04 11:22:01 +01:00
yiwenxiu
9695a404f2 feat(openthread): add delay before execute wifi command in openthread ci cases 2024-12-04 16:52:36 +08:00
Luo Xu
5d7d1a180a fix(ble_mesh): Miscellaneous update
(cherry picked from commit 589ebfc1d6)

Co-authored-by: luoxu <luoxu@espressif.com>
2024-12-04 16:23:41 +08:00
Abhinav Kudnar
1d5cf825b4 feat(nimble): Added PAwR support for nimble with IDF examples 2024-12-03 18:19:00 +05:30
Sumeet Singh
668e739263 fix(nimble): Added
1. Option to disable automatic discovery when receiving out-of-sync
2. Fixed bugs related to robust caching
2024-12-03 18:19:00 +05:30
Sumeet Singh
29d92facf6 feat(nimble): Added ways to enable/disable some menuconfig options at runtime 2024-12-03 18:19:00 +05:30
Sumeet Singh
c93bd21056 feat(nimble): Added option to disable automatically sending extra credits to peer 2024-12-03 18:19:00 +05:30
Sumeet Singh
e2f24fb9fd feat(nimble): Added support for persisting csf characteristic for bonded devices 2024-12-03 18:18:59 +05:30
chenjianhua
526e1b6970 fix(bt/bluedroid): Fixed connection params copying when creating LE connection 2024-12-03 17:52:49 +08:00
shenmengjing
d80b192e89 docs: Update CN translation for vfs.rst 2024-12-03 17:41:44 +08:00
Song Ruo Jing
cfcedfe42d feat(uart): support uart sleep retention on C5/C61 2024-12-03 17:17:14 +08:00
Song Ruo Jing
43175ff671 fix(uart_vfs): read() now aligned to POSIX defined behavior
- For blocking mode, block until data available
- Return with the bytes available in the file at the time,
  it should not block until reaching the requested size

And read() should not realy return on the newline character
Closes https://github.com/espressif/esp-idf/issues/14155
2024-12-03 16:32:01 +08:00
wangtao@espressif.com
84bd87231d fix(wifi): fix esp32c2eco4 wifi deinit crash issue 2024-12-03 16:02:07 +08:00
Konstantin Kondrashov
d00f8b7898 fix(spi_flash): Fix Test esp_flash_write 2024-12-03 09:54:56 +02:00
Armando
a5eb720a9f fix(psram): fixed esp32p pico-v3 psram init not ignored issue
Closes https://github.com/espressif/esp-idf/issues/14970
2024-12-03 15:21:05 +08:00
morris
b5c5c046d6 fix(gdma): burst size should be configurable on esp32c5 2024-12-03 11:21:03 +08:00
Sumeet Singh
ef47084025 feat(nimble): Added option in menuconfig to enable Secure Connections Only mode 2024-12-02 21:04:58 +08:00
Sumeet Singh
0694880e5b fix(nimble): fix and enable connection subrating 2024-12-02 21:04:58 +08:00
Sumeet Singh
ecedb5fc5e fix(nimble): Added option to enable code under Enhanced COC 2024-12-02 21:04:58 +08:00
Sumeet Singh
cc9520b3dc fix(nimble): Fixed Device Information and Scan Parameters service 2024-12-02 21:04:58 +08:00
Sumeet Singh
29ab5643dc fix(nimble): Fixed encrypted advertisement data example 2024-12-02 21:04:58 +08:00
Sumeet Singh
31c8a6ee77 feat(nimble): Added LE GATT Security Levels Characteristic 2024-12-02 21:04:58 +08:00
Sumeet Singh
53a064274f feat(nimble): Added support for EATT Credit Based Flow Control Mode 2024-12-02 21:04:58 +08:00
wuzhenghui
afa697bd74 fix(esp_driver_gptimer): do gptimer retention by timer unit rather than timer group 2024-12-02 19:07:50 +08:00
wuzhenghui
4db067f8dc fix(esp_hw_support): remove p4 wdt retention on entry2 2024-12-02 19:05:04 +08:00
wuzhenghui
6f13d341c6 fix(esp_hw_support): fix retention link dump helper functions 2024-12-02 19:04:06 +08:00
zhiweijian
6103fc1430 fix(bt/controller): Fixed BLE assert ke_mem.c line 267 on ESP32-C3 and ESP32-S3 2024-12-02 15:58:56 +08:00
Wei Yu Han
47605ef8c4 Merge branch 'fix/optimize_ble_example_ci_build_rule' into 'master'
fix(ble): Optimizied the bluetooth build test rules

See merge request espressif/esp-idf!35259

(cherry picked from commit 0163cb8ed0)

67da5f4e fix(ble): Optimizied the bluetooth build test rules
c7deda66 fix(ble): Added ESP32C5 to the supported targets in...
d12fdfed fix(ble): Fixed a typo in nimble/throughput_app/blecent_throughput/README.md
c8288e17 fix(ble): Fixed the rule for esp_hid_device and esp_hid_host examples
fddf6403 fix(ble): enable esp_hid_host testing on ESP32 only
db31513d fix(ble): Added build rule for hci/ble_adv_scan_combined and controller_vhci_ble_adv examples
e76086f1 fix(ble): Added supported chip for examples hci/ble_adv_scan_combined and...
1b05f9e1 docs(ble): Replaced dbm with dBm in esp32c2 controller API reference

Co-authored-by: Island <island@espressif.com>
2024-12-02 14:27:05 +08:00
Song Ruo Jing
623351e791 fix(clk): add an inevitable kconfig option to be selected to use rc32k 2024-12-02 11:15:17 +08:00
Jiang Jiang Jian
daf465c038 Merge branch 'bugfix/pm-215_pm-259_v5.4' into 'release/v5.4'
fix(Power Management): fix_esp32c5_and_esp32c61_ext1_wakeup_failed_after_changing_io

See merge request espressif/esp-idf!35276
2024-11-30 11:24:47 +08:00
Marius Vikhammer
fb271d25d2 Merge branch 'fix/ulp_riscv_interrupt_bug_v5.4' into 'release/v5.4'
fix(ulp): fix ULP RISC-V interrupt handler corrupting the stack (backport v5.4)

See merge request espressif/esp-idf!35225
2024-11-30 10:51:31 +08:00
Jiang Jiang Jian
e767502c6a Merge branch 'bugfix/esp_ringbuf_static_analyzer_v5.4' into 'release/v5.4'
fix(ringbuf): fixed logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER (v5.4)

See merge request espressif/esp-idf!35300
2024-11-30 10:37:00 +08:00
Jiang Jiang Jian
25039926a6 Merge branch 'fix/duplicated_enc_restart_request_when_change_key_type_v5.4' into 'release/v5.4'
fix(bt): fixed some issues in esp32 bt controller(backport v5.4)

See merge request espressif/esp-idf!35295
2024-11-30 01:57:46 +08:00
Jiang Jiang Jian
1b4e4d7f83 Merge branch 'backport/backport_some_changes_to_v5.4' into 'release/v5.4'
backport some changes to release/v5.4

See merge request espressif/esp-idf!35283
2024-11-30 01:57:25 +08:00
morris
e7b555de8d feat(mipi): fine tune DPHY PLL clock 2024-11-30 00:29:15 +08:00
Jiang Jiang Jian
3f63fd91ec Merge branch 'bugfix/fix_ble_creat_conn_fail_enh_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed BLE create connection fail because of invalid own address type (v5.4)

See merge request espressif/esp-idf!35019
2024-11-29 23:40:55 +08:00
Li Shuai
7d4af9aedd fix(Power Management): fix_esp32c5_and_esp32c61_ext1_wakeup_failed_after_changing_io 2024-11-29 23:37:52 +08:00
yinqingzhao
0af23ceb2b fix(wifi): fix esp32c5 schan and nchan not take effect on 2.4G 2024-11-29 23:36:51 +08:00
xuxiao
bd21db34b2 fix(wifi): fix esp32c6 can receive data frames where the SA (Source Address) matches its own address 2024-11-29 23:36:51 +08:00
wangtao@espressif.com
8886dba9d1 change(wifi): change softap default dtim period to 1 2024-11-29 23:36:51 +08:00
morris
bbdcabe250 Merge branch 'fix/sdmmc_test_various_cmds_sdmmc_test_sd_skip_if_board_incompatible_emmc_parameter' into 'release/v5.4'
fix: Add missing parameter to a function in sdmmc_tests

See merge request espressif/esp-idf!35294
2024-11-29 22:22:01 +08:00
David Čermák
a47b17e4e0 Merge branch 'fix/lwip_dhcp_timeout_u32_v5.4' into 'release/v5.4'
fix(lwip): Fix DHCP lease overlow using u32 type (v5.4)

See merge request espressif/esp-idf!35274
2024-11-29 18:27:51 +08:00
morris
0f24828900 Merge branch 'docs/update_vscode_extension_link_v5.4' into 'release/v5.4'
docs: Update vscode extension link in get started (v5.4)

See merge request espressif/esp-idf!35302
2024-11-29 18:14:26 +08:00
luweike
c166bf306f docs: Update vscode extension link in get started 2024-11-29 16:06:18 +08:00
Marius Vikhammer
2a04297e64 fix(ringbuf): fixed logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER
ESP_STATIC_ANALYZER_CHECK was added to remove some static analyzer warning about
null pointer dereferences that should never happen, but the logic was wrong.

We return pdFALSE if prvReceiveGeneric was called with any of the input pointers
as NULL, but pvItem2 and xItemSize2 will only be non-null for split buffers.

Closes https://github.com/espressif/esp-idf/issues/14905
2024-11-29 15:11:19 +08:00
gongyantao
a3774cae8a fix(bt): fixed some issues in esp32 bt controller
1: fix duplicated lc_enc_restart_req when new lk type is semi-permanent
   key
2: reset PreventEncEvt flag at the end of restart encryption procedure
2024-11-29 14:10:01 +08:00
Jiang Jiang Jian
da9e87a711 Merge branch 'feature/switch_to_new_vfs_api_v5.4' into 'release/v5.4'
feat(storage): switch to new VFS API (v5.4)

See merge request espressif/esp-idf!35282
2024-11-29 13:52:03 +08:00
Jiang Jiang Jian
34a35b9591 Merge branch 'fix/usb_device_msc_storage_example_backport_v5.4' into 'release/v5.4'
fix(tusb_msc): Added SD power supply configuration for p4 (backport v5.4)

See merge request espressif/esp-idf!35102
2024-11-29 13:49:46 +08:00
Adam Múdry
1bc92b46fd fix: Add missing parameter to a function in sdmmc_tests
In sdmmc_test_various_cmds.c in sdmmc_test_sd_skip_if_board_incompatible function
2024-11-29 04:10:10 +01:00
Jiang Jiang Jian
023d772d90 Merge branch 'bugfix/chip823_pll_bug_v5.4' into 'release/v5.4'
fix(H2):fix pll low temp bug(v5.4)

See merge request espressif/esp-idf!35242
2024-11-29 10:47:55 +08:00
Jiang Jiang Jian
20bd6add52 Merge branch 'feature/mmu_page_size_from_app_bin_v5.4' into 'release/v5.4'
feat(bootloader): add support to use MMU page size from app binary (v5.4)

See merge request espressif/esp-idf!35070
2024-11-29 10:44:26 +08:00
Jiang Jiang Jian
236affbff2 Merge branch 'fix/tusb_midi_task_stack_overflow_v5.4' into 'release/v5.4'
fix(examples): tusb_midi task stack overflow fix (v5.4)

See merge request espressif/esp-idf!34933
2024-11-29 10:42:21 +08:00
Jiang Jiang Jian
985090a453 Merge branch 'feature/adds_efuse_adc_calib_data2_v5.4' into 'release/v5.4'
feat(efuse): Adds efuse ADC calib data for P4 C5 C61 (v5.4)

See merge request espressif/esp-idf!35118
2024-11-29 10:41:33 +08:00
Jiang Jiang Jian
850d102ea5 Merge branch 'fix/ble_mesh_heartbeat_bug_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed heartbeat issue (v5.4)

See merge request espressif/esp-idf!34966
2024-11-29 10:29:03 +08:00
Konstantin Kondrashov
223b99aad5 feat(efuse): Adds 3 bit for PSRAM_CAP efuse field 2024-11-29 00:44:51 +08:00
Tomáš Rohlínek
def8b9b639 feat(storage/vfs): move semihost to new vfs API 2024-11-28 13:56:34 +01:00
Tomáš Rohlínek
7fe45180db feat(storage/vfs): move l2tap to new vfs API 2024-11-28 13:56:34 +01:00
Tomáš Rohlínek
0cd2e72dc1 feat(storage/esp_vfs_console): move console to new vfs API 2024-11-28 13:56:33 +01:00
Tomáš Rohlínek
4ff53bc9c7 feat(storage/vfs): move jtag driver to new vfs API 2024-11-28 13:56:33 +01:00
Tomáš Rohlínek
0aa10dcb43 feat(storage/vfs): move uart driver to new vfs API 2024-11-28 13:56:33 +01:00
Tomáš Rohlínek
906b3df54b feat(storage/vfs): move nullfs to new API 2024-11-28 13:56:32 +01:00
Tomáš Rohlínek
39197864a1 feat(storage/vfs): make part of nullfs API private 2024-11-28 13:56:32 +01:00
Tomáš Rohlínek
bb305bd109 feat(storage/esp_vfs_console): move cdcacm driver to new vfs API 2024-11-28 13:56:32 +01:00
Tomáš Rohlínek
e5ab487e3c feat(storage/vfs): update docs to new version of API 2024-11-28 13:56:31 +01:00
Tomáš Rohlínek
6b07039281 feat(storage/spiffs): move spiffs to new VFS API 2024-11-28 13:56:31 +01:00
Tomáš Rohlínek
09d222c38d feat(storage/fatfs): move fatfs to new VFS API 2024-11-28 13:56:31 +01:00
Tomáš Rohlínek
ced490fc6e feat(storage/vfs): make subcomponent pointers const 2024-11-28 13:56:26 +01:00
Jiang Jiang Jian
05b6d92042 Merge branch 'bugfix/esp32c3_eco7_usj_console_v5.4' into 'release/v5.4'
fix(esp_rom): fix esp32c3 eco7 console rom function address (v5.4)

See merge request espressif/esp-idf!34738
2024-11-28 19:55:38 +08:00
David Cermak
d85744af43 fix(lwip): Fix DHCP lease overlow using u32 type 2024-11-28 10:06:14 +01:00
Rahul Tank
5af12cf722 Merge branch 'bugfix/resolve_watchdog_crash_v5.4' into 'release/v5.4'
fix(nimble): Resolved watchdog due to memory exceed prints (v5.4)

See merge request espressif/esp-idf!35209
2024-11-28 14:46:54 +08:00
Jin Chen
a3c9a39304 fix(ble): fix btbb retention register size on esp32c61
(cherry picked from commit ce85e113a9)

Co-authored-by: cjin <jinchen@espressif.com>
2024-11-28 11:34:50 +08:00
morris
830d836fb1 Merge branch 'change/use_uart0_for_ram_app_c5_v5.4' into 'release/v5.4'
ci(ram_app): use uart0 config (v5.4)

See merge request espressif/esp-idf!35245
2024-11-28 11:23:55 +08:00
Island
5e0fe45c25 Merge branch 'bugfix/add_aa_check_on_esp32c2_and_esp32c6_v5.4' into 'release/v5.4'
Bugfix/add aa check on esp32c2 and esp32c6 (v5.4)

See merge request espressif/esp-idf!35234
2024-11-28 11:02:34 +08:00
Shu Chen
dac9e60690 Merge branch 'fix/enhance_wifi_connection_check_in_ot_ci_case_v5.4' into 'release/v5.4'
feat(openthread): enhance wifi connection check in openthread ci cases (Backport v5.4)

See merge request espressif/esp-idf!35164
2024-11-28 10:46:26 +08:00
xiongweichao
92780d3f88 fix(bt/bluedroid): fixed issues introduced by byte alignment
- esp_bt_uuid_t is byte aligned, tBT_UUID is 4-byte aligned.
2024-11-28 10:12:32 +08:00
Armando
138b3390c5 ci(ram_app): use uart0 config 2024-11-28 10:08:43 +08:00
Martin Vychodil
60c561792c Merge branch 'fix/sdmmc_send_acmd22_after_multiple_write_cmd_v5.4' into 'release/v5.4'
fix(sdmmc): Send ACMD22 if CMD25 fails (v5.4)

See merge request espressif/esp-idf!34860
2024-11-28 02:11:25 +08:00
Martin Vychodil
f48f07a418 Merge branch 'feature/storage_nvs_bootloader_v5.4' into 'release/v5.4'
feat(storage/nvs): NVS bootloader support (v5.4)

See merge request espressif/esp-idf!35249
2024-11-28 01:55:03 +08:00
Anton Maklakov
b88913ca27 Merge branch 'feature/update-toolchain-to-esp-14.2.0_20241119_v5.4' into 'release/v5.4'
feat(tools): update toolchain version to esp-14.2.0_20241119 (v5.4)

See merge request espressif/esp-idf!35140
2024-11-27 22:26:47 +08:00
radek.tandler
4e8bb8a082 feat(nvs_flash): Implemented basic nvs_flash support for bootloader 2024-11-27 15:22:46 +01:00
Alexey Gerenkov
c2ae806661 Merge branch 'change/sysview_test_config_v5.4' into 'release/v5.4'
change(sysview): run heap_log tracing tests on existing cores (v5.4)

See merge request espressif/esp-idf!35195
2024-11-27 19:04:02 +08:00
Abhinav Kudnar
2f6a7ec1ae fix(nimble): Resolved watchdog due to memory exceed prints 2024-11-27 18:00:37 +08:00
zlq
7a92f14df6 fix(H2):fix pll low temp bug 2024-11-27 17:46:10 +08:00
chenjianhua
02cc012db5 feat(ble/bluedroid): Support setting connection params when creating connection 2024-11-27 17:13:21 +08:00
zhanghaipeng
4ed30165d8 fix(ble/bluedroid): Optimize BLE API "esp_ble_gattc_enh_open" 2024-11-27 17:07:24 +08:00
zhanghaipeng
719a2313be fix(ble/bluedroid): Fixed BLE create connection fail because of invalid own address type 2024-11-27 17:07:24 +08:00
Martin Vychodil
315b1ec4ae Merge branch 'fix/littlefs_image_creation_windows_v5.4' into 'release/v5.4'
fix(littlefs): Allow LittleFS image generation on Windows + version bump (v5.4)

See merge request espressif/esp-idf!34915
2024-11-27 16:21:18 +08:00
Zhao Wei Liang
079acc88a7 fix(ble): fixed the connect issue when rx error aa on ESP32-H2
(cherry picked from commit 093b65e27c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-27 16:03:51 +08:00
Zhao Wei Liang
903307b191 fix(ble): fixed the connect issue when rx error aa on ESP32-C6
(cherry picked from commit 69b535d422)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-27 16:03:49 +08:00
yiwenxiu
516e1131a7 feat(openthread): enhance wifi connection check in openthread ci cases 2024-11-27 15:53:37 +08:00
Island
a516ca527d Merge branch 'bugfix/fix_bleqabr24_1646_v5.4' into 'release/v5.4'
Fixed BLE creating connection when the connection already exists on ESP32 (v5.4)

See merge request espressif/esp-idf!35047
2024-11-27 15:45:05 +08:00
Omar Chebib
ab4fa65d0d fix(ulp): fix ULP RISC-V interrupt handler corrupting the stack
* Closes https://github.com/espressif/esp-idf/issues/14930
2024-11-27 11:43:15 +08:00
Konstantin Kondrashov
409a75936a feat(efuse): Adds efuse ADC calib data for ESP32-C61 2024-11-26 22:17:23 +08:00
Konstantin Kondrashov
b1662f643a feat(efuse): Adds efuse ADC calib data for ESP32-C5 2024-11-26 22:17:23 +08:00
morris
8f58a27418 Merge branch 'change/p4_sd_runner_no_use_usj_v5.4' into 'release/v5.4'
ci(sd): use uart0 as usj always serial noise on ci on p4 (v5.4)

See merge request espressif/esp-idf!35191
2024-11-26 18:01:10 +08:00
Erhan Kurubas
e5d377be8d fix(sysview): add prefix to the module desc to avoid stuck in Segger SystemView app
Closes https://github.com/espressif/esp-idf/issues/10483
2024-11-26 10:51:18 +01:00
Guillaume Souchere
0f6adbfd25 fix(heap): Fix wrong config to enable MALLOC_CAP_EXEC in memory_layout.c
In esp32c2 and esp32c61 memory_layout.c files, the config used to allow
MALLOC_CAP_EXEC was CONFIG_ESP_SYSTEM_MEMPROT_FEATURE when
CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT should be used.

Closes https://github.com/espressif/esp-idf/issues/14836
2024-11-26 09:24:54 +01:00
Erhan Kurubas
688b86ba24 change(sysview): support single/dual core targets in heap_trace_log test 2024-11-26 08:49:30 +01:00
Island
4cf553509e Merge branch 'feat/remove_unused_sdkconfig_in_ble_examples_v5.4' into 'release/v5.4'
fix(ble/example): Removed unused sdkconfig files (v5.4)

See merge request espressif/esp-idf!35189
2024-11-26 15:46:04 +08:00
morris
ef3c64d006 Merge branch 'fix/fix_jpeg_decode_info_v5.4' into 'release/v5.4'
fix(jpeg_decoder): Fix jpeg decoder get picture information (backport v5.4)

See merge request espressif/esp-idf!35157
2024-11-26 15:36:37 +08:00
Armando
56ec6b8b66 test(emmc): disabled emmc tests on p4 2024-11-26 15:10:28 +08:00
Armando
fbbfa3bab3 ci(sd): use uart0 as usj always serial noise on ci on p4 2024-11-26 15:09:38 +08:00
Armando
5fdf844c0a test(sd): no uhs1 runner 2024-11-26 15:09:34 +08:00
Wang Meng Yang
76d90ba1ca Merge branch 'bugfix/disconn_sdp_upon_wrong_data_v5.4' into 'release/v5.4'
fix(bt/bluedroid): disconnect SDP connection on receiving incorrect response (v5.4)

See merge request espressif/esp-idf!35143
2024-11-26 15:00:07 +08:00
Wang Meng Yang
3eab76508e Merge branch 'feat/add_profile_state_event_v5.4' into 'release/v5.4'
feat(bt/bluedroid): added events to indicate the profile states of HFP (v5.4)

See merge request espressif/esp-idf!35148
2024-11-26 14:59:31 +08:00
chenjianhua
c37e7ced7d fix(bt): Update bt lib for ESP32(c3082c4)
- Fixed BLE creating connection when the connection already exists
2024-11-26 14:46:02 +08:00
Mahavir Jain
9e2decf7df Merge branch 'ci/fix_pytest_otatool_for_c2_v5.4' into 'release/v5.4'
fix(examples): Fix pytest_otatool for C2 (v5.4)

See merge request espressif/esp-idf!35116
2024-11-26 13:05:21 +08:00
Zhou Xiao
8805bf97d3 feat(ble/example): Removed unused sdkconfig files
(cherry picked from commit 57b98f4e1e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2024-11-26 12:05:37 +08:00
Island
3915ea30f2 Merge branch 'bugfix/fix_c2_light_sleep_coex_v5.4' into 'release/v5.4'
fix(ble): fix ble light sleep error on esp32c2 (v5.4)

See merge request espressif/esp-idf!35056
2024-11-26 10:50:33 +08:00
Shu Chen
9181ecabf8 Merge branch 'backport/openthread_related_feature_v54_20241125' into 'release/v5.4'
Backport openthread related features to 5.4

See merge request espressif/esp-idf!35172
2024-11-26 09:51:38 +08:00
Roland Dobai
37cb1521a1 Merge branch 'feat/add_activate_debug_information_v5.4' into 'release/v5.4'
feat(tools): Imporve activate.py debug information (v5.4)

See merge request espressif/esp-idf!35170
2024-11-25 17:41:59 +08:00
morris
af5ddf0eb6 Merge branch 'contrib/github_pr_14767_v5.4' into 'release/v5.4'
fix(gptimer): race on FSM state in gptimer_start() (GitHub PR) (v5.4)

See merge request espressif/esp-idf!35134
2024-11-25 17:24:23 +08:00
Marek Fiala
2e2740d20b feat(tools): Imporve activate.py debug information 2024-11-25 10:13:02 +01:00
C.S.M
65ce617a8d fix(jpeg_decoder): Fix jpeg decoder get picture information 2024-11-25 14:37:06 +08:00
Xu Si Yu
aa3e5d9832 feat(openthread): adjusted the default macro configurations of openthread 2024-11-25 14:31:28 +08:00
Xu Si Yu
b813889b62 feat(openthread): support using custom header file 2024-11-25 12:29:56 +08:00
morris
fe3bb073f9 Merge branch 'refactor/i2c_ll_trm_sync_v5.4' into 'release/v5.4'
refactor(i2c): rename some LL functions according to TRM descriptions (v5.4)

See merge request espressif/esp-idf!35107
2024-11-25 10:30:02 +08:00
Jin Cheng
e8c3b6418c feat(bt/bluedroid): added events to indicate the profile states of HFP 2024-11-25 10:21:55 +08:00
Jin Cheng
f22b03cd7e fix(bt/bluedroid): disconnect SDP connection on receiving incorrect response 2024-11-25 10:19:05 +08:00
Alexey Lapshin
bb72e51d6a feat(tools): update toolchain version to esp-14.2.0_20241119 2024-11-23 14:39:35 +07:00
Alexey Lapshin
fd89e9f144 fix(tools): fix adding tar.gz archive to tools.json if tar.xz is present 2024-11-23 14:39:35 +07:00
David Čermák
8a17f7f8c5 Merge branch 'fix/lwip_tcp_pcb_recycle_v5.4' into 'release/v5.4'
fix(lwip): Limit active TCP PCBs and recycle them faster (v5.4)

See merge request espressif/esp-idf!35092
2024-11-23 02:53:41 +08:00
David Cermak
7d9970590a fix(lwip): Limit active TCP PCBs and recycle them faster
Update submodule: git log --oneline c816f0ee..a587d929
  - test: Add tcp-pcb recycle test (espressif/esp-lwip@a587d929)
  - tcp: Apply faster PCB recycling in FIN_WAIT_1 or FIN_WAIT_2 state (espressif/esp-lwip@3bfc85d2)
  - test: Add tcp alloc limitation test (espressif/esp-lwip@0c9c39a9)
  - memp: Employ TCP-PCB allocation limit if libc malloc used (espressif/esp-lwip@9cb96ac1)
2024-11-22 14:45:36 +01:00
David Čermák
b1c4c9ae2f Merge branch 'fix/lwip_ping_ipv6only_v5.4' into 'release/v5.4'
fix(lwip): Fix IP6 raw socket checksum in IPv6-only configuration (v5.4)

See merge request espressif/esp-idf!35083
2024-11-22 21:38:49 +08:00
Wang Meng Yang
c122f727d1 Merge branch 'bugfix/lmp_trans_collision_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed some controller bugs on ESP32 (v5.4)

See merge request espressif/esp-idf!34944
2024-11-22 19:15:02 +08:00
lsita
fa3cdccb18 fix(gptimer): race condition between start and stop
Merges https://github.com/espressif/esp-idf/pull/14767
2024-11-22 18:22:47 +08:00
Island
438c0634af Merge branch 'feat/optimize_cble50y24_110_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added BLE 5.0 throughput examples (v5.4)

See merge request espressif/esp-idf!35010
2024-11-22 17:53:44 +08:00
Adam Múdry
94aa1c0d5d fix(sdmmc): Fix ACMD22 DMA buffer problem for ESP32-P4 2024-11-22 17:13:07 +08:00
Adam Múdry
2d5d2509fb test(sdmmc): Add test_apps test for sdmmc component 2024-11-22 17:13:07 +08:00
Adam Múdry
68c1423cf3 fix(sdmmc): Generalize waiting for card idle to a function 2024-11-22 17:13:07 +08:00
Adam Múdry
1f0931f6d1 fix(sdmmc): Send ACMD22 if CMD25 fails
Send the number of the written write blocks (ACMD22) after
write multiple blocks fails (CMD25)
2024-11-22 17:13:07 +08:00
morris
47d0a913e0 Merge branch 'doc/vad_programming_guide_v5.4' into 'release/v5.4'
doc: lp_i2s and vad programming guide (v5.4)

See merge request espressif/esp-idf!35108
2024-11-22 15:48:31 +08:00
Jiang Jiang Jian
bc89933ad6 Merge branch 'bugfix/wps_ie_reset_v54' into 'release/v5.4'
fix(wifi): Remove WPS IEs once WPS succeeds (v5.4)

See merge request espressif/esp-idf!35071
2024-11-22 14:39:24 +08:00
Jiang Jiang Jian
b56ad1d633 Merge branch 'fix/ws_transport_head_fragments_v5.4' into 'release/v5.4'
fix(ws_transport): Fix reading WS header in fragments (v5.4)

See merge request espressif/esp-idf!35088
2024-11-22 13:43:19 +08:00
Jiang Jiang Jian
5e65f632a3 Merge branch 'feature/avoid_compiling_wifi_components_when_wifi_is_unsupported_v5.4' into 'release/v5.4'
feat(wifi): avoid compiling components related to wifi when wifi is not supported(Backport v5.4)

See merge request espressif/esp-idf!35062
2024-11-22 13:42:51 +08:00
Jiang Jiang Jian
31ef58d98e Merge branch 'fix/add_sbom_exception_v5.4' into 'release/v5.4'
Add an exception in wpa_supplicant sbom.yml (Backport v5.4)

See merge request espressif/esp-idf!35061
2024-11-22 13:41:52 +08:00
Jiang Jiang Jian
569f6c0213 Merge branch 'fix/fix_modem_module_clock_missing_after_ota_v5.4' into 'release/v5.4'
fix(esp_system): deselect all modem modules lp clock source selection before clk initialization (v5.4)

See merge request espressif/esp-idf!34923
2024-11-22 13:41:23 +08:00
Li Bo
7bba3dfe8a fix(esp_rom): fix esp32c3 eco7 console rom function address 2024-11-22 13:40:05 +08:00
Konstantin Kondrashov
ed5a540439 fix(examples): Fix pytest_otatool for C2
Test for C2 has to be run with flash_4mb
2024-11-22 07:09:03 +02:00
Jin Cheng
5cd5ede2f5 fix(bt/controller): Fixed some controller bugs on ESP32
- Fixed wrong logic in handling sniff transaction collision at slave
      side
    - Fixed the issue ACL is stopped too early before eSCO
2024-11-22 11:01:30 +08:00
gongyantao
dc6fc5a1f5 fix(bt): fix some issues in bt controller
1: Store local device name into NVDS when handling hci_wr_local_name_cmd.
2: Set default device name during link manager initialization.
3: Set the QoS value to the minimum value if the calculated QoS is less
   than the minumum.
2024-11-22 11:01:30 +08:00
zhanghaipeng
5c722289b6 fix(bt/ble): Update esp32 libbtdm_app.a (17db8bd)
- Added a verification step for the Access Address within the CONNECT_IND PDU
2024-11-22 11:01:30 +08:00
Jin Cheng
f4f1d20c82 fix(bt/bluedroid): AG should send OK or other error codes to HF client
when it is driven by HF to initiate a call.
2024-11-22 11:01:30 +08:00
Armando
4207ec8b3b doc(vad): remove vad png 2024-11-22 10:47:05 +08:00
Armando
6aa6883af4 change(lp_i2d): use atomic fsm check 2024-11-22 10:46:53 +08:00
Armando
22f36bea53 change(vad): wakeup driver maitain necessary power domain 2024-11-22 10:46:49 +08:00
Armando
37d8e97a9d doc(lp_vad): lp vad programming guide 2024-11-22 10:46:43 +08:00
Armando
e4a9243517 doc(lp_i2s): lp i2s programming guide 2024-11-22 10:46:39 +08:00
Armando
e83fc30b67 fix(lp_i2s): added cbs iram check 2024-11-22 10:46:34 +08:00
morris
85e86626ff refactor(i2c): rename some LL functions according to TRM descriptions 2024-11-22 10:14:22 +08:00
morris
30f0c6f5db Merge branch 'docs/usb_host_ext_port_driver_backport_v5.4' into 'release/v5.4'
docs(ext_port): Maintainers Notes for the External Port Driver (backport v5.4)

See merge request espressif/esp-idf!35100
2024-11-22 10:06:15 +08:00
Roland Dobai
6048d26493 Merge branch 'fix/import_error_msg_v5.4' into 'release/v5.4'
fix(tools): re-raise ImportError without module name (v5.4)

See merge request espressif/esp-idf!35073
2024-11-22 01:37:20 +08:00
Roman Leonov
8fc6dad7ff fix(tusb_msc): Added SD power supply configuration for p4 2024-11-21 13:10:03 +01:00
Roman Leonov
adb468bade docs(ext_port): Maintainers Notes for the External Port Driver 2024-11-21 12:49:32 +01:00
Mahavir Jain
e1c0ad9189 Merge branch 'fix/aes_cache_failure_when_l2_cache_line_size_greater_than_l1_cache_v5.4' into 'release/v5.4'
Fix memory corruption caused due to unaligned external memory buffers sync in AES (v5.4)

See merge request espressif/esp-idf!35064
2024-11-21 18:35:33 +08:00
David Cermak
2822cc671a fix(lwip): Fix ping_v6 receiving to accept only echo replies
This fixes a bug where we ping our own IP and the request itself
bounces back to the raw receive function and is incorrectly treated as
reply. (this bug was discovered when fixing ICMPv6 pings with incorrect
checksums, while the ping request was dropped in icmpv6.c due to wrong
checksum, but was also fed to raw layers where it was treated as
"correct" response, so the PINGv6 to ourselves still worked)
2024-11-21 11:24:46 +01:00
David Cermak
e390c17f99 fix(common_connect): Fix example's stdin/out to setup UART interrupt once
Function example_configure_stdin_stdout() was used for simple UART I/O
operation in CI to enter test env configuration (wifi ssid, IPs, etc).
It could be called multiple times, but didn't handle the situation where
we install UART interrupt from multiple source (e.g. in ICMP tests,
where we first need to enter wifi credentials of test AP and then we
start ping-cmd console to handle ping commands)
2024-11-21 11:24:46 +01:00
David Cermak
f75e399139 fix(lwip): Fix IP6 raw socket checksum in IPv6-only configuration
* Update submodule: git log --oneline f150e232..c816f0ee
  - sockets: Make IPv6 only netconn type IPv6 aware (espressif/esp-lwip@c816f0ee)
  - test: Make test application scalable (espressif/esp-lwip@3ec12c3b)
  - dns: Handle active DNS entries before clearing cache (espressif/esp-lwip@b15cd2de)
2024-11-21 11:24:30 +01:00
Laukik Hase
9d7a4e5917 change(bootloader): Map only the necessary length when fetching the app description struct 2024-11-21 15:12:55 +05:30
Mahavir Jain
fbe93aa25e test: add configurable mmu page size test app
Test app to ensure that bootloader and application built with
different flash MMU page size are compatible. This is for the
SoCs that support configurable flash MMU page size.
2024-11-21 15:11:45 +05:30
Mahavir Jain
07318a4987 feat(bootloader): add support to use MMU page size from app binary
For the SoCs that support configurable MMU page size, it is possible
that the bootloader and application are built with different MMU page
size configuration. This mismatch is not supported at the moment and
application verification fails (at bootup or during OTA update).

Configuring MMU page size helps to optimize the flash space by having
smaller alignment and padding (secure) requirements. Please note that
the MMU page size is tied with the flash size configuration at the
moment (`ESPTOOLPY_FLASHSIZE_XMB`).

This MR ensures that application verification happens using the MMU page
size configured in its binary header. Thus, bootloader and application
can now have different MMU page sizes and different combinations shall
be supported.
2024-11-21 15:11:38 +05:30
David Cermak
15636a2f14 fix(ws_transport): Unit test on reading WS data byte by byte
Closes https://github.com/espressif/esp-idf/issues/14704
Closes https://github.com/espressif/esp-protocols/issues/679
2024-11-21 10:39:23 +01:00
Richard Allen
b8a7d96e98 fix(ws_transport): Fix reading WS header bytes
Correct split header bytes

When the underlying transport returns header,
length, or mask bytes early, again call the
underlying transport.

This solves the WS parser getting offset when
the server sends a burst of frames where the
last WS header is split across packet boundaries,
so fewer than the needed bytes may be available.

Merges https://github.com/espressif/esp-idf/pull/14706
2024-11-21 10:39:23 +01:00
Frantisek Hrbata
2151f23f46 fix(tools): re-raise ImportError without module name
The ImportError or ModuleNotFoundError might be raised without
specifying a module name. In this not so common situation, re-raise the
exception to print all the information that could assist in identifying
the problem.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-21 09:37:12 +01:00
Kapil Gupta
234dce0e7f fix(wifi): Remove WPS IEs once WPS succeeds 2024-11-21 13:42:29 +05:30
harshal.patil
e0312feddb fix(mbedtls/aes): Fix external memory corruption caused due to unaligned length cache sync
Fixes the memory corruption issue that arises due to external memory cache sync of unaligned
length bytes when L2 cache line size is greater than the L1 cache line size
2024-11-21 12:15:57 +05:30
yinqingzhao
a34f1eb6f9 feat(wifi): avoid compiling components related to wifi when wifi is not supported 2024-11-21 14:18:41 +08:00
Nachiket Kukade
8580f9f622 fix(wpa_supplicant): Add an exception in wpa_supplicant sbom.yml 2024-11-21 11:48:19 +05:30
Jin Chen
999b10d2d4 fix(ble): change ld for ble scan coex issue
(cherry picked from commit dd499d7b2e)

Co-authored-by: cjin <jinchen@espressif.com>
2024-11-21 11:03:55 +08:00
Jin Chen
43cd3491c9 fix(ble): fix ble light sleep error on esp32c2
(cherry picked from commit 23f7e33a97)

Co-authored-by: cjin <jinchen@espressif.com>
2024-11-21 11:03:53 +08:00
Shu Chen
9240757145 Merge branch 'fix/fix_a_naming_error_of_esp_radio_spinel_v54' into 'release/v5.4'
fix a naming error of esp radio spinel (backport to 5.4)

See merge request espressif/esp-idf!35041
2024-11-21 10:35:23 +08:00
Jiang Jiang Jian
914a4810a9 Merge branch 'bugfix/idf-11064_v5.4' into 'release/v5.4'
backport v5.4: fix some issues on esp32c5 eco1

See merge request espressif/esp-idf!34790
2024-11-20 19:38:13 +08:00
Jiang Jiang Jian
48ed77c9cc Merge branch 'bugfix/rx_invalid_cmd_err_code_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed the incorrect error code returned when receiving an invalid command(v5.4)

See merge request espressif/esp-idf!34987
2024-11-20 19:12:23 +08:00
Jiang Jiang Jian
a61663d63b Merge branch 'bugfix/crash_deauth_fix_5.4' into 'release/v5.4'
Fix for crash while receiving deauth in esp32c2 ECO4(v5.4)

See merge request espressif/esp-idf!34984
2024-11-20 19:10:59 +08:00
Island
b5c02eb3d8 Merge branch 'bugfix/fix_classic_bt_build_fail_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed classic bt build fail when enable dynamic memory and disable BLE (v5.4)

See merge request espressif/esp-idf!34931
2024-11-20 18:05:49 +08:00
Island
28bf5eacb9 Merge branch 'feature/support_moving_code_to_flash_v5.4' into 'release/v5.4'
feat(ble): Support for putting code in flash on ESP32-C2 (v5.4)

See merge request espressif/esp-idf!34786
2024-11-20 17:46:55 +08:00
morris
8d4b04742c Merge branch 'fix/c61_h2_pmu_icg_csv_update_v5.4' into 'release/v5.4'
fix(pmu): c61 and h2 update pmu_icg_mapping.h (v5.4)

See merge request espressif/esp-idf!34795
2024-11-20 17:41:37 +08:00
Jiang Jiang Jian
a09d5747e1 Merge branch 'bugfix/esp_bt_wifi_bt_power_api_v5.4' into 'release/v5.4'
fix(bt): Move esp_wifi_bt_power_domain_on/off to esp_phy_init.h(v5.4)

See merge request espressif/esp-idf!34626
2024-11-20 16:27:01 +08:00
Xu Si Yu
f70bec1cf8 fix(openthread): fix a naming error of esp radio spinel 2024-11-20 15:47:38 +08:00
Jiang Jiang Jian
4cc82c7d66 Merge branch 'feat/sleep_retention_expand_module_bitmap_v5.4' into 'release/v5.4'
backport v5.4: expand the number of sleep retention modules supported on different chips

See merge request espressif/esp-idf!34691
2024-11-20 14:50:52 +08:00
morris
0e966ba0d6 Merge branch 'feat/mipi_dsi_underrun_error_v5.4' into 'release/v5.4'
feat(mipi_dsi): enable underrun error interrupt (v5.4)

See merge request espressif/esp-idf!34980
2024-11-20 14:47:09 +08:00
wanckl
6abf54e150 fix(pmu): c61 and h2 update pmu_icg_mapping.h 2024-11-20 10:32:40 +08:00
morris
9c2a5ac60e Merge branch 'fix/twai_io_init_glitch_v5.4' into 'release/v5.4'
fix(driver_twai): fixed bus-off when twai_init due to wrong gpio config (v5.4)

See merge request espressif/esp-idf!34815
2024-11-20 10:32:05 +08:00
morris
fb52ad1d26 Merge branch 'fix/p4_spi_no_dma_polling_cache_fail_v5.4' into 'release/v5.4'
fix(driver_spi): fixed p4 no dma polling trans cache sync fail (v5.4)

See merge request espressif/esp-idf!34813
2024-11-20 10:18:33 +08:00
Shu Chen
c46fe1fa4f Merge branch 'fix/add_network_reconnectin_in_ot_ci_case_v5.4' into 'release/v5.4'
feat(openthread): flush ipv6 addr in openthread ci cases(Backport v5.4)

See merge request espressif/esp-idf!34675
2024-11-20 10:15:49 +08:00
morris
dfe11ebb47 Merge branch 'doc/isp_lsc_doc_v5.4' into 'release/v5.4'
isp: lsc doc (v5.4)

See merge request espressif/esp-idf!35021
2024-11-20 10:12:19 +08:00
morris
0960a602f4 feat(mipi_dsi): enable underrun error interrupt 2024-11-19 21:42:47 +08:00
morris
15202df249 Merge branch 'ci/fix_i2s_multi_dev_test_potential_overflow_v5.4' into 'release/v5.4'
ci(i2s): fix the potential overflow in multi_dev test (v5.4)

See merge request espressif/esp-idf!35022
2024-11-19 18:15:31 +08:00
Luo Xu
5fef371bad fix(ble_mesh): fixed heartbeat issue
(cherry picked from commit 167cd4762b)

Co-authored-by: luoxu <luoxu@espressif.com>
2024-11-19 18:03:23 +08:00
Rahul Tank
be95e8e14b Merge branch 'bugfix/memory_issue_v5.4' into 'release/v5.4'
fix(nimble): Nimble Error logs in case of memory overflow/failure (v5.4)

See merge request espressif/esp-idf!34997
2024-11-19 16:56:40 +08:00
laokaiyao
3ea47a6cf3 docs(i2s): update i2s cap overview 2024-11-19 15:57:26 +08:00
laokaiyao
1a685b7e1c ci(i2s): fix the potential overflow in multi_dev test 2024-11-19 15:57:24 +08:00
yiwenxiu
cad2ff8de5 feat(openthread): flush ipv6 addr in openthread ci cases 2024-11-19 15:48:40 +08:00
Jiang Jiang Jian
17b7419786 Merge branch 'fix/update_ping_cmd_version_v5.4' into 'release/v5.4'
update: Update ping-cmd component to v1.0.0 (v5.4)

See merge request espressif/esp-idf!35012
2024-11-19 14:59:23 +08:00
Shu Chen
69a9b17587 Merge branch 'backport/openthread_related_feature_v54_20241112' into 'release/v5.4'
Backport openthread related features to 5.4

See merge request espressif/esp-idf!34834
2024-11-19 14:54:03 +08:00
Armando
b873befcd8 doc(isp): isp lsc programming guide 2024-11-19 14:33:55 +08:00
Armando
10b3296085 change(sdmmc): simplify cmd11 enable code 2024-11-19 14:30:31 +08:00
wanckl
b282c41954 fix(driver_spi): fixed p4 no dma polling trans cache sync fail 2024-11-19 11:50:47 +08:00
wanckl
928b7f6efc fix(driver_twai): fixed bus-off when twai_init due to wrong gpio config
Closes https://github.com/espressif/esp-idf/issues/14548
2024-11-19 11:50:29 +08:00
Chen Yudong
e8f76a93a1 change: Update ping-cmd component to v1.0.0 2024-11-19 11:38:16 +08:00
Chen Jian Hua
91fe5d7fa8 feat(bt/bluedroid): Added BLE 5.0 throughput examples
(cherry picked from commit 6d3a82eecf)

Co-authored-by: zhangbowen <zhangbowen@espressif.com>
2024-11-19 10:33:44 +08:00
xiongweichao
91c2390897 fix(bt): Move esp_wifi_bt_power_domain_on/off to esp_phy_init.h 2024-11-19 10:12:59 +08:00
Li Shuai
52bcb74b67 fix(esp_hw_support): fix the issue of wifi rx packet loss when switchng soc root clock source 2024-11-18 21:52:00 +08:00
Li Shuai
ea6dd7344d fix(esp_hw_support): fix the issue of mmu table content loss due to default sd signal 2024-11-18 21:52:00 +08:00
morris
e422e12f17 Merge branch 'feat/dynamic_usb_hal_backport_v5.4' into 'release/v5.4'
feat(hal/usb): Make USB-DWC HAL&LL configuration independent backport v5.4

See merge request espressif/esp-idf!34812
2024-11-18 21:40:16 +08:00
Abhinav Kudnar
16d7351cbc fix(nimble): Nimble Error logs in case of memory overflow/failure 2024-11-18 17:47:05 +08:00
Li Shuai
71f83bd02b change(esp_hw_support): fix some sleep retention build error 2024-11-18 17:46:41 +08:00
Li Shuai
4b0faf47b4 change(soc): define sleep retention module total number to 64 for esp32p4 2024-11-18 17:46:41 +08:00
Li Shuai
a56249f631 change(esp_hw_support): update power domain pd allowed check logic 2024-11-18 17:46:41 +08:00
Li Shuai
bde6b9141f change(esp_hw_support): update some modules sleep retention init dependency bitmap 2024-11-18 17:46:40 +08:00
Rahul Tank
06587938fb Merge branch 'feature/remove_min_max_def_v5.4' into 'release/v5.4'
fix(nimble): Removed min/max macro definition from os.h (v5.4)

See merge request espressif/esp-idf!34909
2024-11-18 17:07:25 +08:00
xiongweichao
8480fb3c6f fix(bt/bluedroid): Fixed the incorrect error code returned
when receiving an invalid command
2024-11-18 16:49:54 +08:00
Li Shuai
00a6f825b0 change(soc): add sleep retention module total number definition 2024-11-18 16:05:34 +08:00
Li Shuai
78b272c092 feat(esp_hw_support): extend sleep retention module bitmap bit width 2024-11-18 15:57:42 +08:00
morris
538b0fc180 Merge branch 'fix/fix_tsens_retention_p4_v5.4' into 'release/v5.4'
fix(temperature_sensor): Fix temperature sensor sleep retention on p4 (backport v5.4)

See merge request espressif/esp-idf!34979
2024-11-18 14:31:15 +08:00
akshat
853a944cd0 fix(esp_rom): Comment out unused function pointers in esp32c2 eco4 linker file 2024-11-18 11:49:50 +05:30
Aditi
1917e7f532 fix(esp_wifi): Fix for crash while receiving deauth in esp32c2 ECO4 2024-11-18 11:45:46 +05:30
Shu Chen
84569bc94f Merge branch 'backport/2015_enhack_v54' into 'release/v5.4'
fix(802.15.4): add case for 2015 frame enh-ack (Backport v5.4)

See merge request espressif/esp-idf!34954
2024-11-18 11:48:48 +08:00
Jiang Jiang Jian
35f0fdcd36 Merge branch 'fix/fix_deadlock_in_pm_mode_switching_v5.4' into 'release/v5.4'
fix(esp_pm): fix deadlock in pm_mode switching (v5.4)

See merge request espressif/esp-idf!34938
2024-11-18 11:20:01 +08:00
C.S.M
479f7bfdc4 fix(temperature_sensor): Fix temperature sensor sleep retention on p4 2024-11-18 10:37:50 +08:00
Shu Chen
75e0cc387e Merge branch 'fix/thread_resolve_invalid_host_v5_4' into 'release/v5.4'
fix(openthread): Fix invalid host resolving for Thread end devices(v5.4)

See merge request espressif/esp-idf!34942
2024-11-17 21:29:26 +08:00
zwx
d5d07b44ef feat(openthread): support alloc nat64 session from psram 2024-11-15 18:53:28 +08:00
Simon Dean
f9ac9f052e enable openthread coap client for mtd 2024-11-15 18:53:28 +08:00
Xu Si Yu
8b098ae53c fix(coex): fix 802.15.4 external coexistence 2024-11-15 18:53:28 +08:00
Xu Si Yu
14bc7c01ea feat(openthread): update openthread submodule and border router lib 2024-11-15 18:53:28 +08:00
morris
71c437767f Merge branch 'feat/i2c_slave_v2_v5.4' into 'release/v5.4'
feat(i2c_slave): Add new i2c slave driver --version two with great stretch handling (backport v5.4)

See merge request espressif/esp-idf!34907
2024-11-15 15:36:46 +08:00
Tan Yan Quan
e3fe456cf9 fix(802.15.4): add case for 2015 frame enh-ack 2024-11-15 15:15:55 +08:00
Jiang Jiang Jian
41ce4c9e07 Merge branch 'fix/fix_cache_stuck_in_esp_restart_v5.4' into 'release/v5.4'
fix(esp_system): writeback L1 Dcache before disable L2 if PSRAM used (v5.4)

See merge request espressif/esp-idf!34801
2024-11-15 13:56:19 +08:00
wuzhenghui
2c35c09742 fix(esp_pm): fix deadlock in pm_mode switching 2024-11-15 11:25:58 +08:00
wuzhenghui
78362aff04 fix(esp_pm): fix missed ccompare update when another core is already in do_switch 2024-11-15 11:25:58 +08:00
WanqQixiang
7cf389deab fix(openthread): Fix invalid host resolving for Thread end devices 2024-11-15 11:24:00 +08:00
Marius Vikhammer
356e7b6954 Merge branch 'feat/esp32p4_unicore_stop_other_core_v5.4' into 'release/v5.4'
feat(esp_system): stop other core for unicore esp32p4 (v5.4)

See merge request espressif/esp-idf!34827
2024-11-15 11:10:48 +08:00
wuzhenghui
a2d26ab56f fix(esp_system): deselect all modem modules clk source selection before clk init 2024-11-15 11:00:54 +08:00
morris
779106e49c Merge branch 'contrib/github_pr_14859_v5.4' into 'release/v5.4'
fix(usb_host): return ESP_ERR_NO_MEM on failed alloc in client register (GitHub PR) (v5.4)

See merge request espressif/esp-idf!34875
2024-11-15 10:56:46 +08:00
morris
63ef26e9ee Merge branch 'ci/backport_i2s_ci_fix_to_v5.4' into 'release/v5.4'
ci(i2s): backport i2s ci fix (v5.4)

See merge request espressif/esp-idf!34586
2024-11-15 10:53:39 +08:00
Tomas Rezucha
68a95f5c94 feat(hal/usb): Make USB-DWC HAL&LL configuration independent
Previously, we included symbols from soc/usb_dwc_cfg.h and configured
the HAL and LL according to it. Now we get the configuration in runtime
from USB-DWC registers.

Added missing definition for USB FS peripheral on ESP32-P4.
2024-11-15 00:36:10 +08:00
Adam Múdry
8b1f8cb20e fix(examples): tusb_midi task stack overflow fix 2024-11-14 16:43:16 +01:00
Zhang Hai Peng
0dea1a84d6 fix(bt/bluedroid): Fixed classic bt build fail when enable dynamic memory and disable BLE
(cherry picked from commit 59d20e80d3)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-11-14 22:13:50 +08:00
Marius Vikhammer
af18afd279 Merge branch 'fix/typo-esp-rom_v5.4' into 'release/v5.4'
fix(esp_rom): Fix comment typos (Backport v5.4)

See merge request espressif/esp-idf!34870
2024-11-14 21:49:19 +08:00
Adam Múdry
94e55817d2 fix(littlefs): Allow LittleFS image generation on Windows + version bump
Closes https://github.com/espressif/esp-idf/issues/12900
2024-11-14 13:17:40 +01:00
Abhinav Kudnar
d21a0a9b64 fix(nimble): Removed min/max macro defination from os.h
Closes https://github.com/espressif/esp-idf/issues/14840
2024-11-14 19:04:33 +08:00
C.S.M
32adbe72b6 docs(i2c_slave): Update i2c slave programming guide for new changes 2024-11-14 18:04:25 +08:00
C.S.M
170d44b75d feat(i2c_slave): Add new example for making i2c slave as a network sensor 2024-11-14 18:04:11 +08:00
C.S.M
e27594efc1 test(i2c_slave): Add some new tests for i2c slave version 2 2024-11-14 18:02:27 +08:00
C.S.M
56625cda88 feat(i2c_slave): refactor i2c slave api to version 2 inorder to solve some existing problem 2024-11-14 18:02:15 +08:00
Samuel Obuch
5304897608 feat(esp_system): stop other core for unicore esp32p4 2024-11-14 09:40:08 +01:00
xuxiao
976cf648f7 fix(ci): enable esp32c5 eco1 ci test (Backport v5.4) 2024-11-14 14:37:31 +08:00
Mahavir Jain
6d7fd7a722 Merge branch 'change/disable_stub_bins_v5.4' into 'release/v5.4'
change(esp_system): do not include openocd stub bins by default (v5.4)

See merge request espressif/esp-idf!34871
2024-11-14 12:41:45 +08:00
Shu Chen
0c5d3749f1 Merge branch 'fix/find_and_close_service_in_ot_ci_case_v5.4' into 'release/v5.4'
fix(ci): optimize an openthread ci case (Backport v5.4)

See merge request espressif/esp-idf!34727
2024-11-14 11:59:43 +08:00
morris
3b2eb13199 Merge branch 'feat/sdmmc_uhs_tuning_v5.4' into 'release/v5.4'
sdmmc: UHS-I support for SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) (v5.4)

See merge request espressif/esp-idf!34867
2024-11-14 11:13:45 +08:00
morris
e1aed77c72 Merge branch 'feat/mcpwm_sleep_rentention_v5.4' into 'release/v5.4'
feat(mcpwm): support sleep retention (v5.4)

See merge request espressif/esp-idf!34802
2024-11-14 10:46:49 +08:00
laokaiyao
76d87acd59 fix(i2s): suplimemt of c61 i2s ll 2024-11-14 10:18:16 +08:00
laokaiyao
24a6994471 feat(i2s): support i2s retention on C61 2024-11-14 10:18:16 +08:00
laokaiyao
ecf7f8257f ci(i2s): fix i2s_multi_dev failed case 2024-11-14 10:18:16 +08:00
morris
551cb70a1b Merge branch 'fix/disable_sar_power_when_enter_deepsleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): disable sar power when esp32p4 going to deepsleep (v5.4)

See merge request espressif/esp-idf!34869
2024-11-14 10:09:56 +08:00
Roland Dobai
85a742351c Merge branch 'feat/size_unify_sections_v5.4' into 'release/v5.4'
feat(tools): unify sections in idf.py size reports for NG version (v5.4)

See merge request espressif/esp-idf!34855
2024-11-14 02:18:07 +08:00
morris
6932df2ce8 Merge branch 'change/esp_ldo_reserve_for_spi_flash_v5.4' into 'release/v5.4'
LDO calibration on ESP32-P4 (v5.4)

See merge request espressif/esp-idf!34864
2024-11-13 17:11:39 +08:00
Daniel Mangum
35aaccdbc1 fix(usb_host): return ESP_ERR_NO_MEM on failed alloc in client register
Fixes issue where ESP_ERR_NO_MEM was being silently discarded after
cleaning up after a failed malloc in usb_host_client_register.

Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
2024-11-13 10:08:04 +01:00
morris
09f1411389 Merge branch 'fix/suspend_ci_v5.4' into 'release/v5.4'
test(spi_flash): Fix some failing test related to spi flash (backport v5.4)

See merge request espressif/esp-idf!34819
2024-11-13 17:07:40 +08:00
morris
35ed582ebf Merge branch 'fix/bod_p4eco2_fix_v5.4' into 'release/v5.4'
fix(bod): Remove config for bod on p4 eco1  (backport v5.4)

See merge request espressif/esp-idf!34821
2024-11-13 17:02:59 +08:00
morris
ad8d75222a Merge branch 'fix/jpeg_com_marker_v5.4' into 'release/v5.4'
fix(jpeg): Fix the length of com marker (backport v5.4)

See merge request espressif/esp-idf!34822
2024-11-13 17:02:27 +08:00
Erhan Kurubas
368f71443b change(esp_system): do not include openocd stub bins by default 2024-11-13 07:36:07 +01:00
YAMAMOTO Takashi
dbd394cb4a fix(esp-rom): Fix comment typos in cache.h
Fix typo in parameter names in cache_flash_mmu_set
amd cache_sram_mmu_set functions.

Closes https://github.com/espressif/esp-idf/pull/14518
2024-11-13 07:00:49 +01:00
wuzhenghui
88c345aca8 fix(esp_hw_support): disable sar power when esp32p4 going to deepsleep 2024-11-13 11:44:46 +08:00
Chen Jichang
2e44cb9387 feat(mcpwm): support sleep retention 2024-11-13 11:13:34 +08:00
Chen Jichang
c8fa2a1f42 fix(mcpwm): fix mcpwm register offset on p4 2024-11-13 11:13:34 +08:00
Armando
0f32537b93 fix(i2s): fixed i2s example build warning 2024-11-13 11:12:24 +08:00
Armando
c1a8efaf09 doc(sdmmc): aadd UHS1 support for DDR50 / SDR50 2024-11-13 11:12:19 +08:00
Armando
a89abd5eac example(sdmmc): support hs and uhs1 sdr50/ddr50 2024-11-13 11:12:14 +08:00
Armando
04cd469e4a feat(sdmmc): supported UHS-I SDR50 (100Mhz) and DDR50 mode 2024-11-13 11:12:10 +08:00
Ivan Grokhotkov
31dc34a909 feat(sdmmc): support for voltage switching in protocol layer 2024-11-13 11:11:23 +08:00
Ivan Grokhotkov
a03cbdba2e change(sdmmc): enable UHS-1 support in test_app, swap slots on P4 EV board 2024-11-13 11:08:25 +08:00
Ivan Grokhotkov
b8de3dfb35 change(sdmmc): adapt host state machine for CMD11, commit reg/struct files 2024-11-13 11:08:09 +08:00
Ivan Grokhotkov
a8efd39877 change(sdmmc): disable the logic related to D3 line, it needs to be connected for CMD11 to work 2024-11-13 11:08:05 +08:00
Ivan Grokhotkov
c9e7d09e0a change(sdmmc): allow speciying pins for IOMUX slots as well 2024-11-13 11:07:39 +08:00
Ivan Grokhotkov
646cb24b71 change(sdmmc): make sdmmc_host_clock_update_command compatible with CMD11 2024-11-13 11:07:29 +08:00
C.S.M
8baade44fd test(spi_flash): Fix some failing test related to spi flash 2024-11-13 10:58:53 +08:00
C.S.M
2db5607060 fix(bod): Remove config for bod on p4 v0.x 2024-11-13 10:58:33 +08:00
C.S.M
0aa8d7f7c9 fix(jpeg): Fix the length of com marker 2024-11-13 10:57:48 +08:00
Shen Wei Long
59e3a1f046 feat(ble): Support for putting code in flash on ESP32-C2
(cherry picked from commit 192f13135488a2f8a386ace2dad69da59e81f5b5)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2024-11-13 10:45:03 +08:00
morris
e5a5cb8779 feat(ldo): load calibration parameters from efuse 2024-11-13 10:18:30 +08:00
Konstantin Kondrashov
c9be3c2dc6 feat(efuse): Adds efuse ADC calib data for ESP32-P4 2024-11-13 10:18:30 +08:00
Martin Vychodil
8ea7ae7086 Merge branch 'fix/nvs_generator_test_fail_due_to_safer_write_namespace_function_v5.4' into 'release/v5.4'
fix(nvs): Fix the NVS generator test (write_namespace safer behavior change) (v5.4)

See merge request espressif/esp-idf!34857
2024-11-13 03:45:05 +08:00
Adam Múdry
67ab814756 fix(nvs): Fix the nvs generator test (write_namespace safer behavior change) 2024-11-12 14:56:38 +01:00
Frantisek Hrbata
67039c590d feat(tools): unify sections in idf.py size reports for NG version
By default, esp-idf-size.ng displays all sections individually. This can
be confusing, especially if CONFIG_SOC_MEM_NON_CONTIGUOUS_SRAM is
enabled, resulting in sections like .dram0.data and .dram1.data being
abbreviated as two .data sections in the size report. To avoid confusion
for idf.py and cmake users, pass the --unify option to the underlying
esp_idf_size.ng by default.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-12 14:13:02 +01:00
morris
29003010a3 Merge branch 'feat/mipi_dsi_yuv_converter_v5.4' into 'release/v5.4'
feat(lcd): support YUV422 input color format (v5.4)

See merge request espressif/esp-idf!34760
2024-11-12 15:04:46 +08:00
Marius Vikhammer
7481f7eb9e Merge branch 'ci/known-failure-cases-5.4' into 'release/v5.4'
Ci/known failure cases 5.4

See merge request espressif/esp-idf!34688
2024-11-12 10:37:32 +08:00
morris
bfebd2e3ff Merge branch 'bugfix/gpio_set_level_atomic_v5.4' into 'release/v5.4'
fix(gpio): improve set level performance (v5.4)

See merge request espressif/esp-idf!34764
2024-11-11 14:24:47 +08:00
wuzhenghui
054706c115 fix(esp_system): writeback L1 Dcache before disable L2 if PSRAM used 2024-11-11 14:02:35 +08:00
Jiang Jiang Jian
df64e63bbd Merge branch 'fix/bypass_some_restore_process_if_sleep_rejected_v5.4' into 'release/v5.4'
fix(esp_hw_support): skip some wakeup steps if sleep is rejected (v5.4)

See merge request espressif/esp-idf!34622
2024-11-09 00:37:21 +08:00
Jiang Jiang Jian
3b0cf1a2ea Merge branch 'bugfix/backport_some_wifi_fixes_v5.4' into 'release/v5.4'
fix(wifi): backport some wifi fixes to v5.4

See merge request espressif/esp-idf!34690
2024-11-09 00:33:43 +08:00
Jiang Jiang Jian
12c49601c3 Merge branch 'feature/support_to_query_phy_rf_used_time_v5.4' into 'release/v5.4'
feat(phy): support to query phy used time

See merge request espressif/esp-idf!34624
2024-11-09 00:05:31 +08:00
Jiang Jiang Jian
36e78b3bd3 Merge branch 'bugfix/chip823_pll_low_temp_bug_v5.4' into 'release/v5.4'
[H2]Fix cpu switch fail for bbpll cali fail bug in low temp (v5.4)

See merge request espressif/esp-idf!34598
2024-11-08 23:28:38 +08:00
Jiang Jiang Jian
82802eb460 Merge branch 'bugfix/fix_avrc_absolute_volume_compatibility_v5.4' into 'release/v5.4'
bugfix/fix_avrc_absolute_volume_compatibility[backport v5.4]

See merge request espressif/esp-idf!34769
2024-11-08 22:28:10 +08:00
Sergei Silnov
68d680bafd Merge branch 'ci/fix_macos_ccache_v5.4' into 'release/v5.4'
CI: Fix failing ccache and show ccache statistics for macOS tests (master) (v5.4)

See merge request espressif/esp-idf!34758
2024-11-08 19:46:14 +08:00
Jiang Jiang Jian
b79c8faba4 Merge branch 'fix/fix_writeback_psram_after_vo2_powerdown_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix writeback cache to psram after vo2 powerdown (v5.4)

See merge request espressif/esp-idf!34579
2024-11-08 18:44:13 +08:00
hongshuqing
019afc0f80 fix: fix pll low temp bug 2024-11-08 18:01:54 +08:00
morris
0e43df1a47 Merge branch 'feat/pcnt_sleep_retention_v5.4' into 'release/v5.4'
feat(pcnt): add sleep retention init to avoid light sleep when pcnt is working (v5.4)

See merge request espressif/esp-idf!34728
2024-11-08 17:31:28 +08:00
Jiang Jiang Jian
2afa1cc04d Merge branch 'update/version_5_4_0' into 'release/v5.4'
Update version to 5.4.0

See merge request espressif/esp-idf!34743
2024-11-08 16:23:23 +08:00
liuning
91006fdee1 feat(phy): support to query phy used time 2024-11-08 16:23:16 +08:00
wuzhenghui
59230175df fix(esp_hw_support): skip some wakeup steps if sleep is rejected
1. Skip esp_timer time compensation to avoid introducing errors into rtc_timer
    2. Ignore sleep_time_overhead_out measurements when sleep is rejected
2024-11-08 16:08:32 +08:00
Jiang Jiang Jian
98fccdef20 Merge branch 'bugfix/osi_replace_free_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Replace free/malloc with osi_free/malloc(v5.4)

See merge request espressif/esp-idf!34605
2024-11-08 16:07:08 +08:00
morris
49fbe54bc4 feat(lcd): support color conversion for mipi dsi driver 2024-11-08 15:23:06 +08:00
liqigan
d7dd068478 fix(bt/bluedroid): Fixed AVRCP compatibility issue on absolute volume synchronization 2024-11-08 14:48:03 +08:00
zhangyanjiao
1d87c94ca3 fix(wifi/pm): Fixed the tbtt interval update error when AP's beacon interval changed
Closes https://github.com/espressif/esp-idf/issues/14720
2024-11-08 12:08:59 +08:00
xuxiao
c433d95441 fix(wifi): fix esp32c61 can not tx frame under ht40 above 2024-11-08 12:08:59 +08:00
yinqingzhao
30acf8b5d1 feat(twt): twt add parameter to enable keep alive 2024-11-08 12:08:59 +08:00
yinqingzhao
3d95fd17e3 docs(wifi): add migration guide for types change in wifi 2024-11-08 12:08:59 +08:00
yinqingzhao
504a248ba1 fix(wifi): modify bandwidth in wifi_ap_record_t 2024-11-08 12:08:59 +08:00
zhangyanjiao
295f1576e1 fix(wifi/mesh): Enlarge the mesh TX task stack 2024-11-08 12:08:59 +08:00
zhangyanjiao
e36118f4f0 fix(wifi): Support AES IV with random value in esptouch v2 2024-11-08 12:08:59 +08:00
sibeibei
49b8292f51 fix(wifi): fix some wifi issues 241031
1. fix cant sleep if reconnect to connected ap
    2. clear pmk in internal reconnection
    3. update connect status for init-->auth
    4. add protection for probe request when wifi band is 5g
2024-11-08 12:08:59 +08:00
wangtao@espressif.com
ea05f7f647 fix(wifi): fix spiram ignore issue 2024-11-08 12:08:59 +08:00
xuxiao
e2c732c906 feat(wifi): add wifi support for esp32c5 eco1 2024-11-08 12:08:59 +08:00
morris
a5fee4b8cc fix(gpio): improve set level performance
by avoid "read-modify-write" operation. The registers designed to be
write only.

Related to https://github.com/espressif/esp-idf/issues/14674
2024-11-08 11:44:08 +08:00
Peter Macko
1254494dd8 fix(macos): ccache: re-enable, show stats, set CCACHE_DIR, limit CCACHE_MAXSIZE 2024-11-07 17:39:49 +01:00
Aditya Patwardhan
64b9d85a76 change(version): Update version to 5.4.0 2024-11-07 12:55:42 +05:50
morris
ec8de8a1f9 Merge branch 'feat/mcpwm_dead_time_add_warning_v5.4' into 'release/v5.4'
fix(mcpwm): add warning about generator deadtime (v5.4)

See merge request espressif/esp-idf!34729
2024-11-07 14:52:29 +08:00
Mahavir Jain
c366277e64 Merge branch 'fix/fetch_image_hdr_v5.4' into 'release/v5.4'
fix(esp_system): Correct address used to fetch application image header (v5.4)

See merge request espressif/esp-idf!34627
2024-11-07 13:48:54 +08:00
Chen Jichang
31befbfad3 feat(pcnt): add sleep retention init
Currently, due to the lack of sleep callback feature. We only init
sleep module but don't allocate it. Thus the power domain will be
kept during the light sleep. And temporarily disable pcnt sleep
retention support on P4 due to the lack of retention module ID.
2024-11-07 12:09:26 +08:00
Shu Chen
dd8b4fa06e Merge branch 'backport/upgrade-zigbee-examples-v5.4' into 'release/v5.4'
feat(zigbee): Upgrade the Zigbee lib to v1.6 for Zigbee examples(Backport v5.4)

See merge request espressif/esp-idf!34716
2024-11-07 11:39:54 +08:00
Shu Chen
343bb81729 Merge branch 'fix/esp_prov_ipv6_resolve_v5_4' into 'release/v5.4'
fix(tools/esp_prov): Fix hostname resolving for IPv6-only host(v5.4)

See merge request espressif/esp-idf!34679
2024-11-07 11:07:34 +08:00
Chen Jichang
7946eb51e0 fix(mcpwm): add warning about generator deadtime
Closes https://github.com/espressif/esp-idf/issues/14773
2024-11-07 10:56:57 +08:00
Shu Chen
367059b93d Merge branch 'backport/linker_script_check_missing_function_v54' into 'release/v5.4'
fix(802.15.4): add no inline to some static function(Backport v5.4)

See merge request espressif/esp-idf!34722
2024-11-07 10:53:37 +08:00
Xu Si Yu
454c3140ad fix(ci): optimize an openthread ci case 2024-11-07 10:49:37 +08:00
xieqinan@espressif.com
b0a9704c3d feat(zigbee): Upgrade the Zigbee lib to v1.6 for Zigbee examples
- Optimize the Zigbee light, switch and gateway examples
- Remove the esp_zigbee_rcp example
2024-11-07 10:39:39 +08:00
Michael (XIAO Xufeng)
bab289ca78 Merge branch 'fix/sdio_slave_add_pm_lock_v5.4' into 'release/v5.4'
fix(sdio_slave): fix issue that auto light sleep can happen SDIO slave enabled (v5.4)

See merge request espressif/esp-idf!34646
2024-11-07 02:31:38 +08:00
Island
81020a3748 Merge branch 'feat/support_controller_run_in_flash_only_v5.4' into 'release/v5.4'
feat/support controller run in flash only(backport v5.4)

See merge request espressif/esp-idf!34625
2024-11-06 20:06:08 +08:00
zwx
ab2e360266 fix(802.15.4): add no inline to some static function 2024-11-06 19:49:17 +08:00
xiongweichao
500165ffb3 fix(bt/bluedroid): Replace free/malloc with osi_free/malloc 2024-11-06 19:15:04 +08:00
Mahavir Jain
69d72ca243 Merge branch 'ci/nightly_run_crt_bundle_stress_test_v5.4' into 'release/v5.4'
Run https x509 bundle default crt bundle stress test using QEMU (v5.4)

See merge request espressif/esp-idf!34660
2024-11-06 18:45:15 +08:00
Mahavir Jain
2b12fb6daa Merge branch 'docs/fix_section_visibility_esp32p4_v5.4' into 'release/v5.4'
Fix typo to make a section visible for non-esp32 SPIRAM supported targets (v5.4)

See merge request espressif/esp-idf!34680
2024-11-06 17:45:06 +08:00
Island
7f42ed38fd Merge branch 'bugfix/fix_ble_build_fail_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed BLE build fail when enable dynamic memory and BLE5.0 (v5.4)

See merge request espressif/esp-idf!34665
2024-11-06 16:36:46 +08:00
Island
b763700bc8 Merge branch 'bugfix/fixed_h2_assert_master_1031_v5.4' into 'release/v5.4'
Bugfix/fixed h2 assert master 1031 (v5.4)

See merge request espressif/esp-idf!34541
2024-11-06 15:06:45 +08:00
morris
764f5414ff Merge branch 'ci/run_gdma_after_reset_v5.4' into 'release/v5.4'
fix(gdma): run test cases after reset (v5.4)

See merge request espressif/esp-idf!34689
2024-11-06 15:02:47 +08:00
Island
1e37c32fb6 Merge branch 'bugfix/fix_mem_debug_on_bluedroid_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed error when memory debug enabled (v5.4)

See merge request espressif/esp-idf!34576
2024-11-06 11:50:40 +08:00
Marius Vikhammer
ee5e2798ba Merge branch 'fix/nmi_not_triggering_on_s3_v5.4' into 'release/v5.4'
fix(examples): fix NMI interrupt example to work on ESP32-S3 (release v5.4)

See merge request espressif/esp-idf!34687
2024-11-06 11:31:51 +08:00
morris
eeb4baf17f fix(gdma): run test cases after reset 2024-11-06 11:24:16 +08:00
igor.udot
17a023989b ci: updated known failure cases file env 2024-11-06 10:42:40 +08:00
Omar Chebib
ad910e3ce0 fix(examples): fix NMI interrupt example to work on ESP32-S3 2024-11-06 10:15:09 +08:00
morris
f5c71b8715 Merge branch 'bugfix/wrong_return_type_v5.4' into 'release/v5.4'
fix(i2c_lcd): wrong return type for esp_lcd_new_panel_io_i2c (v5.4)

See merge request espressif/esp-idf!34653
2024-11-05 21:28:26 +08:00
harshal.patil
7c9bec2633 docs(mem_alloc): Fix typo to make a section visible for non-esp32 spiram targets 2024-11-05 16:13:08 +05:30
Alexey Gerenkov
c17aa3e020 Merge branch 'fix/sysview_stack_overflow_v5.4' into 'release/v5.4'
fix(sysview): reduce isr stack usage to avoid stack guard exception (v5.4)

See merge request espressif/esp-idf!34614
2024-11-05 18:36:25 +08:00
WanqQixiang
2980c7f5e5 fix(tools/esp_prov): Fix hostname resolving for IPv6-only host 2024-11-05 17:47:14 +08:00
Zhang Hai Peng
9685b3b4ca fix(ble/bluedroid): Fixed BLE build fail when enable dynamic memory and BLE5.0
(cherry picked from commit 94d1a4f1c0)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-11-05 16:13:51 +08:00
harshal.patil
8b8956f7ed ci(examples/protocols): Run the https x509 bundle default crt bundle stress test using QEMU 2024-11-05 13:31:48 +05:30
Shu Chen
1754c8f8e5 Merge branch 'backport/fix_energy_scan_api_para_mismatch_v54' into 'release/v5.4'
fix(openthread): set channel for energy scan(Backport v5.4)

See merge request espressif/esp-idf!34597
2024-11-05 14:28:08 +08:00
morris
2770a95a5f fix(i2c_lcd): wrong return type for esp_lcd_new_panel_io_i2c
when build for C++ project
2024-11-05 13:46:16 +08:00
Shu Chen
f012157cf9 Merge branch 'feat/openthread_dataset_changed_event_v5_4' into 'release/v5.4'
feat(openthread): Add dataset changed event and post it in state change callback(v5.4)

See merge request espressif/esp-idf!34548
2024-11-05 12:17:22 +08:00
Xiao Xufeng
3e0611757b fix(sdio_slave): prevents peripheral power domain being powered off when SDIO slave in use 2024-11-05 03:22:06 +08:00
Xiao Xufeng
802e7b2192 feat(sleep_retention): allow drivers taking TOP power lock
Also add a dump function
2024-11-05 03:22:01 +08:00
Sergei Silnov
a2ffd9e955 Merge branch 'ci/fix_diff_manifest_sha_v5.4' into 'release/v5.4'
ci: use different base commit for merge result pipelines (v5.4)

See merge request espressif/esp-idf!34582
2024-11-05 01:07:13 +08:00
Zhao Wei Liang
0505eb80c9 fix(ble): fixed occasional crash issue in low memory scenarios on ESP32-H2
(cherry picked from commit dbad6a0ca5)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-05 00:05:58 +08:00
Zhao Wei Liang
ae6f824fcf fix(ble): fixed occasional crash issue in low memory scenarios on ESP32-C6
(cherry picked from commit dabd66e16f)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-05 00:05:58 +08:00
Laukik Hase
e0e285b841 fix(esp_system): Correct address used to fetch application image header 2024-11-04 14:07:17 +05:30
zhiweijian
2a05eb8fd3 feat(bt/controller): Support controller code run in flash only 2024-11-04 15:44:11 +08:00
wuzhenghui
651e5adbda fix(esp_hw_support): only support power down flash after revison v1.0 on esp32p4 2024-11-04 14:08:29 +08:00
wuzhenghui
2558760224 fix(esp_hw_support): fix writeback cache to psram after vo2 powerdown 2024-11-04 14:08:28 +08:00
Jiang Jiang Jian
0e6c74e93d Merge branch 'bugfix/fix_memory_leak_in_sco_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fix memory leak in sco when bluedroid disable (v5.4)

See merge request espressif/esp-idf!34564
2024-11-04 11:35:39 +08:00
Jiang Jiang Jian
b21b7294c6 Merge branch 'feature/add_ledc_output_in_sleep_test_v5.4' into 'release/v5.4'
feat(ledc): added a multi device test for testing ledc output in sleep (v5.4)

See merge request espressif/esp-idf!34522
2024-11-04 11:35:11 +08:00
Jiang Jiang Jian
131609cf29 Merge branch 'fix/fix_ota_slowclock_switching_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix rtc slow clock missing after the OTA app changes the slow clock source (v5.4)

See merge request espressif/esp-idf!34488
2024-11-04 11:34:40 +08:00
Erhan Kurubas
92cc8a5512 fix(sysview): reduce isr stack usage to avoid stack guard exception 2024-11-01 22:30:37 +01:00
zwx
7c03514a28 fix(openthread): set channel for energy scan 2024-11-01 16:40:51 +08:00
Fu Hanxi
5f62667aba ci: use different base commit for merge result pipelines 2024-10-31 13:53:50 +01:00
chenjianhua
c6810a102b fix(bt/bluedroid): Fixed error when memory debug enabled 2024-10-31 19:12:47 +08:00
WanqQixiang
9677b9bfaf feat(openthread): Add dataset changed event and post it in state change callback 2024-10-31 19:04:00 +08:00
linruihao
6fe128ac6f fix(bt/bluedroid): Fix memory leak in sco when bluedroid disable 2024-10-31 17:52:31 +08:00
Song Ruo Jing
33103306a6 feat(ledc): added a multi device test for testing ledc output in sleep 2024-10-30 14:06:42 +08:00
Ivan Grokhotkov
851679e63a Merge branch 'maint/release_v5.4_codeowners' into 'release/v5.4'
change(gitlab): simplify approvals for backports (v5.4)

See merge request espressif/esp-idf!34481
2024-10-29 17:26:54 +08:00
wuzhenghui
280f6cb4e9 fix(esp_hw_support): disable unused clock sources after rtc clock switching complete 2024-10-28 20:16:01 +08:00
wuzhenghui
cf5bdf5e9f fix(esp_hw_support): enable all supported slow clock at pmu_init 2024-10-28 20:15:55 +08:00
Ivan Grokhotkov
661a487610 change(gitlab): simplify approvals for backports (v5.4) 2024-10-28 10:38:15 +01:00
7456 changed files with 583075 additions and 693270 deletions

View File

@@ -1,4 +1,4 @@
[codespell]
skip = build,*.yuv,components/fatfs/src/*,alice.txt,*.rgb,components/wpa_supplicant/*,components/esp_wifi/*,*.pem,components/newlib/COPYING.*,docs/sphinx-known-warnings.txt
skip = build,*.yuv,components/fatfs/src/*,alice.txt,*.rgb,components/wpa_supplicant/*,components/esp_wifi/*,*.pem
ignore-words-list = ser,dout,rsource,fram,inout,shs,ans,aci,unstall,unstalling,hart,wheight,wel,ot,fane,assertIn,registr,oen,parms
write-changes = true

165
.flake8 Normal file
View File

@@ -0,0 +1,165 @@
[flake8]
select =
# Full lists are given in order to suppress all errors from other plugins
# Full list of pyflakes error codes:
F401, # module imported but unused
F402, # import module from line N shadowed by loop variable
F403, # 'from module import *' used; unable to detect undefined names
F404, # future import(s) name after other statements
F405, # name may be undefined, or defined from star imports: module
F406, # 'from module import *' only allowed at module level
F407, # an undefined __future__ feature name was imported
F601, # dictionary key name repeated with different values
F602, # dictionary key variable name repeated with different values
F621, # too many expressions in an assignment with star-unpacking
F622, # two or more starred expressions in an assignment (a, *b, *c = d)
F631, # assertion test is a tuple, which are always True
F701, # a break statement outside of a while or for loop
F702, # a continue statement outside of a while or for loop
F703, # a continue statement in a finally block in a loop
F704, # a yield or yield from statement outside of a function
F705, # a return statement with arguments inside a generator
F706, # a return statement outside of a function/method
F707, # an except: block as not the last exception handler
F721, F722, # doctest syntax error syntax error in forward type annotation
F811, # redefinition of unused name from line N
F812, # list comprehension redefines name from line N
F821, # undefined name name
F822, # undefined name name in __all__
F823, # local variable name referenced before assignment
F831, # duplicate argument name in function definition
F841, # local variable name is assigned to but never used
F901, # raise NotImplemented should be raise NotImplementedError
# Full list of pycodestyle violations:
E101, # indentation contains mixed spaces and tabs
E111, # indentation is not a multiple of four
E112, # expected an indented block
E113, # unexpected indentation
E114, # indentation is not a multiple of four (comment)
E115, # expected an indented block (comment)
E116, # unexpected indentation (comment)
E121, # continuation line under-indented for hanging indent
E122, # continuation line missing indentation or outdented
E123, # closing bracket does not match indentation of opening bracket's line
E124, # closing bracket does not match visual indentation
E125, # continuation line with same indent as next logical line
E126, # continuation line over-indented for hanging indent
E127, # continuation line over-indented for visual indent
E128, # continuation line under-indented for visual indent
E129, # visually indented line with same indent as next logical line
E131, # continuation line unaligned for hanging indent
E133, # closing bracket is missing indentation
E201, # whitespace after '('
E202, # whitespace before ')'
E203, # whitespace before ':'
E211, # whitespace before '('
E221, # multiple spaces before operator
E222, # multiple spaces after operator
E223, # tab before operator
E224, # tab after operator
E225, # missing whitespace around operator
E226, # missing whitespace around arithmetic operator
E227, # missing whitespace around bitwise or shift operator
E228, # missing whitespace around modulo operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
E242, # tab after ','
E251, # unexpected spaces around keyword / parameter equals
E261, # at least two spaces before inline comment
E262, # inline comment should start with '# '
E265, # block comment should start with '# '
E266, # too many leading '#' for block comment
E271, # multiple spaces after keyword
E272, # multiple spaces before keyword
E273, # tab after keyword
E274, # tab before keyword
E275, # missing whitespace after keyword
E301, # expected 1 blank line, found 0
E302, # expected 2 blank lines, found 0
E303, # too many blank lines
E304, # blank lines found after function decorator
E305, # expected 2 blank lines after end of function or class
E306, # expected 1 blank line before a nested definition
E401, # multiple imports on one line
E402, # module level import not at top of file
E501, # line too long (82 > 79 characters)
E502, # the backslash is redundant between brackets
E701, # multiple statements on one line (colon)
E702, # multiple statements on one line (semicolon)
E703, # statement ends with a semicolon
E704, # multiple statements on one line (def)
E711, # comparison to None should be 'if cond is None:'
E712, # comparison to True should be 'if cond is True:' or 'if cond:'
E713, # test for membership should be 'not in'
E714, # test for object identity should be 'is not'
E721, # do not compare types, use 'isinstance()'
E722, # do not use bare except, specify exception instead
E731, # do not assign a lambda expression, use a def
E741, # do not use variables named 'l', 'O', or 'I'
E742, # do not define classes named 'l', 'O', or 'I'
E743, # do not define functions named 'l', 'O', or 'I'
E901, # SyntaxError or IndentationError
E902, # IOError
W191, # indentation contains tabs
W291, # trailing whitespace
W292, # no newline at end of file
W293, # blank line contains whitespace
W391, # blank line at end of file
W503, # line break before binary operator
W504, # line break after binary operator
W505, # doc line too long (82 > 79 characters)
W601, # .has_key() is deprecated, use 'in'
W602, # deprecated form of raising exception
W603, # '<>' is deprecated, use '!='
W604, # backticks are deprecated, use 'repr()'
W605, # invalid escape sequence 'x'
W606, # 'async' and 'await' are reserved keywords starting with Python 3.7
# Full list of flake8 violations
E999, # failed to compile a file into an Abstract Syntax Tree for the plugins that require it
# Full list of mccabe violations
C901 # complexity value provided by the user
ignore =
E221, # multiple spaces before operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
W503, # line break before binary operator
W504 # line break after binary operator
max-line-length = 160
show_source = True
statistics = True
exclude =
.git,
__pycache__,
# submodules
components/bootloader/subproject/components/micro-ecc/micro-ecc,
components/bt/host/nimble/nimble,
components/cmock/CMock,
components/json/cJSON,
components/mbedtls/mbedtls,
components/openthread/openthread,
components/unity/unity,
components/spiffs/spiffs,
# autogenerated scripts
components/protocomm/python/constants_pb2.py,
components/protocomm/python/sec0_pb2.py,
components/protocomm/python/sec1_pb2.py,
components/protocomm/python/sec2_pb2.py,
components/protocomm/python/session_pb2.py,
components/wifi_provisioning/python/wifi_ctrl_pb2.py,
components/wifi_provisioning/python/wifi_scan_pb2.py,
components/wifi_provisioning/python/wifi_config_pb2.py,
components/wifi_provisioning/python/wifi_constants_pb2.py,
components/esp_local_ctrl/python/esp_local_ctrl_pb2.py,
per-file-ignores =
# Sphinx conf.py files use star imports to setup config variables
docs/conf_common.py: F405

View File

@@ -95,26 +95,6 @@ body:
render: plain
validations:
required: false
- type: textarea
id: diag
attributes:
label: Diagnostic report archive.
description: |
Diagnostic report for ESP-IDF created using [idf.py diag](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-diag.html) or [esp-idf-diag](https://github.com/espressif/esp-idf-diag). The `idf.py diag` command is available beginning with ESP-IDF version 5.5. For older versions, you may want to consider using the `esp-idf-diag` command.
In your project directory, execute the following command:
Using `idf.py diag`
1. idf.py diag
Using `esp-idf-diag`
1. pip install esp-idf-diag
2. esp-idf-diag create
Once the report is generated, the tool will guide you with the next steps.
placeholder: Please attach the diagnostic report zip file here.
validations:
required: false
- type: textarea
id: more-info
attributes:

View File

@@ -123,26 +123,6 @@ body:
render: plain
validations:
required: false
- type: textarea
id: diag
attributes:
label: Diagnostic report archive.
description: |
Diagnostic report for ESP-IDF created using [idf.py diag](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-diag.html) or [esp-idf-diag](https://github.com/espressif/esp-idf-diag). The `idf.py diag` command is available beginning with ESP-IDF version 5.5. For older versions, you may want to consider using the `esp-idf-diag` command.
In your project directory, execute the following command:
Using `idf.py diag`
1. idf.py diag
Using `esp-idf-diag`
1. pip install esp-idf-diag
2. esp-idf-diag create
Once the report is generated, the tool will guide you with the next steps.
placeholder: Please attach the diagnostic report zip file here.
validations:
required: false
- type: textarea
id: more-info
attributes:

View File

@@ -21,7 +21,7 @@ jobs:
# Disable the job in forks
if: ${{ github.repository_owner == 'espressif' }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04-X64-large
steps:
# Depending on the branch/tag, set CLONE_BRANCH_OR_TAG variable (used in the Dockerfile
# as a build arg) and TAG_NAME (used when tagging the image).

View File

@@ -8,7 +8,7 @@ on:
jobs:
release_zips:
name: Create release zip file
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Create a recursive clone source zip
uses: espressif/release-zips-action@v1

View File

@@ -27,7 +27,6 @@ jobs:
- name: Vulnerability scan
env:
SBOM_CHECK_LOCAL_DB: ${{ vars.SBOM_CHECK_LOCAL_DB }}
SBOM_MATTERMOST_WEBHOOK: ${{ secrets.SBOM_MATTERMOST_WEBHOOK }}
NVDAPIKEY: ${{ secrets.NVDAPIKEY }}
uses: espressif/esp-idf-sbom-action@master

1
.gitignore vendored
View File

@@ -37,7 +37,6 @@ components/**/build/
components/**/build_*_*/
components/**/sdkconfig
components/**/sdkconfig.old
components/**/test_apps/wifi_nvs_config/nvs_data_suffix.csv
# Example project files
examples/**/build/

View File

@@ -2,253 +2,5 @@
#
# https://docs.gitlab.com/ee/user/project/code_owners.html#the-syntax-of-code-owners-files
#
# If more than one rule matches a given file, the latest rule is used.
# The file should be generally kept sorted, except when it is necessary
# to use a different order due to the fact above. In that case, use
# '# sort-order-reset' comment line to reset the sort order.
#
# Recipes for a few common cases:
#
# 1. Specific directory with all its contents:
#
# /components/app_trace/
#
# Note the trailing slash!
#
# 2. File with certain extension in any subdirectory of a certain directory:
#
# /examples/**/*.py
#
# This includes an *.py files in /examples/ directory as well.
#
# 3. Contents of a directory with a certain name, anywhere in the tree:
#
# test_*_host/
#
# Will match everything under components/efuse/test_efuse_host/,
# components/heap/test_multi_heap_host/, components/lwip/test_afl_host/, etc.
#
# 4. Same as above, except limited to a specific place in the tree:
#
# /components/esp32*/
#
# Matches everything under /components/esp32, /components/esp32s2, etc.
# Doesn't match /tools/some-test/components/esp32s5.
#
# 5. Specific file:
#
# /tools/tools.json
#
# 6. File with a certain name anywhere in the tree
#
# .gitignore
#
* @esp-idf-codeowners/other
/.* @esp-idf-codeowners/tools
/.codespellrc @esp-idf-codeowners/ci
/.github/workflows/ @esp-idf-codeowners/ci
/.gitlab-ci.yml @esp-idf-codeowners/ci
/.gitlab/ci/ @esp-idf-codeowners/ci
/.pre-commit-config.yaml @esp-idf-codeowners/ci
/.readthedocs.yml @esp-idf-codeowners/docs
/.vale.ini @esp-idf-codeowners/docs
/CMakeLists.txt @esp-idf-codeowners/build-config
/COMPATIBILITY*.md @esp-idf-codeowners/peripherals
/CONTRIBUTING.md @esp-idf-codeowners/docs
/Kconfig @esp-idf-codeowners/build-config
/README*.md @esp-idf-codeowners/docs
/ROADMAP*.md @esp-idf-codeowners/docs
/SUPPORT_POLICY*.md @esp-idf-codeowners/docs
/add_path.sh @esp-idf-codeowners/tools
/conftest.py @esp-idf-codeowners/ci
/export.* @esp-idf-codeowners/tools
/install.* @esp-idf-codeowners/tools
/pytest.ini @esp-idf-codeowners/ci
/ruff.toml @esp-idf-codeowners/tools
/sdkconfig.rename @esp-idf-codeowners/build-config
/sonar-project.properties @esp-idf-codeowners/ci
# sort-order-reset
/components/app_trace/ @esp-idf-codeowners/debugging
/components/app_update/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/bootloader*/ @esp-idf-codeowners/system @esp-idf-codeowners/security
/components/bootloader_support/bootloader_flash/ @esp-idf-codeowners/peripherals
/components/bt/ @esp-idf-codeowners/bluetooth
/components/cmock/ @esp-idf-codeowners/system
/components/console/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities/console
/components/cxx/ @esp-idf-codeowners/system
/components/driver/ @esp-idf-codeowners/peripherals
/components/efuse/ @esp-idf-codeowners/system
/components/esp_adc/ @esp-idf-codeowners/peripherals
/components/esp_app_format/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/esp_bootloader_format/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/esp_coex/ @esp-idf-codeowners/wifi @esp-idf-codeowners/bluetooth @esp-idf-codeowners/ieee802154
/components/esp_common/ @esp-idf-codeowners/system
/components/esp_driver_*/ @esp-idf-codeowners/peripherals
/components/esp_driver_sdmmc/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/storage
/components/esp_eth/ @esp-idf-codeowners/network
/components/esp_event/ @esp-idf-codeowners/system
/components/esp_gdbstub/ @esp-idf-codeowners/debugging
/components/esp_hid/ @esp-idf-codeowners/bluetooth
/components/esp_http_client/ @esp-idf-codeowners/app-utilities
/components/esp_http_server/ @esp-idf-codeowners/app-utilities
/components/esp_https_ota/ @esp-idf-codeowners/app-utilities
/components/esp_https_server/ @esp-idf-codeowners/app-utilities
/components/esp_hw_support/ @esp-idf-codeowners/system @esp-idf-codeowners/peripherals
/components/esp_hw_support/lowpower/ @esp-idf-codeowners/power-management
/components/esp_lcd/ @esp-idf-codeowners/peripherals
/components/esp_local_ctrl/ @esp-idf-codeowners/app-utilities
/components/esp_mm/ @esp-idf-codeowners/peripherals
/components/esp_netif/ @esp-idf-codeowners/network
/components/esp_netif_stack/ @esp-idf-codeowners/network
/components/esp_partition/ @esp-idf-codeowners/storage
/components/esp_phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/components/esp_pm/ @esp-idf-codeowners/power-management @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/system
/components/esp_psram/ @esp-idf-codeowners/peripherals
/components/esp_psram/system_layer/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/esp_ringbuf/ @esp-idf-codeowners/system
/components/esp_rom/ @esp-idf-codeowners/system @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi
/components/esp_security/ @esp-idf-codeowners/security
/components/esp_system/ @esp-idf-codeowners/system
/components/esp_tee/ @esp-idf-codeowners/security
/components/esp_timer/ @esp-idf-codeowners/system
/components/esp-tls/ @esp-idf-codeowners/app-utilities
/components/esp_vfs_*/ @esp-idf-codeowners/storage
/components/esp_vfs_console/ @esp-idf-codeowners/storage @esp-idf-codeowners/system
/components/esp_wifi/ @esp-idf-codeowners/wifi
/components/espcoredump/ @esp-idf-codeowners/debugging
/components/esptool_py/ @esp-idf-codeowners/tools
/components/fatfs/ @esp-idf-codeowners/storage
/components/freertos/ @esp-idf-codeowners/system
/components/hal/ @esp-idf-codeowners/peripherals
/components/hal/test_apps/crypto/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/security
/components/heap/ @esp-idf-codeowners/system
/components/http_parser/ @esp-idf-codeowners/app-utilities
/components/idf_test/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/ieee802154/ @esp-idf-codeowners/ieee802154
/components/json/ @esp-idf-codeowners/app-utilities
/components/linux/ @esp-idf-codeowners/system
/components/log/ @esp-idf-codeowners/system
/components/lwip/ @esp-idf-codeowners/lwip
/components/mbedtls/ @esp-idf-codeowners/app-utilities/mbedtls @esp-idf-codeowners/security
/components/mqtt/ @esp-idf-codeowners/network
/components/newlib/ @esp-idf-codeowners/system @esp-idf-codeowners/toolchain
/components/nvs_flash/ @esp-idf-codeowners/storage
/components/nvs_sec_provider/ @esp-idf-codeowners/storage @esp-idf-codeowners/security
/components/openthread/ @esp-idf-codeowners/ieee802154
/components/partition_table/ @esp-idf-codeowners/system
/components/perfmon/ @esp-idf-codeowners/debugging
/components/protobuf-c/ @esp-idf-codeowners/app-utilities
/components/protocomm/ @esp-idf-codeowners/app-utilities/provisioning
/components/pthread/ @esp-idf-codeowners/system
/components/riscv/ @esp-idf-codeowners/system
/components/rt/ @esp-idf-codeowners/system
/components/sdmmc/ @esp-idf-codeowners/storage
/components/soc/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/spi_flash/ @esp-idf-codeowners/peripherals
/components/spiffs/ @esp-idf-codeowners/storage
/components/tcp_transport/ @esp-idf-codeowners/network
/components/touch_element/ @esp-idf-codeowners/peripherals
/components/ulp/ @esp-idf-codeowners/system
/components/unity/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/usb/ @esp-idf-codeowners/peripherals/usb
/components/vfs/ @esp-idf-codeowners/storage
/components/wear_levelling/ @esp-idf-codeowners/storage
/components/wifi_provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/components/wpa_supplicant/ @esp-idf-codeowners/wifi @esp-idf-codeowners/app-utilities/mbedtls
/components/xtensa/ @esp-idf-codeowners/system
/docs/ @esp-idf-codeowners/docs
/docs/docs_not_updated/ @esp-idf-codeowners/all-maintainers
/docs/**/api-guides/tools/ @esp-idf-codeowners/tools
/docs/en/api-guides/core_dump.rst @esp-idf-codeowners/debugging
/docs/**/api-guides/wifi* @esp-idf-codeowners/wifi
/docs/**/api-guides/esp-wifi-mesh.rst @esp-idf-codeowners/wifi
/docs/en/api-guides/jtag-debugging/ @esp-idf-codeowners/debugging
/docs/**/api-reference/bluetooth/ @esp-idf-codeowners/bluetooth
/docs/**/api-reference/network/ @esp-idf-codeowners/network @esp-idf-codeowners/wifi
/docs/**/api-reference/peripherals/ @esp-idf-codeowners/peripherals
/docs/**/api-reference/peripherals/usb* @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/docs/**/api-reference/peripherals/usb*/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/docs/**/api-reference/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/docs/**/api-reference/provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/docs/**/api-reference/storage/ @esp-idf-codeowners/storage
/docs/**/api-reference/system/ @esp-idf-codeowners/system
/docs/**/security/ @esp-idf-codeowners/security
/docs/**/migration-guides/ @esp-idf-codeowners/docs @esp-idf-codeowners/all-maintainers
/docs/**/contribute/install-pre-commit-hook.rst @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/examples/README.md @esp-idf-codeowners/docs @esp-idf-codeowners/ci
/examples/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/examples/bluetooth/ @esp-idf-codeowners/bluetooth
/examples/build_system/ @esp-idf-codeowners/build-config
/examples/common_components/ @esp-idf-codeowners/system @esp-idf-codeowners/wifi @esp-idf-codeowners/lwip @esp-idf-codeowners/network
/examples/custom_bootloader/ @esp-idf-codeowners/system
/examples/cxx/ @esp-idf-codeowners/system
/examples/ethernet/ @esp-idf-codeowners/network
/examples/get-started/ @esp-idf-codeowners/system
/examples/ieee802154/ @esp-idf-codeowners/ieee802154
/examples/lowpower/ @esp-idf-codeowners/power-management @esp-idf-codeowners/system
/examples/mesh/ @esp-idf-codeowners/wifi
/examples/network/ @esp-idf-codeowners/network @esp-idf-codeowners/wifi
/examples/openthread/ @esp-idf-codeowners/ieee802154
/examples/peripherals/ @esp-idf-codeowners/peripherals
/examples/peripherals/usb/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/examples/phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/examples/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/examples/provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/examples/security/ @esp-idf-codeowners/security
/examples/storage/ @esp-idf-codeowners/storage
/examples/system/ @esp-idf-codeowners/system
/examples/system/ota/ @esp-idf-codeowners/app-utilities
/examples/wifi/ @esp-idf-codeowners/wifi
/examples/zigbee/ @esp-idf-codeowners/ieee802154
/tools/ @esp-idf-codeowners/tools
/tools/ble/ @esp-idf-codeowners/app-utilities
/tools/bt/ @esp-idf-codeowners/bluetooth
/tools/catch/ @esp-idf-codeowners/ci
/tools/ci/ @esp-idf-codeowners/ci
/tools/cmake/ @esp-idf-codeowners/build-config
/tools/cmake/toolchain-*.cmake @esp-idf-codeowners/toolchain
/tools/esp_app_trace/ @esp-idf-codeowners/debugging
/tools/esp_prov/ @esp-idf-codeowners/app-utilities
/tools/gdb_panic_server.py @esp-idf-codeowners/debugging
/tools/kconfig*/ @esp-idf-codeowners/build-config
/tools/ldgen/ @esp-idf-codeowners/build-config
/tools/mass_mfg/ @esp-idf-codeowners/app-utilities
/tools/mocks/ @esp-idf-codeowners/system
/tools/test_apps/ @esp-idf-codeowners/ci
/tools/test_apps/README.md @esp-idf-codeowners/docs @esp-idf-codeowners/ci
## Note: owners here should be the same as the owners for the same example subdir, above
/tools/test_apps/build_system/ @esp-idf-codeowners/build-config
/tools/test_apps/configs/ @esp-idf-codeowners/system
/tools/test_apps/linux_compatible/ @esp-idf-codeowners/system
/tools/test_apps/peripherals/ @esp-idf-codeowners/peripherals
/tools/test_apps/phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/tools/test_apps/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/tools/test_apps/security/ @esp-idf-codeowners/security
/tools/test_apps/storage/ @esp-idf-codeowners/storage
/tools/test_apps/system/ @esp-idf-codeowners/system
/tools/test_apps/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/tools/test_build_system/ @esp-idf-codeowners/tools @esp-idf-codeowners/build-config
/tools/tools.json @esp-idf-codeowners/tools @esp-idf-codeowners/toolchain @esp-idf-codeowners/debugging
/tools/unit-test-app/ @esp-idf-codeowners/system @esp-idf-codeowners/tools
# sort-order-reset
/components/**/test_apps/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools
# ignore lists
/tools/ci/check_copyright_config.yaml @esp-idf-codeowners/all-maintainers
/tools/ci/check_copyright_ignore.txt @esp-idf-codeowners/all-maintainers
/tools/ci/mypy_ignore_list.txt @esp-idf-codeowners/tools
* @esp-idf-codeowners/all-maintainers

View File

@@ -145,11 +145,11 @@ check if there's a suitable `.if-<if-anchor-you-need>` anchor
1. if there is, create a rule following [`rules` Template Naming Rules](#rules-template-naming-rules).For detail information, please refer to [GitLab Documentation `rules-if`](https://docs.gitlab.com/ee/ci/yaml/README.html#rulesif). Here's an example.
```yaml
.rules:patterns:clang_tidy:
.rules:patterns:python-files:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-c-files
changes: *patterns-python-files
```
2. if there isn't

View File

@@ -231,17 +231,12 @@ pytest_build_system_macos:
- .after_script:build:macos:upload-failed-job-logs:ccache-show-stats
- .rules:build:macos
tags:
- macos
- macos_shell
parallel: 3
variables:
PYENV_VERSION: "3.9"
PYENV_VERSION: "3.8"
# CCACHE_DIR: "/cache/idf_ccache". On macOS, you cannot write to this folder due to insufficient permissions.
CCACHE_DIR: "" # ccache will use "$HOME/Library/Caches/ccache".
CCACHE_MAXSIZE: "5G" # To preserve the limited Macbook storage. CCACHE automatically prunes old caches to fit the set limit.
# Workaround for a bug in Parallels executor where CI_PROJECT_DIR is not an absolute path,
# but a relative path to the build directory (builds/espressif/esp-idf instead of ~/builds/espressif/esp-idf.
# GitLab sets the project dir to this template `<builds_dir>/<namespace>/<project_name>`
IDF_PATH: "/Users/espressif/builds/espressif/esp-idf"
build_docker:
extends:

View File

@@ -40,7 +40,7 @@ variables:
GIT_FETCH_EXTRA_FLAGS: "--no-recurse-submodules --prune --prune-tags"
# we're using .cache folder for caches
GIT_CLEAN_FLAGS: -ffdx -e .cache/
LATEST_GIT_TAG: v6.0-dev
LATEST_GIT_TAG: v5.4.3
SUBMODULE_FETCH_TOOL: "tools/ci/ci_fetch_submodule.py"
# by default we will fetch all submodules
@@ -55,9 +55,9 @@ variables:
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
# Docker images
ESP_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-env-v6.0:1"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v6.0:1-1"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v6.0:1"
ESP_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-env-v5.4:2"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v5.4:2-1"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v5.4:2"
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:5"
PRE_COMMIT_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-pre-commit:1"
@@ -70,7 +70,7 @@ variables:
CI_PYTHON_CONSTRAINT_BRANCH: ""
# Update the filename for a specific ESP-IDF release. It is used only with CI_PYTHON_CONSTRAINT_BRANCH.
CI_PYTHON_CONSTRAINT_FILE: "espidf.constraints.v6.0.txt"
CI_PYTHON_CONSTRAINT_FILE: "espidf.constraints.v5.4.txt"
# Set this variable to repository name of a Python tool you wish to install and test in the context of ESP-IDF CI.
# Keep the variable empty when not used.
@@ -88,7 +88,7 @@ variables:
CI_CLANG_DISTRO_URL: ""
# Set this variable to specify the file name for the known failure cases.
KNOWN_FAILURE_CASES_FILE_NAME: "master.txt"
KNOWN_FAILURE_CASES_FILE_NAME: "5.4.txt"
IDF_CI_BUILD: 1
@@ -140,13 +140,6 @@ variables:
if [[ -n "$IDF_DONT_USE_MIRRORS" ]]; then
export IDF_MIRROR_PREFIX_MAP=
fi
# Optimize pip install
if echo "${CI_RUNNER_TAGS}" | grep "shiny"; then
export PIP_INDEX_URL="${PIP_INDEX_URL_SHINY}"
fi
if [[ "$(uname -m)" == "x86_64" ]] || [[ "$(uname -m)" == "aarch64" ]]; then
export IDF_PIP_WHEELS_URL=""
fi
if [[ "${CI_JOB_STAGE}" != "target_test" ]]; then
section_start "running_install_sh" "Running install.sh"
@@ -243,6 +236,8 @@ variables:
# Ensure pyenv and PYENV_VERSION installed
- eval "$(pyenv init -)"
- *common-before_scripts
# On macOS, these tools need to be installed
- export IDF_TOOLS_PATH="${HOME}/.espressif_runner_${CI_RUNNER_ID}_${CI_CONCURRENT_ID}"
# remove idf-env.json, since it may contains enabled "features"
- rm -f $IDF_TOOLS_PATH/idf-env.json
# This adds tools (compilers) and the version-specific Python environment to PATH
@@ -332,32 +327,26 @@ variables:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- |
# Store the diff output in a temporary file
TEMP_FILE=$(mktemp)
# merged results pipelines, by default
if [[ -n $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA)
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
# merge request pipelines, when the mr got conflicts
elif [[ -n $CI_MERGE_REQUEST_DIFF_BASE_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA)
# other pipelines, like the protected branches pipelines
elif [[ "$CI_COMMIT_BEFORE_SHA" != "0000000000000000000000000000000000000000" ]]; then
git fetch origin $CI_COMMIT_BEFORE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA)
else
# pipeline source could be web, scheduler, etc.
git fetch origin $CI_COMMIT_SHA --depth=2 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_COMMIT_SHA~1 $CI_COMMIT_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_SHA~1 $CI_COMMIT_SHA)
fi
- *git_checkout_ci_commit_sha
- *common-before_scripts

View File

@@ -7,14 +7,9 @@
#
# This file should ONLY be used during bringup. Should be reset to empty after the bringup process
extra_default_build_targets:
- esp32c5
- esp32c61
- esp32h21
- esp32h4
bypass_check_test_targets:
- esp32h21
- esp32h4
- esp32c5
- esp32c61

View File

@@ -90,5 +90,3 @@
- windows
specific_rules:
- if-schedule-test-build-system-windows
patterns:
- build_system_win

View File

@@ -3,6 +3,7 @@
image: $ESP_ENV_IMAGE
tags: [ deploy ]
# Check this before push_to_github
check_submodule_sync:
extends:
- .deploy_job_template
@@ -18,6 +19,7 @@ check_submodule_sync:
dependencies: []
script:
- git submodule deinit --force .
- rm -rf .git/modules # remove all the cached metadata
# setting the default remote URL to the public one, to resolve relative location URLs
- git config remote.origin.url ${PUBLIC_IDF_URL}
# check if all submodules are correctly synced to public repository
@@ -30,9 +32,8 @@ push_to_github:
extends:
- .deploy_job_template
- .before_script:minimal
- .rules:protected:deploy
- .rules:push_to_github
needs:
# submodule must be synced before pushing to github
- check_submodule_sync
tags: [ brew, github_sync ]
variables:
@@ -45,16 +46,12 @@ push_to_github:
- git remote remove github &>/dev/null || true
- git remote add github git@github.com:espressif/esp-idf.git
- tools/ci/push_to_github.sh
environment:
name: push_to_github_production
deployment_tier: production
url: "https://github.com/espressif/esp-idf"
deploy_update_SHA_in_esp-dockerfiles:
extends:
- .deploy_job_template
- .before_script:minimal
- .rules:protected:deploy
- .rules:protected-no_label-always
dependencies: []
variables:
GIT_DEPTH: 2
@@ -63,6 +60,3 @@ deploy_update_SHA_in_esp-dockerfiles:
- 'curl --header "PRIVATE-TOKEN: ${ESPCI_SCRIPTS_TOKEN}" -o create_MR_in_esp_dockerfile.sh $GITLAB_HTTP_SERVER/api/v4/projects/1260/repository/files/create_MR_in_esp_dockerfile%2Fcreate_MR_in_esp_dockerfile.sh/raw\?ref\=master'
- chmod +x create_MR_in_esp_dockerfile.sh
- ./create_MR_in_esp_dockerfile.sh
environment:
name: eploy_update_SHA_in_esp-dockerfiles_production
deployment_tier: production

View File

@@ -4,10 +4,10 @@
- "**/*.rst"
- "CONTRIBUTING.rst"
- "**/soc_caps.h"
- "**/Kconfig*"
.patterns-docs-partial: &patterns-docs-partial
- "components/**/*.h"
- "components/**/Kconfig*"
- "components/**/CMakeList.txt"
- "components/**/sdkconfig*"
- "tools/tools.json"
@@ -19,9 +19,12 @@
.patterns-docs-preview: &patterns-docs-preview
- "docs/**/*"
.if-protected-check: &if-protected-check
.if-protected: &if-protected
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/)'
.if-protected-no_label: &if-protected-no_label
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) && $BOT_TRIGGER_WITH_LABEL == null'
.if-qa-test-tag: &if-qa-test-tag
if: '$CI_COMMIT_TAG =~ /^qa-test/'
@@ -38,7 +41,7 @@
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build_docs
- <<: *if-label-docs_full
- <<: *if-dev-push
@@ -61,7 +64,7 @@ check_readme_links:
tags: ["build", "amd64", "internet"]
allow_failure: true
rules:
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-example-readme
script:
@@ -85,15 +88,13 @@ check_docs_lang_sync:
artifacts: false
optional: true
script:
- if [ -n "${BREATHE_ALT_INSTALL_URL_PY39}" ]; then
pip uninstall -y breathe && pip install -U ${BREATHE_ALT_INSTALL_URL_PY39};
fi
- if [ -n "${BREATHE_ALT_INSTALL_URL}" ]; then pip uninstall -y breathe && pip install -U ${BREATHE_ALT_INSTALL_URL}; fi
- cd docs
- build-docs -t $DOCTGT -bs $DOC_BUILDERS -l $DOCLANG build
parallel:
matrix:
- DOCLANG: ["en", "zh_CN"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp32c2", "esp32c6", "esp32c61", "esp32c5", "esp32h2", "esp32h4", "esp32h21", "esp32p4"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp32c2", "esp32c6", "esp32c61", "esp32c5","esp32h2", "esp32p4"]
check_docs_gh_links:
image: $ESP_IDF_DOC_ENV_IMAGE
@@ -179,17 +180,14 @@ deploy_docs_preview:
DOCS_DEPLOY_SERVER_USER: "$DOCS_SERVER_USER"
DOCS_DEPLOY_PATH: "$DOCS_PATH"
DOCS_DEPLOY_URL_BASE: "https://$DOCS_PREVIEW_SERVER_URL/docs/esp-idf"
environment:
name: deploy_docs_preview
deployment_tier: staging
url: "https://$DOCS_PREVIEW_SERVER_URL/docs/esp-idf"
# stage: post_deploy
deploy_docs_production:
# The DOCS_PROD_* variables used by this job are "Protected" so these branches must all be marked "Protected" in Gitlab settings
extends:
- .deploy_docs_template
- .rules:protected:deploy
rules:
- <<: *if-protected-no_label
stage: post_deploy
dependencies: # set dependencies to null to avoid missing artifacts issue
needs: # ensure runs after push_to_github succeeded
@@ -204,15 +202,12 @@ deploy_docs_production:
DOCS_DEPLOY_PATH: "$DOCS_PROD_PATH"
DOCS_DEPLOY_URL_BASE: "https://docs.espressif.com/projects/esp-idf"
DEPLOY_STABLE: 1
environment:
name: deploy_docs_production
deployment_tier: production
url: "https://docs.espressif.com/projects/esp-idf"
check_doc_links:
extends:
- .build_docs_template
- .rules:protected:deploy
rules:
- <<: *if-protected-no_label
stage: post_deploy
needs:
- job: deploy_docs_production

View File

@@ -33,8 +33,6 @@ check_public_headers:
- IDF_TARGET=esp32h2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32p4 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32c61 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32h21 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32h4 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
test_nvs_coverage:
extends:
@@ -207,14 +205,10 @@ test_tools:
- pytest --noconftest test_idf_py.py --junitxml=${IDF_PATH}/XUNIT_IDF_PY.xml || stat=1
- pytest --noconftest test_hints.py --junitxml=${IDF_PATH}/XUNIT_HINTS.xml || stat=1
- pytest --noconftest test_idf_qemu.py --junitxml=${IDF_PATH}/XUNIT_IDF_PY_QEMU.xml || stat=1
- cd ${IDF_PATH}/tools/test_bsasm
- pytest --noconftest test_bsasm.py --junitxml=${IDF_PATH}/XUNIT_BSASM.xml || stat=1
- cd ${IDF_PATH}/tools/test_mkdfu
- pytest --noconftest test_mkdfu.py --junitxml=${IDF_PATH}/XUNIT_MKDFU.xml || stat=1
- cd ${IDF_PATH}/tools/test_idf_size
- pytest --noconftest test_idf_size.py --junitxml=${IDF_PATH}/XUNIT_IDF_SIZE.xml || stat=1
- cd ${IDF_PATH}/tools/test_idf_diag
- pytest --noconftest test_idf_diag.py --junitxml=${IDF_PATH}/XUNIT_IDF_DIAG.xml || stat=1
- cd ${IDF_PATH}
- shellcheck -s sh tools/detect_python.sh || stat=1
- shellcheck -s bash tools/detect_python.sh || stat=1
@@ -292,11 +286,8 @@ test_pytest_qemu:
matrix:
- IDF_TARGET: "esp32"
INSTALL_EXTRA_TOOLS: "qemu-xtensa"
# Skip Clang + Xtensa tests due to bootloader size issue
IDF_TOOLCHAIN: [gcc]
- IDF_TARGET: "esp32c3"
INSTALL_EXTRA_TOOLS: "qemu-riscv32"
IDF_TOOLCHAIN: [gcc, clang]
script:
- run_cmd python tools/ci/ci_build_apps.py . -v
--target $IDF_TARGET
@@ -349,7 +340,7 @@ test_pytest_macos:
- .host_test_template
- .before_script:build:macos
tags:
- macos
- macos_shell
artifacts:
paths:
- XUNIT_RESULT.xml
@@ -358,24 +349,19 @@ test_pytest_macos:
reports:
junit: XUNIT_RESULT.xml
variables:
PYENV_VERSION: "3.9"
PYTEST_IGNORE_COLLECT_IMPORT_ERROR: "1"
# Workaround for a bug in Parallels executor where CI_PROJECT_DIR is not an absolute path,
# but a relative path to the build directory (builds/espressif/esp-idf instead of ~/builds/espressif/esp-idf.
# GitLab sets the project dir to this template `<builds_dir>/<namespace>/<project_name>`
IDF_PATH: "/Users/espressif/builds/espressif/esp-idf"
script:
- run_cmd python tools/ci/ci_build_apps.py components examples tools/test_apps -v
--target linux
--pytest-apps
-m \"host_test and macos\"
-m \"host_test and macos_shell\"
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- python tools/ci/get_known_failure_cases_file.py
- run_cmd pytest
--target linux
-m \"host_test and macos\"
-m \"host_test and macos_shell\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--app-info-filepattern \"list_job_*.txt\"

View File

@@ -1,32 +1,13 @@
.post_deploy_template:
stage: post_deploy
image: $ESP_ENV_IMAGE
generate_failed_jobs_report:
extends:
- .post_deploy_template
stage: post_deploy
tags: [build, shiny]
image: $ESP_ENV_IMAGE
when: always
dependencies: [] # Do not download artifacts from the previous stages
artifacts:
expire_in: 2 week
expire_in: 1 week
when: always
paths:
- job_report.html
script:
- python tools/ci/dynamic_pipelines/scripts/generate_report.py --report-type job
sync_support_status:
extends:
- .post_deploy_template
- .rules:master:push
tags: [ brew, github_sync ]
needs:
- push_to_github
cache: []
before_script: []
script:
- curl --fail --request POST --form token="$IDF_STATUS_TRIG_TOKEN" --form ref="$IDF_STATUS_BRANCH" --form "variables[UPLOAD_TO_S3]=true" "$IDF_STATUS_TRIG_URL"
environment:
name: sync_support_status_production
deployment_tier: production

View File

@@ -10,7 +10,7 @@ check_version:
# esp_idf_version.h in a branch before tagging the next version.
extends:
- .pre_check_template
- .rules:protected:check
- .rules:protected
tags: [ brew, github_sync ]
variables:
# need a full clone to get the latest tag
@@ -72,7 +72,7 @@ check_chip_support_components:
expire_in: 1 week
script:
- python tools/ci/check_soc_headers_leak.py
- find ${IDF_PATH}/components/soc/**/include/soc/ ${IDF_PATH}/components/soc/**/register/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
- find ${IDF_PATH}/components/soc/**/include/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
- tools/ci/check_esp_memory_utils_headers.sh
check_esp_err_to_name:

View File

@@ -35,7 +35,6 @@
# Add folders excluded by "???[!t]" and "??[!s]?"
# pre-commit: tools/ci/check_rules_components_patterns.py
- "components/bt/host/**/*"
- "components/esp_psram/system_layer/*"
.patterns-downloadable-tools: &patterns-downloadable-tools
- "tools/idf_tools.py"
@@ -56,9 +55,6 @@
- "tools/ci/ci_build_apps.py"
- "tools/test_build_system/**/*"
.patterns-build_system_win: &patterns-build_system_win
- "tools/test_build_system/**/*"
.patterns-build_macos: &patterns-build_macos
- "tools/ci/test_configure_ci_environment.sh"
@@ -72,7 +68,6 @@
- "tools/ci/check_public_headers.py"
- "tools/ci/check_register_rw_half_word.cmake"
- "tools/ci/check_register_rw_half_word.py"
- "examples/build_system/**/*"
.patterns-host_test: &patterns-host_test
- ".gitlab/ci/host-test.yml"
@@ -97,8 +92,6 @@
- "tools/idf_size.py"
- "tools/test_idf_size/**/*"
- "tools/test_idf_diag/**/*"
- "tools/tools.json"
- "tools/tools_schema.json"
- "tools/idf_tools.py"
@@ -131,9 +124,6 @@
- "tools/check_python_dependencies.py"
- "tools/bsasm.py"
- "tools/test_bsasm/**/*"
.patterns-docker: &patterns-docker
- "tools/docker/**/*"
@@ -170,19 +160,19 @@
##############
# if anchors #
##############
.if-master-push: &if-master-push
if: '$CI_COMMIT_REF_NAME == "master" && $CI_PIPELINE_SOURCE == "push"'
.if-ref-master: &if-ref-master
if: '$CI_COMMIT_REF_NAME == "master"'
.if-release-tag: &if-release-tag
.if-tag-release: &if-tag-release
if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/'
.if-protected-check: &if-protected-check
.if-protected: &if-protected
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) || $CI_COMMIT_TAG =~ /^qa-test/'
.if-protected-deploy: &if-protected-deploy
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "api")'
.if-protected-no_label: &if-protected-no_label
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) && $BOT_TRIGGER_WITH_LABEL == null'
.if-protected-branch-push: &if-protected-branch-push
.if-protected-ref-push: &if-protected-ref-push
# rules:changes always evaluates to true for new branch pipelines or when there is no Git push event
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/) && $CI_PIPELINE_SOURCE == "push"'
@@ -192,6 +182,9 @@
.if-dev-push: &if-dev-push
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
.if-schedule: &if-schedule
if: '$CI_PIPELINE_SOURCE == "schedule"'
.if-schedule-nightly: &if-schedule-nightly
if: '$CI_PIPELINE_SOURCE == "schedule" && $INCLUDE_NIGHTLY_RUN == "1"'
@@ -211,41 +204,46 @@
# Rules #
#########
### Branches ###
.rules:protected:check:
.rules:protected:
rules:
- <<: *if-protected-check
- <<: *if-protected
.rules:protected:deploy:
.rules:push_to_github:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-protected-deploy
- <<: *if-protected-no_label
.rules:master:push:
.rules:protected-no_label-always:
rules:
- <<: *if-master-push
- <<: *if-qa-test-tag
when: never
- <<: *if-protected-no_label
when: always
.rules:tag:release:
rules:
- <<: *if-release-tag
- <<: *if-tag-release
.rules:dev-push:
rules:
- <<: *if-dev-push
# Do not upload caches on dev branches by default
.rules:upload-python-cache:
rules:
- <<: *if-release-tag
- <<: *if-tag-release
- <<: *if-schedule-nightly
- <<: *if-protected-branch-push
- <<: *if-protected-ref-push
changes: *patterns-python-cache
- <<: *if-label-upload_cache
when: manual
.rules:upload-submodule-cache:
rules:
- <<: *if-release-tag
- <<: *if-protected-branch-push
# Needn't upload submodule cache in schedule pipeline
- <<: *if-tag-release
- <<: *if-protected-ref-push
changes: *patterns-submodule
- <<: *if-label-upload_cache
when: manual
@@ -253,10 +251,16 @@
### Patterns ###
.rules:patterns:clang_tidy:
rules:
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-c-files
.rules:patterns:python-files:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-python-files
#.rules:patterns:static-code-analysis-preview:
# rules:
# - <<: *if-dev-push
@@ -268,7 +272,7 @@
.rules:patterns:idf-pytest-plugin:
rules:
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-idf-pytest-plugin
@@ -312,7 +316,7 @@
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build
- <<: *if-dev-push
changes: *patterns-build_components
@@ -325,7 +329,7 @@
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build
- <<: *if-dev-push
changes: *patterns-build_check
@@ -340,7 +344,7 @@
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build
- <<: *if-label-docker
- <<: *if-dev-push
@@ -356,7 +360,7 @@
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build
- <<: *if-label-macos
- <<: *if-label-macos_test
@@ -371,7 +375,7 @@
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build
- <<: *if-dev-push
changes: *patterns-build_components
@@ -394,14 +398,12 @@
when: never
- <<: *if-schedule-test-build-system-windows
- <<: *if-label-windows
- <<: *if-dev-push
changes: *patterns-build_system_win
.rules:test:host_test:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-host_test
@@ -412,7 +414,7 @@
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected-check
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-submodule

View File

@@ -16,6 +16,28 @@ clang_tidy_check:
--limit-file tools/ci/static-analysis-rules.yml
--xtensa-include-dir
check_pylint:
extends:
- .pre_check_template
- .rules:patterns:python-files
needs:
- pipeline_variables
artifacts:
reports:
codequality: pylint.json
paths:
- pylint.json
expire_in: 1 week
when: always
script:
- |
if [ -n "$CI_MERGE_REQUEST_IID" ]; then
export files=$(echo "$GIT_DIFF_OUTPUT" | grep ".py$" | xargs);
else
export files=$(git ls-files "*.py" | xargs);
fi
- if [ -z "$files" ]; then echo "No python files found"; exit 0; fi
- run_cmd pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate:pylint.json $files
#
## build stage
## Sonarqube related jobs put here for this reason:
@@ -85,7 +107,7 @@ clang_tidy_check:
#code_quality_report:
# extends:
# - .sonar_scan_template
# - .rules:protected:check
# - .rules:protected
# allow_failure: true # it's using exit code to indicate the code analysis result,
# # we don't want to block ci when critical issues founded
# script:

View File

@@ -18,12 +18,9 @@
after_script: []
test_cli_installer_win:
rules:
- when: never
extends:
- .host_test_win_template
- .rules:labels:windows_pytest_build_system
allow_failure: true
artifacts:
when: on_failure
paths:
@@ -32,7 +29,6 @@ test_cli_installer_win:
expire_in: 1 week
variables:
IDF_PATH: "$CI_PROJECT_DIR"
timeout: 3h
script:
# Tools must be downloaded for testing
# cmake@version that is supported

View File

@@ -27,6 +27,3 @@ Test Case Filters:
# This example will include all tests containing 'test_hello_world' in the name,
# and include all tests containing 'test_sdm' but not 'sdmmc' in the name.
``` --><!-- Optional -->
<!-- Don't remove the next line - assigns the MR author as the assignee -->
/assign me

View File

@@ -60,6 +60,3 @@ _If there are any breaking changes, please mention it here. Talking about (1) wh
_Please strictly follow the breaking change restriction, which means, if there is a breaking change but you are merging to non-major versions, you have to separate the breaking part out to another MR for a major version. The breaking change subsection is only accepted in MRs merging to major versions._
* [VFS/UART] Now vfs_uart_set_rts_cts accept one more instance argument, to support configuration to different ports.
<!-- Don't remove the next line - assigns the MR author as the assignee -->
/assign me

8
.gitmodules vendored
View File

@@ -49,15 +49,13 @@
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = ../../DaveGamble/cJSON.git
sbom-version = 1.7.18
sbom-version = 1.7.19
sbom-cpe = cpe:2.3:a:cjson_project:cjson:{}:*:*:*:*:*:*:*
sbom-cpe = cpe:2.3:a:davegamble:cjson:{}:*:*:*:*:*:*:*
sbom-supplier = Person: Dave Gamble
sbom-url = https://github.com/DaveGamble/cJSON
sbom-description = Ultralightweight JSON parser in ANSI C
sbom-hash = 8f2beb57ddad1f94bed899790b00f46df893ccac
sbom-cve-exclude-list = CVE-2024-31755 Resolved in v1.7.18
sbom-cve-exclude-list = CVE-2023-26819 Resolved in commit a328d65ad490b64da8c87523cbbfe16050ba5bf6
sbom-cve-exclude-list = CVE-2023-53154 Resolved in v1.7.18
sbom-hash = c859b25da02955fef659d658b8f324b5cde87be3
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls

View File

@@ -1,35 +1,9 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_stages: [pre-commit]
default_stages: [commit]
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.9.7"
hooks:
- id: ruff-format
- id: ruff
args: [ "--fix" ]
- repo: local
hooks:
- id: pytest-linter
name: Pytest Linter Check
entry: tools/ci/check_test_files.py
language: python
files: 'pytest_.*\.py$'
require_serial: true
additional_dependencies:
- pytest-embedded-idf[serial]~=1.16
- pytest-embedded-jtag~=1.16
- pytest-embedded-qemu~=1.16
- pytest-ignore-test-results~=0.3
- pytest-rerunfailures
- pytest-timeout
- idf-build-apps~=2.8
- python-gitlab
- minio
- click
- esp-idf-monitor
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
@@ -40,7 +14,6 @@ repos:
# 2 - any file matching *test*/*expected* (for host tests, if possible use this naming pattern always)
# 3 - any directory named 'testdata'
# 4 - protobuf auto-generated files
# 5 - COPYING files
exclude: &whitespace_excludes |
(?x)^(
.+\.(md|rst|map|bin)|
@@ -51,7 +24,6 @@ repos:
.*.pb-c.c|
.*.yuv|
.*.rgb|
.*COPYING.*|
docs/sphinx-known-warnings\.txt
)$
- id: end-of-file-fixer
@@ -66,10 +38,26 @@ repos:
- id: no-commit-to-branch
name: Do not use uppercase letters in the branch name
args: ['--pattern', '^[^A-Z]*[A-Z]']
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/asottile/reorder-python-imports
rev: v3.12.0
hooks:
- id: reorder-python-imports
name: Reorder Python imports
args: [--py38-plus]
exclude: >
(?x)^(
.*_pb2.py
)$
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
exclude: ^docs/sphinx-known-warnings\.txt$
- repo: local
hooks:
- id: check-executables
@@ -163,7 +151,7 @@ repos:
require_serial: true
additional_dependencies:
- PyYAML == 5.3.1
- idf-build-apps>=2.8,<3
- idf-build-apps~=2.5
- id: sort-yaml-files
name: sort yaml files
entry: tools/ci/sort_yaml.py
@@ -207,12 +195,12 @@ repos:
- id: file-contents-sorter
files: 'tools\/ci\/(executable-list\.txt|mypy_ignore_list\.txt|check_copyright_ignore\.txt)'
- repo: https://github.com/espressif/check-copyright/
rev: v1.1.1
rev: v1.0.3
hooks:
- id: check-copyright
args: ['--ignore', 'tools/ci/check_copyright_ignore.txt', '--config', 'tools/ci/check_copyright_config.yaml']
- repo: https://github.com/espressif/conventional-precommit-linter
rev: v1.10.0
rev: v1.7.0
hooks:
- id: conventional-precommit-linter
stages: [commit-msg]

641
.pylintrc Normal file
View File

@@ -0,0 +1,641 @@
[MAIN]
# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no
# Clear in-memory caches upon conclusion of linting. Useful if running pylint
# in a server-like mode.
clear-cache-post-run=no
# Load and enable all available extensions. Use --list-extensions to see a list
# all available extensions.
#enable-all-extensions=
# In error mode, messages with a category besides ERROR or FATAL are
# suppressed, and no reports are done by default. Error mode is compatible with
# disabling specific errors.
#errors-only=
# Always return a 0 (non-error) status code, even if lint errors are found.
# This is primarily useful in continuous integration scripts.
#exit-zero=
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-allow-list=
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
# for backward compatibility.)
extension-pkg-whitelist=
# Return non-zero exit code if any of these messages/categories are detected,
# even if score is above --fail-under value. Syntax same as enable. Messages
# specified are enabled, while categories only check already-enabled messages.
fail-on=
# Specify a score threshold under which the program will exit with error.
fail-under=10
# Interpret the stdin as a python script, whose filename needs to be passed as
# the module_or_package argument.
#from-stdin=
# Files or directories to be skipped. They should be base names, not paths.
ignore=CVS
# Add files or directories matching the regular expressions patterns to the
# ignore-list. The regex matches against paths and can be in Posix or Windows
# format. Because '\\' represents the directory delimiter on Windows systems,
# it can't be used as an escape character.
ignore-paths=
# Files or directories matching the regular expression patterns are skipped.
# The regex matches against base names, not paths. The default value ignores
# Emacs file locks
ignore-patterns=^\.#
# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis). It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use, and will cap the count on Windows to
# avoid hangs.
jobs=1
# Control the amount of potential inferred values when inferring a single
# object. This can help the performance when dealing with large functions or
# complex, nested conditions.
limit-inference-results=100
# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=
# Pickle collected data for later comparisons.
persistent=yes
# Minimum Python version to use for version dependent checks. Will default to
# the version used to run pylint.
py-version=3.8
# Discover python modules and packages in the file system subtree.
recursive=no
# Add paths to the list of the source roots. Supports globbing patterns. The
# source root is an absolute path or a path relative to the current working
# directory used to determine a package namespace for modules located under the
# source root.
source-roots=
# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes
# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
# In verbose mode, extra non-checker-related info will be displayed.
#verbose=
[BASIC]
# Naming style matching correct argument names.
argument-naming-style=snake_case
# Regular expression matching correct argument names. Overrides argument-
# naming-style. If left empty, argument names will be checked with the set
# naming style.
#argument-rgx=
# Naming style matching correct attribute names.
attr-naming-style=snake_case
# Regular expression matching correct attribute names. Overrides attr-naming-
# style. If left empty, attribute names will be checked with the set naming
# style.
#attr-rgx=
# Bad variable names which should always be refused, separated by a comma.
bad-names=foo,
bar,
baz,
toto,
tutu,
tata
# Bad variable names regexes, separated by a comma. If names match any regex,
# they will always be refused
bad-names-rgxs=
# Naming style matching correct class attribute names.
class-attribute-naming-style=any
# Regular expression matching correct class attribute names. Overrides class-
# attribute-naming-style. If left empty, class attribute names will be checked
# with the set naming style.
#class-attribute-rgx=
# Naming style matching correct class constant names.
class-const-naming-style=UPPER_CASE
# Regular expression matching correct class constant names. Overrides class-
# const-naming-style. If left empty, class constant names will be checked with
# the set naming style.
#class-const-rgx=
# Naming style matching correct class names.
class-naming-style=PascalCase
# Regular expression matching correct class names. Overrides class-naming-
# style. If left empty, class names will be checked with the set naming style.
#class-rgx=
# Naming style matching correct constant names.
const-naming-style=UPPER_CASE
# Regular expression matching correct constant names. Overrides const-naming-
# style. If left empty, constant names will be checked with the set naming
# style.
#const-rgx=
# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1
# Naming style matching correct function names.
function-naming-style=snake_case
# Regular expression matching correct function names. Overrides function-
# naming-style. If left empty, function names will be checked with the set
# naming style.
#function-rgx=
# Good variable names which should always be accepted, separated by a comma.
good-names=i,
j,
k,
ex,
Run,
_
# Good variable names regexes, separated by a comma. If names match any regex,
# they will always be accepted
good-names-rgxs=
# Include a hint for the correct naming format with invalid-name.
include-naming-hint=no
# Naming style matching correct inline iteration names.
inlinevar-naming-style=any
# Regular expression matching correct inline iteration names. Overrides
# inlinevar-naming-style. If left empty, inline iteration names will be checked
# with the set naming style.
#inlinevar-rgx=
# Naming style matching correct method names.
method-naming-style=snake_case
# Regular expression matching correct method names. Overrides method-naming-
# style. If left empty, method names will be checked with the set naming style.
#method-rgx=
# Naming style matching correct module names.
module-naming-style=snake_case
# Regular expression matching correct module names. Overrides module-naming-
# style. If left empty, module names will be checked with the set naming style.
#module-rgx=
# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=
# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=^_
# List of decorators that produce properties, such as abc.abstractproperty. Add
# to this list to register other decorators that produce valid properties.
# These decorators are taken in consideration only for invalid-name.
property-classes=abc.abstractproperty
# Regular expression matching correct type alias names. If left empty, type
# alias names will be checked with the set naming style.
#typealias-rgx=
# Regular expression matching correct type variable names. If left empty, type
# variable names will be checked with the set naming style.
#typevar-rgx=
# Naming style matching correct variable names.
variable-naming-style=snake_case
# Regular expression matching correct variable names. Overrides variable-
# naming-style. If left empty, variable names will be checked with the set
# naming style.
#variable-rgx=
[CLASSES]
# Warn about protected attribute access inside special methods
check-protected-access-in-special-methods=no
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,
__new__,
setUp,
asyncSetUp,
__post_init__
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,_fields,_replace,_source,_make,os._exit
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=mcs
[DESIGN]
# List of regular expressions of class ancestor names to ignore when counting
# public methods (see R0903)
exclude-too-few-public-methods=
# List of qualified class names to ignore when counting class parents (see
# R0901)
ignored-parents=
# Maximum number of arguments for function / method.
max-args=5
# Maximum number of attributes for a class (see R0902).
max-attributes=7
# Maximum number of boolean expressions in an if statement (see R0916).
max-bool-expr=5
# Maximum number of branch for function / method body.
max-branches=12
# Maximum number of locals for function / method body.
max-locals=15
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
# Maximum number of return / yield for function / method body.
max-returns=6
# Maximum number of statements in function / method body.
max-statements=50
# Minimum number of public methods for a class (see R0903).
min-public-methods=2
[EXCEPTIONS]
# Exceptions that will emit a warning when caught.
overgeneral-exceptions=builtins.BaseException,builtins.Exception
[FORMAT]
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Maximum number of characters on a single line.
max-line-length=160
# Maximum number of lines in a module.
max-module-lines=1000
# Allow the body of a class to be on the same line as the declaration if body
# contains single statement.
single-line-class-stmt=no
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
[IMPORTS]
# List of modules that can be imported at any level, not just the top level
# one.
allow-any-import-level=
# Allow explicit reexports by alias from a package __init__.
allow-reexport-from-package=no
# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=no
# Deprecated modules which should not be used, separated by a comma.
deprecated-modules=
# Output a graph (.gv or any supported image format) of external dependencies
# to the given file (report RP0402 must not be disabled).
ext-import-graph=
# Output a graph (.gv or any supported image format) of all (i.e. internal and
# external) dependencies to the given file (report RP0402 must not be
# disabled).
import-graph=
# Output a graph (.gv or any supported image format) of internal dependencies
# to the given file (report RP0402 must not be disabled).
int-import-graph=
# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=
# Force import order to recognize a module as part of a third party library.
known-third-party=enchant
# Couples of modules and preferred modules, separated by a comma.
preferred-modules=
[LOGGING]
# The type of string formatting that logging methods do. `old` means using %
# formatting, `new` is for `{}` formatting.
logging-format-style=old
# Logging modules to check that the string format arguments are in logging
# function parameter format.
logging-modules=logging
[MESSAGES CONTROL]
# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,
# UNDEFINED.
confidence=HIGH,
CONTROL_FLOW,
INFERENCE,
INFERENCE_FAILURE,
UNDEFINED
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then re-enable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
disable=raw-checker-failed,
bad-inline-option,
locally-disabled,
file-ignored,
suppressed-message,
useless-suppression,
deprecated-pragma,
use-symbolic-message-instead,
missing-function-docstring, # Modified since here, include this line
missing-class-docstring,
missing-module-docstring,
wrong-import-order,
invalid-name,
too-few-public-methods,
too-many-locals,
ungrouped-imports, # since we have isort in pre-commit
no-name-in-module, # since we have flake8 to check this
too-many-instance-attributes,
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=c-extension-no-member
[METHOD_ARGS]
# List of qualified names (i.e., library.method) which require a timeout
# parameter e.g. 'requests.api.get,requests.api.post'
timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request
[MISCELLANEOUS]
# List of note tags to take in consideration, separated by a comma.
notes=FIXME,
XXX,
TODO
# Regular expression of note tags to take in consideration.
notes-rgx=
[REFACTORING]
# Maximum number of nested blocks for function / method body
max-nested-blocks=5
# Complete name of functions that never returns. When checking for
# inconsistent-return-statements if a never returning function is called then
# it will be considered as an explicit return statement and no message will be
# printed.
never-returning-functions=sys.exit,argparse.parse_error
[REPORTS]
# Python expression which should return a score less than or equal to 10. You
# have access to the variables 'fatal', 'error', 'warning', 'refactor',
# 'convention', and 'info' which contain the number of messages in each
# category, as well as 'statement' which is the total number of statements
# analyzed. This score is used by the global evaluation report (RP0004).
evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))
# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details.
msg-template=
# Set the output format. Available formats are text, parseable, colorized, json
# and msvs (visual studio). You can also give a reporter class, e.g.
# mypackage.mymodule.MyReporterClass.
#output-format=
# Tells whether to display a full report or only the messages.
reports=no
# Activate the evaluation score.
score=yes
[SIMILARITIES]
# Comments are removed from the similarity computation
ignore-comments=yes
# Docstrings are removed from the similarity computation
ignore-docstrings=yes
# Imports are removed from the similarity computation
ignore-imports=yes
# Signatures are removed from the similarity computation
ignore-signatures=yes
# Minimum lines number of a similarity.
min-similarity-lines=4
[SPELLING]
# Limits count of emitted suggestions for spelling mistakes.
max-spelling-suggestions=4
# Spelling dictionary name. No available dictionaries : You need to install
# both the python package and the system dependency for enchant to work..
spelling-dict=
# List of comma separated words that should be considered directives if they
# appear at the beginning of a comment and should not be checked.
spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:
# List of comma separated words that should not be checked.
spelling-ignore-words=
# A path to a file that contains the private dictionary; one word per line.
spelling-private-dict-file=
# Tells whether to store unknown words to the private dictionary (see the
# --spelling-private-dict-file option) instead of raising a message.
spelling-store-unknown-words=no
[STRING]
# This flag controls whether inconsistent-quotes generates a warning when the
# character used as a quote delimiter is used inconsistently within a module.
check-quote-consistency=no
# This flag controls whether the implicit-str-concat should generate a warning
# on implicit string concatenation in sequences defined over several lines.
check-str-concat-over-line-jumps=no
[TYPECHECK]
# List of decorators that produce context managers, such as
# contextlib.contextmanager. Add to this list to register other decorators that
# produce valid context managers.
contextmanager-decorators=contextlib.contextmanager
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=
# Tells whether to warn about missing members when the owner of the attribute
# is inferred to be None.
ignore-none=yes
# This flag controls whether pylint should warn about no-member and similar
# checks whenever an opaque object is returned when inferring. The inference
# can return multiple potential results while evaluating a Python object, but
# some branches might not be evaluated, which results in partial inference. In
# that case, it might be useful to still emit no-member and other checks for
# the rest of the inferred objects.
ignore-on-opaque-inference=yes
# List of symbolic message names to ignore for Mixin members.
ignored-checks-for-mixins=no-member,
not-async-context-manager,
not-context-manager,
attribute-defined-outside-init
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
# Show a hint with possible names when a member name was not found. The aspect
# of finding the hint is based on edit distance.
missing-member-hint=yes
# The minimum edit distance a name should have in order to be considered a
# similar match for a missing member name.
missing-member-hint-distance=1
# The total number of similar names that should be taken in consideration when
# showing a hint for a missing member.
missing-member-max-choices=1
# Regex pattern to define which classes are considered mixins.
mixin-class-rgx=.*[Mm]ixin
# List of decorators that change the signature of a decorated function.
signature-mutators=
[VARIABLES]
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid defining new builtins when possible.
additional-builtins=
# Tells whether unused global variables should be treated as a violation.
allow-global-unused-variables=yes
# List of names allowed to shadow builtins
allowed-redefined-builtins=
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,
_cb
# A regular expression matching the name of dummy variables (i.e. expected to
# not be used).
dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
# Argument names that match this expression will be ignored.
ignored-argument-names=_.*|^ignored_|^unused_
# Tells whether we should check for unused import in __init__ files.
init-import=no
# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io

View File

@@ -15,7 +15,7 @@ python:
install:
- requirements: docs/requirements.txt
# We need to list all the submodules included in documentation build by Doxygen
# We need to list all the submodules included in documenation build by Doxygen
submodules:
include:
- components/mqtt/esp-mqtt

View File

@@ -13,38 +13,7 @@ endif()
# Add the following build specifications here, since these seem to be dependent
# on config values on the root Kconfig.
if(BOOTLOADER_BUILD)
if(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-Oz")
else()
list(APPEND compile_options "-Os")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-freorder-blocks")
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-Og")
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CONFIG_IDF_TARGET_LINUX)
list(APPEND compile_options "-fno-shrink-wrap") # Disable shrink-wrapping to reduce binary size
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF)
list(APPEND compile_options "-O2")
endif()
elseif(ESP_TEE_BUILD)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-Oz")
else()
list(APPEND compile_options "-Os")
list(APPEND compile_options "-freorder-blocks")
endif()
else()
if(NOT BOOTLOADER_BUILD)
if(CONFIG_COMPILER_OPTIMIZATION_SIZE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
@@ -66,6 +35,28 @@ else()
list(APPEND compile_options "-O2")
endif()
else() # BOOTLOADER_BUILD
if(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-Oz")
else()
list(APPEND compile_options "-Os")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-freorder-blocks")
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-Og")
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CONFIG_IDF_TARGET_LINUX)
list(APPEND compile_options "-fno-shrink-wrap") # Disable shrink-wrapping to reduce binary size
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF)
list(APPEND compile_options "-O2")
endif()
endif()
if(CONFIG_COMPILER_CXX_EXCEPTIONS)
@@ -207,13 +198,6 @@ if(CONFIG_ESP_SYSTEM_USE_EH_FRAME)
list(APPEND link_options "-Wl,--eh-frame-hdr")
endif()
if(CONFIG_ESP_SYSTEM_USE_FRAME_POINTER)
list(APPEND compile_options "-fno-omit-frame-pointer")
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-mno-omit-leaf-frame-pointer")
endif()
endif()
list(APPEND link_options "-fno-lto")
if(CONFIG_IDF_TARGET_LINUX AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")

View File

@@ -8,9 +8,9 @@ This document describes the compatibility between ESP-IDF releases and Espressif
NOTE: This document on release branches may be out-of-date. Check the [Compatibility file on master](https://github.com/espressif/esp-idf/blob/master/COMPATIBILITY.md) for the most accurate information.
See [Compatibility Advisory for Chip Revision Numbering Scheme](https://www.espressif.com/sites/default/files/advisory_downloads/AR2022-005%20Compatibility%20Advisory%20for%20Chip%20Revision%20Numbering%20%20Scheme.pdf) on the versioning of Espressif SoC revisions.
See [Compatibility Advisory for Chip Revision Numbering Scheme](https://www.espressif.com.cn/sites/default/files/advisory_downloads/AR2022-005%20Compatibility%20Advisory%20for%20Chip%20Revision%20Numbering%20%20Scheme.pdf) on the versioning of Espressif SoC revisions.
You can run `esptool chip_id` to detect the series and revision of an SoC. See [SoC Errata](https://www.espressif.com/en/support/documents/technical-documents?keys=errata) for more on how to distinguish between chip revisions, and the improvements provided by chip revisions. And run `idf.py --version` to know the version of current ESP-IDF.
You can run `esptool chip_id` to detect the series and revision of an SoC. See [SoC Errata](https://www.espressif.com.cn/en/support/documents/technical-documents?keys=errata) for more on how to distinguish between chip revisions, and the improvements provided by chip revisions. And run `idf.py --version` to know the version of current ESP-IDF.
## ESP-IDF Support for Different Chip Revisions
@@ -97,49 +97,18 @@ Supported since ESP-IDF v5.0.
| release/v5.2 | v5.2.2+ | v5.2 |
| release/v5.3 and above | v5.3+ | v5.3 |
#### v2.0
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v5.0 | v5.0.8+ | v5.0.8 |
| release/v5.1 | v5.1.5+ | v5.1.5* |
| release/v5.2 | v5.2.4+ | v5.2.4 |
| release/v5.3 | v5.3.2+ | v5.3.2* |
| release/v5.4 and above | v5.4+ | v5.4 |
Note: IDF v5.1.5 and v5.3.2 are compatible with C2 v2.0. However the chip revision check hasn't been updated on these releases. Enable `ESP32C2_REV2_DEVELOPMENT` config to bypass the outdated check.
### ESP32-C6
#### v0.0, v0.1
Supported since ESP-IDF v5.1.
#### v0.2
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.5+ | v5.1 |
| release/v5.2 | v5.2.4+ | v5.2 |
| release/v5.3 | v5.3.2+ | v5.3 |
| release/v5.4 and above | v5.4+ | v5.4 |
### ESP32-H2
#### v0.1, v0.2
Supported since ESP-IDF v5.1.
#### v1.2
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.6+ | v5.1.6 |
| release/v5.2 | v5.2.5+ | v5.2.5 |
| release/v5.3 | v5.3.3+ | v5.3.3 |
| release/v5.4 | v5.4.1+ | v5.4.1 |
| release/v5.5 and above | v5.5+ | v5.5 |
## What If the ESP-IDF Version Is Lower than the `Required` Version?
Latest ESP-IDF versions can prevent from downloading to, or even execute binaries on unsupported chips. ESP-IDF of versions v4.4.5+, v5.0.1+, v5.1 and above have both esptool download check and bootloader loading check against the chip revision. While ESP-IDF v4.3.5 has only esptool downloading check.

View File

@@ -97,49 +97,18 @@
| release/v5.2 | v5.2.2+ | v5.1 |
| release/v5.3 及以上 | v5.3+ | v5.3 |
#### v2.0
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v5.0 | v5.0.8+ | v5.0.8 |
| release/v5.1 | v5.1.5+ | v5.1.5* |
| release/v5.2 | v5.2.4+ | v5.2.4 |
| release/v5.3 | v5.3.2+ | v5.3.2* |
| release/v5.4 及以上 | v5.4+ | v5.4 |
提示: IDF v5.1.5 及 v5.3.2 与 C2 v2.0 兼容,但芯片版本检查尚未在这些发布版本更新。使能 `ESP32C2_REV2_DEVELOPMENT` 选项来跳过这些过时的检查。
### ESP32-C6
#### v0.0, v0.1
从 ESP-IDF v5.1 开始支持。
#### v0.2
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.5+ | v5.1 |
| release/v5.2 | v5.2.4+ | v5.2 |
| release/v5.3 | v5.3.2+ | v5.3 |
| release/v5.4 及以上 | v5.4+ | v5.4 |
### ESP32-H2
#### v0.1, v0.2
从 ESP-IDF v5.1 开始支持。
#### v1.2
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.6+ | v5.1.6 |
| release/v5.2 | v5.2.5+ | v5.2.5 |
| release/v5.3 | v5.3.3+ | v5.3.3 |
| release/v5.4 | v5.4.1+ | v5.4.1 |
| release/v5.5 及以上 | v5.5+ | v5.5 |
## 如果 ESP-IDF 版本低于 `需求版本` 会出现什么情况?

32
Kconfig
View File

@@ -136,20 +136,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_ESP32H21
bool
default "y" if IDF_TARGET="esp32h21"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
select IDF_ENV_BRINGUP
config IDF_TARGET_ESP32H4
bool
default "y" if IDF_TARGET="esp32h4"
select IDF_TARGET_ARCH_RISCV
select IDF_ENV_FPGA
select IDF_ENV_BRINGUP
config IDF_TARGET_LINUX
bool
default "y" if IDF_TARGET="linux"
@@ -166,8 +152,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
default 0x0012 if IDF_TARGET_ESP32P4
default 0x0017 if IDF_TARGET_ESP32C5
default 0x0014 if IDF_TARGET_ESP32C61
default 0x0019 if IDF_TARGET_ESP32H21
default 0x001C if IDF_TARGET_ESP32H4
default 0xFFFF
@@ -646,7 +630,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
choice COMPILER_ORPHAN_SECTIONS
prompt "Orphan sections handling"
default COMPILER_ORPHAN_SECTIONS_ERROR
default COMPILER_ORPHAN_SECTIONS_WARNING
depends on !IDF_TARGET_LINUX
help
If the linker finds orphan sections, it attempts to place orphan sections after sections of the same
@@ -654,11 +638,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
That means that orphan sections could placed between sections defined in IDF linker scripts.
This could lead to corruption of the binary image. Configure the linker action here.
config COMPILER_ORPHAN_SECTIONS_ERROR
bool "Fail if orphan sections found"
help
Fails the link step with an error if orphan sections are detected.
config COMPILER_ORPHAN_SECTIONS_WARNING
bool "Place with warning"
help
@@ -680,13 +659,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
endmenu # Compiler Options
menu "Component config"
comment "!!! MINIMAL_BUILD is enabled !!!"
depends on "${IDF_MINIMAL_BUILD}"
comment "Only common components and those transitively required by the main component are listed"
depends on "${IDF_MINIMAL_BUILD}"
comment "If a component configuration is missing, please add it to the main component's requirements"
depends on "${IDF_MINIMAL_BUILD}"
source "$COMPONENT_KCONFIGS_SOURCE_FILE"
endmenu
@@ -707,5 +679,3 @@ mainmenu "Espressif IoT Development Framework Configuration"
- CONFIG_ESP_WIFI_EAP_TLS1_3
- CONFIG_ESP_WIFI_ENABLE_ROAMING_APP
- CONFIG_USB_HOST_EXT_PORT_RESET_ATTEMPTS
- CONFIG_LIBC_PICOLIBC
- CONFIG_GDMA_ENABLE_WEIGHTED_ARBITRATION

View File

@@ -1,6 +1,4 @@
# ESP-IDF Project Roadmap2025
* [中文版](./ROADMAP_CN.md)
# ESP-IDF Project Roadmap2024
This document outlines the goals of ESP-IDF project and is shared for the convenience of our customers. It is important to clarify that this document is not a binding commitment to our customers. Instead, its primary purpose is to offer a clear roadmap and direction for the project's development. By openly sharing this information, we aim to enhance our customers' understanding, promote transparency and ensure alignment with the overarching objectives of the ESP-IDF project.
@@ -12,28 +10,32 @@ In both minor and major releases, we integrate new chip support to enhance our p
Furthermore, we prioritize bugfix releases for active branches, focusing on improving the stability and performance of products already in production. By addressing bugs promptly, we aim to enhance the overall user experience and provide tangible benefits to customers relying on our solutions. This proactive maintenance strategy reflects our commitment to delivering reliable, high-quality products to our valued customer base.
Below are the main objectives that ESP-IDF project/teams would like to implement in 2025.
Below are the main objectives that ESP-IDF project/teams would like to implement in 2024.
- New Chip Support
- Add support for ESP32-P4
- Add support for ESP32-C5
- Add support for ESP32-C61
- More Minor/Major Releases
- More Minor Releases
- Release IDF v5.5 in the middle of 2025
- Release IDF v6.0 at the end of 2025
- Release IDF v5.3 in 2024
- Release IDF v5.4 at the start of 2025
- More Bugfix Releases
- Release v5.0.8 and v5.0.9 before ESP-IDF v5.0 goes End of Life in May 2025
- Release v5.1.6 and v5.1.7 before ESP-IDF v5.1 goes End of Life in December 2025
- Do more bugfix releases for IDF v5.2 and IDF v5.3 before release/5.2 and release/5.3 enter maintenance period
- Do more bug fixes releases for release/5.4 and release/5.5, and push the two releases to be more stable and production-ready
- Release v4.4.8 for IDF v4.4 before ESP-IDF v4.4 goes End of Life in July 2024
- Do more bugfix releases for IDF v5.1 before release/5.1 enters maintenance period in June 2024
- Do more bug fixes releases for release/5.2 and release/5.3, and push the two releases to be more stable and production-ready
- Major Changes
- Updates of Libraries
- We plan to upgrade MbedTLS to v4.x series in IDF v6.0. In addition, we will also be migrating to newer PSA crypto API as part of this upgrade. Please note that this may involve some breaking changes on the application side for the crypto API usage.
- Update GDB to 14.2
- Update LLVM to 18.1.2
- Update MbedTLS to 3.6 (LTS)
- Update LWIP to 2.2.0
- Change minimal Python requirement to 3.9
Please note that support status of previous silicones could be found on [ESP-IDF Release and SoC Compatibility](https://github.com/espressif/esp-idf#esp-idf-release-and-soc-compatibility).
@@ -47,84 +49,75 @@ Below are the main roadmap details for functional areas inside ESP-IDF.
- New Chip Support
- Add the initial support for the mass production version of ESP32-C5 in ESP-IDF v5.5, refer to [ESP32-C5 Support Status](https://github.com/espressif/esp-idf/issues/14021)
- Add the initial support for the mass production version of ESP32-C61 in ESP-IDF v5.5, refer to [ESP32-C61 Support Status](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
- Add full support for ESP32-P4 in ESP-IDF v5.3, refer to [ESP32-P4 Support Status](https://github.com/espressif/esp-idf/issues/12996)
- Add preview support for ESP32-C5 in ESP-IDF v5.3 and full support for ESP32-C5 in ESP-IDF v5.4, refer to [ESP32-C5 Support Status](https://github.com/espressif/esp-idf/issues/14021)
- Add preview support for the early samples of ESP32-C61 in ESP-IDF v5.4 and full support for mass production version in ESP-IDF v5.4.x. Refer to [ESP32-C61 Support Status](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
- Bugfix releases
- Do bugfix releases v5.0.8 and v5.0.9 and stop maintaining ESP-IDF v5.0 in May 2025
- Do bugfix releases v5.1.6 and v5.1.7 and stop maintaining ESP-IDF v5.1 in December 2025
- Release bugfix IDF v5.2.4, IDF v5.2.5 and IDF v5.2.6 in 2025, and push release/5.2 to maintenance period from February 2025
- Release bugfix IDF v5.3.3 and IDF v5.3.4 in 2025, and push release/5.3 to maintenance period from July 2025
- Do more bug fixes releases for release/5.4 (IDF v5.4.1, IDF v5.4.2, IDF v5.4.3) and release/5.5 (IDF v5.5.1, IDF v5.5.2), and push releases to be more stable and more production-ready
- Do bugfix release IDF v4.4.8 and stop maintaining ESP-IDF v4.4 in July 2024
- Release bugfix IDF v5.0.6 and IDF v5.0.7 in 2024 (maintenance period)
- Release bugfix IDF v5.1.3 and IDF v5.1.4 in H1 of 2024, and release IDF v5.1.5 in H2 of 2024
- Push release/5.1 to maintenance period from June 2024
- Do more bug fixes releases for release/5.2 (IDF v5.2.1, IDF v5.2.2, IDF v5.2.3) and release/5.3 (IDF v5.3.1, IDF v5.3.2), and push releases to be more stable and more production-ready
## ESP-IDF Planning information
For the full list of ESP-IDF releases, please visit https://github.com/espressif/esp-idf/releases
All the information provided here is subject to change without notice, due to business reasons and other factors.
### ESP-IDF Major Releases
```mermaid
timeline
No Major Releases planned
title ESP-IDF Major Releases
section 2025 Q1 <br> Major Release Planning
No version planned : N/A
section 2025 Q2 <br> Major Release Planning
No version planned : N/A
section 2025 Q3 <br> Major Release Planning
No version planned : N/A
section 2025 Q4 <br> Major Release Planning
v6.0-beta1 : 2025/11/13
v6.0-beta2 : 2025/12/05
v6.0-RC1 : 2026/01/14
v6.0-RC2 : 2026/02/06
v6.0 : 2026/02/13
```
### ESP-IDF Minor Releases
```mermaid
timeline
#### Quarter One
title ESP-IDF Minor Releases
section 2025 Q1 <br> Minor Release Planning
No version planned : N/A
section 2025 Q2 <br> Minor Release Planning
v5.5-beta1 : 2025/05/14
v5.5-beta2 : 2025/06/04
section 2025 Q3 <br> Minor Release Planning
v5.5-RC1 : 2025/07/07
v5.5-RC2 : 2025/07/28
v5.5 : 2025/08/04
section 2025 Q4 <br> Minor Release Planning
No version planned : N/A
```
- v5.2-RC1, estimate release date: 2024/02/02
- v5.2 final release, estimate release date: 2024/02/08
#### Quarter Two
- v5.3-beta1, estimate release date:: 2024/05/13
- v5.3-beta2, estimate release date:: 2024/05/31
- v5.3-RC1, estimate release date:: 2024/07/08
#### Quarter Three
- v5.3-RC2, estimate release date:: 2024/07/26
- v5.3 final release, estimate release date:: 2024/08/02
#### Quarter Four
- v5.4-beta1, estimate release date:: 2024/11/08
- v5.4-beta2, estimate release date:: 2024/11/29
- v5.4-RC1, estimate release date:: 2025/01/09
- v5.4-RC2, estimate release date:: 2025/01/29
- v5.4 final release, estimate release date: 2025/02/05
### ESP-IDF Bugfix Releases
```mermaid
timeline
#### Quarter One
title ESP-IDF Bugfix Releases
section 2025 Q1 <br> Bugfix Release Planning
v5.0.8 : 2025/01/14
v5.1.6 : 2025/02/18
v5.2.4 : 2025/02/23
v5.2.5 : 2025/02/28
v5.4.1 : 2025/03/27
v5.3.3 : 2025/04/04
section 2025 Q2 <br> Bugfix Release Planning
v5.0.9 : 2025/05/16
v5.4.2 : 2025/06/30
section 2025 Q3 <br> Bugfix Release Planning
v5.3.4 : 2025/08/03
v5.2.6 : 2025/09/04
v5.5.1 : 2025/09/11
v5.4.3 : 2025/10/08
section 2025 Q4 <br> Bugfix Release Planning
v5.5.2 : 2025/11/12
v5.1.7 : 2026/01/06
```
- v5.1.3, estimate release date: 2024/02/08
- v5.0.6, estimate release date: 2024/02/18
- v4.4.7, estimate release date:: 2024/03/19
- v5.2.1, estimate release date:: 2024/03/31
#### Quarter Two
- v5.1.4, estimate release date:: 2024/05/06
- v5.2.2, estimate release date:: 2024/06/17
- v4.4.8, estimate release date:: 2024/07/19
#### Quarter Three
- v5.0.7, estimate release date: 2024/08/22
- v5.3.1, estimate release date: 2024/09/16
- v5.2.3, estimate release date: 2024/10/10
#### Quarter Four
- v5.1.5, estimate release date: 2024/11/04 (Maintenance period since June 2024)
- v5.3.2, estimate release date: 2024/12/31
- v5.2.4, estimate release date: 2025/02/20 (Service period ends Feb. 2025)

View File

@@ -1,6 +1,4 @@
# ESP-IDF 项目路线图 2025
* [English Version](./ROADMAP.md)
# ESP-IDF 项目路线图 2024 (v1.0)
本文档概述了 ESP-IDF 项目的年度计划,方便客户据此规划自己的项目周期。需要说明的是该文档并不是我们对客户的约束性承诺。相反,其主要目的是为客户提供 ESP-IDF 项目开发的路线图和方向。通过公开这些信息,我们希望增进客户对 ESP-IDF 项目的理解,提高透明度,并确保与 ESP-IDF 项目的总体目标保持一致。
@@ -12,28 +10,32 @@
此外ESP-IDF 各活跃分支的 Bugfix 版本发布也是我们项目的重中之重,着力提升已量产产品的稳定性和性能。通过及时解决问题,我们期待提升用户的整体体验,切实惠及使用乐鑫解决方案的客户。通过积极维护 ESP-IDF 的各活跃分支,我们践行了对宝贵的客户群提供可靠、高质量产品的承诺。
以下是 ESP-IDF 项目在 2025 年计划实现的主要目标。
以下是 ESP-IDF 项目在 2024 年计划实现的主要目标。
* 新芯片支持
* 增加对 ESP32-P4 芯片的支持
* 增加对 ESP32-C5 芯片的支持
* 增加对 ESP32-C61 芯片的支持
* 发布更多的次要和主要版本
* 发布更多的次要版本
* 在 2025发布 IDF v5.5
* 在 2025 年发布 IDF v6.0
* 在 2024 年发布 IDF v5.3
* 在 2025 年发布 IDF v5.4
* 发布更多 bugfix 版本
* 发布更多 Bugfix 版本
* 在 20255 月底 IDF v5.0 停止维护之前,发布 IDF v5.0.8 和 IDF v5.0.9
* 在 202512 月底 IDF v5.1 停止维护之前,发布 IDF v5.1.6 和 IDF v5.1.7
* release/5.2 分支和 release/5.3 分支进入维护周期之前,发布更多 bugfix 版本
* release/5.4 分支和 release/5.5 分支发布更多 bugfix 版本,使这两个分支更加稳定和产品化
* 在 20247 月底 IDF v4.4 停止维护之前,发布 IDF v4.4.8
* 在 20246 月底release/5.1 分支进入维护周期之前,发布更多 Bugfix 版本
* release/5.2 分支和 release/5.3 分支发布更多 Bugfix 版本,使这两个分支更加稳定和产品化
* 重大变更
* 上游库与工具链的更新
* 我们计划在 IDF v6.0 中将 MbedTLS 版本升级到 v4.x。另外我们还会在升级中迁移到更新版的 PSA 加密 API但请注意这可能会导致应用程序端在使用加密 API 时出现一些非兼容性更新。
* 将 GDB 升级至 14.2
* 将 LLVM 升级至 18.1.2
* 更新 MbedTLS 至 3.6LTS
* 更新 LWIP 至 2.2.0
* 将最低 Python 要求更改为 3.9
请注意,获取之前芯片的支持状态,请参阅 [ESP-IDF 发布和 SoC 兼容性](https://github.com/espressif/esp-idf/blob/master/README_CN.md#esp-idf-与乐鑫芯片)。
@@ -47,84 +49,75 @@ ESP-IDF 项目重视持续维护和更新,确保我们的客户始终处于技
* 新芯片支持
* 在 ESP-IDF v5.4 中为 ESP32-C5 提供预览支持,并在 ESP-IDF v5.5 中为 ESP32-C5 提供完整支持,参考 [ESP32-C5 支持状态](https://github.com/espressif/esp-idf/issues/14021)
* 在 ESP-IDF v5.4增加对 ESP32-C61 早期样品的预览支持,并在 IDF v5.5增加对 ESP32-C61 量产版本的完整支持,参考 [ESP32-C61 支持状态](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
* 在 ESP-IDF v5.3 中为 ESP32-P4 提供完整支持,参考 [ESP32-P4 支持状态](https://github.com/espressif/esp-idf/issues/12996)
* 在 ESP-IDF v5.3 ESP32-C5 提供预览支持,并在 ESP-IDF v5.4 ESP32-C5 提供完整支持,参考 [ESP32-C5 支持状态](https://github.com/espressif/esp-idf/issues/14021)
* 在 ESP-IDF v5.4 中增加对 ESP32-C61 早期样品的预览支持,并在 IDF v5.4.x 中增加对 ESP32-C61 量产版本的完整支持,参考 [ESP32-C61 支持状态](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
* Bugfix 版本发布
* 发布 Bugfix 版本 IDF v5.0.8 和 IDF v5.0.9,并在 20255 月底停止维护 ESP-IDF v5.0
* 发布 Bugfix 版本 IDF v5.1.6 和 IDF v5.1.7,并在 2025 年 12 月底停止维护 ESP-IDF v5.1
* 发布 Bugfix 版本 IDF v5.2.4IDF v5.2.5 和 IDF v5.2.6release/5.2 分支自 2025 2 月进入维护周期
* 发布 Bugfix 版本 IDF v5.3.3 和 IDF v5.3.4release/5.3 分支自 2025 年 7 月进入维护周期
* release/5.4 分支发布更多 bugfix 版本,包括 IDF v5.4.1、IDF v5.4.2、IDF v5.4.3release/5.5 分支发布更多 bugfix 版本,包括 IDF v5.5.1、IDF v5.5.2。通过发布这些 Bugfix 版本,使 release/5.4 分支和 release/5.5 分支更加稳定和产品化。
* 发布 Bugfix 版本 IDF v4.4.8,并在 20247 月底停止维护 ESP-IDF v4.4
* 2024 年release/5.0 分支已处于维护周期,发布 IDF v5.0.6 和 IDF v5.0.7
* 2024 年上半年发布 Bugfix 版本 IDF v5.1.3 和 IDF v5.1.4,并在 2024下半年发布 IDF v5.1.5
* 自 2024 年 6 月起release/5.1 分支进入维护周期
* release/5.2 分支发布更多 Bugfix 版本,包括 IDF v5.2.1、IDF v5.2.2、IDF v5.2.3release/5.3 分支发布更多 Bugfix 版本,包括 IDF v5.3.1、IDF v5.3.2。通过发布这些 Bugfix 版本,使 release/5.2 分支和 release/5.3 分支更加稳定和产品化。
## ESP-IDF 发布计划
获取 ESP-IDF 的完整发布列表,请访问 https://github.com/espressif/esp-idf/releases
此处提供的所有信息均可因业务原因及其他因素而在没有通知的情况下进行更改。
### ESP-IDF 主要版本发布
```mermaid
timeline
2024 年,无主要版本发布计划
title ESP-IDF Major Releases
section 2025 Q1 <br> Major Release Planning
No version planned : N/A
section 2025 Q2 <br> Major Release Planning
No version planned : N/A
section 2025 Q3 <br> Major Release Planning
No version planned : N/A
section 2025 Q4 <br> Major Release Planning
v6.0-beta1 : 2025/11/13
v6.0-beta2 : 2025/12/05
v6.0-RC1 : 2026/01/14
v6.0-RC2 : 2026/02/06
v6.0 : 2026/02/13
```
### ESP-IDF 次要版本发布
```mermaid
timeline
#### 第一季度
title ESP-IDF Minor Releases
section 2025 Q1 <br> Minor Release Planning
No version planned : N/A
section 2025 Q2 <br> Minor Release Planning
v5.5-beta1 : 2025/05/14
v5.5-beta2 : 2025/06/04
section 2025 Q3 <br> Minor Release Planning
v5.5-RC1 : 2025/07/07
v5.5-RC2 : 2025/07/28
v5.5 : 2025/08/04
section 2025 Q4 <br> Minor Release Planning
No version planned : N/A
```
* v5.2-RC1预计发布日期2024/02/02
* v5.2 正式发布预计发布日期2024/02/08
#### 第二季度
* v5.3-beta1预计发布日期2024/05/13
* v5.3-beta2预计发布日期2024/05/31
* v5.3-RC1,预计发布日期:2024/07/08
#### 第三季度
* v5.3-RC2预计发布日期2024/07/26
* v5.3 正式发布预计发布日期2024/08/02
#### 第四季度
* v5.4-beta1预计发布日期2024/11/08
* v5.4-beta2预计发布日期2024/11/29
* v5.4-RC1预计发布日期2025/01/09
* v5.4-RC2预计发布日期2025/01/29
* v5.4 正式发布预计发布日期2025/02/05
### ESP-IDF Bugfix 版本发布
```mermaid
timeline
#### 第一季度
title ESP-IDF Bugfix Releases
section 2025 Q1 <br> Bugfix Release Planning
v5.0.8 : 2025/01/14
v5.1.6 : 2025/02/18
v5.2.4 : 2025/02/23
v5.2.5 : 2025/02/28
v5.4.1 : 2025/03/27
v5.3.3 : 2025/04/04
section 2025 Q2 <br> Bugfix Release Planning
v5.0.9 : 2025/05/16
v5.4.2 : 2025/06/30
section 2025 Q3 <br> Bugfix Release Planning
v5.3.4 : 2025/08/03
v5.2.6 : 2025/09/04
v5.5.1 : 2025/09/11
v5.4.3 : 2025/10/08
section 2025 Q4 <br> Bugfix Release Planning
v5.5.2 : 2025/11/12
v5.1.7 : 2026/01/06
```
* v5.1.3预计发布日期2024/02/08
* v5.0.6预计发布日期2024/02/18
* v4.4.7,预计发布日期:2024/03/19
* v5.2.1,预计发布日期:2024/03/31
#### 第二季度
* v5.1.4,预计发布日期:2024/05/06
* v5.2.2预计发布日期2024/06/17
* v4.4.8,预计发布日期:2024/07/19
#### 第三季度
* v5.0.7,预计发布日期:2024/08/22
* v5.3.1,预计发布日期:2024/09/16
* v5.2.3,预计发布日期:2024/10/10
#### 第四季度
* v5.1.5预计发布日期2024/11/04自 2024 年 6 月进入维护周期)
* v5.3.2预计发布日期2024/12/31
* v5.2.4预计发布日期2025/02/20服务周期截止至 2025 年 2 月)

View File

@@ -60,9 +60,9 @@ endif()
if(CONFIG_HEAP_TRACING_TOHOST)
list(APPEND srcs "heap_trace_tohost.c")
if(CONFIG_IDF_TARGET_ARCH_XTENSA)
set_source_files_properties(heap_trace_tohost.c PROPERTIES COMPILE_FLAGS -Wno-frame-address)
endif()
set_source_files_properties(heap_trace_tohost.c
PROPERTIES COMPILE_FLAGS
-Wno-frame-address)
endif()
idf_component_register(SRCS "${srcs}"
@@ -121,3 +121,16 @@ if(CONFIG_APPTRACE_GCOV_ENABLE)
else()
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${app_trace}> c)
endif()
# This function adds a dependency on the given component if the component is included into the build.
function(maybe_add_component component_name)
idf_build_get_property(components BUILD_COMPONENTS)
if(${component_name} IN_LIST components)
idf_component_get_property(lib_name ${component_name} COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} PUBLIC ${lib_name})
endif()
endfunction()
if(CONFIG_APPTRACE_DEST_UART0 OR CONFIG_APPTRACE_DEST_UART1 OR CONFIG_APPTRACE_DEST_UART2)
maybe_add_component(driver)
endif()

View File

@@ -207,7 +207,7 @@ menu "Application Level Tracing"
depends on APPTRACE_ENABLE
default n
help
Enables support for SEGGER SystemView tracing functionality.
Enables supporrt for SEGGER SystemView tracing functionality.
choice APPTRACE_SV_DEST
prompt "SystemView destination"

View File

@@ -1,11 +1,13 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include <sdkconfig.h>
#define HEAP_TRACE_SRCFILE /* don't warn on inclusion here */
#include "esp_heap_trace.h"
#undef HEAP_TRACE_SRCFILE
#include "esp_heap_caps.h"
#if CONFIG_APPTRACE_SV_ENABLE
#include "esp_app_trace.h"
@@ -14,7 +16,7 @@
#define STACK_DEPTH CONFIG_HEAP_TRACING_STACK_DEPTH
#if CONFIG_HEAP_TRACING_TOHOST
#ifdef CONFIG_HEAP_TRACING_TOHOST
#if !CONFIG_APPTRACE_SV_ENABLE
#error None of the heap tracing backends is enabled! You must enable SystemView compatible tracing to use this feature.

View File

@@ -18,6 +18,6 @@ entries:
archive: libesp_driver_gptimer.a
entries:
if APPTRACE_SV_TS_SOURCE_GPTIMER = y:
gptimer: gptimer_get_raw_count (noflash)
gptimer (noflash)
else:
* (default)

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -218,13 +218,6 @@ static esp_err_t esp_apptrace_uart_init(esp_apptrace_uart_data_t *hw_data)
hw_data->message_buff_overflow = false;
hw_data->circular_buff_overflow = false;
assert((hw_data->port_num <= SOC_UART_NUM) && "Not possible to configure UART. Please check selected UART port");
int source_clk = UART_SCLK_DEFAULT;
#if SOC_UART_LP_NUM > 0
if (hw_data->port_num >= SOC_UART_HP_NUM)
source_clk = LP_UART_SCLK_DEFAULT;
#endif
const uart_config_t uart_config = {
.baud_rate = CONFIG_APPTRACE_UART_BAUDRATE,
@@ -232,7 +225,7 @@ static esp_err_t esp_apptrace_uart_init(esp_apptrace_uart_data_t *hw_data)
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
.source_clk = source_clk,
.source_clk = UART_SCLK_DEFAULT,
};
ESP_LOGI(TAG, "UART baud rate: %i", CONFIG_APPTRACE_UART_BAUDRATE);
// We won't use a buffer for sending data.

View File

@@ -3,7 +3,7 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2017-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2017-2025 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
@@ -65,6 +65,7 @@ Revision: $Rev: 7745 $
#include "esp_app_trace.h"
#include "esp_app_trace_util.h"
#include "esp_intr_alloc.h"
#include "esp_clk_tree.h"
#include "esp_cpu.h"
#include "soc/soc.h"
#include "soc/interrupts.h"
@@ -84,11 +85,7 @@ extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
// The target device name
#define SYSVIEW_DEVICE_NAME CONFIG_IDF_TARGET
// The target core name
#if CONFIG_IDF_TARGET_ARCH_XTENSA
#define SYSVIEW_CORE_NAME "xtensa"
#elif CONFIG_IDF_TARGET_ARCH_RISCV
#define SYSVIEW_CORE_NAME "riscv"
#endif
#define SYSVIEW_CORE_NAME "core0" // In dual core, this will be renamed by OpenOCD as core1
// Determine which timer to use as timestamp source
#if CONFIG_APPTRACE_SV_TS_SOURCE_CCOUNT
@@ -105,9 +102,6 @@ extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
// Timer group timer divisor
#define SYSVIEW_TIMER_DIV 2
// Frequency of the timestamp, using APB as GPTimer source clock
#define SYSVIEW_TIMESTAMP_FREQ (esp_clk_apb_freq() / SYSVIEW_TIMER_DIV)
// GPTimer handle
gptimer_handle_t s_sv_gptimer;
@@ -177,30 +171,38 @@ static void _cbSendSystemDesc(void) {
*
**********************************************************************
*/
static void SEGGER_SYSVIEW_TS_Init(void)
static int SEGGER_SYSVIEW_TS_Init(void)
{
/* We only need to initialize something if we use Timer Group.
* esp_timer and ccount can be used as is.
*/
#if TS_USE_TIMERGROUP
// get clock source frequency
uint32_t counter_src_hz = 0;
ESP_ERROR_CHECK(esp_clk_tree_src_get_freq_hz(
(soc_module_clk_t)GPTIMER_CLK_SRC_DEFAULT,
ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED, &counter_src_hz));
gptimer_config_t config = {
.clk_src = GPTIMER_CLK_SRC_DEFAULT,
.direction = GPTIMER_COUNT_UP,
.resolution_hz = SYSVIEW_TIMESTAMP_FREQ,
.resolution_hz = counter_src_hz / SYSVIEW_TIMER_DIV,
};
// pick any free GPTimer instance
ESP_ERROR_CHECK(gptimer_new_timer(&config, &s_sv_gptimer));
/* Start counting */
gptimer_enable(s_sv_gptimer);
gptimer_start(s_sv_gptimer);
return config.resolution_hz;
#else
return SYSVIEW_TIMESTAMP_FREQ;
#endif // TS_USE_TIMERGROUP
}
void SEGGER_SYSVIEW_Conf(void) {
U32 disable_evts = 0;
SEGGER_SYSVIEW_TS_Init();
SEGGER_SYSVIEW_Init(SYSVIEW_TIMESTAMP_FREQ, SYSVIEW_CPU_FREQ,
int timestamp_freq = SEGGER_SYSVIEW_TS_Init();
SEGGER_SYSVIEW_Init(timestamp_freq, SYSVIEW_CPU_FREQ,
&SYSVIEW_X_OS_TraceAPI, _cbSendSystemDesc);
SEGGER_SYSVIEW_SetRAMBase(SYSVIEW_RAM_BASE);

View File

@@ -8,6 +8,6 @@ components/app_trace/test_apps:
- driver
- esp_hw_support
disable:
- if: IDF_TARGET in ["esp32c5", "esp32c61", "esp32h21", "esp32h4"]
- if: IDF_TARGET in ["esp32c5", "esp32c61"]
temporary: true
reason: not support yet # TODO: [ESP32C5] IDF-8705, [ESP32C61] IDF-9306, [ESP32H21] IDF-11539 [ESP32H4] IDF-12325
reason: not support yet # TODO: [ESP32C5] IDF-8705, [ESP32C61] IDF-9306

View File

@@ -31,19 +31,13 @@
#include "esp_attr.h"
#include "esp_bootloader_desc.h"
#include "esp_flash.h"
#include "esp_flash_internal.h"
#define OTA_SLOT(i) (i & 0x0F)
#define ALIGN_UP(num, align) (((num) + ((align) - 1)) & ~((align) - 1))
#define SUB_TYPE_ID(i) (i & 0x0F)
/* Partial_data is word aligned so no reallocation is necessary for encrypted flash write */
typedef struct ota_ops_entry_ {
uint32_t handle;
struct {
const esp_partition_t *staging; /*!< New image will be downloaded in this staging partition. */
const esp_partition_t *final; /*!< Final destination partition which is intended to be updated. Its type/subtype shall be used for verification. */
bool finalize_with_copy; /*!< Flag to copy the image from staging partition to the final partition at the end of OTA update */
} partition;
const esp_partition_t *part;
bool need_erase;
uint32_t wrote_size;
uint8_t partial_bytes;
@@ -59,8 +53,6 @@ static uint32_t s_ota_ops_last_handle = 0;
const static char *TAG = "esp_ota_ops";
static ota_ops_entry_t *get_ota_ops_entry(esp_ota_handle_t handle);
/* Return true if this is an OTA app partition */
static bool is_ota_partition(const esp_partition_t *p)
{
@@ -129,9 +121,7 @@ static ota_ops_entry_t* esp_ota_init_entry(const esp_partition_t *partition)
LIST_INSERT_HEAD(&s_ota_ops_entries_head, new_entry, entries);
new_entry->partition.staging = partition;
new_entry->partition.final = partition;
new_entry->partition.finalize_with_copy = false;
new_entry->part = partition;
new_entry->handle = ++s_ota_ops_last_handle;
return new_entry;
@@ -141,6 +131,8 @@ static ota_ops_entry_t* esp_ota_init_entry(const esp_partition_t *partition)
esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp_ota_handle_t *out_handle)
{
ota_ops_entry_t *new_entry;
esp_err_t ret = ESP_OK;
if ((partition == NULL) || (out_handle == NULL)) {
return ESP_ERR_INVALID_ARG;
}
@@ -150,27 +142,24 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
return ESP_ERR_NOT_FOUND;
}
if (partition->type == ESP_PARTITION_TYPE_APP) {
// The staging partition cannot be of type Factory, but the final partition can be.
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
if (partition == running_partition) {
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
if (partition == running_partition) {
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
esp_ota_img_states_t ota_state_running_part;
if (esp_ota_get_state_partition(running_partition, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
ESP_LOGE(TAG, "Running app has not confirmed state (ESP_OTA_IMG_PENDING_VERIFY)");
return ESP_ERR_OTA_ROLLBACK_INVALID_STATE;
}
esp_ota_img_states_t ota_state_running_part;
if (esp_ota_get_state_partition(running_partition, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
ESP_LOGE(TAG, "Running app has not confirmed state (ESP_OTA_IMG_PENDING_VERIFY)");
return ESP_ERR_OTA_ROLLBACK_INVALID_STATE;
}
#endif
}
#endif
new_entry = esp_ota_init_entry(partition);
if (new_entry == NULL) {
@@ -179,33 +168,19 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
new_entry->need_erase = (image_size == OTA_WITH_SEQUENTIAL_WRITES);
*out_handle = new_entry->handle;
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_bootloader_offset_set(partition->address);
}
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER || partition->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
}
if (image_size != OTA_WITH_SEQUENTIAL_WRITES) {
// If input image size is 0 or OTA_SIZE_UNKNOWN, erase entire partition
size_t erase_size;
if ((image_size == 0) || (image_size == OTA_SIZE_UNKNOWN)) {
erase_size = partition->size;
ret = esp_partition_erase_range(partition, 0, partition->size);
} else {
erase_size = ALIGN_UP(image_size, partition->erase_size);
const int aligned_erase_size = (image_size + partition->erase_size - 1) & ~(partition->erase_size - 1);
ret = esp_partition_erase_range(partition, 0, aligned_erase_size);
}
esp_err_t err = esp_partition_erase_range(partition, 0, erase_size);
if (err != ESP_OK) {
return err;
if (ret != ESP_OK) {
return ret;
}
}
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
if (is_ota_partition(partition)) {
esp_ota_invalidate_inactive_ota_data_slot();
}
#endif
return ESP_OK;
}
@@ -226,11 +201,9 @@ esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_si
return ESP_ERR_NOT_FOUND;
}
if (partition->type == ESP_PARTITION_TYPE_APP) {
// The staging partition cannot be of type Factory, but the final partition can be.
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
// The staging partition cannot be of type Factory, but the final partition can be.
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
@@ -243,13 +216,6 @@ esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_si
return ESP_ERR_NO_MEM;
}
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_bootloader_offset_set(partition->address);
}
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER || partition->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
}
new_entry->ota_resumption = true;
new_entry->wrote_size = image_offset;
new_entry->need_erase = (erase_size == OTA_WITH_SEQUENTIAL_WRITES);
@@ -257,41 +223,6 @@ esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_si
return ESP_OK;
}
esp_err_t esp_ota_set_final_partition(esp_ota_handle_t handle, const esp_partition_t *final, bool finalize_with_copy)
{
ota_ops_entry_t *it = get_ota_ops_entry(handle);
if (final == NULL) {
return ESP_ERR_INVALID_ARG;
}
if (it == NULL) {
return ESP_ERR_NOT_FOUND;
}
// If OTA resumption is enabled, it->wrote_size may already contain the size of previously written data.
// Ensure that wrote_size is zero only when OTA resumption is disabled, as any non-zero value in this case
// indicates an invalid state.
if (!it->ota_resumption && it->wrote_size != 0) {
return ESP_ERR_INVALID_STATE;
}
if (it->partition.staging != final) {
const esp_partition_t* final_partition = esp_partition_verify(final);
if (final_partition == NULL) {
return ESP_ERR_NOT_FOUND;
}
ESP_LOGI(TAG,"Staging partition - <%s>. Final partition - <%s>.", it->partition.staging->label, final_partition->label);
it->partition.final = final_partition;
it->partition.finalize_with_copy = finalize_with_copy;
if (final_partition->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_bootloader_offset_set(it->partition.staging->address);
}
if (final_partition->type == ESP_PARTITION_TYPE_BOOTLOADER || final_partition->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
}
}
return ESP_OK;
}
esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
{
const uint8_t *data_bytes = (const uint8_t *)data;
@@ -313,33 +244,23 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
if (it->handle == handle) {
if (it->need_erase) {
// must erase the partition before writing to it
uint32_t first_sector = it->wrote_size / it->partition.staging->erase_size; // first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / it->partition.staging->erase_size; // last affected sector
uint32_t first_sector = it->wrote_size / it->part->erase_size; // first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / it->part->erase_size; // last affected sector
ret = ESP_OK;
if ((it->wrote_size % it->partition.staging->erase_size) == 0) {
ret = esp_partition_erase_range(it->partition.staging, it->wrote_size, ((last_sector - first_sector) + 1) * it->partition.staging->erase_size);
if ((it->wrote_size % it->part->erase_size) == 0) {
ret = esp_partition_erase_range(it->part, it->wrote_size, ((last_sector - first_sector) + 1) * it->part->erase_size);
} else if (first_sector != last_sector) {
ret = esp_partition_erase_range(it->partition.staging, (first_sector + 1) * it->partition.staging->erase_size, (last_sector - first_sector) * it->partition.staging->erase_size);
ret = esp_partition_erase_range(it->part, (first_sector + 1) * it->part->erase_size, (last_sector - first_sector) * it->part->erase_size);
}
if (ret != ESP_OK) {
return ret;
}
}
if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0) {
if (it->partition.final->type == ESP_PARTITION_TYPE_APP || it->partition.final->type == ESP_PARTITION_TYPE_BOOTLOADER) {
if (data_bytes[0] != ESP_IMAGE_HEADER_MAGIC) {
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x)", data_bytes[0]);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
} else if (it->partition.final->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
if (*(uint16_t*)data_bytes != (uint16_t)ESP_PARTITION_MAGIC) {
ESP_LOGE(TAG, "Partition table image has invalid magic word (expected 0x50AA, saw 0x%04x)", *(uint16_t*)data_bytes);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
}
if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 && data_bytes[0] != ESP_IMAGE_HEADER_MAGIC) {
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x)", data_bytes[0]);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
if (esp_flash_encryption_enabled()) {
@@ -355,7 +276,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
return ESP_OK; /* nothing to write yet, just filling buffer */
}
/* write 16 byte to partition */
ret = esp_partition_write(it->partition.staging, it->wrote_size, it->partial_data, 16);
ret = esp_partition_write(it->part, it->wrote_size, it->partial_data, 16);
if (ret != ESP_OK) {
return ret;
}
@@ -374,7 +295,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
}
}
ret = esp_partition_write(it->partition.staging, it->wrote_size, data_bytes, size);
ret = esp_partition_write(it->part, it->wrote_size, data_bytes, size);
if(ret == ESP_OK){
it->wrote_size += size;
}
@@ -411,7 +332,7 @@ esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, s
ESP_LOGE(TAG, "Size should be 16byte aligned for flash encryption case");
return ESP_ERR_INVALID_ARG;
}
ret = esp_partition_write(it->partition.staging, offset, data_bytes, size);
ret = esp_partition_write(it->part, offset, data_bytes, size);
if (ret == ESP_OK) {
it->wrote_size += size;
}
@@ -447,34 +368,6 @@ esp_err_t esp_ota_abort(esp_ota_handle_t handle)
return ESP_OK;
}
static esp_err_t ota_verify_partition(ota_ops_entry_t *ota_ops)
{
esp_err_t ret = ESP_OK;
if (ota_ops->partition.final->type == ESP_PARTITION_TYPE_APP || ota_ops->partition.final->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_metadata_t data;
const esp_partition_pos_t part_pos = {
.offset = ota_ops->partition.staging->address,
.size = ota_ops->partition.staging->size,
};
if (esp_image_verify(ESP_IMAGE_VERIFY, &part_pos, &data) != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
} else if (ota_ops->partition.final->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
const esp_partition_info_t *partition_table = NULL;
esp_partition_mmap_handle_t partition_table_map;
ret = esp_partition_mmap(ota_ops->partition.staging, 0, ESP_PARTITION_TABLE_MAX_LEN, ESP_PARTITION_MMAP_DATA, (const void**)&partition_table, &partition_table_map);
if (ret == ESP_OK) {
int num_partitions;
if (esp_partition_table_verify(partition_table, true, &num_partitions) != ESP_OK) {
esp_partition_munmap(partition_table_map);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
esp_partition_munmap(partition_table_map);
}
}
return ret;
}
esp_err_t esp_ota_end(esp_ota_handle_t handle)
{
ota_ops_entry_t *it = get_ota_ops_entry(handle);
@@ -494,7 +387,7 @@ esp_err_t esp_ota_end(esp_ota_handle_t handle)
if (it->partial_bytes > 0) {
/* Write out last 16 bytes, if necessary */
ret = esp_partition_write(it->partition.staging, it->wrote_size, it->partial_data, 16);
ret = esp_partition_write(it->part, it->wrote_size, it->partial_data, 16);
if (ret != ESP_OK) {
ret = ESP_ERR_INVALID_STATE;
goto cleanup;
@@ -503,21 +396,18 @@ esp_err_t esp_ota_end(esp_ota_handle_t handle)
it->partial_bytes = 0;
}
ret = ota_verify_partition(it);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "New image failed verification");
} else {
if (it->partition.finalize_with_copy) {
ESP_LOGI(TAG, "Copy from <%s> staging partition to <%s>...", it->partition.staging->label, it->partition.final->label);
ret = esp_partition_copy(it->partition.final, 0, it->partition.staging, 0, it->partition.final->size);
}
esp_image_metadata_t data;
const esp_partition_pos_t part_pos = {
.offset = it->part->address,
.size = it->part->size,
};
if (esp_image_verify(ESP_IMAGE_VERIFY, &part_pos, &data) != ESP_OK) {
ret = ESP_ERR_OTA_VALIDATE_FAILED;
goto cleanup;
}
cleanup:
if (it->partition.final->type == ESP_PARTITION_TYPE_BOOTLOADER) {
// In esp_ota_begin, bootloader offset was updated, here we return it to default.
esp_image_bootloader_offset_set(ESP_PRIMARY_BOOTLOADER_OFFSET);
}
LIST_REMOVE(it, entries);
free(it);
return ret;
@@ -539,69 +429,6 @@ static esp_err_t rewrite_ota_seq(esp_ota_select_entry_t *two_otadata, uint32_t s
}
}
/**
* @brief Calculate the next OTA sequence number that will boot the given OTA slot.
*
* Based on the ESP-IDF OTA boot scheme, the system selects the OTA slot to boot by:
* boot_slot = (seq - 1) % ota_app_count
*
* This function determines the required seq value that would cause the given ota_slot_idx
* to be selected on next boot.
*
* @param current_seq Current active OTA sequence number
* @param ota_slot_idx Target OTA slot index (0-based)
* @param ota_app_count Total number of OTA slots
*
* @return New sequence number that will result in booting ota_slot_idx
*/
static uint32_t compute_ota_seq_for_target_slot(uint32_t current_seq, uint32_t ota_slot_idx, uint8_t ota_app_count)
{
if (ota_app_count == 0) {
return 0;
}
/* ESP-IDF stores OTA boot information in the OTA data partition, which consists of two sectors.
* Each sector holds an esp_ota_select_entry_t structure: otadata[0] and otadata[1].
* These structures record the OTA sequence number (ota_seq) used to determine the current boot partition.
*
* Boot selection logic:
* - If both otadata[0].ota_seq and otadata[1].ota_seq are 0xFFFFFFFF (invalid), it is the initial state:
* → Boot the factory app, if it exists.
* → Otherwise, fall back to booting ota[0].
*
* - If both otadata entries have valid sequence numbers and CRCs:
* → Choose the higher sequence number (max_seq).
* → Determine the OTA partition for boot (or running partition) using:
* running_ota_slot = (max_seq - 1) % ota_app_count
* where ota_app_count is the total number of OTA app partitions.
*
* Example:
* otadata[0].ota_seq = 4
* otadata[1].ota_seq = 5
* ota_app_count = 8 (available OTA slots: ota_0 to ota_7)
* → max_seq = 5
* → running slot = (5 - 1) % 8 = 4
* → So ota_4 is currently running
*
* If you want to switch to boot a different OTA slot (e.g., ota_7):
* → You need to compute a new sequence number such that:
* (new_seq - 1) % ota_app_count == 7
* while ensuring new_seq > current_seq.
*
* General formula:
* x = current OTA slot ID
* ota_slot_idx = desired OTA slot ID
* seq = current ota_seq
*
* To find the next ota_seq that will boot ota_y, use:
* new_seq = ((ota_slot_idx + 1) % ota_app_count) + ota_app_count * i;
* // where i is the smallest non-negative integer such that new_seq > seq
*/
uint32_t i = 0;
uint32_t base = (ota_slot_idx + 1) % ota_app_count;
while (current_seq > (base + i * ota_app_count)) { i++; };
return base + i * ota_app_count;
}
uint8_t esp_ota_get_app_partition_count(void)
{
uint16_t ota_app_count = 0;
@@ -612,30 +439,6 @@ uint8_t esp_ota_get_app_partition_count(void)
return ota_app_count;
}
/**
* @brief Update the OTA data partition to set the given OTA app subtype as the next boot target.
*
* ESP-IDF uses the OTA data partition to track which OTA app should boot.
* This partition contains two entries (otadata[0] and otadata[1]), each storing an esp_ota_select_entry_t struct,
* which includes the OTA sequence number (ota_seq).
*
* On boot, the chip determines the current running OTA slot using:
* current_slot = (max(ota_seq) - 1) % ota_app_count
*
* This function updates the OTA data to switch the next boot to the partition with the given subtype.
*
* Behavior:
* - If the currently selected OTA slot already matches the requested subtype,
* only the state field is updated (e.g., to mark the app as newly downloaded).
* - Otherwise, it calculates the next valid ota_seq that will cause the bootloader to select
* the requested OTA slot on reboot, and writes it to the inactive OTA data sector.
*
* @param subtype The OTA partition subtype (e.g., ESP_PARTITION_SUBTYPE_APP_OTA_0, ..._OTA_1, ...)
* @return
* - ESP_OK if update was successful
* - ESP_ERR_NOT_FOUND if OTA data partition not found
* - ESP_ERR_INVALID_ARG if subtype is out of range
*/
static esp_err_t esp_rewrite_ota_data(esp_partition_subtype_t subtype)
{
esp_ota_select_entry_t otadata[2];
@@ -645,31 +448,42 @@ static esp_err_t esp_rewrite_ota_data(esp_partition_subtype_t subtype)
}
uint8_t ota_app_count = esp_ota_get_app_partition_count();
if (OTA_SLOT(subtype) >= ota_app_count) {
if (SUB_TYPE_ID(subtype) >= ota_app_count) {
return ESP_ERR_INVALID_ARG;
}
//esp32_idf use two sector for store information about which partition is running
//it defined the two sector as ota data partition,two structure esp_ota_select_entry_t is saved in the two sector
//named data in first sector as otadata[0], second sector data as otadata[1]
//e.g.
//if otadata[0].ota_seq == otadata[1].ota_seq == 0xFFFFFFFF,means ota info partition is in init status
//so it will boot factory application(if there is),if there's no factory application,it will boot ota[0] application
//if otadata[0].ota_seq != 0 and otadata[1].ota_seq != 0,it will choose a max seq ,and get value of max_seq%max_ota_app_number
//and boot a subtype (mask 0x0F) value is (max_seq - 1)%max_ota_app_number,so if want switch to run ota[x],can use next formulas.
//for example, if otadata[0].ota_seq = 4, otadata[1].ota_seq = 5, and there are 8 ota application,
//current running is (5-1)%8 = 4,running ota[4],so if we want to switch to run ota[7],
//we should add otadata[0].ota_seq (is 4) to 4 ,(8-1)%8=7,then it will boot ota[7]
//if A=(B - C)%D
//then B=(A + C)%D + D*n ,n= (0,1,2...)
//so current ota app sub type id is x , dest bin subtype is y,total ota app count is n
//seq will add (x + n*1 + 1 - seq)%n
int active_otadata = bootloader_common_get_active_otadata(otadata);
int next_otadata;
uint32_t new_seq;
if (active_otadata != -1) {
uint32_t ota_slot = (otadata[active_otadata].ota_seq - 1) % ota_app_count;
if (ota_slot == OTA_SLOT(subtype)) {
// ota_data is already valid and points to the correct OTA slot.
// So after reboot the requested partition will be selected for boot.
// Only update the ota_state of the requested partition.
next_otadata = active_otadata;
new_seq = otadata[active_otadata].ota_seq;
} else {
next_otadata = (~active_otadata) & 1; // if 0 -> will be next 1. and if 1 -> will be next 0.
new_seq = compute_ota_seq_for_target_slot(otadata[active_otadata].ota_seq, OTA_SLOT(subtype), ota_app_count);
uint32_t seq = otadata[active_otadata].ota_seq;
uint32_t i = 0;
while (seq > (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count) {
i++;
}
int next_otadata = (~active_otadata)&1; // if 0 -> will be next 1. and if 1 -> will be next 0.
otadata[next_otadata].ota_state = set_new_state_otadata();
return rewrite_ota_seq(otadata, (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count, next_otadata, otadata_partition);
} else {
/* Both OTA slots are invalid, probably because unformatted... */
next_otadata = 0;
new_seq = OTA_SLOT(subtype) + 1;
int next_otadata = 0;
otadata[next_otadata].ota_state = set_new_state_otadata();
return rewrite_ota_seq(otadata, SUB_TYPE_ID(subtype) + 1, next_otadata, otadata_partition);
}
otadata[next_otadata].ota_state = set_new_state_otadata();
return rewrite_ota_seq(otadata, new_seq, next_otadata, otadata_partition);
}
esp_err_t esp_ota_set_boot_partition(const esp_partition_t *partition)
@@ -1008,7 +822,8 @@ static esp_err_t esp_ota_current_ota_is_workable(bool valid)
if (err != ESP_OK) {
return err;
}
ESP_LOGI(TAG, "Rollback to previously worked partition.");
ESP_LOGI(TAG, "Rollback to previously worked partition. Restart.");
esp_restart();
}
} else {
ESP_LOGE(TAG, "Running firmware is factory");
@@ -1022,18 +837,9 @@ esp_err_t esp_ota_mark_app_valid_cancel_rollback(void)
return esp_ota_current_ota_is_workable(true);
}
esp_err_t esp_ota_mark_app_invalid_rollback(void)
{
return esp_ota_current_ota_is_workable(false);
}
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot(void)
{
esp_err_t ret = esp_ota_mark_app_invalid_rollback();
if (ret == ESP_OK) {
esp_restart();
}
return ret;
return esp_ota_current_ota_is_workable(false);
}
static bool check_invalid_otadata (const esp_ota_select_entry_t *s) {
@@ -1114,7 +920,7 @@ esp_err_t esp_ota_get_state_partition(const esp_partition_t *partition, esp_ota_
return ESP_OK;
}
static esp_err_t erase_last_boot_app_partition(bool skip_app_part_erase)
esp_err_t esp_ota_erase_last_boot_app_partition(void)
{
esp_ota_select_entry_t otadata[2];
const esp_partition_t* ota_data_partition = read_otadata(otadata);
@@ -1146,15 +952,13 @@ static esp_err_t erase_last_boot_app_partition(bool skip_app_part_erase)
return ESP_FAIL;
}
if (!skip_app_part_erase) {
esp_err_t err = esp_partition_erase_range(last_boot_app_partition_from_otadata, 0, last_boot_app_partition_from_otadata->size);
if (err != ESP_OK) {
return err;
}
esp_err_t err = esp_partition_erase_range(last_boot_app_partition_from_otadata, 0, last_boot_app_partition_from_otadata->size);
if (err != ESP_OK) {
return err;
}
int sec_id = inactive_otadata;
esp_err_t err = esp_partition_erase_range(ota_data_partition, sec_id * ota_data_partition->erase_size, ota_data_partition->erase_size);
err = esp_partition_erase_range(ota_data_partition, sec_id * ota_data_partition->erase_size, ota_data_partition->erase_size);
if (err != ESP_OK) {
return err;
}
@@ -1162,16 +966,6 @@ static esp_err_t erase_last_boot_app_partition(bool skip_app_part_erase)
return ESP_OK;
}
esp_err_t esp_ota_erase_last_boot_app_partition(void)
{
return erase_last_boot_app_partition(false);
}
esp_err_t esp_ota_invalidate_inactive_ota_data_slot(void)
{
return erase_last_boot_app_partition(true);
}
#if SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY && CONFIG_SECURE_BOOT_V2_ENABLED
// Validates the image at "app_pos" with the secure boot digests other than "revoked_key_index"

View File

@@ -82,12 +82,7 @@ int esp_ota_get_app_elf_sha256(char* dst, size_t size) __attribute__((deprecated
* it will lead to the ESP_ERR_OTA_ROLLBACK_INVALID_STATE error. Confirm the running app before to run download a new app,
* use esp_ota_mark_app_valid_cancel_rollback() function for it (this should be done as early as possible when you first download a new application).
*
* Note: Rollback is applicable only for app type partitions.
* Note: For Rollback - The OTA data slot corresponding to the last boot application partition will be invalidated.
*
* @param partition Pointer to info for partition which will receive the OTA update. Required.
* This is considered as the staging partition (where OTA is downloaded), be default this also considered as the final partition which supposed to be updated.
* The final partition can be overwritten using esp_ota_set_final_partition() after calling esp_ota_begin() to relocate contents to the final destination partition.
* @param partition Pointer to info for partition which will receive the OTA update. Required.
* @param image_size Size of new OTA app image. Partition will be erased in order to receive this size of image. If 0 or OTA_SIZE_UNKNOWN, the entire partition is erased.
* @param out_handle On success, returns a handle which should be used for subsequent esp_ota_write() and esp_ota_end() calls.
@@ -130,31 +125,6 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp
*/
esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_size, const size_t image_offset, esp_ota_handle_t *out_handle);
/**
* @brief Set the final destination partition for OTA update
*
* This function configures the specified final partition as the destination for the OTA update.
* It also allows setting a flag to indicate if the image should be copied from the staging
* partition to the final partition after the OTA update completes. Otherwise, copying will need
* to be handled by custom code using esp_partition_copy().
*
* @note This can be called after esp_ota_begin() and before the OTA update has started (before esp_ota_write()).
*
* @param handle OTA update handle obtained from esp_ota_begin().
* @param final Pointer to the final destination partition where the new image will be verified and potentially finalized.
* This partition must not be NULL.
* @param finalize_with_copy Boolean flag indicating if the downloaded image should be copied
* from the staging partition to the final partition upon completion.
* Set to False if you intend to perform the final copy process manually later.
*
* @return
* - ESP_OK: final destination partition set successfully.
* - ESP_ERR_INVALID_STATE: Once the OTA update has started, changing the final destination partition is prohibited.
* - ESP_ERR_INVALID_ARG: Invalid arguments were passed (e.g., final partition is NULL).
* - ESP_ERR_NOT_FOUND: OTA handle not found or final partition verification failed.
*/
esp_err_t esp_ota_set_final_partition(esp_ota_handle_t handle, const esp_partition_t *final, bool finalize_with_copy);
/**
* @brief Write OTA update data to partition
*
@@ -169,8 +139,9 @@ esp_err_t esp_ota_set_final_partition(esp_ota_handle_t handle, const esp_partiti
* @return
* - ESP_OK: Data was written to flash successfully, or size = 0
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid image magic byte.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
* - ESP_ERR_OTA_SELECT_INFO_INVALID: OTA data partition has invalid contents
* - ESP_ERR_INVALID_SIZE: if write would go out of bounds of the partition
* - or one of error codes from lower-level flash driver.
*/
@@ -193,7 +164,9 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void* data, size_t size);
* @return
* - ESP_OK: Data was written to flash successfully.
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
* - ESP_ERR_OTA_SELECT_INFO_INVALID: OTA data partition has invalid contents
*/
esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, size_t size, uint32_t offset);
@@ -203,11 +176,6 @@ esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, s
* @param handle Handle obtained from esp_ota_begin().
*
* @note After calling esp_ota_end(), the handle is no longer valid and any memory associated with it is freed (regardless of result).
* @note If either the final or staging partitions were for the bootloader, then at the end of this function,
* the bootloader is reset to its default offset: esp_image_bootloader_offset_set(ESP_PRIMARY_BOOTLOADER_OFFSET)
*
* If the finalize_with_copy option is set, the staging partition will be copied to the final partition at the end of this function.
* Otherwise, copying will need to be handled by custom code using esp_partition_copy().
*
* @return
* - ESP_OK: Newly written OTA app image is valid.
@@ -316,7 +284,7 @@ esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, es
* @brief Returns the description structure of the bootloader.
*
* @param[in] bootloader_partition Pointer to bootloader partition.
* If NULL, then the PRIMARY bootloader is used (the default location).
* If NULL, then the current bootloader is used (the default location).
* offset = CONFIG_BOOTLOADER_OFFSET_IN_FLASH,
* size = CONFIG_PARTITION_TABLE_OFFSET - CONFIG_BOOTLOADER_OFFSET_IN_FLASH,
* @param[out] desc Structure of info about bootloader.
@@ -329,20 +297,6 @@ esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, es
*/
esp_err_t esp_ota_get_bootloader_description(const esp_partition_t *bootloader_partition, esp_bootloader_desc_t *desc);
/**
* @brief Invalidate the OTA data slot associated with the last boot application partition.
*
* This function erases the OTA data slot corresponding to the last boot application partition,
* making the partition invalid for booting in future. The application partition itself
* is not erased, preserving its contents.
*
* @return
* - ESP_OK: Successfully invalidated the OTA data slot.
* - ESP_FAIL: Failed to invalidate the OTA data slot (e.g., invalid parameters, no OTA data partition, or other errors).
* - Other error codes from `esp_partition_erase_range`.
*/
esp_err_t esp_ota_invalidate_inactive_ota_data_slot(void);
/**
* @brief Returns number of ota partitions provided in partition table.
*
@@ -359,24 +313,12 @@ uint8_t esp_ota_get_app_partition_count(void);
*/
esp_err_t esp_ota_mark_app_valid_cancel_rollback(void);
/**
* @brief This function is called to roll back to the previously workable app without reboot.
*
* Checks applications on a flash drive that can be booted in case of rollback.
* If the flash does not have at least one app (except the running app) then rollback is not possible.
* @return
* - ESP_OK: if successful.
* - ESP_FAIL: if not successful.
* - ESP_ERR_OTA_ROLLBACK_FAILED: The rollback is not possible because the available OTA partitions
* on the flash do not contain a valid application.
*/
esp_err_t esp_ota_mark_app_invalid_rollback(void);
/**
* @brief This function is called to roll back to the previously workable app with reboot.
*
* Equivalent to calling esp_ota_mark_app_invalid_rollback(), and, if successful, followed by esp_restart().
*
* If rollback is successful then device will reset else API will return with error code.
* Checks applications on a flash drive that can be booted in case of rollback.
* If the flash does not have at least one app (except the running app) then rollback is not possible.
* @return
* - ESP_FAIL: if not successful.
* - ESP_ERR_OTA_ROLLBACK_FAILED: The rollback is not possible due to flash does not have any apps.

View File

@@ -2,20 +2,11 @@
components/app_update/test_apps:
enable:
- if: CONFIG_NAME == "defaults" and IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32c61", "esp32h2", "esp32p4", "esp32s2", "esp32s3"]
- if: CONFIG_NAME == "rollback" and IDF_TARGET in ["esp32", "esp32c3", "esp32s3", "esp32p4"]
- if: CONFIG_NAME == "xip_psram" and SOC_SPIRAM_XIP_SUPPORTED == 1
- if: CONFIG_NAME == "defaults" and IDF_TARGET != "linux"
- if: CONFIG_NAME == "xip_psram" and IDF_TARGET in ["esp32s2", "esp32s3", "esp32p4"]
# S2 doesn't have ROM for flash
- if: CONFIG_NAME == "xip_psram_with_rom_impl" and (SOC_SPIRAM_XIP_SUPPORTED == 1 and IDF_TARGET != "esp32s2")
- if: CONFIG_NAME == "recovery_bootloader" and SOC_RECOVERY_BOOTLOADER_SUPPORTED == 1
- if: CONFIG_NAME == "xip_psram_with_rom_impl" and IDF_TARGET in ["esp32s3", "esp32p4"]
disable:
- if: IDF_TARGET in ["esp32h21", "esp32h4"]
- if: IDF_TARGET in ["esp32c61"]
temporary: true
reason: not supported yet # TODO: [ESP32H21] IDF-11515, [ESP32H4] IDF-12279
- if: IDF_TARGET == "esp32c61" and CONFIG_NAME == "xip_psram_with_rom_impl"
temporary: true
reason: not supported yet # TODO: [ESP32C61] IDF-12784
disable_test:
- if: CONFIG_NAME == "recovery_bootloader" and SOC_RECOVERY_BOOTLOADER_SUPPORTED == 1 and IDF_TARGET == "esp32c61"
temporary: true
reason: lack of runners # TODO: [ESP32C61] IDF-13165
reason: target esp32c61 is not supported yet # TODO: [ESP32C61] IDF-9245

View File

@@ -1,15 +1,4 @@
idf_component_register(
SRC_DIRS "."
PRIV_INCLUDE_DIRS "."
PRIV_REQUIRES
cmock
test_utils
app_update
bootloader_support
nvs_flash
driver
spi_flash
esp_psram
efuse
WHOLE_ARCHIVE
)
idf_component_register(SRC_DIRS "."
PRIV_INCLUDE_DIRS "."
PRIV_REQUIRES cmock test_utils app_update bootloader_support nvs_flash driver spi_flash esp_psram
WHOLE_ARCHIVE)

View File

@@ -1,87 +0,0 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* Tests bootloader update.
*/
#include "unity.h"
#include "esp_log.h"
#include "esp_efuse.h"
#include "esp_flash_internal.h"
#include "esp_rom_sys.h"
#include "utils_update.h"
#include "sdkconfig.h"
#define BOOT_COUNT_NAMESPACE "boot_count"
static __attribute__((unused)) const char *TAG = "btldr_update";
#if CONFIG_BOOTLOADER_RECOVERY_ENABLE
/* @brief Checks and prepares the partition so that the factory app is launched after that.
*/
static void start_test(void)
{
ESP_LOGI(TAG, "boot count 1 - reset");
set_boot_count_in_nvs(1);
erase_ota_data();
ESP_LOGI(TAG, "ota_data erased");
ESP_LOGI(TAG, "Bootloader offset: 0x%x", esp_rom_get_bootloader_offset());
reboot_as_deep_sleep();
}
static void test_flow1(void)
{
uint8_t boot_count = get_boot_count_from_nvs();
boot_count++;
set_boot_count_in_nvs(boot_count);
ESP_LOGI(TAG, "boot count %d", boot_count);
ESP_LOGI(TAG, "Bootloader offset: 0x%x", esp_rom_get_bootloader_offset());
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
const esp_partition_t *recovery_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, CONFIG_BOOTLOADER_RECOVERY_OFFSET, ESP_BOOTLOADER_SIZE, "RecoveryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_RECOVERY, &recovery_bootloader));
ESP_LOGI(TAG, "Bootloaders are registered");
// Remove write protection for the bootloader
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
switch (boot_count) {
case 2:
TEST_ASSERT_EQUAL_HEX32(ESP_PRIMARY_BOOTLOADER_OFFSET, esp_rom_get_bootloader_offset());
TEST_ESP_OK(esp_partition_erase_range(recovery_bootloader, 0, recovery_bootloader->size));
ESP_LOGI(TAG, "Erase recovery bootloader");
TEST_ESP_OK(esp_efuse_set_recovery_bootloader_offset(CONFIG_BOOTLOADER_RECOVERY_OFFSET));
ESP_LOGI(TAG, "Backup, copy <%s> -> <%s>", primary_bootloader->label, recovery_bootloader->label);
TEST_ESP_OK(esp_partition_copy(recovery_bootloader, 0, primary_bootloader, 0, primary_bootloader->size));
TEST_ESP_OK(esp_partition_erase_range(primary_bootloader, 0, primary_bootloader->size));
ESP_LOGI(TAG, "Erase primary bootloader");
reboot_as_deep_sleep();
break;
case 3:
TEST_ASSERT_EQUAL_HEX32(CONFIG_BOOTLOADER_RECOVERY_OFFSET, esp_rom_get_bootloader_offset());
ESP_LOGI(TAG, "Return to primary bootloader...");
ESP_LOGI(TAG, "Copy <%s> -> <%s>", recovery_bootloader->label, primary_bootloader->label);
TEST_ESP_OK(esp_partition_copy(primary_bootloader, 0, recovery_bootloader, 0, primary_bootloader->size));
TEST_ESP_OK(esp_partition_erase_range(recovery_bootloader, 0, recovery_bootloader->size));
ESP_LOGI(TAG, "Erase recovery bootloader");
break;
default:
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
TEST_CASE_MULTIPLE_STAGES("Recovery bootloader feature", "[recovery_bootloader][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow1, test_flow1);
#endif // CONFIG_BOOTLOADER_RECOVERY_ENABLE

View File

@@ -1,256 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "esp_ota_ops.h"
#include "esp_partition.h"
#include "esp_flash_partitions.h"
#include "esp_flash_internal.h"
#include "spi_flash_mmap.h"
#include "esp_image_format.h"
#include "esp_system.h"
#include "esp_log.h"
#include "unity.h"
#include "nvs_flash.h"
#include "sdkconfig.h"
static const char *TAG = "test";
static uint8_t buffer[SPI_FLASH_SEC_SIZE];
// Find the unused offset after the last partition, checking that it is of the required size
static uint32_t find_unused_space(size_t required_size)
{
esp_partition_iterator_t it = esp_partition_find(ESP_PARTITION_TYPE_ANY, ESP_PARTITION_SUBTYPE_ANY, NULL);
TEST_ASSERT_NOT_NULL(it);
const esp_partition_t* latest_partition = esp_partition_get(it);
for (; it != NULL; it = esp_partition_next(it)) {
const esp_partition_t *p = esp_partition_get(it);
if (p->address > latest_partition->address) {
latest_partition = p;
}
}
esp_partition_iterator_release(it);
TEST_ASSERT_NOT_NULL(latest_partition);
#if CONFIG_IDF_TARGET_LINUX
uint32_t flash_chip_size;
esp_flash_get_size(NULL, &flash_chip_size);
#else
uint32_t flash_chip_size = esp_flash_default_chip->size;
#endif // CONFIG_IDF_TARGET_LINUX
uint32_t unused_offset = latest_partition->address + latest_partition->size;
TEST_ASSERT_GREATER_OR_EQUAL_UINT32(required_size, flash_chip_size - unused_offset);
return unused_offset;
}
static void check_after_reboot(void)
{
ESP_LOGI(TAG, "App runs");
}
static void download_new_image_from_partition(esp_ota_handle_t update_handle, const esp_partition_t *copy_from_part)
{
uint32_t offset = 0;
ESP_LOGI(TAG, "Downloading image...");
do {
TEST_ESP_OK(esp_partition_read(copy_from_part, offset, buffer, sizeof(buffer)));
TEST_ESP_OK(esp_ota_write(update_handle, buffer, sizeof(buffer)));
offset += sizeof(buffer);
} while (offset < copy_from_part->size);
}
static void start_bootloader_ota_update_via_ota_bootloader_part(void)
{
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
const esp_partition_t *ota_bootloader;
const uint32_t ota_bootloader_offset = find_unused_space(ESP_BOOTLOADER_SIZE);
TEST_ESP_OK(esp_partition_register_external(NULL, ota_bootloader_offset, ESP_BOOTLOADER_SIZE, "OtaBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_OTA, &ota_bootloader));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(ota_bootloader, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_bootloader, true));
download_new_image_from_partition(update_handle, primary_bootloader);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_bootloader));
TEST_ESP_OK(esp_partition_deregister_external(ota_bootloader));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of bootloader via temp partition", "[bootloader_ota][reset=SW_CPU_RESET]", start_bootloader_ota_update_via_ota_bootloader_part, check_after_reboot);
static void start_bootloader_ota_update_via_primary_bootloader_part(void)
{
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(primary_bootloader, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
download_new_image_from_partition(update_handle, primary_bootloader);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_bootloader));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of bootloader via primary partition", "[bootloader_ota][reset=SW_CPU_RESET]", start_bootloader_ota_update_via_primary_bootloader_part, check_after_reboot);
static void start_partition_table_ota_update_via_ota_part_table(void)
{
const esp_partition_t *primary_partition_table;
const esp_partition_t *ota_partition_table;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_PARTITION_TABLE_OFFSET, ESP_PARTITION_TABLE_SIZE, "PrimaryPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_PRIMARY, &primary_partition_table));
uint32_t ota_partition_table_offset = find_unused_space(ESP_PARTITION_TABLE_SIZE);
TEST_ESP_OK(esp_partition_register_external(NULL, ota_partition_table_offset, ESP_PARTITION_TABLE_SIZE, "OtaPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_OTA, &ota_partition_table));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(ota_partition_table, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_partition_table, true));
download_new_image_from_partition(update_handle, primary_partition_table);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_partition_table));
TEST_ESP_OK(esp_partition_deregister_external(ota_partition_table));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of partition_table via temp partition", "[partition_table_ota][reset=SW_CPU_RESET]", start_partition_table_ota_update_via_ota_part_table, check_after_reboot);
static void start_partition_table_ota_update_via_primary_part_table(void)
{
const esp_partition_t *primary_partition_table;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_PARTITION_TABLE_OFFSET, ESP_PARTITION_TABLE_SIZE, "PrimaryPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_PRIMARY, &primary_partition_table));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(primary_partition_table, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
download_new_image_from_partition(update_handle, primary_partition_table);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_partition_table));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of partition_table via primary partition", "[partition_table_ota][reset=SW_CPU_RESET]", start_partition_table_ota_update_via_primary_part_table, check_after_reboot);
TEST_CASE("OTA update of NVS partition", "[nvs_ota]")
{
// intilaize "nvs" partition and define a var (magic_value).
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
nvs_handle_t my_handle;
TEST_ESP_OK(nvs_open("namespace", NVS_READWRITE, &my_handle));
uint32_t magic_value = 0x0729FEED;
TEST_ESP_OK(nvs_set_u32(my_handle, "magic_value", magic_value));
TEST_ESP_OK(nvs_commit(my_handle));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle);
TEST_ESP_OK(nvs_flash_deinit());
// register a new "nvs2" partition
const esp_partition_t *nvs_part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_NVS, "nvs");
const esp_partition_t *nvs2_part;
TEST_ESP_OK(esp_partition_register_external(NULL, find_unused_space(nvs_part->size), nvs_part->size, "nvs2", ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_NVS, &nvs2_part));
ESP_LOGI(TAG, "Use %s partition (0x%08" PRIx32 ") to load a new image", nvs2_part->label, nvs2_part->address);
TEST_ESP_OK(nvs_flash_erase_partition("nvs2"));
// OTA update of the new "nvs2" partition, taking "nvs" partition as source.
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(nvs2_part, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
download_new_image_from_partition(update_handle, nvs_part);
TEST_ESP_OK(esp_ota_end(update_handle));
// init "nvs2" partition and check if the magic_value == 0x0729FEED
TEST_ESP_OK(nvs_flash_init_partition("nvs2"));
nvs_handle_t my_handle2;
TEST_ESP_OK(nvs_open_from_partition("nvs2", "namespace", NVS_READWRITE, &my_handle2));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle2, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle2);
TEST_ESP_OK(nvs_flash_deinit_partition("nvs2"));
// deregister "nvs2"
TEST_ESP_OK(esp_partition_deregister_external(nvs2_part));
TEST_ESP_OK(nvs_flash_erase());
}
static void start_bootloader_ota_update_via_app_part(void)
{
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
const esp_partition_t *free_app_ota_partition = esp_ota_get_next_update_partition(NULL);
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(free_app_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_bootloader, true));
download_new_image_from_partition(update_handle, primary_bootloader);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_bootloader));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of bootloader via a free ota partition", "[bootloader_ota][reset=SW_CPU_RESET]", start_bootloader_ota_update_via_app_part, check_after_reboot);
static void start_partition_table_ota_update_via_app_part(void)
{
const esp_partition_t *primary_partition_table;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_PARTITION_TABLE_OFFSET, ESP_PARTITION_TABLE_SIZE, "PrimaryPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_PRIMARY, &primary_partition_table));
const esp_partition_t *free_app_ota_partition = esp_ota_get_next_update_partition(NULL);
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(free_app_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_partition_table, true));
download_new_image_from_partition(update_handle, primary_partition_table);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_partition_table));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of partition_table via a free ota partition", "[partition_table_ota][reset=SW_CPU_RESET]", start_partition_table_ota_update_via_app_part, check_after_reboot);
TEST_CASE("OTA update of NVS partition via a free ota partition", "[nvs_ota]")
{
// intilaize "nvs" partition and define a var (magic_value).
const esp_partition_t *nvs_part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_NVS, "nvs");
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
nvs_handle_t my_handle;
TEST_ESP_OK(nvs_open("namespace", NVS_READWRITE, &my_handle));
uint32_t magic_value = 0x0729FEED;
TEST_ESP_OK(nvs_set_u32(my_handle, "magic_value", magic_value));
TEST_ESP_OK(nvs_commit(my_handle));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle);
TEST_ESP_OK(nvs_flash_deinit());
// 1. OTA update nvs partition into free_app_ota_partition
// 2. copy free_app_ota_partition into the original nvs partition (which was erased before coping)
const esp_partition_t *free_app_ota_partition = esp_ota_get_next_update_partition(NULL);
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(free_app_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, nvs_part, true));
download_new_image_from_partition(update_handle, nvs_part);
TEST_ESP_OK(esp_ota_end(update_handle));
// Check if the magic_value == 0x0729FEED
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open("namespace", NVS_READONLY, &my_handle));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle);
TEST_ESP_OK(nvs_flash_deinit());
TEST_ESP_OK(nvs_flash_erase());
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -7,16 +7,309 @@
* Tests for switching between partitions: factory, OTAx, test.
*/
#include "esp_system.h"
#include <esp_types.h>
#include <stdio.h>
#include "string.h"
#include <inttypes.h>
#include "sdkconfig.h"
#include "esp_rom_spiflash.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/queue.h"
#include "unity.h"
#include "bootloader_common.h"
#include "../bootloader_flash/include/bootloader_flash_priv.h"
#include "esp_err.h"
#include "esp_log.h"
#include "unity.h"
#include "utils_update.h"
#include "sdkconfig.h"
#include "esp_ota_ops.h"
#include "esp_partition.h"
#include "esp_flash_partitions.h"
#include "esp_image_format.h"
#include "nvs_flash.h"
#include "driver/gpio.h"
#include "esp_sleep.h"
#include "test_utils.h"
#define BOOT_COUNT_NAMESPACE "boot_count"
static const char *TAG = "ota_test";
static void set_boot_count_in_nvs(uint8_t boot_count)
{
nvs_handle_t boot_count_handle;
TEST_ESP_OK(nvs_open(BOOT_COUNT_NAMESPACE, NVS_READWRITE, &boot_count_handle));
TEST_ESP_OK(nvs_set_u8(boot_count_handle, "boot_count", boot_count));
TEST_ESP_OK(nvs_commit(boot_count_handle));
nvs_close(boot_count_handle);
}
static uint8_t get_boot_count_from_nvs(void)
{
nvs_handle_t boot_count_handle;
esp_err_t err = nvs_open(BOOT_COUNT_NAMESPACE, NVS_READONLY, &boot_count_handle);
if (err == ESP_ERR_NVS_NOT_FOUND) {
set_boot_count_in_nvs(0);
}
uint8_t boot_count;
TEST_ESP_OK(nvs_get_u8(boot_count_handle, "boot_count", &boot_count));
nvs_close(boot_count_handle);
return boot_count;
}
/* @brief Copies a current app to next partition using handle.
*
* @param[in] update_handle - Handle of API ota.
* @param[in] cur_app - Current app.
*/
static void copy_app_partition(esp_ota_handle_t update_handle, const esp_partition_t *curr_app)
{
const void *partition_bin = NULL;
esp_partition_mmap_handle_t data_map;
ESP_LOGI(TAG, "start the copy process");
TEST_ESP_OK(esp_partition_mmap(curr_app, 0, curr_app->size, ESP_PARTITION_MMAP_DATA, &partition_bin, &data_map));
TEST_ESP_OK(esp_ota_write(update_handle, (const void *)partition_bin, curr_app->size));
esp_partition_munmap(data_map);
ESP_LOGI(TAG, "finish the copy process");
}
/* @brief Copies a current app to next partition using handle.
*
* @param[in] update_handle - Handle of API ota.
* @param[in] cur_app - Current app.
*/
static void copy_app_partition_with_offset(esp_ota_handle_t update_handle, const esp_partition_t *curr_app)
{
const void *partition_bin = NULL;
esp_partition_mmap_handle_t data_map;
ESP_LOGI(TAG, "start the copy process");
uint32_t offset = 0, bytes_to_write = curr_app->size;
uint32_t write_bytes;
while (bytes_to_write > 0) {
write_bytes = (bytes_to_write > (4 * 1024)) ? (4 * 1024) : bytes_to_write;
TEST_ESP_OK(esp_partition_mmap(curr_app, offset, write_bytes, ESP_PARTITION_MMAP_DATA, &partition_bin, &data_map));
TEST_ESP_OK(esp_ota_write_with_offset(update_handle, (const void *)partition_bin, write_bytes, offset));
esp_partition_munmap(data_map);
bytes_to_write -= write_bytes;
offset += write_bytes;
}
ESP_LOGI(TAG, "finish the copy process");
}
/* @brief Get the next partition of OTA for the update.
*
* @return The next partition of OTA(OTA0-15).
*/
static const esp_partition_t * get_next_update_partition(void)
{
const esp_partition_t *update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, update_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%"PRIx32, update_partition->subtype, update_partition->address);
return update_partition;
}
/* @brief Copies a current app to next partition (OTA0-15) and then configure OTA data for a new boot partition.
*
* @param[in] cur_app_partition - Current app.
* @param[in] next_app_partition - Next app for boot.
*/
static void copy_current_app_to_next_part(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition)
{
esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, next_app_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%"PRIx32, next_app_partition->subtype, next_app_partition->address);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(next_app_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition(update_handle, cur_app_partition);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(next_app_partition));
}
/* @brief Copies a current app to next partition (OTA0-15) and then configure OTA data for a new boot partition.
*
* @param[in] cur_app_partition - Current app.
* @param[in] next_app_partition - Next app for boot.
*/
static void copy_current_app_to_next_part_with_offset(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition)
{
esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, next_app_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%"PRIx32, next_app_partition->subtype, next_app_partition->address);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(next_app_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition_with_offset(update_handle, cur_app_partition);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(next_app_partition));
}
/* @brief Erase otadata partition
*/
static void erase_ota_data(void)
{
const esp_partition_t *data_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_EQUAL(NULL, data_partition);
TEST_ESP_OK(esp_partition_erase_range(data_partition, 0, 2 * data_partition->erase_size));
}
/* @brief Reboots ESP using mode deep sleep. This mode guaranty that RTC_DATA_ATTR variables is not reset.
*/
static void reboot_as_deep_sleep(void)
{
ESP_LOGI(TAG, "reboot as deep sleep");
esp_deep_sleep(20000);
TEST_FAIL_MESSAGE("Should never be reachable except when sleep is rejected, abort");
}
/* @brief Copies a current app to next partition (OTA0-15), after that ESP is rebooting and run this (the next) OTAx.
*/
static void copy_current_app_to_next_part_and_reboot(void)
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
ESP_LOGI(TAG, "copy current app to next part");
copy_current_app_to_next_part(cur_app, get_next_update_partition());
reboot_as_deep_sleep();
}
/* @brief Copies a current app to next partition (OTA0-15) using esp_ota_write_with_offest(), after that ESP is rebooting and run this (the next) OTAx.
*/
static void copy_current_app_to_next_part_with_offset_and_reboot(void)
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
ESP_LOGI(TAG, "copy current app to next part");
copy_current_app_to_next_part_with_offset(cur_app, get_next_update_partition());
reboot_as_deep_sleep();
}
/* @brief Get running app.
*
* @return The next partition of OTA(OTA0-15).
*/
static const esp_partition_t* get_running_firmware(void)
{
const esp_partition_t *configured = esp_ota_get_boot_partition();
const esp_partition_t *running = esp_ota_get_running_partition();
ESP_LOGI(TAG, "Running partition type %d subtype %d (offset 0x%08"PRIx32")",
running->type, running->subtype, running->address);
ESP_LOGI(TAG, "Configured partition type %d subtype %d (offset 0x%08"PRIx32")",
configured->type, configured->subtype, configured->address);
TEST_ASSERT_NOT_EQUAL(NULL, configured);
TEST_ASSERT_NOT_EQUAL(NULL, running);
if (running->subtype != ESP_PARTITION_SUBTYPE_APP_TEST) {
TEST_ASSERT_EQUAL_PTR(running, configured);
}
return running;
}
// type of a corrupt ota_data
typedef enum {
CORR_CRC_1_SECTOR_OTA_DATA = (1 << 0), /*!< Corrupt CRC only 1 sector of ota_data */
CORR_CRC_2_SECTOR_OTA_DATA = (1 << 1), /*!< Corrupt CRC only 2 sector of ota_data */
} corrupt_ota_data_t;
/* @brief Get two copies ota_data from otadata partition.
*
* @param[in] otadata_partition - otadata partition.
* @param[out] ota_data_0 - First copy from otadata_partition.
* @param[out] ota_data_1 - Second copy from otadata_partition.
*/
static void get_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data_0, esp_ota_select_entry_t *ota_data_1)
{
uint32_t offset = otadata_partition->address;
uint32_t size = otadata_partition->size;
if (offset != 0) {
const esp_ota_select_entry_t *ota_select_map;
ota_select_map = bootloader_mmap(offset, size);
TEST_ASSERT_NOT_EQUAL(NULL, ota_select_map);
memcpy(ota_data_0, ota_select_map, sizeof(esp_ota_select_entry_t));
memcpy(ota_data_1, (uint8_t *)ota_select_map + otadata_partition->erase_size, sizeof(esp_ota_select_entry_t));
bootloader_munmap(ota_select_map);
}
}
/* @brief Writes a ota_data into required sector of otadata_partition.
*
* @param[in] otadata_partition - Partition information otadata.
* @param[in] ota_data - otadata structure.
* @param[in] sec_id - Sector number 0 or 1.
*/
static void write_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data, int sec_id)
{
esp_partition_write(otadata_partition, otadata_partition->erase_size * sec_id, &ota_data[sec_id], sizeof(esp_ota_select_entry_t));
}
/* @brief Makes a corrupt of ota_data.
* @param[in] err - type error
*/
static void corrupt_ota_data(corrupt_ota_data_t err)
{
esp_ota_select_entry_t ota_data[2];
const esp_partition_t *otadata_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_EQUAL(NULL, otadata_partition);
get_ota_data(otadata_partition, &ota_data[0], &ota_data[1]);
if (err & CORR_CRC_1_SECTOR_OTA_DATA) {
ota_data[0].crc = 0;
}
if (err & CORR_CRC_2_SECTOR_OTA_DATA) {
ota_data[1].crc = 0;
}
TEST_ESP_OK(esp_partition_erase_range(otadata_partition, 0, otadata_partition->size));
write_ota_data(otadata_partition, &ota_data[0], 0);
write_ota_data(otadata_partition, &ota_data[1], 1);
}
#if defined(CONFIG_BOOTLOADER_FACTORY_RESET) || defined(CONFIG_BOOTLOADER_APP_TEST)
/* @brief Sets the pin number to output and sets output level as low. After reboot (deep sleep) this pin keep the same level.
*
* The output level of the pad will be force locked and can not be changed.
* Power down or call gpio_hold_dis will disable this function.
*
* @param[in] num_pin - Pin number
*/
static void set_output_pin(uint32_t num_pin)
{
TEST_ESP_OK(gpio_hold_dis(num_pin));
gpio_config_t io_conf;
io_conf.intr_type = GPIO_INTR_DISABLE;
io_conf.mode = GPIO_MODE_OUTPUT;
io_conf.pin_bit_mask = (1ULL << num_pin);
io_conf.pull_down_en = 0;
io_conf.pull_up_en = 0;
TEST_ESP_OK(gpio_config(&io_conf));
TEST_ESP_OK(gpio_set_level(num_pin, 0));
TEST_ESP_OK(gpio_hold_en(num_pin));
}
/* @brief Unset the pin number hold function.
*/
static void reset_output_pin(uint32_t num_pin)
{
TEST_ESP_OK(gpio_hold_dis(num_pin));
TEST_ESP_OK(gpio_reset_pin(num_pin));
}
#endif
static void mark_app_valid(void)
{
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
#endif
}
/* @brief Checks and prepares the partition so that the factory app is launched after that.
*/
@@ -248,6 +541,20 @@ static void test_flow5(void)
TEST_CASE_MULTIPLE_STAGES("Switching between factory, test, factory", "[app_update][timeout=90][reset=SW_CPU_RESET, SW_CPU_RESET, DEEPSLEEP_RESET]", start_test, test_flow5, test_flow5, test_flow5);
#endif
static const esp_partition_t* app_update(void)
{
const esp_partition_t *cur_app = get_running_firmware();
const esp_partition_t* update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(update_partition);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(update_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition(update_handle, cur_app);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(update_partition));
return update_partition;
}
static void test_rollback1(void)
{
uint8_t boot_count = get_boot_count_from_nvs();
@@ -537,132 +844,3 @@ TEST_CASE("Test bootloader_common_get_sha256_of_partition returns ESP_ERR_IMAGE_
TEST_ESP_ERR(ESP_ERR_IMAGE_INVALID, bootloader_common_get_sha256_of_partition(other_app->address, other_app->size, other_app->type, sha_256_other_app));
TEST_ASSERT_EQUAL_MEMORY_MESSAGE(sha_256_cur_app, sha_256_other_app, sizeof(sha_256_cur_app), "must be the same");
}
static void test_rollback3(void)
{
uint8_t boot_count = get_boot_count_from_nvs();
boot_count++;
set_boot_count_in_nvs(boot_count);
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
const esp_partition_t* update_partition = NULL;
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
update_partition = app_update();
reboot_as_deep_sleep();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
update_partition = app_update();
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
update_partition = esp_ota_get_next_update_partition(NULL);
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// two partitions are valid
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
esp_ota_img_states_t ota_state;
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
#endif
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(update_partition, OTA_SIZE_UNKNOWN, &update_handle));
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// After esp_ota_begin, the only one partition is valid
// ota data slots do not have an entry about the update_partition.
TEST_ESP_ERR(ESP_ERR_NOT_FOUND, esp_ota_get_state_partition(update_partition, &ota_state));
#endif
copy_app_partition(update_handle, get_running_firmware());
TEST_ESP_OK(esp_ota_end(update_handle));
// esp_ota_set_boot_partition is not called, so the running app will not be changed after reboot
reboot_as_deep_sleep();
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
static void test_rollback3_1(void)
{
set_boot_count_in_nvs(5);
uint8_t boot_count = get_boot_count_from_nvs();
esp_ota_img_states_t ota_state = 0x5555AAAA;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
const esp_partition_t* next_update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(next_update_partition);
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// ota data slots do not have an entry about the next_update_partition.
TEST_ESP_ERR(ESP_ERR_NOT_FOUND, esp_ota_get_state_partition(next_update_partition, &ota_state));
#endif
erase_ota_data();
}
TEST_CASE_MULTIPLE_STAGES("Test rollback. Updated partition invalidated after esp_ota_begin", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback3, test_rollback3, test_rollback3, test_rollback3_1);
static void test_rollback4(void)
{
uint8_t boot_count = get_boot_count_from_nvs();
boot_count++;
set_boot_count_in_nvs(boot_count);
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
app_update();
reboot_as_deep_sleep();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
app_update();
// Do not reboot and call app_update again.
// This will not change the running partition since we haven't rebooted.
// The esp_rewrite_otadata() will update the otadata for the non-running partition only.
app_update();
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// The last call to esp_rewrite_otadata should have updated the otadata for the non-running partition only.
// Therefore, calling esp_ota_get_state_partition on the running partition should succeed and not return ESP_ERR_NOT_FOUND
const esp_partition_t* running_partition;
running_partition = esp_ota_get_running_partition();
esp_ota_img_states_t ota_state;
TEST_ESP_OK(esp_ota_get_state_partition(running_partition, &ota_state));
#endif
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
TEST_CASE_MULTIPLE_STAGES("Test esp_rewrite_otadata. Updated sequence number for non-running partition always", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback4, test_rollback4, test_rollback4);

View File

@@ -1,307 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "esp_rom_spiflash.h"
#include "driver/gpio.h"
#include "nvs_flash.h"
#include "esp_partition.h"
#include "esp_flash_partitions.h"
#include "esp_image_format.h"
#include "../bootloader_flash/include/bootloader_flash_priv.h"
#include "esp_sleep.h"
#include "esp_ota_ops.h"
#include "esp_err.h"
#include "esp_log.h"
#include "test_utils.h"
#include "utils_update.h"
#include "unity.h"
#include "sdkconfig.h"
#define BOOT_COUNT_NAMESPACE "boot_count"
static const char *TAG = "ota_test";
void set_boot_count_in_nvs(uint8_t boot_count)
{
nvs_handle_t boot_count_handle;
esp_err_t err = nvs_open(BOOT_COUNT_NAMESPACE, NVS_READWRITE, &boot_count_handle);
if (err != ESP_OK) {
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open(BOOT_COUNT_NAMESPACE, NVS_READWRITE, &boot_count_handle));
}
TEST_ESP_OK(nvs_set_u8(boot_count_handle, "boot_count", boot_count));
TEST_ESP_OK(nvs_commit(boot_count_handle));
nvs_close(boot_count_handle);
}
uint8_t get_boot_count_from_nvs(void)
{
nvs_handle_t boot_count_handle;
esp_err_t err = nvs_open(BOOT_COUNT_NAMESPACE, NVS_READONLY, &boot_count_handle);
if (err == ESP_ERR_NVS_NOT_FOUND) {
set_boot_count_in_nvs(0);
}
uint8_t boot_count;
TEST_ESP_OK(nvs_get_u8(boot_count_handle, "boot_count", &boot_count));
nvs_close(boot_count_handle);
return boot_count;
}
/* @brief Copies a current app to next partition using handle.
*
* @param[in] update_handle - Handle of API ota.
* @param[in] cur_app - Current app.
*/
void copy_app_partition(esp_ota_handle_t update_handle, const esp_partition_t *curr_app)
{
const void *partition_bin = NULL;
esp_partition_mmap_handle_t data_map;
ESP_LOGI(TAG, "start the copy process");
TEST_ESP_OK(esp_partition_mmap(curr_app, 0, curr_app->size, ESP_PARTITION_MMAP_DATA, &partition_bin, &data_map));
TEST_ESP_OK(esp_ota_write(update_handle, (const void *)partition_bin, curr_app->size));
esp_partition_munmap(data_map);
ESP_LOGI(TAG, "finish the copy process");
}
/* @brief Copies a current app to next partition using handle.
*
* @param[in] update_handle - Handle of API ota.
* @param[in] cur_app - Current app.
*/
void copy_app_partition_with_offset(esp_ota_handle_t update_handle, const esp_partition_t *curr_app)
{
const void *partition_bin = NULL;
esp_partition_mmap_handle_t data_map;
ESP_LOGI(TAG, "start the copy process");
uint32_t offset = 0, bytes_to_write = curr_app->size;
uint32_t write_bytes;
while (bytes_to_write > 0) {
write_bytes = (bytes_to_write > (4 * 1024)) ? (4 * 1024) : bytes_to_write;
TEST_ESP_OK(esp_partition_mmap(curr_app, offset, write_bytes, ESP_PARTITION_MMAP_DATA, &partition_bin, &data_map));
TEST_ESP_OK(esp_ota_write_with_offset(update_handle, (const void *)partition_bin, write_bytes, offset));
esp_partition_munmap(data_map);
bytes_to_write -= write_bytes;
offset += write_bytes;
}
ESP_LOGI(TAG, "finish the copy process");
}
/* @brief Get the next partition of OTA for the update.
*
* @return The next partition of OTA(OTA0-15).
*/
const esp_partition_t * get_next_update_partition(void)
{
const esp_partition_t *update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, update_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%"PRIx32, update_partition->subtype, update_partition->address);
return update_partition;
}
/* @brief Copies a current app to next partition (OTA0-15) and then configure OTA data for a new boot partition.
*
* @param[in] cur_app_partition - Current app.
* @param[in] next_app_partition - Next app for boot.
*/
void copy_current_app_to_next_part(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition)
{
esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, next_app_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%"PRIx32, next_app_partition->subtype, next_app_partition->address);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(next_app_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition(update_handle, cur_app_partition);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(next_app_partition));
}
/* @brief Copies a current app to next partition (OTA0-15) and then configure OTA data for a new boot partition.
*
* @param[in] cur_app_partition - Current app.
* @param[in] next_app_partition - Next app for boot.
*/
void copy_current_app_to_next_part_with_offset(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition)
{
esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, next_app_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%"PRIx32, next_app_partition->subtype, next_app_partition->address);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(next_app_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition_with_offset(update_handle, cur_app_partition);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(next_app_partition));
}
/* @brief Erase otadata partition
*/
void erase_ota_data(void)
{
const esp_partition_t *data_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_EQUAL(NULL, data_partition);
TEST_ESP_OK(esp_partition_erase_range(data_partition, 0, 2 * data_partition->erase_size));
}
/* @brief Reboots ESP using mode deep sleep. This mode guaranty that RTC_DATA_ATTR variables is not reset.
*/
void reboot_as_deep_sleep(void)
{
ESP_LOGI(TAG, "reboot as deep sleep");
esp_deep_sleep(20000);
TEST_FAIL_MESSAGE("Should never be reachable except when sleep is rejected, abort");
}
/* @brief Copies a current app to next partition (OTA0-15), after that ESP is rebooting and run this (the next) OTAx.
*/
void copy_current_app_to_next_part_and_reboot(void)
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
ESP_LOGI(TAG, "copy current app to next part");
copy_current_app_to_next_part(cur_app, get_next_update_partition());
reboot_as_deep_sleep();
}
/* @brief Copies a current app to next partition (OTA0-15) using esp_ota_write_with_offest(), after that ESP is rebooting and run this (the next) OTAx.
*/
void copy_current_app_to_next_part_with_offset_and_reboot(void)
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
ESP_LOGI(TAG, "copy current app to next part");
copy_current_app_to_next_part_with_offset(cur_app, get_next_update_partition());
reboot_as_deep_sleep();
}
/* @brief Get running app.
*
* @return The next partition of OTA(OTA0-15).
*/
const esp_partition_t* get_running_firmware(void)
{
const esp_partition_t *configured = esp_ota_get_boot_partition();
const esp_partition_t *running = esp_ota_get_running_partition();
// If a reboot hasn't occurred after app_update(), the configured and running partitions may differ
ESP_LOGI(TAG, "Running partition type %d subtype %d (offset 0x%08"PRIx32")",
running->type, running->subtype, running->address);
ESP_LOGI(TAG, "Configured partition type %d subtype %d (offset 0x%08"PRIx32")",
configured->type, configured->subtype, configured->address);
TEST_ASSERT_NOT_EQUAL(NULL, configured);
TEST_ASSERT_NOT_EQUAL(NULL, running);
return running;
}
/* @brief Get two copies ota_data from otadata partition.
*
* @param[in] otadata_partition - otadata partition.
* @param[out] ota_data_0 - First copy from otadata_partition.
* @param[out] ota_data_1 - Second copy from otadata_partition.
*/
void get_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data_0, esp_ota_select_entry_t *ota_data_1)
{
uint32_t offset = otadata_partition->address;
uint32_t size = otadata_partition->size;
if (offset != 0) {
const esp_ota_select_entry_t *ota_select_map;
ota_select_map = bootloader_mmap(offset, size);
TEST_ASSERT_NOT_EQUAL(NULL, ota_select_map);
memcpy(ota_data_0, ota_select_map, sizeof(esp_ota_select_entry_t));
memcpy(ota_data_1, (uint8_t *)ota_select_map + otadata_partition->erase_size, sizeof(esp_ota_select_entry_t));
bootloader_munmap(ota_select_map);
}
}
/* @brief Writes a ota_data into required sector of otadata_partition.
*
* @param[in] otadata_partition - Partition information otadata.
* @param[in] ota_data - otadata structure.
* @param[in] sec_id - Sector number 0 or 1.
*/
void write_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data, int sec_id)
{
esp_partition_write(otadata_partition, otadata_partition->erase_size * sec_id, &ota_data[sec_id], sizeof(esp_ota_select_entry_t));
}
/* @brief Makes a corrupt of ota_data.
* @param[in] err - type error
*/
void corrupt_ota_data(corrupt_ota_data_t err)
{
esp_ota_select_entry_t ota_data[2];
const esp_partition_t *otadata_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_EQUAL(NULL, otadata_partition);
get_ota_data(otadata_partition, &ota_data[0], &ota_data[1]);
if (err & CORR_CRC_1_SECTOR_OTA_DATA) {
ota_data[0].crc = 0;
}
if (err & CORR_CRC_2_SECTOR_OTA_DATA) {
ota_data[1].crc = 0;
}
TEST_ESP_OK(esp_partition_erase_range(otadata_partition, 0, otadata_partition->size));
write_ota_data(otadata_partition, &ota_data[0], 0);
write_ota_data(otadata_partition, &ota_data[1], 1);
}
#if defined(CONFIG_BOOTLOADER_FACTORY_RESET) || defined(CONFIG_BOOTLOADER_APP_TEST)
/* @brief Sets the pin number to output and sets output level as low. After reboot (deep sleep) this pin keep the same level.
*
* The output level of the pad will be force locked and can not be changed.
* Power down or call gpio_hold_dis will disable this function.
*
* @param[in] num_pin - Pin number
*/
void set_output_pin(uint32_t num_pin)
{
TEST_ESP_OK(gpio_hold_dis(num_pin));
gpio_config_t io_conf;
io_conf.intr_type = GPIO_INTR_DISABLE;
io_conf.mode = GPIO_MODE_OUTPUT;
io_conf.pin_bit_mask = (1ULL << num_pin);
io_conf.pull_down_en = 0;
io_conf.pull_up_en = 0;
TEST_ESP_OK(gpio_config(&io_conf));
TEST_ESP_OK(gpio_set_level(num_pin, 0));
TEST_ESP_OK(gpio_hold_en(num_pin));
}
/* @brief Unset the pin number hold function.
*/
void reset_output_pin(uint32_t num_pin)
{
TEST_ESP_OK(gpio_hold_dis(num_pin));
TEST_ESP_OK(gpio_reset_pin(num_pin));
}
#endif
void mark_app_valid(void)
{
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
#endif
}
const esp_partition_t* app_update(void)
{
const esp_partition_t *cur_app = get_running_firmware();
const esp_partition_t* update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(update_partition);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(update_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition(update_handle, cur_app);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(update_partition));
return update_partition;
}

View File

@@ -1,148 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include <stdint.h>
#include "esp_ota_ops.h"
#include "esp_partition.h"
#ifdef __cplusplus
extern "C"
{
#endif
/**
* @brief Enumeration for specifying which OTA data sectors' CRCs to corrupt.
*/
typedef enum {
CORR_CRC_1_SECTOR_OTA_DATA = (1 << 0), /*!< Corrupt CRC only 1 sector of ota_data */
CORR_CRC_2_SECTOR_OTA_DATA = (1 << 1), /*!< Corrupt CRC only 2 sector of ota_data */
} corrupt_ota_data_t;
/**
* @brief Set boot count value in NVS.
* @param boot_count Value to set.
*/
void set_boot_count_in_nvs(uint8_t boot_count);
/**
* @brief Get boot count value from NVS.
* @return Boot count value.
*/
uint8_t get_boot_count_from_nvs(void);
/**
* @brief Copy current app to next partition using OTA handle.
* @param update_handle OTA update handle.
* @param curr_app Current app partition.
*/
void copy_app_partition(esp_ota_handle_t update_handle, const esp_partition_t *curr_app);
/**
* @brief Copy current app to next partition using OTA handle with offset.
* @param update_handle OTA update handle.
* @param curr_app Current app partition.
*/
void copy_app_partition_with_offset(esp_ota_handle_t update_handle, const esp_partition_t *curr_app);
/**
* @brief Get the next OTA update partition.
* @return Pointer to next OTA partition.
*/
const esp_partition_t * get_next_update_partition(void);
/**
* @brief Copy current app to next partition and set boot partition.
* @param cur_app_partition Current app partition.
* @param next_app_partition Next app partition.
*/
void copy_current_app_to_next_part(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition);
/**
* @brief Copy current app to next partition with offset and set boot partition.
* @param cur_app_partition Current app partition.
* @param next_app_partition Next app partition.
*/
void copy_current_app_to_next_part_with_offset(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition);
/**
* @brief Erase OTA data partition.
*/
void erase_ota_data(void);
/**
* @brief Reboot ESP using deep sleep mode.
*/
void reboot_as_deep_sleep(void);
/**
* @brief Copy current app to next partition and reboot.
*/
void copy_current_app_to_next_part_and_reboot(void);
/**
* @brief Copy current app to next partition with offset and reboot.
*/
void copy_current_app_to_next_part_with_offset_and_reboot(void);
/**
* @brief Get running firmware partition.
* @return Pointer to running firmware partition.
*/
const esp_partition_t* get_running_firmware(void);
/**
* @brief Get two OTA data copies from OTA data partition.
* @param otadata_partition OTA data partition.
* @param ota_data_0 First OTA data copy.
* @param ota_data_1 Second OTA data copy.
*/
void get_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data_0, esp_ota_select_entry_t *ota_data_1);
/**
* @brief Write OTA data into required sector of OTA data partition.
* @param otadata_partition OTA data partition.
* @param ota_data OTA data structure.
* @param sec_id Sector number (0 or 1).
*/
void write_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data, int sec_id);
/**
* @brief Corrupt OTA data for testing.
* @param err Type of corruption.
*/
void corrupt_ota_data(corrupt_ota_data_t err);
#if defined(CONFIG_BOOTLOADER_FACTORY_RESET) || defined(CONFIG_BOOTLOADER_APP_TEST)
/**
* @brief Set output pin to low and hold state.
* @param num_pin Pin number.
*/
void set_output_pin(uint32_t num_pin);
/**
* @brief Reset output pin hold function.
* @param num_pin Pin number.
*/
void reset_output_pin(uint32_t num_pin);
#endif
/**
* @brief Mark app as valid and cancel rollback.
*/
void mark_app_valid(void);
/**
* @brief Perform app update and set new boot partition.
* @return Pointer to updated partition.
*/
const esp_partition_t* app_update(void);
#ifdef __cplusplus
}
#endif

View File

@@ -1,15 +1,16 @@
# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0
import re
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
DEFAULT_TIMEOUT = 20
TEST_SUBMENU_PATTERN_PYTEST = re.compile(rb'\s+\((\d+)\)\s+"([^"]+)"\r?\n')
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='C5 has not supported deep sleep') # TODO: [ESP32C5] IDF-8640, IDF-10317
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@@ -18,11 +19,13 @@ TEST_SUBMENU_PATTERN_PYTEST = re.compile(rb'\s+\((\d+)\)\s+"([^"]+)"\r?\n')
],
indirect=True,
)
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
def test_app_update(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=180)
dut.run_all_single_board_cases(timeout=90)
@pytest.mark.supported_targets
# TODO: [ESP32C61] IDF-9245, IDF-10983
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='C61 has not supported deep sleep')
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@@ -31,11 +34,12 @@ def test_app_update(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
def test_app_update_xip_psram(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=180)
dut.run_all_single_board_cases(timeout=90)
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='C5 has not supported deep sleep') # TODO: [ESP32C5] IDF-8640, IDF-10317
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@@ -44,34 +48,5 @@ def test_app_update_xip_psram(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
def test_app_update_xip_psram_rom_impl(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=180)
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
[
'rollback',
],
indirect=True,
)
@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32s3', 'esp32p4'], indirect=['target'])
def test_app_update_with_rollback(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=180)
@pytest.mark.recovery_bootloader
@pytest.mark.parametrize(
'config',
['recovery_bootloader'],
indirect=True,
)
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
def test_recovery_bootloader_update(dut: Dut) -> None:
try:
dut.run_all_single_board_cases(group='recovery_bootloader', timeout=90)
finally:
# Erase recovery bootloader after test because it may interfere with other tests using this runner
dut.serial.erase_flash()
dut.run_all_single_board_cases(timeout=90)

View File

@@ -1,3 +0,0 @@
CONFIG_BOOTLOADER_RECOVERY_ENABLE=y
CONFIG_BOOTLOADER_RECOVERY_OFFSET=0x3F0000
CONFIG_PARTITION_TABLE_OFFSET=0x9000

View File

@@ -1,2 +0,0 @@
# ESP32C5 supports the Recovery bootloader feature in ROM starting from v1.0 (ECO2)
CONFIG_IDF_TARGET="esp32c5"

View File

@@ -1,2 +0,0 @@
# ESP32C61 supports the Recovery bootloader feature in ROM starting from v1.0 (ECO3)
CONFIG_IDF_TARGET="esp32c61"

View File

@@ -1 +0,0 @@
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y

View File

@@ -1,3 +0,0 @@
CONFIG_IDF_TARGET="esp32c5"
CONFIG_BOOTLOADER_NUM_PIN_APP_TEST=18
CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET=4

View File

@@ -1,5 +1,4 @@
idf_build_get_property(target IDF_TARGET)
idf_build_get_property(esp_tee_build ESP_TEE_BUILD)
if(${target} STREQUAL "linux")
return() # This component is not supported by the POSIX/Linux simulator
@@ -8,9 +7,7 @@ endif()
idf_component_register(PRIV_REQUIRES partition_table esptool_py)
# Do not generate flash file when building bootloader or is in early expansion of the build
# This also applies to the ESP-TEE build, as the esp_tee component only requires the
# Kconfig options from the bootloader
if(BOOTLOADER_BUILD OR esp_tee_build OR NOT CONFIG_APP_BUILD_BOOTLOADER)
if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER)
return()
endif()

View File

@@ -1,68 +0,0 @@
menu "Application Rollback"
config BOOTLOADER_APP_ROLLBACK_ENABLE
bool "Enable app rollback support"
default n
help
After updating the app, the bootloader runs a new app with the "ESP_OTA_IMG_PENDING_VERIFY" state set.
This state prevents the re-run of this app. After the first boot of the new app in the user code, the
function should be called to confirm the operability of the app or vice versa about its non-operability.
If the app is working, then it is marked as valid. Otherwise, it is marked as not valid and rolls back to
the previous working app. A reboot is performed, and the app is booted before the software update.
Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
Rollback is possible only between the apps with the same security versions.
config BOOTLOADER_APP_ANTI_ROLLBACK
bool "Enable app anti-rollback support"
depends on BOOTLOADER_APP_ROLLBACK_ENABLE
default n
help
This option prevents rollback to previous firmware/application image with lower security version.
config BOOTLOADER_APP_SECURE_VERSION
int "eFuse secure version of app"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
default 0
help
The secure version is the sequence number stored in the header of each firmware.
The security version is set in the bootloader, version is recorded in the eFuse field
as the number of set ones. The allocated number of bits in the efuse field
for storing the security version is limited (see BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD option).
Bootloader: When bootloader selects an app to boot, an app is selected that has
a security version greater or equal that recorded in eFuse field.
The app is booted with a higher (or equal) secure version.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
Your partition table should has a scheme with ota_0 + ota_1 (without factory).
config BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
int "Size of the efuse secure version field"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
range 1 32 if IDF_TARGET_ESP32
default 32 if IDF_TARGET_ESP32
range 1 4 if IDF_TARGET_ESP32C2
default 4 if IDF_TARGET_ESP32C2
range 1 16
default 16
help
The size of the efuse secure version field.
Its length is limited to 32 bits for ESP32 and 16 bits for ESP32-S2.
This determines how many times the security version can be increased.
config BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
bool "Emulate operations with efuse secure version(only test)"
default n
depends on BOOTLOADER_APP_ANTI_ROLLBACK
select EFUSE_VIRTUAL
select EFUSE_VIRTUAL_KEEP_IN_FLASH
help
This option allows to emulate read/write operations with all eFuses and efuse secure version.
It allows to test anti-rollback implementation without permanent write eFuse bits.
There should be an entry in partition table with following details: `emul_efuse, data, efuse, , 0x2000`.
This option enables: EFUSE_VIRTUAL and EFUSE_VIRTUAL_KEEP_IN_FLASH.
endmenu

View File

@@ -1,54 +0,0 @@
menu "Recovery Bootloader and Rollback"
config BOOTLOADER_RECOVERY_ENABLE
bool "Enable Recovery Bootloader"
depends on SOC_RECOVERY_BOOTLOADER_SUPPORTED
default n
help
The recovery bootloader feature is implemented in the ROM bootloader. It is required for safe OTA
updates of the bootloader. The feature is activated when the eFuse field
(ESP_EFUSE_RECOVERY_BOOTLOADER_FLASH_SECTOR) is set, which defines the flash address of the
recovery bootloader. If activated and the primary bootloader fails to load, the ROM bootloader
will attempt to load the recovery bootloader from the address specified in eFuse.
config BOOTLOADER_RECOVERY_OFFSET
hex "Recovery Bootloader Flash Offset"
depends on BOOTLOADER_RECOVERY_ENABLE
default 0x3F0000
range 0x0 0xFFE000
help
Flash address where the recovery bootloader is stored.
This value must be written to the eFuse field (ESP_EFUSE_RECOVERY_BOOTLOADER_FLASH_SECTOR)
to activate the recovery bootloader in the ROM bootloader. The eFuse can be programmed
using espefuse.py or in the user application with the API esp_efuse_set_recovery_bootloader_offset().
Setting this value in the config allows parttool.py to verify that it does not overlap with existing
partitions in the partition table.
The address must be a multiple of the flash sector size (0x1000 bytes).
The eFuse field stores the offset in sectors.
If the feature is no longer needed or unused, you can burn the 0xFFF value to disable this feature in
the ROM bootloader.
config BOOTLOADER_ANTI_ROLLBACK_ENABLE
bool "Enable bootloader rollback support"
depends on BOOTLOADER_RECOVERY_ENABLE
default n
help
This option prevents rollback to previous bootloader image with lower security version.
config BOOTLOADER_SECURE_VERSION
int "Secure version of bootloader"
depends on BOOTLOADER_ANTI_ROLLBACK_ENABLE
default 0
range 0 4
help
The secure version is the sequence number stored in the header of each bootloader.
The ROM Bootloader which runs the 2nd stage bootloader (PRIMARY or RECOVERY) checks that
the security version is greater or equal that recorded in the eFuse field.
Bootloaders that have a secure version in the image < secure version in efuse will not boot.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
endmenu

View File

@@ -1,26 +1,5 @@
menu "Log"
choice BOOTLOADER_LOG_VERSION
prompt "Log version"
help
Select the log version to be used by the ESP log component.
The app log version (CONFIG_LOG_VERSION) controls the version used in the bootloader,
preventing the selection of different versions.
For description of V1 and V2 see CONFIG_LOG_VERSION.
config BOOTLOADER_LOG_VERSION_1
bool "V1" if LOG_VERSION_1
config BOOTLOADER_LOG_VERSION_2
bool "V2" if LOG_VERSION_2
endchoice
config BOOTLOADER_LOG_VERSION
int
default 1 if BOOTLOADER_LOG_VERSION_1
default 2 if BOOTLOADER_LOG_VERSION_2
help
This configuration sets the log version number based on the chosen log version.
choice BOOTLOADER_LOG_LEVEL
bool "Bootloader log verbosity"
default BOOTLOADER_LOG_LEVEL_INFO
@@ -50,8 +29,6 @@ menu "Log"
default 4 if BOOTLOADER_LOG_LEVEL_DEBUG
default 5 if BOOTLOADER_LOG_LEVEL_VERBOSE
rsource "Kconfig.log.format"
rsource "Kconfig.log.settings"
orsource "Kconfig.log.format"
endmenu

View File

@@ -3,23 +3,11 @@ menu "Format"
config BOOTLOADER_LOG_COLORS
bool "Color"
default n
select BOOTLOADER_LOG_COLORS_SUPPORT if BOOTLOADER_LOG_VERSION_2
help
Enable ANSI terminal color codes. Logs (info, errors, warnings) will contain color codes.
Use ANSI terminal colors in log output
Enable ANSI terminal color codes.
In order to view these, your terminal program must support ANSI color codes.
config BOOTLOADER_LOG_COLORS_SUPPORT
bool "Allow enabling color output at run time"
depends on BOOTLOADER_LOG_VERSION_2
default n
help
Enables support for color codes in the esp_log() function. If CONFIG_LOG_COLORS is enabled, this option
is always active. If CONFIG_LOG_COLORS is disabled, this option allows you to still handle color codes
in specific files by defining ESP_LOG_COLOR_DISABLED as 0 before including esp_log.h.
Note that enabling this option may slightly increase RAM/FLASH usage due to additional color handling
functionality. It provides flexibility to manage color output even when CONFIG_LOG_COLORS is turned off.
choice BOOTLOADER_LOG_TIMESTAMP_SOURCE
prompt "Timestamp"
default BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS
@@ -40,25 +28,11 @@ menu "Format"
config BOOTLOADER_LOG_TIMESTAMP_SOURCE_NONE
bool "None"
depends on BOOTLOADER_LOG_VERSION_2
depends on NO_SYMBOL # hide it now, turn it on final MR
config BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS
bool "Milliseconds Since Boot"
select BOOTLOADER_LOG_TIMESTAMP_SUPPORT if BOOTLOADER_LOG_VERSION_2
endchoice # BOOTLOADER_LOG_TIMESTAMP_SOURCE
config BOOTLOADER_LOG_TIMESTAMP_SUPPORT
bool "Allow enabling timestamp output at run time"
depends on BOOTLOADER_LOG_VERSION_2
default y
help
Enables support for timestamp in the esp_log() function.
If CONFIG_LOG_TIMESTAMP_SOURCE_NONE, this option allows you to still handle timestamp
in specific files by defining ESP_LOG_TIMESTAMP_DISABLED as 0 before including esp_log.h.
Note that enabling this option may slightly increase RAM/FLASH usage due to additional timestamp handling
functionality. It provides flexibility to manage timestamp output even when
CONFIG_LOG_TIMESTAMP_SOURCE_NONE.
endmenu

View File

@@ -1,40 +0,0 @@
menu "Settings"
config BOOTLOADER_LOG_MODE_TEXT_EN
bool
config BOOTLOADER_LOG_MODE_BINARY_EN
bool
choice BOOTLOADER_LOG_MODE
prompt "Log Mode"
default BOOTLOADER_LOG_MODE_TEXT
config BOOTLOADER_LOG_MODE_TEXT
bool "Text Log Mode"
select BOOTLOADER_LOG_MODE_TEXT_EN
help
Enables text-based logging, where log messages are stored in a human-readable format.
This mode is useful for development and debugging, as it allows logs to be easily
read and interpreted without additional processing.
config BOOTLOADER_LOG_MODE_BINARY
bool "Binary Log Mode"
select BOOTLOADER_LOG_MODE_BINARY_EN
depends on BOOTLOADER_LOG_VERSION_2
help
Enables binary logging with host-side format string expansion. In this mode, the
format argument of ESP_LOGx, ESP_EARLY_LOG, and ESP_DRAM_LOG macros is stored in a
NOLOAD section, not included in the final binary file. This reduces flash usage by
approximately 10% - 35%. The esp_log() function uses the binary log handler to output
messages. Instead of sending the full log string, the chip transmits only the
addresses of these strings (if present in the ELF file). If the format string
cannot be found in the ELF file, the chip sends the entire string. The host-side
monitor tool, which has access to the ELF file, reconstructs the log message using
the format string.
This reduces firmware size by eliminating format strings from
flash memory and removing the usage of printf-like functions, potentially freeing up
a few kilobytes of space. To further reduce firmware size, wrap string data with ESP_LOG_ATTR_STR.
endchoice
endmenu

View File

@@ -1,14 +1,12 @@
menu "Bootloader config"
orsource "../esp_bootloader_format/Kconfig.bootloader"
orsource "Kconfig.app_rollback"
orsource "Kconfig.bootloader_rollback"
config BOOTLOADER_OFFSET_IN_FLASH
hex
default 0x1000 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2
# the first 2 sectors are reserved for the key manager with AES-XTS (flash encryption) purpose
default 0x2000 if IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32H4
default 0x2000 if IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32C5
default 0x0
help
Offset address that 2nd bootloader will be flashed to.
@@ -314,6 +312,71 @@ menu "Bootloader config"
- these options can increase the execution time.
Note: RTC_WDT will reset while encryption operations will be performed.
config BOOTLOADER_APP_ROLLBACK_ENABLE
bool "Enable app rollback support"
default n
help
After updating the app, the bootloader runs a new app with the "ESP_OTA_IMG_PENDING_VERIFY" state set.
This state prevents the re-run of this app. After the first boot of the new app in the user code, the
function should be called to confirm the operability of the app or vice versa about its non-operability.
If the app is working, then it is marked as valid. Otherwise, it is marked as not valid and rolls back to
the previous working app. A reboot is performed, and the app is booted before the software update.
Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
Rollback is possible only between the apps with the same security versions.
config BOOTLOADER_APP_ANTI_ROLLBACK
bool "Enable app anti-rollback support"
depends on BOOTLOADER_APP_ROLLBACK_ENABLE
default n
help
This option prevents rollback to previous firmware/application image with lower security version.
config BOOTLOADER_APP_SECURE_VERSION
int "eFuse secure version of app"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
default 0
help
The secure version is the sequence number stored in the header of each firmware.
The security version is set in the bootloader, version is recorded in the eFuse field
as the number of set ones. The allocated number of bits in the efuse field
for storing the security version is limited (see BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD option).
Bootloader: When bootloader selects an app to boot, an app is selected that has
a security version greater or equal that recorded in eFuse field.
The app is booted with a higher (or equal) secure version.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
Your partition table should has a scheme with ota_0 + ota_1 (without factory).
config BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
int "Size of the efuse secure version field"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
range 1 32 if IDF_TARGET_ESP32
default 32 if IDF_TARGET_ESP32
range 1 4 if IDF_TARGET_ESP32C2
default 4 if IDF_TARGET_ESP32C2
range 1 16
default 16
help
The size of the efuse secure version field.
Its length is limited to 32 bits for ESP32 and 16 bits for ESP32-S2.
This determines how many times the security version can be increased.
config BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
bool "Emulate operations with efuse secure version(only test)"
default n
depends on BOOTLOADER_APP_ANTI_ROLLBACK
select EFUSE_VIRTUAL
select EFUSE_VIRTUAL_KEEP_IN_FLASH
help
This option allows to emulate read/write operations with all eFuses and efuse secure version.
It allows to test anti-rollback implementation without permanent write eFuse bits.
There should be an entry in partition table with following details: `emul_efuse, data, efuse, , 0x2000`.
This option enables: EFUSE_VIRTUAL and EFUSE_VIRTUAL_KEEP_IN_FLASH.
config BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP
bool "Skip image validation when exiting deep sleep"
# note: dependencies for this config item are different to other "skip image validation"
@@ -534,7 +597,6 @@ menu "Security features"
config SECURE_SIGNED_APPS_RSA_SCHEME
bool "RSA"
depends on SECURE_BOOT_V2_RSA_SUPPORTED && (SECURE_SIGNED_APPS_NO_SECURE_BOOT || SECURE_BOOT_V2_ENABLED)
depends on !(IDF_TARGET_ESP32C5 && ESP32C5_REV_MIN_FULL < 1)
help
Appends the RSA-3072 based Signature block to the application.
Refer to <Secure Boot Version 2 documentation link> before enabling.
@@ -764,7 +826,7 @@ menu "Security features"
config SECURE_BOOT_FLASH_BOOTLOADER_DEFAULT
bool "Flash bootloader along with other artifacts when using the default flash command"
depends on SECURE_BOOT_V2_ENABLED
depends on SECURE_BOOT_V2_ENABLED && SECURE_BOOT_BUILD_SIGNED_BINARIES
default n
help
When Secure Boot V2 is enabled, by default the bootloader is not flashed along with other artifacts
@@ -1032,9 +1094,8 @@ menu "Security features"
DIS_USB_SERIAL_JTAG, DIS_FORCE_DOWNLOAD, DIS_TWAI, JTAG_SEL_ENABLE,
DIS_PAD_JTAG, DIS_DOWNLOAD_MANUAL_ENCRYPT.
ESP32-H2 & ESP32H21: DIS_ICACHE, DIS_ICACHE, DIS_USB_JTAG, POWERGLITCH_EN, DIS_FORCE_DOWNLOAD,
SPI_DOWNLOAD_MSPI_DIS, DIS_TWAI, JTAG_SEL_ENABLE, DIS_PAD_JTAG, DIS_DOWNLOAD_MANUAL_ENCRYPT,
DIS_USB_SERIAL_JTAG
ESP32-H2: DIS_ICACHE, DIS_USB_JTAG, POWERGLITCH_EN, DIS_FORCE_DOWNLOAD, SPI_DOWNLOAD_MSPI_DIS,
DIS_TWAI, JTAG_SEL_ENABLE, DIS_PAD_JTAG, DIS_DOWNLOAD_MANUAL_ENCRYPT.
ESP32-S2: DIS_ICACHE, DIS_DCACHE, DIS_DOWNLOAD_ICACHE, DIS_DOWNLOAD_DCACHE,
DIS_FORCE_DOWNLOAD, DIS_USB, DIS_TWAI, DIS_BOOT_REMAP, SOFT_DIS_JTAG,
@@ -1046,7 +1107,7 @@ menu "Security features"
endmenu # Potentially Insecure
config SECURE_FLASH_ENCRYPT_ONLY_IMAGE_LEN_IN_APP_PART
bool "Encrypt only the app image that is present in the partition of type app"
bool "Encrypt contents upto app image length in app partition"
depends on SECURE_FLASH_ENC_ENABLED && !SECURE_FLASH_REQUIRE_ALREADY_ENABLED
default y
help
@@ -1075,8 +1136,9 @@ menu "Security features"
config SECURE_FLASH_PSEUDO_ROUND_FUNC
bool "Permanently enable XTS-AES's pseudo rounds function"
default y
depends on SECURE_FLASH_ENCRYPTION_MODE_RELEASE && SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND
default y if SECURE_FLASH_ENCRYPTION_MODE_RELEASE
default n
depends on SECURE_FLASH_ENC_ENABLED && SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND
help
If set (default), the bootloader will permanently enable the XTS-AES peripheral's pseudo rounds function.
Note: Enabling this config would burn an efuse.
@@ -1162,7 +1224,7 @@ menu "Security features"
It is also possible to enable secure download mode at runtime by calling
esp_efuse_enable_rom_secure_download_mode()
Note: Secure Download mode is not available for ESP32 (includes revisions till ECO3).
Note: Secure Download mode is not available for ESP32.
config SECURE_INSECURE_ALLOW_DL_MODE
bool "UART ROM download mode (Enabled (not recommended))"

View File

@@ -1,9 +1,7 @@
idf_build_get_property(esp_tee_build ESP_TEE_BUILD)
set(BOOTLOADER_OFFSET ${CONFIG_BOOTLOADER_OFFSET_IN_FLASH})
# Do not generate flash file when building bootloader
if(BOOTLOADER_BUILD OR esp_tee_build OR NOT CONFIG_APP_BUILD_BOOTLOADER)
if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER)
return()
endif()
@@ -118,13 +116,8 @@ idf_build_get_property(sdkconfig SDKCONFIG)
idf_build_get_property(python PYTHON)
idf_build_get_property(extra_cmake_args EXTRA_CMAKE_ARGS)
# BOOTLOADER_EXTRA_COMPONENT_DIRS may have been set by the `main` component, do not overwrite it
idf_build_get_property(bootloader_extra_component_dirs BOOTLOADER_EXTRA_COMPONENT_DIRS)
list(APPEND bootloader_extra_component_dirs "${CMAKE_CURRENT_LIST_DIR}")
# We cannot pass lists as a parameter to the external project without modifying the ';' separator
# We cannot pass lists are a parameter to the external project without modifying the ';' separator
string(REPLACE ";" "|" BOOTLOADER_IGNORE_EXTRA_COMPONENT "${BOOTLOADER_IGNORE_EXTRA_COMPONENT}")
string(REPLACE ";" "|" bootloader_extra_component_dirs "${bootloader_extra_component_dirs}")
externalproject_add(bootloader
SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/subproject"
@@ -134,7 +127,7 @@ externalproject_add(bootloader
LIST_SEPARATOR |
CMAKE_ARGS -DSDKCONFIG=${sdkconfig} -DIDF_PATH=${idf_path} -DIDF_TARGET=${idf_target}
-DPYTHON_DEPS_CHECKED=1 -DPYTHON=${python}
-DEXTRA_COMPONENT_DIRS=${bootloader_extra_component_dirs}
-DEXTRA_COMPONENT_DIRS=${CMAKE_CURRENT_LIST_DIR}
-DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-DIGNORE_EXTRA_COMPONENT=${BOOTLOADER_IGNORE_EXTRA_COMPONENT}
${sign_key_arg} ${ver_key_arg}

View File

@@ -32,11 +32,10 @@ set(COMPONENTS
main
efuse
esp_system
newlib
esp_tee)
newlib)
# EXTRA_COMPONENT_DIRS can be populated with directories containing one or several components.
# Make sure this variable contains `bootloader_components` directory of the project being compiled.
# Make EXTRA_COMPONENT_DIRS variable to point to the bootloader_components directory
# of the project being compiled
set(PROJECT_EXTRA_COMPONENTS "${PROJECT_SOURCE_DIR}/bootloader_components")
if(EXISTS ${PROJECT_EXTRA_COMPONENTS})
list(APPEND EXTRA_COMPONENT_DIRS "${PROJECT_EXTRA_COMPONENTS}")
@@ -65,10 +64,6 @@ set(common_req log esp_rom esp_common esp_hw_support newlib)
idf_build_set_property(EXTRA_COMPONENT_EXCLUDE_DIRS "${EXTRA_COMPONENT_EXCLUDE_DIRS}")
idf_build_set_property(__COMPONENT_REQUIRES_COMMON "${common_req}")
idf_build_set_property(__OUTPUT_SDKCONFIG 0)
# Define a property for the default linker script
set(LD_DEFAULT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/main/ld/${IDF_TARGET}")
idf_build_set_property(BOOTLOADER_LINKER_SCRIPT "${LD_DEFAULT_PATH}/bootloader.ld" APPEND)
idf_build_set_property(BOOTLOADER_LINKER_SCRIPT "${LD_DEFAULT_PATH}/bootloader.rom.ld" APPEND)
project(bootloader)
idf_build_set_property(COMPILE_DEFINITIONS "BOOTLOADER_BUILD=1" APPEND)

View File

@@ -1,7 +1,12 @@
idf_component_register(SRCS "bootloader_start.c"
REQUIRES bootloader bootloader_support)
idf_build_get_property(scripts BOOTLOADER_LINKER_SCRIPT)
set(target_folder "${target}")
idf_build_get_property(target IDF_TARGET)
set(scripts "ld/${target_folder}/bootloader.ld")
list(APPEND scripts "ld/${target_folder}/bootloader.rom.ld")
target_linker_script(${COMPONENT_LIB} INTERFACE "${scripts}")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u bootloader_hooks_include")

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -53,11 +53,6 @@ void __attribute__((noreturn)) call_start_cpu0(void)
bootloader_reset();
}
// 2.1 Load the TEE image
#if CONFIG_SECURE_ENABLE_TEE
bootloader_utility_load_tee_image(&bs);
#endif
// 3. Load the app image for booting
bootloader_utility_load_boot_image(&bs, boot_index);
}
@@ -134,10 +129,8 @@ static int selected_boot_partition(const bootloader_state_t *bs)
return boot_index;
}
#if CONFIG_LIBC_NEWLIB
// Return global reent struct if any newlib functions are linked to bootloader
struct _reent *__getreent(void)
{
return _GLOBAL_REENT;
}
#endif

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -261,15 +261,4 @@ SECTIONS
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,7 +27,7 @@ bootloader_usable_dram_end = 0x3fcdcb70;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2800;
bootloader_iram_seg_len = 0x2000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -94,7 +94,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -272,17 +271,6 @@ SECTIONS
* And so forth...
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,7 +27,7 @@ bootloader_usable_dram_end = 0x3fcdc710;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2800;
bootloader_iram_seg_len = 0x2000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -94,7 +94,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -273,16 +272,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -7,24 +7,24 @@
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-C5 ROM static data usage is as follows:
* - 0x4084e5a0 - 0x4085c5a0: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4085c5a0 - 0x4085e5a0: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4085e5a0 - 0x40860000: ROM .bss and .data (not easily reclaimable)
* - 0x4084e9a0 - 0x4085c9a0: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4085c9a0 - 0x4085e9a0: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4085e9a0 - 0x40860000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4085c5a0).
* buffers area (0x4085c9a0).
*/
/* We consider 0x4085c5a0 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
/* We consider 0x4085c9a0 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
* and work out iram_seg and iram_loader_seg addresses from there, backwards.
*/
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x4085c5a0;
bootloader_usable_dram_end = 0x4085c9a0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2A00;
bootloader_iram_seg_len = 0x2200;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -45,7 +45,7 @@ MEMORY
* 2. Update the value in this assert.
* 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32c5/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x4084e5a0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
ASSERT(bootloader_iram_loader_seg_start == 0x4084E9A0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
@@ -92,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,48 +270,38 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4084e5a0 ------------------> _dram0_0_start
* 0x4084e9a0 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4085c5a0 ------------------> __stack_sentry
* 0x4085c9a0 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4085e5a0 ------------------> __stack (pro cpu)
* 0x4085e9a0 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4085f4f8 ------------------> _dram0_rtos_reserved_start
* 0x4085f500 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4085fbb4 ------------------> _dram0_rtos_reserved_end
* 0x4085fc5c ------------------> _dram0_rtos_reserved_end
* | |
* 0x4085fc60 ------------------> _data_start_interface
* 0x4085fc70 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,7 +24,7 @@ bootloader_usable_dram_end = 0x4087c610;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2500;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -71,7 +71,6 @@ SECTIONS
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility_tee.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_panic.*(.literal .text .literal.* .text.*)
@@ -93,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -272,16 +270,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,7 +24,7 @@ bootloader_usable_dram_end = 0x4084ca70;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2500;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -92,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,16 +270,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -25,7 +25,7 @@ bootloader_usable_dram_end = 0x4084cfd0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2500;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -92,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,16 +270,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**

View File

@@ -1,319 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-H21 ROM static data usage is as follows:
* - 0x4083ba78 - 0x4084d380: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4084d380 - 0x4084f380: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4084f380 - 0x4084fee0: ROM .bss and .data used in startup code or nonos/early boot (can be freed when IDF runs)
* - 0x4084fee0 - 0x40850000: ROM .bss and .data used in startup code and when IDF runs (cannot be freed)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4084d380).
*/
/* We consider 0x3fcdc710 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
* and work out iram_seg and iram_loader_seg addresses from there, backwards.
*/
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x40849a78;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
bootloader_dram_seg_start = bootloader_dram_seg_end - bootloader_dram_seg_len;
bootloader_iram_loader_seg_start = bootloader_dram_seg_start - bootloader_iram_loader_seg_len;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = bootloader_iram_seg_start, len = bootloader_iram_seg_len
iram_loader_seg (RWX) : org = bootloader_iram_loader_seg_start, len = bootloader_iram_loader_seg_len
dram_seg (RW) : org = bootloader_dram_seg_start, len = bootloader_dram_seg_len
}
/* The app may use RAM for static allocations up to the start of iram_loader_seg.
* If you have changed something above and this assert fails:
* 1. Check what the new value of bootloader_iram_loader_seg start is.
* 2. Update the value in this assert.
* 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32h21/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x4083ba78, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
/* we use either libgcc or compiler-rt, so put similar entries for them here */
*libgcc.a:(.literal .text .literal.* .text.*)
*libclang_rt.builtins.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_panic.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_soc.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
*libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_dram_start = ABSOLUTE(.);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} > dram_seg
.dram0.bootdesc : ALIGN(0x10)
{
_data_start = ABSOLUTE(.);
*(.data_bootloader_desc .data_bootloader_desc.*) /* Should be the first. Bootloader version info. DO NOT PUT ANYTHING BEFORE IT! */
} > dram_seg
.dram0.data :
{
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} > dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame_hdr)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_dram_end = ABSOLUTE(.);
} > dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
.riscv.attributes 0: { *(.riscv.attributes) }
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
.debug_pubtypes 0 : { *(.debug_pubtypes) }
/* DWARF 3 */
.debug_ranges 0 : { *(.debug_ranges) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* GNU DWARF 2 extensions */
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
/* DWARF 4 */
.debug_types 0 : { *(.debug_types) }
/* DWARF 5 */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* Discarding .rela.* sections results in the following mapping:
* .rela.text.* -> .text.*
* .rela.data.* -> .data.*
* And so forth...
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4083ba78 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4084d380 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4084f380 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4084fee0 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4084ffc0 ------------------> _dram0_rtos_reserved_end
* | |
* 0x4084ffc8 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x40850000 ------------------> _data_end_interface
*/

View File

@@ -1,6 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* No definition for ESP32-H21 target */

View File

@@ -1,307 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-H4 ROM static data usage is as follows:
* - 0x4084d350 - 0x4085b350: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4085b350 - 0x4085d350: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4085d350 - 0x40860000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4085b350).
*/
/* We consider 0x4085b350 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
* and work out iram_seg and iram_loader_seg addresses from there, backwards.
*/
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x4085d350;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2200;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
bootloader_dram_seg_start = bootloader_dram_seg_end - bootloader_dram_seg_len;
bootloader_iram_loader_seg_start = bootloader_dram_seg_start - bootloader_iram_loader_seg_len;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = bootloader_iram_seg_start, len = bootloader_iram_seg_len
iram_loader_seg (RWX) : org = bootloader_iram_loader_seg_start, len = bootloader_iram_loader_seg_len
dram_seg (RW) : org = bootloader_dram_seg_start, len = bootloader_dram_seg_len
}
/* The app may use RAM for static allocations up to the start of iram_loader_seg.
* If you have changed something above and this assert fails:
* 1. Check what the new value of bootloader_iram_loader_seg start is.
* 2. Update the value in this assert.
* 3. Update SRAM_SEG_END in components/esp_system/ld/esp32h4/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x4084f350, "bootloader_iram_loader_seg_start inconsistent with SRAM_SEG_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
/* we use either libgcc or compiler-rt, so put similar entries for them here */
*libgcc.a:(.literal .text .literal.* .text.*)
*libclang_rt.builtins.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_panic.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_soc.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
*libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_dram_start = ABSOLUTE(.);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} > dram_seg
.dram0.bootdesc : ALIGN(0x10)
{
_data_start = ABSOLUTE(.);
*(.data_bootloader_desc .data_bootloader_desc.*) /* Should be the first. Bootloader version info. DO NOT PUT ANYTHING BEFORE IT! */
} > dram_seg
.dram0.data :
{
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} > dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame_hdr)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_dram_end = ABSOLUTE(.);
} > dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
.riscv.attributes 0: { *(.riscv.attributes) }
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
.debug_pubtypes 0 : { *(.debug_pubtypes) }
/* DWARF 3 */
.debug_ranges 0 : { *(.debug_ranges) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* GNU DWARF 2 extensions */
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
/* DWARF 4 */
.debug_types 0 : { *(.debug_types) }
/* DWARF 5 */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* Discarding .rela.* sections results in the following mapping:
* .rela.text.* -> .text.*
* .rela.data.* -> .data.*
* And so forth...
*/
/DISCARD/ : { *(.rela.*) }
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4084d350 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4085b350 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4085d350 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4085fea8 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4085ffb4 ------------------> _dram0_rtos_reserved_end
* | |
* 0x4085ffc4 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x40860000 ------------------> _data_end_interface
*/

View File

@@ -1,6 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* No definition for ESP32-H4 target */

View File

@@ -1,9 +1,10 @@
/*
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* TODO: IDF-8002
* Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
*
@@ -25,7 +26,7 @@ bootloader_usable_dram_end = 0x4ff3abd0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -92,7 +93,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,16 +271,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -251,14 +251,4 @@ SECTIONS
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -285,16 +285,6 @@ SECTIONS
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**

View File

@@ -1,37 +1,9 @@
idf_build_get_property(target IDF_TARGET)
idf_build_get_property(esp_tee_build ESP_TEE_BUILD)
if(${target} STREQUAL "linux")
return() # This component is not supported by the POSIX/Linux simulator
endif()
if(esp_tee_build)
set(tee_inc_dirs "include"
"private_include"
"bootloader_flash/include")
set(tee_srcs "src/flash_partitions.c"
"src/bootloader_sha.c"
"src/bootloader_common_loader.c"
"src/esp_image_format.c"
"src/bootloader_utility.c"
"src/bootloader_utility_tee.c"
"bootloader_flash/src/bootloader_flash.c")
if(CONFIG_SECURE_BOOT_V2_ENABLED)
if(CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME OR CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME)
list(APPEND tee_srcs "src/secure_boot_v2/secure_boot_signatures_bootloader.c"
"src/secure_boot_v2/secure_boot.c"
"src/${IDF_TARGET}/secure_boot_secure_features.c")
endif()
endif()
idf_component_register(SRCS ${tee_srcs}
INCLUDE_DIRS ${tee_inc_dirs}
PRIV_REQUIRES efuse esp_app_format)
return()
endif()
set(srcs
"src/bootloader_common.c"
"src/bootloader_common_loader.c"
@@ -64,7 +36,6 @@ if(CONFIG_APP_BUILD_TYPE_APP_2NDBOOT)
)
endif()
list(APPEND srcs "src/bootloader_sha.c")
if(CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE)
list(APPEND srcs "src/${IDF_TARGET}/bootloader_ecdsa.c")
endif()
@@ -78,14 +49,14 @@ if(BOOTLOADER_BUILD OR CONFIG_APP_BUILD_TYPE_RAM)
"src/bootloader_clock_loader.c"
"src/bootloader_console.c"
"src/bootloader_console_loader.c"
"src/${IDF_TARGET}/bootloader_sha.c"
"src/${IDF_TARGET}/bootloader_soc.c"
"src/${IDF_TARGET}/bootloader_${IDF_TARGET}.c"
)
if(CONFIG_SECURE_ENABLE_TEE)
list(APPEND srcs "src/bootloader_utility_tee.c")
endif()
list(APPEND priv_requires hal)
else()
list(APPEND srcs
"src/idf/bootloader_sha.c")
set(include_dirs "include" "bootloader_flash/include")
set(priv_include_dirs "private_include")
# heap is required for `heap_memory_layout.h` header

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -28,7 +28,7 @@ uint32_t bootloader_read_flash_id(void);
/**
* @brief Startup flow recommended by XMC. Call at startup before any erase/write operation.
*
* @return ESP_OK When startup successfully, otherwise ESP_FAIL (indicating you should reboot before erase/write).
* @return ESP_OK When startup successfully, otherwise ESP_FAIL (indiciating you should reboot before erase/write).
*/
esp_err_t bootloader_flash_xmc_startup(void);
@@ -36,16 +36,9 @@ esp_err_t bootloader_flash_xmc_startup(void);
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak, when there is a same name symbol.
* @note This can be overridden because it's attribute weak.
*/
esp_err_t bootloader_flash_unlock(void);
/**
* @brief Unlock Flash write protect.
* This is alias to `bootloader_flash_unlock`.
* Please do not call this function in SDK.
*/
esp_err_t bootloader_flash_unlock_default(void);
esp_err_t __attribute__((weak)) bootloader_flash_unlock(void);
/**
* @brief Reset the flash chip (66H + 99H).

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -99,20 +99,15 @@ void bootloader_write_status_8b_xmc25qu64a(unsigned new_status);
Searching of this table stops when the first match is found.
*/
extern const bootloader_qio_info_t* bootloader_flash_qe_support_list;
/**
* @brief The bootloader flash qe list count number.
*/
extern uint8_t bootloader_flash_qe_list_count;
extern const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list[];
/**
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak, when there is a same name symbol.
* @note This can be overridden because it's attribute weak.
*/
esp_err_t bootloader_flash_unlock(void);
esp_err_t __attribute__((weak)) bootloader_flash_unlock(void);
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH || CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
/**
@@ -120,7 +115,7 @@ esp_err_t bootloader_flash_unlock(void);
*
* @param flash_mode SPI flash working mode.
*
* @note This can be overridden because it's attribute weak, when there is a same name symbol.
* @note This can be overridden because it's attribute weak.
*/
void __attribute__((weak)) bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t flash_mode);
#endif

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -128,10 +128,7 @@ esp_err_t bootloader_flash_read(size_t src_addr, void *dest, size_t size, bool a
*
* @note All of dest_addr, src and size have to be 4-byte aligned. If write_encrypted is set, dest_addr and size must be 32-byte aligned.
*
* @note In bootloader, when write_encrypted == true, the src buffer is encrypted in place.
*
* @note [ESP-TEE] Using this API from the TEE will return an error if the dest_addr lies
* within the active TEE partition range.
* Note: In bootloader, when write_encrypted == true, the src buffer is encrypted in place.
*
* @param dest_addr Destination address to write in Flash.
* @param src Pointer to the data to write to flash
@@ -155,9 +152,6 @@ esp_err_t bootloader_flash_erase_sector(size_t sector);
/**
* @brief Erase the Flash range.
*
* @note [ESP-TEE] Using this API from the TEE will return an error if the start_addr lies
* within the active TEE partition range.
*
* @param start_addr start address of flash offset
* @param size sector aligned size to be erased
*

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -13,12 +13,11 @@
#include "hal/efuse_ll.h"
#include "hal/efuse_hal.h"
#if !NON_OS_BUILD
#ifndef BOOTLOADER_BUILD
#include "spi_flash_mmap.h"
#endif
#include "hal/spi_flash_ll.h"
#include "rom/spi_flash.h"
#include "esp_private/cache_utils.h"
#if !CONFIG_IDF_TARGET_ESP32
#include "hal/spimem_flash_ll.h"
#endif
@@ -45,7 +44,7 @@
#define ESP_BOOTLOADER_SPIFLASH_QE_GD_SR2 BIT1 // QE position when you write 8 bits(for SR2) at one time.
#define ESP_BOOTLOADER_SPIFLASH_QE_SR1_2BYTE BIT9 // QE position when you write 16 bits at one time.
#if !NON_OS_BUILD
#ifndef BOOTLOADER_BUILD
/* Normal app version maps to spi_flash_mmap.h operations...
*/
static const char *TAG = "bootloader_mmap";
@@ -112,7 +111,7 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
return esp_flash_erase_region(NULL, start_addr, size);
}
#else // NON_OS_BUILD
#else //BOOTLOADER_BUILD
/* Bootloader version, uses ROM functions only */
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/cache.h"
@@ -128,53 +127,16 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
#include "esp32s3/rom/opi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32P4
#include "esp32p4/rom/opi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32C5
#include "esp32c5/rom/opi_flash.h"
#endif
#include "spi_flash/spi_flash_defs.h"
#if ESP_TEE_BUILD
#include "esp_fault.h"
#include "esp_flash_partitions.h"
#include "rom/spi_flash.h"
extern bool esp_tee_flash_check_paddr_in_active_tee_part(size_t paddr);
#endif
static const char *TAG = "bootloader_flash";
/*
* NOTE: Memory mapping strategy
*
* Bootloader:
* - Uses the first N-1 MMU entries for general memory mapping.
* - Reserves the Nth (last) MMU entry for flash read through the cache
* (auto-decryption).
* - This strategy is viable because the bootloader runs exclusively
* on the device from the internal SRAM.
*
* ESP-TEE (Trusted Execution Environment)
* - Cannot adopt the strategy used by the bootloader as the TEE app operates
* in parallel to the REE.
* - The few initial MMU entries have already been taken by the TEE and REE
* application flash IDROM segments.
* - The REE could have also mapped some custom flash partitions it requires.
* - Therefore, the TEE uses MMU entries from the end of the range, with the number
* of entries corresponding to the size of its IDROM segment sizes.
* - The final MMU entry in this range is reserved for flash reads through the
* cache (auto-decryption).
* - The pages used by TEE are protected by PMP (Physical Memory Protection).
* While REE attempts to mmap this protected area would trigger a load access
* fault, this is unlikely since the MMU can address up to 16MB at once.
*/
#if CONFIG_IDF_TARGET_ESP32
/* Use first 50 blocks in MMU for bootloader_mmap,
50th block for bootloader_flash_read
*/
#define MMU_BLOCK0_VADDR SOC_DROM_LOW
#define MMU_TOTAL_SIZE (0x320000)
#define MMU_BLOCK50_VADDR (MMU_BLOCK0_VADDR + MMU_TOTAL_SIZE)
#define MMAP_MMU_SIZE (0x320000)
#define MMU_BLOCK50_VADDR (MMU_BLOCK0_VADDR + MMAP_MMU_SIZE)
#define FLASH_READ_VADDR MMU_BLOCK50_VADDR
#else // !CONFIG_IDF_TARGET_ESP32
@@ -188,89 +150,21 @@ static const char *TAG = "bootloader_flash";
* On ESP32S2 we use `(SOC_DRAM0_CACHE_ADDRESS_HIGH - SOC_DRAM0_CACHE_ADDRESS_LOW)`.
* As this code is in bootloader, we keep this on ESP32S2
*/
#define MMU_TOTAL_SIZE (SOC_DRAM0_CACHE_ADDRESS_HIGH - SOC_DRAM0_CACHE_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#define MMAP_MMU_SIZE (SOC_DRAM0_CACHE_ADDRESS_HIGH - SOC_DRAM0_CACHE_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#else
#define MMU_TOTAL_SIZE (SOC_DRAM_FLASH_ADDRESS_HIGH - SOC_DRAM_FLASH_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#define MMAP_MMU_SIZE (SOC_DRAM_FLASH_ADDRESS_HIGH - SOC_DRAM_FLASH_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#endif
#define MMU_END_VADDR (MMU_BLOCK0_VADDR + MMU_TOTAL_SIZE)
#define MMU_BLOCKL_VADDR (MMU_END_VADDR - 1 * CONFIG_MMU_PAGE_SIZE)
#define FLASH_READ_VADDR MMU_BLOCKL_VADDR
#define MMU_BLOCK63_VADDR (MMU_BLOCK0_VADDR + MMAP_MMU_SIZE - SPI_FLASH_MMU_PAGE_SIZE)
#define FLASH_READ_VADDR MMU_BLOCK63_VADDR
#endif
#if !ESP_TEE_BUILD
#define MMAP_MMU_SIZE (MMU_TOTAL_SIZE)
// Represents the MMU pages available for mmapping by the bootloader
#define MMU_FREE_PAGES (MMAP_MMU_SIZE / CONFIG_MMU_PAGE_SIZE)
#define FLASH_MMAP_VADDR (MMU_BLOCK0_VADDR)
#else /* ESP_TEE_BUILD */
#define MMAP_MMU_SIZE (CONFIG_SECURE_TEE_IROM_SIZE + CONFIG_SECURE_TEE_DROM_SIZE)
// Represents the MMU pages available for mmapping by the TEE
#define MMU_FREE_PAGES (MMAP_MMU_SIZE / CONFIG_MMU_PAGE_SIZE)
#define FLASH_MMAP_VADDR (MMU_END_VADDR - (MMU_FREE_PAGES + 1) * CONFIG_MMU_PAGE_SIZE)
#endif /* !ESP_TEE_BUILD */
static bool mapped;
// Required for bootloader_flash_munmap() for ESP-TEE
static uint32_t current_mapped_size;
// Current bootloader mapping (ab)used for bootloader_read()
static uint32_t current_read_mapping = UINT32_MAX;
#if ESP_TEE_BUILD && CONFIG_IDF_TARGET_ESP32C6
extern void spi_common_set_dummy_output(esp_rom_spiflash_read_mode_t mode);
extern void spi_dummy_len_fix(uint8_t spi, uint8_t freqdiv);
/* TODO: [ESP-TEE] Workarounds for the ROM read API
*
* The esp_rom_spiflash_read API requires two workarounds on ESP32-C6 ECO0:
*
* 1. [IDF-7199] Call esp_rom_spiflash_write API once before reading.
* Without this, reads return corrupted data.
*
* 2. Configure ROM flash parameters before each read using the function below.
* Without this, the first byte read is corrupted.
*
* Note: These workarounds are not needed for ESP32-C6 ECO1 and later versions.
*/
static void rom_read_api_workaround(void)
{
static bool is_first_call = true;
if (is_first_call) {
uint32_t dummy_val = UINT32_MAX;
uint32_t dest_addr = ESP_PARTITION_TABLE_OFFSET + ESP_PARTITION_TABLE_MAX_LEN;
esp_rom_spiflash_write(dest_addr, &dummy_val, sizeof(dummy_val));
is_first_call = false;
}
uint32_t freqdiv = 0;
#if CONFIG_ESPTOOLPY_FLASHFREQ_80M
freqdiv = 1;
#elif CONFIG_ESPTOOLPY_FLASHFREQ_40M
freqdiv = 2;
#elif CONFIG_ESPTOOLPY_FLASHFREQ_20M
freqdiv = 4;
#endif
esp_rom_spiflash_read_mode_t read_mode;
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO
read_mode = ESP_ROM_SPIFLASH_QIO_MODE;
#elif CONFIG_ESPTOOLPY_FLASHMODE_QOUT
read_mode = ESP_ROM_SPIFLASH_QOUT_MODE;
#elif CONFIG_ESPTOOLPY_FLASHMODE_DIO
read_mode = ESP_ROM_SPIFLASH_DIO_MODE;
#elif CONFIG_ESPTOOLPY_FLASHMODE_DOUT
read_mode = ESP_ROM_SPIFLASH_DOUT_MODE;
#endif
esp_rom_spiflash_config_clk(freqdiv, 1);
spi_dummy_len_fix(1, freqdiv);
esp_rom_spiflash_config_readmode(read_mode);
spi_common_set_dummy_output(read_mode);
}
#endif
uint32_t bootloader_mmap_get_free_pages(void)
{
/**
@@ -294,15 +188,13 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
uint32_t src_paddr_aligned = src_paddr & MMU_FLASH_MASK;
//The addr is aligned, so we add the mask off length to the size, to make sure the corresponding buses are enabled.
uint32_t size_after_paddr_aligned = (src_paddr - src_paddr_aligned) + size;
uint32_t actual_mapped_len = 0;
/**
* @note 1
* Will add here a check to make sure the vaddr is on read-only and executable buses, since we use others for psram
* Now simply check if it's valid vaddr, didn't check if it's readable, writable or executable.
* TODO: IDF-4710
*/
if (mmu_ll_check_valid_ext_vaddr_region(0, FLASH_MMAP_VADDR, size_after_paddr_aligned, MMU_VADDR_DATA | MMU_VADDR_INSTRUCTION) == 0) {
if (mmu_ll_check_valid_ext_vaddr_region(0, MMU_BLOCK0_VADDR, size_after_paddr_aligned, MMU_VADDR_DATA | MMU_VADDR_INSTRUCTION) == 0) {
ESP_EARLY_LOGE(TAG, "vaddr not valid");
return NULL;
}
@@ -312,25 +204,15 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
Cache_Read_Disable(0);
Cache_Flush(0);
#else
/* NOTE: [ESP-TEE] Cache suspension vs disabling
*
* For ESP-TEE , we use suspend the cache instead of disabling it to avoid flushing the entire cache.
* This prevents performance hits when returning to the REE app due to cache misses.
* This is not applicable to the bootloader as it runs exclusively on the device from the internal SRAM.
*/
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
//---------------Do mapping------------------------
ESP_EARLY_LOGD(TAG, "rodata starts from paddr=0x%08" PRIx32 ", size=0x%" PRIx32 ", will be mapped to vaddr=0x%08" PRIx32, src_paddr, size, (uint32_t)FLASH_MMAP_VADDR);
ESP_EARLY_LOGD(TAG, "rodata starts from paddr=0x%08" PRIx32 ", size=0x%" PRIx32 ", will be mapped to vaddr=0x%08" PRIx32, src_paddr, size, (uint32_t)MMU_BLOCK0_VADDR);
#if CONFIG_IDF_TARGET_ESP32
uint32_t count = GET_REQUIRED_MMU_PAGES(size, src_paddr);
int e = cache_flash_mmu_set(0, 0, FLASH_MMAP_VADDR, src_paddr_aligned, 64, count);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)FLASH_MMAP_VADDR, count * SPI_FLASH_MMU_PAGE_SIZE);
int e = cache_flash_mmu_set(0, 0, MMU_BLOCK0_VADDR, src_paddr_aligned, 64, count);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)MMU_BLOCK0_VADDR, count * SPI_FLASH_MMU_PAGE_SIZE);
if (e != 0) {
ESP_EARLY_LOGE(TAG, "cache_flash_mmu_set failed: %d", e);
Cache_Read_Enable(0);
@@ -341,8 +223,9 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
* This hal won't return error, it assumes the inputs are valid. The related check should be done in `bootloader_mmap()`.
* See above comments (note 1) about IDF-4710
*/
mmu_hal_map_region(0, MMU_TARGET_FLASH0, FLASH_MMAP_VADDR, src_paddr_aligned, size_after_paddr_aligned, &actual_mapped_len);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)FLASH_MMAP_VADDR, actual_mapped_len);
uint32_t actual_mapped_len = 0;
mmu_hal_map_region(0, MMU_TARGET_FLASH0, MMU_BLOCK0_VADDR, src_paddr_aligned, size_after_paddr_aligned, &actual_mapped_len);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)MMU_BLOCK0_VADDR, actual_mapped_len);
#endif
/**
@@ -355,19 +238,14 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
Cache_Read_Enable(0);
#else
#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, FLASH_MMAP_VADDR, actual_mapped_len);
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, MMU_BLOCK0_VADDR, actual_mapped_len);
#endif
#if !ESP_TEE_BUILD
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
mapped = true;
current_mapped_size = actual_mapped_len;
return (void *)(FLASH_MMAP_VADDR + (src_paddr - src_paddr_aligned));
return (void *)(MMU_BLOCK0_VADDR + (src_paddr - src_paddr_aligned));
}
void bootloader_munmap(const void *mapping)
@@ -379,18 +257,11 @@ void bootloader_munmap(const void *mapping)
Cache_Flush(0);
mmu_init(0);
#else
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
mmu_hal_unmap_all();
#else
cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
mmu_hal_unmap_region(0, FLASH_MMAP_VADDR, current_mapped_size);
cache_hal_invalidate_addr(FLASH_MMAP_VADDR, current_mapped_size);
cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
mapped = false;
current_mapped_size = 0;
current_read_mapping = UINT32_MAX;
}
}
@@ -414,11 +285,7 @@ static esp_err_t bootloader_flash_read_no_decrypt(size_t src_addr, void *dest, s
Cache_Read_Disable(0);
Cache_Flush(0);
#else
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#elif CONFIG_ESP32C6_REV_MIN_0
rom_read_api_workaround();
#endif
#endif
esp_rom_spiflash_result_t r = esp_rom_spiflash_read(src_addr, dest, size);
@@ -426,9 +293,7 @@ static esp_err_t bootloader_flash_read_no_decrypt(size_t src_addr, void *dest, s
#if CONFIG_IDF_TARGET_ESP32
Cache_Read_Enable(0);
#else
#if !ESP_TEE_BUILD
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
return spi_to_esp_err(r);
@@ -451,13 +316,7 @@ static esp_err_t bootloader_flash_read_allow_decrypt(size_t src_addr, void *dest
Cache_Read_Disable(0);
Cache_Flush(0);
#else
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//---------------Invalidating entries at to-be-mapped v_addr------------------------
cache_hal_invalidate_addr(FLASH_READ_VADDR, SPI_FLASH_MMU_PAGE_SIZE);
#endif
#endif
//---------------Do mapping------------------------
@@ -478,18 +337,13 @@ static esp_err_t bootloader_flash_read_allow_decrypt(size_t src_addr, void *dest
Cache_Read_Enable(0);
#else
#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, FLASH_MMAP_VADDR, actual_mapped_len);
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, MMU_BLOCK0_VADDR, actual_mapped_len);
#endif
#if !ESP_TEE_BUILD
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
}
map_ptr = (uint32_t *)(FLASH_READ_VADDR + (word_src - map_at));
dest_words[word] = *map_ptr;
current_read_mapping = UINT32_MAX;
}
return ESP_OK;
}
@@ -518,19 +372,7 @@ esp_err_t bootloader_flash_read(size_t src_addr, void *dest, size_t size, bool a
esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool write_encrypted)
{
/* NOTE: [ESP-TEE] Flash operation address validation with anti-FI check
*
* Ensure that flash operations cannot be executed within forbidden memory ranges
* by validating the address before proceeding.
*/
#if ESP_TEE_BUILD
bool addr_chk = esp_tee_flash_check_paddr_in_active_tee_part(dest_addr);
if (addr_chk) {
ESP_EARLY_LOGE(TAG, "bootloader_flash_write invalid dest_addr");
return ESP_FAIL;
}
ESP_FAULT_ASSERT(!addr_chk);
#endif
esp_err_t err;
size_t alignment = write_encrypted ? 32 : 4;
if ((dest_addr % alignment) != 0) {
ESP_EARLY_LOGE(TAG, "bootloader_flash_write dest_addr 0x%x not %d-byte aligned", dest_addr, alignment);
@@ -545,29 +387,16 @@ esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool
return ESP_FAIL;
}
esp_err_t err = bootloader_flash_unlock();
err = bootloader_flash_unlock();
if (err != ESP_OK) {
return err;
}
esp_rom_spiflash_result_t rc = ESP_ROM_SPIFLASH_RESULT_OK;
if (write_encrypted && !ENCRYPTION_IS_VIRTUAL) {
rc = esp_rom_spiflash_write_encrypted(dest_addr, src, size);
return spi_to_esp_err(esp_rom_spiflash_write_encrypted(dest_addr, src, size));
} else {
rc = esp_rom_spiflash_write(dest_addr, src, size);
return spi_to_esp_err(esp_rom_spiflash_write(dest_addr, src, size));
}
/* NOTE: [ESP-TEE] Cache flushing after flash writes/erases
*
* After writing or erasing the flash, we need to flush the cache at locations
* corresponding to the destination write/erase address. This prevents stale data
* from being read from already memory-mapped addresses that were modified.
*/
#if ESP_TEE_BUILD
spi_flash_check_and_flush_cache(dest_addr, size);
#endif
return spi_to_esp_err(rc);
}
esp_err_t bootloader_flash_erase_sector(size_t sector)
@@ -577,13 +406,6 @@ esp_err_t bootloader_flash_erase_sector(size_t sector)
esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
{
#if ESP_TEE_BUILD
bool addr_chk = esp_tee_flash_check_paddr_in_active_tee_part(start_addr);
if (addr_chk) {
return ESP_ERR_INVALID_ARG;
}
ESP_FAULT_ASSERT(!addr_chk);
#endif
if (start_addr % FLASH_SECTOR_SIZE != 0) {
return ESP_ERR_INVALID_ARG;
}
@@ -604,10 +426,6 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
++sector;
}
}
#if ESP_TEE_BUILD
spi_flash_check_and_flush_cache(start_addr, size);
#endif
return spi_to_esp_err(rc);
}
@@ -618,37 +436,37 @@ void bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t fla
switch (flash_mode) {
case ESP_ROM_SPIFLASH_DOUT_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_DOUT_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_DUAL_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_DIO_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_DIO_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 4;
cache_rd.cmd = CMD_FASTRD_DIO_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_QOUT_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_QOUT_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_QUAD_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_QIO_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_QIO_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 6;
cache_rd.cmd = CMD_FASTRD_QIO_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_FASTRD_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_FASTRD_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_SLOWRD_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_SLOWRD_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 0;
cache_rd.cmd = CMD_SLOWRD_4B;
cache_rd.cmd_bit_len = 8;
break;
@@ -662,7 +480,7 @@ void bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t fla
}
#endif
#endif // NON_OS_BUILD
#endif // BOOTLOADER_BUILD
FORCE_INLINE_ATTR bool is_issi_chip(const esp_rom_spiflash_chip_t* chip)
@@ -681,7 +499,7 @@ FORCE_INLINE_ATTR bool is_mxic_chip(const esp_rom_spiflash_chip_t* chip)
return BYTESHIFT(chip->device_id, 2) == MXIC_ID;
}
esp_err_t IRAM_ATTR bootloader_flash_unlock_default(void)
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void)
{
// At the beginning status == new_status == status_sr2 == new_status_sr2 == 0.
// If the register doesn't need to be updated, keep them the same (0), so that no command will be actually sent.
@@ -750,17 +568,6 @@ esp_err_t IRAM_ATTR bootloader_flash_unlock_default(void)
return err;
}
esp_err_t __attribute__((weak, alias("bootloader_flash_unlock_default"))) bootloader_flash_unlock(void);
#if CONFIG_SECURE_TEE_EXT_FLASH_MEMPROT_SPI1 && !NON_OS_BUILD
extern uint32_t bootloader_flash_execute_command_common(
uint8_t command,
uint32_t addr_len, uint32_t address,
uint8_t dummy_len,
uint8_t mosi_len, uint32_t mosi_data,
uint8_t miso_len);
#else
IRAM_ATTR uint32_t bootloader_flash_execute_command_common(
uint8_t command,
uint32_t addr_len, uint32_t address,
@@ -813,7 +620,6 @@ IRAM_ATTR uint32_t bootloader_flash_execute_command_common(
}
return ret;
}
#endif
uint32_t IRAM_ATTR bootloader_execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len)
{
@@ -865,7 +671,7 @@ void bootloader_spi_flash_reset(void)
#define XMC_SUPPORT CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT
#define XMC_VENDOR_ID_1 0x20
#if NON_OS_BUILD
#if BOOTLOADER_BUILD
#define BOOTLOADER_FLASH_LOG(level, ...) ESP_EARLY_LOG##level(TAG, ##__VA_ARGS__)
#else
static DRAM_ATTR char bootloader_flash_tag[] = "bootloader_flash";
@@ -981,7 +787,7 @@ esp_err_t IRAM_ATTR bootloader_flash_reset_chip(void)
bool IRAM_ATTR bootloader_flash_is_octal_mode_enabled(void)
{
#if SOC_SPI_MEM_SUPPORT_FLASH_OPI_MODE
#if SOC_SPI_MEM_SUPPORT_OPI_MODE
return efuse_ll_get_flash_type();
#else
return false;

View File

@@ -93,7 +93,7 @@ void IRAM_ATTR bootloader_flash_gpio_config(const esp_image_header_t* pfhdr)
pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302) {
// For ESP32D2WD or ESP32-PICO series,the SPI pins are already configured
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
} else {
const uint32_t spiconfig = esp_rom_efuse_get_flash_gpio_info();
@@ -108,14 +108,14 @@ void IRAM_ATTR bootloader_flash_gpio_config(const esp_image_header_t* pfhdr)
esp_rom_gpio_connect_out_signal(FLASH_SPIHD_IO, SPIHD_OUT_IDX, 0, 0);
esp_rom_gpio_connect_in_signal(FLASH_SPIHD_IO, SPIHD_IN_IDX, 0);
//select pin function gpio
gpio_ll_func_sel(&GPIO, FLASH_SPIQ_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPID_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIHD_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIWP_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_CS_IO, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA0_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA1_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA2_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA3_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CMD_U, PIN_FUNC_GPIO);
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
// set drive ability for clock
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
uint32_t flash_id = g_rom_flashchip.device_id;
@@ -190,7 +190,7 @@ int bootloader_flash_get_wp_pin(void)
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302:
return ESP32_PICO_V3_GPIO;
default:
return FLASH_SPIWP_IO;
return MSPI_IOMUX_PIN_NUM_WP;
}
#endif
}
@@ -207,7 +207,7 @@ void bootloader_configure_spi_pins(int drv)
pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302) {
// For ESP32D2WD or ESP32-PICO series,the SPI pins are already configured
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
} else {
const uint32_t spiconfig = esp_rom_efuse_get_flash_gpio_info();
@@ -222,14 +222,14 @@ void bootloader_configure_spi_pins(int drv)
esp_rom_gpio_connect_out_signal(FLASH_SPIHD_IO, SPIHD_OUT_IDX, 0, 0);
esp_rom_gpio_connect_in_signal(FLASH_SPIHD_IO, SPIHD_IN_IDX, 0);
//select pin function gpio
gpio_ll_func_sel(&GPIO, FLASH_SPIQ_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPID_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIHD_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIWP_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_CS_IO, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA0_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA1_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA2_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA3_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CMD_U, PIN_FUNC_GPIO);
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
// set drive ability for clock
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
#if CONFIG_SPIRAM_TYPE_ESPPSRAM32 || CONFIG_SPIRAM_TYPE_ESPPSRAM64
@@ -371,10 +371,6 @@ esp_err_t bootloader_init_spi_flash(void)
}
#endif
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -238,9 +238,6 @@ esp_err_t bootloader_init_spi_flash(void)
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -247,9 +247,6 @@ esp_err_t bootloader_init_spi_flash(void)
#endif
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -28,8 +28,7 @@
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "bootloader_flash_override.h"
#include "hal/mspi_timing_tuning_ll.h"
void bootloader_flash_update_id()
{
@@ -54,9 +53,8 @@ void IRAM_ATTR bootloader_init_mspi_clock(void)
// Set source mspi pll clock as 80M in bootloader stage.
// SPLL clock on C5 is 480MHz , and mspi_pll needs 80MHz
// in this stage, set divider as 6
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_SPLL);
// MSPI0 and MSPI1 share this core clock register, but only setting to MSPI0 register is valid
mspi_timing_ll_set_core_clock(MSPI_TIMING_LL_MSPI_ID_0, MSPI_TIMING_LL_CORE_CLOCK_MHZ_DEFAULT);
mspi_ll_clock_src_sel(MSPI_CLK_SRC_SPLL);
mspi_ll_fast_set_hs_divider(6);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
@@ -119,9 +117,6 @@ static void update_flash_config(const esp_image_header_t *bootloader_hdr)
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
case ESP_IMAGE_FLASH_SIZE_32MB:
size = 32;
break;
default:
size = 2;
}
@@ -198,9 +193,6 @@ static void print_flash_info(const esp_image_header_t *bootloader_hdr)
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
case ESP_IMAGE_FLASH_SIZE_32MB:
str = "32MB";
break;
default:
str = "2MB";
break;
@@ -226,19 +218,12 @@ esp_err_t bootloader_init_spi_flash(void)
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
bootloader_flash_32bits_address_map_enable(bootloader_flash_get_spi_mode());
#endif
print_flash_info(&bootloader_image_hdr);
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
@@ -307,10 +292,6 @@ void bootloader_flash_hardware_init(void)
bootloader_spi_flash_resume();
bootloader_flash_unlock();
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
bootloader_flash_32bits_address_map_enable(bootloader_flash_get_spi_mode());
#endif
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);

View File

@@ -201,9 +201,6 @@ esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -24,7 +24,7 @@
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "hal/mspi_timing_tuning_ll.h"
static const char *TAG __attribute__((unused)) = "boot.esp32c61";
@@ -51,9 +51,8 @@ void IRAM_ATTR bootloader_init_mspi_clock(void)
// Set source mspi pll clock as 80M in bootloader stage.
// SPLL clock on C61 is 480MHz , and mspi_pll needs 80MHz
// in this stage, set divider as 6
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_DEFAULT);
// MSPI0 and MSPI1 share this core clock register, but only setting to MSPI0 register is valid
mspi_timing_ll_set_core_clock(MSPI_TIMING_LL_MSPI_ID_0, MSPI_TIMING_LL_CORE_CLOCK_MHZ_DEFAULT);
mspi_ll_clock_src_sel(MSPI_CLK_SRC_SPLL);
mspi_ll_fast_set_hs_divider(6);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
@@ -213,9 +212,6 @@ esp_err_t bootloader_init_spi_flash(void)
bootloader_init_mspi_clock();
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -24,7 +24,6 @@
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "soc/pcr_reg.h"
void bootloader_flash_update_id()
@@ -88,7 +87,7 @@ void IRAM_ATTR bootloader_configure_spi_pins(int drv)
static void IRAM_ATTR bootloader_flash_clock_init(void)
{
// At this moment, BBPLL should be enabled, safe to switch MSPI clock source to PLL_F64M (default clock src) to raise speed
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_PLL_F64M);
REG_SET_FIELD(PCR_MSPI_CONF_REG, PCR_MSPI_CLK_SEL, 2);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr)
@@ -210,9 +209,6 @@ esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -1,290 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
#include <assert.h>
#include "string.h"
#include "sdkconfig.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_rom_gpio.h"
#include "flash_qio_mode.h"
#include "bootloader_flash_config.h"
#include "bootloader_flash_priv.h"
#include "bootloader_init.h"
#include "hal/mmu_hal.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "hal/clk_tree_ll.h"
#include "soc/pcr_reg.h"
static const char *TAG = "boot.esp32h21";
void bootloader_flash_update_id()
{
esp_rom_spiflash_chip_t *chip = &rom_spiflash_legacy_data->chip;
chip->device_id = bootloader_read_flash_id();
}
void bootloader_flash_update_size(uint32_t size)
{
rom_spiflash_legacy_data->chip.chip_size = size;
}
void IRAM_ATTR bootloader_flash_cs_timing_config()
{
SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_HOLD_TIME_V, 0, SPI_MEM_CS_HOLD_TIME_S);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_SETUP_TIME_V, 0, SPI_MEM_CS_SETUP_TIME_S);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
{
uint32_t spi_clk_div = 0;
switch (pfhdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_1:
spi_clk_div = 1;
break;
case ESP_IMAGE_SPI_SPEED_DIV_2:
spi_clk_div = 2;
break;
case ESP_IMAGE_SPI_SPEED_DIV_3:
spi_clk_div = 3;
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
spi_clk_div = 4;
break;
default:
break;
}
esp_rom_spiflash_config_clk(spi_clk_div, 0);
}
void IRAM_ATTR bootloader_configure_spi_pins(int drv)
{
uint8_t clk_gpio_num = MSPI_IOMUX_PIN_NUM_CLK;
uint8_t q_gpio_num = MSPI_IOMUX_PIN_NUM_MISO;
uint8_t d_gpio_num = MSPI_IOMUX_PIN_NUM_MOSI;
uint8_t cs0_gpio_num = MSPI_IOMUX_PIN_NUM_CS0;
uint8_t hd_gpio_num = MSPI_IOMUX_PIN_NUM_HD;
uint8_t wp_gpio_num = MSPI_IOMUX_PIN_NUM_WP;
esp_rom_gpio_pad_set_drv(clk_gpio_num, drv);
esp_rom_gpio_pad_set_drv(q_gpio_num, drv);
esp_rom_gpio_pad_set_drv(d_gpio_num, drv);
esp_rom_gpio_pad_set_drv(cs0_gpio_num, drv);
esp_rom_gpio_pad_set_drv(hd_gpio_num, drv);
esp_rom_gpio_pad_set_drv(wp_gpio_num, drv);
}
static void IRAM_ATTR bootloader_flash_clock_init(void)
{
// To raise the MSPI clock to 64MHz, needs to enable the 64MHz clock source, which is XTAL_X2_CLK
// (FPGA image fixed MSPI0/1 clock to 64MHz)
clk_ll_xtal_x2_enable();
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_PLL_F64M);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr)
{
uint32_t size;
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
size = 1;
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
size = 2;
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
size = 4;
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
size = 8;
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
default:
size = 2;
}
// Set flash chip size
esp_rom_spiflash_config_param(rom_spiflash_legacy_data->chip.device_id, size * 0x100000, 0x10000, 0x1000, 0x100, 0xffff); // TODO: set mode
}
static void print_flash_info(const esp_image_header_t *bootloader_hdr)
{
ESP_EARLY_LOGD(TAG, "magic %02x", bootloader_hdr->magic);
ESP_EARLY_LOGD(TAG, "segments %02x", bootloader_hdr->segment_count);
ESP_EARLY_LOGD(TAG, "spi_mode %02x", bootloader_hdr->spi_mode);
ESP_EARLY_LOGD(TAG, "spi_speed %02x", bootloader_hdr->spi_speed);
ESP_EARLY_LOGD(TAG, "spi_size %02x", bootloader_hdr->spi_size);
const char *str;
switch (bootloader_hdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_2:
str = "32MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_3:
str = "21.3MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
str = "16MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_1:
str = "64MHz";
break;
default:
str = "16MHz";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Speed : %s", str);
/* SPI mode could have been set to QIO during boot already,
so test the SPI registers not the flash header */
esp_rom_spiflash_read_mode_t spi_mode = bootloader_flash_get_spi_mode();
switch (spi_mode) {
case ESP_ROM_SPIFLASH_QIO_MODE:
str = "QIO";
break;
case ESP_ROM_SPIFLASH_QOUT_MODE:
str = "QOUT";
break;
case ESP_ROM_SPIFLASH_DIO_MODE:
str = "DIO";
break;
case ESP_ROM_SPIFLASH_DOUT_MODE:
str = "DOUT";
break;
case ESP_ROM_SPIFLASH_FASTRD_MODE:
str = "FAST READ";
break;
default:
str = "SLOW READ";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Mode : %s", str);
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
str = "1MB";
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
str = "2MB";
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
str = "4MB";
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
str = "8MB";
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
default:
str = "2MB";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Flash Size : %s", str);
}
static void IRAM_ATTR bootloader_init_flash_configure(void)
{
bootloader_flash_clock_init();
bootloader_configure_spi_pins(1);
bootloader_flash_cs_timing_config();
}
static void bootloader_spi_flash_resume(void)
{
bootloader_execute_flash_command(CMD_RESUME, 0, 0, 0);
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
}
esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
print_flash_info(&bootloader_image_hdr);
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&bootloader_image_hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
return ESP_OK;
}
#if CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP
static void bootloader_flash_set_spi_mode(const esp_image_header_t* pfhdr)
{
esp_rom_spiflash_read_mode_t mode;
switch(pfhdr->spi_mode) {
case ESP_IMAGE_SPI_MODE_QIO:
mode = ESP_ROM_SPIFLASH_QIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_QOUT:
mode = ESP_ROM_SPIFLASH_QOUT_MODE;
break;
case ESP_IMAGE_SPI_MODE_DIO:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_FAST_READ:
mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
break;
case ESP_IMAGE_SPI_MODE_SLOW_READ:
mode = ESP_ROM_SPIFLASH_SLOWRD_MODE;
break;
default:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
}
esp_rom_spiflash_config_readmode(mode);
}
void bootloader_flash_hardware_init(void)
{
esp_rom_spiflash_attach(0, false);
//init cache hal
cache_hal_init();
//init mmu
mmu_hal_init();
// update flash ID
bootloader_flash_update_id();
// Check and run XMC startup flow
esp_err_t ret = bootloader_flash_xmc_startup();
assert(ret == ESP_OK);
/* Alternative of bootloader_init_spi_flash */
// RAM app doesn't have headers in the flash. Make a default one for it.
esp_image_header_t WORD_ALIGNED_ATTR hdr = {
.spi_mode = ESP_IMAGE_SPI_MODE_DIO,
.spi_speed = ESP_IMAGE_SPI_SPEED_DIV_2,
.spi_size = ESP_IMAGE_FLASH_SIZE_2MB,
};
bootloader_configure_spi_pins(1);
bootloader_flash_set_spi_mode(&hdr);
bootloader_flash_clock_config(&hdr);
bootloader_flash_clock_init();
bootloader_flash_cs_timing_config();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
}
#endif //CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP

View File

@@ -1,282 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
#include <assert.h>
#include "string.h"
#include "sdkconfig.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_rom_gpio.h"
#include "esp_rom_efuse.h"
#include "rom/spi_flash.h"
#include "rom/efuse.h"
#include "soc/efuse_reg.h"
#include "soc/spi_mem_reg.h"
#include "soc/soc_caps.h"
#include "flash_qio_mode.h"
#include "bootloader_flash_config.h"
#include "bootloader_common.h"
#include "bootloader_flash_priv.h"
#include "bootloader_init.h"
#include "hal/mmu_hal.h"
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
static const char *TAG = "boot.esp32h4";
void bootloader_flash_update_id()
{
esp_rom_spiflash_chip_t *chip = &rom_spiflash_legacy_data->chip;
chip->device_id = bootloader_read_flash_id();
}
void bootloader_flash_update_size(uint32_t size)
{
rom_spiflash_legacy_data->chip.chip_size = size;
}
void IRAM_ATTR bootloader_flash_cs_timing_config()
{
SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_HOLD_TIME_V, 0, SPI_MEM_CS_HOLD_TIME_S);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_SETUP_TIME_V, 0, SPI_MEM_CS_SETUP_TIME_S);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
{
uint32_t spi_clk_div = 0;
switch (pfhdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_1:
spi_clk_div = 1;
break;
case ESP_IMAGE_SPI_SPEED_DIV_2:
spi_clk_div = 2;
break;
case ESP_IMAGE_SPI_SPEED_DIV_3:
spi_clk_div = 3;
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
spi_clk_div = 4;
break;
default:
break;
}
esp_rom_spiflash_config_clk(spi_clk_div, 0);
}
void IRAM_ATTR bootloader_configure_spi_pins(int drv)
{
uint8_t clk_gpio_num = MSPI_IOMUX_PIN_NUM_CLK;
uint8_t q_gpio_num = MSPI_IOMUX_PIN_NUM_MISO;
uint8_t d_gpio_num = MSPI_IOMUX_PIN_NUM_MOSI;
uint8_t cs0_gpio_num = MSPI_IOMUX_PIN_NUM_CS0;
uint8_t hd_gpio_num = MSPI_IOMUX_PIN_NUM_HD;
uint8_t wp_gpio_num = MSPI_IOMUX_PIN_NUM_WP;
esp_rom_gpio_pad_set_drv(clk_gpio_num, drv);
esp_rom_gpio_pad_set_drv(q_gpio_num, drv);
esp_rom_gpio_pad_set_drv(d_gpio_num, drv);
esp_rom_gpio_pad_set_drv(cs0_gpio_num, drv);
esp_rom_gpio_pad_set_drv(hd_gpio_num, drv);
esp_rom_gpio_pad_set_drv(wp_gpio_num, drv);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr)
{
uint32_t size;
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
size = 1;
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
size = 2;
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
size = 4;
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
size = 8;
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
default:
size = 2;
}
// Set flash chip size
esp_rom_spiflash_config_param(rom_spiflash_legacy_data->chip.device_id, size * 0x100000, 0x10000, 0x1000, 0x100, 0xffff); // TODO: [ESP32H4] IDF-12290 set mode
}
static void print_flash_info(const esp_image_header_t *bootloader_hdr)
{
ESP_EARLY_LOGD(TAG, "magic %02x", bootloader_hdr->magic);
ESP_EARLY_LOGD(TAG, "segments %02x", bootloader_hdr->segment_count);
ESP_EARLY_LOGD(TAG, "spi_mode %02x", bootloader_hdr->spi_mode);
ESP_EARLY_LOGD(TAG, "spi_speed %02x", bootloader_hdr->spi_speed);
ESP_EARLY_LOGD(TAG, "spi_size %02x", bootloader_hdr->spi_size);
const char *str;
switch (bootloader_hdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_2:
str = "32MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
str = "16MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_1:
str = "64MHz";
break;
default:
str = "16MHz";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Speed : %s", str);
/* SPI mode could have been set to QIO during boot already,
so test the SPI registers not the flash header */
esp_rom_spiflash_read_mode_t spi_mode = bootloader_flash_get_spi_mode();
switch (spi_mode) {
case ESP_ROM_SPIFLASH_QIO_MODE:
str = "QIO";
break;
case ESP_ROM_SPIFLASH_QOUT_MODE:
str = "QOUT";
break;
case ESP_ROM_SPIFLASH_DIO_MODE:
str = "DIO";
break;
case ESP_ROM_SPIFLASH_DOUT_MODE:
str = "DOUT";
break;
case ESP_ROM_SPIFLASH_FASTRD_MODE:
str = "FAST READ";
break;
default:
str = "SLOW READ";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Mode : %s", str);
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
str = "1MB";
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
str = "2MB";
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
str = "4MB";
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
str = "8MB";
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
default:
str = "2MB";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Flash Size : %s", str);
}
static void IRAM_ATTR bootloader_init_flash_configure(void)
{
bootloader_configure_spi_pins(1);
bootloader_flash_cs_timing_config();
}
static void bootloader_spi_flash_resume(void)
{
bootloader_execute_flash_command(CMD_RESUME, 0, 0, 0);
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
}
esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
print_flash_info(&bootloader_image_hdr);
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&bootloader_image_hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
return ESP_OK;
}
#if CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP
static void bootloader_flash_set_spi_mode(const esp_image_header_t* pfhdr)
{
esp_rom_spiflash_read_mode_t mode;
switch(pfhdr->spi_mode) {
case ESP_IMAGE_SPI_MODE_QIO:
mode = ESP_ROM_SPIFLASH_QIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_QOUT:
mode = ESP_ROM_SPIFLASH_QOUT_MODE;
break;
case ESP_IMAGE_SPI_MODE_DIO:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_FAST_READ:
mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
break;
case ESP_IMAGE_SPI_MODE_SLOW_READ:
mode = ESP_ROM_SPIFLASH_SLOWRD_MODE;
break;
default:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
}
esp_rom_spiflash_config_readmode(mode);
}
void bootloader_flash_hardware_init(void)
{
esp_rom_spiflash_attach(0, false);
//init cache hal
cache_hal_init();
//init mmu
mmu_hal_init();
// update flash ID
bootloader_flash_update_id();
// Check and run XMC startup flow
esp_err_t ret = bootloader_flash_xmc_startup();
assert(ret == ESP_OK);
/* Alternative of bootloader_init_spi_flash */
// RAM app doesn't have headers in the flash. Make a default one for it.
esp_image_header_t WORD_ALIGNED_ATTR hdr = {
.spi_mode = ESP_IMAGE_SPI_MODE_DIO,
.spi_speed = ESP_IMAGE_SPI_SPEED_DIV_2,
.spi_size = ESP_IMAGE_FLASH_SIZE_2MB,
};
bootloader_configure_spi_pins(1);
bootloader_flash_set_spi_mode(&hdr);
bootloader_flash_clock_config(&hdr);
bootloader_flash_cs_timing_config();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
}
#endif //CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP

View File

@@ -19,7 +19,7 @@
#include "bootloader_init.h"
#include "hal/mmu_hal.h"
#include "hal/mmu_ll.h"
#include "hal/mspi_ll.h"
#include "hal/spimem_flash_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "esp_private/bootloader_flash_internal.h"
@@ -44,8 +44,8 @@ void IRAM_ATTR bootloader_flash_cs_timing_config(void)
void IRAM_ATTR bootloader_init_mspi_clock(void)
{
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_SPLL);
_mspi_timing_ll_set_flash_core_clock(0, 80);
_spimem_flash_ll_select_clk_source(0, FLASH_CLK_SRC_SPLL);
_spimem_ctrlr_ll_set_core_clock(0, 6);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
@@ -225,16 +225,7 @@ static void bootloader_spi_flash_resume(void)
esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
#if CONFIG_BOOTLOADER_FLASH_DC_AWARE
// Reset flash, clear volatile bits DC[0:1]. Make it work under default mode to boot.
bootloader_spi_flash_reset();
#endif
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -262,10 +262,6 @@ esp_err_t bootloader_init_spi_flash(void)
}
#endif
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -286,9 +286,6 @@ esp_err_t bootloader_init_spi_flash(void)
#endif
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -18,7 +18,6 @@
#include "soc/efuse_periph.h"
#include "soc/io_mux_reg.h"
#include "esp_private/spi_flash_os.h"
#include "bootloader_flash_override.h"
static const char *TAG = "qio_mode";
@@ -35,7 +34,7 @@ static const char *TAG = "qio_mode";
Searching of this table stops when the first match is found.
*/
const DRAM_ATTR bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list_default[] = {
const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list[] = {
/* Manufacturer, mfg_id, flash_id, id mask, Read Status, Write Status, QIE Bit */
{ "MXIC", 0xC2, 0x2000, 0xFF00, bootloader_read_status_8b_rdsr, bootloader_write_status_8b_wrsr, 6 },
{ "ISSI", 0x9D, 0x4000, 0xCF00, bootloader_read_status_8b_rdsr, bootloader_write_status_8b_wrsr, 6 }, /* IDs 0x40xx, 0x70xx */
@@ -54,9 +53,7 @@ const DRAM_ATTR bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_
{ NULL, 0xFF, 0xFFFF, 0xFFFF, bootloader_read_status_8b_rdsr2, bootloader_write_status_8b_wrsr2, 1 },
};
const DRAM_ATTR bootloader_qio_info_t* bootloader_flash_qe_support_list __attribute__((weak)) = bootloader_flash_qe_support_list_default;
uint8_t DRAM_ATTR __attribute__((weak)) bootloader_flash_qe_list_count = (sizeof(bootloader_flash_qe_support_list_default) / sizeof(bootloader_qio_info_t));
#define NUM_CHIPS (sizeof(bootloader_flash_qe_support_list) / sizeof(bootloader_qio_info_t))
static esp_err_t enable_qio_mode(bootloader_flash_read_status_fn_t read_status_fn,
bootloader_flash_write_status_fn_t write_status_fn,
@@ -85,11 +82,7 @@ void bootloader_enable_qio_mode(void)
flash_id = raw_flash_id & 0xFFFF;
ESP_LOGD(TAG, "Manufacturer ID 0x%02x chip ID 0x%04x", mfg_id, flash_id);
if ((intptr_t)bootloader_flash_qe_support_list != (intptr_t)bootloader_flash_qe_support_list_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_qio, the list number is %d", bootloader_flash_qe_list_count);
}
for (i = 0; i < bootloader_flash_qe_list_count - 1; i++) {
for (i = 0; i < NUM_CHIPS - 1; i++) {
const bootloader_qio_info_t *chip = &bootloader_flash_qe_support_list[i];
if (mfg_id == chip->mfg_id && (flash_id & chip->id_mask) == (chip->flash_id & chip->id_mask)) {
ESP_LOGI(TAG, "Enabling QIO for flash chip %s", bootloader_flash_qe_support_list[i].manufacturer);
@@ -97,7 +90,7 @@ void bootloader_enable_qio_mode(void)
}
}
if (i == bootloader_flash_qe_list_count - 1) {
if (i == NUM_CHIPS - 1) {
ESP_LOGI(TAG, "Enabling default flash chip QIO");
}
enable_qio_mode(bootloader_flash_qe_support_list[i].read_status_fn,

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,19 +24,6 @@ typedef enum {
ESP_IMAGE_APPLICATION
} esp_image_type;
/**
* @brief Check if the chip revision meets the image requirements.
*
* This function verifies whether the actual chip revision satisfies the minimum
* and optionally the maximum chip revision requirements specified in the image.
*
* @param image_header Pointer to the image header containing revision details.
* @param check_max_revision If true, also checks the maximum chip revision requirements.
*
* @return true if the chip revision meets the requirements, false otherwise.
*/
bool bootloader_common_check_chip_revision_validity(const esp_image_header_t *image_header, bool check_max_revision);
/**
* @brief Read ota_info partition and fill array from two otadata structures.
*

Some files were not shown because too many files have changed in this diff Show More