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
3937 changed files with 564074 additions and 301487 deletions

View File

@@ -1,4 +1,4 @@
[codespell]
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
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

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,10 +8,11 @@ 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/github-actions/release_zips@master
env:
RELEASE_PROJECT_NAME: ESP-IDF
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: espressif/release-zips-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
release_project_name: ESP-IDF
git_extra_args: --shallow-since="1 year ago"

View File

@@ -2,248 +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
/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 @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_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/ci
/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/ci
/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/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/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

@@ -1,7 +1,7 @@
.build_template:
stage: build
extends:
- .after_script:build:ccache:upload-when-fail
- .after_script:build:ccache-show-stats:upload-failed-job-logs
image: $ESP_ENV_IMAGE
tags:
- build
@@ -12,11 +12,11 @@
IDF_CCACHE_ENABLE: "1"
dependencies: []
.build_cmake_template:
.build_cmake_clang_template:
extends:
- .build_template
- .before_script:build
- .after_script:build:ccache
- .after_script:build:ccache-show-stats
dependencies: # set dependencies to null to avoid missing artifacts issue
needs:
- job: fast_template_app
@@ -34,29 +34,11 @@
- "**/build*/size.json"
expire_in: 1 week
when: always
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--copy-sdkconfig
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--extra-preserve-dirs
examples/bluetooth/esp_ble_mesh/ble_mesh_console
examples/bluetooth/hci/controller_hci_uart_esp32
examples/wifi/iperf
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
# for detailed documents, please refer to .gitlab/ci/README.md#uploaddownload-artifacts-to-internal-minio-server
- python tools/ci/artifacts_handler.py upload
.build_cmake_clang_template:
extends:
- .build_cmake_template
variables:
IDF_TOOLCHAIN: clang
TEST_BUILD_OPTS_EXTRA: ""
TEST_DIR: tools/test_apps/system/clang_build_test
PYTEST_IGNORE_COLLECT_IMPORT_ERROR: "1"
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
@@ -126,7 +108,7 @@ gcc_static_analyzer:
ANALYZING_APP: "examples/get-started/hello_world"
script:
- echo "CONFIG_COMPILER_STATIC_ANALYZER=y" >> ${ANALYZING_APP}/sdkconfig.defaults
- python -m idf_build_apps build -vv -p ${ANALYZING_APP} -t all
- python -m idf_build_apps build -v -p ${ANALYZING_APP} -t all
########################################
# Clang Build Apps Without Tests Cases #
@@ -246,14 +228,15 @@ pytest_build_system_macos:
extends:
- .test_build_system_template
- .before_script:build:macos
- .after_script:build:macos:upload-when-fail
- .after_script:build:macos:upload-failed-job-logs:ccache-show-stats
- .rules:build:macos
tags:
- macos_shell
parallel: 3
variables:
PYENV_VERSION: "3.8"
CI_CCACHE_DISABLE: "1" # ccache: error: Read-only file system
# 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".
build_docker:
extends:

View File

@@ -6,9 +6,9 @@ stages:
- pre_check
- build
- assign_test
- build_doc
- target_test
- host_test
- build_doc
- test_deploy
- deploy
- post_deploy
@@ -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: v5.4-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-v5.4:1"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v5.4:1-1"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v5.4: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"
@@ -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
@@ -141,40 +141,48 @@ variables:
export IDF_MIRROR_PREFIX_MAP=
fi
# install latest python packages
# target test jobs
if [[ "${CI_JOB_STAGE}" == "target_test" ]]; then
run_cmd bash install.sh --enable-ci --enable-pytest --enable-test-specific
elif [[ "${CI_JOB_STAGE}" == "build_doc" ]]; then
run_cmd bash install.sh --enable-ci --enable-docs
elif [[ "${CI_JOB_STAGE}" == "build" ]]; then
run_cmd bash install.sh --enable-ci
else
if ! echo "${CI_JOB_NAME}" | egrep ".*pytest.*"; then
if [[ "${CI_JOB_STAGE}" != "target_test" ]]; then
section_start "running_install_sh" "Running install.sh"
if [[ "${CI_JOB_STAGE}" == "build_doc" ]]; then
run_cmd bash install.sh --enable-ci --enable-docs
elif [[ "${CI_JOB_STAGE}" == "build" ]]; then
run_cmd bash install.sh --enable-ci
else
run_cmd bash install.sh --enable-ci --enable-pytest --enable-test-specific
if ! echo "${CI_JOB_NAME}" | egrep ".*pytest.*"; then
run_cmd bash install.sh --enable-ci
else
run_cmd bash install.sh --enable-ci --enable-pytest --enable-test-specific
fi
fi
section_end "running_install_sh"
else
section_start "install_python_env" "Install Python environment"
run_cmd python tools/idf_tools.py install-python-env --features ci,pytest,test-specific
section_end "install_python_env"
fi
# Install esp-clang if necessary
if [[ ! -z "$INSTALL_EXTRA_TOOLS" ]]; then
section_start "installing_optional_tools" "Install optional tools ${INSTALL_EXTRA_TOOLS}"
$IDF_PATH/tools/idf_tools.py --non-interactive install $INSTALL_EXTRA_TOOLS
section_end "installing_optional_tools"
fi
# Install esp-clang if necessary (esp-clang is separately installed)
if [[ "$IDF_TOOLCHAIN" == "clang" && -z "$CI_CLANG_DISTRO_URL" ]]; then
$IDF_PATH/tools/idf_tools.py --non-interactive install esp-clang
fi
# Install QEMU if necessary
if [[ ! -z "$INSTALL_QEMU" ]]; then
$IDF_PATH/tools/idf_tools.py --non-interactive install qemu-xtensa qemu-riscv32
if [[ "${CI_JOB_STAGE}" == "target_test" ]]; then
section_start "IDF_SKIP_TOOLS_CHECK" "Skip required tools check"
export IDF_SKIP_TOOLS_CHECK=1
section_end "IDF_SKIP_TOOLS_CHECK"
fi
# Since the version 3.21 CMake passes source files and include dirs to ninja using absolute paths.
# Needed for pytest junit reports.
$IDF_PATH/tools/idf_tools.py --non-interactive install cmake
section_start "source_export" "Source export.sh"
source ./export.sh
section_end "source_export"
# Custom clang toolchain
if [[ ! -z "$CI_CLANG_DISTRO_URL" ]]; then
if [[ "$IDF_TOOLCHAIN" == "clang" && ! -z "$CI_CLANG_DISTRO_URL" ]]; then
echo "Using custom clang from ${CI_CLANG_DISTRO_URL}"
wget $CI_CLANG_DISTRO_URL
ARCH_NAME=$(basename $CI_CLANG_DISTRO_URL)
@@ -183,13 +191,21 @@ variables:
fi
# Custom OpenOCD
if [[ ! -z "$OOCD_DISTRO_URL" && "$CI_JOB_STAGE" == "target_test" ]]; then
echo "Using custom OpenOCD from ${OOCD_DISTRO_URL}"
wget $OOCD_DISTRO_URL
ARCH_NAME=$(basename $OOCD_DISTRO_URL)
tar -x -f $ARCH_NAME
export OPENOCD_SCRIPTS=$PWD/openocd-esp32/share/openocd/scripts
export PATH=$PWD/openocd-esp32/bin:$PATH
if [[ "$CI_JOB_STAGE" == "target_test" ]]; then
machine="$(uname -m)"
if [[ "$machine" == "armv7l" ]] ; then
OOCD_DISTRO_URL="$OOCD_DISTRO_URL_ARMHF"
elif [[ "$machine" == "aarch64" ]] ; then
OOCD_DISTRO_URL="$OOCD_DISTRO_URL_ARM64"
fi
if [[ ! -z "$OOCD_DISTRO_URL" ]]; then
echo "Using custom OpenOCD from ${OOCD_DISTRO_URL}"
wget $OOCD_DISTRO_URL
ARCH_NAME=$(basename $OOCD_DISTRO_URL)
tar -x -f $ARCH_NAME
export OPENOCD_SCRIPTS=$PWD/openocd-esp32/share/openocd/scripts
export PATH=$PWD/openocd-esp32/bin:$PATH
fi
fi
if [[ -n "$CI_PYTHON_TOOL_REPO" ]]; then
@@ -198,6 +214,8 @@ variables:
rm -rf ${CI_PYTHON_TOOL_REPO}
fi
info "setup tools and python venv done"
.show_ccache_statistics: &show_ccache_statistics |
# Show ccache statistics if enabled globally
test "$CI_CCACHE_STATS" == 1 && test -n "$(which ccache)" && ccache --show-stats -vv || true
@@ -222,18 +240,20 @@ variables:
- 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
- $IDF_PATH/tools/idf_tools.py --non-interactive install cmake ninja
# This adds tools (compilers) and the version-specific Python environment to PATH
- *setup_tools_and_idf_python_venv
- fetch_submodules
variables:
INSTALL_EXTRA_TOOLS: cmake ninja
.after_script:build:macos:upload-when-fail:
.after_script:build:macos:upload-failed-job-logs:ccache-show-stats:
after_script:
# macos is running shell executor, which means it would use
# the system installed /usr/local/bin/python3 by default.
# Ensure pyenv and PYENV_VERSION installed
- eval "$(pyenv init -)"
- *upload_failed_job_log_artifacts
- *show_ccache_statistics
.before_script:build:
before_script:
@@ -244,11 +264,11 @@ variables:
- export EXTRA_CFLAGS=${PEDANTIC_CFLAGS}
- export EXTRA_CXXFLAGS=${PEDANTIC_CXXFLAGS}
.after_script:build:ccache:
.after_script:build:ccache-show-stats:
after_script:
- *show_ccache_statistics
.after_script:build:ccache:upload-when-fail:
.after_script:build:ccache-show-stats:upload-failed-job-logs:
after_script:
- *show_ccache_statistics
- *upload_failed_job_log_artifacts

View File

@@ -7,10 +7,11 @@
#
# This file should ONLY be used during bringup. Should be reset to empty after the bringup process
extra_default_build_targets:
- esp32c5
- esp32c61
bypass_check_test_targets:
- esp32c5
- esp32c61
#
# These lines would

View File

@@ -19,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

View File

@@ -37,25 +37,16 @@
.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"'
.doc-rules:build:docs-full:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-schedule
- <<: *if-protected
- <<: *if-label-build_docs
- <<: *if-label-docs_full
- <<: *if-dev-push
changes: *patterns-docs-full
.doc-rules:build:docs-full-prod:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-protected-no_label
.doc-rules:build:docs-partial:
rules:
- <<: *if-qa-test-tag
@@ -92,13 +83,14 @@ check_docs_lang_sync:
stage: build_doc
tags:
- build_docs
needs:
- job: fast_template_app
artifacts: false
optional: true
script:
- 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
artifacts:
expire_in: 4 days
when: always
parallel:
matrix:
- DOCLANG: ["en", "zh_CN"]
@@ -119,26 +111,12 @@ build_docs_html_full:
extends:
- .build_docs_template
- .doc-rules:build:docs-full
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
variables:
DOC_BUILDERS: "html"
build_docs_html_full_prod:
extends:
- .build_docs_template
- .doc-rules:build:docs-full-prod
dependencies: [] # Stop build_docs jobs from downloading all previous job's artifacts
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
expire_in: 4 days
variables:
DOC_BUILDERS: "html"
@@ -146,14 +124,12 @@ build_docs_html_partial:
extends:
- .build_docs_template
- .doc-rules:build:docs-partial
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
expire_in: 4 days
variables:
DOC_BUILDERS: "html"
parallel:
@@ -163,43 +139,21 @@ build_docs_html_partial:
- DOCLANG: "zh_CN"
DOCTGT: "esp32p4"
build_docs_pdf:
extends:
- .build_docs_template
- .doc-rules:build:docs-full
needs:
- job: fast_template_app
artifacts: false
optional: true
allow_failure: true # TODO IDFCI-2216
artifacts:
paths:
- docs/_build/*/*/latex/*
variables:
DOC_BUILDERS: "latex"
build_docs_pdf_prod:
extends:
- .build_docs_template
- .doc-rules:build:docs-full-prod
dependencies: [] # Stop build_docs jobs from downloading all previous job's artifacts
allow_failure: true # TODO IDFCI-2216
artifacts:
paths:
- docs/_build/*/*/latex/*
variables:
DOC_BUILDERS: "latex"
.deploy_docs_template:
image: $ESP_IDF_DOC_ENV_IMAGE
variables:
DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/"
PYTHONUNBUFFERED: 1
# ensure all tags are fetched, need to know the latest/stable tag for the docs
GIT_STRATEGY: clone
GIT_DEPTH: 0
stage: test_deploy
tags:
- deploy
- shiny
script:
# ensure all tags are fetched, need to know the latest/stable tag for the docs
- git fetch --tags --prune
- add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
- export GIT_VER=$(git describe --always ${PIPELINE_COMMIT_SHA} --)
- deploy-docs
@@ -218,8 +172,6 @@ deploy_docs_preview:
optional: true
- job: build_docs_html_full
optional: true
- job: build_docs_pdf
optional: true
variables:
TYPE: "preview"
# older branches use DOCS_DEPLOY_KEY, DOCS_SERVER, DOCS_SERVER_USER, DOCS_PATH for preview server so we keep these names for 'preview'
@@ -234,12 +186,12 @@ 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
- .doc-rules:build:docs-full-prod
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
- build_docs_html_full_prod
- build_docs_pdf_prod
- build_docs_html_full
- job: push_to_github
artifacts: false
variables:
@@ -254,16 +206,19 @@ deploy_docs_production:
check_doc_links:
extends:
- .build_docs_template
- .doc-rules:build:docs-full-prod
rules:
- <<: *if-protected-no_label
stage: post_deploy
needs:
- job: deploy_docs_production
artifacts: false
tags: ["build", "amd64", "internet"]
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/linkcheck/*.txt
expire_in: 1 week
allow_failure: true
script:
- cd docs

View File

@@ -111,7 +111,8 @@ test_cli_installer:
script:
# Tools must be downloaded for testing
# We could use "idf_tools.py download all", but we don't want to install clang because of its huge size
- python3 ${IDF_PATH}/tools/idf_tools.py download required qemu-riscv32 qemu-xtensa cmake
# cmake@version that is supported
- python3 ${IDF_PATH}/tools/idf_tools.py download required qemu-riscv32 qemu-xtensa cmake cmake@3.16.3
- cd ${IDF_PATH}/tools/test_idf_tools
- python3 -m pip install jsonschema
- python3 ./test_idf_tools.py -v
@@ -195,7 +196,7 @@ test_tools:
junit: ${IDF_PATH}/XUNIT_*.xml
variables:
LC_ALL: C.UTF-8
INSTALL_QEMU: 1 # for test_idf_qemu.py
INSTALL_EXTRA_TOOLS: "qemu-xtensa qemu-riscv32" # for test_idf_qemu.py
script:
- stat=0
- cd ${IDF_PATH}/tools/ci/test_autocomplete
@@ -233,6 +234,7 @@ test_mqtt_on_host:
test_transport_on_host:
extends: .host_test_template
allow_failure: true # IDFCI-2781 [v5.5, v5.4] test_transport_on_host fails on ubuntu 24.04
script:
- cd ${IDF_PATH}/components/tcp_transport/host_test
- idf.py build
@@ -282,9 +284,10 @@ test_pytest_qemu:
junit: XUNIT_RESULT.xml
parallel:
matrix:
- IDF_TARGET: [esp32, esp32c3]
variables:
INSTALL_QEMU: 1
- IDF_TARGET: "esp32"
INSTALL_EXTRA_TOOLS: "qemu-xtensa"
- IDF_TARGET: "esp32c3"
INSTALL_EXTRA_TOOLS: "qemu-riscv32"
script:
- run_cmd python tools/ci/ci_build_apps.py . -v
--target $IDF_TARGET
@@ -348,7 +351,7 @@ test_pytest_macos:
variables:
PYTEST_IGNORE_COLLECT_IMPORT_ERROR: "1"
script:
- run_cmd python tools/ci/ci_build_apps.py components examples tools/test_apps -vv
- run_cmd python tools/ci/ci_build_apps.py components examples tools/test_apps -v
--target linux
--pytest-apps
-m \"host_test and macos_shell\"
@@ -397,6 +400,17 @@ test_nvs_gen_check:
- cd ${IDF_PATH}/components/nvs_flash/nvs_partition_tool
- pytest --noconftest test_nvs_gen_check.py --junitxml=XUNIT_RESULT.xml
test_esp_rom:
extends: .host_test_template
artifacts:
paths:
- XUNIT_RESULT.xml
reports:
junit: XUNIT_RESULT.xml
script:
- cd ${IDF_PATH}/components/esp_rom/
- pytest --noconftest test_esp_rom.py --junitxml=XUNIT_RESULT.xml
make_sure_soc_caps_compatible_in_idf_build_apps:
extends:
- .host_test_template

View File

@@ -165,6 +165,8 @@ pipeline_variables:
if [ -n "$CI_PYTHON_CONSTRAINT_BRANCH" ]; then
echo "BUILD_AND_TEST_ALL_APPS=1" >> pipeline.env
fi
- echo "OOCD_DISTRO_URL_ARMHF=$OOCD_DISTRO_URL_ARMHF" >> pipeline.env
- echo "OOCD_DISTRO_URL_ARM64=$OOCD_DISTRO_URL_ARM64" >> pipeline.env
- python tools/ci/ci_process_description.py
- cat pipeline.env
- python tools/ci/artifacts_handler.py upload --type modified_files_and_components_report
@@ -183,12 +185,24 @@ baseline_manifest_sha:
tags: [fast_run, shiny]
script:
- |
if [ -n "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then
# merged results pipelines, by default
# diff between target-branch-head and merged-result-head
if [ -n "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA" ]; then
git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_SHA --depth=1
git checkout FETCH_HEAD
idf-build-apps dump-manifest-sha \
--manifest-files $(find . -name ".build-test-rules.yml" | xargs) \
--output .manifest_sha
# merge request pipelines, when the mr got conflicts
# diff between diff-base-sha and merge-request-head
elif [ -n "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1
git checkout FETCH_HEAD
idf-build-apps dump-manifest-sha \
--manifest-files $(find . -name ".build-test-rules.yml" | xargs) \
--output .manifest_sha
# other pipelines, like the protected branches pipelines
# not triggered in this job
fi
artifacts:
paths:

View File

@@ -31,7 +31,8 @@ test_cli_installer_win:
IDF_PATH: "$CI_PROJECT_DIR"
script:
# Tools must be downloaded for testing
- python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake
# cmake@version that is supported
- python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake cmake@3.16.3
- cd ${IDF_PATH}\tools\test_idf_tools
- python -m pip install jsonschema
- python .\test_idf_tools.py

6
.gitmodules vendored
View File

@@ -49,13 +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 = acc76239bee01d8e9c858ae2cab296704e52d916
sbom-cve-exclude-list = CVE-2024-31755 Resolved in v1.7.18
sbom-hash = c859b25da02955fef659d658b8f324b5cde87be3
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls

View File

@@ -23,7 +23,8 @@ repos:
.*.pb-c.h|
.*.pb-c.c|
.*.yuv|
.*.rgb
.*.rgb|
docs/sphinx-known-warnings\.txt
)$
- id: end-of-file-fixer
exclude: *whitespace_excludes
@@ -56,6 +57,7 @@ repos:
rev: v2.3.0
hooks:
- id: codespell
exclude: ^docs/sphinx-known-warnings\.txt$
- repo: local
hooks:
- id: check-executables
@@ -70,11 +72,6 @@ repos:
language: python
pass_filenames: false
always_run: true
- id: check-deprecated-kconfigs-options
name: Check if any Kconfig Options Deprecated
entry: tools/ci/check_deprecated_kconfigs.py
language: python
files: 'sdkconfig\.ci$|sdkconfig\.rename$|sdkconfig.*$'
- id: cmake-lint
name: Check CMake Files Format
entry: cmakelint --linelength=120 --spaces=4 --filter=-whitespace/indent
@@ -154,7 +151,7 @@ repos:
require_serial: true
additional_dependencies:
- PyYAML == 5.3.1
- idf-build-apps~=2.0
- idf-build-apps~=2.5
- id: sort-yaml-files
name: sort yaml files
entry: tools/ci/sort_yaml.py
@@ -241,6 +238,7 @@ repos:
name: Lint rST files in docs folder using Sphinx Lint
files: ^(docs/en|docs/zh_CN)/.*\.(rst|inc)$
- repo: https://github.com/espressif/esp-idf-kconfig.git
rev: v2.3.0
rev: v2.5.0
hooks:
- id: check-kconfig-files
- id: check-deprecated-kconfig-options

View File

@@ -678,5 +678,4 @@ mainmenu "Espressif IoT Development Framework Configuration"
- CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
- CONFIG_ESP_WIFI_EAP_TLS1_3
- CONFIG_ESP_WIFI_ENABLE_ROAMING_APP
- CONFIG_USB_HOST_EXT_PORT_SUPPORT_LS
- CONFIG_USB_HOST_EXT_PORT_RESET_ATTEMPTS

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
@@ -92,7 +92,7 @@ static esp_err_t esp_apptrace_membufs_swap(esp_apptrace_membufs_proto_data_t *pr
// switch to new block
proto->state.in_block++;
proto->hw->swap(new_block_num);
proto->hw->swap(new_block_num, proto->state.markers[prev_block_num]);
// handle data from host
esp_hostdata_hdr_t *hdr = (esp_hostdata_hdr_t *)proto->blocks[new_block_num].start;
@@ -148,6 +148,18 @@ static esp_err_t esp_apptrace_membufs_swap_waitus(esp_apptrace_membufs_proto_dat
if (res != ESP_OK) {
break;
}
#if CONFIG_IDF_TARGET_ESP32S3
/*
* ESP32S3 has a serious data corruption issue with the transferred data to host.
* This delay helps reduce the failure rate by temporarily reducing heavy memory writes
* from RTOS-level tracing and giving OpenOCD more time to read trace memory before
* the current thread continues execution. While this doesn't completely prevent
* memory access from other threads/cores/ISRs, it has shown to significantly improve
* reliability when combined with CRC checks in OpenOCD. In practice, this reduces the
* number of retries needed to read an entire block without corruption.
*/
esp_rom_delay_us(100);
#endif
}
return res;
}
@@ -339,7 +351,7 @@ uint8_t *esp_apptrace_membufs_up_buffer_get(esp_apptrace_membufs_proto_data_t *p
esp_err_t esp_apptrace_membufs_up_buffer_put(esp_apptrace_membufs_proto_data_t *proto, uint8_t *ptr, esp_apptrace_tmo_t *tmo)
{
esp_apptrace_membufs_pkt_end(ptr);
// TODO: mark block as busy in order not to re-use it for other tracing calls until it is completely written
// TODO: mark block as busy in order not to reuse it for other tracing calls until it is completely written
// TODO: avoid potential situation when all memory is consumed by low prio tasks which can not complete writing due to
// higher prio tasks and the latter can not allocate buffers at all
// this is abnormal situation can be detected on host which will receive only uncompleted buffers

View File

@@ -50,7 +50,7 @@ static uint8_t *esp_apptrace_riscv_down_buffer_get(esp_apptrace_riscv_data_t *hw
static esp_err_t esp_apptrace_riscv_down_buffer_put(esp_apptrace_riscv_data_t *hw_data, uint8_t *ptr, esp_apptrace_tmo_t *tmo);
static bool esp_apptrace_riscv_host_is_connected(esp_apptrace_riscv_data_t *hw_data);
static esp_err_t esp_apptrace_riscv_buffer_swap_start(uint32_t curr_block_id);
static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id);
static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len);
static esp_err_t esp_apptrace_riscv_buffer_swap_end(uint32_t new_block_id, uint32_t prev_block_len);
static bool esp_apptrace_riscv_host_data_pending(void);
@@ -353,7 +353,7 @@ static esp_err_t esp_apptrace_riscv_buffer_swap_end(uint32_t new_block_id, uint3
return ESP_OK;
}
static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id)
static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len)
{
/* do nothing */
return ESP_OK;

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
@@ -12,7 +12,7 @@
// ======================
// Xtensa has useful feature: TRAX debug module. It allows recording program execution flow at run-time without disturbing CPU.
// Exectution flow data are written to configurable Trace RAM block. Besides accessing Trace RAM itself TRAX module also allows to read/write
// Execution flow data are written to configurable Trace RAM block. Besides accessing Trace RAM itself TRAX module also allows to read/write
// trace memory via its registers by means of JTAG, APB or ERI transactions.
// ESP32 has two Xtensa cores with separate TRAX modules on them and provides two special memory regions to be used as trace memory.
// Chip allows muxing access to those trace memory blocks in such a way that while one block is accessed by CPUs another one can be accessed by host
@@ -47,7 +47,7 @@
// 2. TRAX Registers layout
// ========================
// This module uses two TRAX HW registers to communicate with host SW (OpenOCD).
// This module uses two TRAX HW registers and one Performance Monitor register to communicate with host SW (OpenOCD).
// - Control register uses TRAX_DELAYCNT as storage. Only lower 24 bits of TRAX_DELAYCNT are writable. Control register has the following bitfields:
// | 31..XXXXXX..24 | 23 .(host_connect). 23| 22..(block_id)..15 | 14..(block_len)..0 |
// 14..0 bits - actual length of user data in trace memory block. Target updates it every time it fills memory block and exposes it to host.
@@ -55,9 +55,15 @@
// 21..15 bits - trace memory block transfer ID. Block counter. It can overflow. Updated by target, host should not modify it. Actually can be 2 bits;
// 22 bit - 'host data present' flag. If set to one there is data from host, otherwise - no host data;
// 23 bit - 'host connected' flag. If zero then host is not connected and tracing module works in post-mortem mode, otherwise in streaming mode;
// - Status register uses TRAX_TRIGGERPC as storage. If this register is not zero then current CPU is changing TRAX registers and
// this register holds address of the instruction which application will execute when it finishes with those registers modifications.
// See 'Targets Connection' setion for details.
// - Status register uses TRAX_TRIGGERPC as storage. If this register is not zero then current CPU is changing TRAX registers and
// this register holds address of the instruction which application will execute when it finishes with those registers modifications.
// See 'Targets Connection' section for details.
// - CRC16 register uses ERI_PERFMON_PM1 as storage. This register is used to store CRC16 checksum of the exposed trace memory block.
// The register has the following format:
// | 31..16 (CRC indicator) | 15..0 (CRC16 value) |
// CRC indicator (0xA55A) is used to distinguish valid CRC values from other data that might be in the register.
// CRC16 is calculated over the entire exposed block and is updated every time a block is exposed to the host.
// This allows the host to verify data integrity of the received trace data.
// 3. Modes of operation
// =====================
@@ -127,7 +133,7 @@
// Access to internal module's data is synchronized with custom mutex. Mutex is a wrapper for portMUX_TYPE and uses almost the same sync mechanism as in
// vPortCPUAcquireMutex/vPortCPUReleaseMutex. The mechanism uses S32C1I Xtensa instruction to implement exclusive access to module's data from tasks and
// ISRs running on both cores. Also custom mutex allows specifying timeout for locking operation. Locking routine checks underlaying mutex in cycle until
// ISRs running on both cores. Also custom mutex allows specifying timeout for locking operation. Locking routine checks underlying mutex in cycle until
// it gets its ownership or timeout expires. The differences of application tracing module's mutex implementation from vPortCPUAcquireMutex/vPortCPUReleaseMutex are:
// - Support for timeouts.
// - Local IRQs for CPU which owns the mutex are disabled till the call to unlocking routine. This is made to avoid possible task's prio inversion.
@@ -142,9 +148,9 @@
// Timeout mechanism is based on xthal_get_ccount() routine and supports timeout values in microseconds.
// There are two situations when task/ISR can be delayed by tracing API call. Timeout mechanism takes into account both conditions:
// - Trace data are locked by another task/ISR. When wating on trace data lock.
// - Trace data are locked by another task/ISR. When waiting on trace data lock.
// - Current TRAX memory input block is full when working in streaming mode (host is connected). When waiting for host to complete previous block reading.
// When wating for any of above conditions xthal_get_ccount() is called periodically to calculate time elapsed from trace API routine entry. When elapsed
// When waiting for any of above conditions xthal_get_ccount() is called periodically to calculate time elapsed from trace API routine entry. When elapsed
// time exceeds specified timeout value operation is canceled and ESP_ERR_TIMEOUT code is returned.
#include "sdkconfig.h"
#include "soc/soc.h"
@@ -159,11 +165,15 @@
#include "esp_log.h"
#include "esp_app_trace_membufs_proto.h"
#include "esp_app_trace_port.h"
#include "esp_rom_crc.h"
// TRAX is disabled, so we use its registers for our own purposes
// | 31..XXXXXX..24 | 23 .(host_connect). 23 | 22 .(host_data). 22| 21..(block_id)..15 | 14..(block_len)..0 |
#define ESP_APPTRACE_TRAX_CTRL_REG ERI_TRAX_DELAYCNT
#define ESP_APPTRACE_TRAX_STAT_REG ERI_TRAX_TRIGGERPC
#define ESP_APPTRACE_TRAX_CRC16_REG ERI_PERFMON_PM1
#define ESP_APPTRACE_CRC_INDICATOR (0xA55AU << 16)
#define ESP_APPTRACE_TRAX_BLOCK_LEN_MSK 0x7FFFUL
#define ESP_APPTRACE_TRAX_BLOCK_LEN(_l_) ((_l_) & ESP_APPTRACE_TRAX_BLOCK_LEN_MSK)
@@ -198,7 +208,7 @@ static uint8_t *esp_apptrace_trax_down_buffer_get(esp_apptrace_trax_data_t *hw_d
static esp_err_t esp_apptrace_trax_down_buffer_put(esp_apptrace_trax_data_t *hw_data, uint8_t *ptr, esp_apptrace_tmo_t *tmo);
static bool esp_apptrace_trax_host_is_connected(esp_apptrace_trax_data_t *hw_data);
static esp_err_t esp_apptrace_trax_buffer_swap_start(uint32_t curr_block_id);
static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id);
static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len);
static esp_err_t esp_apptrace_trax_buffer_swap_end(uint32_t new_block_id, uint32_t prev_block_len);
static bool esp_apptrace_trax_host_data_pending(void);
@@ -498,7 +508,8 @@ static esp_err_t esp_apptrace_trax_buffer_swap_start(uint32_t curr_block_id)
uint32_t acked_block = ESP_APPTRACE_TRAX_BLOCK_ID_GET(ctrl_reg);
uint32_t host_to_read = ESP_APPTRACE_TRAX_BLOCK_LEN_GET(ctrl_reg);
if (host_to_read != 0 || acked_block != (curr_block_id & ESP_APPTRACE_TRAX_BLOCK_ID_MSK)) {
ESP_APPTRACE_LOGD("HC[%d]: Can not switch %" PRIx32 " %" PRIu32 " %" PRIx32 " %" PRIx32 "/%" PRIx32, esp_cpu_get_core_id(), ctrl_reg, host_to_read, acked_block,
ESP_APPTRACE_LOGD("HC[%d]: Can not switch %" PRIx32 " %" PRIu32 " %" PRIx32 " %" PRIx32 "/%" PRIx32,
esp_cpu_get_core_id(), ctrl_reg, host_to_read, acked_block,
curr_block_id & ESP_APPTRACE_TRAX_BLOCK_ID_MSK, curr_block_id);
res = ESP_ERR_NO_MEM;
goto _on_err;
@@ -514,14 +525,22 @@ static esp_err_t esp_apptrace_trax_buffer_swap_end(uint32_t new_block_id, uint32
{
uint32_t ctrl_reg = eri_read(ESP_APPTRACE_TRAX_CTRL_REG);
uint32_t host_connected = ESP_APPTRACE_TRAX_HOST_CONNECT & ctrl_reg;
eri_write(ESP_APPTRACE_TRAX_CTRL_REG, ESP_APPTRACE_TRAX_BLOCK_ID(new_block_id) |
host_connected | ESP_APPTRACE_TRAX_BLOCK_LEN(prev_block_len));
esp_apptrace_trax_buffer_swap_unlock();
return ESP_OK;
}
static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id)
static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len)
{
/* Before switching to the new block, calculate CRC16 of the current block */
if (prev_block_len > 0) {
const uint8_t *prev_block_start = s_trax_blocks[!((new_block_id % 2))];
uint16_t crc16 = esp_rom_crc16_le(0, prev_block_start, prev_block_len);
eri_write(ESP_APPTRACE_TRAX_CRC16_REG, crc16 | ESP_APPTRACE_CRC_INDICATOR);
ESP_APPTRACE_LOGD("CRC16:%x %d @%x", crc16, prev_block_len, prev_block_start);
}
esp_apptrace_trax_select_memory_block(new_block_id);
return ESP_OK;
}

View File

@@ -29,7 +29,7 @@ typedef struct {
typedef struct {
esp_err_t (*swap_start)(uint32_t curr_block_id);
esp_err_t (*swap)(uint32_t new_block_id);
esp_err_t (*swap)(uint32_t new_block_id, uint32_t prev_block_len);
esp_err_t (*swap_end)(uint32_t new_block_id, uint32_t prev_block_len);
bool (*host_data_pending)(void);
} esp_apptrace_membufs_proto_hw_t;

View File

@@ -10,7 +10,7 @@
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,7 +49,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.42 *
* SystemView version: 3.56 *
* *
**********************************************************************
----------------------------------------------------------------------

View File

@@ -8,7 +8,7 @@
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -47,7 +47,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.42 *
* SystemView version: 3.56 *
* *
**********************************************************************
---------------------------END-OF-HEADER------------------------------
@@ -100,6 +100,10 @@ Revision: $Rev: 25842 $
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif (defined(__ARM_ARCH_8_1M_MAIN__)) // Cortex-M85
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#else
#define _CORE_HAS_RTT_ASM_SUPPORT 0
#endif
@@ -130,6 +134,10 @@ Revision: $Rev: 25842 $
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif (defined __ARM_ARCH_8_1M_MAIN__) // Cortex-M85
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif ((defined __ARM_ARCH_7A__) || (defined __ARM_ARCH_7R__)) // Cortex-A/R 32-bit ARMv7-A/R
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
@@ -156,6 +164,10 @@ Revision: $Rev: 25842 $
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif (defined __ARM_ARCH_8_1M_MAIN__) // Cortex-M85
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif ((defined __ARM_ARCH_7A__) || (defined __ARM_ARCH_7R__)) // Cortex-A/R 32-bit ARMv7-A/R
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
@@ -271,6 +283,7 @@ Revision: $Rev: 25842 $
#ifndef SEGGER_RTT_ASM // defined when SEGGER_RTT.h is included from assembly file
#include <stdlib.h>
#include <stdarg.h>
#include <stdint.h>
/*********************************************************************
*
@@ -412,7 +425,7 @@ unsigned SEGGER_RTT_ReadUpBufferNoLock (unsigned BufferIndex, void* pDa
unsigned SEGGER_RTT_WriteDownBuffer (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
unsigned SEGGER_RTT_WriteDownBufferNoLock (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
#define SEGGER_RTT_HASDATA_UP(n) (((SEGGER_RTT_BUFFER_UP*)((char*)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->WrOff - ((SEGGER_RTT_BUFFER_UP*)((char*)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->RdOff) // Access uncached to make sure we see changes made by the J-Link side and all of our changes go into HW directly
#define SEGGER_RTT_HASDATA_UP(n) (((SEGGER_RTT_BUFFER_UP*)((uintptr_t)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->WrOff - ((SEGGER_RTT_BUFFER_UP*)((uintptr_t)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->RdOff) // Access uncached to make sure we see changes made by the J-Link side and all of our changes go into HW directly
/*********************************************************************
*

View File

@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,14 +49,14 @@
* *
**********************************************************************
* *
* SystemView version: 3.42 *
* SystemView version: 3.56 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW.c
Purpose : System visualization API implementation.
Revision: $Rev: 28341 $
Revision: $Rev: 29105 $
Additional information:
Packet format:
@@ -66,10 +66,10 @@ Additional information:
Packets with IDs 24..31 are standard packets with extendible
structure and contain a length field.
<ID><Lenght><Data><TimeStampDelta>
<ID><Length><Data><TimeStampDelta>
Packet ID 31 is used for SystemView extended events.
<ID><Lenght><ID_EX><Data><TimeStampDelta>
<ID><Length><ID_EX><Data><TimeStampDelta>
Packets with IDs >= 32 always contain a length field.
<ID><Length><Data><TimeStampDelta>
@@ -150,6 +150,7 @@ Additional information:
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>
#include "SEGGER_SYSVIEW_Int.h"
#include "SEGGER_RTT.h"
@@ -188,7 +189,7 @@ Additional information:
// Timestamps may be less than full 32-bits, in which case we need to zero
// the unused bits to properly handle overflows.
// Note that this is a quite common scenario, as a 32-bit time such as
// SysTick might be scaled down to reduce bandwith
// SysTick might be scaled down to reduce bandwidth
// or a 16-bit hardware time might be used.
#if SEGGER_SYSVIEW_TIMESTAMP_BITS < 32 // Eliminate unused bits in case hardware timestamps are less than 32 bits
#define MAKE_DELTA_32BIT(Delta) Delta <<= 32 - SEGGER_SYSVIEW_TIMESTAMP_BITS; \
@@ -388,8 +389,6 @@ static U8 _NumModules;
pDest = pSysviewPointer; \
};
#if (SEGGER_SYSVIEW_USE_STATIC_BUFFER == 1)
static U8 _aPacket[SEGGER_SYSVIEW_MAX_PACKET_SIZE];
@@ -432,6 +431,9 @@ static U8 _aPacket[SEGGER_SYSVIEW_MAX_PACKET_SIZE];
static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
unsigned int n;
const U8* p;
// Espressif doesn't support larger packages yet. Encode data length must be less than 255.
assert(NumBytes < 255);
//
n = 0;
p = (const U8*)pSrc;
@@ -442,8 +444,8 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
*pPayload++ = (U8)NumBytes;
} else {
*pPayload++ = 255;
*pPayload++ = (NumBytes & 255);
*pPayload++ = ((NumBytes >> 8) & 255);
*pPayload++ = (NumBytes & 255);
}
while (n < NumBytes) {
*pPayload++ = *p++;
@@ -452,6 +454,38 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
return pPayload;
}
/*********************************************************************
*
* _EncodeFloat()
*
* Function description
* Encode a float value in variable-length format.
*
* Parameters
* pPayload - Pointer to where value will be encoded.
* Value - Value to be encoded.
*
* Return value
* Pointer to the byte following the value, i.e. the first free
* byte in the payload and the next position to store payload
* content.
*/
static U8* _EncodeFloat(U8* pPayload, float Value) {
float Val = Value;
U8* pSysviewPointer;
U32* SysViewData;
pSysviewPointer = pPayload;
SysViewData = (U32*)&Val;
while((*SysViewData) > 0x7F) {
*pSysviewPointer++ = (U8)((*SysViewData) | 0x80);
(*SysViewData) >>= 7;
};
*pSysviewPointer++ = (U8)(*SysViewData);
pPayload = pSysviewPointer;
return pPayload;
}
/*********************************************************************
*
* _EncodeStr()
@@ -475,38 +509,42 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
* No more than 1 + Limit bytes will be encoded to the payload.
*/
static U8 *_EncodeStr(U8 *pPayload, const char *pText, unsigned int Limit) {
unsigned int n;
unsigned int Len;
//
// Compute string len
//
Len = 0;
if (pText != NULL) {
while(*(pText + Len) != 0) {
Len++;
}
if (Len > Limit) {
Len = Limit;
}
}
//
// Write Len
//
if (Len < 255) {
*pPayload++ = (U8)Len;
U8* pLen;
const char* sStart;
if (pText == NULL) {
*pPayload++ = (U8)0;
} else {
*pPayload++ = 255;
*pPayload++ = (Len & 255);
*pPayload++ = ((Len >> 8) & 255);
sStart = pText; // Remember start of string.
//
// Save space to store count byte(s).
//
pLen = pPayload++;
#if (SEGGER_SYSVIEW_MAX_STRING_LEN >= 255) // Length always encodes in 3 bytes
pPayload += 2;
#endif
//
// Limit string to maximum length and copy into payload buffer.
//
if (Limit > SEGGER_SYSVIEW_MAX_STRING_LEN) {
Limit = SEGGER_SYSVIEW_MAX_STRING_LEN;
}
while ((Limit-- > 0) && (*pText != '\0')) {
*pPayload++ = *pText++;
}
//
// Save string length to buffer.
//
#if (SEGGER_SYSVIEW_MAX_STRING_LEN >= 255) // Length always encodes in 3 bytes
Limit = (unsigned int)(pText - sStart);
*pLen++ = (U8)255;
*pLen++ = (U8)((Limit >> 8) & 255);
*pLen++ = (U8)(Limit & 255);
#else // Length always encodes in 1 byte
*pLen = (U8)(pText - sStart);
#endif
}
//
// copy string
//
n = 0;
while (n < Len) {
*pPayload++ = *pText++;
n++;
}
return pPayload;
}
@@ -693,7 +731,6 @@ static void _SendSyncInfo(void) {
for (n = 0; n < _NumModules; n++) {
SEGGER_SYSVIEW_SendModule(n);
}
SEGGER_SYSVIEW_SendModuleDescription();
}
}
#endif // (SEGGER_SYSVIEW_POST_MORTEM_MODE == 1)
@@ -1218,6 +1255,7 @@ static void _VPrintTarget(const char* sFormat, U32 Options, va_list* pParamList)
unsigned int FormatFlags;
unsigned int FieldWidth;
U8* pPayloadStart;
const char* s;
#if SEGGER_SYSVIEW_USE_STATIC_BUFFER == 0
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + SEGGER_SYSVIEW_MAX_STRING_LEN + 1 + 2 * SEGGER_SYSVIEW_QUANTA_U32);
SEGGER_SYSVIEW_LOCK();
@@ -1322,6 +1360,20 @@ static void _VPrintTarget(const char* sFormat, U32 Options, va_list* pParamList)
v = va_arg(*pParamList, int);
_PrintUnsigned(&BufferDesc, (unsigned int)v, 16u, NumDigits, FieldWidth, FormatFlags);
break;
case 's':
s = va_arg(*pParamList, const char*);
if (s == NULL) {
s = "(null)";
}
do {
c = *s;
s++;
if (c == '\0') {
break;
}
_StoreChar(&BufferDesc, c);
} while (BufferDesc.Cnt < SEGGER_SYSVIEW_MAX_STRING_LEN);
break;
case 'p':
v = va_arg(*pParamList, int);
_PrintUnsigned(&BufferDesc, (unsigned int)v, 16u, 8u, 8u, 0u);
@@ -1954,11 +2006,61 @@ void SEGGER_SYSVIEW_SendTaskInfo(const SEGGER_SYSVIEW_TASKINFO *pInfo) {
ENCODE_U32(pPayload, SHRINK_ID(pInfo->TaskID));
ENCODE_U32(pPayload, pInfo->StackBase);
ENCODE_U32(pPayload, pInfo->StackSize);
ENCODE_U32(pPayload, 0); // Stack End, future use
ENCODE_U32(pPayload, pInfo->StackUsage);
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_STACK_INFO);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_SendStackInfo()
*
* Function description
* Send a Stack Info Packet, containing TaskId for identification,
* stack base, stack size and stack usage.
*
*
* Parameters
* pInfo - Pointer to stack information to send.
*/
void SEGGER_SYSVIEW_SendStackInfo(const SEGGER_SYSVIEW_STACKINFO *pInfo) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 4 * SEGGER_SYSVIEW_QUANTA_U32);
//
pPayload = pPayloadStart;
ENCODE_U32(pPayload, SHRINK_ID(pInfo->TaskID));
ENCODE_U32(pPayload, pInfo->StackBase);
ENCODE_U32(pPayload, pInfo->StackSize);
ENCODE_U32(pPayload, pInfo->StackUsage);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_SampleData()
*
* Function description
* Send a Data Sample Packet, containing the data Id and the value.
*
*
* Parameters
* pInfo - Pointer to data sample struct to send.
*/
void SEGGER_SYSVIEW_SampleData(const SEGGER_SYSVIEW_DATA_SAMPLE *pInfo) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 2 * SEGGER_SYSVIEW_QUANTA_U32);
//
pPayload = pPayloadStart;
ENCODE_U32(pPayload, pInfo->ID);
pPayload = _EncodeFloat(pPayload, *(pInfo->pFloat_Value));
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_DATA_SAMPLE);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_SendTaskList()
@@ -2448,6 +2550,63 @@ void SEGGER_SYSVIEW_NameResource(U32 ResourceId, const char* sName) {
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_RegisterData()
*
* Function description
* Register data to sample the values via SystemView.
*
* Register functions are usually set in the system description
* callback, to ensure it is only sent when the SystemView Application
* is connected.
*
* Parameters
* pInfo - Struct containing all possible properties that can be sent via this registration event.
*/
void SEGGER_SYSVIEW_RegisterData(SEGGER_SYSVIEW_DATA_REGISTER* pInfo) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 8 * SEGGER_SYSVIEW_QUANTA_U32 + 1 + SEGGER_SYSVIEW_MAX_STRING_LEN);
//
pPayload = pPayloadStart;
ENCODE_U32(pPayload, SYSVIEW_EVTID_EX_REGISTER_DATA);
ENCODE_U32(pPayload, pInfo->ID);
pPayload = _EncodeStr(pPayload, pInfo->sName, SEGGER_SYSVIEW_MAX_STRING_LEN);
if (pInfo->sName != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
ENCODE_U32(pPayload, pInfo->RangeMax);
pPayload = _EncodeFloat(pPayload, pInfo->ScalingFactor);
pPayload = _EncodeStr(pPayload, pInfo->sUnit, SEGGER_SYSVIEW_MAX_STRING_LEN);
} else if (pInfo->ScalingFactor != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
ENCODE_U32(pPayload, pInfo->RangeMax);
pPayload = _EncodeFloat(pPayload, pInfo->ScalingFactor);
} else if (pInfo->RangeMax != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
ENCODE_U32(pPayload, pInfo->RangeMax);
} else if (pInfo->RangeMin != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
} else if (pInfo->Offset != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
} else if (pInfo->DataType != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
}
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_EX);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_HeapDefine()
@@ -2820,9 +2979,6 @@ void SEGGER_SYSVIEW_RegisterModule(SEGGER_SYSVIEW_MODULE* pModule) {
_NumModules++;
}
SEGGER_SYSVIEW_SendModule(0);
if (pModule->pfSendModuleDesc) {
pModule->pfSendModuleDesc();
}
SEGGER_SYSVIEW_UNLOCK();
}
@@ -2906,6 +3062,9 @@ void SEGGER_SYSVIEW_SendModule(U8 ModuleId) {
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_MODULEDESC);
RECORD_END();
}
if (pModule && pModule->pfSendModuleDesc) {
pModule->pfSendModuleDesc();
}
}
}
@@ -2986,6 +3145,39 @@ void SEGGER_SYSVIEW_PrintfHostEx(const char* s, U32 Options, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfHostEx()
*
* Function description
* Print a string which is formatted on the host by the SystemView Application
* with Additional information.
*
* Parameters
* s - String to be formatted.
* Options - Options for the string. i.e. Log level.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VPrintfHostEx(const char* s, U32 Options, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, Options, pParamList);
if (r == -1) {
_VPrintTarget(s, Options, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, Options, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_PrintfHost()
@@ -3020,6 +3212,37 @@ void SEGGER_SYSVIEW_PrintfHost(const char* s, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfHost()
*
* Function description
* Print a string which is formatted on the host by the SystemView Application.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VPrintfHost(const char* s, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, SEGGER_SYSVIEW_LOG, pParamList);
if (r == -1) {
_VPrintTarget(s, SEGGER_SYSVIEW_LOG, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, SEGGER_SYSVIEW_LOG, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_WarnfHost()
@@ -3055,6 +3278,38 @@ void SEGGER_SYSVIEW_WarnfHost(const char* s, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VWarnfHost()
*
* Function description
* Print a warning string which is formatted on the host by
* the SystemView Application.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VWarnfHost(const char* s, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, SEGGER_SYSVIEW_WARNING, pParamList);
if (r == -1) {
_VPrintTarget(s, SEGGER_SYSVIEW_WARNING, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, SEGGER_SYSVIEW_WARNING, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_ErrorfHost()
@@ -3090,6 +3345,38 @@ void SEGGER_SYSVIEW_ErrorfHost(const char* s, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VErrorfHost()
*
* Function description
* Print a warning string which is formatted on the host by
* the SystemView Application.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VErrorfHost(const char* s, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, SEGGER_SYSVIEW_ERROR, pParamList);
if (r == -1) {
_VPrintTarget(s, SEGGER_SYSVIEW_ERROR, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, SEGGER_SYSVIEW_ERROR, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_PrintfTargetEx()
@@ -3110,6 +3397,23 @@ void SEGGER_SYSVIEW_PrintfTargetEx(const char* s, U32 Options, ...) {
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfTargetEx()
*
* Function description
* Print a string which is formatted on the target before sent to
* the host with Additional information.
*
* Parameters
* s - String to be formatted.
* Options - Options for the string. i.e. Log level.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VPrintfTargetEx(const char* s, U32 Options, va_list *pParamList) {
_VPrintTarget(s, Options, pParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_PrintfTarget()
@@ -3129,6 +3433,22 @@ void SEGGER_SYSVIEW_PrintfTarget(const char* s, ...) {
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfTarget()
*
* Function description
* Print a string which is formatted on the target before sent to
* the host.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VPrintfTarget(const char* s, va_list* pParamList) {
_VPrintTarget(s, SEGGER_SYSVIEW_LOG, pParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_WarnfTarget()
@@ -3148,6 +3468,22 @@ void SEGGER_SYSVIEW_WarnfTarget(const char* s, ...) {
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VWarnfTarget()
*
* Function description
* Print a warning string which is formatted on the target before
* sent to the host.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VWarnfTarget(const char* s, va_list* pParamList) {
_VPrintTarget(s, SEGGER_SYSVIEW_WARNING, pParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_ErrorfTarget()
@@ -3166,6 +3502,22 @@ void SEGGER_SYSVIEW_ErrorfTarget(const char* s, ...) {
_VPrintTarget(s, SEGGER_SYSVIEW_ERROR, &ParamList);
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VErrorfTarget()
*
* Function description
* Print an error string which is formatted on the target before
* sent to the host.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VErrorfTarget(const char* s, va_list* pParamList) {
_VPrintTarget(s, SEGGER_SYSVIEW_ERROR, pParamList);
}
#endif // SEGGER_SYSVIEW_EXCLUDE_PRINTF
/*********************************************************************

View File

@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,13 +49,13 @@
* *
**********************************************************************
* *
* SystemView version: 3.42 *
* SystemView version: 3.56 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW.h
Purpose : System visualization API.
Revision: $Rev: 28237 $
Revision: $Rev: 28768 $
*/
#ifndef SEGGER_SYSVIEW_H
@@ -123,7 +123,7 @@ extern "C" {
#define SYSVIEW_EVTID_TIMER_EXIT 20
#define SYSVIEW_EVTID_STACK_INFO 21
#define SYSVIEW_EVTID_MODULEDESC 22
#define SYSVIEW_EVTID_DATA_SAMPLE 23
#define SYSVIEW_EVTID_INIT 24
#define SYSVIEW_EVTID_NAME_RESOURCE 25
#define SYSVIEW_EVTID_PRINT_FORMATTED 26
@@ -135,12 +135,13 @@ extern "C" {
//
// SystemView extended events. Sent with ID 31.
//
#define SYSVIEW_EVTID_EX_MARK 0
#define SYSVIEW_EVTID_EX_NAME_MARKER 1
#define SYSVIEW_EVTID_EX_HEAP_DEFINE 2
#define SYSVIEW_EVTID_EX_HEAP_ALLOC 3
#define SYSVIEW_EVTID_EX_HEAP_ALLOC_EX 4
#define SYSVIEW_EVTID_EX_HEAP_FREE 5
#define SYSVIEW_EVTID_EX_MARK 0
#define SYSVIEW_EVTID_EX_NAME_MARKER 1
#define SYSVIEW_EVTID_EX_HEAP_DEFINE 2
#define SYSVIEW_EVTID_EX_HEAP_ALLOC 3
#define SYSVIEW_EVTID_EX_HEAP_ALLOC_EX 4
#define SYSVIEW_EVTID_EX_HEAP_FREE 5
#define SYSVIEW_EVTID_EX_REGISTER_DATA 6
//
// Event masks to disable/enable events
//
@@ -167,7 +168,7 @@ extern "C" {
#define SYSVIEW_EVTMASK_TIMER_EXIT (1 << SYSVIEW_EVTID_TIMER_EXIT)
#define SYSVIEW_EVTMASK_STACK_INFO (1 << SYSVIEW_EVTID_STACK_INFO)
#define SYSVIEW_EVTMASK_MODULEDESC (1 << SYSVIEW_EVTID_MODULEDESC)
#define SYSVIEW_EVTMASK_DATA_SAMPLE (1 << SYSVIEW_EVTID_DATA_SAMPLE)
#define SYSVIEW_EVTMASK_INIT (1 << SYSVIEW_EVTID_INIT)
#define SYSVIEW_EVTMASK_NAME_RESOURCE (1 << SYSVIEW_EVTID_NAME_RESOURCE)
#define SYSVIEW_EVTMASK_PRINT_FORMATTED (1 << SYSVIEW_EVTID_PRINT_FORMATTED)
@@ -202,8 +203,42 @@ typedef struct {
U32 Prio;
U32 StackBase;
U32 StackSize;
U32 StackUsage;
} SEGGER_SYSVIEW_TASKINFO;
typedef struct {
U32 TaskID;
U32 StackBase;
U32 StackSize;
U32 StackUsage;
} SEGGER_SYSVIEW_STACKINFO;
typedef struct {
U32 ID;
union {
U32* pU32_Value;
I32* pI32_Value;
float* pFloat_Value;
};
} SEGGER_SYSVIEW_DATA_SAMPLE;
typedef enum {
SEGGER_SYSVIEW_TYPE_U32 = 0,
SEGGER_SYSVIEW_TYPE_I32 = 1,
SEGGER_SYSVIEW_TYPE_FLOAT = 2
} SEGGER_SYSVIEW_DATA_TYPE;
typedef struct {
U32 ID;
SEGGER_SYSVIEW_DATA_TYPE DataType;
I32 Offset;
I32 RangeMin;
I32 RangeMax;
float ScalingFactor;
const char* sName;
const char* sUnit;
} SEGGER_SYSVIEW_DATA_REGISTER;
typedef struct SEGGER_SYSVIEW_MODULE_STRUCT SEGGER_SYSVIEW_MODULE;
struct SEGGER_SYSVIEW_MODULE_STRUCT {
@@ -247,8 +282,8 @@ EXTERN unsigned int SEGGER_SYSVIEW_InterruptId;
*/
typedef struct {
U64 (*pfGetTime) (void);
void (*pfSendTaskList) (void);
U64 (*pfGetTime) (void);
void (*pfSendTaskList) (void);
} SEGGER_SYSVIEW_OS_API;
/*********************************************************************
@@ -262,9 +297,13 @@ void SEGGER_SYSVIEW_Stop (void);
void SEGGER_SYSVIEW_GetSysDesc (void);
void SEGGER_SYSVIEW_SendTaskList (void);
void SEGGER_SYSVIEW_SendTaskInfo (const SEGGER_SYSVIEW_TASKINFO* pInfo);
void SEGGER_SYSVIEW_SendStackInfo (const SEGGER_SYSVIEW_STACKINFO* pInfo);
void SEGGER_SYSVIEW_SendSysDesc (const char* sSysDesc);
int SEGGER_SYSVIEW_IsStarted (void);
int SEGGER_SYSVIEW_GetChannelID (void);
void SEGGER_SYSVIEW_SampleData (const SEGGER_SYSVIEW_DATA_SAMPLE *pInfo);
// Checks whether tracing has been started
U8 SEGGER_SYSVIEW_Started(void);
@@ -311,6 +350,7 @@ void SEGGER_SYSVIEW_HeapAllocEx (void* pHeap, void* pUserData,
void SEGGER_SYSVIEW_HeapFree (void* pHeap, void* pUserData);
void SEGGER_SYSVIEW_NameResource (U32 ResourceId, const char* sName);
void SEGGER_SYSVIEW_RegisterData ( SEGGER_SYSVIEW_DATA_REGISTER* pInfo);
int SEGGER_SYSVIEW_SendPacket (U8* pPacket, U8* pPayloadEnd, unsigned int EventId);
@@ -341,13 +381,21 @@ void SEGGER_SYSVIEW_SendNumModules (void);
*/
#ifndef SEGGER_SYSVIEW_EXCLUDE_PRINTF // Define in project to avoid warnings about variable parameter list
void SEGGER_SYSVIEW_PrintfHostEx (const char* s, U32 Options, ...);
void SEGGER_SYSVIEW_VPrintfHostEx (const char* s, U32 Options, va_list* pParamList);
void SEGGER_SYSVIEW_PrintfTargetEx (const char* s, U32 Options, ...);
void SEGGER_SYSVIEW_VPrintfTargetEx (const char* s, U32 Options, va_list* pParamList);
void SEGGER_SYSVIEW_PrintfHost (const char* s, ...);
void SEGGER_SYSVIEW_VPrintfHost (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_PrintfTarget (const char* s, ...);
void SEGGER_SYSVIEW_VPrintfTarget (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_WarnfHost (const char* s, ...);
void SEGGER_SYSVIEW_VWarnfHost (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_WarnfTarget (const char* s, ...);
void SEGGER_SYSVIEW_VWarnfTarget (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_ErrorfHost (const char* s, ...);
void SEGGER_SYSVIEW_VErrorfHost (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_ErrorfTarget (const char* s, ...);
void SEGGER_SYSVIEW_VErrorfTarget (const char* s, va_list* pParamList);
#endif
void SEGGER_SYSVIEW_Print (const char* s);

View File

@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,7 +49,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.42 *
* SystemView version: 3.56 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
@@ -72,6 +72,8 @@ Revision: $Rev: 26230 $
#include "SEGGER_SYSVIEW_Conf.h"
#include "SEGGER_RTT_Conf.h"
#include "esp_assert.h"
#ifdef __cplusplus
extern "C" {
#endif
@@ -370,12 +372,14 @@ extern "C" {
#define SEGGER_SYSVIEW_MAX_STRING_LEN 128
#endif
ESP_STATIC_ASSERT(SEGGER_SYSVIEW_MAX_STRING_LEN < 255, "SEGGER Sysview string length must be less than 255.");
/*********************************************************************
*
* Define: SEGGER_SYSVIEW_SUPPORT_LONG_ID
*
* Description
* It set, support enconding Evend Ids longer than 14 bit.
* It set, support encoding Evend Ids longer than 14 bit.
* Default
* 1
*/
@@ -388,7 +392,7 @@ extern "C" {
* Define: SEGGER_SYSVIEW_SUPPORT_LONG_DATA
*
* Description
* It set, support enconding event data longer than 14 bit.
* It set, support encoding event data longer than 14 bit.
* Default
* 0
*/
@@ -517,7 +521,7 @@ extern "C" {
* Define: SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT
*
* Description
* Configure how frequently syncronization is sent in post-mortem
* Configure how frequently synchronization is sent in post-mortem
* mode.
* Default
* 8: (1 << 8) = Every 256 Events.

View File

@@ -8,7 +8,7 @@
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -47,7 +47,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.42 *
* SystemView version: 3.56 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------

View File

@@ -1,5 +1,5 @@
name: 'SystemView'
version: '3.42'
version: '3.56'
cpe: cpe:2.3:a:segger:systemview:{}:*:*:*:*:*:*:*
supplier: 'Organization: Espressif Systems (Shanghai) CO LTD'
originator: 'Organization: SEGGER Microcontroller GmbH'

View File

@@ -3,7 +3,7 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2017-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2017-2025 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
@@ -58,12 +58,14 @@ File : SEGGER_SYSVIEW_Config_FreeRTOS.c
Purpose : Sample setup configuration of SystemView with FreeRTOS.
Revision: $Rev: 7745 $
*/
#include <string.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "SEGGER_SYSVIEW.h"
#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"
@@ -83,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
@@ -104,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;
@@ -156,15 +151,16 @@ static esp_apptrace_lock_t s_sys_view_lock = {.mux = portMUX_INITIALIZER_UNLOCKE
* Sends SystemView description strings.
*/
static void _cbSendSystemDesc(void) {
char irq_str[32];
char irq_str[32] = "I#";
SEGGER_SYSVIEW_SendSysDesc("N="SYSVIEW_APP_NAME",D="SYSVIEW_DEVICE_NAME",C="SYSVIEW_CORE_NAME",O=FreeRTOS");
snprintf(irq_str, sizeof(irq_str), "I#%d=SysTick", SYSTICK_INTR_ID);
strcat(itoa(SYSTICK_INTR_ID, irq_str + 2, 10), "=SysTick");
SEGGER_SYSVIEW_SendSysDesc(irq_str);
size_t isr_count = sizeof(esp_isr_names)/sizeof(esp_isr_names[0]);
for (size_t i = 0; i < isr_count; ++i) {
if (esp_isr_names[i] == NULL || (ETS_INTERNAL_INTR_SOURCE_OFF + i) == SYSTICK_INTR_ID)
continue;
snprintf(irq_str, sizeof(irq_str), "I#%d=%s", ETS_INTERNAL_INTR_SOURCE_OFF + i, esp_isr_names[i]);
strcat(itoa(ETS_INTERNAL_INTR_SOURCE_OFF + i, irq_str + 2, 10), "=");
strncat(irq_str, esp_isr_names[i], sizeof(irq_str) - strlen(irq_str) - 1);
SEGGER_SYSVIEW_SendSysDesc(irq_str);
}
}
@@ -175,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

@@ -108,7 +108,7 @@ static void _cbSendTaskList(void) {
* Called from SystemView when asked by the host, returns the
* current system time in micro seconds.
*/
static U64 _cbGetTime(void) {
__attribute__((unused)) static U64 _cbGetTime(void) {
U64 Time;
Time = xTaskGetTickCountFromISR();
@@ -260,7 +260,10 @@ void SYSVIEW_SendTaskInfo(U32 TaskID, const char* sName, unsigned Prio, U32 Stac
*/
// Callbacks provided to SYSTEMVIEW by FreeRTOS
const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI = {
_cbGetTime,
/* Callback _cbGetTime locks xKernelLock inside xTaskGetTickCountFromISR, this can cause deadlock on multi-core.
To prevent deadlock, always lock xKernelLock before s_sys_view_lock. Omitting the callback here results in sending
SYSVIEW_EVTID_SYSTIME_CYCLES events instead of SYSVIEW_EVTID_SYSTIME_US */
NULL,
_cbSendTaskList,
};

View File

@@ -21,7 +21,7 @@ const static char *TAG = "sysview_heap_trace";
#endif
static SEGGER_SYSVIEW_MODULE s_esp_sysview_heap_module = {
.sModule = "ESP32 SystemView Heap Tracing Module",
.sModule = "M=ESP32 SystemView Heap Tracing Module",
.NumEvents = 2,
};

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -41,6 +41,7 @@ typedef struct ota_ops_entry_ {
bool need_erase;
uint32_t wrote_size;
uint8_t partial_bytes;
bool ota_resumption;
WORD_ALIGNED_ATTR uint8_t partial_data[16];
LIST_ENTRY(ota_ops_entry_) entries;
} ota_ops_entry_t;
@@ -111,6 +112,22 @@ static esp_ota_img_states_t set_new_state_otadata(void)
#endif
}
static ota_ops_entry_t* esp_ota_init_entry(const esp_partition_t *partition)
{
ota_ops_entry_t *new_entry = (ota_ops_entry_t *) calloc(1, sizeof(ota_ops_entry_t));
if (new_entry == NULL) {
return NULL;
}
LIST_INSERT_HEAD(&s_ota_ops_entries_head, new_entry, entries);
new_entry->part = partition;
new_entry->handle = ++s_ota_ops_last_handle;
return new_entry;
}
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;
@@ -144,6 +161,13 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
}
#endif
new_entry = esp_ota_init_entry(partition);
if (new_entry == NULL) {
return ESP_ERR_NO_MEM;
}
new_entry->need_erase = (image_size == OTA_WITH_SEQUENTIAL_WRITES);
*out_handle = new_entry->handle;
if (image_size != OTA_WITH_SEQUENTIAL_WRITES) {
// If input image size is 0 or OTA_SIZE_UNKNOWN, erase entire partition
if ((image_size == 0) || (image_size == OTA_SIZE_UNKNOWN)) {
@@ -157,16 +181,44 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
}
}
new_entry = (ota_ops_entry_t *) calloc(1, sizeof(ota_ops_entry_t));
return ESP_OK;
}
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)
{
ota_ops_entry_t *new_entry;
if ((partition == NULL) || (out_handle == NULL)) {
return ESP_ERR_INVALID_ARG;
}
if (image_offset > partition->size) {
return ESP_ERR_INVALID_ARG;
}
partition = esp_partition_verify(partition);
if (partition == NULL) {
return ESP_ERR_NOT_FOUND;
}
// 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();
if (partition == running_partition) {
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
new_entry = esp_ota_init_entry(partition);
if (new_entry == NULL) {
return ESP_ERR_NO_MEM;
}
LIST_INSERT_HEAD(&s_ota_ops_entries_head, new_entry, entries);
new_entry->part = partition;
new_entry->handle = ++s_ota_ops_last_handle;
new_entry->need_erase = (image_size == OTA_WITH_SEQUENTIAL_WRITES);
new_entry->ota_resumption = true;
new_entry->wrote_size = image_offset;
new_entry->need_erase = (erase_size == OTA_WITH_SEQUENTIAL_WRITES);
*out_handle = new_entry->handle;
return ESP_OK;
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -99,6 +99,32 @@ int esp_ota_get_app_elf_sha256(char* dst, size_t size) __attribute__((deprecated
*/
esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp_ota_handle_t* out_handle);
/**
* @brief Resume an interrupted OTA update by continuing to write to the specified partition.
*
* This function is used when an OTA update was previously started and needs to be resumed after an interruption.
* It continues the OTA process from the specified offset within the partition.
*
* Unlike esp_ota_begin(), this function does not erase the partition which receives the OTA update, but rather expects that part of the image
* has already been written correctly, and it resumes writing from the given offset.
*
* @param partition Pointer to info for the partition which is receiving the OTA update. Required.
* @param erase_size Specifies how much flash memory to erase before resuming OTA, depending on whether a sequential write or a bulk erase is being used.
* @param image_offset Offset from where to resume the OTA process. Should be set to the number of bytes already written.
* @param out_handle On success, returns a handle that should be used for subsequent esp_ota_write() and esp_ota_end() calls.
*
* @return
* - ESP_OK: OTA operation resumed successfully.
* - ESP_ERR_INVALID_ARG: partition, out_handle were NULL or image_offset arguments is negative, or partition doesn't point to an OTA app partition.
* - ESP_ERR_NO_MEM: Cannot allocate memory for OTA operation.
* - ESP_ERR_OTA_PARTITION_CONFLICT: Partition holds the currently running firmware, cannot update in place.
* - ESP_ERR_NOT_FOUND: Partition argument not found in partition table.
* - ESP_ERR_OTA_SELECT_INFO_INVALID: The OTA data partition contains invalid data.
* - ESP_ERR_INVALID_SIZE: Partition doesn't fit in configured flash size.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
*/
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 Write OTA update data to partition
*

View File

@@ -1107,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
@@ -1134,6 +1134,45 @@ menu "Security features"
If not set, the app does not care if the flash encryption eFuse bit is set or not.
config SECURE_FLASH_PSEUDO_ROUND_FUNC
bool "Permanently enable XTS-AES's pseudo rounds function"
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.
choice SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH
prompt "Strength of the pseudo rounds function"
depends on SECURE_FLASH_PSEUDO_ROUND_FUNC
default SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_LOW
help
The strength of the pseudo rounds functions can be configured to low, medium and high,
each denoting the values that would be stored in the efuses field.
By default the value to set to low.
You can configure the strength of the pseudo rounds functions according to your use cases,
for example, increasing the strength would provide higher security but would slow down the
flash encryption/decryption operations.
For more info regarding the performance impact, please checkout the pseudo round function section of the
security guide documentation.
config SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_LOW
bool "Low"
config SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_MEDIUM
bool "Medium"
config SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_HIGH
bool "High"
endchoice
config SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH
int
default 1 if SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_LOW
default 2 if SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_MEDIUM
default 3 if SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH_HIGH
config SECURE_ROM_DL_MODE_ENABLED
bool
default y if SOC_SUPPORTS_SECURE_DL_MODE && !SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
@@ -1185,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

@@ -36,6 +36,10 @@ if(CONFIG_APP_BUILD_TYPE_APP_2NDBOOT)
)
endif()
if(CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE)
list(APPEND srcs "src/${IDF_TARGET}/bootloader_ecdsa.c")
endif()
if(BOOTLOADER_BUILD OR CONFIG_APP_BUILD_TYPE_RAM)
set(include_dirs "include" "bootloader_flash/include"
"private_include")
@@ -50,10 +54,6 @@ if(BOOTLOADER_BUILD OR CONFIG_APP_BUILD_TYPE_RAM)
"src/${IDF_TARGET}/bootloader_${IDF_TARGET}.c"
)
list(APPEND priv_requires hal)
if(CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE)
list(APPEND srcs
"src/${IDF_TARGET}/bootloader_ecdsa.c")
endif()
else()
list(APPEND srcs
"src/idf/bootloader_sha.c")

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -13,6 +13,7 @@
#include <spi_flash_mmap.h> /* including in bootloader for error values */
#include "sdkconfig.h"
#include "bootloader_flash.h"
#include "soc/ext_mem_defs.h"
#ifdef __cplusplus
extern "C" {
@@ -20,8 +21,11 @@ extern "C" {
#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
#define MMAP_ALIGNED_MASK (SPI_FLASH_MMU_PAGE_SIZE - 1)
#define MMU_FLASH_MASK (~(SPI_FLASH_MMU_PAGE_SIZE - 1))
#define MMU_FLASH_MASK_FROM_VAL(PAGE_SZ) (~((PAGE_SZ) - 1))
#define MMU_DROM_END_ENTRY_VADDR_FROM_VAL(PAGE_SZ) (SOC_DRAM_FLASH_ADDRESS_HIGH - (PAGE_SZ))
/**
* MMU mapping must always be in the unit of a SPI_FLASH_MMU_PAGE_SIZE
@@ -89,7 +93,7 @@ uint32_t bootloader_mmap_get_free_pages(void);
* @param length - Length of data to map.
*
* @return Pointer to mapped data memory (at src_addr), or NULL
* if an allocation error occured.
* if an allocation error occurred.
*/
const void *bootloader_mmap(uint32_t src_addr, uint32_t size);

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2010-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2010-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -28,7 +28,21 @@ extern "C" {
*/
__attribute__((always_inline))
inline static bool esp_dram_match_iram(void) {
return (SOC_DRAM_LOW == SOC_IRAM_LOW && SOC_DRAM_HIGH == SOC_IRAM_HIGH);
return ((SOC_DRAM_LOW == SOC_IRAM_LOW) && (SOC_DRAM_HIGH == SOC_IRAM_HIGH));
}
/**
* @brief Check if the RTC IRAM and RTC DRAM are separate or using the same memory space
*
* @return true if the RTC DRAM and RTC IRAM are sharing the same memory space, false otherwise
*/
__attribute__((always_inline))
inline static bool esp_rtc_dram_match_rtc_iram(void) {
#if SOC_RTC_FAST_MEM_SUPPORTED
return ((SOC_RTC_IRAM_LOW == SOC_RTC_DRAM_LOW) && (SOC_RTC_IRAM_HIGH == SOC_RTC_DRAM_HIGH));
#else
return false;
#endif
}
/**
@@ -82,6 +96,7 @@ __attribute__((always_inline))
inline static bool esp_ptr_in_diram_iram(const void *p) {
// TODO: IDF-5980 esp32c6 D/I RAM share the same address
#if SOC_DIRAM_IRAM_LOW == SOC_DIRAM_DRAM_LOW
(void)p;
return false;
#else
return ((intptr_t)p >= SOC_DIRAM_IRAM_LOW && (intptr_t)p < SOC_DIRAM_IRAM_HIGH);
@@ -100,6 +115,7 @@ inline static bool esp_ptr_in_rtc_iram_fast(const void *p) {
#if SOC_RTC_FAST_MEM_SUPPORTED
return ((intptr_t)p >= SOC_RTC_IRAM_LOW && (intptr_t)p < SOC_RTC_IRAM_HIGH);
#else
(void)p;
return false;
#endif
}
@@ -116,6 +132,7 @@ inline static bool esp_ptr_in_rtc_dram_fast(const void *p) {
#if SOC_RTC_FAST_MEM_SUPPORTED
return ((intptr_t)p >= SOC_RTC_DRAM_LOW && (intptr_t)p < SOC_RTC_DRAM_HIGH);
#else
(void)p;
return false;
#endif
}
@@ -151,6 +168,21 @@ inline static void * esp_ptr_diram_dram_to_iram(const void *p) {
#endif
}
/* Convert a RTC DRAM pointer to equivalent word address in RTC IRAM
- Address must be word aligned
- Address must pass esp_ptr_in_rtc_dram_fast() test, or result will be invalid pointer
*/
__attribute__((always_inline))
inline static void * esp_ptr_rtc_dram_to_iram(const void *p) {
intptr_t ptr = (intptr_t)p;
#if SOC_RTC_FAST_MEM_SUPPORTED && (SOC_RTC_IRAM_LOW != SOC_RTC_DRAM_LOW)
return (void *) ( SOC_RTC_IRAM_LOW + (ptr - SOC_RTC_DRAM_LOW) );
#else
return (void *) ptr;
#endif
}
/* Convert a D/IRAM IRAM pointer to equivalent word address in DRAM
- Address must be word aligned

View File

@@ -215,6 +215,10 @@ bool esp_flash_encryption_cfg_verify_release_mode(void);
* It burns:
* - "disable encrypt in dl mode"
* - set FLASH_CRYPT_CNT efuse to max
*
* In case of the targets that support the XTS-AES peripheral's pseudo rounds function,
* this API would configure the pseudo rounds level efuse bit to level low if the efuse bit
* is not set already.
*/
void esp_flash_encryption_set_release_mode(void);

View File

@@ -34,6 +34,7 @@ typedef struct {
uint32_t image_len; /* Length of image on flash, in bytes */
uint8_t image_digest[32]; /* appended SHA-256 digest */
uint32_t secure_version; /* secure version for anti-rollback, it is covered by sha256 (set if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK=y) */
uint32_t mmu_page_size; /* Flash MMU page size per binary header */
} esp_image_metadata_t;
typedef enum {

View File

@@ -236,6 +236,23 @@ typedef struct {
uint8_t signature[64];
} esp_secure_boot_sig_block_t;
/** @brief Get the size of the secure boot signature block
*
* This is the size of the signature block appended to a signed image.
*
* @return Size of the secure boot signature block in bytes
*/
static inline uint32_t esp_secure_boot_sig_block_size(void)
{
#if CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME
return sizeof(ets_secure_boot_signature_t);
#elif defined(CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME)
return sizeof(esp_secure_boot_sig_block_t);
#else
return 0;
#endif
}
/** @brief Verify the ECDSA secure boot signature block for Secure Boot V1.
*
* Calculates Deterministic ECDSA w/ SHA256 based on the SHA256 hash of the image. ECDSA signature

View File

@@ -28,6 +28,7 @@
#define ESP_PARTITION_HASH_LEN 32 /* SHA-256 digest length */
#define IS_FIELD_SET(rev_full) (((rev_full) != 65535) && ((rev_full) != 0))
#define ALIGN_UP(num, align) (((num) + ((align) - 1)) & ~((align) - 1))
static const char* TAG = "boot_comm";
@@ -242,7 +243,10 @@ rtc_retain_mem_t* bootloader_common_get_rtc_retain_mem(void)
#if ESP_ROM_HAS_LP_ROM
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_LOW)
#else
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t))
/* Since the structure containing the retain_mem_t is aligned on 8 by the linker, make sure we align this
* structure size here too */
#define RETAIN_MEM_SIZE ALIGN_UP(sizeof(rtc_retain_mem_t), 8)
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - RETAIN_MEM_SIZE)
#endif //ESP_ROM_HAS_LP_ROM
static rtc_retain_mem_t *const s_bootloader_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR;
return s_bootloader_retain_mem;

View File

@@ -74,6 +74,12 @@ void bootloader_console_init(void)
// Enable the peripheral
uart_ll_enable_bus_clock(uart_num, true);
uart_ll_reset_register(uart_num);
// Set clock source
#if SOC_UART_SUPPORT_XTAL_CLK
uart_ll_set_sclk(UART_LL_GET_HW(uart_num), (soc_module_clk_t)UART_SCLK_XTAL);
#else
uart_ll_set_sclk(UART_LL_GET_HW(uart_num), (soc_module_clk_t)UART_SCLK_APB);
#endif
// Reset TX and RX FIFOs
uart_ll_txfifo_rst(UART_LL_GET_HW(uart_num));
uart_ll_rxfifo_rst(UART_LL_GET_HW(uart_num));

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -12,6 +12,7 @@
#include "soc/lp_adc_reg.h"
#include "esp_private/regi2c_ctrl.h"
#include "esp_rom_regi2c.h"
#include "soc/lpperi_reg.h"
// TODO IDF-6497: once ADC API is supported, use the API instead of defining functions and constants here
@@ -30,8 +31,8 @@ static void adc1_fix_initcode_set(uint32_t initcode_value)
{
uint32_t msb = initcode_value >> 8;
uint32_t lsb = initcode_value & 0xff;
REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_SAR1_INIT_CODE_MSB, msb);
REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_SAR1_INIT_CODE_LSB, lsb);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SAR1_INITIAL_CODE_HIGH_ADDR, msb);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SAR1_INITIAL_CODE_LOW_ADDR, lsb);
}
//total 4 tables
@@ -50,6 +51,7 @@ void bootloader_random_enable(void)
pattern_table sar1_table[4] = {};
uint32_t pattern_len = 0;
SET_PERI_REG_MASK(LPPERI_CLK_EN_REG, LPPERI_CK_EN_LP_ADC);
SET_PERI_REG_MASK(HP_SYS_CLKRST_SOC_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_ADC_APB_CLK_EN);
SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL23_REG, HP_SYS_CLKRST_REG_ADC_CLK_EN);
@@ -94,7 +96,8 @@ void bootloader_random_enable(void)
void bootloader_random_disable(void)
{
// No-op for now TODO IDF-6497
// ADC should be set to defaults here, once ADC API is implemented
// OR just keep this empty and let application continue to use RNG initialized by the bootloader
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SAR1_INITIAL_CODE_LOW_ADDR, 0);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SAR1_INITIAL_CODE_HIGH_ADDR, 0);
REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_ENT_VDD_GRP1, 0);
REGI2C_WRITE_MASK(I2C_SAR_ADC, I2C_SAR_ADC_DTEST_VDD_GRP1, 0);
}

View File

@@ -20,6 +20,7 @@
#include "esp_rom_spiflash.h"
#include "soc/soc.h"
#include "soc/soc_caps.h"
#include "soc/rtc.h"
#include "soc/efuse_periph.h"
#include "soc/rtc_periph.h"
@@ -66,7 +67,7 @@ static void set_cache_and_start_app(uint32_t drom_addr,
uint32_t irom_addr,
uint32_t irom_load_addr,
uint32_t irom_size,
uint32_t entry_addr);
const esp_image_metadata_t *data);
esp_err_t bootloader_common_read_otadata(const esp_partition_pos_t *ota_info, esp_ota_select_entry_t *two_otadata)
{
@@ -789,7 +790,7 @@ static void unpack_load_app(const esp_image_metadata_t *data)
rom_addr[1],
rom_load_addr[1],
rom_size[1],
data->image.entry_addr);
data);
}
#else //!SOC_MMU_DI_VADDR_SHARED
@@ -834,7 +835,7 @@ static void unpack_load_app(const esp_image_metadata_t *data)
irom_addr,
irom_load_addr,
irom_size,
data->image.entry_addr);
data);
}
#endif //#if SOC_MMU_DI_VADDR_SHARED
@@ -859,9 +860,11 @@ static void set_cache_and_start_app(
uint32_t irom_addr,
uint32_t irom_load_addr,
uint32_t irom_size,
uint32_t entry_addr)
const esp_image_metadata_t *data)
{
int rc __attribute__((unused));
const uint32_t entry_addr = data->image.entry_addr;
const uint32_t mmu_page_size = data->mmu_page_size;
ESP_EARLY_LOGD(TAG, "configure drom and irom and start");
//-----------------------Disable Cache to do the mapping---------
@@ -871,12 +874,18 @@ static void set_cache_and_start_app(
#else
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#if SOC_MMU_PAGE_SIZE_CONFIGURABLE
// re-configure MMU page size
mmu_ll_set_page_size(0, mmu_page_size);
#endif //SOC_MMU_PAGE_SIZE_CONFIGURABLE
//reset MMU table first
mmu_hal_unmap_all();
//-----------------------MAP DROM--------------------------
uint32_t drom_load_addr_aligned = drom_load_addr & MMU_FLASH_MASK;
uint32_t drom_addr_aligned = drom_addr & MMU_FLASH_MASK;
uint32_t drom_load_addr_aligned = drom_load_addr & MMU_FLASH_MASK_FROM_VAL(mmu_page_size);
uint32_t drom_addr_aligned = drom_addr & MMU_FLASH_MASK_FROM_VAL(mmu_page_size);
ESP_EARLY_LOGV(TAG, "rodata starts from paddr=0x%08" PRIx32 ", vaddr=0x%08" PRIx32 ", size=0x%" PRIx32, drom_addr, drom_load_addr, drom_size);
//The addr is aligned, so we add the mask off length to the size, to make sure the corresponding buses are enabled.
drom_size = (drom_load_addr - drom_load_addr_aligned) + drom_size;
@@ -894,13 +903,13 @@ static void set_cache_and_start_app(
ESP_EARLY_LOGV(TAG, "after mapping rodata, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", drom_addr_aligned, drom_load_addr_aligned, actual_mapped_len);
}
//we use the MMU_LL_END_DROM_ENTRY_ID mmu entry as a map page for app to find the boot partition
mmu_hal_map_region(0, MMU_TARGET_FLASH0, MMU_LL_END_DROM_ENTRY_VADDR, drom_addr_aligned, CONFIG_MMU_PAGE_SIZE, &actual_mapped_len);
mmu_hal_map_region(0, MMU_TARGET_FLASH0, MMU_DROM_END_ENTRY_VADDR_FROM_VAL(mmu_page_size), drom_addr_aligned, mmu_page_size, &actual_mapped_len);
ESP_EARLY_LOGV(TAG, "mapped one page of the rodata, from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", drom_addr_aligned, MMU_LL_END_DROM_ENTRY_VADDR, actual_mapped_len);
#endif
//-----------------------MAP IROM--------------------------
uint32_t irom_load_addr_aligned = irom_load_addr & MMU_FLASH_MASK;
uint32_t irom_addr_aligned = irom_addr & MMU_FLASH_MASK;
uint32_t irom_load_addr_aligned = irom_load_addr & MMU_FLASH_MASK_FROM_VAL(mmu_page_size);
uint32_t irom_addr_aligned = irom_addr & MMU_FLASH_MASK_FROM_VAL(mmu_page_size);
ESP_EARLY_LOGV(TAG, "text starts from paddr=0x%08" PRIx32 ", vaddr=0x%08" PRIx32 ", size=0x%" PRIx32, irom_addr, irom_load_addr, irom_size);
//The addr is aligned, so we add the mask off length to the size, to make sure the corresponding buses are enabled.
irom_size = (irom_load_addr - irom_load_addr_aligned) + irom_size;

View File

@@ -92,6 +92,8 @@ static inline void bootloader_hardware_init(void)
regi2c_ctrl_ll_master_enable_clock(true);
regi2c_ctrl_ll_master_configure_clock();
REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_DREG_0P8, 8); // fix low temp issue, need to increase this internal voltage
}
static inline void bootloader_ana_reset_config(void)

View File

@@ -1,15 +1,18 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include <strings.h>
#include "esp_flash_encrypt.h"
#include "esp_secure_boot.h"
#include "esp_efuse.h"
#include "esp_efuse_table.h"
#include "esp_log.h"
#include "hal/spi_flash_encrypted_ll.h"
#include "soc/soc_caps.h"
#include "sdkconfig.h"
static __attribute__((unused)) const char *TAG = "flash_encrypt";
@@ -33,6 +36,14 @@ esp_err_t esp_flash_encryption_enable_secure_features(void)
esp_efuse_write_field_bit(ESP_EFUSE_DIS_DIRECT_BOOT);
#if CONFIG_SECURE_FLASH_PSEUDO_ROUND_FUNC
if (spi_flash_encrypt_ll_is_pseudo_rounds_function_supported()) {
ESP_LOGI(TAG, "Enable XTS-AES pseudo rounds function...");
uint8_t xts_pseudo_level = CONFIG_SECURE_FLASH_PSEUDO_ROUND_FUNC_STRENGTH;
esp_efuse_write_field_blob(ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL, &xts_pseudo_level, ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL[0]->bit_count);
}
#endif
#if defined(CONFIG_SECURE_BOOT_V2_ENABLED) && !defined(CONFIG_SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS)
// This bit is set when enabling Secure Boot V2, but we can't enable it until this later point in the first boot
// otherwise the Flash Encryption key cannot be read protected

View File

@@ -1,10 +1,11 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <strings.h>
#include "hal/ecdsa_ll.h"
#include "esp_flash_encrypt.h"
#include "esp_secure_boot.h"
#include "esp_efuse.h"
@@ -36,6 +37,12 @@ esp_err_t esp_secure_boot_enable_secure_features(void)
ESP_LOGW(TAG, "UART ROM Download mode kept enabled - SECURITY COMPROMISED");
#endif
#ifdef SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED
if (ecdsa_ll_is_configurable_curve_supported()) {
esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_ECDSA_CURVE_MODE);
}
#endif
#ifndef CONFIG_SECURE_BOOT_ALLOW_JTAG
ESP_LOGI(TAG, "Disable hardware & software JTAG...");
esp_efuse_write_field_bit(ESP_EFUSE_DIS_PAD_JTAG);

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -22,6 +22,7 @@
#include "bootloader_memory_utils.h"
#include "soc/soc_caps.h"
#include "hal/cache_ll.h"
#include "spi_flash_mmap.h"
#define ALIGN_UP(num, align) (((num) + ((align) - 1)) & ~((align) - 1))
@@ -47,7 +48,12 @@ static const char *TAG = "esp_image";
#define HASH_LEN ESP_IMAGE_HASH_LEN
#define SIXTEEN_MB 0x1000000
#if SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP
#define ESP_IMAGE_MAX_FLASH_ADDR_SIZE UINT32_MAX
#else
#define ESP_IMAGE_MAX_FLASH_ADDR_SIZE 0x1000000
#endif
#define ESP_ROM_CHECKSUM_INITIAL 0xEF
/* Headroom to ensure between stack SP (at time of checking) and data loaded from flash */
@@ -77,7 +83,7 @@ static esp_err_t process_segment_data(int segment, intptr_t load_addr, uint32_t
static esp_err_t verify_image_header(uint32_t src_addr, const esp_image_header_t *image, bool silent);
/* Verify a segment header */
static esp_err_t verify_segment_header(int index, const esp_image_segment_header_t *segment, uint32_t segment_data_offs, bool silent);
static esp_err_t verify_segment_header(int index, const esp_image_segment_header_t *segment, uint32_t segment_data_offs, esp_image_metadata_t *metadata, bool silent);
/* Log-and-fail macro for use in esp_image_load */
#define FAIL_LOAD(...) do { \
@@ -138,7 +144,7 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
verify_sha = (part->offset != ESP_BOOTLOADER_OFFSET) && do_verify;
#endif
if (part->size > SIXTEEN_MB) {
if (part->size > ESP_IMAGE_MAX_FLASH_ADDR_SIZE) {
err = ESP_ERR_INVALID_ARG;
FAIL_LOAD("partition size 0x%"PRIx32" invalid, larger than 16MB", part->size);
}
@@ -297,7 +303,7 @@ esp_err_t esp_image_verify(esp_image_load_mode_t mode, const esp_partition_pos_t
esp_err_t esp_image_get_metadata(const esp_partition_pos_t *part, esp_image_metadata_t *metadata)
{
esp_err_t err;
if (metadata == NULL || part == NULL || part->size > SIXTEEN_MB) {
if (metadata == NULL || part == NULL || part->size > ESP_IMAGE_MAX_FLASH_ADDR_SIZE) {
return ESP_ERR_INVALID_ARG;
}
@@ -559,7 +565,7 @@ static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segme
ESP_LOGV(TAG, "segment data length 0x%"PRIx32" data starts 0x%"PRIx32, data_len, data_addr);
CHECK_ERR(verify_segment_header(index, header, data_addr, silent));
CHECK_ERR(verify_segment_header(index, header, data_addr, metadata, silent));
if (data_len % 4 != 0) {
FAIL_LOAD("unaligned segment length 0x%"PRIx32, data_len);
@@ -748,10 +754,10 @@ static esp_err_t process_segment_data(int segment, intptr_t load_addr, uint32_t
return ESP_OK;
}
static esp_err_t verify_segment_header(int index, const esp_image_segment_header_t *segment, uint32_t segment_data_offs, bool silent)
static esp_err_t verify_segment_header(int index, const esp_image_segment_header_t *segment, uint32_t segment_data_offs, esp_image_metadata_t *metadata, bool silent)
{
if ((segment->data_len & 3) != 0
|| segment->data_len >= SIXTEEN_MB) {
|| segment->data_len >= ESP_IMAGE_MAX_FLASH_ADDR_SIZE) {
if (!silent) {
ESP_LOGE(TAG, "invalid segment length 0x%"PRIx32, segment->data_len);
}
@@ -761,13 +767,46 @@ static esp_err_t verify_segment_header(int index, const esp_image_segment_header
uint32_t load_addr = segment->load_addr;
bool map_segment = should_map(load_addr);
#if SOC_MMU_PAGE_SIZE_CONFIGURABLE
esp_err_t err = ESP_FAIL;
/* ESP APP descriptor is present in the DROM segment #0 */
if (index == 0 && metadata->start_addr != ESP_BOOTLOADER_OFFSET) {
uint32_t mmu_page_size = 0, magic_word = 0;
const uint32_t mmu_page_size_offset = segment_data_offs + offsetof(esp_app_desc_t, mmu_page_size);
CHECK_ERR(bootloader_flash_read(segment_data_offs, &magic_word, sizeof(uint32_t), true));
CHECK_ERR(bootloader_flash_read(mmu_page_size_offset, &mmu_page_size, sizeof(uint32_t), true));
// Extract only the lowest byte from mmu_page_size (as per image format)
mmu_page_size &= 0xFF;
if (magic_word != ESP_APP_DESC_MAGIC_WORD) {
ESP_LOGE(TAG, "Failed to fetch app description header!");
return ESP_FAIL;
}
// Convert from log base 2 number to actual size while handling legacy image case (value 0)
metadata->mmu_page_size = (mmu_page_size > 0) ? (1UL << mmu_page_size) : SPI_FLASH_MMU_PAGE_SIZE;
if (metadata->mmu_page_size != SPI_FLASH_MMU_PAGE_SIZE) {
ESP_LOGI(TAG, "MMU page size mismatch, configured: 0x%x, found: 0x%"PRIx32, SPI_FLASH_MMU_PAGE_SIZE, metadata->mmu_page_size);
}
} else if (index == 0 && metadata->start_addr == ESP_BOOTLOADER_OFFSET) {
// Bootloader always uses the default MMU page size
metadata->mmu_page_size = SPI_FLASH_MMU_PAGE_SIZE;
}
#else // SOC_MMU_PAGE_SIZE_CONFIGURABLE
metadata->mmu_page_size = SPI_FLASH_MMU_PAGE_SIZE;
#endif // !SOC_MMU_PAGE_SIZE_CONFIGURABLE
const int mmu_page_size = metadata->mmu_page_size;
ESP_LOGV(TAG, "MMU page size 0x%x", mmu_page_size);
/* Check that flash cache mapped segment aligns correctly from flash to its mapped address,
relative to the 64KB page mapping size.
relative to the MMU page mapping size.
*/
ESP_LOGV(TAG, "segment %d map_segment %d segment_data_offs 0x%"PRIx32" load_addr 0x%"PRIx32,
index, map_segment, segment_data_offs, load_addr);
if (map_segment
&& ((segment_data_offs % SPI_FLASH_MMU_PAGE_SIZE) != (load_addr % SPI_FLASH_MMU_PAGE_SIZE))) {
&& ((segment_data_offs % mmu_page_size) != (load_addr % mmu_page_size))) {
if (!silent) {
ESP_LOGE(TAG, "Segment %d load address 0x%08"PRIx32", doesn't match data 0x%08"PRIx32,
index, load_addr, segment_data_offs);
@@ -776,6 +815,10 @@ static esp_err_t verify_segment_header(int index, const esp_image_segment_header
}
return ESP_OK;
#if SOC_MMU_PAGE_SIZE_CONFIGURABLE
err:
return err;
#endif
}
static bool should_map(uint32_t load_addr)

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -12,6 +12,9 @@
#include "esp_flash_encrypt.h"
#include "esp_secure_boot.h"
#include "hal/efuse_hal.h"
#include "hal/spi_flash_encrypted_ll.h"
#include "hal/spi_flash_encrypt_hal.h"
#include "soc/soc_caps.h"
#if CONFIG_IDF_TARGET_ESP32
#define CRYPT_CNT ESP_EFUSE_FLASH_CRYPT_CNT
@@ -207,6 +210,18 @@ void esp_flash_encryption_set_release_mode(void)
#endif // CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128_DERIVED
#endif // !CONFIG_IDF_TARGET_ESP32
#ifdef SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND
if (spi_flash_encrypt_ll_is_pseudo_rounds_function_supported()) {
uint8_t xts_pseudo_level = 0;
esp_efuse_read_field_blob(ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL, &xts_pseudo_level, ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL[0]->bit_count);
if (xts_pseudo_level == ESP_XTS_AES_PSEUDO_ROUNDS_DISABLE) {
xts_pseudo_level = ESP_XTS_AES_PSEUDO_ROUNDS_LOW;
esp_efuse_write_field_blob(ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL, &xts_pseudo_level, ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL[0]->bit_count);
}
}
#endif
#ifdef CONFIG_IDF_TARGET_ESP32
esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_DIS_CACHE);
#else
@@ -468,6 +483,17 @@ bool esp_flash_encryption_cfg_verify_release_mode(void)
}
result &= secure;
#if SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND
if (spi_flash_encrypt_ll_is_pseudo_rounds_function_supported()) {
uint8_t xts_pseudo_level = 0;
esp_efuse_read_field_blob(ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL, &xts_pseudo_level, ESP_EFUSE_XTS_DPA_PSEUDO_LEVEL[0]->bit_count);
if (!xts_pseudo_level) {
result &= false;
ESP_LOGW(TAG, "Not enabled XTS-AES pseudo rounds function (set XTS_DPA_PSEUDO_LEVEL->1 or more)");
}
}
#endif
return result;
}
#endif // not CONFIG_IDF_TARGET_ESP32

View File

@@ -413,6 +413,10 @@ static esp_err_t encrypt_partition(int index, const esp_partition_info_t *partit
if (should_encrypt) {
// Encrypt only the app image instead of encrypting the whole partition
size = image_data.image_len;
#if CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
// If secure update without secure boot, also encrypt the signature block
size += esp_secure_boot_sig_block_size();
#endif
}
#endif
} else if ((partition->type == PART_TYPE_DATA && partition->subtype == PART_SUBTYPE_DATA_OTA)

View File

@@ -12,6 +12,10 @@
#include "esp_secure_boot.h"
#include "hal/efuse_hal.h"
#ifdef SOC_ECDSA_SUPPORTED
#include "hal/ecdsa_ll.h"
#endif
#ifndef BOOTLOADER_BUILD
static __attribute__((unused)) const char *TAG = "secure_boot";
@@ -340,6 +344,23 @@ bool esp_secure_boot_cfg_verify_release_mode(void)
#endif
}
#ifdef SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED
if (ecdsa_ll_is_configurable_curve_supported()) {
secure = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_ECDSA_CURVE_MODE);
if (!secure) {
uint8_t current_curve;
esp_err_t err = esp_efuse_read_field_blob(ESP_EFUSE_ECDSA_CURVE_MODE, &current_curve, ESP_EFUSE_ECDSA_CURVE_MODE[0]->bit_count);
if (err == ESP_OK) {
if (current_curve != ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P256_BIT_LOCKED) {
// If not P256 mode
result &= secure;
ESP_LOGW(TAG, "Not write disabled ECDSA curve mode (set WR_DIS_ECDSA_CURVE_MODE->1)");
}
}
}
}
#endif
#ifdef CONFIG_SECURE_BOOT_ENABLE_AGGRESSIVE_KEY_REVOKE
secure = esp_efuse_read_field_bit(ESP_EFUSE_SECURE_BOOT_AGGRESSIVE_REVOKE);
result &= secure;

View File

@@ -154,13 +154,12 @@ esp_err_t esp_secure_boot_verify_sbv2_signature_block(const ets_secure_boot_sign
ets_secure_boot_key_digests_t trusted_key_digests = {0};
bool valid_sig_blk = false;
for (unsigned i = 0; i < SECURE_BOOT_NUM_BLOCKS; i++) {
trusted_key_digests.key_digests[i] = &trusted.key_digests[i];
if (sig_block->block[i].version != ESP_SECURE_BOOT_SCHEME) {
ESP_LOGD(TAG, "%s signing scheme selected but signature block %d generated for %s scheme", esp_secure_boot_get_scheme_name(ESP_SECURE_BOOT_SCHEME), i, esp_secure_boot_get_scheme_name(sig_block->block[i].version));
continue;
} else {
valid_sig_blk = true;
}
trusted_key_digests.key_digests[i] = &trusted.key_digests[i];
}
if (valid_sig_blk != true) {
ESP_LOGE(TAG, "No signature block generated for valid scheme");

View File

@@ -4,7 +4,3 @@ components/bootloader_support/test_apps/rtc_custom_section:
enable:
- if: SOC_RTC_MEM_SUPPORTED == 1
reason: this feature is supported on chips that have RTC memory
disable:
- if: IDF_TARGET == "esp32c61"
temporary: true
reason: IDF-9260

View File

@@ -1,2 +1,2 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |

View File

@@ -24,6 +24,7 @@ set(common_include_dirs
common/btc/profile/esp/blufi/include
common/btc/profile/esp/include
common/hci_log/include
common/ble_log/include
)
set(ble_mesh_include_dirs
@@ -85,8 +86,13 @@ if(CONFIG_BT_ENABLED)
elseif(CONFIG_IDF_TARGET_ESP32S3)
list(APPEND ldscripts "linker_rw_bt_controller.lf")
elseif(CONFIG_IDF_TARGET_ESP32C2)
list(APPEND srcs "controller/esp32c2/ble.c")
if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
list(APPEND srcs "controller/esp32c2/dummy.c")
endif()
set(ldscripts "linker_esp32c2.lf")
else()
list(APPEND srcs "controller/${target_name}/ble.c")
list(APPEND ldscripts "linker_esp_ble_controller.lf")
endif()
@@ -127,8 +133,46 @@ if(CONFIG_BT_ENABLED)
"common/osi/osi.c"
"common/osi/semaphore.c"
"porting/mem/bt_osi_mem.c"
"common/ble_log/ble_log_spi_out.c"
"common/ble_log/ble_log_uhci_out.c"
)
# BLE Log Module
if(CONFIG_BLE_LOG_ENABLED)
# Core source files
list(APPEND srcs
common/ble_log/src/ble_log.c
common/ble_log/src/ble_log_lbm.c
common/ble_log/src/ble_log_rt.c
common/ble_log/src/ble_log_util.c
)
# Includes
list(APPEND include_dirs
common/ble_log/include
)
# Private includes
list(APPEND priv_include_dirs
common/ble_log/src/internal_include
common/ble_log/src/internal_include/prph
)
# Timestamp synchronization extension
if(CONFIG_BLE_LOG_TS_ENABLED)
list(APPEND srcs common/ble_log/src/ble_log_ts.c)
endif()
# Peripheral interface implementation
if(CONFIG_BLE_LOG_PRPH_DUMMY)
list(APPEND srcs common/ble_log/src/prph/ble_log_prph_dummy.c)
elseif(CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA)
list(APPEND srcs common/ble_log/src/prph/ble_log_prph_spi_master_dma.c)
elseif(CONFIG_BLE_LOG_PRPH_UART_DMA)
list(APPEND srcs common/ble_log/src/prph/ble_log_prph_uart_dma.c)
endif()
endif()
# Host Bluedroid
if(CONFIG_BT_BLUEDROID_ENABLED)
@@ -444,6 +488,19 @@ if(CONFIG_BT_ENABLED)
list(APPEND srcs "esp_ble_mesh/core/bluedroid_host/adapter.c")
endif()
if(CONFIG_BT_BLE_FEAT_ISO_EN)
list(APPEND srcs "host/bluedroid/stack/btm/btm_ble_iso.c"
"host/bluedroid/btc/profile/std/iso/btc_iso_ble.c"
"host/bluedroid/api/esp_ble_iso_api.c"
"host/bluedroid/hci/ble_hci_iso.c")
endif()
if(CONFIG_BT_BLE_FEAT_CTE_EN)
list(APPEND srcs "host/bluedroid/stack/btm/btm_ble_cte.c"
"host/bluedroid/btc/profile/std/cte/btc_ble_cte.c"
"host/bluedroid/api/esp_ble_cte_api.c")
endif()
endif()
if(CONFIG_BLE_MESH)
@@ -621,23 +678,25 @@ if(CONFIG_BT_ENABLED)
if(NOT (CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS OR CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS))
list(APPEND include_dirs
porting/ext/tinycrypt/include
common/tinycrypt/include
common/tinycrypt/port
)
list(APPEND srcs "porting/ext/tinycrypt/src/utils.c"
"porting/ext/tinycrypt/src/sha256.c"
"porting/ext/tinycrypt/src/ecc.c"
"porting/ext/tinycrypt/src/ctr_prng.c"
"porting/ext/tinycrypt/src/ctr_mode.c"
"porting/ext/tinycrypt/src/aes_decrypt.c"
"porting/ext/tinycrypt/src/aes_encrypt.c"
"porting/ext/tinycrypt/src/ccm_mode.c"
"porting/ext/tinycrypt/src/ecc_dsa.c"
"porting/ext/tinycrypt/src/cmac_mode.c"
"porting/ext/tinycrypt/src/ecc_dh.c"
"porting/ext/tinycrypt/src/hmac_prng.c"
"porting/ext/tinycrypt/src/ecc_platform_specific.c"
"porting/ext/tinycrypt/src/hmac.c"
"porting/ext/tinycrypt/src/cbc_mode.c")
list(APPEND srcs "common/tinycrypt/src/utils.c"
"common/tinycrypt/src/sha256.c"
"common/tinycrypt/src/ecc.c"
"common/tinycrypt/src/ctr_prng.c"
"common/tinycrypt/src/ctr_mode.c"
"common/tinycrypt/src/aes_decrypt.c"
"common/tinycrypt/src/aes_encrypt.c"
"common/tinycrypt/src/ccm_mode.c"
"common/tinycrypt/src/ecc_dsa.c"
"common/tinycrypt/src/cmac_mode.c"
"common/tinycrypt/src/ecc_dh.c"
"common/tinycrypt/src/hmac_prng.c"
"common/tinycrypt/src/ecc_platform_specific.c"
"common/tinycrypt/src/hmac.c"
"common/tinycrypt/src/cbc_mode.c"
"common/tinycrypt/port/esp_tinycrypt_port.c")
endif()
if(CONFIG_BT_NIMBLE_ENABLED)
@@ -734,8 +793,16 @@ if(CONFIG_BT_ENABLED)
"host/nimble/nimble/nimble/host/store/config/src/ble_store_nvs.c"
"host/nimble/nimble/nimble/host/src/ble_gattc_cache.c"
"host/nimble/nimble/nimble/host/src/ble_gattc_cache_conn.c"
"host/nimble/nimble/nimble/host/src/ble_eatt.c"
)
if(CONFIG_BT_NIMBLE_ISO)
list(APPEND srcs
"host/nimble/nimble/nimble/host/src/ble_hs_iso_hci.c"
"host/nimble/nimble/nimble/host/src/ble_hs_iso.c"
)
endif()
if(CONFIG_BT_CONTROLLER_DISABLED AND CONFIG_BT_NIMBLE_TRANSPORT_UART)
list(APPEND srcs
"host/nimble/nimble/nimble/transport/uart_ll/src/hci_uart.c"
@@ -848,11 +915,27 @@ if(CONFIG_BT_ENABLED)
endif()
set(bt_priv_requires
nvs_flash
soc
esp_pm
esp_phy
esp_coex
mbedtls
esp_driver_uart
vfs
esp_ringbuf
esp_driver_spi
esp_driver_gpio
esp_gdbstub
)
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
REQUIRES esp_timer esp_wifi
PRIV_REQUIRES nvs_flash soc esp_pm esp_phy esp_coex mbedtls esp_driver_uart vfs esp_ringbuf
PRIV_REQUIRES "${bt_priv_requires}"
LDFRAGMENTS "${ldscripts}")
if(CONFIG_BT_ENABLED)
@@ -865,21 +948,53 @@ if(CONFIG_BT_ENABLED)
elseif(CONFIG_IDF_TARGET_ESP32C3)
target_link_directories(${COMPONENT_LIB} INTERFACE
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32c3")
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app_flash)
else()
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
endif()
elseif(CONFIG_IDF_TARGET_ESP32S3)
target_link_directories(${COMPONENT_LIB} INTERFACE
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32s3")
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app_flash)
else()
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
endif()
elseif(CONFIG_BT_CONTROLLER_ENABLED)
if(CONFIG_BT_LE_CONTROLLER_LOG_WRAP_PANIC_HANDLER_ENABLE)
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=esp_panic_handler")
endif()
if(DEFINED CONFIG_BLE_LOG_PRPH_UART_DMA_PORT)
if(CONFIG_BLE_LOG_PRPH_UART_DMA_PORT EQUAL 0)
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=uart_tx_chars")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=uart_write_bytes")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=uart_write_bytes_with_break")
endif()
endif()
if(CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED)
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=uart_tx_chars")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=uart_write_bytes")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=uart_write_bytes_with_break")
endif()
if(CONFIG_IDF_TARGET_ESP32C6)
add_prebuilt_library(libble_app
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c6/esp32c6-bt-lib/esp32c6/libble_app.a")
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c6/esp32c6-bt-lib/esp32c6/libble_app.a"
REQUIRES esp_phy)
elseif(CONFIG_IDF_TARGET_ESP32C61)
add_prebuilt_library(libble_app
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c6/esp32c6-bt-lib/esp32c61/libble_app.a")
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c6/esp32c6-bt-lib/esp32c61/libble_app.a"
REQUIRES esp_phy)
else()
add_prebuilt_library(libble_app
"controller/lib_${target_name}/${target_name}-bt-lib/libble_app.a")
if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY AND CONFIG_IDF_TARGET_ESP32C2)
add_prebuilt_library(libble_app
"controller/lib_${target_name}/${target_name}-bt-lib/libble_app_flash.a"
REQUIRES esp_phy)
else()
add_prebuilt_library(libble_app
"controller/lib_${target_name}/${target_name}-bt-lib/libble_app.a"
REQUIRES esp_phy)
endif()
endif()
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
endif()

View File

@@ -81,8 +81,6 @@ menu "Bluetooth"
So this option will disable the PMP (ESP_SYSTEM_PMP_IDRAM_SPLIT)
menu "Common Options"
visible if (BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED)
source "$IDF_PATH/components/bt/common/Kconfig.in"
endmenu

View File

@@ -1,6 +1,257 @@
config BT_ALARM_MAX_NUM
int "Maximum number of Bluetooth alarms"
default 50
depends on (BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED)
help
This option decides the maximum number of alarms which
could be used by Bluetooth host.
menu "BLE Log"
source "$IDF_PATH/components/bt/common/ble_log/Kconfig.in"
endmenu
config BT_BLE_LOG_SPI_OUT_ENABLED
bool "Output ble logs to SPI bus (Experimental)"
default n
help
Output ble logs to SPI bus
config BT_BLE_LOG_SPI_OUT_UL_TASK_BUF_SIZE
int "SPI transaction buffer size for upper layer task logs"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default 512
help
SPI transaction buffer size for upper layer task logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_HCI_ENABLED
bool "Enable HCI log output to SPI"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default n
help
Enable logging of HCI packets to the SPI bus when BLE SPI log output is enabled.
config BT_BLE_LOG_SPI_OUT_HCI_BUF_SIZE
int "SPI transaction buffer size for HCI logs"
depends on BT_BLE_LOG_SPI_OUT_HCI_ENABLED
default 1024
help
SPI transaction buffer size for HCI logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_HCI_TASK_CNT
int "HCI task count"
depends on BT_BLE_LOG_SPI_OUT_HCI_ENABLED
default 1
help
HCI task count
config BT_BLE_LOG_SPI_OUT_HOST_ENABLED
bool "Enable Host log output to SPI"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default n
help
This configuration applies to the logs of both Bluedroid Host and NimBLE Host.
When BLE SPI log output is enabled, this option allows host logs to be transmitted via SPI.
config BT_BLE_LOG_SPI_OUT_HOST_BUF_SIZE
int "SPI transaction buffer size for host logs"
depends on BT_BLE_LOG_SPI_OUT_HOST_ENABLED
default 1024
help
SPI transaction buffer size for host logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_HOST_TASK_CNT
int "Host task count"
depends on BT_BLE_LOG_SPI_OUT_HOST_ENABLED
default 2
help
Host task count.
config BT_BLE_LOG_SPI_OUT_LL_ENABLED
bool "Enable Controller log output to SPI"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
default n
help
Enable controller log output to SPI bus.
config BT_BLE_LOG_SPI_OUT_LL_TASK_BUF_SIZE
int "SPI transaction buffer size for lower layer task logs"
depends on BT_BLE_LOG_SPI_OUT_LL_ENABLED
default 1024
help
SPI transaction buffer size for lower layer task logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_LL_ISR_BUF_SIZE
int "SPI transaction buffer size for lower layer ISR logs"
depends on BT_BLE_LOG_SPI_OUT_LL_ENABLED
default 512
help
SPI transaction buffer size for lower layer ISR logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_LL_HCI_BUF_SIZE
int "SPI transaction buffer size for lower layer HCI logs"
depends on BT_BLE_LOG_SPI_OUT_LL_ENABLED
default 512
help
SPI transaction buffer size for upper layer HCI logs.
There will be 2 SPI DMA buffers with the same size
config BT_BLE_LOG_SPI_OUT_MOSI_IO_NUM
int "GPIO number of SPI MOSI"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default 0
help
GPIO number of SPI MOSI
config BT_BLE_LOG_SPI_OUT_SCLK_IO_NUM
int "GPIO number of SPI SCLK"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default 1
help
GPIO number of SPI SCLK
config BT_BLE_LOG_SPI_OUT_CS_IO_NUM
int "GPIO number of SPI CS"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default 2
help
GPIO number of SPI CS
config BT_BLE_LOG_SPI_OUT_TS_SYNC_ENABLED
bool "Enable ble log & logic analyzer log time sync"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default y
help
Enable ble log & logic analyzer log time sync
config BT_BLE_LOG_SPI_OUT_SYNC_IO_NUM
int "GPIO number of SYNC IO"
depends on BT_BLE_LOG_SPI_OUT_TS_SYNC_ENABLED
default 3
help
GPIO number of SYNC IO
config BT_BLE_LOG_SPI_OUT_FLUSH_TIMER_ENABLED
bool "Enable periodic buffer flush out"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default n
help
Enable periodic buffer flush out
Not recommended when SPI receiver is unavailable
config BT_BLE_LOG_SPI_OUT_FLUSH_TIMEOUT
int "Buffer flush out period in unit of ms"
depends on BT_BLE_LOG_SPI_OUT_FLUSH_TIMER_ENABLED
default 1000
help
Buffer flush out period in unit of ms
config BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED
bool "Enable LE Audio log output to SPI"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default n
help
Enable LE Audio log output to SPI
config BT_BLE_LOG_SPI_OUT_LE_AUDIO_BUF_SIZE
int "SPI transaction buffer size for LE Audio logs"
depends on BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED
default 1024
help
SPI transaction buffer size for LE Audio logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_LE_AUDIO_TASK_CNT
int "LE audio task count"
depends on BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED
default 1
help
LE audio task count
config BT_BLE_LOG_SPI_OUT_MESH_ENABLED
bool "Enable BLE mesh log output to SPI"
depends on BT_BLE_LOG_SPI_OUT_ENABLED
default n
help
Enable BLE mesh log output to SPI
config BT_BLE_LOG_SPI_OUT_MESH_BUF_SIZE
int "SPI transaction buffer size for BLE mesh logs"
depends on BT_BLE_LOG_SPI_OUT_MESH_ENABLED
default 1024
help
SPI transaction buffer size for BLE mesh logs.
There will be 2 SPI DMA buffers with the same size.
config BT_BLE_LOG_SPI_OUT_MESH_TASK_CNT
int "Mesh task count"
depends on BT_BLE_LOG_SPI_OUT_MESH_ENABLED
default 3
help
Mesh task count
config BT_BLE_LOG_UHCI_OUT_ENABLED
bool "Output ble logs via UHCI (UART DMA) driver (Experimental)"
default n
help
Output ble logs via UHCI (UART DMA) driver
On enable, BT_BLE_LOG_UHCI_OUT_UART_PORT would be reinited with
BT_BLE_LOG_UHCI_OUT_UART_BAUD_RATE as new baud rate and
BT_BLE_LOG_UHCI_OUT_UART_IO_NUM_TX as new UART Tx IO
config BT_BLE_LOG_UHCI_OUT_UART_PORT
int "UART port connected to UHCI controller"
depends on BT_BLE_LOG_UHCI_OUT_ENABLED
default 0
help
UART port connected to UHCI controller
If UART port 0 is selected, UART VFS Driver, UART ROM Driver
and UART Driver output would be redirected to BLE Log UHCI Out
to solve UART Tx FIFO multi-task access issue
config BT_BLE_LOG_UHCI_OUT_LL_TASK_BUF_SIZE
int "UHCI transaction buffer size for lower layer task logs"
depends on BT_BLE_LOG_UHCI_OUT_ENABLED
default 1024
help
UHCI transaction buffer size for lower layer task logs
config BT_BLE_LOG_UHCI_OUT_LL_ISR_BUF_SIZE
int "UHCI transaction buffer size for lower layer ISR logs"
depends on BT_BLE_LOG_UHCI_OUT_ENABLED
default 1024
help
UHCI transaction buffer size for lower layer ISR logs
config BT_BLE_LOG_UHCI_OUT_LL_HCI_BUF_SIZE
int "UHCI transaction buffer size for lower layer HCI logs"
depends on BT_BLE_LOG_UHCI_OUT_ENABLED
default 1024
help
UHCI transaction buffer size for lower layer HCI logs
config BT_BLE_LOG_UHCI_OUT_UART_NEED_INIT
bool "Enable to init UART port"
depends on BT_BLE_LOG_UHCI_OUT_ENABLED
default y
help
Enable to init UART port
config BT_BLE_LOG_UHCI_OUT_UART_BAUD_RATE
int "Baud rate for BT_BLE_LOG_UHCI_OUT_UART_PORT"
depends on BT_BLE_LOG_UHCI_OUT_UART_NEED_INIT
default 3000000
help
Baud rate for BT_BLE_LOG_UHCI_OUT_UART_PORT
config BT_BLE_LOG_UHCI_OUT_UART_IO_NUM_TX
int "IO number for UART TX port"
depends on BT_BLE_LOG_UHCI_OUT_UART_NEED_INIT
default 0
help
IO number for UART TX port

View File

@@ -0,0 +1,169 @@
config BLE_LOG_ENABLED
bool "Enable BLE Log Module (Experimental)"
default n
help
Enable BLE Log Module
if BLE_LOG_ENABLED
config BLE_LOG_LBM_TRANS_SIZE
int "Buffer size for each peripheral transport"
default 512
help
There're 2 log buffer managers (LBMs) with compare-and-swap
(CAS) protection, 1 LBM with FreeRTOS mutex protection, 1 LBM
without protection for critical section. Each LBM is managing
2 ping-pong buffers, which means there will be 4 * 2 *
BLE_LOG_LBM_TRANS_SIZE bytes buffer allocated
config BLE_LOG_LBM_ATOMIC_LOCK_TASK_CNT
int "Count of log buffer managers with atomic lock protection for task context"
default 2
help
BLE Log module will search for an LBM with atomic lock protection first; if
all LBMs with atomic lock protection are unavailable, BLE Log module will
try to use the LBM with spin lock protection. So the more LBMs with atomic
lock protection are created, the better the logging performance will be.
config BLE_LOG_LBM_ATOMIC_LOCK_ISR_CNT
int "Count of log buffer managers with atomic lock protection for ISR context"
default 1
help
BLE Log module will search for an LBM with atomic lock protection first; if
all LBMs with atomic lock protection are unavailable, BLE Log module will
try to use the LBM with spin lock protection. So the more LBMs with atomic
lock protection are created, the more ISRs can nest.
config BLE_LOG_IS_ESP_CONTROLLER
bool "Current BLE Controller is ESP BLE Controller"
depends on BT_CONTROLLER_ENABLED
depends on SOC_ESP_NIMBLE_CONTROLLER
default y
select BT_LE_CONTROLLER_LOG_ENABLED
select BT_LE_CONTROLLER_LOG_MODE_BLE_LOG_V2
select BLE_LOG_LL_ENABLED
help
Current BLE Controller is ESP BLE Controller
config BLE_LOG_IS_ESP_LEGACY_CONTROLLER
bool "Current BLE Controller is ESP BLE Legacy Controller"
depends on BT_CONTROLLER_ENABLED
depends on !SOC_ESP_NIMBLE_CONTROLLER
depends on BT_CTRL_RUN_IN_FLASH_ONLY
default y
select BT_CTRL_LE_LOG_EN
select BLE_LOG_LL_ENABLED
help
Current BLE Controller is ESP BLE Legacy Controller
config BLE_LOG_LL_ENABLED
bool "Enable BLE Log for Link Layer"
depends on BT_CONTROLLER_ENABLED
default n
help
Enable BLE Log for Link Layer
config BLE_LOG_LBM_LL_TRANS_SIZE
int "Buffer size for each peripheral transport of Link Layer LBM"
depends on BLE_LOG_LL_ENABLED
default 1024
help
There're 2 Link Layer dedicated log buffer managers (LBMs) with
compare-and-swap (CAS) protection. Each LBM is managing 2 ping-
pong buffers, which means there will be additional 2 * 2 *
BLE_LOG_LBM_LL_TRANS_SIZE bytes buffer allocated
config BLE_LOG_PAYLOAD_CHECKSUM_ENABLED
bool "Enable payload checksum for BLE Log data integrity check"
default y
help
Checksum is the default method for BLE Log data integrity check,
but for targets with slow CPU speed, it may cause significant system
performance decrease; a compromise could be made to balance the
realtime performance and log data integrity, which is calculating the
checksum of frame head and payload all together by default, or only
calculate the checksum of frame head to minimize performance decrease
config BLE_LOG_ENH_STAT_ENABLED
bool "Enable enhanced statistics for BLE Log"
default n
help
Enable enhanced statistics for written/lost frame/bytes count, which may
cost additional ~100kB memory
config BLE_LOG_TS_ENABLED
bool "Enable BLE Log Timestamp Synchronization (TS)"
default n
help
Enable BLE Log TS with external logging module
config BLE_LOG_SYNC_IO_NUM
int "GPIO number for Timestamp Synchronization (TS) toggle output"
depends on BLE_LOG_TS_ENABLED
default 0
help
GPIO number for TS toggle output
choice BLE_LOG_PRPH_CHOICE
prompt "BLE Log peripheral choice"
default BLE_LOG_PRPH_DUMMY
help
Choose BLE Log peripheral
config BLE_LOG_PRPH_DUMMY
bool "Dummy transport"
help
Dummy transport (dump only)
config BLE_LOG_PRPH_SPI_MASTER_DMA
bool "Utilize SPI master DMA driver as transport"
depends on SOC_GPSPI_SUPPORTED
help
Utilize SPI master DMA driver as transport
config BLE_LOG_PRPH_UART_DMA
bool "Utilize UART DMA driver as transport"
depends on SOC_UHCI_SUPPORTED
help
Utilize UART DMA driver as transport
endchoice
if BLE_LOG_PRPH_SPI_MASTER_DMA
config BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM
int "GPIO number of MOSI port for SPI master DMA transport"
default 0
help
GPIO number of MOSI port for SPI master DMA transport
config BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM
int "GPIO number of SCLK port for SPI master DMA transport"
default 0
help
GPIO number of SCLK port for SPI master DMA transport
config BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM
int "GPIO number of CS port for SPI master DMA transport"
default 0
help
GPIO number of CS port for SPI master DMA transport
endif
if BLE_LOG_PRPH_UART_DMA
config BLE_LOG_PRPH_UART_DMA_PORT
int "UART port number for UART DMA transport"
default 0
help
UART port number for UART DMA
config BLE_LOG_PRPH_UART_DMA_BAUD_RATE
int "Baud rate of UART port for UART DMA transport"
default 921600
help
Determine the baud rate of UART port
config BLE_LOG_PRPH_UART_DMA_TX_IO_NUM
int "GPIO number for UART TX"
default 0
help
GPIO number for UART TX
endif
endif

View File

@@ -0,0 +1,450 @@
# BLE Log Module
A high-performance, modular Bluetooth logging system that provides real-time log capture and transmission capabilities for the ESP-IDF Bluetooth stack.
## Table of Contents
- [Overview](#overview)
- [Architecture Design](#architecture-design)
- [Features](#features)
- [Quick Start](#quick-start)
- [Configuration Options](#configuration-options)
- [API Reference](#api-reference)
- [Usage Examples](#usage-examples)
- [Performance & Memory Optimization](#performance--memory-optimization)
- [Troubleshooting](#troubleshooting)
- [Important Notes](#important-notes)
## Overview
The BLE Log module is an efficient logging system specifically designed for the ESP-IDF Bluetooth stack, supporting real-time log capture, multi-source log collection, and various transmission methods. This module has been refactored with a modular design, featuring high-concurrency processing capabilities and low-latency characteristics.
### Main Components
- **BLE Log Core** (`ble_log.c`): Module core responsible for initialization and coordination of sub-modules
- **Runtime Manager** (`ble_log_rt.c`): Runtime task management for log transmission scheduling
- **Log Buffer Manager** (`ble_log_lbm.c`): Log buffer management supporting multiple locking mechanisms
- **Peripheral Interface** (`ble_log_prph_*.c`): Peripheral interface abstraction layer supporting various transmission methods
- **Timestamp Sync** (`ble_log_ts.c`): Timestamp synchronization module
- **Utility** (`ble_log_util.c`): Common utility functions
## Features
### Core Functionality
- **Multi-source Log Collection**: Supports multiple log sources including Link Layer, Host, HCI, etc.
- **High Concurrency Processing**: Uses atomic and spin lock mechanisms for multi-task concurrent writing
- **Real-time Transmission**: Asynchronous transmission mechanism based on FreeRTOS tasks
- **Data Integrity**: Configurable checksum mechanism ensures data integrity
- **Memory Optimization**: Ping-pong buffer design minimizes memory usage
### Advanced Features
- **Timestamp Synchronization**: Supports timestamp synchronization with external devices (optional)
- **Enhanced Statistics**: Detailed logging statistics including loss rate analysis (optional)
- **Link Layer Integration**: Deep integration with ESP-IDF Bluetooth Link Layer
- **Multiple Transmission Methods**: Supports SPI DMA, UART DMA, and Dummy transmission
### Performance Features
- **IRAM Optimization**: Critical path code runs in IRAM ensuring low latency
- **Lock-free Design**: Most operations use atomic operations reducing lock contention
- **Buffer Reuse**: Intelligent buffer management reduces memory allocation overhead
## Quick Start
### 1. Enable Module
Enable the BLE Log module in `menuconfig`:
```
Component config → Bluetooth → Enable BLE Log Module (Experimental)
```
### 2. Basic Configuration
```c
#include "ble_log.h"
void app_main() {
// Initialize BLE Log module
if (!ble_log_init()) {
ESP_LOGE(TAG, "Failed to initialize BLE Log");
return;
}
// Write log data
uint8_t data[] = {0x01, 0x02, 0x03, 0x04};
ble_log_write_hex(BLE_LOG_SRC_CUSTOM, data, sizeof(data));
// Force flush buffers
ble_log_flush();
// Cleanup resources
ble_log_deinit();
}
```
### 3. Link Layer Integration
When `CONFIG_BLE_LOG_LL_ENABLED` is enabled, Link Layer logs are automatically integrated:
```c
// Link Layer logs will automatically call this function
void ble_log_write_hex_ll(uint32_t len, const uint8_t *addr,
uint32_t len_append, const uint8_t *addr_append,
uint32_t flag);
```
## Configuration Options
### Basic Configuration
| Configuration | Default | Description |
|---------------|---------|-------------|
| `CONFIG_BLE_LOG_ENABLED` | n | Enable BLE Log module |
| `CONFIG_BLE_LOG_LBM_TRANS_SIZE` | 512 | Size of each transport buffer |
| `CONFIG_BLE_LOG_LBM_ATOMIC_LOCK_TASK_CNT` | 2 | Number of atomic lock LBMs for task context |
| `CONFIG_BLE_LOG_LBM_ATOMIC_LOCK_ISR_CNT` | 1 | Number of atomic lock LBMs for ISR context |
### Link Layer Configuration
| Configuration | Default | Description |
|---------------|---------|-------------|
| `CONFIG_BLE_LOG_LL_ENABLED` | y | Enable Link Layer logging |
| `CONFIG_BLE_LOG_LBM_LL_TRANS_SIZE` | 1024 | Link Layer transport buffer size |
### Advanced Features
| Configuration | Default | Description |
|---------------|---------|-------------|
| `CONFIG_BLE_LOG_PAYLOAD_CHECKSUM_ENABLED` | y | Enable payload checksum |
| `CONFIG_BLE_LOG_ENH_STAT_ENABLED` | n | Enable enhanced statistics |
| `CONFIG_BLE_LOG_TS_ENABLED` | n | Enable timestamp synchronization |
### Transport Method Configuration
| Transport | Configuration | Description |
|-----------|---------------|-------------|
| Dummy | `CONFIG_BLE_LOG_PRPH_DUMMY` | Debug dummy transport |
| SPI Master DMA | `CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA` | SPI DMA transport |
| UART DMA | `CONFIG_BLE_LOG_PRPH_UART_DMA` | UART DMA transport |
## API Reference
### Core API
#### `bool ble_log_init(void)`
Initialize the BLE Log module.
**Return Value**:
- `true`: Initialization successful
- `false`: Initialization failed
**Note**: Must be called before using any other APIs.
#### `void ble_log_deinit(void)`
Cleanup the BLE Log module and release all resources.
**Note**:
- All pending logs will be lost after calling this function
- Peripheral interface will be cleaned up first to avoid DMA transmission issues during memory release
#### `bool ble_log_write_hex(ble_log_src_t src_code, const uint8_t *addr, size_t len)`
Write hexadecimal log data.
**Parameters**:
- `src_code`: Log source code
- `addr`: Data pointer
- `len`: Data length
**Return Value**:
- `true`: Write successful
- `false`: Write failed (module not initialized or insufficient buffer)
#### `void ble_log_flush(void)`
Force flush all buffers and send pending logs immediately.
**Note**: This operation is blocking and will pause module operation until all buffers are cleared.
#### `void ble_log_dump_to_console(void)`
Output all buffer contents to console in hexadecimal format for debugging.
### Log Source Types
```c
typedef enum {
BLE_LOG_SRC_INTERNAL = 0, // Internal system logs
BLE_LOG_SRC_CUSTOM, // User-defined logs
BLE_LOG_SRC_LL_TASK, // Link Layer task logs
BLE_LOG_SRC_LL_HCI, // Link Layer HCI logs
BLE_LOG_SRC_LL_ISR, // Link Layer interrupt logs
BLE_LOG_SRC_HOST, // Host layer logs
BLE_LOG_SRC_HCI, // HCI layer logs
BLE_LOG_SRC_ENCODE, // Encoding layer logs
BLE_LOG_SRC_MAX,
} ble_log_src_t;
```
### Link Layer API (Conditional Compilation)
#### `void ble_log_write_hex_ll(uint32_t len, const uint8_t *addr, uint32_t len_append, const uint8_t *addr_append, uint32_t flag)`
Link Layer dedicated log writing interface.
**Parameters**:
- `len`: Main data length
- `addr`: Main data pointer
- `len_append`: Append data length
- `addr_append`: Append data pointer
- `flag`: Log flag bits
**Flag Definitions**:
```c
enum {
BLE_LOG_LL_FLAG_CONTINUE = 0,
BLE_LOG_LL_FLAG_END,
BLE_LOG_LL_FLAG_TASK,
BLE_LOG_LL_FLAG_ISR,
BLE_LOG_LL_FLAG_HCI,
BLE_LOG_LL_FLAG_RAW,
BLE_LOG_LL_FLAG_HCI_UPSTREAM,
};
```
### Timestamp Synchronization API (Conditional Compilation)
#### `bool ble_log_sync_enable(bool enable)`
Enable or disable timestamp synchronization functionality.
**Parameters**:
- `enable`: true to enable, false to disable
**Return Value**:
- `true`: Operation successful
- `false`: Operation failed (module not initialized)
## Usage Examples
### Example 1: Basic Logging
```c
#include "ble_log.h"
void example_basic_logging() {
// Initialize
if (!ble_log_init()) {
printf("BLE Log init failed\n");
return;
}
// Log some example data
uint8_t hci_cmd[] = {0x01, 0x03, 0x0C, 0x00}; // HCI Reset Command
ble_log_write_hex(BLE_LOG_SRC_HCI, hci_cmd, sizeof(hci_cmd));
uint8_t host_data[] = {0x02, 0x00, 0x20, 0x0B, 0x00, 0x07, 0x00, 0x04, 0x00, 0x10, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x28};
ble_log_write_hex(BLE_LOG_SRC_HOST, host_data, sizeof(host_data));
// Force send
ble_log_flush();
// Cleanup
ble_log_deinit();
}
```
### Example 2: ISR Context Logging
```c
void IRAM_ATTR some_isr_handler() {
uint8_t isr_data[] = {0xDE, 0xAD, 0xBE, 0xEF};
// Safe to write logs in ISR context
ble_log_write_hex(BLE_LOG_SRC_LL_ISR, isr_data, sizeof(isr_data));
}
```
### Example 3: Logging with Timestamp Synchronization
```c
void example_with_timestamp_sync() {
if (!ble_log_init()) {
return;
}
#if CONFIG_BLE_LOG_TS_ENABLED
// Enable timestamp synchronization
ble_log_sync_enable(true);
#endif
// Log data...
uint8_t data[] = {0x01, 0x02, 0x03};
ble_log_write_hex(BLE_LOG_SRC_CUSTOM, data, sizeof(data));
// Timestamp information will be automatically included in logs
ble_log_deinit();
}
```
### Example 4: Performance Testing
```c
void example_performance_test() {
if (!ble_log_init()) {
return;
}
uint8_t test_data[100];
for (int i = 0; i < 100; i++) {
test_data[i] = i;
}
uint32_t start_time = esp_timer_get_time();
// Send 1000 logs
for (int i = 0; i < 1000; i++) {
ble_log_write_hex(BLE_LOG_SRC_CUSTOM, test_data, sizeof(test_data));
}
ble_log_flush();
uint32_t end_time = esp_timer_get_time();
printf("Time to write 1000 logs: %lu us\n", end_time - start_time);
ble_log_deinit();
}
```
## Performance & Memory Optimization
### Memory Usage Estimation
Memory usage under default configuration:
```
Total Buffers = (Atomic Task LBMs + Atomic ISR LBMs + Spin LBMs) × 2 × Transport Buffer Size
Default Config = (2 + 1 + 2) × 2 × 512 = 5120 bytes
Additional when Link Layer enabled:
LL Buffers = 2 × 2 × 1024 = 4096 bytes
Additional when Enhanced Statistics enabled:
Statistics Data = Log Source Count × sizeof(ble_log_stat_mgr_t) = 8 × 40 = 320 bytes
```
### Performance Optimization Recommendations
1. **Adjust LBM Count**: Adjust atomic lock LBM count based on concurrency requirements
2. **Buffer Size**: Adjust transport buffer size based on log volume
3. **Transport Method**: Choose optimal transport method based on hardware (SPI DMA typically has best performance)
4. **Checksum**: Consider disabling payload checksum when performance requirements are extremely high
### Real-time Considerations
- Critical code paths are marked with `BLE_LOG_IRAM_ATTR` and run in IRAM
- Atomic operations avoid lock contention
- Ping-pong buffers ensure continuous writing
## Troubleshooting
### Common Issues
#### 1. Initialization Failure
**Symptoms**: `ble_log_init()` returns `false`
**Possible Causes**:
- Insufficient memory
- Peripheral configuration error
- Duplicate initialization
**Solutions**:
```c
// Check available memory
printf("Free heap: %d bytes\n", esp_get_free_heap_size());
// Ensure initialization only happens once
static bool initialized = false;
if (!initialized) {
initialized = ble_log_init();
}
```
#### 2. Log Loss
**Symptoms**: Some logs don't appear in output
**Possible Causes**:
- Buffer overflow
- Transmission speed can't keep up with write speed
- Module not properly initialized
**Solutions**:
```c
// Enable enhanced statistics to check loss rate
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
// Statistics will be automatically included in logs
#endif
// Adjust buffer size
// CONFIG_BLE_LOG_LBM_TRANS_SIZE=1024
// Increase atomic lock LBM count
// CONFIG_BLE_LOG_LBM_ATOMIC_LOCK_TASK_CNT=4
```
#### 3. Performance Issues
**Symptoms**: System response becomes slow
**Possible Causes**:
- Checksum calculation overhead
- Transmission bottleneck
- Lock contention
**Solutions**:
```c
// Disable payload checksum
// CONFIG_BLE_LOG_PAYLOAD_CHECKSUM_ENABLED=n
// Use faster transmission method
// CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA=y
// Adjust task priority
#define BLE_LOG_TASK_PRIO configMAX_PRIORITIES-3
```
### Debugging Techniques
#### 1. Use Dummy Transport for Debugging
```c
// Select Dummy transport in menuconfig
// Then use dump function to view buffer contents
ble_log_dump_to_console();
```
#### 2. Enable Enhanced Statistics
```c
// Enable in menuconfig
// CONFIG_BLE_LOG_ENH_STAT_ENABLED=y
// Statistics will be automatically output to logs
```
#### 3. Monitor Memory Usage
```c
void monitor_memory() {
printf("Free heap before init: %d\n", esp_get_free_heap_size());
ble_log_init();
printf("Free heap after init: %d\n", esp_get_free_heap_size());
}
```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,780 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "ble_log/ble_log_uhci_out.h"
#if CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED
// Private includes
#include "esp_bt.h"
// sdkconfig defines
#define UHCI_OUT_LL_TASK_BUF_SIZE CONFIG_BT_BLE_LOG_UHCI_OUT_LL_TASK_BUF_SIZE
#define UHCI_OUT_LL_ISR_BUF_SIZE CONFIG_BT_BLE_LOG_UHCI_OUT_LL_ISR_BUF_SIZE
#define UHCI_OUT_LL_HCI_BUF_SIZE CONFIG_BT_BLE_LOG_UHCI_OUT_LL_HCI_BUF_SIZE
#define UHCI_OUT_UART_PORT CONFIG_BT_BLE_LOG_UHCI_OUT_UART_PORT
#define UHCI_OUT_UART_NEED_INIT CONFIG_BT_BLE_LOG_UHCI_OUT_UART_NEED_INIT
#if UHCI_OUT_UART_NEED_INIT
#define UHCI_OUT_UART_BAUD_RATE CONFIG_BT_BLE_LOG_UHCI_OUT_UART_BAUD_RATE
#define UHCI_OUT_UART_IO_NUM_TX CONFIG_BT_BLE_LOG_UHCI_OUT_UART_IO_NUM_TX
#endif // UHCI_OUT_UART_NEED_INIT
// Private defines
#define UHCI_OUT_MAX_TRANSFER_SIZE (10240)
#define UHCI_OUT_MALLOC(size) heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT)
#define UHCI_OUT_FLUSH_TIMEOUT_MS (100)
#define UHCI_OUT_FLUSH_TIMEOUT_US (UHCI_OUT_FLUSH_TIMEOUT_MS * 1000)
#define UHCI_OUT_USER_BUF_SIZE (512)
#define UHCI_OUT_UART_PORT0 (0)
#define UHCI_OUT_UART_PORT1 (1)
#define UHCI_OUT_UART_DRIVER_RX_BUF_SIZE (32)
// Queue size defines
#define UHCI_OUT_PING_PONG_BUF_CNT (2)
#define UHCI_OUT_USER_QUEUE_SIZE (UHCI_OUT_PING_PONG_BUF_CNT)
#define UHCI_OUT_LL_QUEUE_SIZE (3 * UHCI_OUT_PING_PONG_BUF_CNT)
#define UHCI_OUT_QUEUE_SIZE (UHCI_OUT_USER_QUEUE_SIZE + UHCI_OUT_LL_QUEUE_SIZE)
// Private typedefs
typedef struct {
// This flag is for multithreading, must be a word, do not modify
volatile uint32_t flag;
uint16_t buf_size;
uint16_t length;
uint8_t buffer[0];
} uhci_out_trans_cb_t;
typedef struct {
uhci_out_trans_cb_t *trans_cb[2];
uint8_t trans_cb_idx;
uint8_t type;
uint16_t lost_frame_cnt;
uint32_t lost_bytes_cnt;
uint32_t frame_sn;
} uhci_out_log_cb_t;
typedef struct {
uint16_t length;
uint8_t source;
uint8_t type;
uint16_t frame_sn;
} __attribute__((packed)) frame_head_t;
typedef struct {
uint8_t type;
uint16_t lost_frame_cnt;
uint32_t lost_bytes_cnt;
} __attribute__((packed)) loss_payload_t;
// Private enums
enum {
TRANS_CB_FLAG_AVAILABLE = 0,
TRANS_CB_FLAG_NEED_QUEUE,
TRANS_CB_FLAG_IN_QUEUE,
};
enum {
LOG_CB_TYPE_USER = 0,
LOG_CB_TYPE_LL,
};
enum {
LOG_CB_LL_SUBTYPE_TASK = 0,
LOG_CB_LL_SUBTYPE_ISR,
LOG_CB_LL_SUBTYPE_HCI
};
enum {
LL_LOG_FLAG_CONTINUE = 0,
LL_LOG_FLAG_END,
LL_LOG_FLAG_TASK,
LL_LOG_FLAG_ISR,
LL_LOG_FLAG_HCI,
LL_LOG_FLAG_RAW,
LL_LOG_FLAG_SYNC
};
enum {
LL_EV_FLAG_ISR_APPEND = 0,
LL_EV_FLAG_FLUSH_LOG,
};
// Private variables
static bool uhci_out_inited = false;
static uhci_controller_handle_t uhci_handle = NULL;
static bool user_log_inited = false;
static SemaphoreHandle_t user_log_mutex = NULL;
static uhci_out_log_cb_t *user_log_cb = NULL;
static uint32_t user_last_write_ts = 0;
static bool ll_log_inited = false;
static uhci_out_log_cb_t *ll_task_log_cb = NULL;
static uhci_out_log_cb_t *ll_isr_log_cb = NULL;
static uhci_out_log_cb_t *ll_hci_log_cb = NULL;
static uint32_t ll_ev_flags = 0;
static uint32_t ll_last_write_ts = 0;
static esp_timer_handle_t flush_timer = NULL;
// Private function declarations
extern void esp_panic_handler_feed_wdts(void);
static int uhci_out_init_trans(uhci_out_trans_cb_t **trans_cb, uint16_t buf_size);
static void uhci_out_deinit_trans(uhci_out_trans_cb_t **trans_cb);
static bool uhci_out_tx_done_cb(uhci_controller_handle_t uhci_ctrl,
const uhci_tx_done_event_data_t *edata, void *user_ctx);
static inline void uhci_out_append_trans(uhci_out_trans_cb_t *trans_cb);
static int uhci_out_log_cb_init(uhci_out_log_cb_t **log_cb, uint16_t buf_size, uint8_t type, uint8_t idx);
static void uhci_out_log_cb_deinit(uhci_out_log_cb_t **log_cb);
static inline bool uhci_out_log_cb_check_trans(uhci_out_log_cb_t *log_cb, uint16_t len, bool *need_append);
static inline void uhci_out_log_cb_append_trans(uhci_out_log_cb_t *log_cb);
static inline void uhci_out_log_cb_flush_trans(uhci_out_log_cb_t *log_cb);
static bool uhci_out_log_cb_write(uhci_out_log_cb_t *log_cb, const uint8_t *addr, uint16_t len,
const uint8_t *addr_append, uint16_t len_append, uint8_t source);
static void uhci_out_log_cb_write_loss(uhci_out_log_cb_t *log_cb);
static void uhci_out_log_cb_dump(uhci_out_log_cb_t *log_cb);
static void esp_timer_cb_log_flush(void);
static void uhci_out_user_write_str(const uint8_t *src, uint16_t len);
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
static void uhci_out_user_write_char(char c);
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
static int uhci_out_user_log_init(void);
static void uhci_out_user_log_deinit(void);
static int uhci_out_ll_log_init(void);
static void uhci_out_ll_log_deinit(void);
static void uhci_out_ll_log_flush(void);
#if defined(CONFIG_IDF_TARGET_ESP32H2) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5) ||\
defined(CONFIG_IDF_TARGET_ESP32C61) || defined(CONFIG_IDF_TARGET_ESP32H21)
extern void r_ble_log_simple_put_ev(void);
#define UHCI_OUT_LL_PUT_EV r_ble_log_simple_put_ev()
#elif defined(CONFIG_IDF_TARGET_ESP32C2)
extern void ble_log_simple_put_ev(void);
#define UHCI_OUT_LL_PUT_EV ble_log_simple_put_ev()
#else
#define UHCI_OUT_LL_PUT_EV
#endif
// Private macros
#define UHCI_OUT_FRAME_HEAD_LEN (sizeof(frame_head_t))
#define UHCI_OUT_FRAME_TAIL_LEN (sizeof(uint32_t))
#define UHCI_OUT_FRAME_OVERHEAD (UHCI_OUT_FRAME_HEAD_LEN + UHCI_OUT_FRAME_TAIL_LEN)
#define UHCI_OUT_GET_FRAME_SN(VAR) __atomic_fetch_add(VAR, 1, __ATOMIC_RELAXED)
// Private functions
static int uhci_out_init_trans(uhci_out_trans_cb_t **trans_cb, uint16_t buf_size)
{
// Memory allocations
size_t cb_size = sizeof(uhci_out_trans_cb_t) + buf_size;
*trans_cb = (uhci_out_trans_cb_t *)UHCI_OUT_MALLOC(cb_size);
if (!(*trans_cb)) {
return -1;
}
memset(*trans_cb, 0, sizeof(uhci_out_trans_cb_t));
// Initialization
(*trans_cb)->buf_size = buf_size;
return 0;
}
static void uhci_out_deinit_trans(uhci_out_trans_cb_t **trans_cb)
{
if (!(*trans_cb)) {
return;
}
free(*trans_cb);
*trans_cb = NULL;
return;
}
IRAM_ATTR static bool uhci_out_tx_done_cb(uhci_controller_handle_t uhci_ctrl,
const uhci_tx_done_event_data_t *edata, void *user_ctx)
{
uhci_out_trans_cb_t *trans_cb = (uhci_out_trans_cb_t *)((uint8_t *)edata->buffer - sizeof(uhci_out_trans_cb_t));
trans_cb->length = 0;
trans_cb->flag = TRANS_CB_FLAG_AVAILABLE;
return true;
}
IRAM_ATTR static inline void uhci_out_append_trans(uhci_out_trans_cb_t *trans_cb)
{
if ((trans_cb->flag != TRANS_CB_FLAG_NEED_QUEUE) || !trans_cb->length) {
return;
}
// Note: If task yield after transmission but before flag set
// flag might be reset in tx done ISR before flag set, leading to buffer access failure
trans_cb->flag = TRANS_CB_FLAG_IN_QUEUE;
if (uhci_transmit(uhci_handle, trans_cb->buffer, trans_cb->length) != ESP_OK) {
goto recycle;
}
return;
recycle:
trans_cb->length = 0;
trans_cb->flag = TRANS_CB_FLAG_AVAILABLE;
return;
}
static int uhci_out_log_cb_init(uhci_out_log_cb_t **log_cb, uint16_t buf_size, uint8_t type, uint8_t idx)
{
// Initialize log control block
*log_cb = (uhci_out_log_cb_t *)UHCI_OUT_MALLOC(sizeof(uhci_out_log_cb_t));
if (!(*log_cb)) {
return -1;
}
memset(*log_cb, 0, sizeof(uhci_out_log_cb_t));
// Initialize transactions
int ret = 0;
for (uint8_t i = 0; i < 2; i++) {
ret |= uhci_out_init_trans(&((*log_cb)->trans_cb[i]), buf_size);
}
if (ret != 0) {
uhci_out_log_cb_deinit(log_cb);
return -1;
}
(*log_cb)->type = (type << 4) | (idx);
return 0;
}
static void uhci_out_log_cb_deinit(uhci_out_log_cb_t **log_cb)
{
if (!(*log_cb)) {
return;
}
for (uint8_t i = 0; i < 2; i++) {
if ((*log_cb)->trans_cb[i]) {
uhci_out_deinit_trans(&((*log_cb)->trans_cb[i]));
}
}
free(*log_cb);
*log_cb = NULL;
return;
}
IRAM_ATTR static inline bool uhci_out_log_cb_check_trans(uhci_out_log_cb_t *log_cb, uint16_t len, bool *need_append)
{
uhci_out_trans_cb_t *trans_cb;
*need_append = false;
for (uint8_t i = 0; i < 2; i++) {
trans_cb = log_cb->trans_cb[log_cb->trans_cb_idx];
if (len > trans_cb->buf_size) {
goto failed;
}
if (trans_cb->flag == TRANS_CB_FLAG_AVAILABLE) {
if ((trans_cb->buf_size - trans_cb->length) >= len) {
return true;
} else {
trans_cb->flag = TRANS_CB_FLAG_NEED_QUEUE;
*need_append = true;
}
}
log_cb->trans_cb_idx = !(log_cb->trans_cb_idx);
}
failed:
log_cb->lost_bytes_cnt += len;
log_cb->lost_frame_cnt++;
return false;
}
// CRITICAL: Shall not be called from ISR!
IRAM_ATTR static inline void uhci_out_log_cb_append_trans(uhci_out_log_cb_t *log_cb)
{
uhci_out_trans_cb_t *trans_cb;
uint8_t idx = !log_cb->trans_cb_idx;
for (uint8_t i = 0; i < 2; i++) {
trans_cb = log_cb->trans_cb[idx];
if (trans_cb->flag == TRANS_CB_FLAG_NEED_QUEUE) {
uhci_out_append_trans(trans_cb);
}
idx = !idx;
}
}
IRAM_ATTR static inline void uhci_out_log_cb_flush_trans(uhci_out_log_cb_t *log_cb)
{
uhci_out_trans_cb_t *trans_cb;
for (uint8_t i = 0; i < 2; i++) {
trans_cb = log_cb->trans_cb[i];
if (trans_cb->length && (trans_cb->flag == TRANS_CB_FLAG_AVAILABLE)) {
trans_cb->flag = TRANS_CB_FLAG_NEED_QUEUE;
}
}
}
// Return value: Need append
IRAM_ATTR static bool uhci_out_log_cb_write(uhci_out_log_cb_t *log_cb, const uint8_t *addr, uint16_t len,
const uint8_t *addr_append, uint16_t len_append, uint8_t source)
{
uhci_out_trans_cb_t *trans_cb = log_cb->trans_cb[log_cb->trans_cb_idx];
uint8_t *buf = trans_cb->buffer + trans_cb->length;
uint16_t total_length = len + len_append;
frame_head_t head = {
.length = total_length,
.source = source,
.type = log_cb->type,
.frame_sn = UHCI_OUT_GET_FRAME_SN(&(log_cb->frame_sn)) & 0xFFFF,
};
memcpy(buf, (const uint8_t *)&head, UHCI_OUT_FRAME_HEAD_LEN);
memcpy(buf + UHCI_OUT_FRAME_HEAD_LEN, addr, len);
if (len_append && addr_append) {
memcpy(buf + UHCI_OUT_FRAME_HEAD_LEN + len, addr_append, len_append);
}
uint32_t checksum = 0;
for (int i = 0; i < UHCI_OUT_FRAME_HEAD_LEN + total_length; i++) {
checksum += buf[i];
}
memcpy(buf + UHCI_OUT_FRAME_HEAD_LEN + total_length, &checksum, UHCI_OUT_FRAME_TAIL_LEN);
trans_cb->length += total_length + UHCI_OUT_FRAME_OVERHEAD;
if ((trans_cb->buf_size - trans_cb->length) <= UHCI_OUT_FRAME_OVERHEAD) {
trans_cb->flag = TRANS_CB_FLAG_NEED_QUEUE;
return true;
}
return false;
}
IRAM_ATTR static void uhci_out_log_cb_write_loss(uhci_out_log_cb_t *log_cb)
{
if (!log_cb->lost_bytes_cnt || !log_cb->lost_frame_cnt) {
return;
}
bool need_append;
uint16_t frame_len = sizeof(loss_payload_t) + UHCI_OUT_FRAME_OVERHEAD;
if (uhci_out_log_cb_check_trans(log_cb, frame_len, &need_append)) {
loss_payload_t payload = {
.type = log_cb->type,
.lost_frame_cnt = log_cb->lost_frame_cnt,
.lost_bytes_cnt = log_cb->lost_bytes_cnt,
};
uhci_out_log_cb_write(log_cb, (const uint8_t *)&payload, sizeof(loss_payload_t),
NULL, 0, BLE_LOG_UHCI_OUT_SOURCE_LOSS);
log_cb->lost_frame_cnt = 0;
log_cb->lost_bytes_cnt = 0;
}
}
static void uhci_out_log_cb_dump(uhci_out_log_cb_t *log_cb)
{
uhci_out_trans_cb_t *trans_cb;
uint8_t *buf;
for (uint8_t i = 0; i < 2; i++) {
// Dump the last transaction before dumping the current transaction
log_cb->trans_cb_idx = !(log_cb->trans_cb_idx);
trans_cb = log_cb->trans_cb[log_cb->trans_cb_idx];
buf = (uint8_t *)trans_cb->buffer;
for (uint16_t j = 0; j < trans_cb->buf_size; j++) {
esp_rom_printf("%02x ", buf[j]);
// Feed watchdogs periodically to avoid wdts timeout
if ((j % 100) == 0) {
esp_panic_handler_feed_wdts();
}
}
}
}
static void esp_timer_cb_log_flush(void)
{
uint32_t os_ts = pdTICKS_TO_MS(xTaskGetTickCount());
if ((os_ts - user_last_write_ts) > UHCI_OUT_FLUSH_TIMEOUT_MS) {
xSemaphoreTake(user_log_mutex, portMAX_DELAY);
uhci_out_log_cb_flush_trans(user_log_cb);
uhci_out_log_cb_append_trans(user_log_cb);
xSemaphoreGive(user_log_mutex);
}
if ((esp_bt_controller_get_status() >= ESP_BT_CONTROLLER_STATUS_INITED) &&
((os_ts - ll_last_write_ts) > UHCI_OUT_FLUSH_TIMEOUT_MS)) {
ll_ev_flags |= BIT(LL_EV_FLAG_FLUSH_LOG);
UHCI_OUT_LL_PUT_EV;
}
esp_timer_start_once(flush_timer, UHCI_OUT_FLUSH_TIMEOUT_US);
}
static void uhci_out_user_write_str(const uint8_t *src, uint16_t len)
{
if (!user_log_inited || !src || !len) {
return;
}
xSemaphoreTake(user_log_mutex, portMAX_DELAY);
bool need_append;
if (uhci_out_log_cb_check_trans(user_log_cb, len, &need_append)) {
uhci_out_trans_cb_t *trans_cb = user_log_cb->trans_cb[user_log_cb->trans_cb_idx];
uint8_t *buf = trans_cb->buffer + trans_cb->length;
memcpy(buf, (const uint8_t *)src, len);
trans_cb->length += len;
}
if (need_append) {
uhci_out_log_cb_append_trans(user_log_cb);
}
user_last_write_ts = pdTICKS_TO_MS(xTaskGetTickCount());
xSemaphoreGive(user_log_mutex);
}
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
static void uhci_out_user_write_char(char c)
{
uhci_out_user_write_str((const uint8_t *)&c, 1);
}
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
static int uhci_out_user_log_init(void)
{
if (user_log_inited) {
return 0;
}
// Initialize mutex
user_log_mutex = xSemaphoreCreateMutex();
if (!user_log_mutex) {
goto failed;
}
// Initialize log control block
if (uhci_out_log_cb_init(&user_log_cb, UHCI_OUT_USER_BUF_SIZE, LOG_CB_TYPE_USER, 0) != 0) {
goto failed;
}
// Initialization done
user_log_inited = true;
return 0;
failed:
uhci_out_user_log_deinit();
return -1;
}
static void uhci_out_user_log_deinit(void)
{
user_log_inited = false;
if (!user_log_mutex) {
return;
}
xSemaphoreTake(user_log_mutex, portMAX_DELAY);
uhci_out_log_cb_deinit(&user_log_cb);
xSemaphoreGive(user_log_mutex);
vSemaphoreDelete(user_log_mutex);
user_log_mutex = NULL;
}
static int uhci_out_ll_log_init(void)
{
if (ll_log_inited) {
return 0;
}
if (uhci_out_log_cb_init(&ll_task_log_cb, UHCI_OUT_LL_TASK_BUF_SIZE,
LOG_CB_TYPE_LL, LOG_CB_LL_SUBTYPE_TASK) != 0) {
goto failed;
}
if (uhci_out_log_cb_init(&ll_isr_log_cb, UHCI_OUT_LL_ISR_BUF_SIZE,
LOG_CB_TYPE_LL, LOG_CB_LL_SUBTYPE_ISR) != 0) {
goto failed;
}
if (uhci_out_log_cb_init(&ll_hci_log_cb, UHCI_OUT_LL_HCI_BUF_SIZE,
LOG_CB_TYPE_LL, LOG_CB_LL_SUBTYPE_HCI) != 0) {
goto failed;
}
ll_log_inited = true;
return 0;
failed:
uhci_out_ll_log_deinit();
return -1;
}
static void uhci_out_ll_log_deinit(void)
{
ll_log_inited = false;
uhci_out_log_cb_deinit(&ll_hci_log_cb);
uhci_out_log_cb_deinit(&ll_isr_log_cb);
uhci_out_log_cb_deinit(&ll_task_log_cb);
}
static void uhci_out_ll_log_flush(void)
{
if (!ll_log_inited) {
return;
}
uhci_out_log_cb_write_loss(ll_task_log_cb);
uhci_out_log_cb_write_loss(ll_hci_log_cb);
uhci_out_log_cb_flush_trans(ll_task_log_cb);
uhci_out_log_cb_flush_trans(ll_hci_log_cb);
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
portENTER_CRITICAL_SAFE(&spinlock);
uhci_out_log_cb_write_loss(ll_isr_log_cb);
uhci_out_log_cb_flush_trans(ll_isr_log_cb);
portEXIT_CRITICAL_SAFE(&spinlock);
uhci_out_log_cb_append_trans(ll_task_log_cb);
uhci_out_log_cb_append_trans(ll_hci_log_cb);
uhci_out_log_cb_append_trans(ll_isr_log_cb);
}
// Public functions
int ble_log_uhci_out_init(void)
{
// Avoid double init
if (uhci_out_inited) {
return 0;
}
#if UHCI_OUT_UART_NEED_INIT
uart_config_t uart_config = {
.baud_rate = UHCI_OUT_UART_BAUD_RATE,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
.rx_flow_ctrl_thresh = 122,
};
// Configure UART parameters
uart_param_config(UHCI_OUT_UART_PORT, &uart_config);
uart_set_pin(UHCI_OUT_UART_PORT, UHCI_OUT_UART_IO_NUM_TX, -1, -1, -1);
#endif // UHCI_OUT_UART_NEED_INIT
uhci_controller_config_t uhci_config = {
.uart_port = UHCI_OUT_UART_PORT,
.tx_trans_queue_depth = UHCI_OUT_QUEUE_SIZE,
.max_receive_internal_mem = 1024,
.max_transmit_size = UHCI_OUT_MAX_TRANSFER_SIZE,
.dma_burst_size = 32,
.rx_eof_flags.idle_eof = 1,
};
if (uhci_new_controller(&uhci_config, &uhci_handle) != ESP_OK) {
goto failed;
}
uhci_event_callbacks_t uhci_cbs = {
.on_tx_trans_done = uhci_out_tx_done_cb,
};
uhci_register_event_callbacks(uhci_handle, &uhci_cbs, NULL);
if (uhci_out_user_log_init() != 0) {
goto failed;
}
if (uhci_out_ll_log_init() != 0) {
goto failed;
}
esp_timer_create_args_t timer_args = {
.callback = (esp_timer_cb_t)esp_timer_cb_log_flush,
.dispatch_method = ESP_TIMER_TASK
};
if (esp_timer_create(&timer_args, &flush_timer) != ESP_OK) {
goto failed;
}
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
// Install UART Driver if not installed
if (!uart_is_driver_installed(UHCI_OUT_UART_PORT0)) {
uart_driver_install(UHCI_OUT_UART_PORT0, UHCI_OUT_UART_DRIVER_RX_BUF_SIZE, 0, 0, NULL, 0);
}
// Redirect UART VFS Driver to UART Driver
uart_vfs_dev_use_driver(UHCI_OUT_UART_PORT0);
// Redirect esp_rom_printf to BLE Log UHCI Out
esp_rom_install_channel_putc(1, uhci_out_user_write_char);
esp_rom_install_channel_putc(2, NULL);
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
uhci_out_inited = true;
esp_timer_start_once(flush_timer, UHCI_OUT_FLUSH_TIMEOUT_US);
return 0;
failed:
ble_log_uhci_out_deinit();
return -1;
}
void ble_log_uhci_out_deinit(void)
{
uhci_out_inited = false;
if (flush_timer) {
esp_timer_stop(flush_timer);
esp_timer_delete(flush_timer);
flush_timer = NULL;
}
if (uhci_handle) {
uhci_wait_all_tx_transaction_done(uhci_handle, portMAX_DELAY);
uhci_del_controller(uhci_handle);
uhci_handle = NULL;
}
uhci_out_ll_log_deinit();
uhci_out_user_log_deinit();
}
IRAM_ATTR void ble_log_uhci_out_ll_write(uint32_t len, const uint8_t *addr, uint32_t len_append,
const uint8_t *addr_append, uint32_t flag)
{
// Raw logs will come in case of assert, shall be printed to console directly
if (flag & BIT(LL_LOG_FLAG_RAW)) {
if (len && addr) {
for (uint32_t i = 0; i < len; i++) { esp_rom_printf("%02x ", addr[i]); }
}
if (len_append && addr_append) {
for (uint32_t i = 0; i < len_append; i++) { esp_rom_printf("%02x ", addr_append[i]); }
}
if (flag & BIT(LL_LOG_FLAG_END)) { esp_rom_printf("\n"); }
}
if (!ll_log_inited) {
return;
}
bool in_isr = false;
uint8_t source;
uhci_out_log_cb_t *log_cb;
if (flag & BIT(LL_LOG_FLAG_ISR)) {
log_cb = ll_isr_log_cb;
source = BLE_LOG_UHCI_OUT_SOURCE_ESP_ISR;
in_isr = true;
} else if (flag & BIT(LL_LOG_FLAG_HCI)) {
log_cb = ll_hci_log_cb;
source = BLE_LOG_UHCI_OUT_SOURCE_LL_HCI;
} else {
log_cb = ll_task_log_cb;
source = BLE_LOG_UHCI_OUT_SOURCE_ESP;
}
bool need_append;
uint16_t frame_len = len + len_append + UHCI_OUT_FRAME_OVERHEAD;
if (uhci_out_log_cb_check_trans(log_cb, frame_len, &need_append)) {
need_append |= uhci_out_log_cb_write(log_cb, addr, len, addr_append,
len_append, source);
}
ll_last_write_ts = in_isr?\
pdTICKS_TO_MS(xTaskGetTickCountFromISR()):\
pdTICKS_TO_MS(xTaskGetTickCount());
if (need_append) {
if (in_isr) {
ll_ev_flags |= BIT(LL_EV_FLAG_ISR_APPEND);
UHCI_OUT_LL_PUT_EV;
} else {
uhci_out_log_cb_append_trans(log_cb);
}
}
}
IRAM_ATTR void ble_log_uhci_out_ll_log_ev_proc(void)
{
if (!ll_log_inited) {
return;
}
if (ll_ev_flags & BIT(LL_EV_FLAG_ISR_APPEND)) {
uhci_out_log_cb_append_trans(ll_isr_log_cb);
ll_ev_flags &= ~BIT(LL_EV_FLAG_ISR_APPEND);
}
if (ll_ev_flags & BIT(LL_EV_FLAG_FLUSH_LOG)) {
uhci_out_ll_log_flush();
ll_ev_flags &= ~BIT(LL_EV_FLAG_FLUSH_LOG);
}
ll_ev_flags = 0;
}
// Redirect UART Driver to BLE Log UHCI Out
int __real_uart_tx_chars(uart_port_t uart_num, const char *buffer, uint32_t len);
int __wrap_uart_tx_chars(uart_port_t uart_num, const char *buffer, uint32_t len)
{
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
uhci_out_user_write_str((const uint8_t *)buffer, len);
return 0;
#else
return __real_uart_tx_chars(uart_num, buffer, len);
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
}
int __real_uart_write_bytes(uart_port_t uart_num, const void *src, size_t size);
int __wrap_uart_write_bytes(uart_port_t uart_num, const void *src, size_t size)
{
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
uhci_out_user_write_str((const uint8_t *)src, size);
return 0;
#else
return __real_uart_write_bytes(uart_num, src, size);
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
}
int __real_uart_write_bytes_with_break(uart_port_t uart_num, const void *src, size_t size, int brk_len);
int __wrap_uart_write_bytes_with_break(uart_port_t uart_num, const void *src, size_t size, int brk_len)
{
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
return __wrap_uart_write_bytes(uart_num, src, size);
#else
return __real_uart_write_bytes_with_break(uart_num, src, size, brk_len);
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
}
void ble_log_uhci_out_dump_all(void)
{
if (!uhci_out_inited) {
return;
}
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
esp_rom_output_tx_wait_idle(UHCI_OUT_UART_PORT0);
esp_rom_install_uart_printf();
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
portENTER_CRITICAL_SAFE(&spinlock);
if (ll_log_inited) {
esp_rom_printf("[DUMP_START:\n");
uhci_out_log_cb_dump(ll_isr_log_cb);
uhci_out_log_cb_dump(ll_task_log_cb);
uhci_out_log_cb_dump(ll_hci_log_cb);
esp_rom_printf("\n:DUMP_END]\n\n");
}
portEXIT_CRITICAL_SAFE(&spinlock);
#if UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
esp_rom_install_channel_putc(1, uhci_out_user_write_char);
#endif // UHCI_OUT_UART_PORT == UHCI_OUT_UART_PORT0
}
#endif // CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED

View File

@@ -0,0 +1,56 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_H__
#define __BLE_LOG_H__
/* ------- */
/* BLE Log */
/* ------- */
/* INCLUDE */
#include <stdbool.h>
#include <stdint.h>
#include <stddef.h>
/* TYPEDEF */
/* CRITICAL:
* The number of BLE Log source code will directly determine the number of statistic manager
* memory requirements, keep it as less as possible; it's recommended to use subcode for more
* log data structure decoding */
typedef enum {
/* Internal */
BLE_LOG_SRC_INTERNAL = 0,
/* Custom */
BLE_LOG_SRC_CUSTOM,
/* BLE Stack */
BLE_LOG_SRC_LL_TASK,
BLE_LOG_SRC_LL_HCI,
BLE_LOG_SRC_LL_ISR,
BLE_LOG_SRC_HOST,
BLE_LOG_SRC_HCI,
BLE_LOG_SRC_ENCODE,
BLE_LOG_SRC_MAX,
} ble_log_src_t;
/* INTERFACE */
bool ble_log_init(void);
void ble_log_deinit(void);
bool ble_log_enable(bool enable);
void ble_log_flush(void);
bool ble_log_write_hex(ble_log_src_t src_code, const uint8_t *addr, size_t len);
void ble_log_dump_to_console(void);
#if CONFIG_BLE_LOG_LL_ENABLED
void ble_log_write_hex_ll(uint32_t len, const uint8_t *addr,
uint32_t len_append, const uint8_t *addr_append, uint32_t flag);
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
#if CONFIG_BLE_LOG_TS_ENABLED
bool ble_log_sync_enable(bool enable);
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
#endif /* __BLE_LOG_H__ */

View File

@@ -0,0 +1,65 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BT_SPI_OUT_H__
#define __BT_SPI_OUT_H__
#include <stdarg.h>
#include <string.h>
#include "driver/spi_master.h"
#include "driver/gpio.h"
#include "esp_timer.h"
#include "freertos/semphr.h"
#include "esp_heap_caps.h"
#include "esp_task.h"
// Public enums
enum {
BLE_LOG_SPI_OUT_SOURCE_ESP = 0,
BLE_LOG_SPI_OUT_SOURCE_ESP_LEGACY,
BLE_LOG_SPI_OUT_SOURCE_BLUEDROID,
BLE_LOG_SPI_OUT_SOURCE_NIMBLE,
BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM,
BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM,
BLE_LOG_SPI_OUT_SOURCE_ESP_ISR,
BLE_LOG_SPI_OUT_SOURCE_ESP_LEGACY_ISR,
BLE_LOG_SPI_OUT_SOURCE_LL_HCI,
BLE_LOG_SPI_OUT_SOURCE_LE_AUDIO,
BLE_LOG_SPI_OUT_SOURCE_MESH,
BLE_LOG_SPI_OUT_SOURCE_USER = 0x10,
BLE_LOG_SPI_OUT_SOURCE_SSC = 0xFD,
BLE_LOG_SPI_OUT_SOURCE_SYNC,
BLE_LOG_SPI_OUT_SOURCE_LOSS,
};
#define BLE_LOG_SPI_OUT_LEVEL_NONE 0
#define BLE_LOG_SPI_OUT_LEVEL_ERROR 1
#define BLE_LOG_SPI_OUT_LEVEL_WARN 2
#define BLE_LOG_SPI_OUT_LEVEL_INFO 3
#define BLE_LOG_SPI_OUT_LEVEL_DEBUG 4
#define BLE_LOG_SPI_OUT_LEVEL_VERBOSE 5
#define BLE_LOG_SPI_OUT_STR(x) #x
#define BLE_LOG_SPI_OUT_XSTR(x) BLE_LOG_SPI_OUT_STR(x)
#define BLE_LOG_SPI_OUT_BUILD_PREFIX(LEVEL, TAG) "[" BLE_LOG_SPI_OUT_XSTR(LEVEL) "][" TAG "]"
// Public functions
int ble_log_spi_out_init(void);
void ble_log_spi_out_deinit(void);
void ble_log_spi_out_timer_control(bool enable);
int ble_log_spi_out_write(uint8_t source, const uint8_t *addr, uint16_t len);
void ble_log_spi_out_ll_write(uint32_t len, const uint8_t *addr, uint32_t len_append,\
const uint8_t *addr_append, uint32_t flag);
void ble_log_spi_out_ll_log_ev_proc(void);
void ble_log_spi_out_ts_sync_start(void);
void ble_log_spi_out_ts_sync_stop(void);
void ble_log_spi_out_dump_all(void);
void ble_log_spi_out_enable(bool enable);
void ble_log_spi_out_flush(void);
void ble_log_spi_out_le_audio_write(const uint8_t *addr, uint16_t len);
int ble_log_spi_out_host_write(uint8_t source, const char *prefix, const char *format, ...);
int ble_log_spi_out_hci_write(uint8_t source, const uint8_t *addr, uint16_t len);
int ble_log_spi_out_mesh_write(const char *prefix, const char *format, ...);
#endif // __BT_SPI_OUT_H__

View File

@@ -0,0 +1,36 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BT_SPI_OUT_H__
#define __BT_SPI_OUT_H__
#include <stdarg.h>
#include <string.h>
#include "driver/uhci.h"
#include "driver/uart.h"
#include "driver/uart_vfs.h"
#include "esp_rom_uart.h"
#include "esp_rom_sys.h"
#include "esp_timer.h"
#include "freertos/semphr.h"
// Public enums
enum {
BLE_LOG_UHCI_OUT_SOURCE_ESP = 0,
BLE_LOG_UHCI_OUT_SOURCE_ESP_ISR = 6,
BLE_LOG_UHCI_OUT_SOURCE_LL_HCI = 8,
BLE_LOG_UHCI_OUT_SOURCE_USER = 0x10,
BLE_LOG_UHCI_OUT_SOURCE_LOSS = 0xFF,
};
// Public functions
int ble_log_uhci_out_init(void);
void ble_log_uhci_out_deinit(void);
void ble_log_uhci_out_ll_write(uint32_t len, const uint8_t *addr, uint32_t len_append,
const uint8_t *addr_append, uint32_t flag);
void ble_log_uhci_out_ll_log_ev_proc(void);
void ble_log_uhci_out_dump_all(void);
#endif // __BT_SPI_OUT_H__

View File

@@ -0,0 +1,94 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ------- */
/* BLE Log */
/* ------- */
/* INCLUDE */
#include "ble_log.h"
#include "ble_log_rt.h"
#include "ble_log_lbm.h"
#include "ble_log_prph.h"
#include "ble_log_util.h"
#if CONFIG_BLE_LOG_TS_ENABLED
#include "ble_log_ts.h"
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
/* VARIABLE */
BLE_LOG_STATIC bool ble_log_inited = false;
/* INTERFACE */
bool ble_log_init(void)
{
/* Avoid double init */
if (ble_log_inited) {
return true;
}
#if CONFIG_BLE_LOG_TS_ENABLED
/* Initialize BLE Log TS */
if (!ble_log_ts_init()) {
goto exit;
}
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
/* Initialize BLE Log Runtime */
if (!ble_log_rt_init()) {
goto exit;
}
/* Initialize BLE Log LBM */
if (!ble_log_lbm_init()) {
goto exit;
}
/* Initialize BLE Log peripheral interface */
if (!ble_log_prph_init(BLE_LOG_LBM_CNT)) {
goto exit;
}
/* Initialization done */
ble_log_inited = true;
ble_log_enable(true);
/* Write initialization done log */
ble_log_info_t ble_log_info = {
.int_src_code = BLE_LOG_INT_SRC_INIT_DONE,
.version = BLE_LOG_VERSION,
};
ble_log_write_hex(BLE_LOG_SRC_INTERNAL, (const uint8_t *)&ble_log_info, sizeof(ble_log_info_t));
return true;
exit:
ble_log_deinit();
return false;
}
void ble_log_deinit(void)
{
ble_log_enable(false);
ble_log_inited = false;
/* CRITICAL:
* BLE Log peripheral interface must be deinitialized at first,
* because there's a risky scenario that may cause severe peripheral
* driver fault - if a log buffer is sent to peripheral driver, and
* ble_log_deinit is called; in this case, if LBM is deinitialized
* before peripheral interface, the log buffer may be freed before
* peripheral driver completing tx, and the result would be faulty */
ble_log_prph_deinit();
/* Deinitialize BLE Log LBM */
ble_log_lbm_deinit();
/* Deinitialize BLE Log Runtime */
ble_log_rt_deinit();
#if CONFIG_BLE_LOG_TS_ENABLED
/* Deinitialize BLE Log TS */
ble_log_ts_deinit();
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
}

View File

@@ -0,0 +1,543 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ------------------------------- */
/* BLE Log - Log Buffer Management */
/* ------------------------------- */
/* INCLUDE */
#include "ble_log.h"
#include "ble_log_lbm.h"
#include "ble_log_rt.h"
/* VARIABLE */
BLE_LOG_STATIC volatile uint32_t lbm_ref_count = 0;
BLE_LOG_STATIC bool lbm_inited = false;
BLE_LOG_STATIC bool lbm_enabled = false;
BLE_LOG_STATIC ble_log_lbm_ctx_t *lbm_ctx = NULL;
BLE_LOG_STATIC ble_log_stat_mgr_t *stat_mgr_ctx[BLE_LOG_SRC_MAX] = {0};
/* PRIVATE FUNCTION DECLARATION */
BLE_LOG_STATIC ble_log_lbm_t *ble_log_lbm_acquire(void);
BLE_LOG_STATIC void ble_log_lbm_release(ble_log_lbm_t *lbm);
BLE_LOG_STATIC
void ble_log_lbm_write_trans(ble_log_prph_trans_t **trans, ble_log_src_t src_code,
const uint8_t *addr, uint16_t len,
const uint8_t *addr_append, uint16_t len_append);
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
BLE_LOG_STATIC void ble_log_stat_mgr_update(ble_log_src_t src_code, uint32_t len, bool lost);
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
/* ------------------------- */
/* PRIVATE INTERFACE */
/* ------------------------- */
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC
ble_log_lbm_t *ble_log_lbm_acquire(void)
{
ble_log_lbm_t *lbm = NULL;
ble_log_lbm_t *atomic_pool;
ble_log_lbm_t *spin_lbm;
int atomic_pool_size;
if (BLE_LOG_IN_ISR()) {
atomic_pool = lbm_ctx->atomic_pool_isr;
spin_lbm = &(lbm_ctx->spin_isr);
atomic_pool_size = BLE_LOG_LBM_ATOMIC_ISR_CNT;
} else {
atomic_pool = lbm_ctx->atomic_pool_task;
spin_lbm = &(lbm_ctx->spin_task);
atomic_pool_size = BLE_LOG_LBM_ATOMIC_TASK_CNT;
}
/* Try to acquire atomic LBM first */
for (int i = 0; i < atomic_pool_size; i++) {
lbm = &atomic_pool[i];
if (ble_log_cas_acquire(&(lbm->atomic_lock))) {
return lbm;
}
}
/* Fallback to spinlock LBM */
lbm = spin_lbm;
BLE_LOG_ACQUIRE_SPIN_LOCK(&(lbm->spin_lock));
return lbm;
}
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC
void ble_log_lbm_release(ble_log_lbm_t *lbm)
{
switch (lbm->lock_type) {
case BLE_LOG_LBM_LOCK_ATOMIC:
ble_log_cas_release(&(lbm->atomic_lock));
break;
case BLE_LOG_LBM_LOCK_SPIN:
BLE_LOG_RELEASE_SPIN_LOCK(&lbm->spin_lock);
break;
case BLE_LOG_LBM_LOCK_NONE:
default:
break;
}
}
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC
void ble_log_lbm_write_trans(ble_log_prph_trans_t **trans, ble_log_src_t src_code,
const uint8_t *addr, uint16_t len,
const uint8_t *addr_append, uint16_t len_append)
{
/* Preparation before writing */
uint8_t *buf = (*trans)->buf + (*trans)->pos;
uint16_t payload_len = len + len_append;
ble_log_stat_mgr_t *stat_mgr = stat_mgr_ctx[src_code];
uint32_t frame_sn = BLE_LOG_GET_FRAME_SN(&(stat_mgr->frame_sn));
ble_log_frame_head_t frame_head = {
.length = payload_len,
.frame_meta = BLE_LOG_MAKE_FRAME_META(src_code, frame_sn),
};
/* Memory operation */
BLE_LOG_MEMCPY(buf, &frame_head, BLE_LOG_FRAME_HEAD_LEN);
if (len) {
BLE_LOG_MEMCPY(buf + BLE_LOG_FRAME_HEAD_LEN, addr, len);
}
if (len_append) {
BLE_LOG_MEMCPY(buf + BLE_LOG_FRAME_HEAD_LEN + len, addr_append, len_append);
}
/* Data integrity check */
#if CONFIG_BLE_LOG_PAYLOAD_CHECKSUM_ENABLED
uint32_t checksum = ble_log_fast_checksum((const uint8_t *)buf, BLE_LOG_FRAME_HEAD_LEN + payload_len);
#else /* !CONFIG_BLE_LOG_PAYLOAD_CHECKSUM_ENABLED */
/* Note:
* Minimum data integrity check is still required for log parsing reliability,
* which can be achieved by validating the checksum of frame head only */
uint32_t checksum = ble_log_fast_checksum((const uint8_t *)buf, BLE_LOG_FRAME_HEAD_LEN);
#endif /* CONFIG_BLE_LOG_PAYLOAD_CHECKSUM_ENABLED */
BLE_LOG_MEMCPY(buf + BLE_LOG_FRAME_HEAD_LEN + payload_len, &checksum, BLE_LOG_FRAME_TAIL_LEN);
/* Update peripheral transport */
(*trans)->pos += payload_len + BLE_LOG_FRAME_OVERHEAD;
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
ble_log_stat_mgr_update(src_code, payload_len, false);
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
/* Queue trans if full */
if (BLE_LOG_TRANS_FREE_SPACE((*trans)) <= BLE_LOG_FRAME_OVERHEAD) {
ble_log_rt_queue_trans(trans);
}
}
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC
void ble_log_stat_mgr_update(ble_log_src_t src_code, uint32_t len, bool lost)
{
/* Get statistic manager by source code */
ble_log_stat_mgr_t *stat_mgr = stat_mgr_ctx[src_code];
/* Update statistics */
uint32_t bytes_cnt = len + BLE_LOG_FRAME_OVERHEAD;
if (lost) {
stat_mgr->enh_stat.lost_frame_cnt++;
stat_mgr->enh_stat.lost_bytes_cnt += bytes_cnt;
} else {
stat_mgr->enh_stat.written_frame_cnt++;
stat_mgr->enh_stat.written_bytes_cnt += bytes_cnt;
}
}
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
/* -------------------------- */
/* INTERNAL INTERFACE */
/* -------------------------- */
bool ble_log_lbm_init(void)
{
/* Avoid double init */
if (lbm_inited) {
return true;
}
/* Initialize LBM context */
lbm_ctx = (ble_log_lbm_ctx_t *)BLE_LOG_MALLOC(sizeof(ble_log_lbm_ctx_t));
if (!lbm_ctx) {
goto exit;
}
BLE_LOG_MEMSET(lbm_ctx, 0, sizeof(ble_log_lbm_ctx_t));
/* Initialize peripheral transport for common LBMs */
ble_log_lbm_t *lbm;
for (int i = 0; i < BLE_LOG_LBM_COMMON_CNT; i++) {
lbm = &(lbm_ctx->lbm_common_pool[i]);
for (int j = 0; j < BLE_LOG_TRANS_PING_PONG_BUF_CNT; j++) {
if (!ble_log_prph_trans_init(&(lbm->trans[j]),
CONFIG_BLE_LOG_LBM_TRANS_SIZE)) {
goto exit;
}
}
}
/* Initialize lock types for atomic pool */
for (int i = 0; i < BLE_LOG_LBM_ATOMIC_CNT; i++) {
lbm_ctx->atomic_pool[i].lock_type = BLE_LOG_LBM_LOCK_ATOMIC;
}
/* Initialize lock types for spin pool */
for (int i = 0; i < BLE_LOG_LBM_SPIN_MAX; i++) {
lbm_ctx->spin_pool[i].lock_type = BLE_LOG_LBM_LOCK_SPIN;
}
#if CONFIG_BLE_LOG_LL_ENABLED
for (int i = 0; i < BLE_LOG_LBM_LL_MAX; i++) {
lbm = &(lbm_ctx->lbm_ll_pool[i]);
for (int j = 0; j < BLE_LOG_TRANS_PING_PONG_BUF_CNT; j++) {
if (!ble_log_prph_trans_init(&(lbm->trans[j]),
CONFIG_BLE_LOG_LBM_LL_TRANS_SIZE)) {
goto exit;
}
}
}
/* Initialize lock types for LL pool */
for (int i = 0; i < BLE_LOG_LBM_LL_MAX; i++) {
lbm_ctx->lbm_ll_pool[i].lock_type = BLE_LOG_LBM_LOCK_NONE;
}
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
/* Initialize statistic manager context */
for (int i = 0; i < BLE_LOG_SRC_MAX; i++) {
stat_mgr_ctx[i] = (ble_log_stat_mgr_t *)BLE_LOG_MALLOC(sizeof(ble_log_stat_mgr_t));
if (!stat_mgr_ctx[i]) {
goto exit;
}
BLE_LOG_MEMSET(stat_mgr_ctx[i], 0, sizeof(ble_log_stat_mgr_t));
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
stat_mgr_ctx[i]->enh_stat.int_src_code = BLE_LOG_INT_SRC_ENH_STAT;
stat_mgr_ctx[i]->enh_stat.src_code = i;
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
}
/* Initialization done */
lbm_ref_count = 0;
lbm_inited = true;
lbm_enabled = false;
return true;
exit:
ble_log_lbm_deinit();
return false;
}
void ble_log_lbm_deinit(void)
{
/* Set inited flag to false to prevent new references */
lbm_inited = false;
lbm_enabled = false;
/* Disable module and wait for all references to be released */
uint32_t time_waited = 0;
while (lbm_ref_count > 0) {
vTaskDelay(pdMS_TO_TICKS(1));
BLE_LOG_ASSERT(time_waited++ < 1000);
}
/* Release statistic manager context */
for (int i = 0; i < BLE_LOG_SRC_MAX; i++) {
if (stat_mgr_ctx[i]) {
BLE_LOG_FREE(stat_mgr_ctx[i]);
stat_mgr_ctx[i] = NULL;
}
}
/* Release LBM */
if (lbm_ctx) {
/* Release peripheral transport for common pools */
ble_log_lbm_t *lbm;
for (int i = 0; i < BLE_LOG_LBM_CNT; i++) {
lbm = &(lbm_ctx->lbm_pool[i]);
for (int j = 0; j < BLE_LOG_TRANS_PING_PONG_BUF_CNT; j++) {
ble_log_prph_trans_deinit(&(lbm->trans[j]));
}
}
/* Release LBM context */
BLE_LOG_FREE(lbm_ctx);
lbm_ctx = NULL;
}
}
/* Note:
* The function below should be private, but when UART redirection is required,
* it would be a waste to implement get transport function again, thus
* make it available internally */
BLE_LOG_IRAM_ATTR
ble_log_prph_trans_t **ble_log_lbm_get_trans(ble_log_lbm_t *lbm, size_t log_len)
{
/* Check if available buffer can contain incoming log */
ble_log_prph_trans_t **trans;
for (int i = 0; i < BLE_LOG_TRANS_PING_PONG_BUF_CNT; i++) {
trans = &(lbm->trans[lbm->trans_idx]);
if (!(*trans)->prph_owned) {
/* Return if there's enough free space in current transport */
if (BLE_LOG_TRANS_FREE_SPACE((*trans)) >= (log_len + BLE_LOG_FRAME_OVERHEAD)) {
return trans;
}
/* Queue transport if there's insufficient free space */
if ((*trans)->pos) {
ble_log_rt_queue_trans(trans);
}
}
/* Current transport unavailable, switch to the other */
lbm->trans_idx = !lbm->trans_idx;
}
/* Both ping-pong buffers are unavailable */
return NULL;
}
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
void ble_log_write_enh_stat(void)
{
BLE_LOG_REF_COUNT_ACQUIRE(&lbm_ref_count);
if (!lbm_enabled) {
goto deref;
}
for (int i = 0; i < BLE_LOG_SRC_MAX; i++) {
ble_log_enh_stat_t *enh_stat = &(stat_mgr_ctx[i]->enh_stat);
ble_log_write_hex(BLE_LOG_SRC_INTERNAL, (const uint8_t *)enh_stat, sizeof(ble_log_enh_stat_t));
}
deref:
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
}
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
/* ------------------------ */
/* PUBLIC INTERFACE */
/* ------------------------ */
bool ble_log_enable(bool enable)
{
if (!lbm_inited) {
return false;
}
lbm_enabled = enable;
return true;
}
void ble_log_flush(void)
{
BLE_LOG_REF_COUNT_ACQUIRE(&lbm_ref_count);
if (!lbm_inited) {
goto deref;
}
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
/* Write enhanced statistics before module disable */
ble_log_write_enh_stat();
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
/* Write BLE Log flush log */
ble_log_info_t ble_log_info = {
.int_src_code = BLE_LOG_INT_SRC_FLUSH,
.version = BLE_LOG_VERSION,
};
ble_log_write_hex(BLE_LOG_SRC_INTERNAL, (const uint8_t *)&ble_log_info, sizeof(ble_log_info_t));
/* Disable module and wait for all other references to release */
bool lbm_enabled_copy = lbm_enabled;
lbm_enabled = false;
uint32_t time_waited = 0;
while (lbm_ref_count > 1) {
vTaskDelay(pdMS_TO_TICKS(1));
BLE_LOG_ASSERT(time_waited++ < 1000);
}
/* Queue transports with logs */
ble_log_lbm_t *lbm;
ble_log_prph_trans_t **trans;
/* Flush pools */
for (int i = 0; i < BLE_LOG_LBM_CNT; i++) {
lbm = &(lbm_ctx->lbm_pool[i]);
int trans_idx = lbm->trans_idx;
for (int j = 0; j < BLE_LOG_TRANS_PING_PONG_BUF_CNT; j++) {
trans = &(lbm->trans[trans_idx]);
if (!(*trans)->prph_owned && (*trans)->pos) {
ble_log_rt_queue_trans(trans);
}
trans_idx = !trans_idx;
}
}
/* Wait for transportation to finish */
time_waited = 0;
bool in_progress;
do {
in_progress = false;
for (int i = 0; i < BLE_LOG_LBM_CNT; i++) {
lbm = &(lbm_ctx->lbm_pool[i]);
for (int j = 0; j < BLE_LOG_TRANS_PING_PONG_BUF_CNT; j++) {
trans = &(lbm->trans[j]);
in_progress |= (*trans)->prph_owned;
}
}
if (in_progress) {
vTaskDelay(pdMS_TO_TICKS(1));
BLE_LOG_ASSERT(time_waited++ < 1000);
}
} while (in_progress);
/* Reset statistics manager after all operations complete */
for (int i = 0; i < BLE_LOG_SRC_MAX; i++) {
BLE_LOG_MEMSET(stat_mgr_ctx[i], 0, sizeof(ble_log_stat_mgr_t));
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
/* Reinitialize enhanced statistics fields */
stat_mgr_ctx[i]->enh_stat.int_src_code = BLE_LOG_INT_SRC_ENH_STAT;
stat_mgr_ctx[i]->enh_stat.src_code = i;
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
}
/* Resume enable status */
lbm_enabled = lbm_enabled_copy;
deref:
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
}
bool ble_log_write_hex(ble_log_src_t src_code, const uint8_t *addr, size_t len)
{
BLE_LOG_REF_COUNT_ACQUIRE(&lbm_ref_count);
size_t payload_len = len + sizeof(uint32_t);
if (!lbm_enabled) {
goto exit;
}
/* Get transport */
ble_log_lbm_t *lbm = ble_log_lbm_acquire();
ble_log_prph_trans_t **trans = ble_log_lbm_get_trans(lbm, payload_len);
if (!trans) {
ble_log_lbm_release(lbm);
goto exit;
}
/* Write transport */
uint32_t os_ts = pdTICKS_TO_MS(BLE_LOG_IN_ISR()?
xTaskGetTickCountFromISR():
xTaskGetTickCount());
ble_log_lbm_write_trans(trans, src_code, (const uint8_t *)&os_ts,
sizeof(uint32_t), addr, len);
/* Release */
ble_log_lbm_release(lbm);
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
return true;
exit:
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
if (lbm_inited) {
ble_log_stat_mgr_update(src_code, payload_len, true);
}
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
return false;
}
#if CONFIG_BLE_LOG_LL_ENABLED
BLE_LOG_IRAM_ATTR
void ble_log_write_hex_ll(uint32_t len, const uint8_t *addr,
uint32_t len_append, const uint8_t *addr_append, uint32_t flag)
{
BLE_LOG_REF_COUNT_ACQUIRE(&lbm_ref_count);
size_t payload_len = len + len_append;
/* Source code shall be determined before LBM enable status check */
ble_log_src_t src_code;
bool use_ll_task = false;
if (flag & BIT(BLE_LOG_LL_FLAG_ISR)) {
src_code = BLE_LOG_SRC_LL_ISR;
} else if (flag & BIT(BLE_LOG_LL_FLAG_HCI)) {
src_code = BLE_LOG_SRC_LL_HCI;
} else if (flag & BIT(BLE_LOG_LL_FLAG_HCI_UPSTREAM)) {
src_code = BLE_LOG_SRC_HCI;
} else {
src_code = BLE_LOG_SRC_LL_TASK;
use_ll_task = true;
}
if (!lbm_enabled) {
goto exit;
}
/* Determine LBM by flag */
ble_log_lbm_t *lbm;
if (BLE_LOG_IN_ISR()) {
/* Reuse common LBM acquire logic */
lbm = ble_log_lbm_acquire();
} else {
lbm = (use_ll_task)? &(lbm_ctx->lbm_ll_task): &(lbm_ctx->lbm_ll_hci);
}
/* Get transport */
ble_log_prph_trans_t **trans = ble_log_lbm_get_trans(lbm, payload_len);
if (!trans) {
ble_log_lbm_release(lbm);
goto exit;
}
/* Write transport */
ble_log_lbm_write_trans(trans, src_code, addr, len, addr_append, len_append);
ble_log_lbm_release(lbm);
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
return;
exit:
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
if (lbm_inited) {
ble_log_stat_mgr_update(src_code, payload_len, true);
}
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
return;
}
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
void ble_log_dump_to_console(void)
{
BLE_LOG_REF_COUNT_ACQUIRE(&lbm_ref_count);
if (!lbm_inited) {
goto deref;
}
int trans_idx;
ble_log_lbm_t *lbm;
ble_log_prph_trans_t *trans;
BLE_LOG_ENTER_CRITICAL();
BLE_LOG_CONSOLE("[BLE_LOG_DUMP_START:\n");
for (int i = 0; i < BLE_LOG_LBM_CNT; i++) {
lbm = &(lbm_ctx->lbm_pool[i]);
trans_idx = lbm->trans_idx;
for (int j = 0; j < BLE_LOG_TRANS_PING_PONG_BUF_CNT; j++) {
trans = lbm->trans[trans_idx];
BLE_LOG_FEED_WDT();
for (int k = 0; k < trans->size; k++) {
BLE_LOG_CONSOLE("%02x ", trans->buf[k]);
if (!(k & 0xFF)) {
BLE_LOG_FEED_WDT();
}
}
trans_idx = !trans_idx;
}
}
BLE_LOG_CONSOLE("\n:BLE_LOG_DUMP_END]\n\n");
BLE_LOG_EXIT_CRITICAL();
deref:
BLE_LOG_REF_COUNT_RELEASE(&lbm_ref_count);
return;
}

View File

@@ -0,0 +1,144 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ----------------- */
/* BLE Log - Runtime */
/* ----------------- */
/* INCLUDE */
#include "ble_log.h"
#include "ble_log_rt.h"
#include "ble_log_lbm.h"
/* VARIABLE */
BLE_LOG_STATIC bool rt_inited = false;
BLE_LOG_STATIC TaskHandle_t rt_task_handle = NULL;
BLE_LOG_STATIC QueueHandle_t rt_queue_handle = NULL;
#if CONFIG_BLE_LOG_TS_ENABLED
BLE_LOG_STATIC bool rt_ts_enabled = false;
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
/* PRIVATE FUNCTION */
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC void ble_log_rt_task(void *pvParameters)
{
(void)pvParameters;
ble_log_prph_trans_t *trans = NULL;
uint32_t curr_os_ts = 0;
uint32_t last_hook_os_ts = 0;
#ifndef UNIT_TEST
while (1)
#endif /* !UNIT_TEST */
{
/* CRITICAL:
* Blocking queue receive is mandatory for light sleep support */
if (xQueueReceive(rt_queue_handle, &trans, portMAX_DELAY) == pdTRUE) {
ble_log_prph_send_trans(trans);
}
/* Task hook */
curr_os_ts = pdTICKS_TO_MS(xTaskGetTickCount());
if ((curr_os_ts - last_hook_os_ts) < BLE_LOG_TASK_HOOK_TIMEOUT_MS) {
#ifndef UNIT_TEST
continue;
#else /* UNIT_TEST */
return;
#endif /* !UNIT_TEST */
}
last_hook_os_ts = curr_os_ts;
/* Write BLE Log info log */
ble_log_info_t ble_log_info = {
.int_src_code = BLE_LOG_INT_SRC_INFO,
.version = BLE_LOG_VERSION,
};
ble_log_write_hex(BLE_LOG_SRC_INTERNAL, (const uint8_t *)&ble_log_info, sizeof(ble_log_info_t));
#if CONFIG_BLE_LOG_TS_ENABLED
if (rt_ts_enabled) {
ble_log_ts_info_t *ts_info = NULL;
ble_log_ts_info_update(&ts_info);
ble_log_write_hex(BLE_LOG_SRC_INTERNAL, (const uint8_t *)ts_info, sizeof(ble_log_ts_info_t));
}
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
ble_log_write_enh_stat();
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
}
}
/* INTERFACE */
bool ble_log_rt_init(void)
{
if (rt_inited) {
return true;
}
/* CRITICAL:
* Queue must be initialized before creating task */
rt_queue_handle = xQueueCreate(BLE_LOG_LBM_CNT, sizeof(ble_log_prph_trans_t *));
if (!rt_queue_handle) {
goto exit;
}
/* Initialize task */
if (xTaskCreate(ble_log_rt_task, "ble_log", BLE_LOG_TASK_STACK_SIZE, NULL,
BLE_LOG_TASK_PRIO, &rt_task_handle) != pdTRUE) {
goto exit;
}
rt_inited = true;
#if CONFIG_BLE_LOG_TS_ENABLED
rt_ts_enabled = false;
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
return true;
exit:
ble_log_rt_deinit();
return false;
}
void ble_log_rt_deinit(void)
{
rt_inited = false;
#if CONFIG_BLE_LOG_TS_ENABLED
rt_ts_enabled = false;
#endif /* CONFIG_BLE_LOG_TS_ENABLED */
/* CRITICAL:
* Task must be deinitialized before deinitializing queue */
if (rt_task_handle) {
vTaskDelete(rt_task_handle);
rt_task_handle = NULL;
}
/* Release task queue */
if (rt_queue_handle) {
vQueueDelete(rt_queue_handle);
rt_queue_handle = NULL;
}
}
BLE_LOG_IRAM_ATTR void ble_log_rt_queue_trans(ble_log_prph_trans_t **trans)
{
(*trans)->prph_owned = true;
if (BLE_LOG_IN_ISR()) {
xQueueSendFromISR(rt_queue_handle, trans, NULL);
} else {
xQueueSend(rt_queue_handle, trans, portMAX_DELAY);
}
}
#if CONFIG_BLE_LOG_TS_ENABLED
bool ble_log_sync_enable(bool enable)
{
if (!rt_inited) {
return false;
}
rt_ts_enabled = enable;
return true;
}
#endif /* CONFIG_BLE_LOG_TS_ENABLED */

View File

@@ -0,0 +1,75 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ----------------------------------- */
/* BLE Log - Timestamp Synchronization */
/* ----------------------------------- */
/* INCLUDE */
#include "ble_log_ts.h"
/* VARIABLE */
BLE_LOG_STATIC bool ts_inited = false;
BLE_LOG_STATIC ble_log_ts_info_t *ts_info = NULL;
/* INTERFACE */
bool ble_log_ts_init(void)
{
if (ts_inited) {
return true;
}
/* Initialize toggle IO */
gpio_config_t sync_io_conf = {
.intr_type = GPIO_INTR_DISABLE,
.mode = GPIO_MODE_OUTPUT,
.pin_bit_mask = BIT(CONFIG_BLE_LOG_SYNC_IO_NUM),
};
if (gpio_config(&sync_io_conf) != ESP_OK) {
goto exit;
}
/* Initialize sync data */
ts_info = (ble_log_ts_info_t *)BLE_LOG_MALLOC(sizeof(ble_log_ts_info_t));
if (!ts_info) {
goto exit;
}
BLE_LOG_MEMSET(ts_info, 0, sizeof(ble_log_ts_info_t));
ts_info->int_src_code = BLE_LOG_INT_SRC_TS;
ts_inited = true;
return true;
exit:
ble_log_ts_deinit();
return false;
}
void ble_log_ts_deinit(void)
{
ts_inited = false;
/* Release sync data */
if (ts_info) {
BLE_LOG_FREE(ts_info);
ts_info = NULL;
}
/* Release toggle IO */
gpio_reset_pin(CONFIG_BLE_LOG_SYNC_IO_NUM);
}
void ble_log_ts_info_update(ble_log_ts_info_t **info)
{
BLE_LOG_ENTER_CRITICAL();
ts_info->io_level = !ts_info->io_level;
gpio_set_level(CONFIG_BLE_LOG_SYNC_IO_NUM, ts_info->io_level);
ts_info->lc_ts = BLE_LOG_GET_LC_TS;
ts_info->esp_ts = esp_timer_get_time();
ts_info->os_ts = pdTICKS_TO_MS(xTaskGetTickCountFromISR());
BLE_LOG_EXIT_CRITICAL();
*info = ts_info;
}

View File

@@ -0,0 +1,48 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ----------------- */
/* BLE Log - Utility */
/* ----------------- */
/* INCLUDE */
#include "ble_log_util.h"
/* VARIABLE */
#ifndef UNIT_TEST
portMUX_TYPE ble_log_spin_lock = portMUX_INITIALIZER_UNLOCKED;
#endif /* !UNIT_TEST */
/* INTERNAL INTERFACE */
BLE_LOG_IRAM_ATTR uint32_t ble_log_fast_checksum(const uint8_t *data, size_t len)
{
uint32_t sum = 0;
size_t i = 0;
/* Step 1: Sum up until 4-byte aligned */
while (((uintptr_t)(data + i) & 0x3) && (i < len)) {
sum += data[i++];
}
/* Step 2: Sum up 4-byte aligned blocks */
const uint32_t *p32 = (const uint32_t *)(data + i);
size_t blocks = (len - i) / 4;
for (size_t b = 0; b < blocks; b++) {
uint32_t v = p32[b];
sum += (v & 0xFF)
+ ((v >> 8) & 0xFF)
+ ((v >> 16) & 0xFF)
+ ((v >> 24) & 0xFF);
}
i += blocks * 4;
/* Step 3: Sum up remaining bytes */
while (i < len) {
sum += data[i++];
}
return sum;
}

View File

@@ -0,0 +1,176 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_LBM_H__
#define __BLE_LOG_LBM_H__
/* --------------------------------------- */
/* BLE Log - Log Buffer Management */
/* --------------------------------------- */
/* ---------------- */
/* Includes */
/* ---------------- */
#include "ble_log_prph.h"
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
/* ------------------------- */
/* Log Frame Defines */
/* ------------------------- */
typedef struct {
uint16_t length;
uint32_t frame_meta;
} __attribute__((packed)) ble_log_frame_head_t;
#define BLE_LOG_FRAME_HEAD_LEN (sizeof(ble_log_frame_head_t))
#define BLE_LOG_FRAME_TAIL_LEN (sizeof(uint32_t))
#define BLE_LOG_FRAME_OVERHEAD (BLE_LOG_FRAME_HEAD_LEN + BLE_LOG_FRAME_TAIL_LEN)
#define BLE_LOG_MAKE_FRAME_META(src_code, sn) ((src_code & 0xFF) | (sn << 8))
/* ---------------------------------- */
/* Log Buffer Manager Defines */
/* ---------------------------------- */
typedef enum {
BLE_LOG_LBM_LOCK_NONE,
BLE_LOG_LBM_LOCK_SPIN,
BLE_LOG_LBM_LOCK_ATOMIC,
BLE_LOG_LBM_LOCK_MUTEX,
} ble_log_lbm_lock_t;
typedef struct {
int trans_idx;
ble_log_prph_trans_t *trans[BLE_LOG_TRANS_PING_PONG_BUF_CNT];
ble_log_lbm_lock_t lock_type;
union {
/* BLE_LOG_LBM_LOCK_NONE */
void *none;
/* BLE_LOG_LBM_LOCK_SPIN */
portMUX_TYPE spin_lock;
/* BLE_LOG_LBM_LOCK_ATOMIC */
volatile bool atomic_lock;
/* BLE_LOG_LBM_LOCK_MUTEX */
SemaphoreHandle_t mutex;
};
} ble_log_lbm_t;
/* --------------------------------------- */
/* Log Buffer Manager Pool Defines */
/* --------------------------------------- */
enum {
#if CONFIG_BLE_LOG_LL_ENABLED
BLE_LOG_LBM_LL_TASK,
BLE_LOG_LBM_LL_HCI,
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
BLE_LOG_LBM_LL_MAX,
};
enum {
BLE_LOG_LBM_SPIN_TASK = 0,
BLE_LOG_LBM_SPIN_ISR,
BLE_LOG_LBM_SPIN_MAX,
};
#define BLE_LOG_LBM_ATOMIC_TASK_CNT CONFIG_BLE_LOG_LBM_ATOMIC_LOCK_TASK_CNT
#define BLE_LOG_LBM_ATOMIC_ISR_CNT CONFIG_BLE_LOG_LBM_ATOMIC_LOCK_ISR_CNT
#define BLE_LOG_LBM_ATOMIC_CNT (BLE_LOG_LBM_ATOMIC_TASK_CNT +\
BLE_LOG_LBM_ATOMIC_ISR_CNT)
#define BLE_LOG_LBM_COMMON_CNT (BLE_LOG_LBM_ATOMIC_CNT + BLE_LOG_LBM_SPIN_MAX)
#define BLE_LOG_LBM_CNT (BLE_LOG_LBM_COMMON_CNT + BLE_LOG_LBM_LL_MAX)
#define BLE_LOG_TRANS_CNT (BLE_LOG_LBM_CNT * BLE_LOG_TRANS_PING_PONG_BUF_CNT)
/* ------------------------------------------ */
/* Log Buffer Manager Context Defines */
/* ------------------------------------------ */
typedef struct {
union {
ble_log_lbm_t lbm_pool[BLE_LOG_LBM_CNT];
struct {
union {
ble_log_lbm_t lbm_common_pool[BLE_LOG_LBM_COMMON_CNT];
struct {
union {
ble_log_lbm_t spin_pool[BLE_LOG_LBM_SPIN_MAX];
struct {
ble_log_lbm_t spin_task;
ble_log_lbm_t spin_isr;
};
};
union {
ble_log_lbm_t atomic_pool[BLE_LOG_LBM_ATOMIC_CNT];
struct {
ble_log_lbm_t atomic_pool_task[BLE_LOG_LBM_ATOMIC_TASK_CNT];
ble_log_lbm_t atomic_pool_isr[BLE_LOG_LBM_ATOMIC_ISR_CNT];
};
};
};
};
union {
ble_log_lbm_t lbm_ll_pool[BLE_LOG_LBM_LL_MAX];
#if CONFIG_BLE_LOG_LL_ENABLED
struct {
ble_log_lbm_t lbm_ll_task;
ble_log_lbm_t lbm_ll_hci;
};
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
};
};
};
} ble_log_lbm_ctx_t;
/* ---------------------------------------- */
/* Enhanced Statistics Data Defines */
/* ---------------------------------------- */
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
typedef struct {
uint8_t int_src_code;
uint8_t src_code;
uint32_t written_frame_cnt;
uint32_t lost_frame_cnt;
uint32_t written_bytes_cnt;
uint32_t lost_bytes_cnt;
} __attribute__((packed)) ble_log_enh_stat_t;
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
/* -------------------------------------- */
/* Log Statistics Manager Context */
/* -------------------------------------- */
typedef struct {
uint32_t frame_sn;
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
ble_log_enh_stat_t enh_stat;
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
} ble_log_stat_mgr_t;
#define BLE_LOG_GET_FRAME_SN(VAR) __atomic_fetch_add(VAR, 1, __ATOMIC_RELAXED)
/* -------------------------- */
/* Link Layer Defines */
/* -------------------------- */
#if CONFIG_BLE_LOG_LL_ENABLED
enum {
BLE_LOG_LL_FLAG_CONTINUE = 0,
BLE_LOG_LL_FLAG_END,
BLE_LOG_LL_FLAG_TASK,
BLE_LOG_LL_FLAG_ISR,
BLE_LOG_LL_FLAG_HCI,
BLE_LOG_LL_FLAG_RAW,
BLE_LOG_LL_FLAG_HCI_UPSTREAM,
};
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
/* --------------------------- */
/* Internal Interfaces */
/* --------------------------- */
bool ble_log_lbm_init(void);
void ble_log_lbm_deinit(void);
ble_log_prph_trans_t **ble_log_lbm_get_trans(ble_log_lbm_t *lbm, size_t log_len);
void ble_log_lbm_enable(bool enable);
#if CONFIG_BLE_LOG_ENH_STAT_ENABLED
void ble_log_write_enh_stat(void);
#endif /* CONFIG_BLE_LOG_ENH_STAT_ENABLED */
#endif /* __BLE_LOG_LBM_H__ */

View File

@@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_PRPH_H__
#define __BLE_LOG_PRPH_H__
/* ------------------------------ */
/* BLE Log - Peripheral Interface */
/* ------------------------------ */
/* INCLUDE */
#include "ble_log_util.h"
/* TYPEDEF */
typedef struct {
volatile bool prph_owned;
uint8_t *buf;
uint16_t size;
uint16_t pos;
/* Peripheral implementation specific context */
void *ctx;
} ble_log_prph_trans_t;
#define BLE_LOG_TRANS_FREE_SPACE(trans) (trans->size - trans->pos)
#define BLE_LOG_TRANS_PING_PONG_BUF_CNT (2)
/* INTERFACE */
bool ble_log_prph_init(size_t trans_cnt);
void ble_log_prph_deinit(void);
bool ble_log_prph_trans_init(ble_log_prph_trans_t **trans, size_t trans_size);
void ble_log_prph_trans_deinit(ble_log_prph_trans_t **trans);
void ble_log_prph_send_trans(ble_log_prph_trans_t *trans);
#endif /* __BLE_LOG_PRPH_H__ */

View File

@@ -0,0 +1,32 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_RT_H__
#define __BLE_LOG_RT_H__
/* ----------------- */
/* BLE Log - Runtime */
/* ----------------- */
/* INCLUDE */
#include "ble_log_prph.h"
#include "ble_log_ts.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_task.h"
/* MACRO */
#define BLE_LOG_TASK_PRIO (ESP_TASK_PRIO_MAX - 1)
#define BLE_LOG_TASK_STACK_SIZE (1024)
#define BLE_LOG_TASK_HOOK_TIMEOUT_MS (1000)
/* INTERFACE */
bool ble_log_rt_init();
void ble_log_rt_deinit(void);
void ble_log_rt_queue_trans(ble_log_prph_trans_t **trans);
#endif /* __BLE_LOG_RT_H__ */

View File

@@ -0,0 +1,57 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_TS_H__
#define __BLE_LOG_TS_H__
/* ----------------------------------- */
/* BLE Log - Timestamp Synchronization */
/* ----------------------------------- */
/* INCLUDE */
#include "ble_log_util.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_timer.h"
#include "driver/gpio.h"
/* MACRO */
#if CONFIG_BLE_LOG_LL_ENABLED
/* ESP BLE Controller Gen 2 */
#if defined(CONFIG_IDF_TARGET_ESP32H2) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5) ||\
defined(CONFIG_IDF_TARGET_ESP32C61) || defined(CONFIG_IDF_TARGET_ESP32H21) || defined(CONFIG_IDF_TARGET_ESP32H4)
extern uint32_t r_ble_lll_timer_current_tick_get(void);
#define BLE_LOG_GET_LC_TS r_ble_lll_timer_current_tick_get()
/* ESP BLE Controller Gen 1 */
#elif defined(CONFIG_IDF_TARGET_ESP32C2)
extern uint32_t r_os_cputime_get32(void);
#define BLE_LOG_GET_LC_TS r_os_cputime_get32()
/* Legacy BLE Controller (Wait for support) */
// #elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
// extern uint32_t lld_read_clock_us(void);
// #define BLE_LOG_GET_LC_TS lld_read_clock_us()
#else /* Other targets */
#define BLE_LOG_GET_LC_TS 0
#endif /* BLE targets */
#else /* !CONFIG_BLE_LOG_LL_ENABLED */
#define BLE_LOG_GET_LC_TS 0
#endif /* CONFIG_BLE_LOG_LL_ENABLED */
/* TYPEDEF */
typedef struct {
uint8_t int_src_code;
uint8_t io_level;
uint32_t lc_ts;
uint32_t esp_ts;
uint32_t os_ts;
} __attribute__((packed)) ble_log_ts_info_t;
/* INTERFACE */
bool ble_log_ts_init(void);
void ble_log_ts_deinit(void);
void ble_log_ts_info_update(ble_log_ts_info_t **ts_info);
#endif /* __BLE_LOG_TS_H__ */

View File

@@ -0,0 +1,153 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_UTIL_H__
#define __BLE_LOG_UTIL_H__
/* ----------------- */
/* BLE Log - Utility */
/* ----------------- */
/* INCLUDE */
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
#include "esp_bit_defs.h"
#include "freertos/FreeRTOS.h"
#ifndef UNIT_TEST
#include "esp_heap_caps.h"
#include "esp_rom_uart.h"
#endif /* !UNIT_TEST */
/* MACRO */
/* Unit test */
#ifndef UNIT_TEST
/* Reference counting macros */
#define BLE_LOG_REF_COUNT_ACQUIRE(VAR) __atomic_fetch_add(VAR, 1, __ATOMIC_ACQUIRE)
#define BLE_LOG_REF_COUNT_RELEASE(VAR) __atomic_fetch_sub(VAR, 1, __ATOMIC_RELEASE)
/* Specifier */
#define BLE_LOG_STATIC static
#define BLE_LOG_INLINE inline
/* Section */
#define BLE_LOG_IRAM_ATTR IRAM_ATTR
/* Memory operation */
#define BLE_LOG_MEM_CAP (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT | MALLOC_CAP_DMA)
#define BLE_LOG_MALLOC(size) heap_caps_malloc(size, BLE_LOG_MEM_CAP)
#define BLE_LOG_FREE(ptr) heap_caps_free(ptr)
#define BLE_LOG_MEMCPY(dst, src, len) memcpy(dst, src, len)
#define BLE_LOG_MEMSET(ptr, value, len) memset(ptr, value, len)
/* Critical section wrapper */
extern portMUX_TYPE ble_log_spin_lock;
#define BLE_LOG_ENTER_CRITICAL() portENTER_CRITICAL_SAFE(&ble_log_spin_lock);
#define BLE_LOG_EXIT_CRITICAL() portEXIT_CRITICAL_SAFE(&ble_log_spin_lock);
#define BLE_LOG_ACQUIRE_SPIN_LOCK(spin_lock) portENTER_CRITICAL_SAFE(spin_lock)
#define BLE_LOG_RELEASE_SPIN_LOCK(spin_lock) portEXIT_CRITICAL_SAFE(spin_lock)
#define BLE_LOG_IN_ISR() xPortInIsrContext()
#define BLE_LOG_CONSOLE esp_rom_printf
#define BLE_LOG_ASSERT(expr) assert(expr)
extern void esp_panic_handler_feed_wdts(void);
#define BLE_LOG_FEED_WDT() esp_panic_handler_feed_wdts()
/* INLINE */
BLE_LOG_IRAM_ATTR static inline
bool ble_log_cas_acquire(volatile bool *cas_lock)
{
bool expected = false;
return __atomic_compare_exchange_n(
cas_lock, &expected, true, false, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED
);
}
BLE_LOG_IRAM_ATTR static inline
void ble_log_cas_release(volatile bool *cas_lock)
{
__atomic_store_n(cas_lock, false, __ATOMIC_RELEASE);
}
#else /* UNIT_TEST */
/* Reference counting macros */
#define BLE_LOG_REF_COUNT_ACQUIRE(VAR) (*VAR)++
#define BLE_LOG_REF_COUNT_RELEASE(VAR) (*VAR)--
/* Specifier*/
#define BLE_LOG_STATIC
#define BLE_LOG_INLINE
/* Section */
#define BLE_LOG_IRAM_ATTR
/* Memory operation */
void *mocked_malloc(size_t size);
void mocked_free(void *ptr);
void mocked_memcpy(void *dst, const void *src, size_t len);
void mocked_memset(void *ptr, int value, size_t len);
#define BLE_LOG_MALLOC(size) mocked_malloc(size)
#define BLE_LOG_FREE(ptr) mocked_free(ptr)
#define BLE_LOG_MEMCPY(dst, src, len) mocked_memcpy(dst, src, len)
#define BLE_LOG_MEMSET(ptr, value, len) mocked_memset(ptr, value, len)
/* Critical section wrapper */
void mocked_enter_critical(void);
void mocked_exit_critical(void);
#define BLE_LOG_ENTER_CRITICAL() mocked_enter_critical()
#define BLE_LOG_EXIT_CRITICAL() mocked_exit_critical()
/* FreeRTOS API wrapper */
bool mocked_in_isr(void);
#define BLE_LOG_IN_ISR() mocked_in_isr()
/* Spin lock wrapper */
void mocked_acquire_spin_lock(void *spin_lock);
void mocked_release_spin_lock(void *spin_lock);
#define BLE_LOG_ACQUIRE_SPIN_LOCK(spin_lock) mocked_acquire_spin_lock(spin_lock)
#define BLE_LOG_RELEASE_SPIN_LOCK(spin_lock) mocked_release_spin_lock(spin_lock)
/* Printf wrapper */
void mocked_printf(const char *fmt, ...);
#define BLE_LOG_CONSOLE mocked_printf
/* Assert wrapper */
void mocked_assert(bool expr);
#define BLE_LOG_ASSERT(expr) mocked_assert(expr)
#define BLE_LOG_FEED_WDT()
bool ble_log_cas_acquire(volatile bool *cas_lock);
void ble_log_cas_release(volatile bool *cas_lock);
#endif /* UNIT_TEST */
#define BLE_LOG_VERSION (2)
/* TYPEDEF */
typedef enum {
BLE_LOG_INT_SRC_INIT_DONE,
BLE_LOG_INT_SRC_TS,
BLE_LOG_INT_SRC_ENH_STAT,
BLE_LOG_INT_SRC_INFO,
BLE_LOG_INT_SRC_FLUSH,
BLE_LOG_INT_SRC_MAX,
} ble_log_int_src_t;
typedef struct {
uint8_t int_src_code;
uint8_t version;
} __attribute__((packed)) ble_log_info_t;
/* INTERFACE */
uint32_t ble_log_fast_checksum(const uint8_t *data, size_t len);
#endif /* __BLE_LOG_UTIL_H__ */

View File

@@ -0,0 +1,21 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_PRPH_DUMMY_H__
#define __BLE_LOG_PRPH_DUMMY_H__
/* ----------------------------------------------- */
/* BLE Log - Peripheral-specific Transport - Dummy */
/* ----------------------------------------------- */
/* INCLUDE */
#include "ble_log_prph.h"
/* TYPEDEF */
typedef struct {
uint8_t *trans_buf;
} ble_log_prph_trans_ctx_t;
#endif /* __BLE_LOG_PRPH_DUMMY_H__ */

View File

@@ -0,0 +1,22 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_PRPH_SPI_MASTER_DMA_H__
#define __BLE_LOG_PRPH_SPI_MASTER_DMA_H__
/* ----------------------------------------------- */
/* BLE Log - Peripheral Interface - SPI Master DMA */
/* ----------------------------------------------- */
/* INCLUDE */
#include "ble_log_prph.h"
#include <string.h>
#include "driver/spi_master.h"
/* TYPEDEF */
typedef spi_transaction_t ble_log_prph_trans_ctx_t;
#endif /* __BLE_LOG_PRPH_SPI_MASTER_DMA_H__ */

View File

@@ -0,0 +1,32 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __BLE_LOG_PRPH_UART_DMA_H__
#define __BLE_LOG_PRPH_UART_DMA_H__
/* ----------------------------------------- */
/* BLE Log - Peripheral Interface - UART DMA */
/* ----------------------------------------- */
/* INCLUDE */
#include "ble_log_prph.h"
#include "driver/uart.h"
#include "driver/uhci.h"
/* MACRO */
#if CONFIG_BLE_LOG_PRPH_UART_DMA_PORT == UART_NUM_0
#define BLE_LOG_PRPH_UART_DMA_REDIR (1)
#else
#define BLE_LOG_PRPH_UART_DMA_REDIR (0)
#endif /* CONFIG_BLE_LOG_PRPH_UART_DMA_PORT == UART_NUM_0 */
/* TYPEDEF */
typedef struct {
ble_log_prph_trans_t *trans;
uint8_t trans_buf[0];
} ble_log_prph_trans_ctx_t;
#endif /* __BLE_LOG_PRPH_UART_DMA_H__ */

View File

@@ -0,0 +1,86 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ----------------------------------------------- */
/* BLE Log - Peripheral-specific Transport - Dummy */
/* ----------------------------------------------- */
/* INCLUDE */
#include "ble_log_prph_dummy.h"
/* INTERFACE */
bool ble_log_prph_init(size_t trans_cnt)
{
(void)trans_cnt;
return true;
}
void ble_log_prph_deinit(void)
{
}
bool ble_log_prph_trans_init(ble_log_prph_trans_t **trans, size_t trans_size)
{
/* Validate inputs */
if (!trans || !trans_size) {
return false;
}
/* Initialize peripheral transport data */
*trans = (ble_log_prph_trans_t *)BLE_LOG_MALLOC(sizeof(ble_log_prph_trans_t));
if (!(*trans)) {
goto exit;
}
BLE_LOG_MEMSET(*trans, 0, sizeof(ble_log_prph_trans_t));
(*trans)->size = trans_size;
/* Initialize peripheral-specific transport context */
ble_log_prph_trans_ctx_t *dummy_trans_ctx = (ble_log_prph_trans_ctx_t *)BLE_LOG_MALLOC(sizeof(ble_log_prph_trans_ctx_t));
if (!dummy_trans_ctx) {
goto exit;
}
BLE_LOG_MEMSET(dummy_trans_ctx, 0, sizeof(ble_log_prph_trans_ctx_t));
(*trans)->ctx = (void *)dummy_trans_ctx;
/* Initialize log buffer */
(*trans)->buf = (uint8_t *)BLE_LOG_MALLOC(trans_size);
if (!(*trans)->buf) {
goto exit;
}
BLE_LOG_MEMSET((*trans)->buf, 0, trans_size);
dummy_trans_ctx->trans_buf = (*trans)->buf;
return true;
exit:
ble_log_prph_trans_deinit(trans);
return false;
}
void ble_log_prph_trans_deinit(ble_log_prph_trans_t **trans)
{
/* Validate inputs */
if (!trans || !(*trans)) {
return;
}
/* Release log buffer */
if ((*trans)->buf) {
BLE_LOG_FREE((*trans)->buf);
}
/* Release peripheral-specific transport context */
if ((*trans)->ctx) {
BLE_LOG_FREE((*trans)->ctx);
}
/* Release peripheral transport data */
BLE_LOG_FREE(*trans);
*trans = NULL;
}
void ble_log_prph_send_trans(ble_log_prph_trans_t *trans)
{
(void)trans;
}

View File

@@ -0,0 +1,184 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ----------------------------------------------- */
/* BLE Log - Peripheral Interface - SPI Master DMA */
/* ----------------------------------------------- */
/* INCLUDE */
#include "ble_log_prph_spi_master_dma.h"
#include "esp_timer.h"
/* MACRO */
#define BLE_LOG_SPI_BUS SPI2_HOST
#define BLE_LOG_SPI_MAX_TRANSFER_SIZE (10240)
#define BLE_LOG_SPI_TRANS_ITVL_MIN_US (30)
/* VARIABLE */
BLE_LOG_STATIC bool prph_inited = false;
BLE_LOG_STATIC spi_device_handle_t dev_handle = NULL;
BLE_LOG_STATIC uint32_t last_tx_done_ts = 0;
/* PRIVATE FUNCTION DECLARATION */
BLE_LOG_STATIC void spi_master_dma_tx_done_cb(spi_transaction_t *spi_trans);
BLE_LOG_STATIC void spi_master_dma_pre_tx_cb(spi_transaction_t *spi_trans);
/* PRIVATE FUNCTION */
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC void spi_master_dma_tx_done_cb(spi_transaction_t *spi_trans)
{
/* SPI slave performance issue workaround */
last_tx_done_ts = esp_timer_get_time();
/* Recycle transport */
ble_log_prph_trans_t *trans = (ble_log_prph_trans_t *)(spi_trans->user);
trans->pos = 0;
trans->prph_owned = false;
}
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC void spi_master_dma_pre_tx_cb(spi_transaction_t *spi_trans)
{
/* SPI slave performance issue workaround */
while ((esp_timer_get_time() - last_tx_done_ts) < BLE_LOG_SPI_TRANS_ITVL_MIN_US) {}
}
/* INTERFACE */
bool ble_log_prph_init(size_t trans_cnt)
{
/* Avoid double init */
if (prph_inited) {
return true;
}
/* SPI master initialization */
spi_bus_config_t bus_config = {
.miso_io_num = -1,
.mosi_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM,
.sclk_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM,
.quadwp_io_num = -1,
.quadhd_io_num = -1,
.max_transfer_sz = BLE_LOG_SPI_MAX_TRANSFER_SIZE,
#if CONFIG_SPI_MASTER_ISR_IN_IRAM
.intr_flags = ESP_INTR_FLAG_IRAM
#endif // CONFIG_SPI_MASTER_ISR_IN_IRAM
};
if (spi_bus_initialize(BLE_LOG_SPI_BUS, &bus_config, SPI_DMA_CH_AUTO) != ESP_OK) {
goto exit;
}
spi_device_interface_config_t dev_config = {
.clock_speed_hz = SPI_MASTER_FREQ_20M,
.mode = 0,
.spics_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM,
.queue_size = trans_cnt,
.post_cb = spi_master_dma_tx_done_cb,
.pre_cb = spi_master_dma_pre_tx_cb,
.flags = SPI_DEVICE_NO_RETURN_RESULT
};
if (spi_bus_add_device(BLE_LOG_SPI_BUS, &dev_config, &dev_handle) != ESP_OK) {
goto exit;
}
/* Initialization done */
prph_inited = true;
return true;
exit:
ble_log_prph_deinit();
return false;
}
void ble_log_prph_deinit(void)
{
prph_inited = false;
if (dev_handle) {
/* Drain all queued transactions */
if (spi_device_acquire_bus(dev_handle, portMAX_DELAY) == ESP_OK) {
spi_device_release_bus(dev_handle);
spi_bus_remove_device(dev_handle);
dev_handle = NULL;
}
}
/* Note: We don't care if the bus has been inited or not */
spi_bus_free(BLE_LOG_SPI_BUS);
}
bool ble_log_prph_trans_init(ble_log_prph_trans_t **trans, size_t trans_size)
{
/* Validate inputs */
if (!trans || !trans_size) {
return false;
}
/* Initialize peripheral transport data */
*trans = (ble_log_prph_trans_t *)BLE_LOG_MALLOC(sizeof(ble_log_prph_trans_t));
if (!(*trans)) {
goto exit;
}
BLE_LOG_MEMSET(*trans, 0, sizeof(ble_log_prph_trans_t));
(*trans)->size = trans_size;
/* Initialize peripheral-specific transport context */
ble_log_prph_trans_ctx_t *spi_trans_ctx = (ble_log_prph_trans_ctx_t *)BLE_LOG_MALLOC(sizeof(ble_log_prph_trans_ctx_t));
if (!spi_trans_ctx) {
goto exit;
}
BLE_LOG_MEMSET(spi_trans_ctx, 0, sizeof(ble_log_prph_trans_ctx_t));
spi_trans_ctx->user = (void *)(*trans);
(*trans)->ctx = (void *)spi_trans_ctx;
/* Initialize log buffer */
(*trans)->buf = (uint8_t *)BLE_LOG_MALLOC(trans_size);
if (!(*trans)->buf) {
goto exit;
}
BLE_LOG_MEMSET((*trans)->buf, 0, trans_size);
spi_trans_ctx->tx_buffer = (const void *)(*trans)->buf;
return true;
exit:
ble_log_prph_trans_deinit(trans);
return false;
}
void ble_log_prph_trans_deinit(ble_log_prph_trans_t **trans)
{
/* Validate inputs */
if (!trans || !(*trans)) {
return;
}
/* Release log buffer */
if ((*trans)->buf) {
BLE_LOG_FREE((*trans)->buf);
}
/* Release peripheral-specific transport context */
if ((*trans)->ctx) {
BLE_LOG_FREE((*trans)->ctx);
}
/* Release peripheral transport data */
BLE_LOG_FREE(*trans);
*trans = NULL;
}
/* CRITICAL:
* This function is designed to be called by BLE Log Runtime only,
* function call from any other submodules is not allowed */
BLE_LOG_IRAM_ATTR void ble_log_prph_send_trans(ble_log_prph_trans_t *trans)
{
spi_transaction_t *spi_trans = (spi_transaction_t *)trans->ctx;
/* CRITICAL:
* Bytes to bits length conversion is required for tx, and rxlength must be
* cleared regardless of whether it is used for rx as per SPI master driver */
spi_trans->length = (trans->pos << 3);
spi_trans->rxlength = 0;
if (spi_device_queue_trans(dev_handle, spi_trans, 0) != ESP_OK) {
trans->prph_owned = false;
}
}

View File

@@ -0,0 +1,329 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* ----------------------------------------- */
/* BLE Log - Peripheral Interface - UART DMA */
/* ----------------------------------------- */
/* INCLUDE */
#include "ble_log_prph_uart_dma.h"
#if BLE_LOG_PRPH_UART_DMA_REDIR
#include "ble_log.h"
#include "ble_log_rt.h"
#include "ble_log_lbm.h"
#include "esp_timer.h"
#include "driver/uart.h"
#include "driver/uart_vfs.h"
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
/* MACRO */
#define BLE_LOG_UART_MAX_TRANSFER_SIZE (10240)
#define BLE_LOG_UART_RX_BUF_SIZE (256)
#define BLE_LOG_UART_DMA_BURST_SIZE (32)
#if BLE_LOG_PRPH_UART_DMA_REDIR
#define BLE_LOG_UART_REDIR_BUF_SIZE (512)
#define BLE_LOG_UART_REDIR_FLUSH_TIMEOUT (100)
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
/* VARIABLE */
BLE_LOG_STATIC bool prph_inited = false;
BLE_LOG_STATIC uhci_controller_handle_t dev_handle = NULL;
#if BLE_LOG_PRPH_UART_DMA_REDIR
BLE_LOG_STATIC bool uart_driver_inited = false;
BLE_LOG_STATIC ble_log_lbm_t *redir_lbm = NULL;
BLE_LOG_STATIC uint32_t redir_last_write_ts = 0;
BLE_LOG_STATIC esp_timer_handle_t redir_flush_timer = NULL;
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
/* PRIVATE FUNCTION DECLARATION */
BLE_LOG_STATIC bool uart_dma_tx_done_cb(
uhci_controller_handle_t uhci_ctrl, const uhci_tx_done_event_data_t *edata, void *user_ctx);
/* PRIVATE FUNCTION */
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC bool uart_dma_tx_done_cb(
uhci_controller_handle_t uhci_ctrl, const uhci_tx_done_event_data_t *edata, void *user_ctx)
{
/* Unused arguments */
(void)uhci_ctrl;
(void)user_ctx;
/* Recycle transport */
ble_log_prph_trans_ctx_t *uart_trans_ctx = (ble_log_prph_trans_ctx_t *)(
(uint8_t *)edata->buffer - sizeof(ble_log_prph_trans_ctx_t)
);
ble_log_prph_trans_t *trans = uart_trans_ctx->trans;
trans->pos = 0;
trans->prph_owned = false;
return true;
}
#if BLE_LOG_PRPH_UART_DMA_REDIR
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC void esp_timer_cb_flush_log(void)
{
uint32_t os_ts = pdTICKS_TO_MS(xTaskGetTickCount());
if ((os_ts - redir_last_write_ts) > BLE_LOG_UART_REDIR_FLUSH_TIMEOUT) {
xSemaphoreTake(redir_lbm->mutex, portMAX_DELAY);
int trans_idx = redir_lbm->trans_idx;
for (int i = 0; i < BLE_LOG_TRANS_PING_PONG_BUF_CNT; i++) {
ble_log_prph_trans_t **trans = &(redir_lbm->trans[trans_idx]);
if (!(*trans)->prph_owned && (*trans)->pos) {
ble_log_rt_queue_trans(trans);
}
trans_idx = !trans_idx;
}
xSemaphoreGive(redir_lbm->mutex);
}
}
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
/* INTERFACE */
bool ble_log_prph_init(size_t trans_cnt)
{
/* Avoid double init */
if (prph_inited) {
return true;
}
/* Initialize UART */
uart_config_t uart_config = {
.baud_rate = CONFIG_BLE_LOG_PRPH_UART_DMA_BAUD_RATE,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
};
if ((uart_param_config(CONFIG_BLE_LOG_PRPH_UART_DMA_PORT, &uart_config) != ESP_OK) ||
(uart_set_pin(CONFIG_BLE_LOG_PRPH_UART_DMA_PORT,
CONFIG_BLE_LOG_PRPH_UART_DMA_TX_IO_NUM, -1, -1, -1) != ESP_OK)) {
goto exit;
}
/* Initialize UHCI */
uhci_controller_config_t uhci_config = {
.uart_port = CONFIG_BLE_LOG_PRPH_UART_DMA_PORT,
.tx_trans_queue_depth = trans_cnt,
.max_receive_internal_mem = BLE_LOG_UART_RX_BUF_SIZE,
.max_transmit_size = BLE_LOG_UART_MAX_TRANSFER_SIZE,
.dma_burst_size = BLE_LOG_UART_DMA_BURST_SIZE,
.rx_eof_flags.idle_eof = 1,
};
uhci_event_callbacks_t uhci_cbs = {
.on_tx_trans_done = uart_dma_tx_done_cb,
};
if ((uhci_new_controller(&uhci_config, &dev_handle) != ESP_OK) ||
(uhci_register_event_callbacks(dev_handle, &uhci_cbs, NULL) != ESP_OK)) {
goto exit;
}
/* Redirection is required when utilizing UART port 0 */
#if BLE_LOG_PRPH_UART_DMA_REDIR
/* Initialize a dedicated LBM for redirection */
redir_lbm = (ble_log_lbm_t *)BLE_LOG_MALLOC(sizeof(ble_log_lbm_t));
if (!redir_lbm) {
goto exit;
}
BLE_LOG_MEMSET(redir_lbm, 0, sizeof(ble_log_lbm_t));
/* Transport initialization */
for (int i = 0; i < BLE_LOG_TRANS_PING_PONG_BUF_CNT; i++) {
if (!ble_log_prph_trans_init(&(redir_lbm->trans[i]),
BLE_LOG_UART_REDIR_BUF_SIZE)) {
goto exit;
}
}
/* Mutex initilaization */
redir_lbm->mutex = xSemaphoreCreateMutex();
if (!redir_lbm->mutex) {
goto exit;
}
/* Initialize UART driver for redirection */
if (!uart_is_driver_installed(UART_NUM_0)) {
uart_driver_install(UART_NUM_0, BLE_LOG_UART_RX_BUF_SIZE, 0, 0, NULL, 0);
uart_driver_inited = true;
}
uart_vfs_dev_use_driver(UART_NUM_0);
/* Initialize periodic flush timer */
esp_timer_create_args_t timer_args = {
.callback = (esp_timer_cb_t)esp_timer_cb_flush_log,
.dispatch_method = ESP_TIMER_TASK,
};
if (esp_timer_create(&timer_args, &redir_flush_timer) != ESP_OK) {
goto exit;
}
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
prph_inited = true;
#if BLE_LOG_PRPH_UART_DMA_REDIR
esp_timer_start_periodic(redir_flush_timer, BLE_LOG_UART_REDIR_FLUSH_TIMEOUT);
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
return true;
exit:
ble_log_prph_deinit();
return false;
}
void ble_log_prph_deinit(void)
{
prph_inited = false;
#if BLE_LOG_PRPH_UART_DMA_REDIR
/* Release flush timer */
if (redir_flush_timer) {
esp_timer_stop(redir_flush_timer);
esp_timer_delete(redir_flush_timer);
redir_flush_timer = NULL;
}
/* Delete UART driver if it's installed by current module */
if (uart_driver_inited) {
uart_driver_delete(UART_NUM_0);
}
/* Release redirection LBM */
if (redir_lbm) {
/* Release mutex */
if (redir_lbm->mutex) {
xSemaphoreTake(redir_lbm->mutex, portMAX_DELAY);
xSemaphoreGive(redir_lbm->mutex);
vSemaphoreDelete(redir_lbm->mutex);
}
/* Release transport */
for (int i = 0; i < BLE_LOG_TRANS_PING_PONG_BUF_CNT; i++) {
ble_log_prph_trans_deinit(&(redir_lbm->trans[i]));
}
/* Release LBM */
BLE_LOG_FREE(redir_lbm);
redir_lbm = NULL;
}
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
if (dev_handle) {
uhci_wait_all_tx_transaction_done(dev_handle, portMAX_DELAY);
uhci_del_controller(dev_handle);
dev_handle = NULL;
}
}
bool ble_log_prph_trans_init(ble_log_prph_trans_t **trans, size_t trans_size)
{
/* Validate inputs */
if (!trans || !trans_size) {
return false;
}
/* Initialize peripheral transport data */
*trans = (ble_log_prph_trans_t *)BLE_LOG_MALLOC(sizeof(ble_log_prph_trans_t));
if (!(*trans)) {
goto exit;
}
BLE_LOG_MEMSET(*trans, 0, sizeof(ble_log_prph_trans_t));
(*trans)->size = trans_size;
/* Initialize peripheral-specific transport context */
size_t trans_ctx_size = sizeof(ble_log_prph_trans_ctx_t) + trans_size;
ble_log_prph_trans_ctx_t *uart_trans_ctx = (ble_log_prph_trans_ctx_t *)BLE_LOG_MALLOC(trans_ctx_size);
if (!uart_trans_ctx) {
goto exit;
}
BLE_LOG_MEMSET(uart_trans_ctx, 0, trans_ctx_size);
/* Log buffer linking */
(*trans)->ctx = (void *)uart_trans_ctx;
(*trans)->buf = (uint8_t *)uart_trans_ctx->trans_buf;
uart_trans_ctx->trans = *trans;
return true;
exit:
ble_log_prph_trans_deinit(trans);
return false;
}
void ble_log_prph_trans_deinit(ble_log_prph_trans_t **trans)
{
/* Validate inputs */
if (!trans || !(*trans)) {
return;
}
/* Release peripheral-specific transport context */
if ((*trans)->ctx) {
BLE_LOG_FREE((*trans)->ctx);
}
/* Release peripheral transport data */
BLE_LOG_FREE(*trans);
*trans = NULL;
}
/* CRITICAL:
* This function is designed to be called by BLE Log Runtime only,
* function call from any other submodules is not allowed */
BLE_LOG_IRAM_ATTR void ble_log_prph_send_trans(ble_log_prph_trans_t *trans)
{
if (uhci_transmit(dev_handle, trans->buf, trans->pos) != ESP_OK) {
trans->prph_owned = false;
}
}
/* Redirection is required when utilizing UART port 0 */
#if BLE_LOG_PRPH_UART_DMA_REDIR
BLE_LOG_IRAM_ATTR BLE_LOG_STATIC
void ble_log_redir_uart_tx_chars(const char *src, size_t len)
{
xSemaphoreTake(redir_lbm->mutex, portMAX_DELAY);
ble_log_prph_trans_t **trans = ble_log_lbm_get_trans(redir_lbm, len);
if (trans) {
uint8_t *buf = (*trans)->buf + (*trans)->pos;
BLE_LOG_MEMCPY(buf, src, len);
(*trans)->pos += len;
redir_last_write_ts = pdTICKS_TO_MS(xTaskGetTickCount());
if (BLE_LOG_TRANS_FREE_SPACE((*trans)) <= BLE_LOG_FRAME_OVERHEAD) {
ble_log_rt_queue_trans(trans);
}
}
xSemaphoreGive(redir_lbm->mutex);
}
int __real_uart_tx_chars(uart_port_t uart_num, const char *buffer, uint32_t len);
int __wrap_uart_tx_chars(uart_port_t uart_num, const char *buffer, uint32_t len)
{
if (!prph_inited || (uart_num != UART_NUM_0)) {
return __real_uart_tx_chars(uart_num, buffer, len);
}
ble_log_redir_uart_tx_chars(buffer, len);
return len;
}
int __real_uart_write_bytes(uart_port_t uart_num, const void *src, size_t size);
int __wrap_uart_write_bytes(uart_port_t uart_num, const void *src, size_t size)
{
if (!prph_inited || (uart_num != UART_NUM_0)) {
return __real_uart_write_bytes(uart_num, src, size);
}
ble_log_redir_uart_tx_chars(src, size);
return size;
}
int __real_uart_write_bytes_with_break(uart_port_t uart_num, const void *src, size_t size, int brk_len);
int __wrap_uart_write_bytes_with_break(uart_port_t uart_num, const void *src, size_t size, int brk_len)
{
if (!prph_inited || (uart_num != UART_NUM_0)) {
return __real_uart_write_bytes_with_break(uart_num, src, size, brk_len);
} else {
(void)brk_len;
return __wrap_uart_write_bytes(uart_num, src, size);
}
}
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -16,6 +16,12 @@ void **btc_profile_cb_tab;
void esp_profile_cb_reset(void)
{
#if BTC_DYNAMIC_MEMORY == TRUE
if (btc_profile_cb_tab == NULL) {
return;
}
#endif
int i;
for (i = 0; i < BTC_PID_NUM; i++) {
@@ -25,6 +31,12 @@ void esp_profile_cb_reset(void)
int btc_profile_cb_set(btc_pid_t profile_id, void *cb)
{
#if BTC_DYNAMIC_MEMORY == TRUE
if (btc_profile_cb_tab == NULL) {
return -1;
}
#endif
if (profile_id < 0 || profile_id >= BTC_PID_NUM) {
return -1;
}
@@ -36,6 +48,12 @@ int btc_profile_cb_set(btc_pid_t profile_id, void *cb)
void *btc_profile_cb_get(btc_pid_t profile_id)
{
#if BTC_DYNAMIC_MEMORY == TRUE
if (btc_profile_cb_tab == NULL) {
return NULL;
}
#endif
if (profile_id < 0 || profile_id >= BTC_PID_NUM) {
return NULL;
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,6 +24,8 @@
#include "btc_gattc.h"
#include "btc_gatt_common.h"
#include "btc_gap_ble.h"
#include "btc_iso_ble.h"
#include "btc_ble_cte.h"
#include "btc/btc_dm.h"
#include "bta/bta_gatt_api.h"
#if CLASSIC_BT_INCLUDED
@@ -210,7 +212,7 @@ static const btc_func_t profile_tab[BTC_PID_NUM] = {
[BTC_PID_RPR_CLIENT] = {btc_ble_mesh_rpr_client_call_handler, btc_ble_mesh_rpr_client_cb_handler },
#endif /* CONFIG_BLE_MESH_RPR_CLI */
#if CONFIG_BLE_MESH_RPR_SRV
[BTC_PID_RPR_SERVER] = {NULL, btc_ble_mesh_rpr_server_cb_handler },
[BTC_PID_RPR_SERVER] = {btc_ble_mesh_rpr_server_call_handler, btc_ble_mesh_rpr_server_cb_handler },
#endif /* CONFIG_BLE_MESH_RPR_SRV */
#if CONFIG_BLE_MESH_SAR_CLI
[BTC_PID_SAR_CLIENT] = {btc_ble_mesh_sar_client_call_handler, btc_ble_mesh_sar_client_cb_handler },
@@ -258,6 +260,12 @@ static const btc_func_t profile_tab[BTC_PID_NUM] = {
[BTC_PID_BLE_MESH_BLE_COEX] = {btc_ble_mesh_ble_call_handler, btc_ble_mesh_ble_cb_handler },
#endif /* CONFIG_BLE_MESH_BLE_COEX_SUPPORT */
#endif /* #if CONFIG_BLE_MESH */
#if (BLE_FEAT_ISO_EN == TRUE)
[BTC_PID_ISO_BLE] = {btc_iso_ble_call_handler, btc_iso_ble_cb_handler },
#endif // #if (BLE_FEAT_ISO_EN == TRUE)
#if (BLE_FEAT_CTE_EN == TRUE)
[BTC_PID_BLE_CTE] = {btc_ble_cte_call_handler, btc_ble_cte_cb_handler },
#endif // #if (BLE_FEAT_CTE_EN == TRUE)
};
/*****************************************************************************
@@ -382,7 +390,8 @@ static void btc_deinit_mem(void) {
btc_profile_cb_tab = NULL;
}
#if (BLE_INCLUDED == TRUE)
#if (BLE_42_FEATURE_SUPPORT == TRUE)
#if (BLE_42_ADV_EN == TRUE)
if (gl_bta_adv_data_ptr) {
osi_free(gl_bta_adv_data_ptr);
gl_bta_adv_data_ptr = NULL;
@@ -392,7 +401,8 @@ static void btc_deinit_mem(void) {
osi_free(gl_bta_scan_rsp_data_ptr);
gl_bta_scan_rsp_data_ptr = NULL;
}
#endif ///BLE_INCLUDED == TRUE
#endif // #if (BLE_42_ADV_EN == TRUE)
#endif // BLE_42_FEATURE_SUPPORT
#if GATTS_INCLUDED == TRUE && GATT_DYNAMIC_MEMORY == TRUE
if (btc_creat_tab_env_ptr) {
@@ -444,7 +454,9 @@ static bt_status_t btc_init_mem(void) {
}
memset((void *)btc_profile_cb_tab, 0, sizeof(void *) * BTC_PID_NUM);
#if (BLE_INCLUDED == TRUE)
#if BTC_DYNAMIC_MEMORY == TRUE
#if (BLE_42_FEATURE_SUPPORT == TRUE)
#if (BLE_42_ADV_EN == TRUE)
if ((gl_bta_adv_data_ptr = (tBTA_BLE_ADV_DATA *)osi_malloc(sizeof(tBTA_BLE_ADV_DATA))) == NULL) {
goto error_exit;
}
@@ -454,7 +466,9 @@ static bt_status_t btc_init_mem(void) {
goto error_exit;
}
memset((void *)gl_bta_scan_rsp_data_ptr, 0, sizeof(tBTA_BLE_ADV_DATA));
#endif ///BLE_INCLUDED == TRUE
#endif // #if (BLE_42_ADV_EN == TRUE)
#endif // (BLE_42_FEATURE_SUPPORT == TRUE)
#endif // BTC_DYNAMIC_MEMORY == TRUE
#if GATTS_INCLUDED == TRUE && GATT_DYNAMIC_MEMORY == TRUE
if ((btc_creat_tab_env_ptr = (esp_btc_creat_tab_t *)osi_malloc(sizeof(esp_btc_creat_tab_t))) == NULL) {
@@ -470,10 +484,10 @@ static bt_status_t btc_init_mem(void) {
#endif
#if BTC_HF_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
if ((hf_local_param_ptr = (hf_local_param_t *)osi_malloc(BTC_HF_NUM_CB * sizeof(hf_local_param_t))) == NULL) {
if ((hf_local_param_ptr = (hf_local_param_t *)osi_malloc(sizeof(hf_local_param_t))) == NULL) {
goto error_exit;
}
memset((void *)hf_local_param_ptr, 0, BTC_HF_NUM_CB * sizeof(hf_local_param_t));
memset((void *)hf_local_param_ptr, 0, sizeof(hf_local_param_t));
#endif
#if BTC_HF_CLIENT_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
@@ -516,21 +530,30 @@ bt_status_t btc_init(void)
return BT_STATUS_NOMEM;
}
#endif
#if BTC_GAP_BT_INCLUDED
btc_gap_bt_init();
#endif
#if (BLE_INCLUDED == TRUE)
btc_gap_callback_init();
#if (BLE_FEAT_ISO_EN == TRUE)
btc_iso_callback_init();
#endif // #if (BLE_FEAT_ISO_EN == TRUE)
#if (BLE_FEAT_CTE_EN == TRUE)
btc_cte_callback_init();
#endif // #if (BLE_FEAT_CTE_EN == TRUE)
btc_gap_ble_init();
#endif ///BLE_INCLUDED == TRUE
#if SCAN_QUEUE_CONGEST_CHECK
btc_adv_list_init();
#endif
/* TODO: initial the profile_tab */
return BT_STATUS_SUCCESS;
}
void btc_deinit(void)
{
#if BTC_GAP_BT_INCLUDED
btc_gap_bt_deinit();
#endif
#if BTC_DYNAMIC_MEMORY
btc_deinit_mem();
#endif
@@ -540,18 +563,6 @@ void btc_deinit(void)
#if (BLE_INCLUDED == TRUE)
btc_gap_ble_deinit();
#endif ///BLE_INCLUDED == TRUE
#if SCAN_QUEUE_CONGEST_CHECK
btc_adv_list_deinit();
#endif
}
bool btc_check_queue_is_congest(void)
{
if (osi_thread_queue_wait_size(btc_thread, 0) >= BT_QUEUE_CONGEST_SIZE) {
return true;
}
return false;
}
int get_btc_work_queue_size(void)

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -105,6 +105,12 @@ typedef enum {
BTC_PID_MBT_SERVER,
BTC_PID_BLE_MESH_BLE_COEX,
#endif /* CONFIG_BLE_MESH */
#if (BLE_FEAT_ISO_EN == TRUE)
BTC_PID_ISO_BLE,
#endif // #if (BLE_FEAT_ISO_EN == TRUE)
#if (BLE_FEAT_CTE_EN == TRUE)
BTC_PID_BLE_CTE,
#endif // #if (BLE_FEAT_CTE_EN == TRUE)
BTC_PID_NUM,
} btc_pid_t; //btc profile id
@@ -123,8 +129,8 @@ extern "C" {
/**
* transfer an message to another module in the different task.
* @param msg message
* @param arg paramter
* @param arg_len length of paramter
* @param arg parameter
* @param arg_len length of parameter
* @param copy_func deep copy function
* @param free_func deep free function
* @return BT_STATUS_SUCCESS: success
@@ -134,7 +140,7 @@ bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg
btc_arg_deep_free_t free_func);
/**
* transfer an message to another module in tha same task.
* transfer an message to another module in the same task.
* @param msg message
* @return BT_STATUS_SUCCESS: success
* others: fail
@@ -143,7 +149,6 @@ bt_status_t btc_inter_profile_call(btc_msg_t *msg);
bt_status_t btc_init(void);
void btc_deinit(void);
bool btc_check_queue_is_congest(void);
int get_btc_work_queue_size(void);
/**

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -160,20 +160,31 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
if (p_data->req_data.p_data->write_req.is_prep) {
tBTA_GATT_STATUS status = GATT_SUCCESS;
if (blufi_env.prepare_buf == NULL) {
blufi_env.prepare_buf = osi_malloc(BLUFI_PREPAIR_BUF_MAX_SIZE);
blufi_env.prepare_len = 0;
do {
if (p_data->req_data.p_data->write_req.offset > BLUFI_PREPARE_BUF_MAX_SIZE) {
status = ESP_GATT_INVALID_OFFSET;
break;
}
if ((p_data->req_data.p_data->write_req.offset + p_data->req_data.p_data->write_req.len) > BLUFI_PREPARE_BUF_MAX_SIZE) {
status = ESP_GATT_INVALID_ATTR_LEN;
break;
}
if (blufi_env.prepare_buf == NULL) {
BLUFI_TRACE_ERROR("Blufi prep no mem\n");
status = GATT_NO_RESOURCES;
if (p_data->req_data.p_data->write_req.offset != 0) {
status = GATT_INVALID_OFFSET;
break;
}
blufi_env.prepare_buf = osi_malloc(BLUFI_PREPARE_BUF_MAX_SIZE);
blufi_env.prepare_len = 0;
if (blufi_env.prepare_buf == NULL) {
BLUFI_TRACE_ERROR("Blufi prep no mem\n");
status = GATT_NO_RESOURCES;
break;
}
}
} else {
if (p_data->req_data.p_data->write_req.offset > BLUFI_PREPAIR_BUF_MAX_SIZE) {
status = GATT_INVALID_OFFSET;
} else if ((p_data->req_data.p_data->write_req.offset + p_data->req_data.p_data->write_req.len) > BLUFI_PREPAIR_BUF_MAX_SIZE) {
status = GATT_INVALID_ATTR_LEN;
}
}
} while (0);
memset(&rsp, 0, sizeof(tGATTS_RSP));
rsp.attr_value.handle = p_data->req_data.p_data->write_req.handle;
@@ -370,7 +381,15 @@ void esp_blufi_deinit(void)
void esp_blufi_adv_start(void)
{
esp_ble_gap_set_device_name(BLUFI_DEVICE_NAME);
esp_ble_gap_config_adv_data(&blufi_adv_data);
}
void esp_blufi_adv_start_with_name(const char *name)
{
if (name != NULL) {
esp_ble_gap_set_device_name(name);
}
esp_ble_gap_config_adv_data(&blufi_adv_data);
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -95,7 +95,29 @@ void btc_blufi_report_error(esp_blufi_error_state_t state)
void btc_blufi_recv_handler(uint8_t *data, int len)
{
if (len < sizeof(struct blufi_hdr)) {
BTC_TRACE_ERROR("%s invalid data length: %d", __func__, len);
btc_blufi_report_error(ESP_BLUFI_DATA_FORMAT_ERROR);
return;
}
struct blufi_hdr *hdr = (struct blufi_hdr *)data;
// Verify if the received data length matches the expected length based on the BLUFI protocol
int target_data_len;
if (BLUFI_FC_IS_CHECK(hdr->fc)) {
target_data_len = hdr->data_len + 4 + 2; // Data + (Type + Frame Control + Sequence Number + Data Length) + Checksum
} else {
target_data_len = hdr->data_len + 4; // Data + (Type + Frame Control + Sequence Number + Data Length)
}
if (len != target_data_len) {
BTC_TRACE_ERROR("%s: Invalid data length: %d, expected: %d", __func__, len, target_data_len);
btc_blufi_report_error(ESP_BLUFI_DATA_FORMAT_ERROR);
return;
}
uint16_t checksum, checksum_pkt;
int ret;

View File

@@ -36,7 +36,9 @@ typedef struct {
UINT32 trans_id;
UINT8 congest;
UINT16 frag_size;
// Deprecated: This macro will be removed in the future
#define BLUFI_PREPAIR_BUF_MAX_SIZE 1024
#define BLUFI_PREPARE_BUF_MAX_SIZE 1024
uint8_t *prepare_buf;
int prepare_len;
/* Control reference */

View File

@@ -44,6 +44,7 @@ void esp_blufi_gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *a
/* Initialise gatt server */
int esp_blufi_gatt_svr_init(void);
int esp_blufi_gatt_svr_deinit(void);
void esp_blufi_btc_init(void);
void esp_blufi_btc_deinit(void);
#endif
@@ -84,6 +85,9 @@ void esp_blufi_adv_stop(void);
/* Start advertisement */
void esp_blufi_adv_start(void);
/* Start advertisement with specified name. if the name is NULL just start advertisement */
void esp_blufi_adv_start_with_name(const char *name);
void esp_blufi_send_encap(void *arg);
#ifdef CONFIG_BT_NIMBLE_ENABLED

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -240,6 +240,32 @@ static void init_gatt_values(void)
}
static void deinit_gatt_values(void)
{
int i = 0;
const struct ble_gatt_svc_def *svc;
const struct ble_gatt_chr_def *chr;
const struct ble_gatt_dsc_def *dsc;
for (svc = gatt_svr_svcs; svc && svc->uuid; svc++) {
for (chr = svc->characteristics; chr && chr->uuid; chr++) {
if (i < SERVER_MAX_VALUES && gatt_values[i].buf != NULL) {
os_mbuf_free(gatt_values[i].buf); /* Free the buffer */
gatt_values[i].buf = NULL; /* Nullify the pointer to avoid dangling references */
}
++i;
for (dsc = chr->descriptors; dsc && dsc->uuid; dsc++) {
if (i < SERVER_MAX_VALUES && gatt_values[i].buf != NULL) {
os_mbuf_free(gatt_values[i].buf); /* Free the buffer */
gatt_values[i].buf = NULL; /* Nullify the pointer to avoid dangling references */
}
++i;
}
}
}
}
int esp_blufi_gatt_svr_init(void)
{
int rc;
@@ -260,7 +286,19 @@ int esp_blufi_gatt_svr_init(void)
return 0;
}
static int
int esp_blufi_gatt_svr_deinit(void)
{
deinit_gatt_values();
ble_gatts_free_svcs();
/* Deinitialize BLE GATT and GAP services */
ble_svc_gatt_deinit();
ble_svc_gap_deinit();
return 0;
}
int
esp_blufi_gap_event(struct ble_gap_event *event, void *arg)
{
struct ble_gap_conn_desc desc;
@@ -293,7 +331,7 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg)
}
if (event->connect.status != 0) {
/* Connection failed; resume advertising. */
esp_blufi_adv_start();
((void(*)(void))arg)();
}
return 0;
case BLE_GAP_EVENT_DISCONNECT:
@@ -328,7 +366,7 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg)
case BLE_GAP_EVENT_ADV_COMPLETE:
ESP_LOGI(TAG, "advertise complete; reason=%d",
event->adv_complete.reason);
esp_blufi_adv_start();
((void(*)(void))arg)();
return 0;
case BLE_GAP_EVENT_SUBSCRIBE:
@@ -423,13 +461,22 @@ void esp_blufi_adv_start(void)
adv_params.conn_mode = BLE_GAP_CONN_MODE_UND;
adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN;
rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER,
&adv_params, esp_blufi_gap_event, NULL);
&adv_params, esp_blufi_gap_event, esp_blufi_adv_start);
if (rc != 0) {
ESP_LOGE(TAG, "error enabling advertisement; rc=%d", rc);
return;
}
}
void esp_blufi_adv_start_with_name(const char *name)
{
if (name != NULL) {
ble_svc_gap_device_name_set(name);
}
esp_blufi_adv_start();
}
uint8_t esp_blufi_init(void)
{
blufi_env.enabled = true;
@@ -473,7 +520,10 @@ void esp_blufi_disconnect(void)
ble_gap_terminate(blufi_env.conn_id, BLE_ERR_REM_USER_CONN_TERM);
}
void esp_blufi_adv_stop(void) {}
void esp_blufi_adv_stop(void)
{
ble_gap_adv_stop();
}
void esp_blufi_send_encap(void *arg)
{

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -10,6 +10,7 @@
#include "bt_common.h"
#include "osi/mutex.h"
#include "esp_attr.h"
#include "esp_timer.h"
#if (BT_HCI_LOG_INCLUDED == TRUE)
#define BT_HCI_LOG_PRINT_TAG (1)
@@ -124,6 +125,11 @@ static char IRAM_ATTR *bt_data_type_to_str(uint8_t data_type)
// self-defining data
tag = "S";
break;
case HCI_LOG_DATA_TYPE_ISO_DATA:
// 5.2 iso data
tag = "I";
break;
break;
default:
// unknown data type
tag = "U";
@@ -203,6 +209,8 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st
{
osi_mutex_t mutex_lock;
uint8_t *g_hci_log_buffer;
int64_t ts;
uint8_t *temp_buf;
if (!p_hci_log_ctl->p_hci_log_buffer) {
return ESP_FAIL;
@@ -214,6 +222,16 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st
return ESP_FAIL;
}
ts = esp_timer_get_time();
temp_buf = (uint8_t *)malloc(data_len + 8);
memset(temp_buf, 0x0, data_len + 8);
memcpy(temp_buf, &ts, 8);
memcpy(temp_buf + 8, data, data_len);
data_len += 8;
mutex_lock = p_hci_log_ctl->mutex_lock;
osi_mutex_lock(&mutex_lock, OSI_MUTEX_MAX_TIMEOUT);
@@ -245,7 +263,7 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st
bt_hci_log_record_string(p_hci_log_ctl, str);
}
bt_hci_log_record_hex(p_hci_log_ctl, data, data_len);
bt_hci_log_record_hex(p_hci_log_ctl, temp_buf, data_len);
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = '\n';
@@ -261,6 +279,8 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st
osi_mutex_unlock(&mutex_lock);
free(temp_buf);
return ESP_OK;
}

View File

@@ -21,6 +21,7 @@ extern "C" {
#define HCI_LOG_DATA_TYPE_ADV (5)
#define HCI_LOG_DATA_TYPE_SELF_DEFINE (6)
#define HCI_LOG_DATA_TYPE_C2H_ACL (7)
#define HCI_LOG_DATA_TYPE_ISO_DATA (8)
/**
*

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -84,6 +84,20 @@
#define BT_HCI_LOG_INCLUDED FALSE
#endif
// HCI LOG TO SPI
#if UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
#define BT_BLE_LOG_SPI_OUT_HCI_ENABLED UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
#else
#define BT_BLE_LOG_SPI_OUT_HCI_ENABLED FALSE
#endif
// BLURDROID LOG TO SPI
#if UC_BT_BLE_LOG_SPI_OUT_HOST_ENABLED
#define BT_BLE_LOG_SPI_OUT_HOST_ENABLED UC_BT_BLE_LOG_SPI_OUT_HOST_ENABLED
#else
#define BT_BLE_LOG_SPI_OUT_HOST_ENABLED FALSE
#endif
#if UC_BT_HCI_LOG_DATA_BUFFER_SIZE
#define HCI_LOG_DATA_BUFFER_SIZE UC_BT_HCI_LOG_DATA_BUFFER_SIZE
#else

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -126,6 +126,20 @@
#define UC_BT_HCI_LOG_DEBUG_EN FALSE
#endif
//HCI LOG TO SPI
#ifdef CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
#define UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED TRUE
#else
#define UC_BT_BLE_LOG_SPI_OUT_HCI_ENABLED FALSE
#endif
//BLUEDROID LOG TO SPI
#ifdef CONFIG_BT_BLE_LOG_SPI_OUT_HOST_ENABLED
#define UC_BT_BLE_LOG_SPI_OUT_HOST_ENABLED TRUE
#else
#define UC_BT_BLE_LOG_SPI_OUT_HOST_ENABLED FALSE
#endif
#ifdef CONFIG_BT_HCI_LOG_DATA_BUFFER_SIZE
#define UC_BT_HCI_LOG_DATA_BUFFER_SIZE CONFIG_BT_HCI_LOG_DATA_BUFFER_SIZE
#else

View File

@@ -241,5 +241,8 @@ void *osi_calloc_func(size_t size)
void osi_free_func(void *ptr)
{
#if HEAP_MEMORY_DEBUG
osi_mem_dbg_clean(ptr, __func__, __LINE__);
#endif
free(ptr);
}

View File

@@ -29,6 +29,15 @@ void *osi_malloc_func(size_t size);
void *osi_calloc_func(size_t size);
void osi_free_func(void *ptr);
// Memory alloc function without print and assertion
#if HEAP_ALLOCATION_FROM_SPIRAM_FIRST
#define osi_malloc_base(size) heap_caps_malloc_prefer(size, 2, MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL)
#define osi_calloc_base(size) heap_caps_calloc_prefer(1, size, 2, MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL)
#else
#define osi_malloc_base(size) malloc((size))
#define osi_calloc_base(size) calloc(1, (size))
#endif /* #if HEAP_ALLOCATION_FROM_SPIRAM_FIRST */
#if HEAP_MEMORY_DEBUG
void osi_mem_dbg_init(void);
@@ -41,13 +50,10 @@ void osi_men_dbg_set_section_start(uint8_t index);
void osi_men_dbg_set_section_end(uint8_t index);
uint32_t osi_mem_dbg_get_max_size_section(uint8_t index);
#if HEAP_ALLOCATION_FROM_SPIRAM_FIRST
#define osi_malloc(size) \
({ \
void *p; \
p = heap_caps_malloc_prefer(size, 2, \
MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, \
MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL); \
p = osi_malloc_base(size); \
osi_mem_dbg_record(p, size, __func__, __LINE__); \
(void *)p; \
})
@@ -55,34 +61,11 @@ uint32_t osi_mem_dbg_get_max_size_section(uint8_t index);
#define osi_calloc(size) \
({ \
void *p; \
p = heap_caps_calloc_prefer(1, size, 2, \
MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, \
MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL); \
p = osi_calloc_base(size); \
osi_mem_dbg_record(p, size, __func__, __LINE__); \
(void *)p; \
})
#else
#define osi_malloc(size) \
({ \
void *p; \
p = malloc((size)); \
osi_mem_dbg_record(p, size, __func__, __LINE__); \
(void *)p; \
})
#define osi_calloc(size) \
({ \
void *p; \
p = calloc(1, (size)); \
osi_mem_dbg_record(p, size, __func__, __LINE__); \
(void *)p; \
})
#endif /* #if HEAP_ALLOCATION_FROM_SPIRAM_FIRST */
#if 0
#define osi_malloc(size) \
do { \
@@ -122,15 +105,6 @@ do { \
#else
// Memory alloc function without print and assertion
#if HEAP_ALLOCATION_FROM_SPIRAM_FIRST
#define osi_malloc_base(size) heap_caps_malloc_prefer(size, 2, MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL)
#define osi_calloc_base(size) heap_caps_calloc_prefer(1, size, 2, MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL)
#else
#define osi_malloc_base(size) malloc((size))
#define osi_calloc_base(size) calloc(1, (size))
#endif /* #if HEAP_ALLOCATION_FROM_SPIRAM_FIRST */
// Memory alloc function with print and assertion when fails
#define osi_malloc(size) osi_malloc_func((size))
#define osi_calloc(size) osi_calloc_func((size))

View File

@@ -76,4 +76,8 @@ void fixed_pkt_queue_unregister_dequeue(fixed_pkt_queue_t *queue);
void fixed_pkt_queue_process(fixed_pkt_queue_t *queue);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -25,6 +25,7 @@ struct pkt_queue *pkt_queue_create(void)
}
if (osi_mutex_new(&queue->lock) != 0) {
osi_free(queue);
return NULL;
}
struct pkt_queue_header *p = &queue->header;
STAILQ_INIT(p);

View File

@@ -1,4 +1,8 @@
/* aes.h - TinyCrypt interface to an AES-128 implementation */
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* Copyright (C) 2017 by Intel Corporation, All Rights Reserved.

Some files were not shown because too many files have changed in this diff Show More