Compare commits

...

1541 Commits

Author SHA1 Message Date
3b8741b172 change(version): Update version to 5.2.2 2024-05-31 21:48:23 +05:50
9cf323d4c6 Merge branch 'bugfix/add_deprecated_warning_for_wpa3_ext_v5.2' into 'release/v5.2'
fix(wifi): Add back `WIFI_AUTH_WPA3_EXT_PSK` and `WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE` for v5.x (Backport v5.2)

See merge request espressif/esp-idf!31177
2024-05-31 17:46:43 +08:00
f47a4796e5 fix(wifi): Add back WIFI_AUTH_WPA3_EXT_PSK and WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE
Add back above authmodes instead of merging them with WIFI_AUTH_WPA3_PSK in minor releases
during v5.x.

These authmodes will be removed from v6.0
2024-05-30 18:09:42 +05:30
8cd37950c7 Merge branch 'fix/fix_softap_send_mgmt_err_when_eapol_v5.2' into 'release/v5.2'
fix(wifi): fix softap send mgmt err when eapol process backport for v5.2

See merge request espressif/esp-idf!31101
2024-05-28 15:21:40 +08:00
ee1c907d21 fix(wifi): fix softap send mgmt err when eapol process 2024-05-27 20:08:25 +08:00
9f4f8e24f2 Merge branch 'fix/freertos_scheduler_suspend_crit_v5.2' into 'release/v5.2'
fix(freertos/idf): Add missing critical sections to vTaskSuspendAll() (v5.2)

See merge request espressif/esp-idf!30923
2024-05-24 21:20:22 +08:00
5ff245f7f9 Merge branch 'bugfix/esp32c6eco1_coex_ble_deinit_wifi_bcn_timeout_v5.2' into 'release/v5.2'
backport v5.2: fix the issue where deinit ble in a coexist scenario causes the wifi mac tsf counter to stop

See merge request espressif/esp-idf!30982
2024-05-23 13:32:41 +08:00
541632c555 fix(wifi): fix the issue where deinit ble in a coexist scenario causes the wifi mac tsf counter to stop 2024-05-21 16:48:48 +08:00
89c22c63e6 refactor(freertos/idf): Add critical section requirements to function description
This commit adds a note regarding the critical section calling requires of some
internal functions.
2024-05-18 01:22:03 +08:00
7c38b262fb fix(freertos/idf): Add missing critical sections to vTaskSuspendAll()
vTaskSuspendAll() requires critical sections when building for SMP. Otherwise,
it is possible for a task to switch cores in between getting the core ID and
before incremented uxSchedulerSuspended.
2024-05-18 01:22:03 +08:00
70fc0e3037 Merge branch 'fix/some_fix_for_openthread_backport_5_2' into 'release/v5.2'
Fix/some fix for openthread (backport v5.2)

See merge request espressif/esp-idf!30796
2024-05-13 22:13:32 +08:00
3b15317109 Merge branch 'bugfix/ftm_fix_wrong_compensation_v5.2' into 'release/v5.2'
Fix issue in selecting FTM compensation with external AP (Backport v5.2)

See merge request espressif/esp-idf!30761
2024-05-13 21:28:45 +08:00
300aa4d08c fix(esp_wifi): Fix issue in selecting FTM compensation with external AP 2024-05-13 18:01:36 +05:30
8742f242eb Merge branch 'bugfix/fix_mesh_packet_tx_issue_v5.2' into 'release/v5.2'
fix(wifi): fix the tx issue when mesh packet lifetime remain equal to zero(v5.2)

See merge request espressif/esp-idf!30790
2024-05-13 15:46:28 +08:00
zwx
2fc047d61d feat(openthread): remove the range for some configurations 2024-05-13 15:18:34 +08:00
zwx
3e81bd22c3 feat(openthread): move iperf dependency into cli extension 2024-05-13 15:18:27 +08:00
62e909183b Merge branch 'doc/update_bt_sleep_process_v5.2' into 'release/v5.2'
docs: Update the process of Bluetooth entering sleep in the sleep_modes.rst(v5.2)

See merge request espressif/esp-idf!30730
2024-05-13 14:29:15 +08:00
5570cd2a97 fix(wifi): fix the tx issue when mesh packet lifetime remain equal to zero 2024-05-13 10:42:39 +08:00
cc5101f1eb Merge branch 'optimize/bt_make_alarm_num_configurable_v5.2' into 'release/v5.2'
optimize(ble_mesh): Make alarm number configurable (v5.2)

See merge request espressif/esp-idf!30507
2024-05-13 10:24:41 +08:00
408294ab15 Merge branch 'bugfix/fix_ble_coex_assert_v5.2' into 'release/v5.2'
Update esp32 bt-lib (4012cfb)(backport v5.2)

See merge request espressif/esp-idf!30520
2024-05-13 10:22:31 +08:00
2374ec54c4 Merge branch 'docs/sync_up_cn_trans_5.2' into 'release/v5.2'
docs:update the CN version of size.rst in release v5.2

See merge request espressif/esp-idf!30404
2024-05-13 10:19:44 +08:00
84706fe4bb Merge branch 'bugfix/gcmp_mr_regression_v5.2' into 'release/v5.2'
fix(wifi): Fix issue of wrong Rx control information of espnow packets for esp32 and esp32s2 (Backport v5.2)

See merge request espressif/esp-idf!30735
2024-05-13 10:18:02 +08:00
2a9108ff1b Merge branch 'bugfix/remove_ble_func_discard_declaration_v5.2' into 'release/v5.2'
fix(ble/bluedroid): Remove BLE functions discard declaration (backport v5.2)

See merge request espressif/esp-idf!30390
2024-05-10 19:21:01 +08:00
c535addbfa fix(wifi): Fix issue of wrong Rx control information of espnow packets
Only for esp32 and esp32s2
2024-05-09 16:28:33 +05:30
f8319f08cc Merge branch 'fix/reduce-binary-size_v5.2' into 'release/v5.2'
Reduce binary size (v5.2)

See merge request espressif/esp-idf!30656
2024-05-09 15:41:59 +08:00
83a73e994d Merge branch 'fix/fix_some_esp32c6_wifi_bugs_v5.2' into 'release/v5.2'
fix(wifi): fix some esp32c6 wifi bugs (Backport v5.2)

See merge request espressif/esp-idf!30704
2024-05-09 13:53:39 +08:00
55ea18dc9d Merge branch 'bugfix/libphy_chips_20240430_v5.2' into 'release/v5.2'
update c3 s3 c6 libphy fix coex reset and bug

See merge request espressif/esp-idf!30726
2024-05-09 11:57:21 +08:00
7fa676a2d6 fix(wifi): fix some esp32c6 wifi bugs (Backport v5.2) 2024-05-09 11:04:48 +08:00
f92665a637 docs: Update the process of Bluetooth entering sleep in the sleep_modes.rst 2024-05-09 11:03:47 +08:00
0b633e8516 Merge branch 'bugfix/update_ftm_calibration_v5.2' into 'release/v5.2'
feat(esp_wifi): Update FTM PHY Compensation with calibration

See merge request espressif/esp-idf!30724
2024-05-09 10:32:05 +08:00
4254e38bb4 update c3 s3 c6 libphy fix coex reset and bug 2024-05-08 21:12:23 +08:00
f1c0fe8614 feat(esp_wifi): Update FTM PHY Compensation with calibration 2024-05-08 18:05:49 +05:30
1fa8d232ea Merge branch 'bugfix/wpa_wpa2_wpa3_mixed_mode_v5.2' into 'release/v5.2'
fix(wifi): Fix issue in scan when AP advertises WPA and WPA2 with SAE AKM (Backport v5.2)

See merge request espressif/esp-idf!30702
2024-05-08 20:14:26 +08:00
0cb30ed881 Merge branch 'bugfix/fix_scan_get_ap_number_issue_v5.2' into 'release/v5.2'
fix(wifi): fixed scan get ap number issue(Backport v5.2)

See merge request espressif/esp-idf!30706
2024-05-08 19:44:14 +08:00
29a04ba3d7 Merge branch 'fix/increase_26mhz_esp32c2_slow_clock_calibration_wdt_threshold_v5.2' into 'release/v5.2'
fix(esp_system): increase 26Mhz esp32c2 slow clock calibration timeout watchdog threshold (v5.2)

See merge request espressif/esp-idf!30574
2024-05-08 19:30:46 +08:00
637fa8abcc fix(wifi): fixed scan get ap number issue 2024-05-08 19:24:36 +08:00
e460ec8d33 fix(wifi): Fix issue in scan when AP advertises WPA and WPA2 with SAE AKM 2024-05-08 16:16:08 +05:30
af26dc76c8 Merge branch 'feature/update_mbedtls_to_3.6.0_v5.2' into 'release/v5.2'
feat(mbedtls): updated mbedtls version from 3.5.2 to 3.6.0 (v5.2)

See merge request espressif/esp-idf!30669
2024-05-08 12:12:49 +08:00
4c7562dd4d Merge branch 'fix/esp_tls_use_64_bit_variable_for_time_v5.2' into 'release/v5.2'
fix(esp-tls): Use 64 bit variable for time instead of 32 bit (v5.2)

See merge request espressif/esp-idf!30624
2024-05-08 10:54:16 +08:00
dcf6b54e94 fix(cxx): use __cxa_throw() stub in case exceptions disabled
Reduces binary size since the linker will drop some code due to --gc-sections.
2024-05-07 21:03:08 +04:00
1f3f65b40e fix(system): discard eh_frame sections if disabled in sdkconfig 2024-05-07 21:03:04 +04:00
ee934f7147 fix(esp-tls): Use 64 bit variable for time instead of 32 bit
Use appropriate API available on respective platform for obtaining
    time
    Closes https://github.com/espressif/esp-idf/issues/13593
2024-05-07 21:11:57 +05:30
258bb60c38 Merge branch 'bugfix/nvs_enc_test_v5.2' into 'release/v5.2'
fix(tests): correct the flash write length for NVS encrypted test (v5.2)

See merge request espressif/esp-idf!30603
2024-05-07 17:00:52 +08:00
5d5113c5f9 feat(mbedtls): updated mbedtls version from 3.5.2 to 3.6.0
This MR updated MbedTLS version to latest version 3.6.0.
2024-05-07 14:16:37 +05:30
3bc4d11dbb fix(tests): correct the flash write length for NVS encrypted test
Write only till the embedded file size in the NVS partition. Earlier
the length was kept as the whole partition size and it could result
in accessing embedded rodata beyond the MMU mapped range.
2024-05-02 19:19:50 +08:00
771761a576 fix(tests): remove unused partition NVS bin file 2024-05-02 19:19:50 +08:00
b1dfff4010 feat(ble_mesh): Make alarm number configurable 2024-04-30 16:07:26 +08:00
4dda86b352 fix(nt/bluedroid): Split the device name set functions
feat(bt/bluedroid): added APIs to get/set device name on BT GAP side

change(bt/bluedroid): use BT GAP APIs to set/get device name in bluetooth classic examples

change(bt/bluedroid): use BT/BLE GAP APIs to set/get device name in coexist examples
2024-04-30 12:02:56 +08:00
7e97c5fb16 fix(ble/bluedroid): Remove esp_bluedroid_init() discard declaration 2024-04-30 12:02:45 +08:00
a3c20bde5d fix(esp_system): increase 26Mhz esp32c2 slow clock calibration timeout watchdog threshold 2024-04-30 11:48:03 +08:00
ffbf04ab2d docs:update the CN version of size.rst in release v5.2 2024-04-29 15:25:16 +08:00
e6414b69f5 feat(ble/bluedroid): Support BLE command status debug log 2024-04-26 17:14:07 +08:00
3213978b45 fix(ble/controller): Update esp32 bt-lib (4012cfb)
- Fixed BLE coex assert
- Fixed BLE DTM status and tx count
2024-04-26 16:51:37 +08:00
9b3ae86417 Merge branch 'bugfix/fix_gpio_etm_multi_task_v5.2' into 'release/v5.2'
fix(gpio_etm): allow one GPIO binds to multiple ETM tasks (v5.2)

See merge request espressif/esp-idf!30456
2024-04-25 16:31:22 +08:00
eb7c381761 Merge branch 'fix/vTaskList_backports_v5.2' into 'release/v5.2'
FreeRTOS: vTaskList backports to v5.2

See merge request espressif/esp-idf!30478
2024-04-25 14:45:20 +08:00
d82d7039fc Merge branch 'contrib/github_pr_13560_v5.2' into 'release/v5.2'
esp_eth: DP83848: correct link detection to use BMSR (GitHub PR) (v5.2)

See merge request espressif/esp-idf!30451
2024-04-25 11:20:37 +08:00
3d56f1b1b9 Merge branch 'feature/update-gdb-to-14.2_20240403_v5.2' into 'release/v5.2'
feat(tools): update gdb version to 14.2_20240403 (v5.2)

See merge request espressif/esp-idf!30437
2024-04-25 11:19:51 +08:00
dc3e9531c0 Merge branch 'bugfix/bt_bss_in_extram_v5.2' into 'release/v5.2'
fix(bt): Fix missing linker symbol when ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY enabled(backport v5.2)

See merge request espressif/esp-idf!30378
2024-04-25 10:45:54 +08:00
4cf7387e14 Merge branch 'fix/uart_wakeup_threshold_v5.2' into 'release/v5.2'
fix(uart): Fix mismatch wakeup rising edges required with the threshold configured (v5.2)

See merge request espressif/esp-idf!30462
2024-04-25 10:36:42 +08:00
bc4c826ff1 Merge branch 'bugfix/uart_bitrate_max_value_c2_v5.2' into 'release/v5.2'
fix(uart): correct C2 UART_BITRATE_MAX value (v5.2)

See merge request espressif/esp-idf!30459
2024-04-25 10:36:36 +08:00
8374791fd4 Merge branch 'bugfix/gpio_drive_cap_v5.2' into 'release/v5.2'
fix(gpio): add workaround to ensure correct IO drive strength for C3 and S3 (v5.2)

See merge request espressif/esp-idf!30466
2024-04-25 10:36:31 +08:00
78b6d515bb Merge branch 'bugfix/i2c_timeout_issue_v5.2' into 'release/v5.2'
fix(i2c): fix issues related to timeout and alive interval tick (backport v5.2)

See merge request espressif/esp-idf!29979
2024-04-24 23:48:32 +08:00
27e8db2ae9 fix(freertos): Fix vTaskList() parameter print order
xCoreID was previously printed as the last parameter priority to IDF v5.1, but
was changed to the third paramtere from v5.2 onwards. This commit restores the
correct ordering.

Closes https://github.com/espressif/esp-idf/issues/13675
2024-04-24 17:56:59 +08:00
70fc931dd2 fix(freertos): display tasks with no affinity as -1 during tracing
Closes https://github.com/espressif/esp-idf/issues/12858
2024-04-24 17:51:11 +08:00
4d7f9c5d88 change(bt): Add a test for release bt .bss and .data memory to heap
1. use nimble host, initialize and then deinitialize bt stack in the test
2. support tests for different SoC targets and multiple configuration options
2024-04-24 17:24:02 +08:00
c136089f4e change(bt): Modify test_app directory layout
- Existing test app is put in a new subdirectory "basic_unit_test"
2024-04-24 17:24:02 +08:00
bb6cf16177 change(bt): Rename linker script file names and symbol names
1. rename linker files
2. support memory release in case that ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY is enabled
3. improve the implementation of memory release
2024-04-24 17:24:02 +08:00
a06844d9b1 fix(bt): Fix missing linker symbol when ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY enabled
1. Closes https://github.com/espressif/esp-idf/issues/10427
2. add two linker script to unify linker script symbols for BT libraries
3. The memory release functions have also been simplified
2024-04-24 17:24:02 +08:00
5ec51688a6 Merge branch 'fix/fix_some_esp32c6_twt_bugs_v5.2' into 'release/v5.2'
fix(wifi): fix some esp32c6 twt bugs (Backport v5.2)

See merge request espressif/esp-idf!30401
2024-04-24 17:23:05 +08:00
64984b7b71 fix(gpio): add workaround to ensure correct IO drive strength for C3 and S3 2024-04-24 16:58:06 +08:00
15962a953a fix(uart): Fix mismatch wakeup rising edges required with the threshold configured
Closes https://github.com/espressif/esp-idf/issues/12586
2024-04-24 16:25:54 +08:00
1ed2f223fb fix(uart): correct C2 UART_BITRATE_MAX value 2024-04-24 16:19:41 +08:00
373e585bb7 fix(gpio_etm): allow one GPIO binds to multiple ETM tasks 2024-04-24 16:01:34 +08:00
52702cf886 fix(esp_eth): dp83848: correct link detection to use BMSR
Reading the link state via PHYSTS was incorrect, as it only reflects the
link state bit from BMSR.  BMSR latches link down events, and are not
cleared without being read.  (See 802.3-2008 section 2, section 22.2.4.2.13)
This leads to the original DP828xx code only supporting link up, then a
single link down event.

Switch to reading the link state via BMSR, but continuing to read the
negotiation results via PHYSTS and ANLPAR.  This is inline with
LAN8720x, RTL8201, KSZ80xx phy drivers, and other opensource drivers for
the DP838xx family of devices.

Tested on a private board with a DP83825i PHY.  No publically available
boards using the original DP83848 are known of for testing.

Signed-off-by: Karl Palsson <karl.palsson@marel.com>
2024-04-24 09:48:18 +02:00
5fa34283c0 Merge branch 'feat/optimzie_ble_ctrl_memory_v5.2' into 'release/v5.2'
ble: support only legacy adv and slave function on esp32c2 (v5.2)

See merge request espressif/esp-idf!30334
2024-04-24 14:18:19 +08:00
9897fd9c87 fix(wifi): fix some esp32c6 wifi bugs (Backport v5.2) 2024-04-24 14:15:04 +08:00
8b4177f148 Merge branch 'bugfix/mgmt_gcmp_issue_v5.2' into 'release/v5.2'
fix(wifi): Fix GCMP encryption for mgmt packets and other bugfixes (Backport v5.2)

See merge request espressif/esp-idf!30439
2024-04-24 11:06:54 +08:00
zwl
275eab4f5d ble: update sdkconfig.defaults.esp32c6 file for blufi example 2024-04-24 10:50:40 +08:00
zwl
05521c918d ble: update sdkconfig.defaults.esp32c2 file for blufi example 2024-04-24 10:50:40 +08:00
zwl
e99f45b4c6 ble: optimize bt cmakelists.txt file 2024-04-24 10:50:40 +08:00
zwl
a64a528cb8 ble: support only legacy adv and slave function on esp32c2 2024-04-24 10:50:40 +08:00
66c164b90b Merge branch 'backport/openthread_mtd_joiner_config_52' into 'release/v5.2'
fix(openthread): backport some openthread features(backportv5.2)

See merge request espressif/esp-idf!30419
2024-04-24 10:40:17 +08:00
d4e32532df Merge branch 'bugfix/optimize_hidh_connection_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix HID Host connection bugs[backport 5.2]

See merge request espressif/esp-idf!30425
2024-04-24 10:23:45 +08:00
5aad8507cb Merge branch 'bugfix/add_workaround_for_ble_rtc_hw_issue_backport_v5.2' into 'release/v5.2'
fix(ble): add workaround for ble RTC not enabled issue (v5.2)

See merge request espressif/esp-idf!30132
2024-04-24 10:16:49 +08:00
1c09bc1675 Merge branch 'bugfix/hf_local_param_null_v5.2' into 'release/v5.2'
fix(bt/bluedroid): allocate memory for control block of HFP Audio Gateway (v5.2)

See merge request espressif/esp-idf!30440
2024-04-24 10:15:47 +08:00
89dbe5f6dc fix(bt/bluedroid): allocate memory for control block of HFP Audio Gateway in its initialization when dynamic memory is wnabled 2024-04-24 08:25:24 +08:00
5ce43f68f3 fix(esp_wifi): Correct action frame type in send_mgmt_frame API 2024-04-24 01:52:35 +05:30
3ba5cb9687 fix(wifi): Add bugfix to avoid RSNXE and KDE mismatch during 4-way-handshake 2024-04-24 01:48:16 +05:30
280ec09b03 fix(wifi): Fix encryption/decryption issue for mgmt packets
* Fix issues related to mgmt packets encryption in GCMP
* Fix issue of wrong decryption of mgmt packets when PMF is enabled
* Fix softAP bug in handling of SAE Reauthentication
2024-04-24 01:48:06 +05:30
d2e5b33e2c feat(tools): update gdb version to 14.2_20240403 2024-04-23 22:32:39 +04:00
98b744c85b fix(bt/bluedroid): Fix HID Host connection bugs
1. Fix is_orig value inconsistency for HIDH open event
2. Fix the error state for repeat connection of the same device
2024-04-23 21:04:50 +08:00
ca79a7d878 bugfix(ble): workaround to avoid ble rtc not work when power up 2024-04-23 20:55:13 +08:00
d4a361bb71 feat(openthread): support openthread ephemeral key 2024-04-23 20:26:56 +08:00
d574cea5e5 fix(openthread): Fix openthread mtd joiner config
* Fix openthread-core-esp32x-mtd-config.h: OPENTHREAD_CONFIG_JOINER_ENABLE macro value

* On ESP32 MTD devices Joiner role functionality was not working even if 'Joiner enable' was checked in SDK config because 0 was defined in OPENTHREAD_CONFIG_JOINER_ENABLE macro. Value modified to 1 to resolve the issue. Tested and working on ESP32 H2 MTD device.

* Closes: https://github.com/espressif/esp-idf/pull/13473
2024-04-23 20:22:35 +08:00
2ba5320112 Merge branch 'bugfix/rpa_timeout_api_v5.2' into 'release/v5.2'
fix(nimble): Expose API to set RPA Timeout (v5.2)

See merge request espressif/esp-idf!30408
2024-04-23 20:08:21 +08:00
85e5f0e546 Merge branch 'bugfix/directed_bssid_probe_req_v52' into 'release/v5.2'
Send unicast probe requests if bssid is known during scan(v5.2)

See merge request espressif/esp-idf!30297
2024-04-23 17:14:48 +08:00
f0e5c92516 Merge branch 'fix/exit_asyncio_gracefully_v5.2' into 'release/v5.2'
fix: exit gracefully when process started via asyncio is terminated (v5.2)

See merge request espressif/esp-idf!30383
2024-04-23 14:46:02 +08:00
28157cf1e2 fix(nimble): Expose API to set RPA Timeout 2024-04-23 11:24:10 +05:30
0a13c60466 fix(esp_wifi): Send unicast probe requests if bssid is known during scan 2024-04-23 11:18:24 +05:30
1b9597f961 Merge branch 'fix/make_eventfd_case_exit_normally_5_2' into 'release/v5.2'
fix(vfs): make case eventfd_select_block exit normally

See merge request espressif/esp-idf!29928
2024-04-23 10:07:18 +08:00
fd36f6fcac fix(ci): fix wrong path of ot sleep case 2024-04-22 20:24:05 +08:00
cea24c7137 feat(openthread): add max csmabackoffs for transmission 2024-04-22 20:24:05 +08:00
c3398f3373 fix(vfs): make case eventfd_select_block exit normally 2024-04-22 20:24:05 +08:00
85315941e3 Merge branch 'fix/ieee802154_include_header_issue_v5.2' into 'release/v5.2'
Fix/ieee802154 include header issue (backport v5.2)

See merge request espressif/esp-idf!30332
2024-04-22 20:03:10 +08:00
9e9aeb64be fix(ieee802154): fix ieee802154 include header file issue and unused value issue 2024-04-22 19:15:48 +08:00
b89f08a615 fix(ieee802154): fix ieee802154 next operation acquire lock in interrupt 2024-04-22 19:15:48 +08:00
470d5406ec Merge branch 'feat/sleep_retention_depends_power_state_management_v5.2' into 'release/v5.2'
backport v5.2: sleep retention multiple modules initialization and dependency management

See merge request espressif/esp-idf!30344
2024-04-22 19:14:10 +08:00
4bc2985aa3 fix: exit gracefully when process started via asyncio is terminated
Currently when process is started through asyncio Runner and it is termited
e.g. with SIGINT(ctrl+c) a traceback is printed instead of gracefully
exit.

Exception ignored in: <function BaseSubprocessTransport.__del__ at 0x7fe980970900>
Traceback (most recent call last):
  File "/usr/lib64/python3.12/asyncio/base_subprocess.py", line 129, in __del__
    self.close()
  File "/usr/lib64/python3.12/asyncio/base_subprocess.py", line 107, in close
    proto.pipe.close()
  File "/usr/lib64/python3.12/asyncio/unix_events.py", line 568, in close
    self._close(None)
  File "/usr/lib64/python3.12/asyncio/unix_events.py", line 592, in _close
    self._loop.call_soon(self._call_connection_lost, exc)
  File "/usr/lib64/python3.12/asyncio/base_events.py", line 793, in call_soon
    self._check_closed()
  File "/usr/lib64/python3.12/asyncio/base_events.py", line 540, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

This is caused because asyncio Runner context in asyncio.run is closing the event
loop and if exception is unhandled in coroutine(run_command) the transport is not
closed before the even loop is closed and we get RuntimeError: Event loop is closed
in the transport __del__ function because it's trying to use the closed
even loop.

Let's catch asyncio.CancelledError in case the process we are trying to
read from is terminated, print message, let the asyncio finish and exit
gracefully.

Closes https://github.com/espressif/esp-idf/issues/13418

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-04-22 11:25:51 +02:00
b0eef7f889 Merge branch 'bugfix/crash_after_bluedroid_deinit_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fixed controller using null pointer after bluedroid deinit(v5.2)

See merge request espressif/esp-idf!30327
2024-04-22 15:25:59 +08:00
f20186fe02 fix: modify some typos to ensure CI pipeline run pass 2024-04-22 12:49:34 +08:00
4066844908 fix(example): fixed app partition is too small for binary size 2024-04-22 12:49:34 +08:00
ea3094a9a6 change(ieee802154): add sleep deinit API 2024-04-22 12:49:34 +08:00
71d37432da change(esp_hw_support): use power down peripheral in light sleep option to determine TOP to off 2024-04-22 12:49:34 +08:00
8f9090b351 change(esp_hw_support): add adc retention module and it is dependencies on the clock modem 2024-04-22 12:49:34 +08:00
0e28063291 change(esp_hw_support): dump sleep retention context to io stream 2024-04-22 12:49:34 +08:00
376b2f74ed change(ieee802154): use new sleep retention api to implement ieee802154 mac retention 2024-04-22 12:49:33 +08:00
9f52809629 change(bt): use new retention api to implement BT mac and bb retention 2024-04-22 12:49:33 +08:00
9c8b54b886 change(esp_hw_support): use new retention api to implement gdma retention 2024-04-22 12:49:33 +08:00
4faf042c21 change(wifi): use new retention api to implement wifi mac and bb retention 2024-04-22 12:49:31 +08:00
9a51752d4d change(esp_hw_support): modify system and modem clock to support modem domain power down 2024-04-19 14:08:15 +08:00
e7d6748aec change(esp_hw_support): some system peripherals to use a retention module number 2024-04-18 19:26:30 +08:00
a2cbe3f0a3 feat(esp_hw_support): implement of sleep retention module initialize and dependency management 2024-04-18 19:26:30 +08:00
f66e3f031d change(esp_hw_support): modify the style of module argument from bitmap to number 2024-04-18 19:26:28 +08:00
9efa26a23f Merge branch 'feature/disable_pmk_caching_v5.2' into 'release/v5.2'
feat(esp_wifi): Provide API to disable PMK caching (v5.2)

See merge request espressif/esp-idf!30289
2024-04-18 16:58:19 +08:00
3b9d5e120e Merge branch 'doc/update_espnow_example_v5.2' into 'release/v5.2'
docs(wifi): change the magic varible from int to uint32_t on the receiving side (v5.2)

See merge request espressif/esp-idf!30307
2024-04-18 14:47:19 +08:00
aaf3f4a7c3 Merge branch 'contrib/github_pr_13022_v5.2' into 'release/v5.2'
fix(freertos): Fix broken portable macro portTRY_ENTER_CRITICAL_SAFE() (v5.2)

See merge request espressif/esp-idf!30314
2024-04-18 11:56:33 +08:00
082c713069 Merge branch 'fix/incorrect_connection_closure_parttool_test_v5.2' into 'release/v5.2'
ci(otatool): fix test failure caused due to closing connection incorrectly (v5.2)

See merge request espressif/esp-idf!30291
2024-04-18 11:55:17 +08:00
f5c8cc2bef change(esp_hw_support): rename interface name of get modules bitmap to get created modules 2024-04-18 11:41:17 +08:00
fd47ea34bb change(esp_hw_support): rename sleep retention module to created module 2024-04-18 11:32:04 +08:00
b19e27dd48 Merge branch 'bugfix/fixed_coex_asset_on_esp32c2_v5.2' into 'release/v5.2'
Bugfix/fixed coex asset on esp32c2 v5.2

See merge request espressif/esp-idf!30302
2024-04-18 10:54:20 +08:00
22fbaf65fd Merge branch 'bugfix/fixed_some_wifi_bugs_240417_v5.2' into 'release/v5.2'
fix(wifi): fixed some wifi issues 240417(Backport v5.2)

See merge request espressif/esp-idf!30315
2024-04-18 10:46:24 +08:00
e362358ea3 Merge branch 'bugfix/fix_ble_appearance_v5.2' into 'release/v5.2'
Fixed BLE appearance category ranges (v5.2)

See merge request espressif/esp-idf!30285
2024-04-18 10:44:18 +08:00
47d542acaa fix(bt/bluedroid): Fixed crash after bluedroid deinit
hci_host_env.downstream_data_ready is set to NULL during bluedroid deinit,
causing the controller to use a null pointer when calling callback.
2024-04-18 10:27:45 +08:00
ea967cf2fb Merge branch 'docs/external_flash_5.2' into 'release/v5.2'
docs(idf_py): Describe the option to configure esptool.py with --extra-args (backport to v5.2)

See merge request espressif/esp-idf!30323
2024-04-18 01:17:43 +08:00
c079772799 fix(ble/bluedroid): Fixed set BLE appearance value 2024-04-17 20:41:14 +08:00
b6b04bbeff docs(idf_py): Describe the option to configure esptool.py with --extra-args 2024-04-17 14:38:44 +02:00
568b693493 Merge branch 'bugfix/ble_mesh_fsm_list_init_v5.2' into 'release/v5.2'
bugfix/ble_mesh_fsm_list_init (v5.2)

See merge request espressif/esp-idf!30282
2024-04-17 20:10:01 +08:00
806b14dd22 Merge branch 'update_mqtt_v5.2' into 'release/v5.2'
Update Mqtt client (v5.2)

See merge request espressif/esp-idf!30273
2024-04-17 20:08:23 +08:00
a07bce4fcc fix(wifi): fixed lmacEndFrameExchangeSequence assert issue 2024-04-17 19:16:55 +08:00
0e34a993d0 fix(wifi): fixed some wifi issue
1. sync multi antenna gpio register from IDF
2. fixed multicast address qos frames issue
3. fixed task watchdog got triggered by esp_wifi_stop issue
2024-04-17 19:16:24 +08:00
458ce7d4cf fix(wifi): fix multicast address qos frames issue 2024-04-17 19:15:46 +08:00
6bcf47386d fix(freertos): Fix broken portable macro portTRY_ENTER_CRITICAL_SAFE()
This commit fixes a bug where the portTRY_ENTER_CRITICAL_SAFE() for the
Xtensa and RISC-V FreeRTOS ports were broken as it did not correctly use
the timeout parameter.

Merges: https://github.com/espressif/esp-idf/pull/13022
2024-04-17 12:26:50 +02:00
228f92211b Merge branch 'feat/set_get_lpclk_src_v5.2' into 'release/v5.2'
feat(ble): Added API to get low power clock source(v5.2)

See merge request espressif/esp-idf!30107
2024-04-17 18:01:47 +08:00
61210271a8 Merge branch 'bugfix/improve_lp_uart_test_docs' into 'release/v5.2'
refactor(uart): add support to be able to test LP_UART port (v5.2)

See merge request espressif/esp-idf!30175
2024-04-17 17:46:48 +08:00
830464eee7 docs(wifi): update the docmentation for sniffer API
Closes https://github.com/espressif/esp-idf/issues/10740
2024-04-17 16:17:00 +08:00
83f272ca4f docs(wifi): change the magic varible from int to uint32_t on the receiving side
Closes https://github.com/espressif/esp-idf/issues/10912
2024-04-17 16:16:49 +08:00
01902148da Merge branch 'fix/removed_termination_upon_sign_write_fail_v5.2' into 'release/v5.2'
fix(nimble): Removed Code for Termination Upon Signed Write Operation Failure (v5.2)

See merge request espressif/esp-idf!30276
2024-04-17 16:08:26 +08:00
dcc7a41ad8 fix(i2c): fix issues related to timeout and alive interval tick
Fixes https://github.com/espressif/esp-idf/issues/4999

Former usage of I2C_CMD_ALIVE_INTERVAL_TICK macro overrode the ticks_to_wait
parameter when the latter was too big
2024-04-17 15:52:56 +08:00
zwl
73f6ca8ebf ble: fixed an occasional assertion issue in coexistence scenarios on ESP32C2 2024-04-17 14:59:31 +08:00
zwl
cc213b7c61 ble: fixed the bt cmakelist error when use nimble host only 2024-04-17 14:59:21 +08:00
42f244ae61 ci(otatool): fix test failure caused due to closing connection incorrectly 2024-04-17 10:13:35 +05:30
f9feb970b9 feat(esp_wifi): Provide API to disable PMK caching 2024-04-17 09:40:22 +05:30
9bd8d5f860 fix(ble_mesh): rpr server and df bug fixed(10f7fdc1a9) 2024-04-17 11:09:54 +08:00
b60280e2cf Merge branch 'bugfix/dm9051_phy_axs_wait_v5.2' into 'release/v5.2'
fix(esp_eth): made access to PHY registers for DM9051 more robust (v5.2)

See merge request espressif/esp-idf!30279
2024-04-17 10:41:16 +08:00
8c52152369 Merge branch 'bugfix/fix_some_ble_bugs_cjh_v5.2' into 'release/v5.2'
Fixed some BT and BLE bugs 2404 (backport v5.2)

See merge request espressif/esp-idf!30258
2024-04-17 10:37:38 +08:00
f3ec76b75b Merge branch 'doc/auto_suspend_disabled_by_default_v5.2' into 'release/v5.2'
doc(flash): fix auto suspend enabled by default issue (v5.2)

See merge request espressif/esp-idf!30253
2024-04-17 10:03:56 +08:00
5c53238853 fix(esp_eth): made access to PHY registers for DM9051 more robust 2024-04-16 16:13:17 +02:00
a255e67a84 doc(flash): fix auto suspend enabled by default issue 2024-04-16 20:49:31 +08:00
234ad8cd1e fix(nimble): Removed code for termination upon signed write operation failure 2024-04-16 17:54:51 +05:30
3ba9de778e change(mqtt): Update esp-mqtt submodule
git log --oneline e6afdb4025fe018ae0add44e3c45249ea1974774..aa6f889fb4f6f743b3a550aa587713aabbdca1fc

Detailed description of the changes:
* fix: regard reason codes greater than 0x80 as failures.
  - See merge request espressif/esp-mqtt!205
  - See commit https://github.com/espressif/esp-mqtt/commit/e7b9aa5
* PR: Return on allocation failure
  - See merge request espressif/esp-mqtt!204
  - set last_retransmit to now when first connected (espressif/esp-mqtt@c06f154)
  - add return to faile_message, avoid segment fault (espressif/esp-mqtt@37478a9)
* Minor warning of unused variable
  - See merge request espressif/esp-mqtt!203
  - fix: Minor warning of unused variable (espressif/esp-mqtt@726e5f2)
* Cover the case for SOC without MAC address
  - See merge request espressif/esp-mqtt!202
  - fix: Cover the case for SOC without MAC address (espressif/esp-mqtt@5e3abd4)
* Make state and size atomic
  - See merge request espressif/esp-mqtt!199
  - feat: Make state and size atomic (espressif/esp-mqtt@891380b)
* fix: Adjust the log level on few messages to avoid cluthering the logs
  - See merge request espressif/esp-mqtt!201
  - See commit https://github.com/espressif/esp-mqtt/commit/5c17fc4
* fix: Make automatic client_id soc dependent
  - See merge request espressif/esp-mqtt!200
  - See commit https://github.com/espressif/esp-mqtt/commit/657a2ae
* Clarify data that users need to take care of lifetime.
  - See merge request espressif/esp-mqtt!197
  - docs: Clarify data that users need to take care of lifetime. (espressif/esp-mqtt@371f594)
* Update mqtt_client.h
  - See merge request espressif/esp-mqtt!198
  - add const char * to esp_mqtt_client_subscribe() generic macros (espressif/esp-mqtt@acdb66d)
* client: Report failure on timeout in mid-message timeout (GitHub PR)
  - See merge request espressif/esp-mqtt!165
  - Merges https://github.com/espressif/esp-mqtt/pull/232
  - client: Report failure on timeout in mid-message timeout (espressif/esp-mqtt@ddde502)
* fix: Move buffer initialization to set config
  - See merge request espressif/esp-mqtt!194
  - Closes https://github.com/espressif/esp-mqtt/issues/267
  - See commit https://github.com/espressif/esp-mqtt/commit/ea0df31
* Fix check for message creation when processing publish
  - See merge request espressif/esp-mqtt!195
  - fix: Deliver publish verifies if message was created only for QoS >0
        (espressif/esp-mqtt@6780056)
2024-04-16 13:43:47 +02:00
40d398199f Merge branch 'feature/add_api_to_send_vendor_hci_cmd_v5.2' into 'release/v5.2'
feat(bt/bluedroid): add api to send vendor hci command (backport v5.2)

See merge request espressif/esp-idf!30127
2024-04-16 17:48:20 +08:00
a7d981dc5e Merge branch 'fix/gcov_fault_v5.2' into 'release/v5.2'
fix(gcov): fix exceptions on gcov task_tick_hook (v5.2)

See merge request espressif/esp-idf!30025
2024-04-16 15:47:07 +08:00
222a254e49 Merge branch 'support/esp_sleep_enable_ext1_wakeup_io_v5.2' into 'release/v5.2'
Support/esp sleep enable ext1 wakeup io(backport v5.2)

See merge request espressif/esp-idf!30243
2024-04-16 15:28:53 +08:00
57de44f45b feat(bt): Update bt lib for ESP32-C3 and ESP32-S3(c23ab4c)
- Support QA test vendor HCI command and event
2024-04-16 11:33:19 +08:00
41aa38ddf7 fix(ble/controller): Fixed LoadProhibited after bluetooth deinit 2024-04-16 11:33:11 +08:00
b69a5fe27c fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(5274796)
- Fixed extended uncoded and coded scan scheduling
- Add config for channel assessment and ping procedure
- Clear random address for extended advertising
- Add periodic advertising list check
- Fixed periodic advertising data setting with zero length
2024-04-16 11:33:05 +08:00
ee47bebfad feat(ble/controller): Add coexist schm for BLE 2024-04-16 11:32:54 +08:00
1265a44c17 feat(bt): Update bt lib for ESP32(e314148)
- Support QA test vendor HCI command and event
2024-04-16 11:32:35 +08:00
51f7ddc223 fix(bt/controller): Update bt lib for ESP32(5838b68)
- Fixed BLE scan assert
 - Fixed assert(10,0) in lld_pdu
 - Add BLE scan backoff in menuconfig
2024-04-16 11:32:22 +08:00
2377b40784 fix(bt/controller): Use embedded assembly to get access to DPORT registers 2024-04-16 11:32:09 +08:00
01d5030d5e Merge branch 'fix/fix_ot_br_partition_table_5_2' into 'release/v5.2'
fix(openthread): increase factory app size in ot_br partition table (backport to 5.2)

See merge request espressif/esp-idf!30248
2024-04-16 10:47:03 +08:00
a24ebb4538 Merge branch 'feature/ot_support_mc_iperf_52' into 'release/v5.2'
feat(openthread): support managed component iperf(backport 5.2)

See merge request espressif/esp-idf!30245
2024-04-16 10:39:00 +08:00
62e9dfe13c Merge branch 'fix/missing-block-owner-in-heap-init-alloc_v5.2' into 'release/v5.2'
fix(heap): Add block owner to allocs in heap_caps_init() (backport v5.2)

See merge request espressif/esp-idf!30215
2024-04-16 10:19:23 +08:00
28a6a0cc33 fix(openthread): increase factory app size in ot_br partition table 2024-04-15 20:54:56 +08:00
zwx
80409743f1 feat(openthread): support managed component iperf 2024-04-15 20:28:13 +08:00
063ea6f1ef docs(pm): add description for ext1 2024-04-15 20:17:06 +08:00
640ce31dae change(pm): add ext1 new api 2024-04-15 20:16:49 +08:00
1df5f07eee docs(uart): update lp uart uart programming guide 2024-04-15 19:39:38 +08:00
c55a07bf57 refactor(uart): add support to be able to test LP_UART port
Increase LP_UART_EMPTY_THRESH_DEFAULT value to 4. The original value
could cause the FIFO become empty before filling next data into the FIFO
when the buadrate is high. TX_DONE interrupt would raise before actual
transmission complete in such case.
2024-04-15 19:39:30 +08:00
408a16b21a Merge branch 'fix/usb_uvc_psram' into 'release/v5.2'
fix(usb/uvc): Add PSRAM private requires

See merge request espressif/esp-idf!30223
2024-04-15 15:18:35 +08:00
8096a16765 Merge branch 'bugfix/spp_crash_after_deint_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fixed SPP crash due to the connection not being disconnected before esp_spp_deinit was called(v5.2)

See merge request espressif/esp-idf!30082
2024-04-15 11:39:01 +08:00
8352be2027 Merge branch 'fix/add_phy_private_dslp_callback_v5.2' into 'release/v5.2'
fix(esp_hw_support): move deepsleep phy callback before PLL disable (v5.2)

See merge request espressif/esp-idf!30015
2024-04-15 11:38:31 +08:00
5f1187dc92 Merge branch 'bugfix/fix_coded_phy_s8_tx_issue_v5.2' into 'release/v5.2'
fix(esp_phy): fixed BLE coded phy s8 tx issue in coexistence scenarios (backport v5.2)

See merge request espressif/esp-idf!30190
2024-04-15 11:37:08 +08:00
a43f54ccc0 fix(ble/bluedroid): Fixed adv not restart due to disconnection reason 0x3e 2024-04-13 10:36:44 +08:00
9b72c4ef54 feat(bt/common): Add bluerooth hci layer data stream record 2024-04-13 10:35:23 +08:00
0efee1745c feat(bt/bluedroid): add api to setnd vendor hci command 2024-04-13 10:28:54 +08:00
5be1323c0a fix(usb/uvc): Add PSRAM private requires 2024-04-12 14:12:29 +02:00
f9163c6d43 Merge branch 'bugfix/fix_cccd_compilation_warning_v5.2' into 'release/v5.2'
fix(nimble): Fix compilation issues when CCCD is set to 0 (v5.2)

See merge request espressif/esp-idf!30211
2024-04-12 20:06:48 +08:00
3e214bc2f4 fix(heap): Loop break on failed alloc
don't check for heaps_array != NULL in the loop.
The check is done after the loop since it is allowed
for the allocation to fail until finding aa ssuitable
heap.
2024-04-12 12:27:13 +02:00
c5649deaca Merge branch 'bugfix/howsmyssl_cert_update_v5.2' into 'release/v5.2'
fix(examples): update root certificate for howsmyssl endpoint (v5.2)

See merge request espressif/esp-idf!30203
2024-04-12 17:45:29 +08:00
a12a681794 test(heap): Extend task tracking test with task handle check
Add a test to make sure that the task handles returned in the
task tracking information are valid task handles.

To verify that, feed the task name returned by pcTaskGetName()
using the task handle under test to xTaskGetHandle() and make
sure the task handle returned matches the one under test.
2024-04-12 09:27:41 +02:00
26160a217e fix(heap): Add block owner to allocs in heap_caps_init
Add the block owner field in the  memory allocated in
heap_caps_init() to avoid parsing error wheen using
the task tracking feature.

Closes https://github.com/espressif/esp-idf/issues/13467
2024-04-12 09:27:31 +02:00
2a985b3c65 fix(nimble): Fix compilation issues when CCCD is set to 0 2024-04-12 12:29:29 +05:30
d23876f3e4 Merge branch 'esp32p4/deterministic_ecdsa_support_v5.2' into 'release/v5.2'
Add operation successful check and reset dependent peripherals in ECDSA (v5.2)

See merge request espressif/esp-idf!30180
2024-04-12 14:31:43 +08:00
709b74c033 Merge branch 'bugfix/fix_cve_2024_24746_v5.2' into 'release/v5.2'
fix(nimble): Fix for Vulnerability CVE_2024_24746 (v5.2)

See merge request espressif/esp-idf!30199
2024-04-12 13:21:08 +08:00
3e761525c3 fix(examples): update root certificate for howsmyssl endpoint
This fixes CI failure seen because of cert migration of howsmyssl
endpoint from previous "DST Root CA X3" (cross-signed) to "ISRG Root X1".
2024-04-12 11:11:44 +08:00
a34ff0eca3 fix(bt/bluedroid): Fix SPP crash after deinit
- The disconnection event comes up after spp disable is completed, so a null pointer is used.
2024-04-12 09:13:04 +08:00
38dd5acc71 fix(nimble): Fix for Vulnerability CVE_2024_24746 2024-04-11 20:00:49 +05:30
abd21843e5 Merge branch 'feat/add_data_len_chg_evt_v5.2' into 'release/v5.2'
fix(nimble): Add support for data length change evt (v5.2)

See merge request espressif/esp-idf!30182
2024-04-11 21:11:10 +08:00
023cbd60ac fix(esp_phy): update phylib for C3, S3, C2 and C6
- fixed BLE coded phy s8 tx issue in coexistence scenarios
- fixed ESP32-C3 and ESP32-S3 BLE RX issue
- optimize ESP32-C3 and ESP32-S3 light sleep current
2024-04-11 17:37:26 +08:00
9b2c0ffe79 Merge branch 'fix/log_buffer_v5.2' into 'release/v5.2'
fix(log): Fixed incorrect argument type in hexdump log functions (v5.2)

See merge request espressif/esp-idf!29776
2024-04-11 16:42:00 +08:00
bd826801ba fix(mbedtls/ecdsa): Fix dependant peripheral's enable and reset 2024-04-11 13:46:59 +05:30
d2fb80529c Merge branch 'bugfix/config_sae_compile_error_v5.2' into 'release/v5.2'
fix(wpa_supplicant): Compile error when CONFIG_SAE is disabled (v5.2)

See merge request espressif/esp-idf!30177
2024-04-11 15:51:07 +08:00
ea6520ee81 fix(nimble): Add support for data length change evt 2024-04-11 12:36:15 +05:30
85186042c3 feat(hal/ecdsa): Add HAL API for operation successful check 2024-04-11 12:33:06 +05:30
9004c42f29 fix(wpa_supplicant): Compile error when CONFIG_SAE is disabled
Closes https://github.com/espressif/esp-idf/issues/13553
2024-04-11 11:18:50 +05:30
33c631570e Merge branch 'bugfix/fix_dtm_num_pkt_size_v5.2' into 'release/v5.2'
fix(nimble): Fix the size of num_packets in dtm event (v5.2)

See merge request espressif/esp-idf!30144
2024-04-11 13:25:03 +08:00
b359cd85f1 Merge branch 'feature/mbedtls_error_str_config_v5.2' into 'release/v5.2'
feat(mbedtls): add kconfig option for MBEDTLS_ERROR_C (v5.2)

See merge request espressif/esp-idf!30104
2024-04-11 11:53:24 +08:00
0f505ddf8e Merge branch 'bugfix/fix_rtc_cntl_v5.2' into 'release/v5.2'
fix(rtc_cntl_reg.h): fix RTC_CNTL_SLAVE_PD_M(v5.2)

See merge request espressif/esp-idf!30171
2024-04-11 11:40:43 +08:00
zlq
27322a8597 fix(rtc_cntl_reg.h): fix RTC_CNTL_SLAVE_PD_M(v5.2) 2024-04-10 19:55:51 +08:00
7b97a3de61 Merge branch 'fix/fix_pmu_power_domain_initialize_order_v5.2' into 'release/v5.2'
fix(esp_hw_support): fix pmu power domain initialize order (v5.2)

See merge request espressif/esp-idf!30153
2024-04-10 13:57:13 +08:00
ec06c11a19 Merge branch 'bugfix/gptimer_alarm_config_in_sram_v5.2' into 'release/v5.2'
feat(gptimer): check the alarm config is not in flash (v5.2)

See merge request espressif/esp-idf!30134
2024-04-10 13:48:34 +08:00
8f896f07c5 fix(esp_hw_support): fix pmu power domain initialize order 2024-04-10 10:10:13 +08:00
8f175bf638 fix(nimble): Fix the size of num_packets in dtm event 2024-04-09 19:00:15 +05:30
724165bd35 feat(gptimer): check the alarm config is not in flash
related to https://github.com/espressif/esp-idf/issues/13543
2024-04-09 17:29:47 +08:00
69359f4dfb Merge branch 'bugfix/unsupport_partial_receive_on_esp32_v5.2' into 'release/v5.2'
fix(rmt): Fix the RMT RX filter not working correctly on esp32/s2 (v5.2)

See merge request espressif/esp-idf!30077
2024-04-09 14:28:38 +08:00
5753eba7c4 Merge branch 'fix/heap-calloc-fail-wrong-size_v5.2' into 'release/v5.2'
fix(heap): Wrong size propagated in alloc fail callback of heap_caps_calloc() (backport v5.2)

See merge request espressif/esp-idf!30090
2024-04-09 12:06:19 +08:00
c9cb9b7ab1 Merge branch 'bugfix/ble_mesh_heartbeat_filter_add_v5.2' into 'release/v5.2'
Fix(ble_mesh):fix error condition for heartbeat filter adding node address (v5.2)

See merge request espressif/esp-idf!29986
2024-04-09 12:05:27 +08:00
3d0682d49e Merge branch 'bugfix/set_correct_addr_type_v5.2' into 'release/v5.2'
fix(nimble): Set correct peer_addr during reattempt connection (v5.2)

See merge request espressif/esp-idf!30055
2024-04-08 20:36:20 +08:00
a5662dc290 feat(ble): Added API to get low power clock source 2024-04-08 19:25:13 +08:00
4893ae3c11 docs: add note about newly added mbedtls config to reduce app size footprint 2024-04-08 16:02:24 +05:30
b6f5573e0f feat(mbedtls): add kconfig option for MBEDTLS_ERROR_C
Disabling this config can reduce footprint for the cases where
mbedtls_strerror() is used and hence the debug strings are getting
pulled into the application image.
2024-04-08 16:02:21 +05:30
29f835d2f1 fix(heap): Wrong size propagated in alloc fail callback
Propagate `n * size` as the size of the failed allocation
instead of just `size` when heap_caps_calloc() fails since
`n * size` is the actual number of bytes that the heap
component tried to allocate.
2024-04-08 08:36:43 +02:00
d93f1d55c5 fix(ble_mesh): fix error condition for heartbeat filter adding node address 2024-04-08 14:26:39 +08:00
4b612be8d9 fix(rmt): fix the counting clock used by rx filter on esp32/s2
is always APB, independent to the channel clock selection

Closes https://github.com/espressif/esp-idf/issues/13510
2024-04-08 11:16:18 +08:00
9323c190c2 Merge branch 'feat/set_cpu_freq_after_pm_config_changed_v5.2' into 'release/v5.2'
fix(esp_pm): update CPU frequency immediately after updating pm_config (v5.2)

See merge request espressif/esp-idf!30072
2024-04-08 10:29:00 +08:00
a9ff81a603 fix(esp_hw_support): move deepsleep phy callback before PLL disable 2024-04-07 20:36:51 +08:00
f2fd239471 Merge branch 'bugfix/i2c_slave_bugs_v5.2' into 'release/v5.2'
fix(i2c_slave): Fix multiple issues on i2c slave (backport v5.2)

See merge request espressif/esp-idf!30073
2024-04-07 18:38:06 +08:00
d56ae4caab Merge branch 'feature/support_i2c_timeout_v5.2' into 'release/v5.2'
feat(i2c_master): Add parameter to config I2C scl await time (backport v5.2)

See merge request espressif/esp-idf!30069
2024-04-07 18:36:55 +08:00
2c4128b98d Merge branch 'bugfix/wpa3_ap_ci_crash_v5.2' into 'release/v5.2'
fix(esp_wifi): Fix crash when assoc req comes before confirm is processed (v5.2)

See merge request espressif/esp-idf!29949
2024-04-07 17:25:37 +08:00
9582b3cead Merge branch 'feat/add_example_usj_v5.2' into 'release/v5.2'
change(usb_serial_jtag): Add example for usb serial jtag echo (backport v5.2)

See merge request espressif/esp-idf!30019
2024-04-07 16:07:36 +08:00
b8855fbd03 fix(i2c_slave): Fixed the isr_flags not really parse to the intr_allocate,
Closes https://github.com/espressif/esp-idf/issues/13374
2024-04-07 15:18:06 +08:00
3ac6c10d11 fix(i2c_slave): Fix bugs on i2c slave,
1. Fixed read data number smaller than master has sent it will fail
2. Disable interrupt when destroy bus
Closes https://github.com/espressif/esp-idf/issues/13354
2024-04-07 15:17:48 +08:00
7c233ebc80 feat(i2c_master): Add parameter to config I2C scl await time 2024-04-07 15:06:31 +08:00
fe6f4ce916 fix(esp_pm): update CPU frequency immediately after updating pm_config
Closes https://github.com/espressif/esp-idf/issues/13492
2024-04-07 14:45:40 +08:00
4502621282 fix(usb_serial_jtag): Increase stack size on serial_jtag example,
Closes https://github.com/espressif/esp-idf/issues/13245
2024-04-07 11:24:30 +08:00
ae152ca84e fix(nimble): Remove extra code in reattempt connection 2024-04-05 21:36:27 +05:30
602573933c Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20240318_v5.2' into 'release/v5.2'
feat(tools): update openocd version to v0.12.0-esp32-20240318 (v5.2)

See merge request espressif/esp-idf!30045
2024-04-05 23:31:39 +08:00
0440a63cb6 Merge branch 'bugfix/eth_l2_test_conn_wait_tmo_v5.2' into 'release/v5.2'
ci(esp_eth): increased L2 test wait for connection timeout (v5.2)

See merge request espressif/esp-idf!29881
2024-04-05 15:19:08 +08:00
9a6b151c41 feat(tools): update openocd version to v0.12.0-esp32-20240318 2024-04-04 22:41:19 +03:00
8a151a51cf Merge branch 'fix/pmp_idcache_prot_c6_h2_v5.2' into 'release/v5.2'
fix(esp_hw_support): Fix the flash I/DROM region PMP protection (v5.2)

See merge request espressif/esp-idf!30022
2024-04-04 12:20:07 +08:00
fc7a2a7af7 fix(gcov): fix exceptions on gcov task_tick_hook
Closes https://github.com/espressif/esp-idf/issues/13511
2024-04-03 15:28:18 +04:00
17ffe58051 fix(esp_hw_support): Fix the flash I/DROM region PMP protection 2024-04-03 15:48:46 +05:30
c722d8aab6 Merge branch 'bugfix/aud-5252_v5.2' into 'release/v5.2'
backport v5.2: fix the issue of modem hang caused by incorrect configuration of power and isolate signals

See merge request espressif/esp-idf!30007
2024-04-03 17:40:43 +08:00
3bd63654c8 change(usb_serial_jtag): Add a usb_serial_jtag echo example for how to use usb_serial_jtag APIs,
Closes https://github.com/espressif/esp-idf/issues/12620,
Closes https://github.com/espressif/esp-idf/issues/12605
2024-04-03 17:10:03 +08:00
8b2b9140ac fix(usb_serial_jtag): Fix issue that buffer seems not flush when TX buffer is full and flush slow,
Closes https://github.com/espressif/esp-idf/issues/12628
2024-04-03 17:06:53 +08:00
bf15a29e18 fix(driver): Add docs and driver fix for the case where a full EP does not cause the host to pickup the data 2024-04-03 17:04:59 +08:00
1158811fbd Merge branch 'bugfix/fix_batch_issue_i2c_v5.2' into 'release/v5.2'
fix(i2c_master): fix bunch of I2C issues on v5.2 (backport v5.2)

See merge request espressif/esp-idf!29724
2024-04-03 17:04:39 +08:00
a00717803a Merge branch 'bugfix/log_wrap_around_cache_generation_counter_v5.2' into 'release/v5.2'
fix(log): Fix wrap-around of cache generation counter (v5.2)

See merge request espressif/esp-idf!29938
2024-04-03 16:33:02 +08:00
4c96e523a3 Merge branch 'feat/adjust_ble_log_init_order_v5.2' into 'release/v5.2'
Feat/adjust ble log init order v5.2

See merge request espressif/esp-idf!30003
2024-04-03 12:40:06 +08:00
83bd62fb7c Merge branch 'bugfix/variable_length_rsnxe_v52' into 'release/v5.2'
Expands maximum size of RSNXE IE to 255(v5.2)

See merge request espressif/esp-idf!29936
2024-04-03 11:32:57 +08:00
2d0ac9208e fix(esp_hw_support): fixed modem hang caused by incorrect configuration of power and isolate signals 2024-04-03 10:43:13 +08:00
d34b0242ba Merge branch 'fix/rd_stored_link_key_error_v5.2' into 'release/v5.2'
fix(bt): fix some issues in bt controller(backport v5.2)

See merge request espressif/esp-idf!29978
2024-04-03 10:29:47 +08:00
c3f819289d fix(esp_wifi): Fix crash when assoc req comes before confirm is processed 2024-04-02 23:03:29 +05:30
2152112ff8 Merge branch 'bugfix/fix_coex_ld_issue_v5.2' into 'release/v5.2'
fix(wifi): fix coex ld issue (v5.2)

See merge request espressif/esp-idf!29915
2024-04-02 14:29:40 +08:00
8599ec33d5 Merge branch 'bugfix/revamp_reconn_scheme_v5.2' into 'release/v5.2'
fix(nimble): Cleanup code in connection reconnection implementation (v5.2)

See merge request espressif/esp-idf!29964
2024-04-02 14:26:39 +08:00
510ae698e2 feat(ble): add cca related config in c6, h2 and c2 2024-04-02 12:16:56 +08:00
27d360127d change(ble): support ble light sleep using ext 32k xtal on C2 2024-04-02 12:16:56 +08:00
zwl
2ce39a857f ble: update esp32c2 lib to 7a428d35 2024-04-02 12:16:56 +08:00
zwl
b0b6d190ff ble: update esp32h2 and esp32c6 lib to 39c6e050 2024-04-02 12:16:56 +08:00
d4327c47a1 ble : adjust the log initialization sequence of ESP32C6 and ESP32H2 2024-04-02 12:16:56 +08:00
c08a831f17 fix(bt): fix some issues in bt controller
1: fixed the incorrect timeing in reporting HCI_Link_Key_Type_Changed.
2: fixed the incorrect iv value during resuming encryption.
3: fixed the incorrect return with hci command rd_stored_link_key.
2024-04-02 09:33:51 +08:00
2c64d8d302 Merge branch 'bugfix/fix_call_to_header_event_callback_v5.2' into 'release/v5.2'
fix: Fix call to event_handler on on_header state of HTTP Client (v5.2)

See merge request espressif/esp-idf!29954
2024-04-01 19:50:34 +08:00
06d18ca0d6 fix(nimble): Change reconnection scheme 2024-04-01 16:06:55 +05:30
8d494a8d03 Revert "fix(esp_http_client): Call event_handler after header value is received"
This reverts commit 04ac8e43db.

Fixes https://github.com/espressif/esp-idf/issues/13497
Fixes https://github.com/espressif/esp-idf/issues/13097
2024-04-01 13:18:56 +05:30
a70bb45c48 Merge branch 'bugfix/sdp_remove_record_no_evt_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fixed the crash caused by using illegal pointers during SDP deinit(v5.2)

See merge request espressif/esp-idf!29942
2024-04-01 14:53:09 +08:00
77920038f6 Merge branch 'change/add_convt_from_hci_state_to_esp_state_v5.2' into 'release/v5.2'
change(bt/bluedroid): Use BTC util to convert HCI status to ESP status (v5.2)

See merge request espressif/esp-idf!29921
2024-04-01 14:39:31 +08:00
c920d2ed64 Merge branch 'bugfix/esp_timer_test_fail_v5.2' into 'release/v5.2'
fix(esp_timer): Force test to go light sleep ignoring ESP_ERR_SLEEP_REJECT (v5.2)

See merge request espressif/esp-idf!29871
2024-04-01 14:39:10 +08:00
cc13237746 fix(wifi): fix coex ld issue 2024-04-01 14:23:08 +08:00
016b27c132 Merge branch 'bugfix/coredump_switch_stack_v5.2' into 'release/v5.2'
fix(espcoredump): Reconfigure the stack guard when using custom coredump stack (backport v5.2)

See merge request espressif/esp-idf!29525
2024-04-01 12:05:21 +08:00
dfeeaf386e fix(bt/bluedorid): Fixed crash caused by using illegal pointer 2024-04-01 11:33:23 +08:00
2da016575f fix(bt/bluedorid): Fixed no event when removing an invalid SDP record 2024-04-01 11:33:17 +08:00
23540fa90d Merge branch 'feature/freertos_enable_app_task_tag_v5.2' into 'release/v5.2'
feat(freertos): Add application task tag support (V5.2)

See merge request espressif/esp-idf!29587
2024-04-01 11:20:04 +08:00
ae94c0134b fix(i2c_master): Fix issue that i2c clock got wrong after reset,
Closes https://github.com/espressif/esp-idf/issues/13397
2024-04-01 10:55:39 +08:00
0f852fcd5f fix(espcoredump): Reconfigure the stack guard when using custom coredump stack 2024-04-01 10:53:13 +08:00
2291ded9a1 fix(i2c): Use hardware fsm reset on esp32c6/h2/p4 2024-04-01 10:15:50 +08:00
90afc33cd8 fix(i2c_master): Fix issue that initialize esp32 and using i2c_master_probe issue,
and probe might failed.
Fixed I2C cannot return err code when nack detected
Closes https://github.com/espressif/esp-idf/issues/13213,
Closes https://github.com/espressif/esp-idf/issues/12929,
Closes https://github.com/espressif/esp-idf/issues/13398,
2024-04-01 10:15:47 +08:00
8567102be4 fix(i2c_master): Fix issue that use callback may cause memory leak,
Closes https://github.com/espressif/esp-idf/issues/12878
2024-04-01 10:15:45 +08:00
f93ebedcb6 fix(i2c): Fix I2C synchronous transaction cost so much CPU source,
Closes https://github.com/espressif/esp-idf/issues/13137,
Closes https://github.com/espressif/esp-idf/pull/13322
2024-04-01 10:15:42 +08:00
27690e0990 fix(i2c_master): fix deadlock on s_i2c_transaction_start failure
As pointed out in PR #13134 by @MatthiasKunnen, there is a deadlock in
`s_i2c_synchronous_transaction()` if `s_i2c_transaction_start()` should fail
because, on error, s_i2c_synchronous_transaction() returns before releasing the
lock.

This commit fixes the deadlock without any other changes.

Closes: #13387

Signed-off-by: Eric Wheeler <esp-idf@z.ewheeler.org>
2024-04-01 10:15:39 +08:00
31883c9a64 feat(freertos): Add application task tag support
This commit enables support for application task tag.

- Added CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG option
- Added basic unit test
2024-03-30 17:44:38 +08:00
8efe72379d fix(log): Fix wrap-around of cache generation counter
Closes https://github.com/espressif/esp-idf/issues/6516
2024-03-29 17:31:47 +03:00
6020d08074 Merge branch 'bugfix/handle_missing_free_v5.2' into 'release/v5.2'
fix(nimble): Handle missing free in application (v5.2)

See merge request espressif/esp-idf!29887
2024-03-29 21:02:32 +08:00
2417ffe69e fix(rsnxe): Expands maximum size of RSNXE IE to 255
- Allows for RSNXE IE to be processed as a variable length upto
255 bytes, changing the earlier max of 20.
2024-03-29 18:22:19 +05:30
30c6144b2f Merge branch 'bugfix/dpp_example_init_error_v5.2' into 'release/v5.2'
fix(wifi/example): Fix dpp example init error (v5.2)

See merge request espressif/esp-idf!29859
2024-03-29 19:42:57 +08:00
afa39b0d02 Merge branch 'feature/sae_pk_transition_disable_v5.2' into 'release/v5.2'
feat(esp_wifi): Add support for WPA3 transition disable and more updates (Backport v5.2)

See merge request espressif/esp-idf!29885
2024-03-29 17:50:32 +08:00
064df2a1fa Merge branch 'bugfix/add_peer_addr_field_for_ext_v5.2' into 'release/v5.2'
fix(nimble): Correctly handle auto connection flag for extended connect (v5.2)

See merge request espressif/esp-idf!29785
2024-03-28 16:41:10 +08:00
7646dd575a Merge branch 'bugfix/fix_bt_cmakefile_error_on_c2_v5.2' into 'release/v5.2'
fix(bt): fixed cmakelist error on c2 (v5.2)

See merge request espressif/esp-idf!29894
2024-03-28 16:12:50 +08:00
8e694cddcc feat(esp_wifi): Add support for WPA3 transition disable and more updates
1. Add support for SAE-PK and WPA3-Enterprise transition disable
2. Add support to handle OWE transition disable indication from AP
2. Update Wi-Fi WPA3 authmodes as per WPA Specification v3.3:
   - Merge 'WIFI_AUTH_WPA3_EXT_PSK' and 'WIFI_AUTH_WPA3_EXT_PSK_MIXED_MODE'
     into 'WIFI_AUTH_WPA3_PSK' as per specification.
4. refactor: Backport common changes in scan/connect path from 90cc6158
   - 90cc6158 adds support for Network Introduction Protocl in DPP
2024-03-28 11:38:45 +05:30
b86dd75df5 fix(bt): fixed cmakelist error on c2
Closes https://github.com/espressif/esp-idf/issues/13451
2024-03-28 12:06:26 +08:00
044ead90ce fix(nimble): Handle missing free in application 2024-03-28 08:50:43 +05:30
7c15d88e75 change(bt/bluedroid): Use BTC util to convert HCI status to ESP status 2024-03-28 10:18:11 +08:00
b531376a62 fix(esp_timer): Force to go light sleep ignoring ESP_ERR_SLEEP_REJECT 2024-03-27 18:22:48 +02:00
2ffeffddc6 ci(esp_eth): increased L2 test wait for connection timeout 2024-03-27 12:59:41 +01:00
ccc8fb8f65 fix(wifi/example): Fix dpp example init error
Set wifi mode before calling esp_supp_dpp_init.

Closes https://github.com/espressif/esp-idf/pull/12769

Signed-off-by: Shreyas Sheth <shreyas.sheth@espressif.com>
2024-03-27 11:21:11 +05:30
9da552c409 Merge branch 'feature/refactor_ftm_code_v5.2' into 'release/v5.2'
Refactor and improve FTM code (Backport v5.2)

See merge request espressif/esp-idf!29843
2024-03-27 10:34:13 +08:00
4e2a52ea85 Merge branch 'bugfix/fix_ble_power_save_ci_v5.2' into 'release/v5.2'
fix(ble): fix conn error of ble power save ci test(v5.2)

See merge request espressif/esp-idf!29822
2024-03-27 10:31:06 +08:00
ac44663186 Merge branch 'bugfix/dpp_auth_deinit_crash_v52' into 'release/v5.2'
Ensure dpp auth structure is deinited in dpp task context(v5.2)

See merge request espressif/esp-idf!29838
2024-03-27 10:20:17 +08:00
413bcd8fcd feat(esp_wifi): Refactor and improve FTM code
Enable FTM Responder mode for ESP32C6. Update wifi libs with below -

1. Break FTM State Machine code into separate functions
2. Use dynamic allocation for FTM session to save memory
3. Add API to get FTM report instead of event based mechanism
4. Add FTM Request retry and comeback support
2024-03-26 18:00:10 +05:30
fcb76f0671 Merge branch 'bugfix/update_disabling_hmac_jtag_method_v5.2' into 'release/v5.2'
fix(esp_hw_support): update hmac toggle method due to discrepency in ROM code (v5.2)

See merge request espressif/esp-idf!29529
2024-03-26 17:29:07 +08:00
b85d778374 Merge branch 'bugfix/update_esp32p4lp_rom_ld_files_v5.2' into 'release/v5.2'
fix(esp_rom): Update esp32p4lp rom ld files (v5.2)

See merge request espressif/esp-idf!29832
2024-03-26 16:30:44 +08:00
120cb89c56 fix(esp_hw_support): update hmac toggle method due to discrepency in ROM code
Need to update the HMAC enable/disable method due to discrepancy in ROM code
across different targets for the esp_hmac_disable() API.
2024-03-26 13:22:22 +05:30
6115e2500a fix(wpa_supplicant): Cancel offchannel listen operations before sending dpp fail
- Ensure that offchannel listening operations are cancelled before sending dpp
  fail events
2024-03-26 10:04:13 +05:30
1830bc4d29 fix(wpa_supplicant): Ensure dpp auth structure is deinited in dpp task context
- Ensure that the dpp auth data gets deinited only in DPP task context to ensure
  that there are no concurrency issues in usage of DPP auth data.
2024-03-26 10:04:06 +05:30
1be59d080a fix(esp_rom): Update esp32p4lp rom ld files 2024-03-26 11:19:36 +08:00
93f7ae7f7f Merge branch 'bugfix/wps_crash_issue_v5.2' into 'release/v5.2'
fix(wpa_supplicant): Avoid dereferencing a dangling function pointer in WPS (Backport v5.2)

See merge request espressif/esp-idf!29735
2024-03-26 10:51:58 +08:00
fc56156013 Merge branch 'bugfix/fixed_some_wifi_bugs_240325_v5.2' into 'release/v5.2'
fix(wifi): fix some wifi bugs 230325(Backport v5.2)

See merge request espressif/esp-idf!29826
2024-03-26 10:37:50 +08:00
b3a1ec3ac0 Merge branch 'bugfix/add_unaligned_check_to_mysnc_api_v5.2' into 'release/v5.2'
cache: add unaligned check to mysnc api (v5.2)

See merge request espressif/esp-idf!29817
2024-03-26 09:28:20 +08:00
8c5ccece57 Merge branch 'fix/freertos_task_c_add_coverity_fix_v5.2' into 'release/v5.2'
fix(freertos): Fixed an issue where accessing task lists could overrun memory (v5.2)

See merge request espressif/esp-idf!29757
2024-03-25 20:57:56 +08:00
5f32741958 fix(wifi): fix some wifi bugs 230325
1. limit the number of sub amsdu
2. fix recycle cache sub amsdu eb issue
3. update api esp_wifi_sta_get_rssi docs
2024-03-25 20:36:50 +08:00
ed57048579 Merge branch 'bugfix/fix_some_wifi_coexist_issue_v5.2' into 'release/v5.2'
bugfix/fix some wifi coexist issue v5.2

See merge request espressif/esp-idf!29750
2024-03-25 17:53:24 +08:00
b4a8bd2040 bugfix(cache): don't allow M2C direction ESP_CACHE_MSYNC_FLAG_UNALIGNED 2024-03-25 16:06:44 +08:00
50ea662fe0 fix(ble): fix ci ble powe save test addresss error 2024-03-25 15:59:26 +08:00
358c9ad946 Merge branch 'bugfix/BT-3491_v5.2' into 'release/v5.2'
bugfix(ble_mesh): Avoid provisioner handling messages from nodes that have...(v5.2)

See merge request espressif/esp-idf!28049
2024-03-25 12:12:38 +08:00
d411856956 Merge branch 'bugfix/IDFGH-11775_v5.2' into 'release/v5.2'
bugfix(ble_mesh): fix NRF mesh(android) provisioning node failed(v5.2)

See merge request espressif/esp-idf!29739
2024-03-25 12:11:57 +08:00
3139589b7c Merge branch 'bugfix/IDFGH-12353_v5.2' into 'release/v5.2'
fix(ble_mesh): Free segment tx buffers on tx reset for SAR enhancement_v5.2

See merge request espressif/esp-idf!29780
2024-03-25 12:11:50 +08:00
f0e97da81e feat(coex): support to scan long time on channel, fix coexist sync issue 2024-03-25 11:52:50 +08:00
c710a583bb fix(ble_mesh): Free segment tx buffers on tx reset for SAR enhancement
Closes: https://github.com/espressif/esp-idf/issues/13384
2024-03-24 17:35:24 +08:00
54a38a87e2 fix(ble_mesh): fix NRF mesh(android) provisioning node failed
Closes: https://github.com/espressif/esp-idf/issues/12871
2024-03-22 12:22:13 +08:00
cf7b9bed4c Merge branch 'update/qemu_release_versions_v5.2' into 'release/v5.2'
Update QEMU release versions (v5.2)

See merge request espressif/esp-idf!29756
2024-03-21 21:01:58 +08:00
7310ab3589 fix(nimble): Handle auto connection flag for extended connect 2024-03-21 14:50:39 +05:30
4652a99e92 fix(log): Fixed incorrect argument type in hexdump log functions
Closes https://github.com/espressif/esp-idf/issues/13347
Thanks @matthew-8925
2024-03-21 15:10:53 +08:00
3c8b37087b Merge branch 'bugfix/esp_app_format_missing' into 'release/v5.2'
fix(esp_system): Fix build when ANTI_ROLLBACK=y and PANIC_SILENT_REBOOT=y

See merge request espressif/esp-idf!29770
2024-03-21 13:51:16 +08:00
a6895cef01 Merge branch 'bugfix/bonding_across_reboot_v5.2' into 'release/v5.2'
fix(nimble): Added support for deleting the oldest bonded device across reboot (v5.2)

See merge request espressif/esp-idf!29762
2024-03-21 13:29:05 +08:00
c1c41a30ea fix(nimble): Added support for deleting the oldest bonded device across reboot (v5.2) 2024-03-21 09:37:35 +05:30
436e3d3345 update invalid links in the ble mesh example documentation 2024-03-21 11:07:02 +08:00
f5777749dc bugfix(ble_mesh): Avoid provisioner handling messages from nodes that have already left the network. 2024-03-21 11:07:02 +08:00
4fe7b96e76 Merge branch 'feature/parlio_tx_nonblock_queue_v5.2' into 'release/v5.2'
feat(parlio_tx): support non-blocking transaction queue (v5.2)

See merge request espressif/esp-idf!29720
2024-03-21 10:06:59 +08:00
9607a1121d Merge branch 'feature/add_cli_in_openthread_sleep_example_v5.2' into 'release/v5.2'
feat(openthread): add cli in openthread sleep example (backport v5.2)

See merge request espressif/esp-idf!29597
2024-03-21 10:02:01 +08:00
00f2e33008 fix(esp_system): Fix build when ANTI_ROLLBACK=y and PANIC_SILENT_REBOOT=y
Fix a case when two options are set as
CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=y

Closes https://github.com/espressif/esp-idf/issues/13417
2024-03-20 22:08:47 +02:00
1a5e528c83 Merge branch 'refactor/idf_tools_version_v5.2' into 'release/v5.2'
refactor(idf_tools): IDF version is acquired only from version or header file (backport v5.2)

See merge request espressif/esp-idf!29741
2024-03-20 20:22:22 +08:00
962d9de65e Merge branch 'bugfix/fixed_task_invokation_after_pairing_v5.2' into 'release/v5.2'
fix(nimble): Fixed the call to ble_hid_task_startup after pairing (v5.2)

See merge request espressif/esp-idf!29695
2024-03-20 17:36:43 +08:00
24e0a124a8 fix(nimble): Fix compilation issues and Minor enhancements to esp_hid 2024-03-20 13:34:19 +05:30
ec7e307a18 Merge branch 'bugfix/compilation_issue_on_disabling_security_v5.2' into 'release/v5.2'
fix(nimble): Fixed compilation issues on disabling security (v5.2)

See merge request espressif/esp-idf!29697
2024-03-20 16:00:48 +08:00
b32d47ab98 fix(freertos): Fixed an issue where accessing task lists could overrun memory
This commit fixes a potential issue of illegal memory access when
accessing the various task lists in FreeRTOS while fetching tasks using
the xTaskGetNext() function.
2024-03-20 08:57:02 +01:00
84f4548b98 change(tools/qemu): Update QEMU release versions 2024-03-20 13:15:49 +05:30
4005c24ce1 Merge branch 'fix/wl_fatfsgen_safe_mode_v5.2' into 'release/v5.2'
fix(storage/fatfs): make wl_fatfsgen.py safe mode aware (v5.2)

See merge request espressif/esp-idf!29728
2024-03-20 15:16:27 +08:00
691997af91 fix(wpa_supplicant): Improve execution flow for WPS registrar public APIs
Make sure that WPS registrar public APIs do not modify supplicant
data in application task context. Execute API functionlity in eloop
context to prevent protential race conditions.
2024-03-20 11:07:43 +05:30
47d9b8ca50 refactor(idf_tools): IDF version is acquired only from version or header file
Closes https://github.com/espressif/esp-idf/issues/13385
2024-03-19 15:44:19 +01:00
3b86f974ea example: add custom partition table for mesh manual networking 2024-03-19 21:20:33 +08:00
58dffd9b3c feat(coex): improve Wi-Fi connecting compatibility at coexistence 2024-03-19 21:20:29 +08:00
7e36e97467 Merge branch 'bugfix/wpa3_sta_lock_crash_v5.2' into 'release/v5.2'
fix(wifi): Fix wpa3 crash for station added without sta lock (v5.2)

See merge request espressif/esp-idf!29211
2024-03-19 19:11:10 +08:00
d23ef4c6bd fix(nimble): Fixed compilation issues on disabling security 2024-03-19 15:20:19 +05:30
34a26ed632 fix(wifi): Avoid dereferencing a dangling function pointer in WPS supplicant
Avoid dereferencing a dangling function pointer in 'eap_server_sm_deinit()'.
This issue arises when hostap unregisteres EAP methods before it removes
the server state machine for station.
2024-03-19 14:51:14 +05:30
c51b2fb75f fix(storage/fatfs): make wl_fatfsgen.py safe mode aware 2024-03-19 09:29:10 +01:00
dd1265845f fix(wifi): Fix wpa3 crash for station added without sta lock 2024-03-19 14:37:32 +08:00
06733dc407 Merge branch 'doc/update_espnow_doc_v5.2' into 'release/v5.2'
docs(wifi): Updated the LMK description in ESP-NOW (v5.2)

See merge request espressif/esp-idf!29673
2024-03-19 14:15:08 +08:00
1008091a74 feat(parlio_tx): support non-blocking transaction queue 2024-03-19 12:06:44 +08:00
e759833c44 Merge branch 'bugfix/cve-2023-52160_v5.2' into 'release/v5.2'
fix(wpa_supplicant): (PEAP client) Update Phase 2 auth requirements (v5.2)

See merge request espressif/esp-idf!29675
2024-03-18 11:29:31 +08:00
f2e1c06b0c Merge branch 'bugfix/make_coexist_callback_safe_v5.2' into 'release/v5.2'
fix(bt/controller): Fixed some bugs in esp32 bt controller (v5.2)

See merge request espressif/esp-idf!29682
2024-03-18 11:29:15 +08:00
a2e56227cc Merge branch 'fix/gdbstub_enables_freertos_task_wrapper_v5.2' into 'release/v5.2'
fix(freertos): Updated dependency list for CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER option (v5.2)

See merge request espressif/esp-idf!29681
2024-03-18 11:11:39 +08:00
e416552e46 fix(bt/controller): Fixed some bugs in esp32 bt controller
1. fixed crash issue in coexist callback
2. fixed wrong LMP message send when expect peer device increase tx power to max
2024-03-15 19:08:45 +08:00
bc310e088b fix(freertos): Updated dependency list for CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER option
This commit updates the dependency for
CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER to be dependent explicitly on
CONFIG_ESP_SYSTEM_PANIC_GDBSTUB or CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME
instead of CONFIG_ESP_GDBSTUB_ENABLED which caused FreeRTOS Task
Function Wrappers to be enabled even if the esp_gdbstub component was
part of the build.
2024-03-15 10:54:25 +01:00
b761052e6b fix(wpa_supplicant): (PEAP client) Update Phase 2 auth requirements
The previous PEAP client behavior allowed the server to skip Phase 2
authentication with the expectation that the server was authenticated
during Phase 1 through TLS server certificate validation. Various PEAP
specifications are not exactly clear on what the behavior on this front
is supposed to be and as such, this ended up being more flexible than
the TTLS/FAST/TEAP cases. However, this is not really ideal when
unfortunately common misconfiguration of PEAP is used in deployed
devices where the server trust root (ca_cert) is not configured or the
user has an easy option for allowing this validation step to be skipped.

Change the default PEAP client behavior to be to require Phase 2
authentication to be successfully completed for cases where TLS session
resumption is not used and the client certificate has not been
configured. Those two exceptions are the main cases where a deployed
authentication server might skip Phase 2 and as such, where a more
strict default behavior could result in undesired interoperability
issues. Requiring Phase 2 authentication will end up disabling TLS
session resumption automatically to avoid interoperability issues.

Allow Phase 2 authentication behavior to be configured with a new phase1
configuration parameter option:
'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
tunnel) behavior for PEAP:
 * 0 = do not require Phase 2 authentication
 * 1 = require Phase 2 authentication when client certificate
   (private_key/client_cert) is no used and TLS session resumption was
   not used (default)
 * 2 = require Phase 2 authentication in all cases
2024-03-15 13:21:59 +05:30
7727b7f693 docs(wifi): Updated the LMK description in ESP-NOW
Closes https://github.com/espressif/esp-idf/issues/12976
2024-03-15 15:05:10 +08:00
08299f5f9b Merge branch 'bugfix/fix_maximum_value_of_config_rtc_clk_cal_cycles_bug_v5.2' into 'release/v5.2'
ESP All Chip: fixed the maximum value of config RTC_CLK_CAL_SYCLES bug (v5.2)

See merge request espressif/esp-idf!29648
2024-03-15 11:10:38 +08:00
9beb67dedf Merge branch 'bugfix/fix_s3_bbpll_cali_fail_bug_v5.2' into 'release/v5.2'
fix: fix s3 bbpll calibration fail bug (v5.2)

See merge request espressif/esp-idf!29644
2024-03-15 11:10:11 +08:00
80cfe30b29 Merge branch 'bugfix/fix_fastmem_slowmem_lost_data_bug_v5.2' into 'release/v5.2'
[C3/S3]Fix sleep fast_mem & slow_mem may lost bug (v5.2)

See merge request espressif/esp-idf!29640
2024-03-15 11:09:38 +08:00
85ac17e5ba Merge branch 'bugfix/rom_systimer_config_v5.2' into 'release/v5.2'
fix(rom): fixed systimer always using ROM implementation (v5.2)

See merge request espressif/esp-idf!29605
2024-03-15 10:09:52 +08:00
fd4b09f283 Merge branch 'backport5.2/openthread_2024_3_14' into 'release/v5.2'
openthread modifications backport to 5.2

See merge request espressif/esp-idf!29654
2024-03-15 10:08:44 +08:00
6cdf728ce8 feat(openthread): support configuring indicator color of openthread device 2024-03-14 17:20:37 +08:00
698a7705b8 fix(vfs): fix eventfd select 2024-03-14 17:20:31 +08:00
zwx
298682913c fix(openthread): using atomic variable for buffer count 2024-03-14 17:20:26 +08:00
zwx
2c06ea4039 feat(openthread): enable RCP uart configuration for BR by default 2024-03-14 17:20:20 +08:00
57bd2488af feat(openthread): add different led color for openthread devices 2024-03-14 17:19:58 +08:00
22c682b52e Merge branch 'feat/move_ag_cb_malloc_to_btc_v5.2' into 'release/v5.2'
feat(bt/bluedroid): Moved the memory allocation of HF AG control blocks to BTC module (v5.2)

See merge request espressif/esp-idf!29631
2024-03-14 17:02:20 +08:00
7771d72d7c fix: fix_maximum_value_of_config_rtc_clk_cal_cycle_bug 2024-03-14 16:11:20 +08:00
4200246df3 fix: fix s3 bbpll cali fail bug 2024-03-14 15:45:31 +08:00
c7660fe26d fix: fix sleep fast_mem & slow_mem may lost bug 2024-03-14 15:03:41 +08:00
bc26c82f01 Merge branch 'bugfix/fix_phy_pll_track_corner_case_backport_52' into 'release/v5.2'
fix(phy): fix pll track when enabling and disabling PHY frequently(Backport v5.2)

See merge request espressif/esp-idf!29388
2024-03-14 14:15:01 +08:00
bd55386769 Merge branch 'bugfix/fix_the_spiram_malloc_issue_in_wifi_mesh_v5.2' into 'release/v5.2'
fix(wifi): fixed the spiram malloc issue in wifi mesh (v5.2)

See merge request espressif/esp-idf!29629
2024-03-14 13:55:42 +08:00
85403d2e5e feat(bt/bluedroid): Moved the memory allocation of HF AG control blocks to BTC module 2024-03-14 10:52:27 +08:00
48944645f1 Merge branch 'bugfix/flash_mxic_chip_v5.2' into 'release/v5.2'
fix(spi_flash): Fix MXIC chip flash size detected wrong (backport v5.2)

See merge request espressif/esp-idf!29610
2024-03-14 10:45:13 +08:00
1a4234c0e1 fix(wifi): fixed the spiram malloc issue in wifi mesh
Closes https://github.com/espressif/esp-idf/issues/13285
2024-03-14 10:28:32 +08:00
374a03f210 Merge branch 'contrib/github_pr_13034_v5.2' into 'release/v5.2'
docs(nimble): Fixed typo in examples/bluetooth/nimble/blehr/README (GitHub PR) (v5.2)

See merge request espressif/esp-idf!29615
2024-03-13 23:37:12 +08:00
9c49c40daa Merge branch 'fix/aes_gcm_coverity_reports_v5.2' into 'release/v5.2'
fix(mbedtls/aes-gcm): Fix null pointer derefernce coverity reports (v5.2)

See merge request espressif/esp-idf!29577
2024-03-13 21:17:48 +08:00
a253028107 Merge branch 'feature/add_doc_for_p4_v5.2' into 'release/v5.2'
docs(nimble): Added gpio configuration table for esp32p4 (v5.2)

See merge request espressif/esp-idf!29599
2024-03-13 20:37:24 +08:00
4e57c2bf6f Merge branch 'ci/fix_pre_encrytped_ota_failure_in_ci_v5.2' into 'release/v5.2'
ci: Fix pre_encrypted_ota example failure in CI (v5.2)

See merge request espressif/esp-idf!29604
2024-03-13 20:17:56 +08:00
aa2d885139 Update README.md
Fix typo
2024-03-13 17:09:18 +05:30
ac2d88912d fix(spi_flash): Fix MXIC chip flash size detected wrong,
Closes https://github.com/espressif/esp-idf/issues/12222
2024-03-13 18:44:24 +08:00
387f48aa9a fix(rom): fixed systimer always using ROM implementation 2024-03-13 17:25:39 +08:00
15e9343a20 ci: Fix pre_encrypted_ota example failure in CI 2024-03-13 14:49:27 +05:30
bbd4266328 docs(nimble): Added gpio configuration table for esp32p4 2024-03-13 14:02:40 +05:30
729f45db61 feat(openthread): add cli in openthread sleep example 2024-03-13 14:57:26 +08:00
c97d3aed45 fix(mbedtls/aes-gcm): Fix null pointer derefernce coverity reports
- Also fixed a tcp_transport report
2024-03-13 11:42:03 +05:30
1097ed0fcf Merge branch 'bugfix/ble_update_lib_20240306_v5.2' into 'release/v5.2'
update lib on release/v5.2

See merge request espressif/esp-idf!29437
2024-03-13 14:02:33 +08:00
69dc6f386c Merge branch 'bugfix/reconnect_host_based_v5.2' into 'release/v5.2'
fix(nimble): Added ble_host_rpa_enabled flag for address resoultion for esp32 (v5.2)

See merge request espressif/esp-idf!29569
2024-03-13 12:25:29 +08:00
2456b833b5 Merge branch 'docs/esp_event_doc_fix_v5.2' into 'release/v5.2'
docs(esp_event): Fixed mistake in API docs (v5.2)

See merge request espressif/esp-idf!29563
2024-03-13 11:21:30 +08:00
zwl
a72d10a4e2 ble(update):
Update h2 lib to d0218de8
Update c6 lib to d0218de8
2024-03-13 10:33:23 +08:00
a61d79966b Merge branch 'docs/fix_spiram_mistake_v5.2' into 'release/v5.2'
docs(heap): Fixed mistake in the heap allocator docs (v5.2)

See merge request espressif/esp-idf!29588
2024-03-13 10:33:02 +08:00
a0bb3e8fdf docs(heap): Fixed mistake in the heap allocator docs
Closes https://github.com/espressif/esp-idf/issues/13353
2024-03-13 09:46:48 +08:00
a8d3034a3c Merge branch 'docs/remove_ulp_deep_sleep_example_v5.2' into 'release/v5.2'
docs(deep_sleep): removed mentions of ULP in deep sleep example readme (v5.2)

See merge request espressif/esp-idf!29574
2024-03-13 09:06:07 +08:00
4d4d86be51 fix(nimble): Added ble_host_rpa_enabled flag for address resoultion for esp32 2024-03-12 16:33:46 +05:30
464a62b516 Merge branch 'bugfix/fix_strict_prototype_hid_v5.2' into 'release/v5.2'
fix(nimble): Address compilation errors when strict-prototype is enabled (v5.2)

See merge request espressif/esp-idf!29540
2024-03-12 18:50:57 +08:00
38142889a5 docs(deep_sleep): removed mentions of ULP in deep sleep example readme
Updated readme to reflect that ULP is no longer a part of this examples
functionality.

Closes https://github.com/espressif/esp-idf/issues/13340
2024-03-12 16:12:04 +08:00
f18329b15f Merge branch 'feature/export_bat_exit_codes_v5.2' into 'release/v5.2'
feat(tools): produce correct err code in install/export .bat scripts (v5.2)

See merge request espressif/esp-idf!29544
2024-03-12 15:11:51 +08:00
61a5631b51 Merge branch 'feat/modify_iperf_sdkconfig_to_improve_iperf_performance_v5.2' into 'release/v5.2'
feat(example): modify iperf sdkconfig to imporve iperf performance(backport v5.1)

See merge request espressif/esp-idf!29534
2024-03-12 13:54:39 +08:00
39854bebd3 Merge branch 'fix/xtensa-memset-memcpy_inlining_v5.2' into 'release/v5.2'
fix(tools): do not use builtin memcpy/memset/strcpy on xtensa chips (v5.2)

See merge request espressif/esp-idf!29503
2024-03-12 10:58:34 +08:00
1d526b4d10 Merge branch 'coredump_refactoring_v5.2' into 'release/v5.2'
Coredump refactoring (v5.2)

See merge request espressif/esp-idf!29501
2024-03-12 10:58:07 +08:00
daa6a0d5c2 Merge branch 'bugfix/fix_some_ble_bugs_cjh_v5.2' into 'release/v5.2'
Fixed some BLE bugs 2403 (backport v5.2)

See merge request espressif/esp-idf!29465
2024-03-12 10:53:56 +08:00
8cc9921651 docs(esp_event): Fixed mistake in API docs
Closes https://github.com/espressif/esp-idf/issues/13346
2024-03-12 10:33:04 +08:00
c7d2134d7b Merge branch 'fix/usb_msc_disconnect_v5.2' into 'release/v5.2'
fix(usb/host): Fixed crash on MSC disk disconnection

See merge request espressif/esp-idf!29507
2024-03-11 21:16:17 +08:00
64cbabffd4 Merge branch 'backport5.2/openthread_example_configurations' into 'release/v5.2'
fix(openthread): configurations for openthread examples(backport 5.2)

See merge request espressif/esp-idf!29535
2024-03-11 20:50:35 +08:00
e9bb0da852 feat(tools): produce correct err code in export/install .bat scripts
Plus unify labels to begin with underscore
2024-03-11 09:47:57 +01:00
74e4fbba06 fix(nimble): Address compilation errors when strict-prototype is enabled 2024-03-11 13:50:25 +05:30
dd9ba05c49 fix(openthread): configurations for openthread examples 2024-03-11 14:14:43 +08:00
8eea1ee804 feat(example): modify iperf sdkconfig to imporve iperf performance 2024-03-11 14:08:02 +08:00
2d818bbfe5 Merge branch 'docs/rf_coexistence_api_guides_support_esp32c2_v5.2' into 'release/v5.2'
Docs: RF coexistence api guides support esp32c2 (v5.2)

See merge request espressif/esp-idf!29213
2024-03-11 10:40:40 +08:00
20762c4524 Merge branch 'pytest/support_io_wakeup_test_v5.2' into 'release/v5.2'
Pytest/support io wakeup test (backport v5.2)

See merge request espressif/esp-idf!28657
2024-03-11 10:39:22 +08:00
78d9e6390d Merge branch 'bugfix/fix_sleep_cache_safe_assertion_v5.2' into 'release/v5.2'
fix(esp_hw_support): fix cache safe check function (v5.2)

See merge request espressif/esp-idf!29247
2024-03-11 10:38:26 +08:00
4024dce2b4 Merge branch 'bugfix/ip101_reset_timing_v5.2' into 'release/v5.2'
fix(esp_eth): ip101-specific reset_hw to match reset timings from datasheet (v5.2)

See merge request espressif/esp-idf!29011
2024-03-11 10:37:03 +08:00
54ca68e79f Merge branch 'feature/mmd_access_v5.2' into 'release/v5.2'
esp_eth: Add functions to access PHY using MDIO (v5.2)

See merge request espressif/esp-idf!28839
2024-03-11 10:36:51 +08:00
3f9d7edd72 Merge branch 'feature/ble_mesh_example_light_driver_v5.2' into 'release/v5.2'
feat: replace lightdriver, and support more chips in ble mesh examples(backport v5.2)

See merge request espressif/esp-idf!28919
2024-03-11 10:36:34 +08:00
bd2e42b87d Merge branch 'ci/bridge_pytest_v5.2' into 'release/v5.2'
ci(esp_eth): run iperf over longer period for SPI ETH bridge (v5.2)

See merge request espressif/esp-idf!29267
2024-03-11 10:34:24 +08:00
a258fa9a59 Merge branch 'fix/fix_curses_py312' into 'release/v5.2'
Fix Access Violation Error on Windows with Python 3.12

See merge request espressif/esp-idf!29289
2024-03-11 10:33:38 +08:00
afe0e318c1 Merge branch 'bugfix/nvs_lock_initi_and_multipage_blob_v5.2' into 'release/v5.2'
Bugfix/nvs Improved handling of BLOB during unreliable power environment and concurrent data access scenarios (v5.2)

See merge request espressif/esp-idf!29320
2024-03-11 10:32:21 +08:00
f2da2e8b77 Merge branch 'bugfix/eth_link_reset_v5.2' into 'release/v5.2'
fix(esp_eth): Fixed Ethernet link reset when Ethernet is stopped (v5.2)

See merge request espressif/esp-idf!29328
2024-03-11 10:31:09 +08:00
0a83a253ca Merge branch 'bugfix/sdspi_acmd41_arg_v5.2' into 'release/v5.2'
fix(sdmmc): fixes for card initialization (ACMD41) (v5.2)

See merge request espressif/esp-idf!29376
2024-03-11 10:30:52 +08:00
zwx
9da4043cba fix(phy): fix pll track when enabling and disabling PHY frequently 2024-03-11 10:30:22 +08:00
8f89b32938 Merge branch 'update/bump_littlefs_to_1.14.2_v5.2' into 'release/v5.2'
feat: LittleFS bump version to 1.14.2 (v5.2)

See merge request espressif/esp-idf!29453
2024-03-11 10:29:25 +08:00
2ac4df6e47 Merge branch 'feat/newlib-add-aligned-alloc_v5.2' into 'release/v5.2'
feat(newlib): Add definition of aligned_alloc to heap.c (backport v5.2)

See merge request espressif/esp-idf!29470
2024-03-11 10:23:23 +08:00
a15fd9846b Merge branch 'fix/bbpll_usb_link_error_backport5.2' into 'release/v5.2'
fix(esp_phy): Allow WiFi/USB interference workaround option only on supported targets (backport v5.2)

See merge request espressif/esp-idf!29481
2024-03-11 10:22:26 +08:00
8def30a57b Merge branch 'bugfix/fix_some_ble_bugs_240310_v5.2' into 'release/v5.2'
Bugfix/fix some ble bugs 240310 v5.2(backport v5.2)

See merge request espressif/esp-idf!29521
2024-03-11 10:21:25 +08:00
c2b4a872cb fix(ble/bluedroid): Fixed BLE crash when repeatedly initialize and deinitialize host 2024-03-10 20:01:04 +08:00
8bab1037bb fix(ble/bluedroid): Fixed BLE BLE periodic advertising parameter check 2024-03-10 20:00:49 +08:00
bf17be96b4 Merge branch 'fix/support_gcm_soft_fallback_for_non_aes_ciphers_v5.2' into 'release/v5.2'
fix(mbedtls/gcm): Add support for software fallback for non-AES ciphers in a GCM operation (v5.2)

See merge request espressif/esp-idf!29250
2024-03-08 22:51:58 +08:00
259e2ba975 Merge branch 'bugfix/expose_baud_rate_in_menu_v5.2' into 'release/v5.2'
fix(nimble): Exposed the baud rate for hci uart in menuconfig (v5.2)

See merge request espressif/esp-idf!29488
2024-03-08 22:51:30 +08:00
909e7fcc3b Merge branch 'features/uart_host_only_tut_v5.2' into 'release/v5.2'
docs(nimble): Improved documentation for uart host only example (v5.2)

See merge request espressif/esp-idf!29490
2024-03-08 22:50:01 +08:00
1f8e365608 Merge branch 'bugfix/gap_connect_failed_with_0x0d_v5.2' into 'release/v5.2'
fix(nimble): Revise the help section for the Kconfig macro BLE_RPA_TIMEOUT (v5.2)

See merge request espressif/esp-idf!29492
2024-03-08 22:43:42 +08:00
eca7d88db5 fix(menuconfig): Prevent Access violation on Windows with Python 3.12
Closes https://github.com/espressif/esp-idf/issues/13232
2024-03-08 13:11:25 +01:00
36092067a0 fix(nvs): Fixed Page::findItem performance degradation caused by wrong condition before hash map use
The condition enabling use of hash map when page is searched for Item was modified
to correct the bug introduced by commit addressing delete of any BLOB_INDEX Items.
This correction returns the performance of findItem to the state before previous change.
2024-03-08 12:57:58 +01:00
61f8f1905f Merge branch 'feat/read_multiple_variable_length_v5.2' into 'release/v5.2'
feat(nimble): read multiple variable length characteristics (v5.2)

See merge request espressif/esp-idf!29128
2024-03-08 19:40:21 +08:00
6f46cd332e fix(usb/host): Fixed crash on MSC disk disconnection 2024-03-08 12:09:48 +01:00
df5d0be767 fix(tools): do not use builtin memcpy/memset/strcpy on xtensa chips
Closes https://github.com/espressif/esp-idf/issues/13228
2024-03-08 13:17:42 +04:00
35630f5e52 Merge branch 'bugfix/fix_ble_max_reconnect_v5.2' into 'release/v5.2'
fix(ble/bluedroid): Update maximum BLE reconnection attempts configuration(backport v5.2)

See merge request espressif/esp-idf!29224
2024-03-08 16:48:22 +08:00
ba28b5a599 refactor(espcoredump): simplify uart/flash write flow 2024-03-08 09:28:07 +01:00
4544d37078 refactor(espcoredump): replace uart and flash callbacks with aliases 2024-03-08 09:16:11 +01:00
0077c1234f refactor(espcoredump): keep checksum context in coredump stack 2024-03-08 09:12:09 +01:00
2fe12978a0 feat(newlib): Add definition of aligned_alloc to heap.c
Add the definition of aligned_alloc to the list of
definitions provided by heap.c.

Note that memalign (strictly equivalent) to aligned_alloc
is already defined in heap.c.
2024-03-08 07:48:34 +01:00
756efd4829 fix(nimble): Revise the help section for the Kconfig macro BLE_RPA_TIMEOUT 2024-03-08 11:35:34 +05:30
e28a335ef6 docs(nimble): Improved documentation for uart host only example 2024-03-08 10:32:37 +05:30
d1ee48208f fix(nimble): Exposed the baud rate for hci uart in menuconfig 2024-03-08 10:26:45 +05:30
9e5c30baff Merge branch 'bugfix/reset_reasons_v5.2' into 'release/v5.2'
Update reset reasons for C6, H2, P4 and C5 (v5.2)

See merge request espressif/esp-idf!29180
2024-03-08 09:42:36 +08:00
028093efe6 Merge branch 'fix/esp_system_requires_esp_gdbstub_v5.2' into 'release/v5.2'
fix(esp_system): Updated the CMakeLists.txt to add requirement for esp_gdbstub component (v5.2)

See merge request espressif/esp-idf!29473
2024-03-08 09:18:52 +08:00
e5665a198a feat(nimble): read multiple variable length characteristics (v5.2) 2024-03-07 19:48:21 +05:30
deacd79736 Merge branch 'bugfix/handle_callout_free_in_deinit_v5.2' into 'release/v5.2'
fix(nimble): Handle memory leak in callout deinit (v5.2)

See merge request espressif/esp-idf!29459
2024-03-07 22:02:25 +08:00
d9be451649 Merge branch 'bugfix/add_esp_timer_get_expiry_time_v5.2' into 'release/v5.2'
fix(nimble): Add support for esp_timer_get_expiry_time to nimble porting layer (v5.2)

See merge request espressif/esp-idf!29462
2024-03-07 21:49:00 +08:00
bbb549c830 fix(esp_phy): Allow WiFi/USB interference workaround option only on supported targets
"Enable USB when phy init" Kconfig option would call esp_phy function
`phy_bbpll_en_usb()` that is not implemented for all targets.
Selecting this option for unsupported target results in linking error.

The necessity of this workaround is now defined soc_caps.h rather than
in the Kconfig.

Closes https://github.com/espressif/esp-idf/issues/12185
2024-03-07 12:47:39 +01:00
8dfbb9e816 docs: update cn trans fatal-errors 2024-03-07 09:29:28 +01:00
33271be13b fix(esp_system): Updated the conditions for the GDBStub on Panic Kconfig option
This commit updates the Panic handler behavior Kconfig setting to make
the GDBStub on Panic (CONFIG_ESP_SYSTEM_PANIC_GDBSTUB) option to be only
available when esp_gdbstub is part of the component list of the build.

Closes https://github.com/espressif/esp-idf/issues/13218
2024-03-07 09:29:28 +01:00
6c1542e151 Merge branch 'fix/openthread_alarm_timer_overflow_v5.2' into 'release/v5.2'
fix(openthread): fix openthread_alarm_timer_overflow (backport v5.2)

See merge request espressif/esp-idf!29390
2024-03-07 15:09:03 +08:00
9682d3b355 fix(nimble): Add support for esp_timer_get_expiry_time to nimble porting layer 2024-03-07 11:23:22 +05:30
2476315a3b fix(nimble): Handle memory leak in callout deinit 2024-03-07 11:14:40 +05:30
4ff5528a23 feat(bt/bluedroid): Add ext adv and privacy status check 2024-03-07 12:31:42 +08:00
d406bf02b5 fix(bt/bluedroid): Fixed "reprot" typo in esp_ble_gap_ext_adv_reprot_t 2024-03-07 12:31:36 +08:00
119af9f78f fix(bt/example): Use correct struct type 2024-03-07 12:31:31 +08:00
cb8a1eb219 fix(bt/blufi): Fixed BluFi module link error(C++ hybrid compilation) 2024-03-07 12:31:25 +08:00
94c0684fdb fix(bt/bluedroid): Fixed crash when calculating GATTS database hash 2024-03-07 12:31:19 +08:00
9cc713cd06 fix(bt): Update bt lib for ESP32(5ea2fca)
- Fixed HCI command status event sending for disconnect command
- Fixed LE transmitter test command param check
2024-03-07 12:30:57 +08:00
e852e0a106 fix(bt/controller): Fixed 3 esp32 bt controller bugs
update esp32 bt-lib (952debf4)

1. Increased the length of queue for coexist requestions
2. fix(bt/controller): Cleared BT SNIFF when no connections exists
3. fix(bt/controller): Corrected a typo in coex module
2024-03-07 12:30:41 +08:00
15fe8086ee fix(bt): Update bt lib for ESP32(2de69f3)
- Fixed HCI command status event send when LLCP busy
2024-03-07 12:29:41 +08:00
391c3a1ce9 Merge branch 'bugfix/addr_resol_for_esp32_v5.2' into 'release/v5.2'
fix(nimble): Added the check to prevent address resolution in case of identity addr for esp32(v5.2)

See merge request espressif/esp-idf!29333
2024-03-07 11:52:39 +08:00
dd70bf2f0a Merge branch 'change/reduce_usage_of_iram_when_bt_in_single_mode_v5.2' into 'release/v5.2'
change(bt/bluedroid): Redirect app functions in controller based on the bluetooth mode(backport v5.2)

See merge request espressif/esp-idf!29225
2024-03-07 11:24:14 +08:00
8bf27c103c Merge branch 'bugfix/fix_flash_encryption_rom_c3_v5.2' into 'release/v5.2'
fix(spi_flash): Fix issue that flash encryption failed while rom_impl config is enabled(backport v5.2)

See merge request espressif/esp-idf!29350
2024-03-07 10:07:25 +08:00
344db9a7e7 Merge branch 'feature/usb_hs_periodic_scheduler_v5.2' into 'release/v5.2'
feat(usb/host): Update ISOC scheduler for HS endpoints (backport 5.2)

See merge request espressif/esp-idf!29399
2024-03-07 10:03:20 +08:00
8b99b2deb0 Merge branch 'contrib/github_pr_13025_v5.2' into 'release/v5.2'
Missing include for rom/uart.h (GitHub PR) (v5.2)

See merge request espressif/esp-idf!29360
2024-03-07 10:02:45 +08:00
78637971e5 Merge branch 'contrib/github_pr_13294_v5.2' into 'release/v5.2'
Flush rgb lcd PSRAM framebuffers after allocation (GitHub PR) (v5.2)

See merge request espressif/esp-idf!29393
2024-03-07 10:02:04 +08:00
6fe8a34ff8 Merge branch 'bugfix/usb_host_usbh_callback_misses_action_v5.2' into 'release/v5.2'
fix(usb): Fix bug where usbh_process() misses an event (v5.2)

See merge request espressif/esp-idf!29364
2024-03-07 10:01:51 +08:00
c630c0493a Merge branch 'bugfix/ble_update_lib_20240223_v5.2' into 'release/v5.2'
update lib on release/v5.2

See merge request espressif/esp-idf!29210
2024-03-07 09:42:14 +08:00
1cc16ab128 feat: LittleFS bump version to 1.14.2 2024-03-07 01:35:03 +01:00
335b970868 Merge branch 'enable_flash_elf_sha_tests_v5.2' into 'release/v5.2'
Enable SHA256 coredump flash integrity verification for all targets (v5.2)

See merge request espressif/esp-idf!29038
2024-03-07 02:51:07 +08:00
94bec845ea Merge branch 'bugfix/increase_reattempt_conn_count_v5.2' into 'release/v5.2'
fix(nimble): Increase range of reattempt connection count (v5.2)

See merge request espressif/esp-idf!29340
2024-03-06 22:54:03 +08:00
a92b18c37e fix(nimble): Added check to prevent addr resolution for identity addr 2024-03-06 20:22:15 +05:30
c36c0c34a1 Merge branch 'register_gcov_tick_hook_once_v5.2' into 'release/v5.2'
fix(gcov): avoid multiple tick hook registration (v5.2)

See merge request espressif/esp-idf!29272
2024-03-06 22:49:33 +08:00
c0faa8fa94 Merge branch 'bugfix/move_countv5.2' into 'release/v5.2'
fix(nimble): Fix compilation issue in nimble for -O2 flag (v5.2)

See merge request espressif/esp-idf!29072
2024-03-06 22:49:03 +08:00
9fe886edcd Merge branch 'bugfix/freertos_tick_hook_build_issue_v5.2' into 'release/v5.2'
fix(freertos/idf): Fix build error when CONFIG_FREERTOS_USE_TICK_HOOK is enabled (v5.2)

See merge request espressif/esp-idf!29434
2024-03-06 20:16:22 +08:00
0993dfb880 Merge branch 'fix/py_dep_check_v5.2' into 'release/v5.2'
fix(tools): catch more general errors in python dependency checker (v5.2)

See merge request espressif/esp-idf!29163
2024-03-06 20:16:15 +08:00
0c4d864823 Merge branch 'feat/bump_up_pre_commit_hook_v5.2' into 'release/v5.2'
fix: Bump up pre-commit hooks version (v5.2)

See merge request espressif/esp-idf!29252
2024-03-06 20:15:56 +08:00
729e5cb126 Merge branch 'fix/idf_tools_diff_python_dir_v5.2' into 'release/v5.2'
fix(tools): Add additional Python environment checks (v5.2)

See merge request espressif/esp-idf!29382
2024-03-06 20:15:29 +08:00
5ba3b99f2b feat(coredump): use SHA ROM functions for all targets except ESP32
For ESP32, continue using mbedtls due to a required ROM patch for the SHA implementation.
For other targets, we can now leverage the ROM functions.
2024-03-06 13:08:09 +01:00
57249447a7 Merge branch 'bugfix/esp_intr_free_v5.2' into 'release/v5.2'
fix(esp_hw_support): Fix esp_intr_free when task has no core affinity (v5.2)

See merge request espressif/esp-idf!29193
2024-03-06 19:58:30 +08:00
8c6ce09982 Merge branch 'fix/pmp_idcache_reg_prot_v5.2' into 'release/v5.2'
fix(esp_hw_support): Fix the I/DCACHE region PMP protection (v5.2)

See merge request espressif/esp-idf!29356
2024-03-06 19:55:11 +08:00
c83dc69938 Merge branch 'refactor/protocomm_public_hdr_v5.2' into 'release/v5.2'
refactor(protocomm): Make the protocomm `proto-c` headers public (v5.2)

See merge request espressif/esp-idf!29358
2024-03-06 19:54:25 +08:00
00f130621f Merge branch 'bugfix/encrypted_flash_write_safe_addr_v5.2' into 'release/v5.2'
fix(spi_flash): check for safe write address in encrypted flash API (v5.2)

See merge request espressif/esp-idf!29204
2024-03-06 19:53:53 +08:00
64dcc3cee1 Merge branch 'bugfix/host_security_workflow_docs_update_v5.2' into 'release/v5.2'
fix(docs): correct the UART ROM DL mode disable section for ESP32 (v5.2)

See merge request espressif/esp-idf!29308
2024-03-06 19:53:43 +08:00
93ec3acfce Merge branch 'fix/console_none_build_issues_v5.2' into 'release/v5.2'
fix(console): Fix build issues when CONFIG_ESP_CONSOLE_NONE is enabled (v5.2)

See merge request espressif/esp-idf!29338
2024-03-06 19:52:20 +08:00
eb8e894147 Merge branch 'staging/espcoredump_move_strings_flash_v5.2' into 'release/v5.2'
change(espcoredump): save RAM space by placing constants in flash (backport v5.2)

See merge request espressif/esp-idf!29190
2024-03-06 19:51:21 +08:00
53e2f9096d Merge branch 'update/version_5_2_1' into 'release/v5.2'
Update version to 5.2.1

See merge request espressif/esp-idf!29429
2024-03-06 17:55:38 +08:00
c15484ec58 change(freertos): Test tick and idle hooks in options test
Add CONFIG_FREERTOS_USE_TICK_HOOK and CONFIG_FREERTOS_USE_IDLE_HOOK to
sdkconfig.ci.freertos_options to ensure those options are tested.
2024-03-06 13:52:51 +08:00
e4eaa28b82 fix(freertos/idf): Fix build error when CONFIG_FREERTOS_USE_TICK_HOOK is enabled
Closes https://github.com/espressif/esp-idf/issues/13297
2024-03-06 13:52:13 +08:00
a322e6bdad change(version): Update version to 5.2.1 2024-03-05 16:58:26 +01:00
99daa62628 Merge branch 'ci/full_fetch_while_check_version_v5.2' into 'release/v5.2'
ci: use full fetch while checking git tags (v5.2)

See merge request espressif/esp-idf!29427
2024-03-05 23:46:50 +08:00
112488fbcf ci: use full fetch while checking git tags 2024-03-05 15:40:01 +01:00
e3f811b5b8 feat(usb/host): Update ISOC scheduler for HS endpoints
USB-OTG uses 'sched_info' field of HCTSIZ register to schedule transactions
in USB microframes.
2024-03-04 10:00:35 +01:00
05ff8169f7 fix(esp_lcd): Flush rgb lcd PSRAM framebuffers after allocation
Flush PSRAM framebuffers after allocation to avoid visual corruption.

Merges https://github.com/espressif/esp-idf/pull/13294
Closes https://github.com/espressif/esp-idf/issues/13293
2024-03-04 15:55:04 +08:00
7ec8266e77 Merge branch 'bugfix/serial_jtag_v5.2' into 'release/v5.2'
fix(usb_serial_jtag): Fix issue that boot failed on esp32c3 (for v5.2)

See merge request espressif/esp-idf!29381
2024-03-04 15:20:20 +08:00
b98b548f01 fix(openthread): fix openthread alarm timer calculation remaining_us overflow issue 2024-03-04 15:14:08 +08:00
194b616c36 fix(usb_serial_jtag): Fix issue that boot failed on esp32c3,
Closes https://github.com/espressif/esp-idf/issues/13197
2024-03-04 10:19:47 +08:00
88867e66d1 fix(tools): Add additional Python installation checks
Warn if IDF_PYTHON_ENV_PATH set to a suspicious path with
different ESP-IDF version and/or Python version.

Fail if the virtual environment was created for a different ESP-IDF
version.

Closes https://github.com/espressif/esp-idf/issues/13196
2024-03-01 15:58:06 +01:00
f8dde8cebf fix(sdmmc): extend the maximum number of retries of ACMD41
According to the application note in SD Card Physical Specification:

> The host shall set ACMD41 timeout more than 1 second to abort repeat
of issuing ACMD41 when the card does not indicate ready. The timeout
count starts from the first ACMD41 which is set voltage window
in the argument.

Previously, the timeout was exactly one second, and this caused
certain larger-capacity cards to "time out", because they couldn't
finish initialization process in time.
2024-03-01 10:49:44 +01:00
516a4ba28d fix(sdmmc): use correct argument for ACMD41 in SPI mode
ACMD41 argument is different between SD mode and SPI mode.
In SPI mode, the only non-zero bit may be the HCS bit. Unlike the SD
mode, the bits reflecting the host's OCR should be zero.
Previously, we used to set these bits the same way as for the SD mode.
This has caused certain cards to fail initializing, apparently their
controllers have checked the ACMD41 argument more strictly and refused
to finish initialization, resulting in an error such as

    sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107

(Note that this error may have other causes than the one fixed in
this commit. For example, if the card doesn't have a sufficient and
stable power supply, it may also fail to complete the internal
initialization process, and will never clear the busy flag in R1
response.)

Closes https://github.com/espressif/esp-idf/issues/6686
Closes https://github.com/espressif/esp-idf/issues/10542
2024-03-01 10:49:43 +01:00
206f843e82 fix(uart): add missing include for rom/uart.h
Without this include it fails to compile with this error:

```
esp/esp-idf-v5.2/components/esp_rom/include/esp32/rom/uart.h:262:32: error: implicit declaration of function 'UART_STATUS_REG' [-Werror=implicit-function-declaration]
  262 |         status = READ_PERI_REG(UART_STATUS_REG(uart_no));
```

Merges https://github.com/espressif/esp-idf/pull/13025
2024-03-01 14:36:43 +08:00
8582b27f1d refactor(protocomm): Make the protocomm proto-c headers public 2024-03-01 10:26:23 +05:30
4a7cda8cb0 feat(tools/test_apps): Add violation tests for the flash I/DROM region
- For SoCs supporting PMP
2024-03-01 10:25:08 +05:30
68442ecaa0 refactor(esp_hw_support): Remove redundant PMP entry for ROM region
- The ROM text and data sections share the address range
    (see SOC_I/DROM_MASK_LOW - SOC_I/DROM_MASK_HIGH).
  - Initially, we had two PMP entries for this address range - one marking the
    region as RX and the other as R.
  - However, the latter entry is redundant as the former locks the PMP settings.
  - We can divide the ROM region into text and data sections later when we
    define boundaries marking these regions from the ROM.
2024-03-01 10:25:07 +05:30
a56fc41215 fix(esp_hw_support): Fix the I/DCACHE region PMP protection 2024-03-01 10:25:07 +05:30
4f6cca6f08 Merge branch 'bugfix/fix_c2_disconnect_reason_code_wrong_issue_v5.2' into 'release/v5.2'
fix(wifi): fix esp32c2 disconnect reason code wrong issue(Backport v5.2)

See merge request espressif/esp-idf!29346
2024-03-01 10:56:35 +08:00
355df44822 fix(spi_flash): Fix issue that flash encryption failed while rom_impl config is enabled
The issue is `esp_flash_write_encryped` function in ROM on ESP32C3, ESP32S3
calls legacy implementation, which uses old configuration. And this causes
write fails.
The solution in this commit is to compile and link this function(and related)
in IRAM instead of the ROM one.
The IRAM cost increases around 1.2KB after the fix
2024-03-01 10:38:27 +08:00
d005e71acd fix(wifi): fix esp32c2 disconnect reason code wrong issue 2024-02-29 19:21:18 +08:00
c410322070 fix(nimble): Increase range of reattempt connection count 2024-02-29 15:57:28 +05:30
6bacffff21 change(console): Add build test for no console output
This commit adds a build test to test the scenario where both the primary and
secondary console outputs are disabled by Kconfig.
2024-02-29 17:39:34 +08:00
1f73689c50 fix(console): Fix build issues when CONFIG_ESP_CONSOLE_NONE is enabled
This commit fixes the following build issues when CONFIG_ESP_CONSOLE_NONE is
enabled:

- esp_console_repl.c will have 'defined but unused' warnings on various console
functions.
- esp_console_repl.c does not use "TAG" when CONFIG_ESP_CONSOLE_NONE is
enabled, leading to a "defined by not used" warning.

Closes https://github.com/espressif/esp-idf/issues/12984
2024-02-29 17:36:41 +08:00
50282f1e7a fix(usb): Fix bug where usbh_process() misses an event
This commit fixes a bug where if multiple concurrent USBH API calls trigger
multiple events on the same device, some events will be lost. As a result,
those lost events don't get processed by the subsequent usbh_process() call.
2024-02-29 16:02:30 +08:00
ed304d5173 fix(esp_eth): Fixed Ethernet link reset when Ethernet is stopped 2024-02-28 15:47:56 +01:00
c4eaf86516 fix(nvs): Improved lockig mechanism for initialization phase 2024-02-28 12:37:21 +01:00
e51277fbc7 fix(nvs): eraseMultiPageBlob to robustly delete all related BLOB_DATA records and respect VER_ANY 2024-02-28 12:37:21 +01:00
7938bbf3c0 fix(nvs): corrected findItem to return BLOB_DATA when chunkIndex = CHUNK_ANY 2024-02-28 12:37:21 +01:00
2fc1fabcee fix(nvs): added check and erase of mismatched BLOB_DATA on init 2024-02-28 12:37:21 +01:00
4746554954 fix(nvs): prevent out of bounds write if blob data is inconsistent 2024-02-28 12:37:21 +01:00
016575ccda fix(docs): correct the UART ROM DL mode disable section for ESP32 2024-02-28 08:33:35 +05:30
1bebd2d8d2 fix(gcov): avoid multiple tick hook registration 2024-02-26 13:56:33 +01:00
2ceb122ee2 ci(esp_eth): run iperf over longer period for SPI ETH bridge 2024-02-26 12:28:15 +01:00
df6a32f305 fix(esp_hw_support): fix cache safe check function 2024-02-26 17:42:14 +08:00
88e3e64348 fix: Bump up pre-commit hooks version 2024-02-26 10:34:39 +01:00
0f7c9a29a2 ci(mbedtls/gcm): Added test to verify software fallback for non-AES cipher GCM operations 2024-02-26 14:29:20 +05:30
ca4f560f2b fix(mbedtls/gcm): Add support for software fallback for non-AES ciphers in a GCM operation
- Even if the config MBEDTLS_HARDWARE_AES is enabled, we now support fallback
to software implementation of GCM operations when non-AES ciphers are used.
2024-02-26 14:29:18 +05:30
c365c5db2a change(bt/bluedroid): Redirect app functions in controller based on the bluetooth mode 2024-02-23 18:57:53 +08:00
zwl
a055ee6da6 bugfix(ble) : fixed some ble issues on ESP32-C2 2024-02-23 18:02:57 +08:00
1143fea119 docs: update rf coexistenct api guides
1. support esp32c2
2. fix inconsistency between CN and EN docs of rf coexistence
3. adjust the visibility of some contents based on soc_caps
2024-02-23 16:20:18 +08:00
3d5852131b fix(esp_coex): add support_coexistence soc_caps for esp32c2 and esp32h2 2024-02-23 16:15:45 +08:00
4521a50db5 fix(ble/bluedroid): Update maximum BLE reconnection attempts configuration 2024-02-23 15:57:45 +08:00
zwl
f04e4f99e6 ble(update):
Update c2 lib to 79be7ec9
Update h2 lib to c6f7cb08
Update c6 lib to c6f7cb08
2024-02-23 14:08:03 +08:00
72ba89f191 fix(spi_flash): check for safe write address in encrypted flash API 2024-02-23 12:42:31 +08:00
a328e1a08f Merge branch 'bugfix/fixed_some_wifi_bugs_240222_v5.2' into 'release/v5.2'
fix(wifi): fixed some wifi bugs 240222 v5.2 (Backport v5.2)

See merge request espressif/esp-idf!29185
2024-02-23 00:18:45 +08:00
80a1f5e18c fix(nimble): Fix compilation issue in nimble for -O2 flag (v5.2) 2024-02-22 21:36:12 +05:30
e573b7cee1 Merge branch 'bugfix/remove_namespace_variable_name_v5.2' into 'release/v5.2'
fix(nimble): update variable name to avoid using keyword (v5.2)

See merge request espressif/esp-idf!28973
2024-02-22 23:58:10 +08:00
f0ae83d056 change(pm): use old ext1 api for pytest 2024-02-22 20:06:28 +08:00
8e1cd38970 Merge branch 'c6_auto_dbias_master_hsq_v5.2' into 'release/v5.2'
ESP32C6: Active & sleep dbg and dbias get from efuse to fix the voltage (v5.2)

See merge request espressif/esp-idf!28729
2024-02-22 20:04:08 +08:00
2f707291eb fix(esp_hw_support): Fix esp_intr_free when taks has no core affinity
Closes https://github.com/espressif/esp-idf/issues/12608
2024-02-22 13:00:34 +02:00
f10d734f30 change(espcoredump): save RAM space by placing constants in flash
All the log messages of espcoredump component used to be in DRAM, which would
lower the available RAM space for the user application. Since the cache is always
enabled after an exception, constants can be put in flash.
2024-02-22 18:45:52 +08:00
24615ef848 fix(tools): catch more general errors in python dependency checker 2024-02-22 10:23:41 +01:00
2fc023ef95 Merge branch 'bugfix/cannot_jump_range_v5.2' into 'release/v5.2'
fix(temperature_sensor): Cannot switch the range smmothly on esp32h2(backport v5.2)

See merge request espressif/esp-idf!29152
2024-02-22 16:53:41 +08:00
20a3c78034 fix(wifi): fixed some wifi issues
1. fix(wifi/mesh): wait for child disconnect when mesh deinit
2. fix(wifi): fix wifi stop cost too much time
3. fix(clk): clear all lpclk source at clk init
4. fix(wifi): fixed scan and home channel change issues
5. fix(wifi):fix issues that in mplen clear and esp_wifi_set_mode
6. fix(wifi): fix qos encapsulated eapol issue
7. fix(wifi): fixed dhcp offer and dhcp ack data rates
8. fix(wifi): fix lmac_stop_hw_txq issue
2024-02-22 15:36:14 +08:00
383a1e8697 Merge branch 'feat/oled_example_use_new_i2c_master_driver_v5.2' into 'release/v5.2'
feat(i2c_lcd): use new i2c master driver in oled example (v5.2)

See merge request espressif/esp-idf!29178
2024-02-22 15:27:57 +08:00
3f730f2453 Merge branch 'feature/add_fall_back_dns_config_in_menuconfig_v5.2' into 'release/v5.2'
feat(lwip): add fall back dns config in menuconfig (v5.2)

See merge request espressif/esp-idf!29154
2024-02-22 15:21:51 +08:00
1aca617c33 fix(wifi): fix some wifi issues
1. fix qos encapsulated eapol issue
2. fixed dhcp offer and dhcp ack data rates
2024-02-22 15:11:10 +08:00
faf0de3b55 fix(example): fixed app partion is too small for binary size 2024-02-22 15:11:00 +08:00
8a6c2fe68f fix(wifi): fixed scan and home channel change issues
1. update scan ap number when clear scan ap records
2. fixed the old_snd filed error in WIFI_EVENT_HOME_CHANNEL_CHANGE event

Closes https://github.com/espressif/esp-idf/issues/13051
2024-02-22 15:09:09 +08:00
27e3d41026 fix(clk): clear all lpclk source at clk init 2024-02-22 15:07:59 +08:00
b3a73d5b63 feat(pmu): set fix voltage to different mode for esp32c6 2024-02-22 14:49:01 +08:00
e930ff0b1f fix(system): update reset reasons for C6 and H2 2024-02-22 12:37:49 +08:00
77f5391037 Merge branch 'feat/add_test_api_for_sec_v5.2' into 'release/v5.2'
Feat/add test api for sec v5.2

See merge request espressif/esp-idf!29169
2024-02-22 12:20:47 +08:00
9dcc8c9e7d Merge branch 'bugfix/update_spp_doc_v5.2' into 'release/v5.2'
docs(bt/bluedroid): update API documents of SPP (v5.2)

See merge request espressif/esp-idf!29170
2024-02-22 12:20:12 +08:00
aa7d73c8a4 feat(i2c_lcd): use new i2c master driver in oled example
Closes https://github.com/espressif/esp-idf/issues/13201
2024-02-22 12:01:30 +08:00
12ae1c19d2 Merge branch 'bugfix/fix_coex_lib_circular_dependency_v5.2' into 'release/v5.2'
fix(esp_coex): fix circular dependency issue on esp32 (v5.2)

See merge request espressif/esp-idf!29155
2024-02-22 11:45:50 +08:00
95b5f1290e Merge branch 'bugfix/ble_mesh_pb_adv_compile_error_v5.2' into 'release/v5.2'
fix(ble_mesh): Fix compiling error when PB-ADV is disabled (v5.2)

See merge request espressif/esp-idf!29151
2024-02-22 11:34:02 +08:00
b0fc0210df Merge branch 'bugfix/fix_ble_free_all_crash_issue_5.2' into 'release/v5.2'
fix(ble): Fixed the free_all crash on esp32c6 and esp32h2

See merge request espressif/esp-idf!29161
2024-02-22 11:33:22 +08:00
2d03df48b0 fix(lwip): Fixed debug format, added ci test config
Detailed description of the changes:
  - lwip_debug: Fixed string format error in ip6 and napt (espressif/esp-lwip@f5c43549)
  - dns: fix init with only ipv4 enabled (espressif/esp-lwip@5aab73d7)
2024-02-22 11:30:39 +08:00
56c7df9fbd Merge branch 'feat/usb_host_set_device_config_v5.2' into 'release/v5.2'
USB Host: Add enumeration callback filter (backport v5.2)

See merge request espressif/esp-idf!28550
2024-02-22 11:07:43 +08:00
1cd164b8fa Merge branch 'bugfix/fix_some_wifi_bugs_240221_v5.2' into 'release/v5.2'
fix(lwip): fixed some wifi bugs(Backport v5.2)

See merge request espressif/esp-idf!29147
2024-02-22 11:06:56 +08:00
527ce5eb3b Merge branch 'bugfix/spi_eth_recv_alloc_v5.2' into 'release/v5.2'
fix(esp_eth): improved SPI Ethernet _alloc_recv_buf error handling (v5.2)

See merge request espressif/esp-idf!29081
2024-02-22 11:05:26 +08:00
4bf00b2ce2 Merge branch 'bugfix/one_byte_receive_v5.2' into 'release/v5.2'
fix(i2c_master): Fix bug on esp32 that read one byte data fails(backport v5.2)

See merge request espressif/esp-idf!28634
2024-02-22 10:57:52 +08:00
5b6fbea041 docs(bt/bluedroid): update API documents of SPP 2024-02-22 09:52:53 +08:00
7560b70244 feat(bt/bluedroid): Added an event to notify the encryption mode to applicaiton layer 2024-02-22 09:51:48 +08:00
fdd1f41836 feat(bt/bluedroid): Added report for the type of link key in ESP_BT_GAP_AUTH_CMPL_EVT 2024-02-22 09:51:48 +08:00
61db22a55a Merge branch 'feature/esp32p4_coredump_support_v5.2' into 'release/v5.2'
feat(coredump): add esp32p4 chip support and doc update (v5.2)

See merge request espressif/esp-idf!28391
2024-02-22 02:41:58 +08:00
e6d7705a67 fix(nimble): update variable name to avoid using keyword (v5.2) 2024-02-21 23:40:18 +05:30
a707ab946f Merge branch 'bugfix/missing_controller_disabled_guard_v5.2' into 'release/v5.2'
fix(nimble): Fixes related to nimble host only (v5.2)

See merge request espressif/esp-idf!29138
2024-02-22 02:08:42 +08:00
fdc6099961 feat(esp-coredump): add esp32p4 chip support and doc update 2024-02-21 21:26:39 +08:00
34ec96ef23 Merge branch 'feature/spi_eth_no_int_v5.2' into 'release/v5.2'
feat(esp_eth): added SPI Ethernet module polling mode (v5.2)

See merge request espressif/esp-idf!29044
2024-02-21 20:43:46 +08:00
923546b103 Merge branch 'bugfix/fix_double_free_coc_v5.2' into 'release/v5.2'
fix(nimble): Removed double free of packet (v5.2)

See merge request espressif/esp-idf!29031
2024-02-21 20:37:34 +08:00
25290a6c67 Merge branch 'fix/examples_format_sd_card_disable_v5.2' into 'release/v5.2'
fix(examples): Disable formatting SD cards in storage examples by default (v5.2)

See merge request espressif/esp-idf!29003
2024-02-21 20:36:16 +08:00
6e7029016f Merge branch 'bugfix/bunch_tsens_v5.2' into 'release/v5.2'
fix(temperature_sensor): Fix the value is incorrect if disable and enable again (backport v5.2)

See merge request espressif/esp-idf!28626
2024-02-21 20:33:38 +08:00
001b8ff92d Merge branch 'fix/fatfs_sdmmc_triming_v5.2' into 'release/v5.2'
fix(storage/fatfs): check whether sdcard supports trimming (v5.2)

See merge request espressif/esp-idf!28335
2024-02-21 20:26:22 +08:00
db3aa57a9b Merge branch 'bugfix/workaround_reset_eof_counter_c3_v5.2' into 'release/v5.2'
fix(adc): workaround to fix adc continuous get less results on c3 (v5.2)

See merge request espressif/esp-idf!29136
2024-02-21 20:08:57 +08:00
03da41e7d7 fix(ble): Fixed the free_all crash on esp32c6 and esp32h2 2024-02-21 20:05:48 +08:00
fac5596767 feat(docs): added usb host enumeration filter description
- CN and EN docs
2024-02-21 12:34:15 +01:00
d786f187e9 feat(us/host): set device cfg during enumeration
- user callback funciton to set device configuration
      as a part of usb_host_install
    - callback provides device descriptor of a device being enumerated
    - user can set which cfg descriptor the USB device will be set with
    - user can filter device enumeration
    - Kconfig menu to enable callback function
    - usb_host_lib example demonstration
2024-02-21 12:34:04 +01:00
821185d6ec fix(nimble): fixed missing controller disabled guard in esp_nimble_deinit 2024-02-21 16:59:58 +05:30
9feab17051 Merge branch 'bugfix/signed_write_fix_v5.2' into 'release/v5.2'
fix(nimble): message to be signed is corrected in signed write (v5.2)

See merge request espressif/esp-idf!29121
2024-02-21 19:22:00 +08:00
b5a2054070 fix(esp_coex): fix circular dependency issue on esp32
Closes https://github.com/espressif/esp-idf/issues/13113
2024-02-21 19:14:53 +08:00
aa21e87cd9 feat(lwip): add fall back dns config in menuconfig 2024-02-21 19:07:01 +08:00
4df78f9cff fix(temperature_sensor): Cannot switch the range smmothly on esp32h2 2024-02-21 18:51:29 +08:00
63ba58e9a8 fix(ble_mesh): Fix compiling error when PB-ADV is disabled
Closes https://github.com/espressif/esp-idf/issues/13203
2024-02-21 18:46:49 +08:00
715ee3576e fix(i2c_master): Fix bug on esp32 that read one byte data fails 2024-02-21 18:42:21 +08:00
3e6adac5bf docs: update cn trans usb_host.rst 2024-02-21 11:33:07 +01:00
8d6167a9ab feat(docs): added USB Host Stack Configuration description 2024-02-21 11:33:07 +01:00
4df9fa5b50 fix(esp_eth): improved SPI Ethernet _alloc_recv_buf error handling 2024-02-21 10:07:12 +01:00
d0afffe8c9 fix(wifi): fix esp_wifi_scan_start memory leakage issue
Closes https://github.com/espressif/esp-idf/issues/10693
2024-02-21 16:32:31 +08:00
ffd01bf73b fix(lwip): fix log format resulting in compilation failue issue
Closes https://github.com/espressif/esp-idf/issues/12982
2024-02-21 16:32:14 +08:00
fb9db0b7ea fix(wifi): fix smart config bssid set issue 2024-02-21 16:31:53 +08:00
fde5e93ab5 feat: replace lightdriver, and support more chips in ble mesh examples 2024-02-21 15:32:58 +08:00
4a3f224fe1 Merge branch 'bugfix/esp32c2_eap_auth_v5.2' into 'release/v5.2'
fix(wifi): Added low heap usage Kconfig option for eap enterprise (v5.2)

See merge request espressif/esp-idf!28824
2024-02-21 14:31:32 +08:00
2e1e17524e fix(nimble): message to be signed is corrected in signed write (v5.2) 2024-02-21 11:45:55 +05:30
94ef39472b fix(adc): workaround to fix adc continuous get less results on c3 2024-02-21 13:38:46 +08:00
0c8b9f75f4 Merge branch 'feature/breathe_faster_v5.2' into 'release/v5.2'
feat(docs): use a faster fork of breathe-doc/breathe (v5.2)

See merge request espressif/esp-idf!28346
2024-02-21 12:01:48 +08:00
c5759b6d2b fix(tsens): 300us delay in phy cause extra power consumption 2024-02-21 11:58:30 +08:00
b69ac0fb27 fix(tsens,adc): Fix issue that disable adc will make temperature sensor crash,
Closes https://github.com/espressif/esp-idf/issues/12921
2024-02-21 11:58:26 +08:00
84e44e230b fix(temperature_sensor): Fix the value is incorrect if disable and enable again
Closes https://github.com/espressif/esp-idf/issues/12864
2024-02-21 11:58:22 +08:00
c05940a0fb Merge branch 'ci/test_limit_main_cleanup_v5.2' into 'release/v5.2'
ci(test_apps): limit dependencies for misc test_apps (v5.2)

See merge request espressif/esp-idf!29135
2024-02-21 11:44:05 +08:00
7e9a9b35ea Merge branch 'bugfix/mbo_api_flag_v5.2' into 'release/v5.2'
fix(wpa_supplicant):Add MBO config flag for mbo apis(v5.2)

See merge request espressif/esp-idf!28698
2024-02-21 11:08:09 +08:00
8a0132aacf Merge branch 'bugfix/ble_mesh_ble_advtype_v5.2' into 'release/v5.2'
ble_mesh: update ble mesh ble adv type(backport v5.2)

See merge request espressif/esp-idf!28916
2024-02-21 11:05:21 +08:00
62dbf69c0a Merge branch 'bugfix/ble_mesh_deinit_reinit_v5.2' into 'release/v5.2'
feat: ble mesh: improve ble mesh deinit when nimble enable(backport v5.2)

See merge request espressif/esp-idf!28926
2024-02-21 11:04:04 +08:00
7a9b686174 Merge branch 'bugfix/struct_init_order_blemesh_v5.2' into 'release/v5.2'
ble_mesh: example: fix the structure init order to meet C++ requirements(backport v5.2)

See merge request espressif/esp-idf!28928
2024-02-21 11:01:01 +08:00
f1561c6bc9 Merge branch 'contrib/github_pr_12867_v5.2' into 'release/v5.2'
fix(esp32): Removed rogue semicolon in #define in esp_smartconfig.h (GitHub PR) (v5.2)

See merge request espressif/esp-idf!29111
2024-02-21 11:00:38 +08:00
3c7c5829b7 Merge branch 'h2_auto_dbias_master_hsq_v5.2' into 'release/v5.2'
ESP32H2: Active & sleep dbias get from efuse to fix the voltage (v5.2)

See merge request espressif/esp-idf!28714
2024-02-21 10:49:16 +08:00
4eaefbab43 feat(docs): use a faster fork of breathe-doc/breathe
See https://github.com/breathe-doc/breathe/discussions/962
2024-02-21 10:44:24 +08:00
da6412b216 Merge branch 'bugfix/bootloader_custom_rtc_data_crc_v5.2' into 'release/v5.2'
fix(bootloader): add legacy retained memory CRC calculation (backport v5.2)

See merge request espressif/esp-idf!28937
2024-02-21 10:43:50 +08:00
683ec8053d Merge branch 'feature/littlefs_example_bump_version_lower_idf_version_v5.2' into 'release/v5.2'
feat: LittleFS example bump version to 1.13.0 (v5.2)

See merge request espressif/esp-idf!28479
2024-02-21 10:43:47 +08:00
901c5624d3 change(pm): change CMakeLists for wakeup pytest 2024-02-21 10:42:39 +08:00
229a974252 change(pm): change test_io_wakeup 2024-02-21 10:42:39 +08:00
0cdaf0008d feat(pm): add test_io_wakeup 2024-02-21 10:42:39 +08:00
bab0fa8a03 ci(test_apps): limit dependencies for misc test_apps
Only pull in direct dependencies for the test apps, reducing build time
as well making it possible for CI to determine if the test should run or not
when dependencies are changed.
2024-02-21 09:34:29 +08:00
546e9e0b6e Merge branch 'bugfix/anti_rollback_check_regression_v5.2' into 'release/v5.2'
fix(bootloader_support): check the secure version only for app image (v5.2)

See merge request espressif/esp-idf!29127
2024-02-20 23:30:04 +08:00
7e9fdf598e fix(esp_wifi): Remove semicolon from SMARTCONFIG_START_CONFIG_DEFAULT
Removed rogue semicolon from SMARTCONFIG_START_CONFIG_DEFAULT() macro. This
fixes build issues when this macro is used via C++ brace initialization.

Closes https://github.com/espressif/esp-idf/pull/12867

[Darian Leung: Updated commit message]
Signed-off-by: Darian Leung <darian@espressif.com>
2024-02-20 19:43:12 +08:00
7fafe4a9f4 Merge branch 'feature/usb_host_collective_backport_v5.2' into 'release/v5.2'
USB Host: Collective backport to v5.2

See merge request espressif/esp-idf!28095
2024-02-20 18:51:26 +08:00
98cbd1fd72 Merge branch 'docs/esp_event_minor_update_v5.2' into 'release/v5.2'
fix(docs): Minor update to esp_event.rst for improved user experience (v5.2)

See merge request espressif/esp-idf!29122
2024-02-20 18:26:11 +08:00
08a50af080 Merge branch 'bugfix/heap_task_includes_v5.2' into 'release/v5.2'
fix(heap): fixed missing include in esp_heap_task_info.h (v5.2)

See merge request espressif/esp-idf!29116
2024-02-20 18:24:30 +08:00
b2cdc06789 fix(bootloader_support): check the secure version only for app image
Secure version in the image header is only available for the application
image. However, for certain security workflows, bootloader verifies
itself (own image) and hence the secure version check during that must be
avoided.

Regression introduced in recent commit-id: 3305cb4d

Tested that both secure boot and flash-enc workflows work correctly
with the anti-rollback scenario.
2024-02-20 14:45:27 +05:30
dbbe2cf173 Merge branch 'backport5.2/openthread_backport' into 'release/v5.2'
some openthread changes backport to release/v5.2

See merge request espressif/esp-idf!28637
2024-02-20 17:01:36 +08:00
cb270eebd6 Merge branch 'bugfix/remove_o0_bootloader_v5.2' into 'release/v5.2'
fix(build): remove CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE option from c6, h2 and p4 (v5.2)

See merge request espressif/esp-idf!28752
2024-02-20 16:52:33 +08:00
7801d5bad0 fix(docs): Minor update to esp_event.rst for improved user experience
This commit adds semicolons in c-code blocks in esp_event.rst for
improved user experience when directly copying and pasting code.

Closes https://github.com/espressif/esp-idf/issues/13156
2024-02-20 07:52:19 +01:00
5cb1e9f6f4 Merge branch 'feat/support_get_bluedroid_status_v5.2' into 'release/v5.2'
Support get status of bluedroid host (backport v5.2)

See merge request espressif/esp-idf!28881
2024-02-20 14:33:46 +08:00
a3ba6b299d fix(wpa_supplicant):Add MBO config flag for mbo apis 2024-02-20 13:54:20 +08:00
768bd4750d Merge branch 'feat/ble_gap_dev_auth_v5.2' into 'release/v5.2'
feat(nimble): Authorize or deauthorize a BLE device for a connection (v5.2)

See merge request espressif/esp-idf!29079
2024-02-20 12:38:35 +08:00
6b1413c3e9 fix(heap): fixed missing include in esp_heap_task_info.h
Would fail to compile if esp_heap_task_info.h was included without/before freertos includes
2024-02-20 12:04:45 +08:00
1156370c00 Merge branch 'bugfix/fix_adc_reset_issue_on_legacy_v5.2' into 'release/v5.2'
fix(adc): fix adc continuous get less results beacuse do not reset apb clk(legacy) (v5.2)

See merge request espressif/esp-idf!28332
2024-02-20 11:25:00 +08:00
zwx
fff9980a5b feat(openthread): disable the rx on when idle in coex scenario 2024-02-20 10:41:10 +08:00
zwx
cb04df5ddf fix(openthread): fix RCP handle timeout crashing issue
* update openthread upstream
2024-02-20 10:41:00 +08:00
zwx
a64744883d fix(openthread): support uart ISR in IRAM 2024-02-20 10:32:10 +08:00
zwx
3a9bf62ed6 fix(802154): fix pending tx will be delayed issue 2024-02-20 10:32:00 +08:00
bec90ce050 docs(ieee802154): add migration note for the receive done handler feature 2024-02-20 10:31:29 +08:00
c923dd4df4 feat(ieee802154): make the receive done handler feature mandatory 2024-02-20 10:31:29 +08:00
1085fece61 feat(ieee802154): remove the ieee802154 lib submodule 2024-02-20 10:31:29 +08:00
fdd3f2d734 feat(zigbee): Updated Zigbee examples to align with esp-zigbee-lib v1.0.9 2024-02-20 10:31:29 +08:00
zwx
51bc01b557 feat(openthread): support openthread radio caps rx on when idle 2024-02-20 10:31:29 +08:00
dfb75ff2ac fix(ieee802154): add next operation in ieee802154 test when rx abort by tx ack coex 2024-02-20 10:31:29 +08:00
zwx
f978fc10c0 feat(802.15.4): introduce pending tx while rx feature 2024-02-20 10:31:29 +08:00
zwx
4184b48aa8 feat(openthread): integrate console command with ot command 2024-02-20 10:31:29 +08:00
06cca86017 feat(openthread): add menuconfig for openthread address query 2024-02-20 10:31:29 +08:00
4ddb253788 fix(openthread): set spinel frame buffer to member variables 2024-02-20 10:31:29 +08:00
936bba8073 feat(openthread): support esp openthread radio spinel 2024-02-20 10:31:29 +08:00
0e95c6cd60 fix(ci): increase inspection time of openthread sleepy device case 2024-02-20 10:31:29 +08:00
4d65903602 feat(ci): add a case for openthread border router meshcop 2024-02-20 10:31:29 +08:00
d9de786520 feat(nimble): Authorize or deauthorize a BLE device for a connection (v5.2) 2024-02-19 16:27:45 +05:30
e0944287f3 Merge branch 'bugfix/backport_ble_nimble_fixes_5.2' into 'release/v5.2'
fix(nimble) : Bugfix/backport ble nimble fixes 5.2

See merge request espressif/esp-idf!29098
2024-02-19 18:04:35 +08:00
471fe41828 refactor(soc): Remove soc/usb_types.h
This header has been removed for the following reasons:

- Header is misplaced. 'xxx_types.h' headers should be placed in the 'hal'
component.
- The 'usb_xxx_endpoint_t' should be placed in the 'xxx_struct.h' header.
2024-02-19 15:45:04 +08:00
b07a43e630 refactor(soc): Rename usb_otg_periph to usb_dwc_periph
- Renamed usb_otg_periph.h/c to usb_dwc_periph.h/c to match naming convention
of other DWC OTG related files
- Added compatibility header for usb_otg_periph.h
2024-02-19 15:45:04 +08:00
50b3a35c52 refactor(soc): Deprecate usb pin mappings
usb_pins.h and usb_periph.h/c lists mappings of USB DWC signals to GPIOs used
to connect to external FSLS PHYs. However, those signals can be routed to any
GPIOs via the GPIO matrix. Thus, these mapping are meaningless and have been
deprecated.
2024-02-19 15:45:03 +08:00
86fb02efa4 refactor(hal): Remove usb_hal and usb_ll
This commit removes some legacy USB related HAL and LL files that are no longer
used.
2024-02-19 15:45:03 +08:00
f57ef07e14 feat(usb/host): Calculate FIFO sizes based on USB configuration 2024-02-19 15:45:02 +08:00
2f6e45c79b refactor(usb): Deprecate CONFIG_USB_OTG_SUPPORTED, use SOC_USB_OTG_SUPPORTED instead
Previously, USB build dependencies used the CONFIG_USB_OTG_SUPPORTED. However,
they could depend on `soc_caps.h` instead.
2024-02-19 15:45:02 +08:00
f0219b73f9 refactor(hal/usb): Rename usb_fsls_phy API to match header/source names
Note: Also fixed some formatting issues in usb_wrap_struct.h
2024-02-19 15:45:02 +08:00
f2ede42191 refactor(hal/usb): Rename usb_phy files to usb_fsls_phy
This commit renames USB PHY related HAL files from "usb_phy_xxx" to
"usb_fsls_phy_xxx" since they are only designed to support Full-Speed/Low-Speed
Serial USB PHYs. This renmaing is done to accommodate future USB PHYs that use
other PHY interfaces (e.g., UTMI, ULPI etc).
2024-02-19 15:45:01 +08:00
c1f0823795 refactor(hal/usb): Remove usage of old USB OTG config macros 2024-02-19 15:45:01 +08:00
d08b90c5cc refactor(soc/host): Update USB OTG struct fields
This commit updates the "*_struct.h" files for the USB OTG peripheral:

- Added/removed some missing/non-existing register fields
- Added "reserved" place holders for registers that are missing due to IP
configuration.
- Added "usb_dwc_cfg.h" listing the USB OTG IP configuration for each target.
- Updated LL/HAL according to register field updates. Also tidied up the include
directives in those headers.
2024-02-19 15:45:00 +08:00
bf9706dc31 refactor(hal/usb): Fix USB OTG compilation dependency
Update "hal/CMakeLists.txt" so that USB OTG related HAL files depend on
the "SOC_USB_OTG_SUPPORTED" capability.
2024-02-19 15:45:00 +08:00
3964fb2d04 refactor(usb/host): reformat code with astyle_py 2024-02-19 15:45:00 +08:00
1e2c271bd0 fix(usb/host): Correctly parse bInterval field in HighSpeed EP descriptors
For LS and FS interrupt endpoint: interval = bInterval
For isochronous and HS interrupt endpoint: interval = 2^(bInterval-1)
2024-02-19 15:44:59 +08:00
0ce4aa114e fix(usb/host): Correctly parse MPS fields in HighSpeed EP descriptors
Bits [11,12] in HighSpeed periodic endpoints specify
the number of additional transaction opportunities per microframe
2024-02-19 15:44:59 +08:00
1c2a6712e3 Merge branch 'bugfix/ble_update_lib_20240125_v5.2' into 'release/v5.2'
Bugfix/ble update lib 20240125 v5.2

See merge request espressif/esp-idf!28710
2024-02-19 15:29:25 +08:00
d4dd0d4201 Merge branch 'bugfix/fix_some_ble_issue_v5.2' into 'release/v5.2'
Bugfix/fix some ble issue v5.2(backport v5.2)

See merge request espressif/esp-idf!28617
2024-02-19 15:19:24 +08:00
7ab43c0fbd fix(adc): fix adc continuous get less results beacuse do not reset apb clk(legacy) 2024-02-19 15:02:30 +08:00
3d8fd79a10 fix(wifi): add low memory options for eap enterprise 2024-02-19 14:33:55 +08:00
d9561b8fc7 fix(nimble): Out of order messages during SMP causing DOS vulerability (v5.2) 2024-02-19 09:27:55 +05:30
bc3dcdfc0d fix(nimble): Merge hci_common.h file for all chips 2024-02-19 09:27:09 +05:30
012506114e feat(nimble): Nimble Host only mode over uart 2024-02-19 09:26:34 +05:30
e23a61a47a feat(nimble): client presentation and aggregate format descriptor support 2024-02-19 09:24:34 +05:30
c0f48a19fc feat(nimble): signed write support 2024-02-19 09:24:30 +05:30
7d6f5fa71d feat(nimble): additional AD types for advertisements 2024-02-19 09:24:26 +05:30
16acdf1bbb feat(nimble): authorization permission on gatt read and write 2024-02-19 09:24:21 +05:30
e16882f0cd fix(nimble): allow auto connection and observer role 2024-02-19 09:24:14 +05:30
7e6e769aed Merge branch 'bugfix/ble_bug_backport_20240205' into 'release/v5.2'
Bugfix/ble bug backport 20240205 (backport v5.2)

See merge request espressif/esp-idf!28901
2024-02-19 11:07:29 +08:00
8ab1027fee Merge branch 'bugfix/fix_ble_tx_2m_problem_causing_by_phy_wifi_enable_set_v5.2' into 'release/v5.2'
fix(esp_phy): Fixed BLE TX 2M problem causing by phy_wifi_enable_set() (backport v5.2)

See merge request espressif/esp-idf!28762
2024-02-19 11:04:45 +08:00
65d127da88 Merge branch 'feature/supplicant_bss_extmem_v5.2' into 'release/v5.2'
WiFi: Add support to move supplicant BSS to external memory (v5.2)

See merge request espressif/esp-idf!28743
2024-02-19 11:04:24 +08:00
e8548e7a1a Merge branch 'bugfix/fix_pmk_invalid_wpa_or_wpa2_connect_fail_issue_v5.2' into 'release/v5.2'
fix(wifi): fix pmk invalid lead same ssid wpa and wpa2 connect fail issue(Backport v5.2)

See merge request espressif/esp-idf!28666
2024-02-19 11:03:52 +08:00
6bfe219bb1 Merge branch 'ci/enable_ip101_jobs_v5.2' into 'release/v5.2'
ci(esp_eth): enabled Ethernet ip101 jobs (v5.2)

See merge request espressif/esp-idf!28613
2024-02-19 11:02:42 +08:00
be718f6849 Merge branch 'ble_dev/added_ble_power_save_pytest_v5.2' into 'release/v5.2'
Added pytest case for BLE power save example v5.2

See merge request espressif/esp-idf!28596
2024-02-19 11:02:06 +08:00
4f5c87a294 Merge branch 'fix/ble_mesh_reject_node_reset_v5.2' into 'release/v5.2'
fix(ble_mesh): reject node-reseting when provision link is active (v5.2)

See merge request espressif/esp-idf!28235
2024-02-19 11:00:18 +08:00
5a557bb595 Merge branch 'bugfix/lan8720_ci_speed_v5.2' into 'release/v5.2'
feat(esp_eth): added ioctl option to read/write PHY registers - v5.2

See merge request espressif/esp-idf!27098
2024-02-19 10:59:46 +08:00
bc7ef70189 Merge branch 'ci/new-known_failure_cases_workflow(v5.2)' into 'release/v5.2'
ci: change known_failure_cases workflow(v5.2)

See merge request espressif/esp-idf!27967
2024-02-19 10:59:16 +08:00
2b084b1f6b Merge branch 'feature/support_gdma_retention_v5.2' into 'release/v5.2'
feature: support gdma retention in pd_top lightsleep (v5.2)

See merge request espressif/esp-idf!29090
2024-02-19 10:56:16 +08:00
4bd5fa28b4 Merge branch 'change/usb_host_minor_optimizations_v5.2' into 'release/v5.2'
change(usb/host): Remove unecessary features (v5.2)

See merge request espressif/esp-idf!27593
2024-02-19 10:41:44 +08:00
b7c3f01ac8 change(usb/host): Remove some handler function event flags
This commit removes internal event flags in the USB Host Library event handling
functions (i.e., usb_host_lib_handle_events() and usb_host_client_handle_events()).

Previously, these flags were added to reduce the number of times semaphores
were given. However, these flags were removed as the performance gain is
negligible and made the logic more complicated.

For usb_host_client_handle_events(), the following flags were removed:

- Remove 'events_pending' flag. The semaphore is now always given
- Remove 'blocked' flag. The 'handling_events' flag is already sufficient
- Critical sections are now shortened due to simplication of semaphore usage.

For usb_host_lib_handle_events(), the following flags were removed:

- Remove 'process_pending' flag. The semaphore is now always given
- Renamed 'blocked' flag to 'handling_events'
2024-02-19 06:57:31 +08:00
d9de61cbad change(usb/host): Remove data buffer headers from URBs
This commit removes the ability to reserve a header in the data buffer of an
allocated URB. The header was required for a now defunct implementation of a
synchronous USB Host library API. Thus, headers are no longer required in
URB data buffers.
2024-02-19 06:57:30 +08:00
8d2c1a6265 Merge branch 'bugfix/fix_integral_div_calc_in_hal_util_v5.2' into 'release/v5.2'
fix(hal_utils): add division range check in integral algorithm (v5.2)

See merge request espressif/esp-idf!28628
2024-02-18 16:08:17 +08:00
eeed231304 ci: enable hardware crypto module for powersave tests 2024-02-18 15:57:19 +08:00
2cd8335818 feat(esp_hw_support): support gdma register context sleep retention 2024-02-18 15:57:15 +08:00
9e9ff8f17c Merge branch 'ci/pre_commit_sbom_validation_v5.2' into 'release/v5.2'
ci: add sbom validation using pre-commit's post-commit stage (v5.2)

See merge request espressif/esp-idf!28228
2024-02-18 15:35:22 +08:00
ab9ee3002f Merge branch 'fix/kconfig_check_pre_commit_v5.2' into 'release/v5.2'
Tools: Fix KConfig files checks in pre-commit hook (backport v5.2)

See merge request espressif/esp-idf!28303
2024-02-18 15:34:59 +08:00
6b590a7ae2 Merge branch 'update/kconfig_pre-commit_version_v5.2' into 'release/v5.2'
ci(pre-commit): Update esp-idf-kconfig version (backport v5.2)

See merge request espressif/esp-idf!28513
2024-02-18 15:34:33 +08:00
7ab6811a39 Merge branch 'fix/runtool_crcrlf_v5.2' into 'release/v5.2'
fix: save RunTool command output with correct line endings (v5.2)

See merge request espressif/esp-idf!28677
2024-02-18 15:34:14 +08:00
2193e441c2 Merge branch 'fix/harden_hints_parsing_v5.2' into 'release/v5.2'
fix: harden input parsing in component_requirements hint module (v5.2)

See merge request espressif/esp-idf!28708
2024-02-18 15:34:04 +08:00
2719ecbec4 Merge branch 'feature/python-reorder-imports-instead-isort_v5.2' into 'release/v5.2'
feat: Use python-reorder-imports instead of isort (v5.2)

See merge request espressif/esp-idf!28731
2024-02-18 15:33:45 +08:00
202c60bf6b Merge branch 'bugfix/kconcheck_file_checks_v5.2' into 'release/v5.2'
Bugfix/kconcheck file checks v5.2

See merge request espressif/esp-idf!28976
2024-02-18 15:33:12 +08:00
04ce3affe9 Merge branch 'coredump_traverse_state_lists_v5.2' into 'release/v5.2'
Improve the probability of accessing healthy TCBs (v5.2)

See merge request espressif/esp-idf!28662
2024-02-18 15:32:18 +08:00
0d3486b07d Merge branch 'fix/gdbgui_py311_v5.2' into 'release/v5.2'
Tools: Fix support of gdbgui on Unix with Python 3.11 (v5.2)

See merge request espressif/esp-idf!28313
2024-02-18 15:31:50 +08:00
e8d7ecaec8 feat: ble mesh: improve ble mesh deinit when nimble enable 2024-02-18 11:35:47 +08:00
6717fa0304 Merge branch 'bugfix/fix_modbus_tcp_slave_examples_use_events_v52' into 'release/v5.2'
fix(examples/modbus): fix modbus slave examples may process event flags incorrectly (Backport v5.2)

See merge request espressif/esp-idf!28246
2024-02-18 11:31:36 +08:00
97d87072fc fix(examples/modbus): fix modbus slave examples may process event flags incorrectly (Backport v5.2) 2024-02-18 11:31:36 +08:00
81dc597d1f Merge branch 'bugfix/fix_incorrect_regbase_name_of_i2s_v5.2' into 'release/v5.2'
fix(i2s): fixed incorrect reg base name on C3 (v5.2)

See merge request espressif/esp-idf!28629
2024-02-18 11:29:42 +08:00
cc60b86324 Merge branch 'bugfix/fix_wrong_dcache_0_size_issue_on_s2_v5.2' into 'release/v5.2'
fix(cache): fix wrong dcache size 0 configuration issue on s2 (v5.2)

See merge request espressif/esp-idf!28289
2024-02-18 11:24:52 +08:00
c647b3fddb Merge branch 'bugfix/i2c_eeprom_init_goto_use_after_free_v5.2' into 'release/v5.2'
fix: i2c_eeprom_init use after free when error (v5.2)

See merge request espressif/esp-idf!28478
2024-02-18 11:02:30 +08:00
0810501755 Merge branch 'bugfix/soft_uart_send_dummy_byte_v5.2' into 'release/v5.2'
fix(peripheral_drivers/dedicated_gpio): Remove dummy byte from the emulate_uart_send routine (backport v5.2)

See merge request espressif/esp-idf!28686
2024-02-18 11:00:58 +08:00
a65db35c13 Merge branch 'bugfix/bod_threshold_v5.2' into 'release/v5.2'
fix(bod): Fix BOD threshold value on ESP32H2(backport v5.2)

See merge request espressif/esp-idf!28622
2024-02-18 11:00:47 +08:00
9875bee9d8 Merge branch 'bugfix/fix_wrong_dcache_0_size_issue_on_s2_v5.2' into 'release/v5.2'
fix(cache): fix wrong dcache size 0 configuration issue on s2 (v5.2)

See merge request espressif/esp-idf!28289
2024-02-18 10:58:20 +08:00
eae7bba46f Merge branch 'feature/usb_hs_support_v5.2' into 'release/v5.2'
feat(usb/host): Add High Speed enumeration types (backport v5.2)

See merge request espressif/esp-idf!28058
2024-02-18 10:57:33 +08:00
df558f4f39 Merge branch 'feature/bytes_encoder_config_update_v5.2' into 'release/v5.2'
feat(rmt): support update bytes encoder configurations at runtime (v5.2)

See merge request espressif/esp-idf!28381
2024-02-18 10:54:54 +08:00
18d0413087 Merge branch 'contrib/github_pr_12963_v5.2' into 'release/v5.2'
fix misformatted link (GitHub PR) (v5.2)

See merge request espressif/esp-idf!28754
2024-02-18 10:53:44 +08:00
715df99f8c Merge branch 'contrib/github_pr_12908_v5.2' into 'release/v5.2'
spi_lcd: add flag to control the DC level in cmd/param/data phase separately (GitHub PR) (v5.2)

See merge request espressif/esp-idf!28240
2024-02-18 10:53:28 +08:00
9961629d58 Merge branch 'feature/rmt_encoder_memory_allocator_v5.2' into 'release/v5.2'
feat(rmt): added a help function for allocating encoder memory (v5.2)

See merge request espressif/esp-idf!28790
2024-02-18 10:52:39 +08:00
de6aecf2ab Merge branch 'contrib/github_pr_13020_v5.2' into 'release/v5.2'
fix (esp_lcd): Don't assume panels are 16bit in VSYNC restart logic (GitHub PR) (v5.2)

See merge request espressif/esp-idf!28810
2024-02-18 10:52:27 +08:00
48e3103c8c Merge branch 'bugfix/mcpwm_reset_generator_gpio_v5.2' into 'release/v5.2'
fix(mcpwm): reset GPIO used by generator after delete (v5.2)

See merge request espressif/esp-idf!28831
2024-02-18 10:51:52 +08:00
2c0d846eaf Merge branch 'bugfix/rtc_i2c_not_in_od_mode_v5.2' into 'release/v5.2'
fix(ulp_riscv): Updated RTC I2C to use open-drain IOs (v5.2)

See merge request espressif/esp-idf!28931
2024-02-18 10:47:55 +08:00
709d8ef685 Merge branch 'fix/heap-trace-hash-map-remove_v5.2' into 'release/v5.2'
fix(heap): prevent double traversal of hashmap in map_find_and_remove (backport v5.2)

See merge request espressif/esp-idf!28062
2024-02-18 10:47:04 +08:00
47b7e61dc3 Merge branch 'contrib/github_pr_12785_v5.2' into 'release/v5.2'
Provide ulp_adc_deinit() API to fix ADC1 handle leakage (GitHub PR) (v5.2)

See merge request espressif/esp-idf!28455
2024-02-18 10:41:30 +08:00
6b6ca2d1ca Merge branch 'bugfix/linenoise_calculates_negative_prompt_len_v5.2' into 'release/v5.2'
fix(console): Fixed linenoise prompt length calculation (v5.2)

See merge request espressif/esp-idf!28526
2024-02-18 10:40:37 +08:00
0d48a7cda4 fix(build): remove CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE option from c6, h2 and p4
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE doesnt really have many use cases, but it will
force us to keep increasing bootloader segment sizes just to allow for building this options.

Deprecate this config for new chips.
2024-02-18 10:40:27 +08:00
228c9a7538 Merge branch 'bugfix_lp_i2c_not_in_od_mode_v5.2' into 'release/v5.2'
fix(lp_i2c): Fixed an issue where the LP_I2C IO lines were not in open-drain mode (v5.2)

See merge request espressif/esp-idf!28770
2024-02-18 10:39:56 +08:00
b79cfdfb7d Merge branch 'docs/add_cannonical_url_v5.2' into 'release/v5.2'
docs(build): add cannonical stable url to all docs (v5.2)

See merge request espressif/esp-idf!28847
2024-02-18 10:39:46 +08:00
3de398b8c4 Merge branch 'doc/update_bluedroid_init_migration_v5.2' into 'release/v5.2'
doc(bt/bluedroid): Update migration docs for new version of API for Bluedroid host stack initialization[backport 5.2]

See merge request espressif/esp-idf!28600
2024-02-18 10:01:29 +08:00
e368a7ab69 Merge branch 'bugfix/a2dp_sink_example_v5.2' into 'release/v5.2'
fix(bt/bluedroid): corrected the strings of A2DP audio states (v5.2)

See merge request espressif/esp-idf!28276
2024-02-18 09:55:15 +08:00
9e984cd49e Merge branch 'bugfix/no_wakeup_sleep_v5.2' into 'release/v5.2'
fix(ble): Fixed Bluetooth not waking up due to clock drift(v5.2)

See merge request espressif/esp-idf!28720
2024-02-18 09:53:01 +08:00
ee4fdf8447 Merge branch 'bugfix/spp_disc_connect_btqabr2023_156_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fixed SPP connection failure(v5.2)

See merge request espressif/esp-idf!28524
2024-02-18 09:50:25 +08:00
406e11bea2 Merge branch 'bugfix/fix_dangling_pointer_in_remove_bond_list_section_v5.2' into 'release/v5.2'
fix(bt/bluedroid): fix dangling pointer issue when logging removed section (backport v5.2)

See merge request espressif/esp-idf!28961
2024-02-18 09:45:39 +08:00
93ea06fe3e Merge branch 'bugfix/address_resolution_v5.2' into 'release/v5.2'
fix(nimble): Added support for address resolution during inquiry (v5.2)

See merge request espressif/esp-idf!28517
2024-02-17 09:35:55 +08:00
6ce28ee59b fix(nimble): Added support for address resolution during inquiry. 2024-02-16 20:51:24 +05:30
8b08d11e4f Merge branch 'feature/gatt_caching_support_v5.2' into 'release/v5.2'
feat(nimble): Gatt caching support (v5.2)

See merge request espressif/esp-idf!28511
2024-02-16 23:10:39 +08:00
c1efc55584 feat(nimble): Gatt caching support 2024-02-16 18:15:56 +05:30
99552ebd15 Merge branch 'bugfix/handle_task_lock_v5.2' into 'release/v5.2'
fix(nimble): Remove unwanted task lock check when HS_DEBUG is enabled (v5.2)

See merge request espressif/esp-idf!28417
2024-02-16 20:41:19 +08:00
b43aa0404a Merge branch 'fix/build_failure_when_hardware_gcm_is_disabled_v5.2' into 'release/v5.2'
fix(mbedtls/gcm): Fix build failure when config `MBEDTLS_HARDWARE_GCM` is disabled (v5.2)

See merge request espressif/esp-idf!29067
2024-02-16 18:22:01 +08:00
600bd44c72 fix(nimble): Remove unwanted task lock check when HS_DEBUG is enabled 2024-02-16 15:33:24 +05:30
8b1c532754 Merge branch 'bugfix/reattempt_conn_feat_extended_v5.2' into 'release/v5.2'
fix(nimble): Support for reattempt connection in ext connect (v5.2)

See merge request espressif/esp-idf!28305
2024-02-16 17:58:17 +08:00
1181f59158 Merge branch 'fix/packed-attribute-definition' into 'release/v5.2'
fix(esp_attr): Remove semiclon from PACKED attribute

See merge request espressif/esp-idf!29021
2024-02-16 15:06:07 +08:00
5862b981ed fix(mbedtls/gcm): Avoid using GCM hardware when config MBEDTLS_HARDWARE_GCM is disabled 2024-02-16 11:54:39 +05:30
38f13b15d3 fix(mbedtls/gcm): Fix build failure when config MBEDTLS_HARDWARE_GCM is disabled 2024-02-16 11:54:37 +05:30
71932c99fc fix(nimble): Support for reattempt connection in ext connect 2024-02-16 11:32:15 +05:30
2d36710ca1 Merge branch 'bugfix/enable_addr_resol_across_reboot_v5.2' into 'release/v5.2'
fix(nimble): Enable address resolution across reboot (v5.2)

See merge request espressif/esp-idf!28214
2024-02-16 14:01:14 +08:00
d7f19c4a37 Merge branch 'bugfix/ota_anti_rollback_checks_2_v5.2' into 'release/v5.2'
feat(bootloader_support): Read secure_version under sha256 protection (v5.2)

See merge request espressif/esp-idf!29059
2024-02-16 13:55:13 +08:00
585f9a0fc0 Merge branch 'bugfix/fix_esp_http_client_build_failure_with_wifi_v5.2' into 'release/v5.2'
fix: fix esp_http_client_example build failure (v5.2)

See merge request espressif/esp-idf!28760
2024-02-16 13:51:00 +08:00
3549a154b0 Merge branch 'bugfix/fix_http_auth_without_qop_v5.2' into 'release/v5.2'
fix(esp_http_client): Fix http digest auth without qop (v5.2)

See merge request espressif/esp-idf!28757
2024-02-16 13:50:46 +08:00
4beadd4c57 Merge branch 'feat/flash_enc_encrypt_app_image_of_size_image_length_v5.2' into 'release/v5.2'
feat(bootloader_support): Encrypt only the app image instead of the whole partition (v5.2)

See merge request espressif/esp-idf!28265
2024-02-16 13:49:01 +08:00
51d2f67f02 Merge branch 'bugfix/fix_http_client_error_v5.2' into 'release/v5.2'
esp_http_client: Fix reset errno to 0 before call esp_transport_read(backport v5.2)

See merge request espressif/esp-idf!28329
2024-02-16 13:48:43 +08:00
1bd76ee0da Merge branch 'bugfix/update_jtag_disabling_api_v5.2' into 'release/v5.2'
fix(esp_hw_support): fix API esp_hmac_disable_jtag() to disable JTAG (v5.2)

See merge request espressif/esp-idf!28492
2024-02-16 13:48:36 +08:00
360ecf5613 Merge branch 'feature/update_mbedtls_v5.2' into 'release/v5.2'
feat(mbedtls): updated mbedtls version from 3.5.0 to 3.5.2 (v5.2)

See merge request espressif/esp-idf!28892
2024-02-16 13:48:28 +08:00
cc2db3d190 Merge branch 'bugfix/soc_cpu_subsys_region_v5.2' into 'release/v5.2'
fix(soc): change debug addr range to CPU subsystem range (v5.2)

See merge request espressif/esp-idf!28671
2024-02-16 13:47:49 +08:00
0c20e3bda8 fix(esp_eth): ip101-specific reset_hw to match reset timings from datasheet
IP101 requires 10ms reset assertion time and 10ms post-reset delay to properly initialize.
2024-02-15 15:38:42 +01:00
4c95aa445d fix(ota): additional checks for secure version in anti-rollback case
Some additional checks related to secure version of the application in
anti-rollback case have been added to avoid any attempts to boot lower
security version but valid application (e.g., passive partition image).

- Read secure_version under sha256 protection

- First check has been added in the bootloader to ensure correct secure
  version after application verification and loading stage. This check
  happens before setting up the flash cache mapping and handling over
  the final control to application. This check ensures that application
  was not swapped (e.g., to lower security version but valid image) just
  before the load stage in bootloader.

- Second check has been added in the application startup code to ensure
  that currently booting app has higher security version than the one
  programmed in the eFuse for anti-rollback scenario. This will ensure
  that only the legit application boots-up on the device for
  anti-rollback case.
2024-02-15 15:08:26 +02:00
79d34bf5d5 feat(esp_eth): added SPI Ethernet module polling mode
Closes https://github.com/espressif/esp-idf/issues/12682
2024-02-14 10:05:22 +01:00
8c9657063a esp_eth: Add functions to access PHY using MDIO
Specifically:
  - Set/get address
  - Read/write data at address with specified MDIO access function
  - Read/write both address and data with a single call
2024-02-13 12:49:08 +01:00
6f15d6cb1f fix(nimble): Removed double free of packet 2024-02-13 14:38:57 +05:30
8fbc34a356 fix(esp_attr): Remove semiclon from PACKED attribute
When the macro was introduced, a semicolon was added at the end
of the definition and merged like that in v5.2 release. The semicolon
was then removed in master but the change was never backported in v5.2.

This commit removes the semicolon to the definition of the PATCKED_ATTR
macro in v5.2.

Closes https://github.com/espressif/esp-idf/issues/13149
2024-02-12 09:51:10 +01:00
aeb4711393 fix(examples): Disable formatting SD cards in storage examples by default 2024-02-08 14:22:30 +01:00
8a6fe49314 fix: Fixed KConfig files that were not succesfully checked 2024-02-07 15:09:35 +01:00
80be245982 docs(kconfig): Updated config name lenght 2024-02-07 13:31:50 +01:00
72a8b4e6e8 fix(bt/bluedroid): fix dangling pointer issue when logging remove section 2024-02-07 14:57:28 +08:00
ecedff9884 ble_mesh: example: fix the structure init order to meet C++ requirements
Closes https://github.com/espressif/esp-idf/issues/8110
2024-02-07 10:09:20 +08:00
b2dcd46063 ble_mesh: stack: fix the structure init order to meet C++ requirements 2024-02-07 10:09:20 +08:00
cc649ea869 Merge branch 'contrib/github_pr_12998_v5.2' into 'release/v5.2'
fix(twai): TWAI_GENERAL_CONFIG_DEFAULT initialize controller_id (GitHub PR) (v5.2)

See merge request espressif/esp-idf!28572
2024-02-06 21:30:26 +08:00
e10cbd108b fix(bootloader): add legacy retained memory CRC calculation
* Closes https://github.com/espressif/esp-idf/issues/12849

In former versions of ESP-IDF, the user custom memory data in the retained memory
was taken into account during the CRC calculation. This was changed in a later
commit, the custom memory was ignored, therefore this can seen as a breaking change.
This commit gives the possibility to choose between the former (legacy) or
new way of calculating the CRC.
2024-02-06 16:15:24 +08:00
b8139a609b fix(ulp_riscv): Updated RTC I2C to use open-drain IOs
This commit updates the RTC I2C driver in the ULP RISC-V to initialize
all I2C IOs in open-drain mode.
2024-02-06 08:41:55 +01:00
af72c4b94f ble_mesh: update ble mesh ble adv type 2024-02-06 14:14:57 +08:00
5c30cc24fd fix(rgb_lcd): relax the check for the data line GPIO
There are a bunch of cases you might want some pins not exposed.

Eg.

  * Reading say 8 bit data and outputting the top 5 bits, discarding the rest by not mapping those data pins to output pins

 * Not using hsync/vsync because sync data is embedded within the data bits for more timing flexibility (eg. interlacing).

 * Using the LCD module as a high speed parallel data output bus, with no need for sync/control pins.

Removing this validation makes these cases work.

Merges https://github.com/espressif/esp-idf/pull/13103
2024-02-06 10:31:33 +08:00
c924e0cfe4 feat(ble/controller): Add API to get BLE controller status on ESP32 2024-02-05 16:02:07 +08:00
68d2915377 Fixed xQueueSemaphoreTask assert when deinit host during scan 2024-02-05 16:01:29 +08:00
7d358754a2 feat(mbedtls): updated mbedtls version from 3.5.0 to 3.5.2
This updates the submodule mbedtls to its latest version 3.5.2.
2024-02-05 12:50:27 +05:30
024bccbc58 feat(bt/bluedroid): Support get status of bluedroid host 2024-02-04 16:30:15 +08:00
fc8d80dfab fix(bt/example): Fixed UART HCI when flow control is off on ESP32C3 2024-02-04 16:30:04 +08:00
7af929f825 feat(bt/bluedroid): Make the max number of bond device to be configurable 2024-02-04 16:28:57 +08:00
d0e94733f0 fix(ble/controller): Fixed tx count in direct test mode on ESP32-C3 and ESP32-S3
- Fixed tx count in direct test mode on ESP32-C3 and ESP32-S3
- fixed modem sleep enter failed sometimes
2024-02-04 14:43:05 +08:00
861318b138 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(91980c2)
- Fixed scheduling when modem sleep wakeup delayed
- Fixed IRQ FIFO overflow when enter critical
- Fixed clock sync timeout for modem sleep
- Fixed directed adv with RPA when privacy disabled
- Fixed instant passed for connection update and PHY update
2024-02-04 14:42:57 +08:00
e0355cd6a8 docs(build): add cannonical stable url to all docs 2024-02-02 10:36:19 +08:00
d4db16058d fix(mcpwm): reset GPIO used by generator after delete
Closes https://github.com/espressif/esp-idf/issues/12980
2024-02-01 17:47:55 +08:00
ab8ab03537 fix(rgb_lcd): don't assume 16 bit width on panels for restart logic
Merges https://github.com/espressif/esp-idf/pull/13020
2024-01-31 18:52:27 +08:00
03fb722ca5 fix(hal_utils): add division range check in integral algorithm 2024-01-31 12:06:43 +08:00
5ad9e6b87f feat(rmt): added a help function for allocating encoder memory
The encoder memory location should respect the RMT_MEM_ALLOC_CAPS,
which is affected by some Kconfig options, like ISR_IRAM_SAFE

Closes https://github.com/espressif/esp-idf/issues/13032
2024-01-30 17:03:41 +08:00
0a0aaa23e0 fix(ble): Fixed macro definition error for 136K clock drift 2024-01-30 15:37:59 +08:00
028f174467 fix(ble): Fixed Bluetooth not waking up due to clock drift 2024-01-30 15:37:44 +08:00
ed4bf92b8e fix(ble_mesh): Reject node reset when provisioning link is active 2024-01-30 10:44:13 +08:00
a05e40bfe3 fix(lp_i2c): Fixed an issue where the LP_I2C IO lines were not in open-drain mode
This commit fixes an issue where in the LP I2C IO lines were not
initialized in open-drain mode.

Closes https://github.com/espressif/esp-idf/issues/12969
2024-01-29 09:48:16 +01:00
dc0f41f7be ci: change known_failure_cases workflow 2024-01-29 15:36:33 +08:00
49eab1da5c fix(esp_phy): Fixed BLE TX 2M problem causing by phy_wifi_enable_set()
1. Fixed BLE 2M phy TX problem causing by phy_wifi_enable_set() on ESP32-C3 and ESP32-S3
2. Fixed BLE CCA bug on ESP32-C2
3. Fixed wifi boot bug at low temp on ESP32-C6
4. Fixed BLE and WIFI could not receive packets after entering light sleep for a long time on ESP32-C3, ESP32-S3, ESP32-C2 and ESP32-C6
2024-01-29 14:08:46 +08:00
9e472f582b fix: fix esp_http_client_example build failure
Fixed the build failure of esp_http_client_example for ESP32-C6 when
build with Wi-Fi enabled
2024-01-29 11:35:59 +05:30
e173895618 fix(soc): change debug addr range to CPU subsystem range
For C6/H2/P4/C5, there is no SoC specific debug range. Instead the same
address range is part of CPU Subsystem range which contains debug mode
specific code and interrupt config registers (CLINT, PLIC etc.).

For now the PMP entry is provided with RWX permission for both machine
and user mode but we can save this entry and allow the access to only
machine mode for this range.

For P4/C5 case, this PMP entry can have RW permission as the debug mode
specific code is not present in this memory range.
2024-01-29 13:57:04 +08:00
302661ed5f fix(esp_http_client): Fix http digest auth without qop
Closes https://github.com/espressif/esp-idf/issues/12962
2024-01-29 11:00:58 +05:30
7598f31cdd fix misformatted link 2024-01-29 13:14:54 +08:00
d900eed440 fix(wifi): Add support to move supplicant BSS to external memory 2024-01-27 10:40:54 +05:30
054f33b386 feat(coredump): improve the probability of accessing healthy TCBs 2024-01-26 22:55:16 +08:00
66d7410051 fix(i2s): fixed incorrect reg base name on C3
Closes https://github.com/espressif/esp-idf/issues/12643
2024-01-26 18:44:38 +08:00
f90e5e04e0 feat: Use python-reorder-imports instead of isort 2024-01-26 09:51:55 +01:00
cc254d8ff3 feat(bt/bluedroid): Support ext adv aux option 2024-01-26 16:21:27 +08:00
62b84e3169 fix(bt/bluedroid): Fix BLE malloc internal wrapper fail 2024-01-26 16:21:27 +08:00
29e1ca5ddd feat(ble/bluedroid): Add getter for BLE GAP callback 2024-01-26 16:21:27 +08:00
5ed6abc5e2 feat(ble/bluedroid): Add getter for BLE GATTS callback 2024-01-26 16:21:27 +08:00
9b2e0a2a01 feat(ble/bluedroid): Add getter for BLE GATTC calllback 2024-01-26 16:21:27 +08:00
217ed6c1bf docs(ble/bluedroid): Optimize documentation for BLE duplicate scan 2024-01-26 16:21:27 +08:00
48abf362c0 fix(ble/bluedroid): Fix dangling pointer issue in deletion of bonded devices 2024-01-26 16:21:27 +08:00
14bb24c3ab fix(ble/bluedroid): Fix BLE background connection log level 2024-01-26 16:21:27 +08:00
4ecc978bd6 Merge branch 'fix/i2s_multi_dev_test_fix_v5.2' into 'release/v5.2'
fix(i2s): multi_dev test update to use non_boot_ctrl gpio (v5.2)

See merge request espressif/esp-idf!28701
2024-01-26 16:12:51 +08:00
9373d53ce7 feat(pmu): set fix voltage to different mode for esp32h2
h2 remove include
2024-01-26 11:36:57 +08:00
64b1bd6cb2 feat(efuse): Adds new efuses for esp32c6 2024-01-26 11:36:57 +08:00
bc6072c754 feat(efuse): Adds new efuse for esp32h2 2024-01-26 11:36:56 +08:00
zwl
fdcd6783d7 Update ble lib to eb473dda on ESP32-C6 and ESP32-H2 2024-01-25 20:38:49 +08:00
zwl
410db7f812 feat(ble): add ble controller version output on ESP32-C6 and ESP32-H2 2024-01-25 20:38:43 +08:00
zwl
de5644f88c feat(ble): add ble controller status check api on ESP32-C6 and ESP32-H2 2024-01-25 20:38:34 +08:00
zwl
f096b66d71 fix(ble): fixed build error when disable sm feature 2024-01-25 20:38:28 +08:00
7503cf2176 Update C6 H2 lib to bb9d578e 2024-01-25 20:38:19 +08:00
2b2a838518 fix: harden input parsing in component_requirements hint module
Currently we silently ignore when the original component is not found
in a hope we can provide at least some meaningful hint. As it turned
out it's not true. Instead of providing misleading hint, just return
error. This adds several checks for situations, which should not happen,
but when they do it should be easier to identify the root cause of the
problem.

For example when hint module received malformed output with extra new
lines, e.g. caused by a bug in RunTool, it wrongly reported the original
component as source component.

This should also fix the tests on Windows.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-01-25 13:37:17 +01:00
59d25c4d62 fix(i2s): multi_dev test update to use non_boot_ctrl gpio 2024-01-25 16:44:58 +08:00
1d283490d3 fix(peripheral_drivers/dedicated_gpio): Remove dummy byte from the emulate_uart_send routine
Let the user application decide for when to send the dummy byte instead of
hardcoding it from the assembly routine.
2024-01-25 10:52:04 +08:00
306ea38038 fix: save RunTool command output with correct line endings
Currently RunTool reads command's output with asyncio read, which
returns bytes. This is decoded into python's string and the output already
contains OS specific line endings, which on Windows is CRLF. Problem is
that the command output is saved by using python's text stream/file,
which replaces LF, native python's line ending, with OS specific line ending.
On Windows, and in this particular case, the CRLF from the command output is
translated into CRCRLF and saved in the commands output file. When this
file is read in again, e.g. for hint modules, the CRCRLF is replaced
with LFLF. Again the file is open as text file. Meaning a new emply line
is added.

Fix this by opening the output file with "newline=''", which prevents
this translation. We already have the OS specific line ending in the
command's output.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-01-24 11:07:21 +01:00
afe5afd1ba fix(wifi): fix pmk invalid lead same ssid wpa and wpa2 connect fail issue 2024-01-24 10:48:19 +08:00
6e31efce7f fix(bod): Fix BOD threshold value on ESP32H2 2024-01-23 09:57:59 +08:00
9048372138 ci(esp_eth): enabled Ethernet ip101 jobs 2024-01-22 13:52:24 +01:00
c6a2bdbfa1 docs(bt/bluedroid): Update migration docs for new version of API for Bluedroid host stack initialization 2024-01-22 14:19:39 +08:00
11eaf41b37 Merge branch 'bugfix/fix_scan_request_ifs_error_v5.2' into 'release/v5.2'
Fixed BLE scan request ifs time error in coexistence scenarios on ESP32(backport v5.2)

See merge request espressif/esp-idf!28574
2024-01-22 11:01:08 +08:00
cf2c7a433d feat(ble): added pytest for ble power save example 2024-01-22 10:45:27 +08:00
5ad9e404dc fix(ble): Fixed the issue of being unable to enter light sleep
- Fixed the issue where light sleep cannot be entered when external 32k XTAL does not exist
2024-01-22 10:45:27 +08:00
c54555bb01 Merge branch 'bugfix/ble_update_lib_20231229_v5.2' into 'release/v5.2'
update lib on release/v5.2

See merge request espressif/esp-idf!28189
2024-01-22 10:37:49 +08:00
2710c37d51 Merge branch 'bugfix/fix_ble_robost_cashing_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix BLE robost cashing config(backport v5.2)

See merge request espressif/esp-idf!28201
2024-01-22 10:33:25 +08:00
9156cb085f Merge branch 'bugfix/fix_ble_memory_leak_v5.2' into 'release/v5.2'
fix(ble/bluedroid): Fix ble memory leak when gattc config off(backport v5.2)

See merge request espressif/esp-idf!28495
2024-01-22 10:33:16 +08:00
0c5d2c261d Merge branch 'bugfix/ble_check_adv_data_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix ble adv data check to avoid memory overflow(backport v5.2)

See merge request espressif/esp-idf!28405
2024-01-22 10:33:00 +08:00
15341d51c2 Merge branch 'bugfix/change_default_value_for_ip_ttl_5.2' into 'release/v5.2'
Fix(lwip):bugfix for change default value for ip ttl 5.2

See merge request espressif/esp-idf!28401
2024-01-19 16:38:39 +08:00
86d6781f68 change(ble): npl count is zero if nimble host is not used
change(ble): added npl eventq put to front

change(ble): added cache safe check in ble power save example

ble(update):
    Update c2 lib to 91b81332
    Update h2 lib to 620fbe79
    Update c6 lib to 620fbe79

fix(ble): fix stack overflow disable at sleep

Revert "change(ble): added ble cca en and thresh option"

This reverts commit 71901499b9.
2024-01-19 16:14:55 +08:00
f4e96ada37 Merge branch 'bugfix/fix_systick_lost_in_esp32_dfs_v5.2' into 'release/v5.2'
fix(esp_pm): safely check ccompare validity in DFS update_ccompare (v5.2)

See merge request espressif/esp-idf!28561
2024-01-19 15:10:55 +08:00
5f74ed7419 Merge branch 'feat/add_ble_support_in_local_ctrl_example_v5.2' into 'release/v5.2'
fix(examples): Fix encoding issue in esp_local_ctrl's proto script (v5.2)

See merge request espressif/esp-idf!28127
2024-01-19 11:43:57 +08:00
35e025f8e3 Merge branch 'bugfix/fix_dynamic_mbedtls_crash_v5.2' into 'release/v5.2'
mbedtls: Fix enable dynamic mbedtls will occur heap corruption when server support TLS renegotiation(backport v5.2)

See merge request espressif/esp-idf!28326
2024-01-19 11:42:35 +08:00
9699f27723 Merge branch 'feat/update_cjson_v1_7_17_v5.2' into 'release/v5.2'
feat(cJSON): update submodule to v1.7.17 (v5.2)

See merge request espressif/esp-idf!28348
2024-01-19 11:42:11 +08:00
5408580c41 Merge branch 'bugfix/esp32h2_wakeup_i2c_fail_v5.2' into 'release/v5.2'
fix(esp_phy): fix esp32h2 wakeup i2c fail (backport v5.2)

See merge request espressif/esp-idf!28539
2024-01-19 11:16:16 +08:00
3f75f037c0 fix(esp_pm): safely check ccompare validity in DFS update_ccompare 2024-01-19 11:12:22 +08:00
df1bf06665 fix(esp_coex): Fixed potential BLE scan request ifs timer error bug 2024-01-18 22:36:59 +08:00
3a429b0310 Fixed BLE scan request ifs timer error in coexistence scenarios 2024-01-18 22:36:48 +08:00
24b3a4ee45 fix(twai): TWAI_GENERAL_CONFIG_DEFAULT initialize controller_id
Fix for C++ warning `-Wmissing-field-initializers`
Closes https://github.com/espressif/esp-idf/pull/12998
2024-01-18 20:06:30 +08:00
b8bb11402a Merge branch 'bugfix/fix_mac_bb_pd_iwdt_timeout_v5.2' into 'release/v5.2'
fix(ble): fixed interrupt timeout in MAC_BB_PD callback (v5.2)

See merge request espressif/esp-idf!28464
2024-01-18 19:41:19 +08:00
43c854c278 Merge branch 'bugfix/add_disconnect_reason_codes_doc_v5.2' into 'release/v5.2'
docs(wifi): Add documentation for ESP defined disconnect reasoncodes(v5.2)

See merge request espressif/esp-idf!28162
2024-01-18 11:26:05 +08:00
1eb6d90278 Merge branch 'bugfix/fix_crash_issue_when_mesh_deinit_v5.2' into 'release/v5.2'
fix(wifi): fix the crash and malloc fail issue (v5.2)

See merge request espressif/esp-idf!28531
2024-01-18 11:14:52 +08:00
e1dfdf26bc Merge branch 'bugfix/recalib_bbpll_before_tuning_v5.2' into 'release/v5.2'
fix(bbpll): fix bbpll may not lock or not stable bug for stop early (ESP32C2/S3/C6/H2) (v5.2)

See merge request espressif/esp-idf!28284
2024-01-17 21:30:10 +08:00
5a64cdecce fix(esp_phy): fix esp32h2 wakeup i2c fail 2024-01-17 18:48:48 +08:00
69aeebb986 fix(wifi): fix the crash and malloc fail issue
1. fix(wifi/mesh): fix the crash issue when mesh deinit
2. fix(wifi):fix when ap recv auth in sa query porcess will memset psq issue
2024-01-17 16:57:44 +08:00
47cd6cd23c fix(console): Fixed linenoise prompt length calculation
This commit fixes a potential issue where in the prompt length used
for the linenoise based console could be calculated as a negative
integer, leading to a console hang.

Closes https://github.com/espressif/esp-idf/issues/4924
2024-01-17 09:42:01 +01:00
9b555497ca Fix(lwip):bugfix for change default value for ip ttl 2024-01-17 16:37:57 +08:00
b1dee3e510 fix(ble/bluedroid): Fix ble memory leak when gattc config off 2024-01-17 15:20:21 +08:00
773845be66 fix(bt/bluedroid): Fixed SPP connection failure
The connection failure is caused by the BTU and application layer status being out of sync.
2024-01-17 15:13:00 +08:00
55f2d9c1ec ci(pre-commit): Update esp-idf-kconfig version 2024-01-16 13:35:21 +01:00
676917955e Merge branch 'bugfix/some_wifi_fixes_v5.2' into 'release/v5.2'
fix(wifi): backport some wifi changes to v5.2

See merge request espressif/esp-idf!28367
2024-01-16 18:43:38 +08:00
eebdd3f391 feat(bootloader_support): Encrypt only the app image instead of the whole partition
Currently, when flash encryption is enabled, the whole partition gets encrypted.
This can be optimised by encrypting only the app image instead of encrypting the whole partition.

Closes https://github.com/espressif/esp-idf/issues/12576
2024-01-16 14:12:14 +05:30
4573271d2b fix(bootloader_support): Fix image_length calculation when secure boot v1 is enabled
Fixed the value of the image_length field of the image metadata populated by esp_image_verfiy()
to include the size of the signature sector when Secure Boot V1 is enabled.
2024-01-16 14:12:13 +05:30
414306bd37 feat(rmt): support update bytes encoder configurations at runtime
Closes https://github.com/espressif/esp-idf/issues/12775
2024-01-16 15:59:11 +08:00
977a90b245 Merge branch 'fix/i2c_test_app_change_gpio_v5.2' into 'release/v5.2'
fix(i2c): test app change gpio (v5.2)

See merge request espressif/esp-idf!28483
2024-01-16 15:43:00 +08:00
8e5347abd5 fix(esp_hw_support): fix API esp_hmac_disable_jtag() to disable JTAG
After ets_hmac_disable(), invalidating JTAG register process is ineffective.
So, added call to enable hmac begore invalidating JTAG REG.
And similarly disabled it after invalidation.
2024-01-16 12:24:21 +05:30
af966596d4 fix(i2c): test app change gpio 2024-01-16 11:10:36 +08:00
23e9daa239 feat: LittleFS bump version to 1.13.0 2024-01-15 14:35:17 +01:00
481b63fa6d fix: i2c_eeprom_init use after free when error 2024-01-15 13:25:11 +01:00
0b6c7e6aad fix(ble): fixed interrupt timeout in MAC_BB_PD callback 2024-01-15 16:16:41 +08:00
40c03f95f8 docs(esp_wifi): Add docs for additional authmode incompatible situation
- Adds documentation for additional situations where authmode incompatible disconnect
  reason code will be reported
2024-01-15 11:24:37 +05:30
ffd46a32f7 docs(wifi): Add documentation for ESP defined disconnect reasoncodes 2024-01-15 11:24:15 +05:30
0a2199d81b change(ulp): added test for ulp adc init/deinit 2024-01-15 11:10:28 +08:00
58dd50120f fix(ulp_adc): Provide ulp_adc_deinit() API to fix ADC1 handle leakage 2024-01-15 11:10:28 +08:00
d1a363a7f8 fix(example): fixed app partition is too small for binary size 2024-01-11 16:51:06 +08:00
aa2451eb88 fix(esp_wifi): Add support for WPA3 + WPA3_EXT_PSK mixed mode and minor bugfixes
- Add support for WPA3 + WPA3_EXT_PSK mixed mode
- Improvements in scan and connect path as per specifications along with
  minor bugfixes
- When AP advertises all PSK modes (WPA, WPA2 and WPA3), make sure that
  station treats it as WPA2_WPA3_PSK mixed mode.

Closes https://github.com/espressif/esp-idf/issues/12517
2024-01-11 16:51:06 +08:00
f759073049 fix(pm): fix no sleep null after data sent (33290e79) 2024-01-11 16:51:06 +08:00
7c05e2f291 fix(esp_wifi): Report authmode incompatible WPA AP scanned and we require PMF
- Report the authmode incompatible if the scanned AP is in WPA mode and we require PMF
  according to sta config
2024-01-11 16:51:06 +08:00
09475c744f fix(bt/bluedroid): Fix ble adv data check to avoid memory overflow 2024-01-11 16:33:35 +08:00
e8a5fdcff3 Merge branch 'feat/max_ver_c3_199_v5.2' into 'release/v5.2'
feat(soc): Increase max supported version of C3 to 1.99 (v5.2)

See merge request espressif/esp-idf!26822
2024-01-11 14:15:49 +08:00
ffe6458c30 Merge branch 'backport5.2/fix_ot_br_pcb_ttl' into 'release/v5.2'
fix(openthread): update lib to set raw pcb ttl value (backport v5.2)

See merge request espressif/esp-idf!28220
2024-01-11 14:15:01 +08:00
be39aabe00 Merge branch 'fix/esp32h2_rssi_positive_issue_5.2' into 'release/v5.2'
Fix/esp32h2 rssi positive issue 5.2

See merge request espressif/esp-idf!28271
2024-01-11 14:14:29 +08:00
eae8973711 Merge branch 'bugfix/increase_btu_task_stack_size_v5.2' into 'release/v5.2'
fix(bt/bludroid): Increase BTU task stack size(backport v5.2)

See merge request espressif/esp-idf!28323
2024-01-11 14:13:30 +08:00
62a4b70b44 Merge branch 'feature/support_hw_trigger_regdma_when_pu_top_v5.2' into 'release/v5.2'
fix(pm): trigger regdma retention by PMU when TOP is not power down on esp32H2 (backport v5.2)

See merge request espressif/esp-idf!28341
2024-01-11 14:12:24 +08:00
581fa1b688 Merge branch 'ci/temp_disable_jobs_v5.2' into 'release/v5.2'
ci: remove ip101 jobs and twai_std jobs (v5.2)

See merge request espressif/esp-idf!28377
2024-01-11 13:45:17 +08:00
f317bb15fd ci: remove ip101 jobs and twai_std jobs 2024-01-10 10:27:51 +01:00
49fd283364 feat(cjson): update submodule to v1.7.17
Changelog: https://github.com/DaveGamble/cJSON/releases/tag/v1.7.17
2024-01-09 12:12:39 +05:30
745a1f492e feat(pm): support PMU trigger regdma when PU TOP 2024-01-08 21:23:28 +08:00
871476ad8a fix(storage/fatfs): check whether sdcard supports triming
Closes https://github.com/espressif/esp-idf/issues/12912
2024-01-08 09:34:40 +01:00
c784a6915b fix(esp_http_client): Add test case in esp_http_client example
Add a test case in esp_http_client example to test HTTP_METHOD_HEAD
with async mode
2024-01-08 15:39:12 +08:00
jim
38499caa35 esp_http_client: Fix reset errno to 0 before call esp_transport_read
Closes https://github.com/espressif/esp-idf/issues/9020
2024-01-08 15:39:07 +08:00
jim
5a234cf642 mbedtls: Fix enable dynamic mbedtls will occur heap corruption when server support TLS renegotiation 2024-01-08 14:23:32 +08:00
07f9c7664d fix(bt/bludroid): Increase BTU task stack size 2024-01-08 11:35:24 +08:00
33a62c86d3 fix(gdbgui): Fix support of gdbgui on Unix with Python 3.11
Closes https://github.com/espressif/esp-idf/issues/12764
2024-01-05 18:51:50 +01:00
2d66984b09 fix(sleep): fix the issue of asymmetry in suspend/resume cache when skipping sleep. 2024-01-05 19:26:46 +08:00
a6a15ad9a4 fix: KConfig files checks in pre-commit hook 2024-01-05 12:00:02 +01:00
dea2d77712 fix(esp_phy): fix esp32h2 sleep wakeup issue 2024-01-05 17:22:59 +08:00
60a9527a71 fix(cache): fix wrong dcache size 0 configuration issue on s2
Closes https://github.com/espressif/esp-idf/issues/12711
2024-01-05 10:38:41 +08:00
ea45c22a5c fix(rtc): fixed bbpll not calibrated from bootloader issue 2024-01-05 10:24:49 +08:00
016b63dacf fix(bbpll): fix bbpll calibration may stop early bug(ESP32C2/S3/C6/H2) 2024-01-05 03:22:44 +08:00
595d8b512f fix(bt/bluedroid): corrected the strings of A2DP audio states 2024-01-04 17:53:04 +08:00
zwl
53921e8104 fix(ble): fixed rssi inaccuracy issue on ESP32-H2 2024-01-04 15:14:05 +08:00
c9ead16682 fix(ieee802154): fix the issue of not receiving packets when RSSI is positive in esp32h2 2024-01-04 15:13:49 +08:00
39dd85639a feat(soc): Increase max supported version of C3 to 1.99 2024-01-04 15:08:31 +08:00
a45478abc6 Merge branch 'feature/freertos_idf_smp_changes_doc_v5.2' into 'release/v5.2'
Docs: Update IDF FreeRTOS 10.5.1 docs and add migration notes (v5.2)

See merge request espressif/esp-idf!28227
2024-01-04 11:20:53 +08:00
a69e92864f Merge branch 'docs/update_sys_docs_p4_v5.2' into 'release/v5.2'
docs(esp32p4): update misc docs for esp32p4 (v5.2)

See merge request espressif/esp-idf!27820
2024-01-04 11:20:25 +08:00
b5785b41eb docs(esp32p4): update misc docs for esp32p4 2024-01-03 18:26:55 +08:00
65bc495632 feat(spi_lcd): control DC level for cmd, param, color phase separately
Closes https://github.com/espressif/esp-idf/issues/10635
Merges https://github.com/espressif/esp-idf/pull/12908
2024-01-03 17:24:47 +08:00
713546e8bd ci: add sbom validation using pre-commit's post-commit stage
With 09ba070b7e ("fix: allow to use older pre-commit hook version")
and b93cc581a5 ("fix: set default pre-commit hook stages to pre-commit..")
we set the default pre-commit hook stage to commit/pre-commit, which avoids
running the pre-commit plugins/hooks multiple times for different stages.
Unfortunately this also affects "pre-commit run" used in CI and
now it runs only plugins which are by default using the
commit/pre-commit stage. Meaning the sbom validation, which uses
post-commit, is not run at all. This adds an explicit pre-commit command
for validate-sbom-manifest plugin, which needs to be started in
post-commit stage.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-01-02 16:10:28 +01:00
53be71f8f2 docs: Update cn trans for freertos docs 2024-01-02 22:51:25 +08:00
95a5d3ff36 docs(freertos/idf): Add IDF FreeRTOS upgarde migration notes for v5.2 2024-01-02 22:51:25 +08:00
912f6c527c docs(freertos/idf): Update IDF FreeRTOS documentation
This commit updates the IDF FreeRTOS documentation as follows:

- Update terminology ("CPU" to "Core", "ESP-IDF FreeRTOS" to "IDF FreeRTOS")
- Fixed some inconsistent formatting
- Rearranged some sub sections
- Updated section regarding single-core mode to be coherent with v10.5.1 update.
2024-01-02 22:51:24 +08:00
baf258e3e6 fix(openthread): update lib to set raw pcb ttl value 2024-01-02 17:05:16 +08:00
586862e9b2 fix(nimble): Enable address resolution across reboot 2024-01-02 14:03:29 +05:30
951e3b2b8c fix(bt/bluedroid): Optimize ble remove all bonded devices function 2023-12-30 20:40:47 +08:00
e9c1d5c4b6 fix(bt/bluedroid): Update ble ibeacon example document 2023-12-30 20:40:36 +08:00
48226735d1 fix(bt/bluedroid): Update ble gattc gatts coex example 2023-12-30 20:40:21 +08:00
f4c6faa943 fix(bt/bluedroid): Fix BLE robost cashing config 2023-12-30 20:13:26 +08:00
bd18b8ba6a Merge branch 'bugfix/fix_ble_app_unregister_no_event_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix ble app unregister no event(backport v5.2)

See merge request espressif/esp-idf!28167
2023-12-29 11:08:20 +08:00
086294e3b3 Merge branch 'bugfix/fix_ble_recorrect_enable_bug_v5.2' into 'release/v5.2'
fix(ble/controller): Fixed BLE recorrect enable bug and fixed BLE bb isr enable by default (backport v5.2)

See merge request espressif/esp-idf!28121
2023-12-29 10:57:47 +08:00
b85b15a3c4 Merge branch 'bugfix/fix_gatts_stop_race_condition_v5.2' into 'release/v5.2'
fix(nimble): Handled race condition for conn variables being set to NULL (v5.2)

See merge request espressif/esp-idf!28168
2023-12-29 10:57:29 +08:00
1ff54dde9a Merge branch 'bugfix/wifi_backport_v5.2' into 'release/v5.2'
fix(esp_wifi): Cover additional situations for reporting new reason codes

See merge request espressif/esp-idf!28182
2023-12-29 10:55:36 +08:00
8477ec19f5 fix(ble/controller): Fixed BLE recorrect enable bug and fixed BLE bb isr enable by default 2023-12-29 02:00:22 +08:00
fd9a55a775 fix(wifi): fix beacon was unexpectedly freed issue 2023-12-29 00:05:39 +08:00
239a6da000 fix(esp_wifi): Cover additional situations for reporting new reason codes
- WIFI_REASON_NO_AP_FOUND_W_COMPATIBLE_SECURITY will be reported for the following
  reasons
  -- AP has PMF required but station is not configured for pmf capable/required.
  -- Station has PMF required but AP is not configured for pmf capable/required.
  -- The AP is using unsupported group management/pairwise ciphers
  -- OWE not enabled by station for found OWE AP
  -- AP RSNXE parsing failed in supplicant
  -- AP is in Independent BSS mode
2023-12-29 00:03:50 +08:00
9694fe3c2a Merge branch 'bugfix/nan_crash_sched_bcn_v5.2' into 'release/v5.2'
Fix crash while stopping NAN (Backport v5.2)

See merge request espressif/esp-idf!28178
2023-12-28 23:52:57 +08:00
36a7c4ca66 Merge branch 'backport/add_dynamic_iram_check_for_ot_sleep_v52' into 'release/v5.2'
fix(pm): fix extra retention function to iram(Backportv5.2)

See merge request espressif/esp-idf!28135
2023-12-28 22:55:08 +08:00
0e03d101e2 Merge branch 'backport/ieee802154_receive_done_handler_v52' into 'release/v5.2'
fix(ieee802154): introduce a receive done handler feature(backportV5.2)

See merge request espressif/esp-idf!28132
2023-12-28 22:54:58 +08:00
50cb3a4435 Merge branch 'backport/fix_ble_prepare_write_v5.2' into 'release/v5.2'
Backport/fix ble prepare write v5.2

See merge request espressif/esp-idf!27910
2023-12-28 22:54:18 +08:00
06086d3a36 fix(esp_wifi): Fix crash while stopping NAN
Also fix inconsistent NAN macro values
2023-12-28 18:43:13 +05:30
zwx
1fdb0e1871 feat(openthread): add dynamic iram check for ot sleepy example 2023-12-28 17:47:30 +08:00
zwx
61379f09cd fix(pm): fix extra retention function to iram
* Also remove unused function on H2
2023-12-28 17:47:30 +08:00
9b50d7d60f fix(nimble): Handled race condition for conn variables being set to NULL 2023-12-28 15:11:56 +05:30
490df3a348 fix(heap): prevent double traversal of hashmap in map_find_and_remove
Remove the use of SLIST_REMOVE in map_find_and_remove to prevent the hashmap
list to be traversed twice in the function.

Closes https://github.com/espressif/esp-idf/issues/12820
2023-12-28 17:38:12 +08:00
796065f6fb Merge branch 'contrib/github_pr_12813_v5.2' into 'release/v5.2'
fix(esp32): Fixed declaration issue (GitHub PR) (v5.2)

See merge request espressif/esp-idf!28081
2023-12-28 17:37:20 +08:00
zwx
e86e0f3dc8 fix(ieee802154): introduce a receive done handler feature 2023-12-28 17:34:51 +08:00
915cb63bb1 fix(bt/bluedroid): Fix ble app unregister no event 2023-12-28 17:32:45 +08:00
33756fd210 Merge branch 'bugfix/fix_ble_phy_tx_ifs_v5.2' into 'release/v5.2'
Bugfix/fix ble phy tx ifs v5.2

See merge request espressif/esp-idf!28151
2023-12-28 16:59:49 +08:00
194343e056 Merge branch 'bugfix/clear_lp_sw_trigger_int_before_sleep_v5.2' into 'release/v5.2'
feat(ulp): add api to get lp_cpu wakeup cause and clear wakeup source at startup(v5.2)

See merge request espressif/esp-idf!28146
2023-12-28 14:49:14 +08:00
c4d3d74e39 fix(phy): Fix ble tx ifs time for ESP32 2023-12-28 14:08:01 +08:00
fb0c9550d8 fix(bt/bluedroid): Fix prepare write for BLE example 2023-12-27 22:03:48 +08:00
f18d887a6d fix(bt/bluedroid): Fix BLE prepare write 2023-12-27 22:03:48 +08:00
c30d9829d3 Merge branch 'bugfix/wait_tvsl_after_non_pd_top_lightsleep_v5.2' into 'release/v5.2'
fix(esp_hw_support/sleep): wait flash ready after non-pd_top lightsleep for esp32c6 (v5.2)

See merge request espressif/esp-idf!28144
2023-12-27 19:34:37 +08:00
6d238cdba2 feat(ulp): add api to get lp_cpu wakeup cause and clear wakeup source at startup
Closes https://github.com/espressif/esp-idf/issues/12651
2023-12-27 19:12:16 +08:00
5c24c70ed8 Merge branch 'feat/ble_mesh_miscellaneous_update_v5.2' into 'release/v5.2'
feat(ble_mesh): Miscellaneous updates for mesh kconfig, relay related(v5.2)

See merge request espressif/esp-idf!28030
2023-12-27 17:50:12 +08:00
fcb9cf8b93 change(esp_hw_support/sleep): rename ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY
1. Rename ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY to ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY
2. Set ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY visible for all targets
2023-12-27 15:35:00 +08:00
83b6c79f93 fix(esp_hw_support/sleep): wait flash ready after non-pd_top lightsleep for esp32c6 2023-12-27 15:34:55 +08:00
14d88e5e5e Merge branch 'bugfix/add_ble_fixes' into 'release/v5.2'
fix(nimble): Add ble fixes in nimble (v5.2)

See merge request espressif/esp-idf!28112
2023-12-27 10:30:46 +08:00
7823f6c996 Merge branch 'bugfix/crash_in_btc_hf_init_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Avoided crash of LoadProhibited during HFP AG deinitialization (v5.2)

See merge request espressif/esp-idf!28115
2023-12-27 10:26:19 +08:00
bdce46f1e3 Merge branch 'fix/add_malloc_cap_8bit_for_vfs_select' into 'release/v5.2'
fix(vfs): add MALLOC_CAP_8BIT for vfs select(Backport v5.2)

See merge request espressif/esp-idf!27720
2023-12-26 19:03:26 +08:00
8e4fa20695 fix(examples): Fix encoding issue in esp_local_ctrl's proto script 2023-12-26 14:02:50 +05:30
bb45925dff Merge branch 'bugfix/fix_memory_leak_in_c3_s3_controller_v5.2' into 'release/v5.2'
Fixed memory leak in ESP32C3 and ESP32S3 controller (Backport v5.2)

See merge request espressif/esp-idf!28037
2023-12-26 16:18:28 +08:00
962b105be5 fix(nimble): Added periodic_adv_enh soc_caps for c2, h2 2023-12-26 10:09:12 +05:30
ce6b508c4f fix(nimble): Add VSC support for setting chan select algo 2023-12-26 10:08:52 +05:30
f30d282d66 fix(bt/bluedroid): Disabled Sniff Subrating temporarily as it did not work well 2023-12-26 11:48:04 +08:00
daed0d9f3a fix(bt/bluedroid): Changed the default air mode to invalid value 2023-12-26 11:48:04 +08:00
09db8a96f0 fix(bt/bluedroid): Removed redundant operation of SCO clean up 2023-12-26 11:48:04 +08:00
fe277d5b13 fix(bt/bluedroid): Corrected the definitions of HF Client callback events 2023-12-26 11:48:04 +08:00
659ae0ce9e fix(bt/bluedroid): Avoided crash of LoadProhibited during HFP AG deinitialization
Move the release of the control blocks from the start
of deinitialization to the profile disabled event.
2023-12-26 11:48:04 +08:00
77430f3e2d fix(bt/bluedroid): Added dynamic memory allocation for HFP control blocks 2023-12-26 11:48:04 +08:00
125a784983 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(9129dec) 2023-12-26 10:58:58 +08:00
21f33f6e2a Merge branch 'feature/hogp_example_support_v5.2' into 'release/v5.2'
feat(nimble): Added HID over Gatt Profile Support (v5.2)

See merge request espressif/esp-idf!28024
2023-12-26 10:49:36 +08:00
a80717fbd5 Merge branch 'feature/support_suspend_on_120m_v5.2' into 'release/v5.2'
feat(spi_flash): Enable auto suspend on when flash works under 120M (backport v5.2)

See merge request espressif/esp-idf!27951
2023-12-26 10:42:32 +08:00
690d1a032e Merge branch 'bugfix/u32_reg_tsens_v5.2' into 'release/v5.2'
fix(tempertuer_sensor): Fix regs on temperature sensor is not volatile due to GCC bug(backport v5.2)

See merge request espressif/esp-idf!27947
2023-12-26 10:41:45 +08:00
bf0a5fe7f4 Merge branch 'fix/spi_lcd_example_fix_border_pixel_display_v5.2' into 'release/v5.2'
fix(spi_master): fixed lcd example block border pixel issue (v5.2)

See merge request espressif/esp-idf!27919
2023-12-26 10:40:05 +08:00
e79f46c044 Merge branch 'fix/bump_precommit_esp_idf_sbom_v5.2' into 'release/v5.2'
fix: bump esp-idf-sbom to v0.13.0 in pre-commit (v5.2)

See merge request espressif/esp-idf!27878
2023-12-26 10:39:24 +08:00
23e7663119 Merge branch 'bugfix/coredump_detect_v5.2' into 'release/v5.2'
tools: idf.py: fix detection of raw core dump file (v5.2)

See merge request espressif/esp-idf!27840
2023-12-26 10:38:43 +08:00
17f2bceeb7 Merge branch 'contrib/github_pr_12637_v5.2' into 'release/v5.2'
Dockerfile with variable depth parameter (GitHub PR) (v5.2)

See merge request espressif/esp-idf!27827
2023-12-26 10:37:48 +08:00
000c70b3a1 Merge branch 'docs/fix_dash_encoding_v5.2' into 'release/v5.2'
docs(programming_guide): turned off smartquotes (v5.2)

See merge request espressif/esp-idf!27818
2023-12-26 10:36:38 +08:00
17654970e9 Merge branch 'tools/use_recommended_tool_priority_backport_v_5_2' into 'release/v5.2'
fix(idf_tools): Opt for the recommended tool in tools.json rather than the supported one (v5.2)

See merge request espressif/esp-idf!27796
2023-12-26 10:35:56 +08:00
c3b7aa76d9 Merge branch 'change/add_scl_check_v5.2' into 'release/v5.2'
change(i2c): Add check for scl frequency for master_bus_add_device(backport v5.2)

See merge request espressif/esp-idf!27662
2023-12-26 10:34:00 +08:00
5b110971ac Merge branch 'contrib/github_pr_12683_v5.2' into 'release/v5.2'
fix(tools): fix path delimiter in gdbinit for Windows (v5.2)

See merge request espressif/esp-idf!27574
2023-12-26 10:32:58 +08:00
0d8ca93e8d Merge branch 'feature/update-gdb-to-12.1_20231023_v5.2' into 'release/v5.2'
feat(tools): update gdb version to 12.1_20231023 (v5.2)

See merge request espressif/esp-idf!27376
2023-12-26 10:32:07 +08:00
c70dde1420 Merge branch 'bugfix/connect_after_scan_v5.2' into 'release/v5.2'
fix(conn): Change second connect delay time to 730 (v5.2)

See merge request espressif/esp-idf!27836
2023-12-26 10:30:48 +08:00
90e21c4404 Merge branch 'bugfix/fix_ble_clear_white_list_v5.2' into 'release/v5.2'
Fixed add(remove) RPA to(from) white list on ESP32C3(backport v5.2)

See merge request espressif/esp-idf!27797
2023-12-26 10:28:32 +08:00
9d2d1e2d39 Merge branch 'bugfix/ieee802154_deinit_v5.2' into 'release/v5.2'
Bugfix/ieee802154 deinit (Backport v5.2)

See merge request espressif/esp-idf!27974
2023-12-25 20:39:20 +08:00
99d10ca3d2 Merge branch 'change/change_regdma_power_issue_macro_v5.2' into 'release/v5.2'
change(pm): change macro SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG (backport v5.2)

See merge request espressif/esp-idf!27992
2023-12-25 20:38:48 +08:00
03211c7024 Merge branch 'docs/Separate_low-power_documents_v5.2' into 'release/v5.2'
docs:separate low power documents (backport v5.2)

See merge request espressif/esp-idf!28022
2023-12-25 20:37:53 +08:00
3139ae0f0e Merge branch 'backport/openthread_related_feature_v52' into 'release/v5.2'
Backport some openthread related features (backport v5.2)

See merge request espressif/esp-idf!28053
2023-12-25 20:37:03 +08:00
0b9b16cb77 Merge branch 'bugfix/put_extra_link_retention_in_iram_5.2' into 'release/v5.2'
fix(pm): place extra link opt in iram(backport v5.2)

See merge request espressif/esp-idf!27899
2023-12-25 20:36:34 +08:00
40f7adaf3b Merge branch 'bugfix/doc_changes_v52' into 'release/v5.2'
Use `@file` for file documentation and resolved few doc build warnings(v5.2)

See merge request espressif/esp-idf!28002
2023-12-25 20:35:34 +08:00
0af120ae17 Merge branch 'fix/btc_config_lock_error_v5.2' into 'release/v5.2'
fix(bt/bluedroid): fixed btc_config_lock error (backport v5.2)

See merge request espressif/esp-idf!28069
2023-12-25 20:34:34 +08:00
4efa9ca1db Merge branch 'bugfix/fix_establish_two_sco_fail_v5.2' into 'release/v5.2'
fix(bt/controller): Fixed establish two sco connections failed (Backport v5.2)

See merge request espressif/esp-idf!28100
2023-12-25 20:34:09 +08:00
ede660ce4b Merge branch 'optimize/When_psram_is_enable_the_number_of_ooseq_is_not_limited_5.2' into 'release/v5.2'
optimize(lwip):when psram is enable the number of ooseq is not limited 5.2

See merge request espressif/esp-idf!27944
2023-12-25 20:32:13 +08:00
1fb7a2ca58 Merge branch 'fix/build_error_in_compiler_performance_mode_v5.2' into 'release/v5.2'
fix(bt/bluedroid): fixed build error when compiler in performace mode (backport v5.2)

See merge request espressif/esp-idf!27863
2023-12-25 20:31:50 +08:00
c8b5789267 Merge branch 'bugfix/ble_stack_disable_v5.2' into 'release/v5.2'
Bugfix/ble stack disable v5.2(backport v5.2)

See merge request espressif/esp-idf!27651
2023-12-25 18:33:25 +08:00
5592d28f9e Merge branch 'bugfix/ble_update_lib_20231219_v5.2' into 'release/v5.2'
update lib on release/v5.2

See merge request espressif/esp-idf!28000
2023-12-25 18:32:52 +08:00
zwx
d5076b5749 feat(ieee802154): rf enable and disable refactor 2023-12-25 10:56:11 +08:00
f183419d94 fix(ieee802154): fix ieee802154 mac deinit and config ieee802154_enable 2023-12-25 10:56:11 +08:00
4a6a10044d fix(bt/controller): Fixed establish two sco connections failed 2023-12-25 10:41:01 +08:00
zwl
1ff3eaafe9 fixed(ble): fixed an assertion issue when stopping periodic adv on ESP32C6 and ESP32H2 2023-12-22 15:31:29 +08:00
7b32ba0763 fix(app_update): fixed undeclared variable 'ret' in esp_ota_ops.c 2023-12-22 12:30:57 +05:30
82d53440a4 change(ble): added ble cca en and thresh option 2023-12-22 14:34:30 +08:00
f75b4b1636 ble: support for selecting CSA#2 by menuconfig
ble(fix): fixed event receiving on host side without returning event buffer to pool
2023-12-22 14:34:30 +08:00
ae21032e9d ble(update):
Update c2 lib to 7c6c9d53
Update h2 lib to 0ecb36f0
Update c6 lib to 0ecb36f0
2023-12-22 14:33:32 +08:00
4e09c6e346 Merge branch 'bugfix/ble_update_lib_20231201_v5.2' into 'release/v5.2'
update lib on release/v5.2

See merge request espressif/esp-idf!27588
2023-12-22 14:11:06 +08:00
0056ab449e Merge branch 'bugfix/gdma_legacy_macro_back_again_v5.2' into 'release/v5.2'
fix(gdma): reserve the SOC_GDMA_PAIRS_PER_GROUP (v5.2)

See merge request espressif/esp-idf!28054
2023-12-22 13:44:36 +08:00
c6bf363f14 Merge branch 'fix/nvs_encr_flash_enc_dependency_v5.2' into 'release/v5.2'
fix(nvs_flash): Remove the forceful selection of NVS_ENCRYPTION with flash encryption (v5.2)

See merge request espressif/esp-idf!27838
2023-12-22 11:50:59 +08:00
5515c890ed fix(bt/bluedroid): fixed btc_config_lock error 2023-12-22 11:30:26 +08:00
d1efa0d869 docs(nvs_flash): Update CN translation for nvs_encryption.rst 2023-12-21 19:22:56 +05:30
6a216ca839 fix(nvs_flash): Remove the forceful selection of NVS_ENCRYPTION with flash encryption
- This change will introduce a breaking change for SoCs with the HMAC
  peripheral. Turning on flash encryption will no longer enable NVS
  encryption automatically.

Closes https://github.com/espressif/esp-idf/issues/12549
2023-12-21 19:22:56 +05:30
9b40d39120 refactor(usb/host): Move FIFO size configuration to HAL layer
The logic of calculating FIFO sizes is DWC OTG specific.
We move it to the HAL layer to provide better abstraction in the HDC layer.
2023-12-21 10:34:56 +01:00
71cd4df75a refactor(usb/host): Make private hal types USB_DWC specific 2023-12-21 10:34:46 +01:00
42277ac868 feat(usb/host): Add High Speed enumeration types 2023-12-21 10:33:49 +01:00
b893744fd1 fix(gdma): reserve the SOC_GDMA_PAIRS_PER_GROUP
Closes https://github.com/espressif/esp-idf/issues/12798
2023-12-21 15:17:54 +08:00
f29d324691 fix(openthread): allow setting netif_idx of udp pcb to no_index 2023-12-21 15:02:06 +08:00
dd83f65e5c fix(coex): 802.15.4 coex break notification 2023-12-21 15:01:55 +08:00
6b8740ae8d feat(ieee802154): add tx/rx report for IEEE802.15.4 debug 2023-12-21 15:01:44 +08:00
01808d0cfb feat(openthread): modification of uart and spi spinel based on openthread 41ef807 2023-12-21 15:01:31 +08:00
zwx
9ae095fc20 fix(openthread): fix openthread SPI tx timeout issue 2023-12-21 15:00:45 +08:00
zwx
d1f8299726 fix(openthread): add netif check when call udp api for ot 2023-12-21 15:00:09 +08:00
zwx
0375c9bca0 fix(openthread): fix ot netif destroy netif order issue 2023-12-21 14:59:16 +08:00
692d15abbe Merge branch 'fix/wrong_order_of_includes_in_esp_tls_v5.2' into 'release/v5.2'
fix(esp-tls): Fix missing header files in esp_tls_errors.h header file (v5.2)

See merge request espressif/esp-idf!27703
2023-12-20 20:44:31 +08:00
b4a612345b Merge branch 'bugfix/fix_beacon_eb_memory_leak_issue_v5.2' into 'release/v5.2'
fix(wifi): fix beacon eb memory leak issue(Backport v5.2)

See merge request espressif/esp-idf!27924
2023-12-20 16:53:44 +08:00
fb98bb40f3 feat(ble_mesh): Miscellaneous updates for mesh kconfig, relay related 2023-12-20 15:16:57 +08:00
cff4d95568 docs(programming_guide): turned off smartquotes
Sphinx would "smartly" format e.g. double dashes into typographically correct entities,
i.e. a long dash unicode character.

This doesnt always work well for our docs were sometimes a double dash could be a python
argument, which when copied would no longer work.
2023-12-20 13:09:17 +08:00
a58af467fc feat(nimble): added HID over Gatt profile support 2023-12-20 09:58:26 +05:30
15f1425f67 Apply 2 suggestion(s) to 2 file(s) 2023-12-20 11:10:35 +08:00
0d60862933 docs:Separate low-power documents 2023-12-20 11:10:13 +08:00
c50a84f218 fix: bump esp-idf-sbom to v0.13.0 in pre-commit
v0.13.0 contains fix for the submodule hash validation. Let's
bump its version in pre-commit, so the fix is used.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-19 15:15:34 +01:00
5c729436d6 ble(fix): Fixed crash issue when reset event queue 2023-12-19 17:35:34 +08:00
96a3926e22 ble(fix): clear event queue when init event queue
ble: update log module on ESP32C2, ESP32H2 and ESP32C6
2023-12-19 17:35:34 +08:00
c4444d1385 ble(update):
Update c2 lib to 47a787f0
Update h2 lib to 73452eac
Update c6 lib to 73452eac
2023-12-19 17:35:34 +08:00
504c6a09e1 fix(docs): fixed doxygen warnings in few headers
- non-matching arguments in `i2c_types.h` and `esp_wifi_crypto_types.h`
 - Fixed unended `@cond` macro in `esp_err.h`
2023-12-19 13:12:28 +05:30
2b475022c5 fix(esp_srp): Use @file for file documentation and missing doc
Using @brief for file description wrongly associates the documentation to an API.
Correct way to add file description is to use `@file` and then `@brief`. Corrected the same.

- Also added missing doc for esp_srp_handle_t
2023-12-19 13:12:11 +05:30
13c548cefa fix(esp_wifi): Correct wifi lib docs for esp_wifi_crypto_types.h
- Wifi lib changes for docs of some APIs in esp_wifi_crypto_types.h
2023-12-19 13:11:49 +05:30
1427e14b72 feat(wifi): add wifi channel change event
Closes https://github.com/espressif/esp-idf/issues/12538
2023-12-19 13:11:01 +05:30
424bf120a3 feat(wifi): support dump 802.11 ACK frame for CSI 2023-12-19 13:10:49 +05:30
90c51d25e0 fix(bt/bluedroid): Fix ble gattc deregister 2023-12-19 12:02:07 +08:00
81bc017ff6 fix(bt/bluedroid): Fix ble adv and scan status when deinit bluedroid 2023-12-19 12:02:07 +08:00
7b5799830c change(pm): change macro SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG 2023-12-19 11:52:25 +08:00
579bda6b49 docs: add CN trans for idf-docker-image.rst 2023-12-18 17:37:20 +08:00
ae2120cdcd feat(docker): Add Dockerfile argument for variable clone depth
Closes https://github.com/espressif/esp-idf/pull/12637
2023-12-18 17:37:20 +08:00
e49823f10c Merge branch 'ci/backport_master_changes_v5.2' into 'release/v5.2'
Ci/backport master changes v5.2

See merge request espressif/esp-idf!27841
2023-12-18 17:32:10 +08:00
e3a854769a feat(spi_flash): Enable auto suspend on when flash works under 120M 2023-12-15 16:57:53 +08:00
3d42ac21fa fix(tempertuer_sensor): Fix regs on temperature sensor is not volatile due to GCC bug 2023-12-15 16:36:43 +08:00
ff8a6a5bf9 Merge branch 'fix/esp32s3_soc_drom_high_addr_v5.2' into 'release/v5.2'
fix(soc): esp32s3/Fix the DROM_HIGH_ADDR (v5.2)

See merge request espressif/esp-idf!27821
2023-12-15 15:48:17 +08:00
cf4c2ea576 optimize(lwip):when psram is enable the number of ooseq is not limited 2023-12-15 14:10:54 +08:00
608d575172 fix(wifi): fix beacon eb memory leak issue 2023-12-14 18:10:30 +08:00
0da6bb8825 fix(spi_master): fixed lcd example block border pixel issue 2023-12-14 17:14:35 +08:00
bff4001473 fix(pm): place extra link opt in iram 2023-12-14 11:19:05 +08:00
8b68b39198 fix(tools): fix path delimiter in gdbinit for Windows
Merges https://github.com/espressif/esp-idf/pull/12683

Signed-off-by: Alexey Lapshin <alexey.lapshin@espressif.com>
2023-12-13 09:26:40 +00:00
9edbb98a2c fix(bt/bluedroid): fixed build error when compiler in performace mode
Closes https://github.com/espressif/esp-idf/issues/12751
2023-12-12 19:04:19 +08:00
786c23bcfa fix(idf_tools): Opt for the recommended tool in tools.json rather than the supported one 2023-12-12 14:25:25 +08:00
41ca90905e Merge branch 'bugfix/fix_esp32h2_system_retention_restore_backup_v5.2' into 'release/v5.2'
fix(esp_hw_support): fix esp32h2 system link restore override cpu clk configuration(v5.2)

See merge request espressif/esp-idf!27810
2023-12-11 20:40:53 +08:00
4435437501 ci(docs): revert git strategy change for deploy docs 2023-12-11 11:34:04 +01:00
9effe1aba6 fix(tools): idf.py: fix detection of raw core dump file
When idf.py coredump-debug is launched with '--core' argument, it
tries to determine the file format (raw, elf, b64). To detect the
'raw' core dump the code checked if the version word matched one of
the known values.
However, the version word also contains the chip ID in the high
half-word, so the check failed for anything other than the ESP32.
The detection of core file format has been moved to esp-coredump
package in version 1.9.0, including the fix for chip ID.

Reported in https://github.com/espressif/esp-idf/issues/10852
2023-12-11 11:17:54 +01:00
8dcf3e5f80 ci: Upload report about modified files and components to s3 bucket 2023-12-11 11:15:45 +01:00
8ce0b8bf73 ci: fix upload failed job log script 2023-12-11 11:15:08 +01:00
ceb9e42058 ci: fix fetch git diff from pipeline schedules 2023-12-11 11:14:48 +01:00
6947dd533a ci: fix fetch_from_mirror_url_if_exists 2023-12-11 11:14:43 +01:00
e6a4ad3d55 ci: Move upload artifacts execution of build and target_test stages to the after script section 2023-12-11 11:13:56 +01:00
21b06f43bf ci: added build log artifacts for linux 2023-12-11 11:12:14 +01:00
911ad39808 ci: Upload artifacts of target stage jobs to s3 bucket 2023-12-11 11:12:02 +01:00
651f60e663 ci: improve check pylint get files command 2023-12-11 11:11:39 +01:00
129bc8b7ff fix(conn): Change second connect delay time to 730 2023-12-11 16:35:24 +08:00
6a34106488 Merge branch 'contrib/github_pr_12559_v5.2' into 'release/v5.2'
fix(spi): correct macro REG_SPI_BASE(i) for all targets (GitHub PR) (v5.2)

See merge request espressif/esp-idf!27708
2023-12-11 16:01:48 +08:00
ff14e382a4 Merge branch 'bugfix/some_wifi_fixes_v5.2' into 'release/v5.2'
fix(wifi): fix some wifi issues

See merge request espressif/esp-idf!27736
2023-12-11 16:00:29 +08:00
499625be33 Merge branch 'save_twdt_to_coredump_v5.2' into 'release/v5.2'
feat(coredump): save twdt panic output to coredump elf file (v5.2)

See merge request espressif/esp-idf!27756
2023-12-11 14:51:33 +08:00
ebcb490aa9 fix(soc): esp32s3/Fix the DROM_DROM_HIGH limit
Previously the DROM_HIGH_ADDR for esp32s3 was 0x3D000000, which
    convers only 16 MB of address range. But esp32s3 supports 32 MB
    external memory. So this address should be 0x3E000000
2023-12-11 12:17:12 +05:30
613c17bc2f fix(esp_hw_support): fix esp32h2 system link restore override cpu clk configuration 2023-12-11 11:24:00 +08:00
a2b96227ac Merge branch 'bugfix/fix_rtc_us_to_cycle_div_zero_in_deepsleep_v5.2' into 'release/v5.2'
fix(esp_hw_support/sleep): fix rtc_time_us_to_slowclk div zero in deepsleep process (backport v5.2)

See merge request espressif/esp-idf!27763
2023-12-11 10:57:19 +08:00
1ef5c02c37 Merge branch 'feature/reinitialize_icg_map_in_modem_module_enable_v5.2' into 'release/v5.2'
fix(esp_hw_support): re-initialize icg map in modem_clock_module_enable (backport v5.2)

See merge request espressif/esp-idf!27765
2023-12-11 10:56:45 +08:00
aefe0722a0 Merge branch 'feature/qemu-esp-develop-8.1.3-20231206_v5.2' into 'release/v5.2'
feat(tools): update qemu to esp-develop-8.1.3-20231206 (v5.2)

See merge request espressif/esp-idf!27784
2023-12-11 10:52:09 +08:00
96ba61f89f Merge branch 'ci/git_strategy_optimization_v5.2' into 'release/v5.2'
ci: optimize git strategy (v5.2)

See merge request espressif/esp-idf!27793
2023-12-11 10:27:36 +08:00
985cc9318a Merge branch 'feature/storage_nvs_find_key_v5.2' into 'release/v5.2'
feat(nvs_flash): Added function nvs_find_key (v5.2)

See merge request espressif/esp-idf!27806
2023-12-11 10:11:54 +08:00
8f79c54242 Merge branch 'feature/update_strorage_test_config_v5.2' into 'release/v5.2'
feat(storage): update config for app tests (v5.2)

See merge request espressif/esp-idf!27805
2023-12-11 10:11:29 +08:00
6949092234 feat(nvs_flash): Added function nvs_find_key
Closes https://github.com/espressif/esp-idf/issues/12155
2023-12-09 09:12:31 +01:00
ad25a90d6a feat(storage): minimize platforms for tests 2023-12-09 09:01:21 +01:00
d5dc04693d feat(storage): add dependencies for tests 2023-12-09 09:01:21 +01:00
aca0d3ad17 feat(storage): update config for app tests 2023-12-09 09:01:21 +01:00
a36d8bc742 Merge branch 'fix/coredump_port_v5.2' into 'release/v5.2'
fix(tools/coredump): do not detect port when core file is used (v5.2)

See merge request espressif/esp-idf!27670
2023-12-08 21:29:39 +08:00
3fdbfb2069 fix(wifi): fix disconnected abnormal sleep 2023-12-08 13:08:55 +00:00
87cc516338 fix(wifi): fix psram enabled but initialized fail issue
Closes https://github.com/espressif/esp-idf/issues/11971
2023-12-08 13:08:55 +00:00
c26660e504 fix(wifi/mesh): fix connection and opmoode error in mesh
1. fix the bug that station can't found AP when the authmode is WPA
2. fix wifi mode error when mesh start after station has connected to router

Closes https://github.com/espressif/esp-idf/issues/12646
2023-12-08 13:08:55 +00:00
da169340f9 Merge branch 'bugfix/fix_dhcp_server_can_not_restore_address_pool_issue_5.2' into 'release/v5.2'
fix(dhcp server):dhcp server can not restore address pool 5.2

See merge request espressif/esp-idf!27740
2023-12-08 21:05:00 +08:00
f727b7b25d fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(65db61f)
- Fixed remove and clear white list
2023-12-08 19:49:57 +08:00
0fe3ec63a0 ci: optimize git strategy 2023-12-08 11:00:19 +01:00
7778ab2759 Merge branch 'feat/manifest_check_v5.2' into 'release/v5.2'
feat: use esp-idf-sbom pre-commit plugin (v5.2)

See merge request espressif/esp-idf!27748
2023-12-08 16:54:23 +08:00
fdf04b3198 feat(tools): update qemu to esp-develop-8.1.3-20231206
https://github.com/espressif/qemu/releases/tag/esp-develop-8.1.3-20231206
2023-12-08 15:35:26 +07:00
debcb50fd2 fix(esp_hw_support): re-initialize icg map in modem_clock_module_enable 2023-12-08 14:18:45 +08:00
7b3c08e37a fix(esp_hw_support/sleep): fix rtc_time_us_to_slowclk div zero in deepsleep process
Closes https://github.com/espressif/esp-idf/issues/12695
2023-12-08 13:59:52 +08:00
db15c0e183 Merge branch 'fix/coexist_reg_esp32c6_set_default_value_v5.2' into 'release/v5.2'
fix(esp_coex): fix esp32c6 coex reg reset issue (backport v5.2)

See merge request espressif/esp-idf!27739
2023-12-08 11:14:58 +08:00
a5dc34f416 Merge branch 'refactor/soc_caps_multiple_cores_v5.2' into 'release/v5.2'
change(docs): Update multicore tags to SOC_CPU_HAS_MULTIPLE_CORES (v5.2)

See merge request espressif/esp-idf!27743
2023-12-08 10:56:26 +08:00
d9d388dae7 feat(coredump): save twdt panic output to coredump elf file 2023-12-07 15:21:24 +01:00
97594d2076 Merge branch 'backport/add_config_to_set_custom_mac_as_base_mac_v5_2' into 'release/v5.2'
feat(mac): Add a configuration to set custom MAC as base MAC(Backport V5.2)

See merge request espressif/esp-idf!27738
2023-12-07 21:03:51 +08:00
0a1e5846c7 Merge branch 'bugfix/fix_sm_inject_return_value_v5.2' into 'release/v5.2'
fix(nimble): Added change to return success for API execution (v5.2)

See merge request espressif/esp-idf!27725
2023-12-07 21:03:34 +08:00
a6cbcb91d2 feat: use esp-idf-sbom pre-commit plugin
Currently sbom manifest is checked only in .gitmodules and
this check is done in pre-commit and also in CI. Meaning it's running
three times(pre-commit before push if user has it enabled, in CI
as there is the pre-commit run again and again with test in CI). Since
esp-idf-sbom contains a full manifest validation support and pre-commit
plugin for it, let's use it. This removes all the current sbom testing
and replaces it with a signle pre-commit plugin which validates all
manifests files(sbom.yml, idf_component.yml, .gitmodules and also
referenced manifests) in repository. Note that this checks all
manifests, not only ones which were modified. The check is reasonably
fast though, so it should not cause any problem. The reason for
validating all manifest files is that we want to make sure that the sbom
information in .gitmodules is updated too and that the hash
recorded in .gitmodules is up-to-date. Meaning submodule update
would not trigger this plugin, because no manifest was changed.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-07 13:22:47 +01:00
3c8cccc73b change(docs): Update multicore tags to SOC_HP_CPU_HAS_MULTIPLE_CORES
Previously, documentation sections that were only meant for multicore ESP
targets would use tags that depend on CONFIG_FREERTOS_UNICORE. This is not
ideal as project configuration can be changed by the user.

This commit updates those tags to use SOC_HP_CPU_HAS_MULTIPLE_CORES which is
always defined in multicore targets regardless of project configuration.
2023-12-07 17:59:44 +08:00
a7e2ea76d8 change(soc): Add SOC_HP_CPU_HAS_MULTIPLE_CORES
This commit adds a the SOC_HP_CPU_HAS_MULTIPLE_CORES convenience macro to
soc_caps.h. This is a convenience boolean cap to represent whether or not the
target has multiple cores, and is intended to be used when writing docs for
multiple targets.
2023-12-07 17:53:18 +08:00
8005821b09 Merge branch 'change/deprecate_legacy_xtensa_include_path_v5.2' into 'release/v5.2'
change(xtensa): Deprecate legacy include paths (v5.2)

See merge request espressif/esp-idf!27673
2023-12-07 17:27:38 +08:00
1f2d548fbb Merge branch 'backport/fix_ble_menuconfig_v5.2' into 'release/v5.2'
Backport/fix ble menuconfig v5.2(backport v5.2)

See merge request espressif/esp-idf!27498
2023-12-07 16:25:30 +08:00
841339c012 fix(dhcp server):dhcp server can not restore address pool 2023-12-07 15:18:45 +08:00
1fb97c1718 Merge branch 'bugfix/fix_adc_continuous_do_not_rst_apb_clk_v5.2' into 'release/v5.2'
fix(adc): fix adc continuous get less results beacuse do not reset apb clk (v5.2)

See merge request espressif/esp-idf!27600
2023-12-07 15:11:26 +08:00
39a383981d fix(esp_coex): fix esp32c6 coex reg reset issue 2023-12-07 15:07:06 +08:00
61bd19b446 Merge branch 'bugfix/fix_adc_cali_error_after_light_sleep_wake_on_h2_v5.2' into 'release/v5.2'
adc: fix calibration error when waking up from light sleep on H2 and enable test (v5.2)

See merge request espressif/esp-idf!27602
2023-12-07 14:29:55 +08:00
4e5757f1ab Merge branch 'refactor/uart_read_bytes_from_ringbuf_v5.2' into 'release/v5.2'
change(uart): improved the internal logic of uart_read_bytes (v5.2)

See merge request espressif/esp-idf!27701
2023-12-07 14:23:05 +08:00
zwx
0d4d3c103f feat(mac): Add a configuration to set custom MAC as base MAC 2023-12-07 14:14:55 +08:00
f8736aed36 fix(nimble): Added change to return success for API execution 2023-12-07 09:40:12 +05:30
37bf8dff6b Merge branch 'fix/esp32p4-memory-layout_v5.2' into 'release/v5.2'
fix(heap): Update the heap memory layout on esp32p4 target (backport v5.2)

See merge request espressif/esp-idf!27097
2023-12-07 11:52:14 +08:00
90d69b38b2 Merge branch 'bugfix/bod_reset_c6_h2_v5.2' into 'release/v5.2'
fix(bod): Reset brownout in configuration to avoid RF cannot be enabled again(backport v5.2)

See merge request espressif/esp-idf!27722
2023-12-07 10:51:29 +08:00
f32321e6a5 Merge branch 'bugfix/authcomplete_failure_v5.2' into 'release/v5.2'
fix(nimble): Fixed authcomplete failure caused by a mismatch in the c1 value (v5.2)

See merge request espressif/esp-idf!27619
2023-12-07 10:47:52 +08:00
968b15d380 Merge branch 'fix/rng_register_prefix_discrepency_newer_targets_v5.2' into 'release/v5.2'
Fix: RNG register prefix discrepancy for ESP32C6 and ESP32H2 (v5.2)

See merge request espressif/esp-idf!27683
2023-12-07 10:46:15 +08:00
zwx
e951cebfa2 fix(vfs): add MALLOC_CAP_8BIT for vfs select 2023-12-07 10:46:01 +08:00
fdd8d4284f Merge branch 'bugfix/fix_uart_disabled_in_driver_cause_restart_stuck_v5.2' into 'release/v5.2'
fix(esp_system): fix uart clock disabled in driver cause esp_restart stuck (backport v5.2)

See merge request espressif/esp-idf!27693
2023-12-07 10:35:07 +08:00
191466d824 fix(bod): Reset brownout in configuration to avoid RF cannot be enabled again 2023-12-06 19:46:44 +08:00
56563f7092 Merge branch 'bugfix/fix_some_ble_bugs_v5.2' into 'release/v5.2'
Fixed some BLE bugs (backport v5.2)

See merge request espressif/esp-idf!27694
2023-12-06 19:21:22 +08:00
572a66b62e fix(spi): correct some signals and dummy bits docs 2023-12-06 16:05:36 +08:00
a4bfa19ebd fix(spi): Correct REG_SPI_BASE(i) macro for all targets
The existing formula can never match these registers.

Closes https://github.com/espressif/esp-idf/pull/12559
Closes https://github.com/espressif/esp-idf/pull/12562
2023-12-06 14:44:26 +08:00
a3cee541d3 Merge branch 'save_isr_ctx_to_coredump_v5.2' into 'release/v5.2'
feat(coredump): save isr context to coredump elf file (v5.2)

See merge request espressif/esp-idf!27453
2023-12-06 13:57:05 +08:00
bdb0756cdb Merge branch 'bugfix/dpp_deinit_memleak_v52' into 'release/v5.2'
Fix a memory leak in dpp deinit path(v5.2)

See merge request espressif/esp-idf!27680
2023-12-06 13:22:28 +08:00
6595897d2d fix(esp-tls): Add headers in esp_tls_errors.h header file
Closes https://github.com/espressif/esp-idf/issues/12541
2023-12-06 10:19:41 +05:30
66759438a9 fix(heap): Update the heap memory layout on esp32p4 target
- fix the value of SOC_ROM_STACK_START in soc.h
- Update the memory usage of ROM bootloader appendix in bootloader.ld
- Update the soc_memory_regions table to minimize the number of regions
  created after the startup stack is added back as a heap.
2023-12-06 04:48:00 +00:00
56a6cad52c Merge branch 'fix/esp_hw_support_remove_unused_include_dirs_v5.2' into 'release/v5.2'
fix(esp_hw_support): Removed nonexistent include directories from cmake (v5.2)

See merge request espressif/esp-idf!27606
2023-12-06 12:09:03 +08:00
be27966ce9 change(uart): improved the internal logic of uart_read_bytes
Ringbuffer usage becomes more efficient with the use of xRingbufferReceiveUpTo

Closes https://github.com/espressif/esp-idf/issues/12386
2023-12-06 11:39:31 +08:00
e2b18f2c2c Merge branch 'bugfix/BLEQABR23-35_v5.2' into 'release/v5.2'
fix(ble_mesh): avoid ble_mesh packet collision by using random adv interval(v5.2)

See merge request espressif/esp-idf!27486
2023-12-06 11:06:47 +08:00
e19be79e4f Merge branch 'fix/usb_host_soc_caps_backport_v5.2' into 'release/v5.2'
USB host soc caps (backport v5.2)

See merge request espressif/esp-idf!27401
2023-12-06 10:55:49 +08:00
a5b9169a7e Merge branch 'contrib/github_pr_12460_v5.2' into 'release/v5.2'
fixing OTA write up to SPI_FLASH_SEC_SIZE margins (GitHub PR) (v5.2)

See merge request espressif/esp-idf!27643
2023-12-06 10:52:24 +08:00
2d8fb1604f Merge branch 'bugfix/IDFGH-11398_v5.2' into 'release/v5.2'
bugfix(ble_mesh): Fixed incorrect RPR Client unicast address was obtained(154b4fcc)(v5.2)

See merge request espressif/esp-idf!27565
2023-12-06 10:51:12 +08:00
d07bd19ba6 fix(esp_system): fix uart clock disabled in driver cause esp_restart stuck 2023-12-06 10:36:48 +08:00
6139b362a0 fix(bt): Update bt lib for ESP32(fa43201)
- Fixed assert for instant passed workaround
- Fixed scan evt timeout
- Fixed random address setting when scanning
2023-12-06 10:35:55 +08:00
6a08a13e70 fix(bt/controller): Fixed some HCI commands parameter 2023-12-06 10:35:32 +08:00
70c7f3725f fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(b8f0db9)
- Fixed assert when llcp instant passed
2023-12-06 10:35:21 +08:00
b586575970 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(70ab55f)
- Fixed assert for instant passed workaround
- Fixed add RPA to white list
- Fixed AES encryption for RPA resolution
2023-12-06 10:35:11 +08:00
7c3a604e27 fix(bt/bluedroid): Fixed add RPA to white list 2023-12-06 10:34:57 +08:00
bc2ef597a4 fix(usb/host): remove bInterval verification during pipe opening for INTR and ISOC EPs 2023-12-05 16:44:53 +01:00
4cf3acb594 fix(usb/host): Do not abort on string descriptor overflow
Some devices return full LANGID table, even if short LANGID table was requested.
No memory overflow occurs, because we have allocated enough memory for transfers to the
default pipe. So we can ignore the error and continue with string desc fetching.
2023-12-05 16:44:53 +01:00
af4991fb39 refactor(hal/usb_dwc): Add DWC OTG configuration values
This commit adds a subset of the DWC OTG configuration values to the
'usb_dwc_ll.h' file. Only relevant configuration values have been added.

Some DWC OTG releated constants have also been moved from 'usb_dwc_hal.h'
to 'usb_dwc_ll.h' and renamed.
2023-12-05 16:44:53 +01:00
e9c617fa19 refactor(soc): SOC_USB_PERIPH_NUM option
This commit refactors SOC_USB_PERIPH_NUM as follows:

- Renamed to SOC_USB_OTG_PERIPH_NUM to avoid confusion with USB Serial JTAG
- Updated to unsigned integer "1U"
- Updated some build rules to depend on SOC_USB_OTG_SUPPORTED instead
2023-12-05 16:44:46 +01:00
a168fde297 fix(soc/esp32h2): Fix llperi_rng_data field discrepancy 2023-12-05 21:08:33 +05:30
8558aa4414 fix(soc/esp32c6): Fix llperi_rng_data field discrepancy 2023-12-05 21:08:32 +05:30
72176eee5d fix(wpa_supplicant): Move concurrent wps and dpp check to before creating task
- Move the check for checking concurrent wps and dpp check to before creating
  task rather than after.
2023-12-05 18:57:33 +05:30
3da789bae6 fix(wpa_supplicant): Fix a crash in esp_wifi_wps_disable
- Fixes a crash observed in esp_wifi_wps_disable when wps process
  is ongoing, caused due to concurrency issues in cancelling timers.
2023-12-05 18:57:25 +05:30
34795220d2 fix(wpa_supplicant): Add support for a dpp authentication timeout
- Adds support for a 1 second dpp authentication timeout.
2023-12-05 18:57:17 +05:30
357e0e144b fix(wpa_supplicant): Restructuring DPP init method to ensure cleanup
- Restructuring DPP init function to ensure cleanup of variables in case of
  init failure
2023-12-05 18:57:09 +05:30
58f1bde9ef fix(wpa_supplicant): Fix location of clearing up dpp global variables
- Fix location of cleaing up dpp global variables to ensure that there are
  no concurrency issues.
2023-12-05 18:57:02 +05:30
f9c8db8f94 fix(wpa_supplicant): Fix a memory leak in dpp deinit path
- Ensures that the auth information of dpp gets freed when there is
  dpp gets deinited.
2023-12-05 18:56:52 +05:30
6a92a3582e fix(esp_wifi):Fix WDT when esp_supp_dpp_start_listen called multiple times 2023-12-05 18:56:30 +05:30
609d25482b fix(wifi): fix the crash issue when clear scan ap list 2023-12-05 18:54:15 +05:30
36cbbdcf65 feat(wifi): add new api to get one scan ap record 2023-12-05 18:54:06 +05:30
a75cf3effd change(xtensa): Add migration guide for depreacted include paths 2023-12-05 18:37:33 +08:00
b85e6d3dd8 change(xtensa): Deprecate ".../xtensa_timer.h" include path
This commit deprecates the "freertos/xtensa_timer.h" and "xtensa/xtensa_timer.h"
include paths. Users should use "xtensa_timer.h" instead.

- Replace legacy include paths
- Removed some unnecessary includes of "xtensa_timer.h"
- Add warning to compatibility header
2023-12-05 18:04:52 +08:00
555bd367e1 change(xtensa): Deprecate ".../xtensa_context.h" include path
This commit deprecates the "freertos/xtensa_context.h" and "xtensa/xtensa_context.h"
include paths. Users should use "xtensa_context.h" instead.

- Replace legacy include paths
- Removed some unnecessary includes of "xtensa_api.h"
- Add warning to compatibility header
2023-12-05 18:04:52 +08:00
c2e134b775 change(xtensa): Deprecate ".../xtensa_api.h" include path
This commit deprecates the "freertos/xtensa_api.h" and "xtensa/xtensa_api.h"
include paths. Users should use "xtensa_api.h" instead.

- Replace legacy include paths
- Removed some unnecessary includes of "xtensa_api.h"
- Replaced some calls with "esp_cpu_..." equivalents
- Add warning to compatibility header
2023-12-05 18:04:52 +08:00
7cdddd47aa fix(nimble): Fixed authcomplete failure caused by a mismatch in the c1 value (v5.2) 2023-12-05 14:22:42 +05:30
ffd3a58ff9 fix(tools/coredump): do not detect port when core file is used
Closes https://github.com/espressif/esp-idf/issues/12673
2023-12-05 09:52:19 +01:00
bf816394d4 Merge branch 'bugfix/import_lib_example_url_v5.2' into 'release/v5.2'
fix(build-system/example): Removed dead URL for downloading tinyxml2 (v5.2)

See merge request espressif/esp-idf!27660
2023-12-05 15:27:19 +08:00
1625943486 change(i2c): Add check for scl frequency for master_bus_add_device
Closes https://github.com/espressif/esp-idf/issues/12598
2023-12-05 13:36:39 +08:00
52eab870e5 fix(build-system/example): Updated dead URL for downloading tinyxml2
The import_lib example contained a fallback mirror for downloading tinyxml2 sources
but this link was dead. If this mirror was used it would cause the build to fail.
2023-12-05 12:32:22 +08:00
ffbbf0cebf Merge branch 'feature/add_fatfs_sbom_v5.2' into 'release/v5.2'
feat(storage/fatfs): add sbom file manifest for FatFs (v5.2)

See merge request espressif/esp-idf!27479
2023-12-05 12:03:17 +08:00
a635d11b4a feat(storage/fatfs): add sbom file manifest for FatFs (v5.2) 2023-12-05 12:03:17 +08:00
df43d670a1 Merge branch 'change/freertos_remove_xcoreid_for_single_core_v5.2' into 'release/v5.2'
change(freertos/idf): Remove xCoreID from TCB in single-core builds (v5.2)

See merge request espressif/esp-idf!27617
2023-12-05 12:01:09 +08:00
7a3efab6a7 Merge branch 'backport/router_forwarding_flag_set_v52' into 'release/v5.2'
feat(lwip): support NA router farwording flag set(Backport v5.2)

See merge request espressif/esp-idf!27631
2023-12-05 11:59:54 +08:00
6388f3f13c Merge branch 'bugfix/nan_sd_dp_timer_fixes_v5.2' into 'release/v5.2'
Fix NAN service discovery, datapath and timer bugs (Backport v5.2)

See merge request espressif/esp-idf!27530
2023-12-05 11:29:16 +08:00
eb848eaa6b Merge branch 'bugfix/remove_rpa_rec_v5.2' into 'release/v5.2'
fix(nimble): Handled the deletion of RPA mapping.(v5.2)

See merge request espressif/esp-idf!27320
2023-12-05 11:16:12 +08:00
c7b527bd27 Merge branch 'bugfix/alarm_args_double_free_v5.2' into 'release/v5.2'
Bugfix/alarm args double free v5.2

See merge request espressif/esp-idf!27537
2023-12-05 11:14:13 +08:00
aba5fdcdcd Merge branch 'fix/fatfsgen_construct_v5.2' into 'release/v5.2'
fix(tools): Fix fatfsgen construct dependency (v5.2)

See merge request espressif/esp-idf!27653
2023-12-05 07:29:32 +08:00
fc95a892ab fix(tools): Fix fatfsgen construct exception type and dependency
construct=2.10.70 fixed an issue
(c3866e9492)
and StringError is raised instead of UnicodeDecodeError.
2023-12-04 17:21:10 +01:00
4c1c9373e9 fix(app_update): avoid erasing an extra sector than the actual required size
OTA update used to fail if `firmware_size == partition_size`, because the code was trying to
erase one additional sector beyond the space reserved for the firmware partition.

This commit fixes the problem and OTA update can work if the firmware
size exactly matches the allocated partition size.

Closes https://github.com/espressif/esp-idf/pull/12460
2023-12-04 18:42:44 +05:30
3081c8b5ea Merge branch 'bugfix/BLEQABR23-811_v5.2' into 'release/v5.2'
bugfix(ble_mesh): Enable CONFIG_BT_NIMBLE_VS_SUPPORT when using the duplicate...(v5.2)

See merge request espressif/esp-idf!27567
2023-12-04 19:48:29 +08:00
zwx
afbbaaf417 feat(lwip): support NA router farwording flag set
* Update submodule: git log --oneline
  4a8286ab8bcf983f22421e3d4be650837b5eb277..542ba2997f6cc14fe9c3d781bf9b0d890cd70bb1
- fix router forwarding flag set (espressif/esp-lwip@542ba299)
2023-12-04 16:22:24 +08:00
913550f62c fix(freertos/idf): Fix invalid xCoreID arguments in single-core
IDF FreeRTOS v10.5.1 no longer accepts out of range xCoreID arguments in
"PinnedToCore" task creation functions when building for single-core. This
commit fixes those violations through ESP-IDF.
2023-12-04 15:03:58 +08:00
ee0ee4887f change(freertos/idf): Remove xCoreID TCB member for single-core
This commit does the following:

- removes the xCoreID member from the TCB when building for single-core
- xCoreID is no longer hard set to 0 when calling "PinnedToCore" task creation
functions in single-core
- Tidy up or add missing xCoreID asserts for functions that take xCoreID as an
argument:
    - Functions that set/query a variable of a particular core will call
      taskVALID_CORE_ID() to ensure ) 0 <= xCoreID < configNUMBER_OF_CORES
    - Task creation functions that accept xCoreID also call taskVALID_CORE_ID()
      but also allow tskNO_AFFINITY.
- Fix TaskStatus_t
    - Remove xCoreID from TaskStatus_t if configTASKLIST_INCLUDE_COREID is not
      defined.
    - Set xCoreID to 0 when calling vTaskGetInfo() in single-core builds
2023-12-04 15:03:55 +08:00
63fee6c23a refactor(freertos/idf): Refactor yield and affinity macros
This commit refactors the following macros so that calling them no longer
requires referencing pxTCB->xCoreID.

- taskIS_YIELD_REQUIRED()
- taskIS_YIELD_REQUIRED_USING_PRIORITY()
- taskIS_AFFINITY_COMPATIBLE()
2023-12-04 14:59:37 +08:00
633dd89d4a feat(bt/bluedroid): Support ble create sync report disable and filter duplicate 2023-12-04 14:40:58 +08:00
c9f1d3e8be Merge branch 'fix/aes_mpi_interrupt_allocation_workflow_for_aes_gcm_v5.2' into 'release/v5.2'
fix(mbedtls/aes): fix AES interrupt allocation for AES-GCM operations (v5.2)

See merge request espressif/esp-idf!27578
2023-12-04 14:09:43 +08:00
e3653aaa98 fix(esp_hw_support): Removed unused include directories from cmake
* Closes https://github.com/espressif/esp-idf/issues/12700
2023-12-04 12:59:51 +08:00
0818b1fca1 Merge branch 'feature/misc_core_build_tests_p4_v5.2' into 'release/v5.2'
ci(system): fixed and enabled misc system build tests (v5.2)

See merge request espressif/esp-idf!27476
2023-12-04 12:16:58 +08:00
44f266693a fix(adc): restore cali registers after light sleep wake up on H2 and enable test 2023-12-04 12:03:49 +08:00
35844b3d09 ci(adc): add a test that adc continuous read after restarting 2023-12-04 11:56:24 +08:00
ca3bcb18b0 fix(adc): fix adc continuous get less results beacuse do not reset apb clk 2023-12-04 11:56:24 +08:00
8c86ccc2c6 Merge branch 'bugfix/lwip_dns_docs_v5.2' into 'release/v5.2'
fix(lwip): Document DNS limitation in lwIP (v5.2)

See merge request espressif/esp-idf!27558
2023-12-04 11:05:15 +08:00
7ee2470603 Merge branch 'fix/esp_vfs_fat_sdcard_format_workbuf_leak_v5.2' into 'release/v5.2'
fix: esp_vfs_fat_sdcard_format workbuf memory leak (v5.2)

See merge request espressif/esp-idf!27503
2023-12-04 11:03:21 +08:00
821d82f04e Merge branch 'support/add_srp_salt_ver_gen_api_v5.2' into 'release/v5.2'
Generate Salt and verifier pair for given username and password (v5.2)

See merge request espressif/esp-idf!27360
2023-12-04 11:00:50 +08:00
4e0459f112 Merge branch 'feature/refactor_some_coexist_sections_v5.2' into 'release/v5.2'
Feature/refactor some coexist sections v5.2

See merge request espressif/esp-idf!27365
2023-12-04 10:46:16 +08:00
3c43fb0707 Merge branch 'backport5.2/ot_examples_config' into 'release/v5.2'
fix(openthread): openthread examples config (backport v5.2)

See merge request espressif/esp-idf!27554
2023-12-03 17:31:52 +08:00
fb4e56e9a3 fix(nimble): Handled the deletion of RPA mapping. 2023-12-01 17:54:11 +05:30
60e439db60 Merge branch 'feature/docker_git_safe_dirs_v5.2' into 'release/v5.2'
feat(docker): allow to add dirs into git's safe.directory (v5.2)

See merge request espressif/esp-idf!27557
2023-12-01 19:04:54 +08:00
b94656115e fix(mbedtls/aes): fix AES interrupt allocation for AES-GCM operations 2023-12-01 16:34:49 +05:30
068a364a6b fix(bt/bluedroid): Fix BLE SMP register log level 2023-12-01 17:05:23 +08:00
134fd6b8d8 bugfix(ble_mesh): Enable CONFIG_BT_NIMBLE_VS_SUPPORT when using the duplicate scan feature on the NimBLE host. 2023-12-01 16:48:31 +08:00
d3a78fef1b bugfix(ble_mesh): Fixed incorrect RPR Client unicast address was obtained(154b4fcc) 2023-12-01 16:04:09 +08:00
3ca40da386 Merge branch 'bugfix/fix_http_client_async_mode_v5.2' into 'release/v5.2'
fix(esp_http_client): Fix esp_http_client async mode (v5.2)

See merge request espressif/esp-idf!27513
2023-12-01 15:38:16 +08:00
b05cfb4eb1 fix(lwip): Document DNS limitation in lwIP
* Add a note that DNS server config is global in lwIP
* Add a section about defining LWIP config macros from CMake
* Mention the DNS limitation in ESP-IDF additions to lwIP
* Update CN for lwIP DNS limitation

Co-Authored-By: Wang Ziyan <wangziyan@espressif.com>
2023-12-01 08:19:26 +01:00
2110f6b037 Merge branch 'update/ble_mesh_put_lib_in_submodule_v5.2' into 'release/v5.2'
fix(ble_mesh): Put Mesh 1.1 lib files in submodule (v5.2)

See merge request espressif/esp-idf!27549
2023-12-01 15:17:17 +08:00
1ef33e12a4 docs: update cn trans idf-docker-image 2023-12-01 08:09:05 +01:00
720985250b feat(docker): allow to add paths into git's safe.directory
With 8959555cee7e[1] ("setup_git_directory(): add an owner check for the top..")
git added an ownership check of the git directory and refuses to
run any git commands, even parsing the config file, if the git directory
is not owned by the current user. The "fatal: detected dubious ownership in repository"
is reported.

This fixes CVE-2022-24765[2], which allows to compromise user account. On a
multi-user system or e.g. on a shared file system, one user may create a "rogue"
git repository with e.g. core.fsmonitor set to an arbitrary command. Other user
may unwillingly execute this command by running e.g. git-diff or
git-status within the "rogue" git repository, which may be in one of the parent
directories. If e.g. PS1 is set to display information about a git
repository in CWD, as suggested in Git in Bash[3], the user do not need to run
any git command to trigger this, just entering some subdirectory under
this "rogue" git repository is enough, because the git command will be
started transparently through the script used in PS1. The core.fsmonitor
can be set to arbitrary command. It's purpose is to help git to identify changed files
and speed up the scanning for changed files.

rogue
├── .git     # owned by user1
└── dir1     # owned by user2
    ├── dir2 # owned by user2
    └── .git # owned by user2

user1 sets core.fsmonitor for git repository in rogue directory
$ git config --add core.fsmonitor "bash -c 'rm -rf \$HOME'"

user2 enters dir1 and runs e.g. git diff and triggers the core.fsmonitor command.

The ownership check may cause problems when running git commands in
ESP-IDF Docker container. For example user may run the container as
root, but the mounted project may be owned by a particular user.

In this case git will refuse to execute any git command within the
"/project" directory, because it's not owned by root. To overcome this,
git allows to set safe.directories, for which the ownership check is
skipped. The security check may be completely disabled by setting
safe.directories to "*". This solution was proposed in PR 12636[4], but
it would allow make it possible to exploit this vulnerability again.

This fix allows user to specify git's safe.directory in IDF_GIT_SAFE_DIR
environmental variable, which may be set during container startup.

The IDF_GIT_SAFE_DIR has same format as PATH and multiple directories can be
specified by using a ":" separator. To entirely disable this git security check
within the container, user may set IDF_GIT_SAFE_DIR='*'. This might be
heplfull in CI.

Closes https://github.com/espressif/esp-idf/pull/12636

[1] - 8959555cee
[2] - https://nvd.nist.gov/vuln/detail/cve-2022-24765
[3] - https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Bash
[4] - https://github.com/espressif/esp-idf/pull/12636

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-01 08:09:05 +01:00
dc835a0918 Merge branch 'bugfix/add_legacy_adv_clear_vsc_v5.2' into 'release/v5.2'
fix(nimble): Add support for VSC to clear legacy adv memory (v5.2)

See merge request espressif/esp-idf!27470
2023-12-01 15:03:45 +08:00
264284e0de Merge branch 'doc/change_deepsleep_example_readme_v5.2' into 'release/v5.2'
Doc/change deepsleep example readme v5.2

See merge request espressif/esp-idf!27446
2023-12-01 14:01:07 +08:00
2482c4a025 feat(coex): apply struct for coex version 2023-12-01 06:00:34 +00:00
0d0265f6f3 feat(coex): rename coexist sections 2023-12-01 06:00:34 +00:00
eba1baa63d Merge branch 'bugfix/ble_update_lib_20231124_v5.2' into 'release/v5.2'
ble(update):Update c2 lib to 79ed4e8a,Update h2 lib to 9a237426,Update c6 lib to 9a237426

See merge request espressif/esp-idf!27394
2023-12-01 13:58:27 +08:00
4f33ef4e11 fix(openthread): add eventfd nums for spi interface 2023-12-01 11:59:48 +08:00
0d55c89950 fix(openthread): remove invalid configs from ot examples 2023-12-01 11:59:38 +08:00
ba7b323c3e fix(ble_mesh): Use submodule for mesh 1.1 lib files 2023-12-01 10:00:37 +08:00
e58ed21fbf fix(ble_mesh): Remove the orginal mesh 1.1 lib files 2023-12-01 10:00:30 +08:00
026fb6e292 Merge branch 'fix/monitor_print_filter_v5.2' into 'release/v5.2'
fix(tools/monitor): fix PRINT_FILTER env variable usage (v5.2)

See merge request espressif/esp-idf!27417
2023-12-01 00:08:49 +08:00
587b4b32f8 Merge branch 'bugfix/uart_custom_console_v5.2' into 'release/v5.2'
fix(console): enable to select UART1 port for console output (v5.2)

See merge request espressif/esp-idf!27506
2023-11-30 21:46:22 +08:00
d28751ee7f fix(bt/bluedroid): Set the alarm_arg to NULL after releasing to avoid double free in L2CAP layer 2023-11-30 19:58:38 +08:00
7a335421e1 fix(bt/bluedroid): Set the alarm_arg to NULL after releasing to avoid double free in BTC layer 2023-11-30 19:58:02 +08:00
9f65fa31e2 fix(esp_wifi): Fix NAN service discovery, datapath and timer bugs
1. Fix crash while cancelling NAN service
2. Avoid possible crash scenarios while forming datapath
3. Modify peer records structure thus fixing issues in datapath establishment
4. Fix timer out of bound issue causing "No timer handle" warning
5. Fix miscellaneous service discovery and datapath issues
2023-11-30 16:34:19 +05:30
dd295049a9 fix(wifi): free beacon eb when softap destroy 2023-11-30 16:28:37 +05:30
b5cfc9400c ci(esp_eth): addressed LAN8720 errata in CI test 2023-11-30 09:29:37 +00:00
a82879367a feat(esp_eth): added ioctl option to read/write PHY registers
LAN87xx: Added extra delay after setting PHY speed
2023-11-30 09:29:37 +00:00
d554768528 ci(esp_eth): make additional Ethernet chips test as nightly run 2023-11-30 09:29:37 +00:00
b807b6ebf3 Merge branch 'fix/ieee802154_sleep_config_v5.2' into 'release/v5.2'
fix(ieee802154): fix ieeee802154 sleep enable configuration dependency issue (backport v5.2)

See merge request espressif/esp-idf!27467
2023-11-30 16:53:12 +08:00
e4ecfc2133 fix(esp_http_client): Fix esp_http_client async mode
Closes https://github.com/espressif/esp-idf/issues/12358
2023-11-30 12:04:31 +05:30
99a923fa0f fix(nimble): Add support for VSC to clear legacy adv memory
Legacy adv does not have an API for clear adv memory in controller.
 Added VSC for same.
2023-11-30 09:10:06 +05:30
40d48108b1 Merge branch 'bugfix/cts_handle_invalid_year_val_v5.2' into 'release/v5.2'
fix(nimble): Handled invalid write on year value in Current Time Service (v5.2)

See merge request espressif/esp-idf!27461
2023-11-30 11:38:36 +08:00
55ed548cc6 fix(console): enable to select UART1 port for console output
This feature was only enabled for esp32, esp32s2, esp32s3 previously.
Now, enabling this feature for all targets.
2023-11-30 11:26:09 +08:00
3d2daa08cc fix(bt/bluedroid): Fix bluedroid menuconfig 2023-11-30 10:42:04 +08:00
804f939ed0 docs(bt/bluedroid): Update ble example document 2023-11-30 10:41:48 +08:00
d465ed93f6 fix: esp_vfs_fat_sdcard_format workbuf memory leak 2023-11-29 16:16:58 +01:00
c90d14c979 Merge branch 'fix/cleanup_deleted_menuconfig_option_entries_v5.2' into 'release/v5.2'
fix(mbedtls): Fix menuconfig option entries (v5.2)

See merge request espressif/esp-idf!27463
2023-11-29 21:20:55 +08:00
afab071f51 bugfix(ble_mesh): Supplementary configuration options that should be enabled. 2023-11-29 19:19:18 +08:00
d680a3949b fix(ble_mesh): Support using random adv interval for mesh packets 2023-11-29 19:19:18 +08:00
faf6bc933e ci(system): fixed and enabled misc system build tests 2023-11-29 16:59:15 +08:00
6fcfe379bc Merge branch 'feature/expose_unload_partitions_v5.2' into 'release/v5.2'
refactor(esp_partition): Expose function for unloading partitions (v5.2)

See merge request espressif/esp-idf!27425
2023-11-29 16:34:26 +08:00
e089cb3d4d Merge branch 'fix/fatfs_formatting_wrong_volume_v5.2' into 'release/v5.2'
Fix: FATFS formatting wrong partition (v5.2)

See merge request espressif/esp-idf!27372
2023-11-29 16:32:24 +08:00
2555d5cb12 fix(ieee802154): fix ieeee802154 sleep enable configuration dependency issue 2023-11-29 13:44:59 +08:00
c1779ff8b7 fix(mbedtls): Removed redundant menuconfig entry 2023-11-29 09:50:12 +05:30
1437d00487 fix(nimble): Handled invalid write on year value in Current Time Service 2023-11-29 09:49:53 +05:30
1a9f3b22f4 Merge branch 'bugfix/fix_wifi_deinit_s_wifi_modem_sleep_lock_v5.2' into 'release/v5.2'
fix(wifi): fix wifi deinit s_wifi_modem_sleep_lock

See merge request espressif/esp-idf!27451
2023-11-29 12:15:59 +08:00
567bc462f0 feat(coredump): save isr context to coredump elf file 2023-11-28 18:19:03 +01:00
a9b1a27c9a fix(wifi): fix wifi deinit s_wifi_modem_sleep_lock 2023-11-28 20:57:02 +08:00
09a3d068d9 docs(pm):add uart wakeup description when pd top 2023-11-28 19:39:53 +08:00
70e83a5871 docs(pm):add gpio wakeup description when pd top 2023-11-28 19:39:53 +08:00
e849809f4b docs(pm):change_deepsleep_example_readme 2023-11-28 19:39:53 +08:00
bc38841c11 Merge branch 'bugfix/i80_lcd_tx_param_check_enhancement_v5.2' into 'release/v5.2'
fix(i80_lcd): enhance the check of a valid data phase (v5.2)

See merge request espressif/esp-idf!27427
2023-11-28 18:33:19 +08:00
f40318c6c7 Merge branch 'bugfix/fix_duplicate_exception_vsc_5.2' into 'release/v5.2'
fix(nimble): Fix the parameters in duplicate exception list vsc command(v5.2)

See merge request espressif/esp-idf!27405
2023-11-28 15:49:51 +08:00
4122499997 Merge branch 'feature/current_time_service_v5.2' into 'release/v5.2'
feat(nimble): Added Example support for Current Time Service (v5.2)

See merge request espressif/esp-idf!26975
2023-11-28 14:00:21 +08:00
ef5acffcbb Merge branch 'fix/memory_leak_in_nvs_flash_v5.2' into 'release/v5.2'
fix(nvs_flash): Fix the memory leak in the nvs_flash test app (v5.2)

See merge request espressif/esp-idf!27422
2023-11-28 13:26:00 +08:00
1f79b5045d fix(i80_lcd): enhance the check of a valid data phase
in case the user passes a (uint8_t){0x00} parameter with the perameter size
set to zero
2023-11-28 09:57:02 +08:00
74c0234f72 refactor(esp_partition): Expose function for unloading partitions
Closes https://github.com/espressif/esp-idf/issues/12625
2023-11-27 19:49:59 +01:00
330f3edf11 fix(nvs_flash): Fix the memory leak in the nvs_flash test app
The leak is now reduced by allocating the AES interrupt and
loading the partitions in the test setup instead of in the tests itself.
2023-11-27 17:25:14 +05:30
63ea519cbe docs: Update CN translation for api-guides/tools/idf-monitor.rst 2023-11-27 09:32:41 +01:00
c71ee4f78a fix(tools/monitor): fix PRINT_FILTER env variable usage 2023-11-27 09:32:41 +01:00
5c74467a5d Merge branch 'fix/astyle_pyyaml_cython_v5.2' into 'release/v5.2'
fix(ci): bump astyle version to v1.0.5 in .pre-commit-config.yaml (v5.2)

See merge request espressif/esp-idf!27398
2023-11-27 16:16:46 +08:00
8150abfb67 fix(nimble): Fix the parameters in duplicate exception list vsc command 2023-11-27 08:52:27 +05:30
4bedb8372b feat(nimble): Added example support for Current Time Service 2023-11-27 08:43:00 +05:30
170055603e Merge branch 'bugfix/fix_dangling_pointer_compilation_warning_v5.2' into 'release/v5.2'
fix(nimble): Fix dangling pointer error during compilation (v5.2)

See merge request espressif/esp-idf!27160
2023-11-27 10:49:05 +08:00
634ce1e425 fix(nimble): Fix dangling pointer error during compilation 2023-11-26 12:36:26 +05:30
b74bdaceee fix(ci): bump astyle version to v1.0.5 in .pre-commit-config.yaml
pyyaml have problem with newer cython(3.0), this was fixed in pyyaml
6.0.1, which requires cython<3.0. The pyyaml dependency in astyle
was fixed in v1.0.5, but the pre-commit config is still useing v1.0.2.
As a result the pre-commit hooks installation of astyle can fail
on pyyaml. Fix this by bumping the astyle version for pre-commit.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-11-24 14:32:51 +01:00
b780287e3b Merge branch 'backport/uart_select_malloc_5.2' into 'release/v5.2'
fix(vfs): fix uart malloc when locates ISR context in IRAM(Backport 5.2)

See merge request espressif/esp-idf!27383
2023-11-24 20:49:48 +08:00
8a64c4c404 ble: update rom.ld file 2023-11-24 20:33:49 +08:00
c6c42d0b5c ble: update sdkconfig_version on ESP32C2, ESP32H2 and ESP32C6 2023-11-24 20:20:20 +08:00
9ead485ffd ble(fix): fix RX issue on ESP32-C2 2023-11-24 19:41:35 +08:00
6abe369115 ble:
Update c2 lib to 79ed4e8a
Update h2 lib to 9a237426
Update c6 lib to 9a237426
2023-11-24 19:21:13 +08:00
zwx
be96274ea3 fix(vfs): fix uart malloc when locates ISR context in IRAM 2023-11-24 16:09:14 +08:00
f28c47e4af feat(tools): update gdb version to 12.1_20231023 2023-11-24 11:12:09 +04:00
a9f7ea3566 Merge branch 'bugfix/ble_gap_unpair_oldest_peer_fix_v5.2' into 'release/v5.2'
fix(nimble): Fixed ble_gap_unpair_oldest_peer to prevent writing to invalid memory (v5.2)

See merge request espressif/esp-idf!27315
2023-11-24 12:24:43 +08:00
f0e1a1f35f Merge branch 'bugfix/ble_update_lib_1110_5.2' into 'release/v5.2'
Bugfix/ble update lib 1110 5.2

See merge request espressif/esp-idf!27062
2023-11-24 10:13:30 +08:00
c77b2fcd5d fix(storage): FATFS WL function formatting wrong partition
Closes https://github.com/espressif/esp-idf/issues/12542

Co-authored-by: Tony Stuart <anthonyfstuart@gmail.com>
2023-11-23 22:45:36 +01:00
8cc8a1108d Merge branch 'bugfix/authmode_incompatible_reason_code_v52' into 'release/v5.2'
Expand situations for REASON_NO_AP_FOUND_WITH_COMPATIBLE_SECURITY(v5.2)

See merge request espressif/esp-idf!27341
2023-11-23 19:40:25 +08:00
541b665b9f feat(provisioning): Generate Salt and verifier pair for given username and password
This commit adds a new feature to generate a salt and verifier pair for a given username and
password during the provisioning process. This is useful in scenarios where the pairing pin is
randomly generated and shown via some interface such as a display or console.

- Uses the provided username and password to generate a salt and verifier pair
- Adds support for dev mode where the pin/password can still be read from flash
2023-11-23 14:25:53 +05:30
ee65ea9fb7 refactor(esp_srp): Expose esp_srp.h and add API docs
- Also added missing `protocomm_security2` reference in `protocomm.rst`
2023-11-23 14:25:53 +05:30
7add372f37 Merge branch 'bugfix/return_code_of_ota_finish_api_v5.2' into 'release/v5.2'
fix(esp_https_ota): fix return code of esp_https_ota_finish API (v5.2)

See merge request espressif/esp-idf!27334
2023-11-23 16:30:16 +08:00
263d186a5f Merge branch 'bugfix/fix_wifi_init_reentrant_issue_v5.2' into 'release/v5.2'
fix(wifi): fix wifi init reentrant issue

See merge request espressif/esp-idf!27176
2023-11-23 15:28:26 +08:00
b7ac980fbc Merge branch 'backport/add_docs_for_coex_v52' into 'release/v5.2'
feat(docs) Add RF Coexist docs for H2

See merge request espressif/esp-idf!27237
2023-11-23 13:57:40 +08:00
80f3916f0f fix(nimble): Fixed ble_gap_unpair_oldest_peer to prevent writing to invalid memory 2023-11-23 10:54:31 +05:30
7faa087670 fix(wifi): fix wifi init reentrant issue 2023-11-23 10:37:16 +08:00
d0dab67955 Merge branch 'fix/esp32c6_sleep_pll_issue_v5.2' into 'release/v5.2'
fix(pm): add mac/bb power down/up prepare for fix esp32c6 pll issue (backport v5.2)

See merge request espressif/esp-idf!27313
2023-11-23 02:31:14 +08:00
004e93764f Merge branch 'bugfix/uart_vfs_select_in_iram_v5.2' into 'release/v5.2'
fix: add UART VFS select callback in IRAM when CONFIG_UART_ISR_IN_IRAM is enabled (v5.2)

See merge request espressif/esp-idf!27297
2023-11-22 22:43:24 +08:00
f41d1b09f8 Merge branch 'contrib/github_pr_12558_v5.2' into 'release/v5.2'
Fix: esptool_py incorrectly assumed target name equals binary name (GitHub PR) (v5.2)

See merge request espressif/esp-idf!27268
2023-11-22 22:41:20 +08:00
83d9e81789 fix(esp_wifi): Expand situations for REASON_NO_AP_FOUND_WITH_COMPATIBLE_SECURITY
- Fixes issue with connecting and discovering WEP APs
- Expands the reasons for trigerring a disconnect using
  REASON_NO_AP_FOUND_WITH_COMPATIBLE_SECURITY
-- SAE-PK configured as compulsory in sta config but disabled for the AP
-- SAE-H2e configured as compulsory in sta config but disabled for an AP
that has authmode as WPA3-PSK or WPA3-WPA2-PSK.
-- Open AP found but we have set password or enabled enterprise mode.
-- SAE HnP set in config and AP supports H2E only
-- WPA3-EXT-PSK AP but H2E disabled in config
2023-11-22 19:10:29 +05:30
e202aa3b9f fix(esp_https_ota): fix return code of esp_https_ota_finish API
Closes https://github.com/espressif/esp-idf/issues/12635
2023-11-22 17:09:47 +05:30
c23973dfa7 Merge branch 'test/ctrl_acl_u_pkt_type_v5.2' into 'release/v5.2'
feat(bt/bluedroid): Added an API to specify data types for ACL-U traffic (v5.2)

See merge request espressif/esp-idf!27128
2023-11-22 17:17:22 +08:00
8495745471 Merge branch 'fix/remove_deprecated_bt_example_sdkfonfigs_v5.2' into 'release/v5.2'
ci(bt/bluedroid): remove configs that are not in effect (backport v5.2)

See merge request espressif/esp-idf!27281
2023-11-22 17:17:12 +08:00
zwx
323f128228 feat(docs): Add RF Coexist docs for H2 2023-11-22 16:58:54 +08:00
6ffc6a40a7 fix(pm): add mac/bb power down/up prepare for fix esp32c6 pll issue
* switch root clk src to PLL for modem reg opt and added callback
* register power_down/power_up callback in ieee802154 driver for esp32c6
* remove software regdma opt in bt
2023-11-22 11:58:02 +08:00
c7a270f83d Merge branch 'feature/support_ext1_clear_spec_pins_v5.2' into 'release/v5.2'
fix(pm/ext1): fix c6 h2 lp_aon_ll_ext1_set_wakeup_pins func

See merge request espressif/esp-idf!27285
2023-11-22 11:35:02 +08:00
93b2c4640b Merge branch 'bugfix/coex_deprecate_config_rename_v5.2' into 'release/v5.2'
fix(esp_coex): Fix deprecated configuration options not rename to new one (Backport v5.2)

See merge request espressif/esp-idf!27091
2023-11-22 11:33:20 +08:00
ecd894a4bd Merge branch 'feature/get_whitelist_size_v5.2' into 'release/v5.2'
feat(nimble): Added API to retrieve the size of the controller's white list (v5.2)

See merge request espressif/esp-idf!26953
2023-11-22 11:15:19 +08:00
45d801d815 fix(vfs/uart): add UART VFS select callback in IRAM
UART VFS select callback is placed in IRAM when CONFIG_UART_ISR_IN_IRAM is enabled
2023-11-21 10:26:25 +01:00
15b27b1749 feat(bt/bluedroid): Added an API to specify data types for ACL-U traffic 2023-11-21 08:09:24 +00:00
26aa680b5b Merge branch 'bugfix/add_par_check_in_ag_cind_res_v5.2' into 'release/v5.2'
Bugfix/add par check in ag cind res v5.2

See merge request espressif/esp-idf!27256
2023-11-21 16:08:09 +08:00
b7b042f45d ble(fix): deinit crash issue 2023-11-21 15:07:37 +08:00
zwl
8f44bee739 fix(ble): fixed ble occasional rx exception issue 2023-11-21 15:06:23 +08:00
e785f453f4 ci(ble/bluedroid): Add notes in sdkconfig.defaults 2023-11-21 15:06:23 +08:00
533b82aae1 ble: update controller log module 2023-11-21 15:06:23 +08:00
17c72d85e4 ble: update c6 h2 lib to 5b1dfd2b, c2 lib to db4e1fb2 2023-11-21 15:06:23 +08:00
564e5c9429 ble(fix): Fixed the issue of not returning memory to the memory pool after deinit callout
ble(fix): Fixed the issue of not returning memory to the memory pool after deinit callout
2023-11-21 15:06:23 +08:00
fb6ba3f337 feat(nimble): Added API to retrieve the size of the controller's white list (v5.2) 2023-11-21 12:34:55 +05:30
f04854bb4a Merge branch 'docs/update_nan_docs_v5.2' into 'release/v5.2'
Fix inconsistency in NAN documentation (Backport v5.2)

See merge request espressif/esp-idf!27267
2023-11-21 11:48:31 +08:00
d7ae1665f1 fix(pm/ext1): fix c6 h2 lp_aon_ll_ext1_set_wakeup_pins func 2023-11-21 11:31:53 +08:00
ba8afdbf81 Merge branch 'bugfix/fix_incorrect_irk_set_v5.2' into 'release/v5.2'
fix(nimble): Fixed issue of incorrect IRK being set (v5.2)

See merge request espressif/esp-idf!27249
2023-11-21 11:16:45 +08:00
feda32be06 Merge branch 'bugfix/newlib_test_correct_assertions_v5.2' into 'release/v5.2'
fix(newlib,ci): wrong floating point number handling in tests (v5.2)

See merge request espressif/esp-idf!27089
2023-11-21 11:15:50 +08:00
df7ba090f3 Merge branch 'bugfix/esp32h2_ecdsa_hardware_k_v5.2' into 'release/v5.2'
fix(esp32h2): program use_hardware_k efuse bit for ECDSA key purpose (v5.2)

See merge request espressif/esp-idf!27234
2023-11-21 11:13:37 +08:00
c73141a9c2 Merge branch 'bugfix/rmt_tx_check_owner_v5.2' into 'release/v5.2'
fix(rmt): reenable dma owner check (v5.2)

See merge request espressif/esp-idf!27260
2023-11-21 11:12:06 +08:00
98261d38cc ci(bt/bluedroid): remove configs that are not in effect 2023-11-21 10:09:15 +08:00
b1bba5fdd3 Merge branch 'bugfix/spp_deinit_crash_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix the crash of invalid access to released resources (v5.2)

See merge request espressif/esp-idf!27250
2023-11-21 09:59:01 +08:00
bb29c6e55d feat(ci): add test for custom cmake CMAKE_EXECUTABLE_SUFFIX
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-11-20 10:48:47 +01:00
aaf398617c fix(build): fix build failure if CMAKE_EXECUTABLE_SUFFIX is set
From: Arno Moonen <arno.moonen@airios.eu>

Follows original message from Arno Moonen <arno.moonen@airios.eu>

While integrating the ESP-IDF into our existing CMake structure,
I've come across quite some hurdles. Most I've been able to fix
in our CMake files, however this one I could not.

Most of the targets created by the esptool_py component assume
that the EXECUTABLE IDF build property (which contains the name
of the CMake executable target) always equals the name of the
created binary.

This is however not always true. For instance, in our setup we use
CMAKE_EXECUTABLE_SUFFIX_C and CMAKE_EXECUTABLE_SUFFIX_CXX in our
toolchain file (both set to .elf). If we do add_executable(my_app),
the target binary file would actually be my_app.elf.

In order to fix this, I've updated it to use the TARGET_FILE generated
expression. That way we also no longer need the EXECUTABLE_DIR IDF build
property here.

I've fixed this on v5.0.1 (as that's the ESP-IDF version I'm currently
trying to integrate), but I assume it should be easy to apply the same
fix to newer versions and the master branch as well.

Note that this problem might exist in multiple places where EXECUTABLE
is being used. While going through the ESP-IDF code base, I even noticed
that a few places actually already seem to use the TARGET_FILE expression.
To be honest the property name might be somewhat confusing as well, as it
is actually the executable target.

Closes https://github.com/espressif/esp-idf/pull/12558
2023-11-20 10:48:47 +01:00
782eaa3c7e docs(esp_wifi): Fix inconsistency in NAN documentation 2023-11-20 15:07:45 +05:30
d4b4fe85af Merge branch 'feature/support_for_32_and_128_bit_custom_uuids_v5.2' into 'release/v5.2'
feat(bt/bluedroid): Add new APIs for 32 and 128-bit UUIDs (backport v5.2)

See merge request espressif/esp-idf!27229
2023-11-20 17:00:47 +08:00
40093b34eb fix(rmt): enable dma owner check
Closes https://github.com/espressif/esp-idf/issues/12564
2023-11-20 14:55:34 +08:00
78a3ecb7ff fix(bt/bluedroid): corrected the API documents of profile HFP and A2DP 2023-11-20 11:58:13 +08:00
135987b339 fix(bt/bluedroid): Added some argument check in APIs of HFP AG 2023-11-20 11:57:58 +08:00
e67e9cca57 Merge branch 'fix/aes_mpi_interrupt_allocation_workflow_v5.2' into 'release/v5.2'
fix(mbedtls): move interrupt allocation during initialization phase (v5.2)

See merge request espressif/esp-idf!27203
2023-11-20 10:54:20 +08:00
ea21b8b700 Merge branch 'bugfix/mcpwm_fault_trigger_test_v5.2' into 'release/v5.2'
fix(mcpwm): fault trigger test forget connect timer and operator (v5.2)

See merge request espressif/esp-idf!27239
2023-11-20 10:52:03 +08:00
600c7c8828 fix(nimble): Fixed issue of incorrect IRK being set 2023-11-20 08:21:50 +05:30
8abcc07d1f fix(mcpwm): fault trigger test forget connect timer and operator 2023-11-17 16:34:40 +08:00
bad8adfd59 docs(ecdsa): add a note about TRNG dependency for ECDSA peripheral 2023-11-17 07:13:53 +00:00
f207ce15df fix(api-docs): include in the ECDSA APIs for doxygen build 2023-11-17 07:13:53 +00:00
2882b6f68b docs: add ECDSA peripheral chapter for H2/P4
- Add ECDSA peripheral chapter and instructions to program efuse key block
- Update security guide for ECDSA peripheral mention for device identity
- Link with ESP-TLS guide about using ECDSA peripheral in TLS connection
2023-11-17 07:13:53 +00:00
f434d21f4a fix(ecdsa): remove unused k_mode from the ECDSA HAL/LL API
For ESP32-H2 case, the hardware k mode is always enforced through
efuse settings (done in startup code).

For ESP32-P4 case, the software k mode is not supported in the peripheral
itself and code was redundant.
2023-11-17 07:13:53 +00:00
d3b4acf7a0 fix(esp32h2): program use_hardware_k efuse bit for ECDSA key purpose
In ESP32-H2, the ECDSA peripheral by default uses the TRNG (hardware)
generated k value but it can be overridden to software supplied k.
This can happen through by overriding the `ECDSA_SOFTWARE_SET_K` bit
in the configuration register. Even though the HAL API is not exposed
for this but still it could be achieved by direct register
programming. And for this scenario, if sufficiently random k is not
supplied by the software then it could posses a security risk.

In this change, we are unconditionally programming the efuse
`ESP_EFUSE_ECDSA_FORCE_USE_HARDWARE_K` bit during startup security
checks itself. Additionally, same is ensured in the `esp_efuse_write_key`
API as well. This always enforces the hardware k mode in the ECDSA
peripheral and ensures strongest possible security.
2023-11-17 07:13:53 +00:00
35013d90a3 Merge branch 'bugfix/fix_onebyte_watchpoint_setting_v5.2' into 'release/v5.2'
fix(riscv): supports 1 byte and larger than 64byte range watchpoint setting (v5.2)

See merge request espressif/esp-idf!27214
2023-11-17 13:49:30 +08:00
57bbfd423a Merge branch 'fix/heap-task-tracking_v5.2' into 'release/v5.2'
fix(heap): Fix bugs in heap task tracking (backport v5.2)

See merge request espressif/esp-idf!27042
2023-11-17 12:47:52 +08:00
3d591c57c0 Merge branch 'feature/add_run_time_counter_type_option_v5.2' into 'release/v5.2'
feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option (v5.2)

See merge request espressif/esp-idf!26848
2023-11-17 11:25:37 +08:00
9d694e40ed Merge branch 'bugfix/clear_ulp_wake_intr_in_wake_source_enable_v5.2' into 'release/v5.2'
fix(esp_hw_support): clear all type ULP wakeup intr status at ulp wakeup source enable (backport v5.2)

See merge request espressif/esp-idf!27187
2023-11-17 11:04:23 +08:00
1cdca25776 Merge branch 'bugfix/fix_lightsleep_current_leakage_on_usj_pad_v5.2' into 'release/v5.2'
fix(esp_hw_support): fix lightsleep current leakage on usb pad (backport v5.2)

See merge request espressif/esp-idf!27199
2023-11-17 10:47:31 +08:00
0e61201243 fix(bt/bluedroid): Fix the crash of invalid access to released resources
It is caused by the delayed timer is alarmed after esp_spp_deinit.
2023-11-17 10:37:28 +08:00
7f0f299e66 Merge branch 'bugfix/fix_dhcp_subnet_option_api_dos_not_work_issue_5.2' into 'release/v5.2'
Fix(dhcps):fix dhcp subnet option api dos not work issue 5.2

See merge request espressif/esp-idf!27210
2023-11-17 10:33:51 +08:00
fc11d2ae72 Merge branch 'bugfix/secure_boot_v2_docs_v5.2' into 'release/v5.2'
fix(docs): correct the target specific macros for secure boot v2 guide (v5.2)

See merge request espressif/esp-idf!27169
2023-11-17 10:31:57 +08:00
7f8fe9569c Merge branch 'bugfix/fix_some_ble_bugs_v5.2' into 'release/v5.2'
Fixed some BLE bugs (backport v5.2)

See merge request espressif/esp-idf!27195
2023-11-17 10:30:27 +08:00
bf8a6ef490 Merge branch 'bugfix/fix_psram_access_faild_after_pd_cpu_wakeup_v5.2' into 'release/v5.2'
fix(esp_pm): fix psram access failed after pd_cpu wakeup if uart driver driven console is used (backport v5.2)

See merge request espressif/esp-idf!27050
2023-11-17 10:29:03 +08:00
f8ee9b334c Merge branch 'bugfix/freertos_define_list_volatile_v5.2' into 'release/v5.2'
fix(freertos/idf): Define configLIST_VOLATILE for list elements (v5.2)

See merge request espressif/esp-idf!27096
2023-11-17 10:28:44 +08:00
47ddba60d7 Merge branch 'bugfix/generate_new_irk_across_reboot_v5.2' into 'release/v5.2'
fix(nimble): Generate a new unique IRK for every chip. (v5.2)

See merge request espressif/esp-idf!27116
2023-11-17 10:28:22 +08:00
2fa1e2b23a Merge branch 'bugfix/wifi_backport_v5.2' into 'release/v5.2'
fix(esp_wifi): backport some wifi fixes to v5.2

See merge request espressif/esp-idf!27185
2023-11-17 04:43:10 +08:00
f0869bb354 Merge branch 'bugfix/dpp_config_memset_v5.2' into 'release/v5.2'
Wi-Fi: Fixed some DPP issues (v5.2)

See merge request espressif/esp-idf!27191
2023-11-16 20:37:28 +08:00
89c3bebad4 Merge branch 'bugfix/move_fe_32m_to_adc_fe_common_clock_v5.2' into 'release/v5.2'
fix(esp_hw_support): move fe_32m to fe/adc common clock (backport v5.2)

See merge request espressif/esp-idf!27057
2023-11-16 20:36:58 +08:00
600986cf49 fix(riscv): supports 1 byte and larger than 64byte range watchpoint setting 2023-11-16 20:23:57 +08:00
4379d26f65 change(soc): rename SOC_CPU_WATCHPOINT_SIZE to SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 2023-11-16 20:23:57 +08:00
30ecc4ce72 Fix(dhcps):fix dhcp subnet option api dos not work issue 2023-11-16 20:17:42 +08:00
9bf48e77f0 fix(mbedtls): move interrupt allocation during initialization phase 2023-11-16 16:16:57 +05:30
b7f1aa5292 fix(esp_hw_support): fix lightsleep current leakage on usb-phy controlled pad 2023-11-16 17:18:43 +08:00
d65f8a5fc6 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(2758518)
- Fixed power state setting when entering modem sleep
2023-11-16 16:31:25 +08:00
34d964bf38 Update bt lib for ESP32-C3 and ESP32-S3(f817304)
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
2023-11-16 16:31:18 +08:00
48b4693eae update esp32 bt-lib (6458728)
- Modify mesh proxy solic uuid to 0x18590303
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
2023-11-16 16:29:47 +08:00
9ecfa6af81 feat(bt/bluedroid): support clear legacy advertising 2023-11-16 16:29:32 +08:00
43f2476aac Merge branch 'bugfix/esp32s3_usb_otg_console_without_efuse_v5.2' into 'release/v5.2'
fix(console): switch USB PHY to OTG when OTG is used for console (v5.2)

See merge request espressif/esp-idf!27134
2023-11-16 16:29:09 +08:00
476f83c602 fix(wifi): Disallow DPP and WPS concurrency 2023-11-16 12:34:23 +05:30
ab93a6bd5b fix(wpa_supplicant): memzero wifi config before sending config event 2023-11-16 12:34:10 +05:30
79dd7a350e ci(ulp_test): fix fake sleep of the maincore in ulp pytest cases 2023-11-16 11:47:20 +08:00
adc8351458 fix(esp_hw_support): clear all type ULP wakeup intr status at ulp wakeup source enable 2023-11-16 11:47:20 +08:00
681439b85a Merge branch 'change/freertos_local_crit_section_macro_v5.2' into 'release/v5.2'
change(freertos/idf): Refactor thread safety convenience macros (v5.2)

See merge request espressif/esp-idf!26997
2023-11-16 11:23:25 +08:00
8baaeb2fa3 fix(wifi): fix bug in 'esp_wifi_deauthenticate_internal' and other improvements 2023-11-16 11:13:45 +08:00
eb51374615 fix(wpa_supplicant): Add some bugfixes in wpa_supplicant
1) Add parameter to configure reason code of deauth frame
2) Add logs to indicate MIC failure 4-Way-Handshake
3) Process RSNXE capabilities only if AP advertises them
2023-11-16 11:13:26 +08:00
00484dc8a7 feat(wifi/vendor): get more wifi information in csi rx callback 2023-11-16 11:11:26 +08:00
539c4d8cd0 doc(Wi-Fi/Vendor): Update comments for wifi_csi_info_t 2023-11-16 11:09:52 +08:00
f5b7b148f1 Fix(esp_wifi): Add the missing header file to the wifi header files. 2023-11-16 11:09:38 +08:00
b62d63b767 fix(esp_wifi): Add more descriptive reasons for disconnect
Adds 3 more ddisconnect reasons in case of No AP found.
1. REASON_NO_AP_FOUND_IN_RSSI_THRESHOLD : AP rejected because it did
   not meet rssi threshold.

2. REASON_NO_AP_FOUND_IN_AUTHMODE THRESHOLD : AP rejected because it
   did not meet security threshold.

3. REASON_NO_AP_FOUND_WITH_COMPATIBLE_ SECURITY : AP rejected because
   of incompatible security configuration. These situations could include
   -- bss offerring WEP, but our password is not WEP compliant,
   -- Encrypted AP bss but we have no password config set.
   -- AP is Enterprise but we have not setup enterprise config and vice versa

    Closes https://github.com/espressif/esp-idf/issues/5957
2023-11-16 11:08:55 +08:00
de36cb7904 fix(wifi): sta not pmf capable when ap requires should reject profile 2023-11-16 11:07:48 +08:00
07245bf43a fix(wifi/mesh): fix the IE crypto disable error and update doc 2023-11-16 11:03:59 +08:00
2b6feac67c change(wifi): update esp_coexist_internal.h and esp_modem_wrapper.h 2023-11-16 11:03:44 +08:00
6cabcc8206 docs(esp_mesh): update esp_mesh_internal.h 2023-11-16 11:03:32 +08:00
6bf448ddc8 update(wifi): update esp_wifi_crypto_types.h 2023-11-16 11:03:08 +08:00
868d52dcd1 update(esp_coexist): update esp coexist header file 2023-11-16 11:02:56 +08:00
22c5a4befc fix(wifi): add esp_wifi and esp_coexist header files to Doxyfile 2023-11-16 11:02:40 +08:00
d8b2b9e77f esp_supplicant: remove wpa supplicant ROM source code copyrights 2023-11-16 11:02:30 +08:00
7b27e4e66a fix(esp_coex): Fix deprecated configuration options not rename to new one 2023-11-16 02:59:00 +00:00
4175c60a21 fix(esp_hw_support): move fe_32m to fe/adc common clock 2023-11-16 02:58:16 +00:00
592b1660a0 fix(newlib,ci): wrong floating point number handling in tests 2023-11-16 02:57:41 +00:00
5740323822 fix(heap): Add missing test for heap task tracking config
- Add sdkconfig.ci.task_tracking that runs generic tests
with heap task tracking enabled.
- Add task_tracking.c that includes a test checking that
a created task that allocates memory is added to the list
of task tracked by the heap task tracking feature.
2023-11-16 02:57:15 +00:00
4824325fe4 fix(heap): Fix bugs in heap task tracking
Update task tracking feature to fix bugs introduced when
decoupling task tracking from heap poisoning.

Closes https://github.com/espressif/esp-idf/issues/12498
Closes https://github.com/espressif/esp-idf/issues/12493
2023-11-16 02:57:15 +00:00
c570105f36 fix(esp_pm): fix psram access faild after pd_cpu wakeup 2023-11-16 02:55:06 +00:00
841d75b3a3 change(esp_pm): improve POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP description
Rename PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP to PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP
and improve the description for it
2023-11-16 02:55:06 +00:00
2d07e3a6dc change(freertos): Update real_time_stats example to use configRUN_TIME_COUNTER_TYPE
This commit updates the real_time_stats example to use the configurable
configRUN_TIME_COUNTER_TYPE. The CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 is
enabled by the example by default to demonstrate its usage.

Note: Also cleaned up redundant configs in sdkconfig.ci
2023-11-16 10:16:00 +08:00
d0aa950fa6 feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option
This commit adds a Kconfig option for configRUN_TIME_COUNTER_TYPE

Closes https://github.com/espressif/esp-idf/issues/11973
2023-11-16 10:16:00 +08:00
7bbe4eae46 Merge branch 'feature/freertos_add_valid_core_id_macro_v5.2' into 'release/v5.2'
feat(freertos/idf): Add taskVALID_CORE_ID() macro (v5.2)

See merge request espressif/esp-idf!27180
2023-11-16 10:08:17 +08:00
2f694bee0a Merge branch 'bugfix/esp32p4_fpu_check_v5.2' into 'release/v5.2'
fix(riscv): fix a bug in FPU exception handling (backport v5.2)

See merge request espressif/esp-idf!27172
2023-11-16 09:39:22 +08:00
293f5631bb Merge branch 'bugfix/fix_deinit_init_wifi_scan_fail_issue_v5.2' into 'release/v5.2'
Bugfix/fix deinit init wifi scan fail issue v5.2(Backport v5.2)

See merge request espressif/esp-idf!27065
2023-11-16 04:12:15 +08:00
7391b59f54 feat(freertos/idf): Add taskVALID_CORE_ID() macro
This commit adds a taskVALID_CORE_ID() macro, similar to the one offered in
Amazon SMP FreeRTOS.

- Various functions have been updated to use that macro
- Removed some unecessary static asserts of CONFIG_FREERTOS_NO_AFFINITY and
added casting.
- Uncrustify changes
2023-11-15 22:05:54 +08:00
e5155c2a54 fix(riscv): fix a bug in FPU exception handling
On the ESP32-P4, it is possible to have an exception because of an FPU instruction
while EXT_ILL CSR is not zero and its FPU bit is not set.
2023-11-15 18:58:30 +08:00
2c0cea641a fix(freertos/idf): Define configLIST_VOLATILE for list elements
It was noticed that when high level compiler optimizations are enabled,
the compiler optimizes some list manupulation code. This commit enables
the configLIST_VOLATILE for list elements to prevent the compiler from
optimizing out essential kernel code.
2023-11-15 10:04:33 +00:00
b4f6edecbc fix(docs): correct the target specific macros for secure boot v2 guide
It appears that target specific or'ing is not supported through the
docs build. Actual text rendering on the docs site was still using
"default" field from the custom macro, rather than using target
specific.
2023-11-15 15:34:12 +05:30
ab3bb3d414 Merge branch 'bugfix/fix_adc_read_zero_h2_new_v5.2' into 'release/v5.2'
ADC: fix adc raw data get 0 because of signal delay on ESP32H2 v5.2

See merge request espressif/esp-idf!27114
2023-11-15 14:31:52 +08:00
e1b6713f8f Merge branch 'docs/h2_programming_guide_cleanup_v5.2' into 'release/v5.2'
docs(esp32h2): updated misc docs with esp32h2 content (v5.2)

See merge request espressif/esp-idf!27145
2023-11-15 11:37:38 +08:00
1efaf83ef4 docs(esp32h2): updated misc docs with esp32h2 content 2023-11-15 09:54:05 +08:00
8fe15a26d5 fix(console): switch USB PHY to OTG when OTG is used for console
On ESP32-S3 with the default efuse settings, USB PHY is connected to
the USB_SERIAL_JTAG peripheral. If USB OTG peripheral is used for the
console, we need to additionally switch the PHY to USB OTG, otherwise
we won't get any output.

Closes https://github.com/espressif/esp-idf/issues/12437
2023-11-14 14:19:14 +01:00
11a92e3dbd Merge branch 'fix/fatfs_missing_release_v5.2' into 'release/v5.2'
fix(storage/fatfs): add missing lock release introduced by IMMEDIATE_FSYNC (v5.2)

See merge request espressif/esp-idf!26956
2023-11-14 20:14:01 +08:00
42aaf57419 fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12 in test_adc.c 2023-11-14 19:31:05 +08:00
05a4a77b52 change(hal): remove useless code from periph_ll_wifi_bt_module_enable_clk 2023-11-14 19:29:03 +08:00
9583c45947 fix(wifi): fix deinit init wifi scan fail issue 2023-11-14 19:29:03 +08:00
4d0d0f5d10 Merge branch 'revert/freertos_same_priority_preemption_disabled_v5.2' into 'release/v5.2'
Revert "fix(freertos/idf): Add workaround for same priority preemption in xTaskIncrementTick()" (v5.2)

See merge request espressif/esp-idf!26926
2023-11-14 15:35:05 +08:00
5e65545320 Merge branch 'feature/frertos_idle_task_name_suffix_v5.2' into 'release/v5.2'
fix(freertos/idf): Updated IDLE task names for each core to have the coreID as a suffix (v5.2)

See merge request espressif/esp-idf!26892
2023-11-14 15:33:54 +08:00
0b0d474cab fix(adc): fix h2 adc oneshot read zero and add delay after getting done signal v5.2 2023-11-14 14:41:08 +08:00
78784a60c0 fix(nimble): Generate a new unique Local IRK for each chip 2023-11-14 10:38:25 +05:30
3ab9a2fd71 Merge branch 'coredump-gdb-timeout_v5.2' into 'release/v5.2'
fix(coredump-info): set default gdb timeout as 3 seconds (v5.2)

See merge request espressif/esp-idf!27104
2023-11-14 03:52:16 +08:00
6e187ee0af Merge branch 'fix/ci_autocomplete_v5.2' into 'release/v5.2'
Tools, CI: Improve autocomplete tests (v5.2)

See merge request espressif/esp-idf!27036
2023-11-14 02:43:55 +08:00
94c27b976d fix(coredump-info): set default gdb timeout as 3 seconds 2023-11-13 15:34:24 +01:00
8da85639a2 Merge branch 'bugfix/build_error_when_enable_ag_and_hf_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix build error when both of the HFP roles are enabled (v5.2)

See merge request espressif/esp-idf!27076
2023-11-13 16:03:12 +08:00
621acc4d75 Merge branch 'feature/rmt_receive_in_isr_v5.2' into 'release/v5.2'
feat(rmt): support calling rmt_receive in ISR callback (v5.2)

See merge request espressif/esp-idf!26996
2023-11-13 12:22:33 +08:00
99f06b7c56 Merge branch 'ci/docs_no_download_artifacts_v5.2' into 'release/v5.2'
ci(docs): stop build docs jobs from downloading artifacts (v5.2)

See merge request espressif/esp-idf!26973
2023-11-13 11:55:25 +08:00
fe3d0955af Merge branch 'bugfix/remove_bond_v5.2' into 'release/v5.2'
fix(nimble): Handled IRK/LTK deletion based on key availability(v5.2)

See merge request espressif/esp-idf!27027
2023-11-11 15:47:05 +08:00
c56f226e51 fix(nimble): Handled IRK/LTK deletion based on key availability 2023-11-11 11:43:12 +05:30
9036037a36 fix(bt/bluedroid): Fix build error when both of the HFP roles are enabled and also CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is set to true 2023-11-10 21:08:01 +08:00
fbf4b7f705 fix(storage/fatfs): add missing lock release introduced by IMMEDIATE_FSYNC 2023-11-10 12:49:48 +01:00
89b27577d6 Merge branch 'bugfix/pairing_when_enc_with_no_key_fails_v5.2' into 'release/v5.2'
fix(nimble): Initate pairing if encryption fails with reason no pin or key missing (v5.2)

See merge request espressif/esp-idf!27016
2023-11-10 14:39:20 +08:00
498e41d93e ci(fix): Improve the stability of the autocomplete tests 2023-11-09 14:09:17 +01:00
340195ba79 Merge branch 'bugfix/add_config_for_tcp_ooseq_5.2' into 'release/v5.2'
Fix(lwip):bugfix for add config for tcp ooseq bufs 5.2

See merge request espressif/esp-idf!27000
2023-11-09 15:31:48 +08:00
db5e8805ed fix(nimble): Initate pairing if encryption fails with reason no pin or key missing 2023-11-09 11:49:51 +05:30
9b5be39b0f Merge branch 'feature/protocomm_update_params_v5.2' into 'release/v5.2'
fix(protocomm): added Protocomm BLE Event Structure and Event Handling (v5.2)

See merge request espressif/esp-idf!26898
2023-11-09 12:16:52 +08:00
9cd791b6ca Merge branch 'backport/fix_ble_scan_rsp_v5.2' into 'release/v5.2'
Backport/fix ble scan rsp v5.2(backport v5.2)

See merge request espressif/esp-idf!27008
2023-11-09 12:16:19 +08:00
4331ae783a Merge branch 'feature/support_adc_calibration_on_h2_v5.2' into 'release/v5.2'
adc_cali: supported adc calibration v1 on ESP32H2 (v5.2)

See merge request espressif/esp-idf!26962
2023-11-09 12:14:40 +08:00
e0286e24c8 Merge branch 'bugfix/lp_active_slow_clock_domain_default_power_down_v5.2' into 'release/v5.2'
backport v5.2: In the LP ACTIVE state, the slow clock power domain is by default in a powered-off state

See merge request espressif/esp-idf!26998
2023-11-09 12:14:24 +08:00
441b0f1ea0 Merge branch 'test/ble_mesh_sar_enh_v5.2' into 'release/v5.2'
update(ble_mesh): Miscellaneous updates/fixes and support SAR enhancement (v5.2)

See merge request espressif/esp-idf!26986
2023-11-09 11:34:01 +08:00
be39a0d2aa Merge branch 'bugfix/fix_adc_read_zero_h2_v5.2' into 'release/v5.2'
ADC: fix adc raw data get 0 because of signal delay on ESP32H2(v5.2)

See merge request espressif/esp-idf!26933
2023-11-09 10:10:45 +08:00
82052a0fc4 fix(bt/bluedroid): Fix ble keysize check 2023-11-08 19:45:38 +08:00
41be2013fd fix(bt/bluedroid): Fix ble adv report evt type 2023-11-08 19:45:29 +08:00
1ae8347bf4 Merge branch 'backport/fix_ble_remove_bond_list_v5.2' into 'release/v5.2'
fix(bt/bluedroid): Fix BLE remove bond list status(backport v5.2)

See merge request espressif/esp-idf!26978
2023-11-08 19:39:59 +08:00
0402fdeba1 Fix(lwip):bugfix for add config for tcp ooseq bufs 2023-11-08 16:45:48 +08:00
2a968da432 change(Power Management): the xpd_xtal32k value depends on system slow clock source config option when pmu initialize 2023-11-08 14:55:14 +08:00
a442a6b65c refactor(freertos/idf): Update thread safety convenience macros
This commit refactors some of the thread safety convenience macros by removing
some repeated definitions and keeping them all in "freertos_idf_additions_priv.h"
2023-11-08 14:53:28 +08:00
1d9a155fd7 fix(freertos/idf): Fix xEventGroupGetBitsFromISR() critical section
Adds missing critical section to xEventGroupGetBitsFromISR() that is required
in dual-core SMP.
2023-11-08 14:53:28 +08:00
02cacc6e05 Merge branch 'bugfix/fix_wrong_adc_attenuation_name_v5.2' into 'release/v5.2'
fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12 (v5.2)

See merge request espressif/esp-idf!26966
2023-11-08 14:50:30 +08:00
f8268a2848 Merge branch 'docs/i2c_ng_docs_v5.2' into 'release/v5.2'
docs(I2C): Add new programming guide for new I2C driver (backport v5.2)

See merge request espressif/esp-idf!26994
2023-11-08 14:49:57 +08:00
2e8cc61af7 feat(rmt): support calling rmt_receive in ISR callback 2023-11-08 14:32:26 +08:00
9d3d9d16f0 docs(i2c): Modify some variables in I2C driver for good docs 2023-11-08 10:48:48 +08:00
83aeb7bbb2 Merge branch 'bugfix/fixed_ble_disconnect_under_temp_change_v5.2' into 'release/v5.2'
fix(ble): fixed ble disconnection issue under temperature change

See merge request espressif/esp-idf!26829
2023-11-08 10:39:29 +08:00
614aed7409 docs(i2c): Add new programming guide for new I2C driver 2023-11-08 09:57:25 +08:00
477e19f71c Merge branch 'bugfix/validate_random_address_v5.2' into 'release/v5.2'
fix(nimble): Added check to validate allowed random address (v5.2)

See merge request espressif/esp-idf!26927
2023-11-08 00:21:50 +08:00
zwl
7c33c24fe4 fix(ble): fixed ble disconnection issue under temperature change 2023-11-07 20:57:58 +08:00
d9876ffd53 feat(ble_mesh): Support Bluetooth Mesh SAR enhancement 2023-11-07 19:13:09 +08:00
f57acc21d6 fix(ble_mesh): Miscellaneous updates and fixes 2023-11-07 19:13:04 +08:00
48960337b8 update(ble_mesh): Remove useless mesh lib copy script 2023-11-07 19:13:00 +08:00
28a8e77021 fix(bt/bluedroid): Fix BLE remove bond list status 2023-11-07 15:57:54 +08:00
66992aca7a Merge branch 'ci/remove_unused_integration_test_files_v5.2' into 'release/v5.2'
ci: remove unused integration test files (v5.2)

See merge request espressif/esp-idf!26798
2023-11-07 15:32:34 +08:00
f01a40afe2 fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12
By design, it's 12 dB. There're errors among chips, so the actual
attenuation will be 11dB more or less
2023-11-07 14:11:10 +08:00
03e31dd0ba Merge branch 'bugfix/freertos_psram_stack_v5.2' into 'release/v5.2'
bugfix(freertos): Fixed task creation function for PSRAM stack (v5.2)

See merge request espressif/esp-idf!26949
2023-11-07 12:58:03 +08:00
42db3c8660 Merge branch 'bugfix/fix_fragment_bug_v5.2' into 'release/v5.2'
fix(wifi): fix fragment bug and esp32c6 issues (v5.2)

See merge request espressif/esp-idf!26955
2023-11-07 12:04:34 +08:00
1f9d4c5c5c ci(docs): stop build docs jobs from downloading artifacts 2023-11-07 11:45:21 +08:00
a2b9004203 Merge branch 'contrib/github_pr_12523_v5.2' into 'release/v5.2'
fix: assert failed in example uart_async_rxtxtasks (GitHub PR) (v5.2)

See merge request espressif/esp-idf!26951
2023-11-07 10:46:43 +08:00
1b07551997 docs(adc): added adc calibration doc on h2 2023-11-07 09:30:56 +08:00
02045155ae fix(wifi): fix esp32c6 rxctrl info is not correct 2023-11-06 19:16:56 +08:00
86a62e1de9 fix(wifi): fix rate check error in fragment 2023-11-06 19:16:14 +08:00
d709fdfd12 Merge branch 'bugfix/fix_wifi_enabled_macro_v5.2' into 'release/v5.2'
Bugfix/fix wifi enabled macro (v5.2)

See merge request espressif/esp-idf!26775
2023-11-06 17:53:34 +08:00
90f7b0d321 fix: assert failed in example uart_async_rxtxtasks 2023-11-06 15:56:52 +08:00
8c7ee8482e fix(freertos): Fixed prvTaskCreateDynamicPinnedToCoreWithCaps
* The function was based on an outdated IDF/FreeRTOS
  combination which didn't always require zero-ing
  the TCB. This has been changed in the current
  IDF/FreeRTOS combination, leading to crashes.
  Unconditionally zero-ing the TCB fixes this problem.
2023-11-06 15:33:40 +08:00
793de30863 Merge branch 'bugfix/increase_esp32h2_slow_clock_calibration_wdt_threshold_v5.2' into 'release/v5.2'
fix(esp_system): increase esp32h2 slow clock calibration timeout watchdog threshold(backport v5.2)

See merge request espressif/esp-idf!26921
2023-11-06 11:34:24 +08:00
ff4c82a32d Merge branch 'bugfix/disable_fastpbkdf2_hardwaredisable_v5.2' into 'release/v5.2'
fix(wpa_supplicant): implement sha1_finish for fastpbkdf2 (v5.2)

See merge request espressif/esp-idf!26877
2023-11-06 11:32:23 +08:00
172b7e45b8 Merge branch 'bugfix/hal_memcpy_v5.2' into 'release/v5.2'
fix(hal): Fix incorrect behavior of hal_memcpy (v5.2)

See merge request espressif/esp-idf!26909
2023-11-06 11:32:07 +08:00
6e2c0de765 Merge branch 'fix/netif_sntp_examples_v5.2' into 'release/v5.2'
fix(examples): Fix usage of SNTP netif API in examples (v5.2)

See merge request espressif/esp-idf!26916
2023-11-06 11:06:05 +08:00
7f3221aa09 feat(adc_cali): Add ADC calibration support for ESP32H2 2023-11-06 10:57:36 +08:00
e9df6d89af fix(nimble): Added check to validate allowed random address 2023-11-04 09:17:03 +05:30
29cfa2d472 Revert "fix(freertos/idf): Add workaround for same priority preemption in xTaskIncrementTick()"
This reverts commit 6c6a6ad44a.
2023-11-03 15:00:24 +01:00
ce5cd8bf75 fix(phy): Fix ESP32C6 rx pkts fail in light sleep mode 2023-11-03 21:18:18 +08:00
5a43831006 fix(wifi): Fix bug using CONFIG_WIFI_ENABLED macro 2023-11-03 21:18:18 +08:00
5bf1070143 Merge branch 'bugfix/backport_wifi_fixes_v5.2' into 'release/v5.2'
fix(wifi): optimize wifi bin size and fix some issue

See merge request espressif/esp-idf!26894
2023-11-03 21:08:39 +08:00
a25673efb2 Merge branch 'backport/add_ot_radio_stats_enable_config_5_2' into 'release/v5.2'
Backport/backport some openthread features(backportV5.2)

See merge request espressif/esp-idf!26886
2023-11-03 20:58:37 +08:00
04ead4c281 Merge branch 'feat/add_support_for_host_only_mode_v5.2' into 'release/v5.2'
Feat/add support for host only mode v5.2

See merge request espressif/esp-idf!26881
2023-11-03 20:57:33 +08:00
bfa65bfd0d Merge branch 'bugfix/remove_iram_attr_from_ceva_files_v5.2' into 'release/v5.2'
fix(nimble): remove IRAM_ATTR from npl_os_freertos.c file (v5.2)

See merge request espressif/esp-idf!26838
2023-11-03 20:57:13 +08:00
1ae6dad0d8 Merge branch 'bugfix/fix_compilation_issue_v5.2' into 'release/v5.2'
fix(wpa_supplicant): Fix compilation issue in EAP disabled (v5.2)

See merge request espressif/esp-idf!26876
2023-11-03 20:54:46 +08:00
cd33e77e0f Merge branch 'bugfix/supplicant_tls_fix_v5.2' into 'release/v5.2'
fix(wpa_supplicant): Correct iv lenght passed in mbedtls_cipher_set_iv() (v5.2)

See merge request espressif/esp-idf!26845
2023-11-03 20:54:13 +08:00
5171308939 Merge branch 'fix/exception_was_unhandled_for_bt_spp_vfs_acceptor_v5.2' into 'release/v5.2'
fix(bt/bluedroid): fix LoadProhibited error in spp vfs acceptor example (backport v5.2)

See merge request espressif/esp-idf!26860
2023-11-03 20:49:32 +08:00
bcf2ef7ddd Merge branch 'bugfix/docker_safe_repo_v5.2' into 'release/v5.2'
fix(docker): set esp-idf repo as safe directory (v5.2)

See merge request espressif/esp-idf!26803
2023-11-03 20:02:49 +08:00
3c67e1ba01 ci: add label rules for integration test
fix typo
2023-11-03 19:21:34 +08:00
4400846c61 ci: remove unused integration test files 2023-11-03 19:21:30 +08:00
3207599b6d fix(esp_system): increase esp32h2 slow clock calibration timeout watchdog threshold 2023-11-03 19:08:28 +08:00
6077c3f70c fix(examples): Fix usage of SNTP netif API in examples 2023-11-03 11:18:32 +01:00
3d37631967 Merge branch 'bugfix/ble_update_lib_1027_5.2' into 'release/v5.2'
Bugfix/ble update lib 1027 5.2

See merge request espressif/esp-idf!26831
2023-11-03 17:53:23 +08:00
8a12837745 Merge branch 'feature/include_hf_and_ag_in_single_build_v5.2' into 'release/v5.2'
Feature/include hf and ag in single build v5.2

See merge request espressif/esp-idf!26873
2023-11-03 16:00:21 +08:00
b6ad8703ce fix(hal): Fix incorrect behavior of hal_memcpy
Closes https://github.com/espressif/esp-idf/issues/12489
2023-11-03 15:47:39 +08:00
8ab97bb37d Merge branch 'bugfix/esp32c6_phy_coex_sleep_issue_v5.2' into 'release/v5.2'
fix(esp_phy): update esp32c6 libphy for coex zb rx and sleep bug (backport v5.2)

See merge request espressif/esp-idf!26884
2023-11-03 14:16:49 +08:00
83f4025a92 fix(protocomm): added Protocomm BLE Event Structure and Event Handling 2023-11-03 11:42:30 +05:30
e3c2ee1ba9 fix(wpa_supplicant): implement sha1_finish for fastpbkdf2 2023-11-03 06:04:50 +00:00
85ba4189f8 Merge branch 'bugfix/fix_pdm_rx_high_pass_cut_off_coeff_v5.2' into 'release/v5.2'
bugfix(i2s): fix pdm rx high pass filter cut off coeff (v5.2)

See merge request espressif/esp-idf!26836
2023-11-03 13:46:12 +08:00
93efb9e351 fix(rom): fix wifi rom ld 2023-11-03 10:20:49 +08:00
89dcaf4ae5 fix(esp_wifi): Drop fragmented AMPDU(fixCVE-2020-26142) 2023-11-03 10:17:41 +08:00
1dd7ece5d3 fix(wifi): optimize wifi bin size and fix some issue
1.Optimize bin size for STA only mode
2.Change fragment threshold to 256
3.Support fragment for LR mode
4.Fix ampdu duration issue
5.Fix rx fragment fail in Open mode.
2023-11-03 10:17:26 +08:00
7a701fbc85 fix(esp_wifi): Fix key install issue in PTK renew 2023-11-03 10:16:48 +08:00
e8d43b03a1 fix(wifi): wpa3 softap fix deauth when assoc req recv before sae is finished 2023-11-03 10:15:55 +08:00
8f8f7ddb45 fix(esp_wifi): Fix issue of station disconnecting immediately when AP RSSI is zero 2023-11-03 10:14:47 +08:00
deceda36ac Merge branch 'backport/fix_ble_bugs_v5.2' into 'release/v5.2'
Backport/fix ble bugs v5.2(backport v5.2)

See merge request espressif/esp-idf!26795
2023-11-03 09:12:32 +08:00
33e0f11ef4 fix(freertos/idf): Updated IDLE task names for each core to have the coreID as a suffix
This commit updates the IDLE task names for each core by concatenating
the respective coreIDs to the task names.

Closes https://github.com/espressif/esp-idf/issues/12204
2023-11-02 16:38:16 +01:00
7c93afb8bd Merge branch 'bugfix/rmt_stop_issue_v5.2' into 'release/v5.2'
fix(rmt): a disabled channel may pick up a pending transaction (v5.2)

See merge request espressif/esp-idf!26778
2023-11-02 23:00:07 +08:00
1a3a74c26c Merge branch 'bugfix/32bit_addr_naming_v5.2' into 'release/v5.2'
bugfix(spi_flash): Fix wrong naming on 32bit address (backport v5.2)

See merge request espressif/esp-idf!26833
2023-11-02 21:46:48 +08:00
0582b4a25f Merge branch 'backport5.2/bugfix/fix_c6_wrong_reg_offset' into 'release/v5.2'
fix(coex): fix esp32c6 wrong reg offset(backport v5.2)

See merge request espressif/esp-idf!26768
2023-11-02 20:47:34 +08:00
zwx
57e59a47c1 feat(openthread): Add deep sleep support for SED 2023-11-02 20:19:00 +08:00
zwx
23c0565a95 feat(openthread): add config for radio statistic feature 2023-11-02 20:18:54 +08:00
462d57e18f fix(esp_phy): update esp32c6 libphy for coex zb rx and sleep bug 2023-11-02 19:37:28 +08:00
94c38470ac fix(wpa_supplicant): Fix compilation issue in EAP disabled 2023-11-02 16:17:18 +05:30
b05df37981 feat(bt/bluedroid): Support to build HID Host and HID Device in single binary 2023-11-02 17:32:55 +08:00
8b8c3d6204 feat(bt/bluedroid): Support to build HFP Audio Gateway and Hands Free Unit in single binary 2023-11-02 17:32:48 +08:00
22108bbeb4 fix(bt/bluedroid): fix loadprohibited error in spp vfs acceptor example 2023-11-02 11:47:21 +08:00
8dda17e3a3 fix(rmt): a disabled channel may pick up a pending transaction
because in the trans_done interrupt, the driver didn't check the channel FSM
2023-11-02 11:30:42 +08:00
59e504ef27 feat(bt/bluedroid): Added bt_discovery based host only example 2023-11-02 11:10:35 +08:00
b9ed6f722b feat(bt/bluedroid): Added mode to use BlueDroid host only without Bluetooth Controller 2023-11-02 11:10:24 +08:00
f03448ca94 fix(i2s): fix pdm rx high pass filter cut off coeff 2023-11-02 10:10:14 +08:00
ba274216b9 fix(wpa_supplicant): Correct iv lenght passed in mbedtls_cipher_set_iv() 2023-11-01 18:02:18 +05:30
e758c819d9 fix(nimble): remove IRAM_ATTR from npl_os_freertos.c file 2023-11-01 17:36:44 +05:30
5fb2277aaa bugfix(spi_flash): Fix wrong naming on 32bit address 2023-11-01 18:15:13 +08:00
3b7e220519 ble: update c2 lib to 6ed444f2 2023-11-01 17:25:24 +08:00
e3d72eada7 ble: update c2 rom.ld 2023-11-01 17:25:17 +08:00
20ca1c0dfa change(ble): added option for msys buffer source 2023-11-01 17:25:09 +08:00
caaf3fbe69 ble: update c6 h2 lib to 5bd7cb83, c2 lib to 1d31e175 2023-11-01 17:25:01 +08:00
113c22c1fc fix(tools/docker): set esp-idf repo as safe directory
In our docker docs[1] we recommend to start docker as a non-root user. This has
a side effect, because the esp-idf repo in docker image is owned by
root. Git by default refuses even to parse a config file if the repo is
owned by other than current user. As a result the version detection in
cmake fails[2] and the app version is set to "HEAD-HASH-NOTFOUND".
This adds esp-idf repo to the system git config as a safe one.

[1] https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/
    tools/idf-docker-image.html#building-a-project-with-cmake
[2] https://github.com/espressif/esp-idf/issues/12389#issuecomment-1764268773

Closes https://github.com/espressif/esp-idf/issues/12389

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-10-31 16:23:54 +01:00
0de2c5092b feat(bt/bluedroid): Display BLE permission check handle in error trace 2023-10-31 19:45:10 +08:00
1ea656f3d9 fix(bt/bluedroid): Fix max BLE gattc notify number to improve compatibility 2023-10-31 19:44:36 +08:00
a2e4a3581b feat(bt/bluedroid): Support BLE gattc notify registration number 2023-10-31 19:42:48 +08:00
b68c026adb fix(bt/bluedroid): Fix key size check in BLE smp 2023-10-31 19:42:34 +08:00
855f95e588 fix(bt/bluedroid): Optimize compatibility with Android 10 and later devices 2023-10-31 19:42:23 +08:00
1276247696 feat(bt/bluedroid): Support hid device control point 2023-10-31 19:42:13 +08:00
cb1765de81 fix(bt/bluedroid): Optimize compatibility with IOS and MACOS devices 2023-10-31 19:42:01 +08:00
7385079984 fix(coex): fix esp32c6 wrong reg offset 2023-10-31 15:41:08 +08:00
868737e022 Merge branch 'bugfix/i2c_ll_read_write_fifo_by_index_v5.2' into 'release/v5.2'
fix(i2c): read write FIFO memory by volatile (v5.2)

See merge request espressif/esp-idf!26737
2023-10-31 10:15:20 +08:00
80997d5860 fix(i2c): read write FIFO memory by volatile 2023-10-30 10:34:43 +08:00
2b0d48f84d Merge branch 'maint/release_v5.2_codeowners' into 'release/v5.2'
change(gitlab): simplify approvals for backports (v5.2)

See merge request espressif/esp-idf!26703
2023-10-27 17:49:57 +08:00
1fa85abf46 ci(adc): add a test that adc read zero after getting done signal 2023-10-27 17:11:13 +08:00
dec0bc482c change(gitlab): simplify approvals for backports (v5.2) 2023-10-26 16:00:52 +02:00
c5ae121bac Merge branch 'bugfix/fix-clean-up-in-error-condition-in-http-example' into 'master'
fix(example/http): Fixed potential memory leak/crash in when handling error condition

See merge request espressif/esp-idf!26060
2023-10-26 18:11:20 +08:00
1d5dbb8170 Merge branch 'update/sdcard_troubleshooting' into 'master'
fix(sd_card): update sd_card troubleshooting notes in readme.md

See merge request espressif/esp-idf!25879
2023-10-26 16:49:02 +08:00
010a65d84e Merge branch 'bugfix/spi_master_fifo_use_dma' into 'master'
fix(spi): fixed undesired touching to DMA

Closes IDFGH-11065

See merge request espressif/esp-idf!26636
2023-10-26 16:43:22 +08:00
eceefa878f Merge branch 'ci/build_test_add_known_failure' into 'master'
ci(build_test): add known-failure check

See merge request espressif/esp-idf!26618
2023-10-26 15:30:19 +08:00
2aa59af5f0 Merge branch 'bugfix/usb_host_hid_driver_uninstall' into 'master'
fix(usb/host): added hid_driver_uninstall call during APP_QUIT for HID Host example

Closes IDF-8446

See merge request espressif/esp-idf!26306
2023-10-26 14:56:09 +08:00
a8e3122866 fix(adc): fix adc read zero after getting done signal on h2 2023-10-26 12:22:09 +08:00
a82b6f5c0b Merge branch 'docs/update_cn_trans_nvs_part_gen_readme' into 'master'
Docs: Update CN trans for components/nvs_flash/nvs_partition_generator/README.rst

Closes DOC-6449

See merge request espressif/esp-idf!26589
2023-10-26 12:19:26 +08:00
4f24d3a39c Docs: Update CN trans for components/nvs_flash/nvs_partition_generator/README.rst 2023-10-26 12:19:25 +08:00
811a790aaf fix(adc): fix adc oneshot mod do not split clk 2023-10-26 10:59:35 +08:00
4ea0538a88 Merge branch 'ci/system_example_test_reduction' into 'master'
ci: reduce the number of system examples built/tested in regular pipelines

See merge request espressif/esp-idf!26519
2023-10-26 10:36:18 +08:00
e15de479ce Merge branch 'bugfix/fix_wrong_hal_assertion_sdmmc_ll' into 'master'
sdmmc: fix ll layer wrong assertion

See merge request espressif/esp-idf!26590
2023-10-26 10:32:58 +08:00
04dba7a80d Merge branch 'fix/esp32_p4_lp_reserved_seg_fix' into 'master'
fix: Fix ESP32-P4 lp_reserved_seg origin

See merge request espressif/esp-idf!26663
2023-10-26 10:32:02 +08:00
7559a1eccf Merge branch 'ci/delay_build_docs_master' into 'master'
ci: run build_docs jobs after target tests on protected branches

See merge request espressif/esp-idf!26508
2023-10-26 10:28:56 +08:00
228c40c2ac Merge branch 'feature/freertos_task_private_create_psram' into 'master'
feat(freertos): Added private task creation functions allocating stack in PSRAM

See merge request espressif/esp-idf!25404
2023-10-26 10:27:00 +08:00
3888ffdda6 Merge branch 'bugfix/enable-ringbuffer-build-on-linux' into 'master'
fix(ringbuf): Enable build on Linux

See merge request espressif/esp-idf!26649
2023-10-25 23:44:14 +08:00
d78d00855d Merge branch 'feature/idf_path_order_check' into 'master'
feat(tools): Added IDF path order check for Windows platform

Closes IDF-2430

See merge request espressif/esp-idf!26629
2023-10-25 23:11:05 +08:00
9f6bf3b029 Merge branch 'bugfix/fix_wifi_ld_c3_eco7' into 'master'
fix(rom): remove related rom funcs in c3 rom eco7 MR

See merge request espressif/esp-idf!26651
2023-10-25 20:53:48 +08:00
d63f83d279 fix(example/http): Fixed potential memory leak/crash in when handling error condition 2023-10-25 14:44:06 +02:00
360f7b1e14 fix(sd_card): update sd_card troubleshooting notes in readme.md 2023-10-25 11:19:08 +02:00
bb329accd7 fix(sd_card): update hints.yml to provide SD troubleshooting hints 2023-10-25 11:19:08 +02:00
d20654e7ed Merge branch 'bugfix/libphy_orphaned_sections' into 'master'
fix(lf): fix orphaned .phyiram sections

Closes WIFI-6279

See merge request espressif/esp-idf!26295
2023-10-25 16:34:19 +08:00
340fda1cd6 Merge branch 'fix/nvs_encr_docs' into 'master'
fix(docs): Hide the NVS encryption HMAC scheme section for unsupported SoCs

See merge request espressif/esp-idf!26568
2023-10-25 16:24:57 +08:00
a304cc230e Merge branch 'feature/esp32h2_adds_adc_calib_efuses' into 'master'
feat(efuse): Adds efuse ADC calibration data for ESP32H2

See merge request espressif/esp-idf!26305
2023-10-25 15:58:24 +08:00
0f84e7d8c6 Merge branch 'bugfix/fix_set_adv_data_bug' into 'master'
Fix bugs in setting adv data and scan response data(ESP32C3 ESP32S3)

Closes BLERP-142, BLERP-141, BLERP-185, and BLERP-186

See merge request espressif/esp-idf!26538
2023-10-25 15:55:04 +08:00
91eada4acc fix(fatfs): free allocated memory for base path before unmounting the card 2023-10-25 09:33:42 +02:00
375907299e fix(usb/host): added hid_driver_uninstall call during APP_QUIT for HID Host example 2023-10-25 09:04:20 +02:00
e32bdb66e3 fix: Fix ESP32-P4 lp_reserved_seg origin
Apparently, this part of the linker script was copied from elsewhere
and the origin was not corrected.
2023-10-25 08:09:33 +02:00
263e39c32b fix(sdmmc): fix ll layer wrong assertion 2023-10-25 06:03:25 +00:00
81665b27c3 fix(docs): Disable the NVS encryption HMAC scheme section for unsupported SoCs 2023-10-25 13:07:14 +08:00
aaa438a3a2 Merge branch 'feature/tls_v1.2_and_v1.3_simultaneously' into 'master'
fix(esp-tls): Use TLS 1.2 and TLS 1.3 simultaneously

Closes IDF-8189 and IDF-8344

See merge request espressif/esp-idf!26304
2023-10-25 12:26:23 +08:00
d6a79b5108 Merge branch 'feature/hello_world_linux' into 'master'
feat(linux_target): enable hello world example for linux target

See merge request espressif/esp-idf!26638
2023-10-25 10:22:49 +08:00
20b6d92b91 Merge branch 'ci/reduce_heap_tests' into 'master'
ci(heap): reduce the number of test apps built

See merge request espressif/esp-idf!26643
2023-10-25 09:23:18 +08:00
fec9a11f4a Merge branch 'feature/i2c_slave_new_driver' into 'master'
feat(i2c_slave): Add new APIs for I2C-slave, and add multi-board tests with I2C-master

Closes IDF-8111

See merge request espressif/esp-idf!25403
2023-10-25 01:22:05 +08:00
717aa73886 Merge branch 'feature/usb_msc_updates' into 'master'
refactor(usb_host/msc_example): Increase transfer speeds

See merge request espressif/esp-idf!26319
2023-10-24 22:51:00 +08:00
cde207e996 feat(tools): Added IDF path order check for Windows platform
This relates to old GH issue: https://github.com/espressif/esp-idf/issues/5994
2023-10-24 15:34:41 +02:00
687c5cc8d5 Merge branch 'fix/remove_wno-format_from_storage_components' into 'master'
refactor: Remove -Wno-format from storage related components

Closes IDF-6793

See merge request espressif/esp-idf!26531
2023-10-24 21:25:34 +08:00
e6fde2e13e refactor(usb/host_msc_example): Increase transfer speeds
- Upgrade to MSC driver 1.1.1 for zero copy transfers
- Use setvbuf() to increase size of VFS file buffer
- Add example test
2023-10-24 15:19:58 +02:00
6e92fc0416 feature(examples/usb): Define maximum opend files in MSC device example 2023-10-24 15:19:58 +02:00
c9f85d8d1b feat(i2c_test): Add multi board test for I2C master and I2C slave 2023-10-24 18:46:27 +08:00
8d639492f2 feat(i2c_slave): Add new implementation and API for I2C slave 2023-10-24 18:44:49 +08:00
7532df427a fix(rom): remove related rom funcs in c3 rom eco7 MR 2023-10-24 18:05:10 +08:00
3589478a9e fix(esp_ringbuffer): Enable build on Linix 2023-10-24 11:30:03 +02:00
7e8181b976 ci(heap): reduce the number of test apps built 2023-10-24 12:38:56 +08:00
8315221523 fix(spi): fixed undesired touching to DMA
Closes https://github.com/espressif/esp-idf/issues/12241
2023-10-24 10:50:42 +08:00
9804a8b0f9 fix(ble/controller): Fix bugs in setting adv data and scan response data 2023-10-24 10:48:31 +08:00
8c52b0845d feat(linux_target): enable hello world example for linux target 2023-10-24 10:04:09 +08:00
d98e77a4a7 ci: run build_docs jobs after target tests on protected branches
On master running costly build docs jobs for every pipeline uses a lot of resources.
This refactor moves the build doc stage after target tests for protected branches.

For regular MRs we still get the desired behavior of build docs being independent of targets tests,
as we dont want developers to have to pass all target tests to test their doc changes.
2023-10-24 09:33:39 +08:00
2da0b61374 fix: Update https_mbedtls example to fix TLS v1.2 connection 2023-10-23 16:23:18 +05:30
27681a5073 fix(esp-tls): Use TLS 1.2 and TLS 1.3 simultaneously
This commit fixes the issue with TLS 1.2 connection when TLS 1.3 is
enabled in config.
2023-10-23 16:23:10 +05:30
eb37150780 ci: add all nightly run env vars while checking 2023-10-23 09:19:31 +02:00
e151184da7 refactor: Remove -Wno-format from storage related components 2023-10-22 17:56:41 +00:00
9b8aa6a792 ci(build_test): add known-failure check 2023-10-22 09:12:45 +08:00
4f4f32ecf2 ci(system): restrict number of system examples built in regular pipelines 2023-10-19 10:10:37 +08:00
8aba6a53e4 feat(freertos): Added private PSRAM stack task creation functions
* Added prvTaskCreateDynamicAffinitySetWithCaps
  and prvTaskCreateDynamicPinnedToCoreWithCaps
  which allocate the task's stack in PSRAM instead of
  internal RAM. These functions are only available if
  PSRAM is enabled.
2023-10-18 20:06:42 +08:00
071d1cf865 feat(efuse): Adds efuse ADC calibration data for ESP32H2 2023-10-04 16:00:01 +08:00
1f80a9bb0f fix(lf): fix orphaned .phyiram sections
There are  orphaned .phyiram sections from components/esp_phy/lib/esp32/libphy.a when ESP_WIFI_SLP_IRAM_OPT
is not set on esp32. It can be seen in the wifi_station example examples/wifi/getting_started/station with
the default configuration. Even though they seem to be correctly placed in flash(linker got it right), I
believe this should be fixed. At least for the esp-idf-size, because these doesn't seem to be accounted.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-10-02 08:37:57 +02:00
1918 changed files with 50984 additions and 21890 deletions

View File

@ -3,8 +3,8 @@ workflow:
# Disable those non-protected push triggered pipelines
- 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"'
when: never
# when running merged result pipelines, it would create a temp commit id. use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA instead of $CI_COMMIT_SHA.
# Please use PIPELINE_COMMIT_SHA at all places that require a commit sha
# when running merged result pipelines, CI_COMMIT_SHA represents the temp commit it created.
# Please use PIPELINE_COMMIT_SHA at all places that require a commit sha of the original commit.
- if: $CI_OPEN_MERGE_REQUESTS != null
variables:
PIPELINE_COMMIT_SHA: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA

View File

@ -2,228 +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
/.github/dangerjs/ @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/.github/dependabot.yml @esp-idf-codeowners/ci
/.github/workflows/ @esp-idf-codeowners/ci
/.gitlab-ci.yml @esp-idf-codeowners/ci
/.gitlab/ci/ @esp-idf-codeowners/ci
/.gitlab/dangerjs/ @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/.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
/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_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_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_system/ @esp-idf-codeowners/system
/components/esp_timer/ @esp-idf-codeowners/system
/components/esp-tls/ @esp-idf-codeowners/app-utilities
/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/fatfs/**/*.py @esp-idf-codeowners/tools
/components/freertos/ @esp-idf-codeowners/system
/components/hal/ @esp-idf-codeowners/peripherals
/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/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/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/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
/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/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/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/linux_compatible/ @esp-idf-codeowners/system
/tools/test_apps/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/tools/test_apps/security/ @esp-idf-codeowners/security
/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

@ -59,7 +59,7 @@
- `example_test[_esp32/esp32s2/...]`
- `fuzzer_test`
- `host_test`
- `integration_test[_wifi/ble]`
- `integration_test`
- `iperf_stress_test`
- `macos`
- `macos_test`

View File

@ -21,8 +21,7 @@
needs:
- job: fast_template_app
artifacts: false
- job: mr_variables
optional: true # only MR pipelines would have this
- pipeline_variables
artifacts:
paths:
# The other artifacts patterns are defined under tools/ci/artifacts_handler.py
@ -46,9 +45,10 @@
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}
- upload_artifacts_to_s3
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${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:
@ -64,10 +64,10 @@
--copy-sdkconfig
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
$TEST_BUILD_OPTS_EXTRA
- upload_artifacts_to_s3
- python tools/ci/artifacts_handler.py upload
.build_pytest_template:
extends:
@ -81,9 +81,9 @@
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- upload_artifacts_to_s3
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
.build_pytest_no_jtag_template:
extends:
@ -97,9 +97,9 @@
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- upload_artifacts_to_s3
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
.build_pytest_jtag_template:
extends:
@ -113,9 +113,9 @@
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- upload_artifacts_to_s3
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
build_pytest_examples_esp32:
extends:
@ -263,9 +263,9 @@ build_only_components_apps:
-t all
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- upload_artifacts_to_s3
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
build_pytest_test_apps_esp32:
extends:
@ -335,9 +335,9 @@ build_only_tools_test_apps:
-t all
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- upload_artifacts_to_s3
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
.build_template_app_template:
extends:
@ -516,8 +516,10 @@ build_clang_test_apps_esp32c6:
script:
- ${IDF_PATH}/tools/ci/test_configure_ci_environment.sh
- cd ${IDF_PATH}/tools/test_build_system
- python ${IDF_PATH}/tools/ci/get_known_failure_cases_file.py
- pytest --parallel-count ${CI_NODE_TOTAL:-1} --parallel-index ${CI_NODE_INDEX:-1}
--work-dir ${CI_PROJECT_DIR}/test_build_system --junitxml=${CI_PROJECT_DIR}/XUNIT_RESULT.xml
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
pytest_build_system:
extends: .test_build_system_template

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
@ -20,16 +20,27 @@ variables:
MAKEFLAGS: "-j5 --no-keep-going"
# GitLab-CI environment
# XXX_ATTEMPTS variables (https://docs.gitlab.com/ee/ci/runners/configure_runners.html#job-stages-attempts) are not defined here.
# Use values from "CI / CD Settings" - "Variables".
# GIT_STRATEGY is not defined here.
# Use an option from "CI / CD Settings" - "General pipelines".
# Thanks to pack-objects cache, clone strategy should behave faster than fetch
# so we pick "clone" as default git strategy
# Shiny runners by default remove the CI_PROJECT_DIR every time at the beginning of one job
# and clone with a --depth=1
# Brew runners will fetch from locally mirror first, and cache the local CI_PROJECT_DIR
# In conclusion
# - set GIT_STRATEGY: "clone" to shiny runners
# - set GIT_STRATEGY: "fetch" to brew runners
GIT_STRATEGY: clone
# we will download archive for each submodule instead of clone.
# we don't do "recursive" when fetch submodule as they're not used in CI now.
GIT_SUBMODULE_STRATEGY: none
# since we're using merged-result pipelines, the last commit should work for most cases
GIT_DEPTH: 1
# --no-recurse-submodules: we use cache for submodules
# --prune --prune-tags: in case remote branch or tag is force pushed
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.2.1
SUBMODULE_FETCH_TOOL: "tools/ci/ci_fetch_submodule.py"
# by default we will fetch all submodules
# jobs can overwrite this variable to only fetch submodules they required
@ -39,20 +50,18 @@ variables:
IDF_SKIP_CHECK_SUBMODULES: 1
IDF_PATH: "$CI_PROJECT_DIR"
BATCH_BUILD: "1"
V: "0"
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
PYTHON_VER: 3.8.17
# Docker images
ESP_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-env-v5.2:2"
ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env-v5.2:2-1"
ESP_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-env-v5.2:2"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v5.2:2-1"
QEMU_IMAGE: "${CI_DOCKER_REGISTRY}/qemu-v5.2:2-20230522"
TARGET_TEST_ENV_IMAGE: "$CI_DOCKER_REGISTRY/target-test-env-v5.2:2"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v5.2:2"
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:5"
PRE_COMMIT_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-pre-commit:1"
PRE_COMMIT_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-pre-commit:1"
# target test repo parameters
TEST_ENV_CONFIG_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/ci-test-runner-configs.git"
@ -77,6 +86,9 @@ variables:
# This is used only if CI_PYTHON_TOOL_REPO is not empty.
CI_PYTHON_TOOL_BRANCH: ""
# Set this variable to specify the file name for the known failure cases.
KNOWN_FAILURE_CASES_FILE_NAME: "5.2.txt"
IDF_CI_BUILD: 1
################################################
@ -92,6 +104,7 @@ variables:
if echo "$CI_MERGE_REQUEST_LABELS" | egrep "(^|,)include_nightly_run(,|$)"; then
export INCLUDE_NIGHTLY_RUN="1"
export NIGHTLY_RUN="1"
fi
# configure cmake related flags
@ -137,6 +150,10 @@ variables:
$IDF_PATH/tools/idf_tools.py --non-interactive install esp-clang
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
source ./export.sh
# Custom clang
@ -168,6 +185,11 @@ variables:
# Show ccache statistics if enabled globally
test "$CI_CCACHE_STATS" == 1 && test -n "$(which ccache)" && ccache --show-stats || true
.upload_failed_job_log_artifacts: &upload_failed_job_log_artifacts |
if [ $CI_JOB_STATUS = "failed" ]; then
python tools/ci/artifacts_handler.py upload --type logs
fi
.before_script:minimal:
before_script:
- *common-before_scripts
@ -194,6 +216,101 @@ variables:
.after_script:build:ccache:
after_script:
- *show_ccache_statistics
- *upload_failed_job_log_artifacts
##############################
# Git Strategy Job Templates #
##############################
.git_init: &git_init |
mkdir -p "${CI_PROJECT_DIR}"
cd "${CI_PROJECT_DIR}"
git init
.git_fetch_from_mirror_url_if_exists: &git_fetch_from_mirror_url_if_exists |
# check if set mirror
if [ -n "${LOCAL_GITLAB_HTTPS_HOST:-}" ] && [ -n "${ESPCI_TOKEN:-}" ]; then
MIRROR_REPO_URL="https://bot:${ESPCI_TOKEN}@${LOCAL_GITLAB_HTTPS_HOST}/${CI_PROJECT_PATH}"
elif [ -n "${LOCAL_GIT_MIRROR:-}" ]; then
MIRROR_REPO_URL="${LOCAL_GIT_MIRROR}/${CI_PROJECT_PATH}"
fi
# fetch from mirror first if set
if [ -n "${MIRROR_REPO_URL:-}" ]; then
if git remote -v | grep origin; then
git remote set-url origin "${MIRROR_REPO_URL}"
else
git remote add origin "${MIRROR_REPO_URL}"
fi
# mirror url may fail with authentication issue
git fetch origin --no-recurse-submodules || true
fi
# set remote url to CI_REPOSITORY_URL
if git remote -v | grep origin; then
git remote set-url origin "${CI_REPOSITORY_URL}"
else
git remote add origin "${CI_REPOSITORY_URL}"
fi
.git_checkout_fetch_head: &git_checkout_fetch_head |
git checkout FETCH_HEAD
git clean ${GIT_CLEAN_FLAGS}
# git diff requires two commits, with different CI env var
#
# By default, we use git strategy "clone" with depth 1 to speed up the clone process.
# But for jobs requires running `git diff`, we need to fetch more commits to get the correct diffs.
#
# Since there's no way to get the correct git_depth before the job starts,
# we can't set `GIT_DEPTH` in the job definition.
#
# Set git strategy to "none" and fetch manually instead.
.before_script:fetch:git_diff:
variables:
GIT_STRATEGY: none
before_script:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- |
# merged results pipelines, by default
if [[ -n $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA)
# merge request pipelines, when the mr got conflicts
elif [[ -n $CI_MERGE_REQUEST_DIFF_BASE_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA)
# other pipelines, like the protected branches pipelines
elif [[ "$CI_COMMIT_BEFORE_SHA" != "0000000000000000000000000000000000000000" ]]; then
git fetch origin $CI_COMMIT_BEFORE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA)
else
# pipeline source could be web, scheduler, etc.
git fetch origin $CI_COMMIT_SHA --depth=2 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_SHA~1 $CI_COMMIT_SHA)
fi
- *git_checkout_fetch_head
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
# target test runners may locate in different places
# for runners set git mirror, we fetch from the mirror first, then fetch the HEAD commit
.before_script:fetch:target_test:
variables:
GIT_STRATEGY: none
before_script:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- git fetch origin "${CI_COMMIT_SHA}" --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
- *git_checkout_fetch_head
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
# no submodules
#############
# `default` #

View File

@ -83,16 +83,6 @@
- "build:{0}"
- build:target_test
build:integration_test:
labels:
- build
patterns:
- build_components
- build_system
included_in:
- build:target_test
####################
# Target Test Jobs #
####################
@ -173,23 +163,6 @@ build:integration_test:
- "build:example_test"
- build:target_test
"test:integration_test_{0}":
matrix:
- - wifi
- ble
labels:
- integration_test_{0}
- integration_test
- target_test
patterns:
- integration_test-{0}
- target_test-{0}
# - maybe others
included_in:
- test:integration_test
- build:integration_test
- build:target_test
"test:host_test":
labels:
- host_test

View File

@ -1,8 +1,7 @@
.deploy_job_template:
stage: deploy
image: $ESP_ENV_IMAGE
tags:
- deploy
tags: [ deploy ]
# Check this before push_to_github
check_submodule_sync:
@ -10,11 +9,11 @@ check_submodule_sync:
- .deploy_job_template
- .rules:test:submodule
stage: test_deploy
tags:
- github_sync
tags: [ brew, github_sync ]
retry: 2
variables:
GIT_STRATEGY: clone
# for brew runners, we always set GIT_STRATEGY to fetch
GIT_STRATEGY: fetch
SUBMODULES_TO_FETCH: "none"
PUBLIC_IDF_URL: "https://github.com/espressif/esp-idf.git"
dependencies: []
@ -35,6 +34,12 @@ push_to_github:
- .rules:push_to_github
needs:
- check_submodule_sync
tags: [ brew, github_sync ]
variables:
# for brew runners, we always set GIT_STRATEGY to fetch
GIT_STRATEGY: fetch
# github also need full record of commits
GIT_DEPTH: 0
script:
- add_github_ssh_keys
- git remote remove github &>/dev/null || true
@ -47,6 +52,9 @@ deploy_update_SHA_in_esp-dockerfiles:
- .before_script:minimal
- .rules:protected-no_label-always
dependencies: []
variables:
GIT_DEPTH: 2
tags: [ shiny, build ]
script:
- 'curl --header "PRIVATE-TOKEN: ${ESPCI_SCRIPTS_TOKEN}" -o create_MR_in_esp_dockerfile.sh $GITLAB_HTTP_SERVER/api/v4/projects/1260/repository/files/create_MR_in_esp_dockerfile%2Fcreate_MR_in_esp_dockerfile.sh/raw\?ref\=master'
- chmod +x create_MR_in_esp_dockerfile.sh

View File

@ -37,16 +37,25 @@
.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-protected
- <<: *if-schedule
- <<: *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
@ -83,11 +92,8 @@ 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
parallel:
@ -110,6 +116,24 @@ build_docs_html_full:
extends:
- .build_docs_template
- .doc-rules:build:docs-full
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"
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:
@ -123,6 +147,10 @@ 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:
@ -142,6 +170,23 @@ build_docs_pdf:
extends:
- .build_docs_template
- .doc-rules:build:docs-full
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
when: always
paths:
- docs/_build/*/*/latex/*
expire_in: 4 days
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
artifacts:
when: always
paths:
@ -194,13 +239,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
rules:
- <<: *if-protected-no_label
- .doc-rules:build:docs-full-prod
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
- build_docs_pdf
- build_docs_html_full_prod
- build_docs_pdf_prod
- job: push_to_github
artifacts: false
variables:
@ -215,8 +259,7 @@ deploy_docs_production:
check_doc_links:
extends:
- .build_docs_template
rules:
- <<: *if-protected-no_label
- .doc-rules:build:docs-full-prod
stage: post_deploy
needs:
- job: deploy_docs_production

View File

@ -13,8 +13,7 @@
- job: upload-submodules-cache
optional: true
artifacts: false
- job: mr_variables
optional: true # only MR pipelines would have this
- pipeline_variables
test_nvs_on_host:
extends: .host_test_template
@ -208,14 +207,6 @@ test_mkdfu:
- cd ${IDF_PATH}/tools/test_mkdfu
- ./test_mkdfu.py
test_sbom:
extends:
- .host_test_template
- .rules:patterns:sbom
script:
- cd ${IDF_PATH}/tools/test_sbom
- pytest
test_autocomplete:
extends:
- .host_test_template
@ -314,15 +305,15 @@ test_pytest_qemu:
--pytest-apps
-m qemu
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/get_known_failure_cases_file.py
- run_cmd pytest
--target $IDF_TARGET
-m qemu
--embedded-services idf,qemu
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--app-info-filepattern \"list_job_*.txt\"
test_pytest_linux:
@ -334,6 +325,7 @@ test_pytest_linux:
paths:
- XUNIT_RESULT.xml
- pytest_embedded_log/
- "**/build*/build_log.txt"
reports:
junit: XUNIT_RESULT.xml
expire_in: 1 week
@ -343,12 +335,12 @@ test_pytest_linux:
--pytest-apps
-m host_test
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/get_known_failure_cases_file.py
- run_cmd pytest
--target linux
-m host_test
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--app-info-filepattern \"list_job_*.txt\"

View File

@ -8,7 +8,7 @@
- "tools/**/*"
- ".gitlab-ci.yml"
- ".gitlab/ci/common.yml"
- ".gitlab/ci/integration-test.yml"
- ".gitlab/ci/integration_test.yml"
- ".gitmodules"
- "CMakeLists.txt"
- "install.sh"
@ -22,6 +22,10 @@
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: *patterns-integration_test
# support trigger by ci labels
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*target_test(?:,[^,\n\r]+)*$/i'
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build(?:,[^,\n\r]+)*$/i'
gen_integration_pipeline:
extends:

View File

@ -5,27 +5,17 @@
- host_test
dependencies: []
.check_pre_commit_template:
check_pre_commit:
extends:
- .pre_check_template
- .before_script:minimal
image: $PRE_COMMIT_IMAGE
check_pre_commit_master_release:
extends:
- .check_pre_commit_template
- .rules:protected
needs:
- pipeline_variables
script:
- fetch_submodules
- git diff-tree --no-commit-id --name-only -r $PIPELINE_COMMIT_SHA | xargs pre-commit run --files
check_pre_commit_MR:
extends:
- .check_pre_commit_template
- .rules:mr
script:
- fetch_submodules
- python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs pre-commit run --files
- pre-commit run --files $MODIFIED_FILES
- pre-commit run --hook-stage post-commit validate-sbom-manifest
check_MR_style_dangerjs:
extends:
@ -60,6 +50,13 @@ check_version:
extends:
- .pre_check_template
- .rules:protected
tags: [ brew, github_sync ]
variables:
# need a full clone to get the latest tag
# the --shallow-since=$(git log -1 --format=%as $LATEST_GIT_TAG) option is not accurate
GIT_STRATEGY: fetch
SUBMODULES_TO_FETCH: "none"
GIT_DEPTH: 0
script:
- export IDF_PATH=$PWD
- tools/ci/check_idf_version.sh
@ -148,10 +145,18 @@ check_esp_system:
# For release tag pipelines only, make sure the tag was created with 'git tag -a' so it will update
# the version returned by 'git describe'
# Don't forget to update the env var `LATEST_GIT_TAG` in .gitlab/ci/common.yml
check_version_tag:
extends:
- .pre_check_template
- .rules:tag:release
tags: [ brew, github_sync ]
variables:
# need a full clone to get the latest tag
# the --shallow-since=$(git log -1 --format=%as $LATEST_GIT_TAG) option is not accurate
GIT_STRATEGY: fetch
SUBMODULES_TO_FETCH: "none"
GIT_DEPTH: 0
script:
- (git cat-file -t $CI_COMMIT_REF_NAME | grep tag) || (echo "ESP-IDF versions must be annotated tags." && exit 1)
@ -179,22 +184,23 @@ check_configure_ci_environment_parsing:
- cd tools/ci
- python -m unittest ci_build_apps.py
mr_variables:
pipeline_variables:
extends:
- .pre_check_template
- .rules:mr
- .before_script:minimal
- .before_script:fetch:git_diff
tags:
- build
script:
- echo "MR_MODIFIED_FILES=$(python tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs)" >> mr.env
- echo "MR_MODIFIED_COMPONENTS=$(python tools/ci/ci_get_mr_info.py components ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs)" >> mr.env
- >
- MODIFIED_FILES=$(echo "$GIT_DIFF_OUTPUT" | xargs)
- echo "MODIFIED_FILES=$MODIFIED_FILES" >> pipeline.env
- echo "MODIFIED_COMPONENTS=$(run_cmd python tools/ci/ci_get_mr_info.py components --modified-files $MODIFIED_FILES | xargs)" >> pipeline.env
- |
if echo "$CI_MERGE_REQUEST_LABELS" | egrep "(^|,)BUILD_AND_TEST_ALL_APPS(,|$)"; then
echo "BUILD_AND_TEST_ALL_APPS=1" >> mr.env
echo "BUILD_AND_TEST_ALL_APPS=1" >> pipeline.env
fi
- cat mr.env
- cat pipeline.env
- python tools/ci/artifacts_handler.py upload --type modified_files_and_components_report
artifacts:
reports:
dotenv: mr.env
dotenv: pipeline.env
expire_in: 4 days

View File

@ -67,9 +67,6 @@
- "tools/ci/ci_build_apps.py"
- "tools/test_build_system/**/*"
.patterns-sbom: &patterns-sbom
- "tools/test_sbom/*"
.patterns-custom_test: &patterns-custom_test
- "tools/ci/idf_pytest/**/*"
- "tools/ci/python_packages/gitlab_api.py"
@ -112,22 +109,6 @@
.patterns-component_ut-wifi: &patterns-component_ut-wifi
- "components/esp_wifi/**/*"
.patterns-integration_test-ble: &patterns-integration_test-ble
- "tools/ci/python_packages/gitlab_api.py"
- "tools/ci/integration_test/**/*"
- "components/bt/controller/lib_esp32"
- "components/bt/controller/lib_esp32c3_family"
- "components/bt/controller/lib_esp32h2/esp32h2-bt-lib"
- "components/bt/host/nimble/nimble"
- "components/esp_phy/lib"
- "components/esp_coex/??[!s][!t]*/**/*"
- "components/esp_coex/???/**/*"
- "components/esp_coex/*"
.patterns-integration_test-wifi: &patterns-integration_test-wifi
- "tools/ci/python_packages/gitlab_api.py"
- "tools/ci/integration_test/**/*"
.patterns-build_macos: &patterns-build_macos
- "tools/ci/test_configure_ci_environment.sh"
@ -187,6 +168,8 @@
- "tools/split_paths_by_spaces.py"
- "tools/check_python_dependencies.py"
.patterns-docker: &patterns-docker
- "tools/docker/**/*"
@ -201,7 +184,6 @@
- "components/esp_phy/lib"
- "components/esp_wifi/lib"
- "components/esp_coex/lib"
- "components/ieee802154/lib"
- "components/json/cJSON"
- "components/lwip/lwip"
- "components/mbedtls/mbedtls"
@ -213,6 +195,7 @@
- "components/unity/unity"
- "components/heap/tlsf"
- "components/bt/controller/lib_esp32c6/esp32c6-bt-lib"
- "components/bt/esp_ble_mesh/lib/lib"
- ".gitmodules"
.patterns-danger-npm: &patterns-danger-npm
@ -461,14 +444,6 @@
- <<: *if-dev-push
changes: *patterns-sonarqube-files
.rules:patterns:sbom:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-sbom
- <<: *if-dev-push
changes: *patterns-submodule
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# DO NOT place comments or maintain any code from this line
#
@ -571,15 +546,6 @@
.if-label-host_test: &if-label-host_test
if: '$BOT_LABEL_HOST_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*host_test(?:,[^,\n\r]+)*$/i'
.if-label-integration_test: &if-label-integration_test
if: '$BOT_LABEL_INTEGRATION_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
.if-label-integration_test_ble: &if-label-integration_test_ble
if: '$BOT_LABEL_INTEGRATION_TEST_BLE || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test_ble(?:,[^,\n\r]+)*$/i'
.if-label-integration_test_wifi: &if-label-integration_test_wifi
if: '$BOT_LABEL_INTEGRATION_TEST_WIFI || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test_wifi(?:,[^,\n\r]+)*$/i'
.if-label-macos: &if-label-macos
if: '$BOT_LABEL_MACOS || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*macos(?:,[^,\n\r]+)*$/i'
@ -1584,9 +1550,6 @@
- <<: *if-label-example_test_esp32p4
- <<: *if-label-example_test_esp32s2
- <<: *if-label-example_test_esp32s3
- <<: *if-label-integration_test
- <<: *if-label-integration_test_ble
- <<: *if-label-integration_test_wifi
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-build-example_test
@ -1634,10 +1597,6 @@
changes: *patterns-example_test-usb
- <<: *if-dev-push
changes: *patterns-example_test-wifi
- <<: *if-dev-push
changes: *patterns-integration_test-ble
- <<: *if-dev-push
changes: *patterns-integration_test-wifi
- <<: *if-dev-push
changes: *patterns-target_test-adc
- <<: *if-dev-push

View File

@ -20,6 +20,8 @@ check_pylint:
extends:
- .pre_check_template
- .rules:patterns:python-files
needs:
- pipeline_variables
artifacts:
when: always
reports:
@ -28,9 +30,9 @@ check_pylint:
script:
- |
if [ -n "$CI_MERGE_REQUEST_IID" ]; then
export files=$(python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | grep ".py$");
export files=$(echo "$GIT_DIFF_OUTPUT" | grep ".py$" | xargs);
else
export files=$(find . -iname "*.py" -print);
export files=$(git ls-files "*.py" | xargs);
fi
- if [ -z "$files" ]; then echo "No python files found"; exit 0; fi
- run_cmd pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate:pylint.json $files
@ -82,7 +84,7 @@ code_quality_check:
allow_failure: true # since now it's using exit code to indicate the code analysis result,
# we don't want to block ci when critical issues founded
script:
- export CI_MERGE_REQUEST_COMMITS=$(python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py commits ${CI_COMMIT_REF_NAME} | tr '\n' ',')
- export CI_MERGE_REQUEST_COMMITS=$(python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py commits --src-branch ${CI_COMMIT_REF_NAME} | tr '\n' ',')
# test if this branch have merge request, if not, exit 0
- test -n "$CI_MERGE_REQUEST_IID" || exit 0
- test -n "$CI_MERGE_REQUEST_COMMITS" || exit 0

View File

@ -1,17 +1,18 @@
.target_test_template:
image: $TARGET_TEST_ENV_IMAGE
extends:
- .before_script:fetch:target_test
stage: target_test
timeout: 1 hour
dependencies: []
variables:
GIT_DEPTH: 1
SUBMODULES_TO_FETCH: "none"
cache:
# Usually do not need submodule-cache in target_test
- key: pip-cache
paths:
- .cache/pip
policy: pull
after_script:
- python tools/ci/artifacts_handler.py upload --type logs junit_reports
.pytest_template:
extends:
@ -25,7 +26,7 @@
junit: XUNIT_RESULT.xml
expire_in: 1 week
script:
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
@ -45,7 +46,7 @@
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
@ -228,6 +229,15 @@ pytest_examples_esp32c6_generic:
artifacts: false
tags: [ esp32c6, generic ]
pytest_examples_esp32c6_usj_device:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
tags: [ esp32c6, usj_device ]
pytest_examples_esp32h2_generic:
extends:
- .pytest_examples_dir_template
@ -469,7 +479,7 @@ pytest_examples_esp32_ethernet_ip101:
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ip101 ]
tags: [ esp32, eth_ip101 ]
pytest_examples_esp32_ethernet_bridge:
extends:
@ -730,7 +740,7 @@ pytest_components_esp32_ip101:
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, ip101 ]
tags: [ esp32, eth_ip101 ]
pytest_components_esp32_lan8720:
extends:
@ -1278,7 +1288,7 @@ pytest_examples_openthread_br:
artifacts: false
tags: [ esp32c6, openthread_br ]
script:
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
@ -1293,7 +1303,7 @@ pytest_examples_openthread_br:
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
@ -1312,7 +1322,7 @@ pytest_examples_openthread_bbr:
artifacts: false
tags: [ esp32c6, openthread_bbr ]
script:
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
@ -1327,7 +1337,7 @@ pytest_examples_openthread_bbr:
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
@ -1344,7 +1354,7 @@ pytest_examples_openthread_sleep:
artifacts: false
tags: [ esp32c6, openthread_sleep ]
script:
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
@ -1358,7 +1368,7 @@ pytest_examples_openthread_sleep:
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}

12
.gitmodules vendored
View File

@ -49,12 +49,12 @@
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = ../../DaveGamble/cJSON.git
sbom-version = 1.7.16
sbom-version = 1.7.17
sbom-cpe = cpe:2.3:a:cjson_project:cjson:{}:*:*:*:*:*:*:*
sbom-supplier = Person: Dave Gamble
sbom-url = https://github.com/DaveGamble/cJSON
sbom-description = Ultralightweight JSON parser in ANSI C
sbom-hash = cb8693b058ba302f4829ec6d03f609ac6f848546
sbom-hash = 87d8f0961a01bf09bef98ff89bae9fdec42181ee
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
@ -120,10 +120,6 @@
path = components/openthread/lib
url = ../../espressif/esp-thread-lib.git
[submodule "components/ieee802154/lib"]
path = components/ieee802154/lib
url = ../../espressif/esp-ieee802154-lib.git
[submodule "components/bt/controller/lib_esp32h2/esp32h2-bt-lib"]
path = components/bt/controller/lib_esp32h2/esp32h2-bt-lib
url = ../../espressif/esp32h2-bt-lib.git
@ -143,3 +139,7 @@
[submodule "components/esp_coex/lib"]
path = components/esp_coex/lib
url = ../../espressif/esp-coex-lib.git
[submodule "components/bt/esp_ble_mesh/lib/lib"]
path = components/bt/esp_ble_mesh/lib/lib
url = ../../espressif/esp-ble-mesh-lib.git

View File

@ -1,9 +1,11 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_stages: [commit]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
rev: v4.5.0
hooks:
- id: trailing-whitespace
# note: whitespace exclusions use multiline regex, see https://pre-commit.com/#regular-expressions
@ -39,11 +41,12 @@ repos:
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/pycqa/isort
rev: 5.12.0 # python 3.8 compatible
- repo: https://github.com/asottile/reorder-python-imports
rev: v3.12.0
hooks:
- id: isort
name: isort (python)
- id: reorder-python-imports
name: Reorder Python imports
args: [--py38-plus]
exclude: >
(?x)^(
.*_pb2.py
@ -67,7 +70,7 @@ repos:
entry: tools/ci/check_kconfigs.py
language: python
additional_dependencies:
- esp-idf-kconfig
- esp-idf-kconfig>=1.4.2,<2.0.0
files: '^Kconfig$|Kconfig.*$'
- id: check-deprecated-kconfigs-options
name: Check if any Kconfig Options Deprecated
@ -177,12 +180,6 @@ repos:
always_run: true
pass_filenames: false
require_serial: true
- id: submodule-sbom-hash-check
name: Check if sbom-hash values for submodules in .gitmodules match submodules checkout hash in git tree
entry: python tools/test_sbom/test_submodules.py
language: python
always_run: true
pass_filenames: false
- id: cleanup-ignore-lists
name: Remove non-existing patterns from ignore lists
entry: tools/ci/cleanup_ignore_lists.py
@ -205,7 +202,7 @@ repos:
- id: conventional-precommit-linter
stages: [commit-msg]
- repo: https://github.com/espressif/astyle_py.git
rev: v1.0.2
rev: v1.0.5
hooks:
- id: astyle_py
# If you are modifying astyle version, update tools/format.sh as well
@ -221,3 +218,8 @@ repos:
name: shellcheck dash (export.sh)
args: ['--shell', 'dash', '-x']
files: 'export.sh'
- repo: https://github.com/espressif/esp-idf-sbom.git
rev: v0.13.0
hooks:
- id: validate-sbom-manifest
stages: [post-commit]

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -16,6 +16,7 @@
#include "esp_freertos_hooks.h"
#include "esp_private/dbg_stubs.h"
#include "esp_ipc.h"
#include "esp_attr.h"
#include "hal/wdt_hal.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/libc_stubs.h"
@ -80,6 +81,7 @@ void gcov_create_task(void *arg)
(void *)&s_gcov_task_running, configMAX_PRIORITIES - 1, NULL, 0);
}
static IRAM_ATTR
void gcov_create_task_tick_hook(void)
{
extern esp_err_t esp_ipc_start_gcov_from_isr(uint32_t cpu_id, esp_ipc_func_t func, void* arg);
@ -106,12 +108,16 @@ static int esp_dbg_stub_gcov_entry(void)
void gcov_rtio_init(void)
{
uint32_t capabilities = 0;
uint32_t stub_entry = 0;
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
if (esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_CAPABILITIES, &capabilities) == ESP_OK) {
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_CAPABILITIES, capabilities | ESP_DBG_STUB_CAP_GCOV_TASK);
assert(esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_GCOV, &stub_entry) == ESP_OK);
if (stub_entry != 0) {
/* "__gcov_init()" can be called several times. We must avoid multiple tick hook registration */
return;
}
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
assert(esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_CAPABILITIES, &stub_entry) == ESP_OK);
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_CAPABILITIES, stub_entry | ESP_DBG_STUB_CAP_GCOV_TASK);
esp_register_freertos_tick_hook(gcov_create_task_tick_hook);
}

View File

@ -199,13 +199,18 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
return ESP_ERR_INVALID_ARG;
}
if (size == 0) {
ESP_LOGD(TAG, "write data size is 0");
return ESP_OK;
}
// find ota handle in linked list
for (it = LIST_FIRST(&s_ota_ops_entries_head); it != NULL; it = LIST_NEXT(it, entries)) {
if (it->handle == handle) {
if (it->need_erase) {
// must erase the partition before writing to it
uint32_t first_sector = it->wrote_size / SPI_FLASH_SEC_SIZE;
uint32_t last_sector = (it->wrote_size + size) / SPI_FLASH_SEC_SIZE;
uint32_t first_sector = it->wrote_size / SPI_FLASH_SEC_SIZE; // first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / SPI_FLASH_SEC_SIZE; // last affected sector
ret = ESP_OK;
if ((it->wrote_size % SPI_FLASH_SEC_SIZE) == 0) {
@ -960,6 +965,7 @@ esp_err_t esp_ota_revoke_secure_boot_public_key(esp_ota_secure_boot_public_key_i
}
const esp_partition_t *running_app_part = esp_ota_get_running_partition();
esp_err_t ret = ESP_FAIL;
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
esp_ota_img_states_t running_app_state;
ret = esp_ota_get_state_partition(running_app_part, &running_app_state);
@ -974,7 +980,7 @@ esp_err_t esp_ota_revoke_secure_boot_public_key(esp_ota_secure_boot_public_key_i
#endif
esp_secure_boot_key_digests_t trusted_keys;
esp_err_t ret = esp_secure_boot_read_key_digests(&trusted_keys);
ret = esp_secure_boot_read_key_digests(&trusted_keys);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Could not read the secure boot key digests from efuse. Aborting..");
return ESP_FAIL;

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -111,7 +111,7 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp
* @param size Size of data buffer in bytes.
*
* @return
* - ESP_OK: Data was written to flash successfully.
* - ESP_OK: Data was written to flash successfully, or size = 0
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.

View File

@ -2,6 +2,7 @@
cmake_minimum_required(VERSION 3.16)
set(EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/tools/unit-test-app/components")
set(COMPONENTS main)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(app_update_test)

View File

@ -23,7 +23,6 @@ menu "Bootloader config"
- The default "Size" setting will add the -0s flag to CFLAGS.
- The "Debug" setting will add the -Og flag to CFLAGS.
- The "Performance" setting will add the -O2 flag to CFLAGS.
- The "None" setting will add the -O0 flag to CFLAGS.
Note that custom optimization levels may be unsupported.
@ -34,7 +33,9 @@ menu "Bootloader config"
config BOOTLOADER_COMPILER_OPTIMIZATION_PERF
bool "Optimize for performance (-O2)"
config BOOTLOADER_COMPILER_OPTIMIZATION_NONE
bool "Debug without optimization (-O0)"
bool "Debug without optimization (-O0) (Deprecated, will be removed in IDF v6.0)"
depends on IDF_TARGET_ARCH_XTENSA || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
endchoice
choice BOOTLOADER_LOG_LEVEL
@ -139,7 +140,7 @@ menu "Bootloader config"
config BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
bool
default y if ESPTOOLPY_OCT_FLASH && SPI_FLASH_32BIT_ADDRESS
default y if ESPTOOLPY_OCT_FLASH && BOOTLOADER_FLASH_32BIT_ADDR
default n
endmenu
@ -458,6 +459,21 @@ menu "Bootloader config"
(The application and bootoloader must be compiled with the same option).
The RTC FAST memory has access only through PRO_CPU.
config BOOTLOADER_CUSTOM_RESERVE_RTC_IN_CRC
bool "Include custom memory in the CRC calculation"
depends on BOOTLOADER_CUSTOM_RESERVE_RTC
default n
help
This option allows the customer to use the legacy bootloader behavior when the
RTC FAST memory CRC calculation takes place. When this option is enabled, the
allocated user custom data will be taken into account in the CRC calculcation.
This means that any change to the custom data would need a CRC update to prevent
the bootloader from marking this data as corrupted.
If this option is disabled, the custom data will not be taken into account when
calculating the RTC FAST memory CRC. The user custom data can be changed freely,
without the need to update the CRC.
THIS OPTION MUST BE THE SAME FOR BOTH THE BOOTLOADER AND THE APPLICATION BUILDS.
config BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE
hex "Size in bytes for custom purposes"
default 0
@ -833,7 +849,6 @@ menu "Security features"
bool "Enable flash encryption on boot (READ DOCS FIRST)"
default N
select SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE
select NVS_ENCRYPTION
help
If this option is set, flash contents will be encrypted by the bootloader on first boot.
@ -1072,6 +1087,22 @@ menu "Security features"
DIS_DOWNLOAD_MANUAL_ENCRYPT, DIS_USB_JTAG, DIS_USB_SERIAL_JTAG, STRAP_JTAG_SEL, USB_PHY_SEL.
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"
depends on SECURE_FLASH_ENC_ENABLED && !SECURE_FLASH_REQUIRE_ALREADY_ENABLED
default n
help
If set, optimise encryption time for the partition of type APP,
by only encrypting the app image that is present in the partition,
instead of the whole partition.
The image length used for encryption is derived from the image metadata, which
includes the size of the app image, checksum, hash and also the signature sector
when secure boot is enabled.
If not set (default), the whole partition of type APP would be encrypted,
which increases the encryption time but might be useful if there
is any custom data appended to the firmware image.
config SECURE_FLASH_CHECK_ENC_EN_IN_APP
bool "Check Flash Encryption enabled on app startup"
depends on SECURE_FLASH_ENC_ENABLED

View File

@ -9,9 +9,9 @@
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-P4 ROM static data usage is as follows:
* - 0x4086ad08 - 0x4087c610: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4087c610 - 0x4087e610: CPU1 stack, can be reclaimed as heap after RTOS startup
* - 0x4087e610 - 0x40880000: ROM .bss and .data (not easily reclaimable)
* - 0x4ff296b8 - 0x4ff3afc0: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4ff3afc0 - 0x4ff3fba4: CPU1 stack, can be reclaimed as heap after RTOS startup
* - 0x4ff3fba4 - 0x4ff40000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4087c610).
@ -217,34 +217,38 @@ SECTIONS
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4086ad08 ------------------> _dram0_0_start
* 0x4ff296b8 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4087c610 ------------------> __stack_sentry
* 0x4ff3afc0 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4087e610 ------------------> __stack (pro cpu)
* 0x4ff3cfc0 ------------------> __stack (pro cpu)
* | |
* | | Startup app cpu stack
* | |
* 0x4ff3efc0 ------------------> __stack_app (app cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4087f564 ------------------> _dram0_rtos_reserved_start
* 0x4ff3fba4 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4087fab0 ------------------> _dram0_rtos_reserved_end
* 0x4ff3ff94 ------------------> _dram0_rtos_reserved_end
* | |
* 0x4087fce8 ------------------> _data_start_interface
* 0x4ff3ffc8 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x40880000 ------------------> _data_end_interface
* 0x4ff40000 ------------------> _data_end_interface
*/

View File

@ -33,6 +33,7 @@ typedef struct {
uint32_t segment_data[ESP_IMAGE_MAX_SEGMENTS]; /* Data offsets for each segment */
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) */
} esp_image_metadata_t;
typedef enum {

View File

@ -121,7 +121,7 @@ int bootloader_common_select_otadata(const esp_ota_select_entry_t *two_otadata,
#if CONFIG_BOOTLOADER_RESERVE_RTC_MEM
static uint32_t rtc_retain_mem_size(void) {
#ifdef CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC
#if CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC && !CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_IN_CRC
/* A custom memory has been reserved by the user, do not consider this memory into CRC calculation as it may change without
* the have the user updating the CRC. Return the offset of the custom field, which is equivalent to size of the structure
* minus the size of everything after (including) `custom` */

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -18,6 +18,9 @@
#include "esp32s2/rom/usb/cdc_acm.h"
#include "esp32s2/rom/usb/usb_common.h"
#endif
#if SOC_USB_SERIAL_JTAG_SUPPORTED
#include "hal/usb_fsls_phy_ll.h"
#endif
#include "esp_rom_gpio.h"
#include "esp_rom_uart.h"
#include "esp_rom_sys.h"
@ -35,6 +38,7 @@ void bootloader_console_init(void)
void bootloader_console_init(void)
{
const int uart_num = CONFIG_ESP_CONSOLE_UART_NUM;
int __DECLARE_RCC_ATOMIC_ENV __attribute__ ((unused)); // To avoid build errors/warnings about __DECLARE_RCC_ATOMIC_ENV
// Install rom uart printf as console.
esp_rom_install_uart_printf();
@ -56,8 +60,8 @@ void bootloader_console_init(void)
uart_tx_gpio != UART_NUM_0_TXD_DIRECT_GPIO_NUM ||
uart_rx_gpio != UART_NUM_0_RXD_DIRECT_GPIO_NUM) {
// Change default UART pins back to GPIOs
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_U0RXD_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_U0TXD_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[UART_NUM_0_RXD_DIRECT_GPIO_NUM], PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[UART_NUM_0_TXD_DIRECT_GPIO_NUM], PIN_FUNC_GPIO);
// Route GPIO signals to/from pins
const uint32_t tx_idx = UART_PERIPH_SIGNAL(uart_num, SOC_UART_TX_PIN_IDX);
const uint32_t rx_idx = UART_PERIPH_SIGNAL(uart_num, SOC_UART_RX_PIN_IDX);
@ -68,7 +72,11 @@ void bootloader_console_init(void)
esp_rom_gpio_connect_in_signal(uart_rx_gpio, rx_idx, 0);
gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[uart_tx_gpio], PIN_FUNC_GPIO);
// Enable the peripheral
periph_ll_enable_clk_clear_rst(PERIPH_UART0_MODULE + uart_num);
uart_ll_enable_bus_clock(uart_num, true);
uart_ll_reset_register(uart_num);
// 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));
}
#endif // CONFIG_ESP_CONSOLE_UART_CUSTOM
@ -77,7 +85,6 @@ void bootloader_console_init(void)
#if ESP_ROM_UART_CLK_IS_XTAL
clock_hz = (uint32_t)rtc_clk_xtal_freq_get() * MHZ; // From esp32-s3 on, UART clk source is selected to XTAL in ROM
#endif
int __DECLARE_RCC_ATOMIC_ENV __attribute__ ((unused)); // To avoid build errors/warnings about __DECLARE_RCC_ATOMIC_ENV
esp_rom_uart_set_clock_baudrate(uart_num, clock_hz, CONFIG_ESP_CONSOLE_UART_BAUDRATE);
}
#endif // CONFIG_ESP_CONSOLE_UART
@ -98,6 +105,10 @@ void bootloader_console_init(void)
esp_rom_uart_usb_acm_init(s_usb_cdc_buf, sizeof(s_usb_cdc_buf));
esp_rom_uart_set_as_console(ESP_ROM_USB_OTG_NUM);
esp_rom_install_channel_putc(1, bootloader_console_write_char_usb);
#if SOC_USB_SERIAL_JTAG_SUPPORTED
usb_fsls_phy_ll_usb_wrap_pad_enable(&USB_WRAP, true);
usb_fsls_phy_ll_int_otg_enable(&USB_WRAP);
#endif
}
#endif //CONFIG_ESP_CONSOLE_USB_CDC

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -19,6 +19,8 @@
#include "bootloader_util.h"
#include "bootloader_common.h"
#include "esp_rom_sys.h"
#include "esp_efuse.h"
#include "esp_app_desc.h"
#include "bootloader_memory_utils.h"
#include "soc/soc_caps.h"
#include "hal/cache_ll.h"
@ -89,10 +91,10 @@ static bool should_map(uint32_t load_addr);
static esp_err_t process_segments(esp_image_metadata_t *data, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum);
/* Load or verify a segment */
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum);
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata);
/* split segment and verify if data_len is too long */
static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum);
static esp_err_t process_segment_data(int segment, intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata);
/* Verify the main image header */
static esp_err_t verify_image_header(uint32_t src_addr, const esp_image_header_t *image, bool silent);
@ -240,6 +242,21 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
cache_ll_writeback_all(CACHE_LL_LEVEL_INT_MEM, CACHE_TYPE_DATA, CACHE_LL_ID_ALL);
#endif
}
#if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
/* For anti-rollback case, reconfirm security version of the application to prevent FI attacks */
bool sec_ver = false;
if (do_load) {
sec_ver = esp_efuse_check_secure_version(data->secure_version);
if (!sec_ver) {
err = ESP_FAIL;
goto err;
}
}
/* Ensure that the security version check passes for image loading scenario */
ESP_FAULT_ASSERT(!do_load || sec_ver == true);
#endif // CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
#endif // BOOTLOADER_BUILD
// Success!
@ -522,7 +539,7 @@ static esp_err_t process_segments(esp_image_metadata_t *data, bool silent, bool
for (int i = 0; i < data->image.segment_count; i++) {
esp_image_segment_header_t *header = &data->segments[i];
ESP_LOGV(TAG, "loading segment header %d at offset 0x%"PRIx32, i, next_addr);
CHECK_ERR(process_segment(i, next_addr, header, silent, do_load, sha_handle, checksum));
CHECK_ERR(process_segment(i, next_addr, header, silent, do_load, sha_handle, checksum, data));
next_addr += sizeof(esp_image_segment_header_t);
data->segment_data[i] = next_addr;
next_addr += header->data_len;
@ -543,7 +560,7 @@ err:
return err;
}
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum)
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata)
{
esp_err_t err;
@ -601,7 +618,7 @@ static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segme
uint32_t offset_page = ((data_addr & MMAP_ALIGNED_MASK) != 0) ? 1 : 0;
/* Data we could map in case we are not aligned to PAGE boundary is one page size lesser. */
data_len = MIN(data_len_remain, ((free_page_count - offset_page) * SPI_FLASH_MMU_PAGE_SIZE));
CHECK_ERR(process_segment_data(load_addr, data_addr, data_len, do_load, sha_handle, checksum));
CHECK_ERR(process_segment_data(index, load_addr, data_addr, data_len, do_load, sha_handle, checksum, metadata));
data_addr += data_len;
data_len_remain -= data_len;
}
@ -616,7 +633,42 @@ err:
return err;
}
static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum)
#if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
/* The __attribute__((optimize("O0"))) is used to disable optimizations for this function,
* preventing the compiler from potentially optimizing data_buffer and reading data directly from src.
* This is crucial as we want to read from Flash only once, ensuring the integrity of the data.
*/
__attribute__((optimize("O0")))
static size_t process_esp_app_desc_data(const uint32_t *src, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata)
{
/* Using data_buffer here helps to securely read secure_version
* (for anti-rollback) from esp_app_desc_t, preventing FI attack.
* We read data from Flash into this buffer, which is covered by sha256.
* Therefore, if the flash is under attackers control and contents are modified
* the sha256 comparison will fail.
*
* The esp_app_desc_t structure is located in DROM and is always in segment #0.
*
* esp_app_desc_t is always at #0 segment (index==0).
* secure_version field of esp_app_desc_t is located at #2 word (w_i==1).
*/
uint32_t data_buffer[2];
memcpy(data_buffer, src, sizeof(data_buffer));
assert(data_buffer[0] == ESP_APP_DESC_MAGIC_WORD);
metadata->secure_version = data_buffer[1];
if (checksum != NULL) {
*checksum ^= data_buffer[0] ^ data_buffer[1];
}
if (sha_handle != NULL) {
bootloader_sha256_data(sha_handle, data_buffer, sizeof(data_buffer));
}
ESP_FAULT_ASSERT(memcmp(data_buffer, src, sizeof(data_buffer)) == 0);
ESP_FAULT_ASSERT(memcmp(&metadata->secure_version, &src[1], sizeof(uint32_t)) == 0);
return sizeof(data_buffer);
}
#endif // CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
static esp_err_t process_segment_data(int segment, intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata)
{
// If we are not loading, and the checksum is empty, skip processing this
// segment for data
@ -649,10 +701,24 @@ static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, ui
#endif
}
uint32_t *dest = (uint32_t *)load_addr;
#endif
#endif // BOOTLOADER_BUILD
const uint32_t *src = data;
#if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
// Case I: Bootloader verifying application
// Case II: Bootloader verifying bootloader
// Anti-rollback check should handle only Case I from above.
if (segment == 0 && metadata->start_addr != ESP_BOOTLOADER_OFFSET) {
ESP_LOGD(TAG, "additional anti-rollback check 0x%"PRIx32, data_addr);
// The esp_app_desc_t structure is located in DROM and is always in segment #0.
size_t len = process_esp_app_desc_data(src, sha_handle, checksum, metadata);
data_len -= len;
src += len / 4;
// In BOOTLOADER_BUILD, for DROM (segment #0) we do not load it into dest (only map it), do_load = false.
}
#endif // CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
for (size_t i = 0; i < data_len; i += 4) {
int w_i = i / 4; // Word index
uint32_t w = src[w_i];
@ -932,9 +998,13 @@ static esp_err_t verify_secure_boot_signature(bootloader_sha256_handle_t sha_han
return ESP_ERR_IMAGE_INVALID;
}
#if CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME
// Adjust image length result to include the appended signature
#if CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME
data->image_len = end - data->start_addr + sizeof(ets_secure_boot_signature_t);
#elif defined(CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME)
if (data->start_addr != ESP_BOOTLOADER_OFFSET) {
data->image_len = end - data->start_addr + sizeof(esp_secure_boot_sig_block_t);
}
#endif
#endif // SECURE_BOOT_CHECK_SIGNATURE

View File

@ -393,14 +393,21 @@ static esp_err_t encrypt_partition(int index, const esp_partition_info_t *partit
{
esp_err_t err;
bool should_encrypt = (partition->flags & PART_FLAG_ENCRYPTED);
uint32_t size = partition->pos.size;
if (partition->type == PART_TYPE_APP) {
/* check if the partition holds a valid unencrypted app */
esp_image_metadata_t data_ignored;
esp_image_metadata_t image_data = {};
err = esp_image_verify(ESP_IMAGE_VERIFY,
&partition->pos,
&data_ignored);
&image_data);
should_encrypt = (err == ESP_OK);
#ifdef SECURE_FLASH_ENCRYPT_ONLY_IMAGE_LEN_IN_APP_PART
if (should_encrypt) {
// Encrypt only the app image instead of encrypting the whole partition
size = image_data.image_len;
}
#endif
} else if ((partition->type == PART_TYPE_DATA && partition->subtype == PART_SUBTYPE_DATA_OTA)
|| (partition->type == PART_TYPE_DATA && partition->subtype == PART_SUBTYPE_DATA_NVS_KEYS)) {
/* check if we have ota data partition and the partition should be encrypted unconditionally */
@ -411,9 +418,9 @@ static esp_err_t encrypt_partition(int index, const esp_partition_info_t *partit
return ESP_OK;
} else {
/* should_encrypt */
ESP_LOGI(TAG, "Encrypting partition %d at offset 0x%x (length 0x%x)...", index, partition->pos.offset, partition->pos.size);
ESP_LOGI(TAG, "Encrypting partition %d at offset 0x%x (length 0x%x)...", index, partition->pos.offset, size);
err = esp_flash_encrypt_region(partition->pos.offset, partition->pos.size);
err = esp_flash_encrypt_region(partition->pos.offset, size);
ESP_LOGI(TAG, "Done encrypting");
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to encrypt partition %d", index);

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 == "esp32p4"
temporary: true
reason: this feature on esp32p4 isn't supported yet # TODO: IDF-8069

View File

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

View File

@ -30,6 +30,7 @@ set(common_include_dirs
common/api/include/api
common/btc/profile/esp/blufi/include
common/btc/profile/esp/include
common/hci_log/include
)
set(ble_mesh_include_dirs
@ -45,15 +46,17 @@ set(ble_mesh_include_dirs
"esp_ble_mesh/api/core/include"
"esp_ble_mesh/api/models/include"
"esp_ble_mesh/api"
"esp_ble_mesh/lib/include"
"esp_ble_mesh/v1.1/api/core/include"
"esp_ble_mesh/v1.1/api/models/include"
"esp_ble_mesh/v1.1/btc/include"
"esp_ble_mesh/v1.1/include"
)
set(bluedroid_include_dirs host/bluedroid/api/include/api)
if(CONFIG_BT_CONTROLLER_ENABLED OR CONFIG_IDF_DOC_BUILD)
set(nimble_hci_include_dirs host/nimble/esp-hci/include)
endif()
if(CONFIG_IDF_DOC_BUILD)
list(APPEND include_dirs
@ -64,37 +67,42 @@ if(CONFIG_IDF_DOC_BUILD)
${nimble_hci_include_dirs})
endif()
if(CONFIG_BT_ENABLED)
set(srcs "")
set(include_dirs "")
set(ldfragments "linker.lf")
set(ldscripts "linker_common.lf")
if(CONFIG_BT_CONTROLLER_ENABLED)
if(CONFIG_IDF_TARGET_ESP32)
list(APPEND srcs "controller/esp32/bt.c"
"controller/esp32/hli_api.c"
"controller/esp32/hli_vectors.S")
list(APPEND ldscripts "linker_rw_bt_controller.lf")
if(CONFIG_IDF_TARGET_ESP32)
list(APPEND srcs "controller/esp32/bt.c"
"controller/esp32/hli_api.c"
"controller/esp32/hli_vectors.S")
elseif(CONFIG_IDF_TARGET_ESP32C3)
list(APPEND srcs "controller/esp32c3/bt.c")
list(APPEND ldscripts "linker_rw_bt_controller.lf")
elseif(CONFIG_IDF_TARGET_ESP32C3)
list(APPEND srcs "controller/esp32c3/bt.c")
elseif(CONFIG_IDF_TARGET_ESP32S3)
list(APPEND srcs "controller/esp32c3/bt.c")
list(APPEND ldscripts "linker_rw_bt_controller.lf")
elseif(CONFIG_IDF_TARGET_ESP32S3)
list(APPEND srcs "controller/esp32c3/bt.c")
elseif(CONFIG_IDF_TARGET_ESP32C2)
list(APPEND srcs "controller/esp32c2/bt.c")
set(ldscripts "linker_esp32c2.lf")
elseif(CONFIG_IDF_TARGET_ESP32C2)
set(ldfragments "linker.lf.esp32c2")
list(APPEND srcs "controller/esp32c2/bt.c")
elseif(CONFIG_IDF_TARGET_ESP32C6)
list(APPEND srcs "controller/esp32c6/bt.c")
list(APPEND ldscripts "linker_esp_ble_controller.lf")
elseif(CONFIG_IDF_TARGET_ESP32C6)
list(APPEND srcs "controller/esp32c6/bt.c")
elseif(CONFIG_IDF_TARGET_ESP32H2)
list(APPEND srcs "controller/esp32h2/bt.c")
list(APPEND ldscripts "linker_esp_ble_controller.lf")
endif()
elseif(CONFIG_IDF_TARGET_ESP32H2)
list(APPEND srcs "controller/esp32h2/bt.c")
list(APPEND include_dirs ${target_specific_include_dirs})
endif()
list(APPEND include_dirs ${target_specific_include_dirs})
# Common
list(APPEND include_dirs common/osi/include)
@ -107,6 +115,7 @@ if(CONFIG_BT_ENABLED)
list(APPEND srcs "common/btc/core/btc_alarm.c"
"common/api/esp_blufi_api.c"
"common/hci_log/bt_hci_log.c"
"common/btc/core/btc_manage.c"
"common/btc/core/btc_task.c"
"common/btc/profile/esp/blufi/blufi_prf.c"
@ -174,6 +183,7 @@ if(CONFIG_BT_ENABLED)
list(APPEND srcs "host/bluedroid/api/esp_a2dp_api.c"
"host/bluedroid/api/esp_avrc_api.c"
"host/bluedroid/api/esp_bluedroid_hci.c"
"host/bluedroid/api/esp_bt_device.c"
"host/bluedroid/api/esp_bt_main.c"
"host/bluedroid/api/esp_gap_ble_api.c"
@ -509,7 +519,6 @@ if(CONFIG_BT_ENABLED)
"esp_ble_mesh/core/rpl.c"
"esp_ble_mesh/core/scan.c"
"esp_ble_mesh/core/test.c"
"esp_ble_mesh/core/transport.c"
"esp_ble_mesh/models/common/device_property.c"
"esp_ble_mesh/models/common/model_common.c"
"esp_ble_mesh/models/client/client_common.c"
@ -545,7 +554,13 @@ if(CONFIG_BT_ENABLED)
"esp_ble_mesh/v1.1/btc/btc_ble_mesh_rpr_model.c"
"esp_ble_mesh/v1.1/btc/btc_ble_mesh_sar_model.c"
"esp_ble_mesh/v1.1/btc/btc_ble_mesh_srpl_model.c"
"esp_ble_mesh/v1.1/ext.c")
"esp_ble_mesh/lib/ext.c")
if(CONFIG_BLE_MESH_SAR_ENHANCEMENT)
list(APPEND srcs "esp_ble_mesh/core/transport.enh.c")
else()
list(APPEND srcs "esp_ble_mesh/core/transport.c")
endif()
endif()
@ -556,6 +571,11 @@ if(CONFIG_BT_ENABLED)
"porting/nimble/src/os_msys_init.c"
)
if(CONFIG_BT_CONTROLLER_DISABLED)
list(APPEND srcs
"host/nimble/nimble/porting/nimble/src/hal_uart.c"
)
endif()
list(APPEND include_dirs
porting/include
porting/nimble/include
@ -597,6 +617,7 @@ if(CONFIG_BT_ENABLED)
list(APPEND include_dirs
host/nimble/nimble/nimble/host/include
host/nimble/nimble/nimble/include
host/nimble/nimble/nimble/host/services/ans/include
host/nimble/nimble/nimble/host/services/bas/include
host/nimble/nimble/nimble/host/services/dis/include
@ -608,7 +629,10 @@ if(CONFIG_BT_ENABLED)
host/nimble/nimble/nimble/host/services/ipss/include
host/nimble/nimble/nimble/host/services/lls/include
host/nimble/nimble/nimble/host/services/prox/include
host/nimble/nimble/nimble/host/services/cts/include
host/nimble/nimble/nimble/host/services/tps/include
host/nimble/nimble/nimble/host/services/hid/include
host/nimble/nimble/nimble/host/services/sps/include
host/nimble/nimble/nimble/host/util/include
host/nimble/nimble/nimble/host/store/ram/include
host/nimble/nimble/nimble/host/store/config/include
@ -628,6 +652,9 @@ if(CONFIG_BT_ENABLED)
"host/nimble/nimble/nimble/host/services/dis/src/ble_svc_dis.c"
"host/nimble/nimble/nimble/host/services/lls/src/ble_svc_lls.c"
"host/nimble/nimble/nimble/host/services/prox/src/ble_svc_prox.c"
"host/nimble/nimble/nimble/host/services/cts/src/ble_svc_cts.c"
"host/nimble/nimble/nimble/host/services/hid/src/ble_svc_hid.c"
"host/nimble/nimble/nimble/host/services/sps/src/ble_svc_sps.c"
"host/nimble/nimble/nimble/host/src/ble_hs_conn.c"
"host/nimble/nimble/nimble/host/src/ble_store_util.c"
"host/nimble/nimble/nimble/host/src/ble_sm.c"
@ -676,11 +703,21 @@ if(CONFIG_BT_ENABLED)
"host/nimble/nimble/nimble/host/store/ram/src/ble_store_ram.c"
"host/nimble/nimble/nimble/host/store/config/src/ble_store_config.c"
"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"
)
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"
"host/nimble/nimble/nimble/transport/common/hci_h4/src/hci_h4.c"
)
endif()
list(APPEND srcs
"host/nimble/nimble/porting/nimble/src/nimble_port.c"
"host/nimble/nimble/porting/npl/freertos/src/nimble_port_freertos.c"
"host/nimble/port/src/nvs_port.c"
)
list(APPEND include_dirs
porting/include
@ -689,6 +726,12 @@ if(CONFIG_BT_ENABLED)
host/nimble/nimble/nimble/transport/include
)
if(CONFIG_BT_CONTROLLER_DISABLED)
list(APPEND include_dirs
host/nimble/nimble/nimble/transport/common/hci_h4/include
)
endif()
if(NOT CONFIG_BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT)
list(APPEND srcs
"host/nimble/nimble/porting/nimble/src/endian.c"
@ -698,6 +741,13 @@ if(CONFIG_BT_ENABLED)
"host/nimble/nimble/porting/nimble/src/os_msys_init.c"
"host/nimble/nimble/porting/npl/freertos/src/npl_os_freertos.c"
)
if(CONFIG_BT_CONTROLLER_DISABLED AND CONFIG_BT_NIMBLE_TRANSPORT_UART)
list(APPEND srcs
"host/nimble/nimble/porting/nimble/src/hal_uart.c"
)
endif()
list(APPEND include_dirs
host/nimble/nimble/porting/npl/freertos/include
host/nimble/nimble/porting/nimble/include
@ -705,7 +755,7 @@ if(CONFIG_BT_ENABLED)
)
endif()
if(CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE)
if(CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE AND CONFIG_BT_CONTROLLER_ENABLED)
list(APPEND srcs
"host/nimble/esp-hci/src/esp_nimble_hci.c"
)
@ -773,7 +823,7 @@ idf_component_register(SRCS "${srcs}"
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
REQUIRES esp_timer esp_wifi
PRIV_REQUIRES nvs_flash soc esp_pm esp_phy esp_coex mbedtls driver vfs
LDFRAGMENTS "${ldfragments}")
LDFRAGMENTS "${ldscripts}")
if(CONFIG_BT_ENABLED)
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable)
@ -790,14 +840,8 @@ if(CONFIG_BT_ENABLED)
target_link_directories(${COMPONENT_LIB} INTERFACE
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32s3")
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
elseif(CONFIG_IDF_TARGET_ESP32C2)
add_prebuilt_library(libble_app "controller/lib_esp32c2/esp32c2-bt-lib/libble_app.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
elseif(CONFIG_IDF_TARGET_ESP32C6)
add_prebuilt_library(libble_app "controller/lib_esp32c6/esp32c6-bt-lib/libble_app.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
elseif(CONFIG_IDF_TARGET_ESP32H2)
add_prebuilt_library(libble_app "controller/lib_esp32h2/esp32h2-bt-lib/libble_app.a")
elseif(CONFIG_BT_CONTROLLER_ENABLED)
add_prebuilt_library(libble_app "controller/lib_${target}/${target}-bt-lib/libble_app.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
endif()
@ -813,20 +857,20 @@ endif()
if(CONFIG_BLE_MESH)
if(CONFIG_IDF_TARGET_ESP32)
add_prebuilt_library(mesh_v11 "esp_ble_mesh/v1.1/lib/esp32/libmesh_v1.1.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE mesh_v11)
add_prebuilt_library(ble_mesh "esp_ble_mesh/lib/lib/esp32/libble_mesh.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE ble_mesh)
elseif(CONFIG_IDF_TARGET_ESP32S3)
add_prebuilt_library(mesh_v11 "esp_ble_mesh/v1.1/lib/esp32s3/libmesh_v1.1.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE mesh_v11)
add_prebuilt_library(ble_mesh "esp_ble_mesh/lib/lib/esp32s3/libble_mesh.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE ble_mesh)
elseif(CONFIG_IDF_TARGET_ESP32C3)
add_prebuilt_library(mesh_v11 "esp_ble_mesh/v1.1/lib/esp32c3/libmesh_v1.1.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE mesh_v11)
add_prebuilt_library(ble_mesh "esp_ble_mesh/lib/lib/esp32c3/libble_mesh.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE ble_mesh)
elseif(CONFIG_IDF_TARGET_ESP32C6)
add_prebuilt_library(mesh_v11 "esp_ble_mesh/v1.1/lib/esp32c6/libmesh_v1.1.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE mesh_v11)
add_prebuilt_library(ble_mesh "esp_ble_mesh/lib/lib/esp32c6/libble_mesh.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE ble_mesh)
elseif(CONFIG_IDF_TARGET_ESP32H2)
add_prebuilt_library(mesh_v11 "esp_ble_mesh/v1.1/lib/esp32h2/libmesh_v1.1.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE mesh_v11)
add_prebuilt_library(ble_mesh "esp_ble_mesh/lib/lib/esp32h2/libble_mesh.a")
target_link_libraries(${COMPONENT_LIB} PRIVATE ble_mesh)
endif()
endif()

View File

@ -1,9 +1,8 @@
menu "Bluetooth"
visible if SOC_BT_SUPPORTED
config BT_ENABLED
bool "Bluetooth"
depends on SOC_BT_SUPPORTED && !APP_NO_BLOBS
depends on !APP_NO_BLOBS
help
Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.
@ -26,6 +25,7 @@ menu "Bluetooth"
This option is recommended for BLE only usecases to save on memory
config BT_CONTROLLER_ONLY
depends on SOC_BT_SUPPORTED
bool "Disabled"
help
This option is recommended when you want to communicate directly with the
@ -42,6 +42,7 @@ menu "Bluetooth"
This helps to choose Bluetooth controller stack
config BT_CONTROLLER_ENABLED
depends on SOC_BT_SUPPORTED
bool "Enabled"
help
This option is recommended for Bluetooth controller usecases
@ -79,6 +80,37 @@ menu "Bluetooth"
We cannot split the memory into 3 different regions (IRAM, BLE-IRAM, DRAM).
So this option will disable the PMP (ESP_SYSTEM_PMP_IDRAM_SPLIT)
config BT_HCI_LOG_DEBUG_EN
depends on BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED
bool "Enable Bluetooth HCI debug mode"
default n
help
This option is used to enable bluetooth debug mode, which saves the hci layer data stream.
config BT_HCI_LOG_DATA_BUFFER_SIZE
depends on BT_HCI_LOG_DEBUG_EN
int "Size of the cache used for HCI data in Bluetooth HCI debug mode (N*1024 bytes)"
range 1 100
default 5
help
This option is to configure the buffer size of the hci data steam cache in hci debug mode.
This is a ring buffer, the new data will overwrite the oldest data if the buffer is full.
config BT_HCI_LOG_ADV_BUFFER_SIZE
depends on BT_HCI_LOG_DEBUG_EN
int "Size of the cache used for adv report in Bluetooth HCI debug mode (N*1024 bytes)"
range 1 100
default 8
help
This option is to configure the buffer size of the hci adv report cache in hci debug mode.
This is a ring buffer, the new data will overwrite the oldest data if the buffer is full.
menu "Common Options"
visible if (BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED)
source "$IDF_PATH/components/bt/common/Kconfig.in"
endmenu
endmenu
menuconfig BLE_MESH

View File

@ -0,0 +1,6 @@
config BT_ALARM_MAX_NUM
int "Maximum number of Bluetooth alarms"
default 50
help
This option decides the maximum number of alarms which
could be used by Bluetooth host.

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
*/
@ -405,6 +405,13 @@ static void btc_deinit_mem(void) {
#endif
#endif
#if BTC_HF_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
if (hf_local_param_ptr) {
osi_free(hf_local_param_ptr);
hf_local_param_ptr = NULL;
}
#endif
#if BTC_HF_CLIENT_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
if (hf_client_local_param_ptr) {
osi_free(hf_client_local_param_ptr);
@ -460,6 +467,13 @@ static bt_status_t btc_init_mem(void) {
#endif
#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) {
goto error_exit;
}
memset((void *)hf_local_param_ptr, 0, BTC_HF_NUM_CB * sizeof(hf_local_param_t));
#endif
#if BTC_HF_CLIENT_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
if ((hf_client_local_param_ptr = (hf_client_local_param_t *)osi_malloc(sizeof(hf_client_local_param_t))) == NULL) {
goto error_exit;

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
*/
@ -9,6 +9,11 @@
#include "btc/btc_task.h"
#include "esp_blufi_api.h"
#ifdef __cplusplus
extern "C" {
#endif
#if (BLUFI_INCLUDED == TRUE)
#define BTC_BLUFI_GREAT_VER 0x01 //Version + Subversion
@ -193,5 +198,10 @@ void btc_blufi_cb_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_blufi_cb_deep_free(btc_msg_t *msg);
#endif /* __BLUFI_INT_H__ */
#endif ///BLUFI_INCLUDED == TRUE
#endif ///BLUFI_INCLUDED == TRUE
#ifdef __cplusplus
}
#endif
#endif /* __BLUFI_INT_H__ */

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
*/
@ -20,6 +20,10 @@
#include "esp_gap_ble_api.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define BLUFI_APP_UUID 0xFFFF
#define BLUFI_DEVICE_NAME "BLUFI_DEVICE"
@ -96,4 +100,7 @@ void esp_blufi_send_encap(void *arg);
int esp_blufi_handle_gap_events(struct ble_gap_event *event, void *arg);
#endif
#ifdef __cplusplus
}
#endif
#endif/* _ESP_BLUFI_ */

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
*/
@ -21,6 +21,11 @@
#define ESP_BLUFI_SUCCESS 0x00
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define BT_BD_ADDR_STR "%02x:%02x:%02x:%02x:%02x:%02x"
#define BT_BD_ADDR_HEX(addr) addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]
@ -100,4 +105,7 @@ void btc_blufi_call_deep_free(btc_msg_t *msg);
uint16_t btc_blufi_get_version(void);
#ifdef __cplusplus
}
#endif
#endif /* __BTC_BLUFI_PRF_H__ */

View File

@ -0,0 +1,334 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include "hci_log/bt_hci_log.h"
#include "bt_common.h"
#include "osi/mutex.h"
#include "esp_attr.h"
#if (BT_HCI_LOG_INCLUDED == TRUE)
#define BT_HCI_LOG_PRINT_TAG (1)
#define BT_HCI_LOG_DATA_BUF_SIZE (1024 * HCI_LOG_DATA_BUFFER_SIZE)
#define BT_HCI_LOG_ADV_BUF_SIZE (1024 * HCI_LOG_ADV_BUFFER_SIZE)
typedef struct {
osi_mutex_t mutex_lock;
uint64_t log_record_in;
uint64_t log_record_out;
uint64_t buf_size;
uint8_t *p_hci_log_buffer;
uint8_t index;
bool overflow;
} bt_hci_log_t;
static const char s_hex_to_char_mapping[16] = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
};
bt_hci_log_t g_bt_hci_log_data_ctl = {0};
bt_hci_log_t g_bt_hci_log_adv_ctl = {0};
esp_err_t bt_hci_log_init(void)
{
uint8_t *g_bt_hci_log_data_buffer = NULL;
uint8_t *g_bt_hci_log_adv_buffer = NULL;
g_bt_hci_log_data_buffer = malloc(BT_HCI_LOG_DATA_BUF_SIZE);
if (!g_bt_hci_log_data_buffer) {
return ESP_ERR_NO_MEM;
}
g_bt_hci_log_adv_buffer = malloc(BT_HCI_LOG_ADV_BUF_SIZE);
if (!g_bt_hci_log_adv_buffer) {
if (g_bt_hci_log_data_buffer) {
free(g_bt_hci_log_data_buffer);
g_bt_hci_log_data_buffer = NULL;
}
return ESP_ERR_NO_MEM;
}
memset(g_bt_hci_log_data_buffer, 0, BT_HCI_LOG_DATA_BUF_SIZE);
memset(g_bt_hci_log_adv_buffer, 0, BT_HCI_LOG_ADV_BUF_SIZE);
memset(&g_bt_hci_log_data_ctl, 0, sizeof(bt_hci_log_t));
g_bt_hci_log_data_ctl.buf_size = BT_HCI_LOG_DATA_BUF_SIZE;
g_bt_hci_log_data_ctl.p_hci_log_buffer = g_bt_hci_log_data_buffer;
memset(&g_bt_hci_log_adv_ctl, 0, sizeof(bt_hci_log_t));
g_bt_hci_log_adv_ctl.buf_size = BT_HCI_LOG_ADV_BUF_SIZE;
g_bt_hci_log_adv_ctl.p_hci_log_buffer = g_bt_hci_log_adv_buffer;
osi_mutex_new((osi_mutex_t *)&g_bt_hci_log_data_ctl.mutex_lock);
osi_mutex_new((osi_mutex_t *)&g_bt_hci_log_adv_ctl.mutex_lock);
return ESP_OK;
}
esp_err_t bt_hci_log_deinit(void)
{
if (g_bt_hci_log_data_ctl.p_hci_log_buffer) {
free(g_bt_hci_log_data_ctl.p_hci_log_buffer);
g_bt_hci_log_data_ctl.p_hci_log_buffer = NULL;
}
if (g_bt_hci_log_adv_ctl.p_hci_log_buffer) {
free(g_bt_hci_log_adv_ctl.p_hci_log_buffer);
g_bt_hci_log_adv_ctl.p_hci_log_buffer = NULL;
}
osi_mutex_free((osi_mutex_t *)&g_bt_hci_log_data_ctl.mutex_lock);
osi_mutex_free((osi_mutex_t *)&g_bt_hci_log_adv_ctl.mutex_lock);
memset(&g_bt_hci_log_data_ctl, 0, sizeof(bt_hci_log_t));
memset(&g_bt_hci_log_adv_ctl, 0, sizeof(bt_hci_log_t));
return ESP_OK;
}
#if (BT_HCI_LOG_PRINT_TAG)
static char IRAM_ATTR *bt_data_type_to_str(uint8_t data_type)
{
char *tag = NULL;
switch (data_type)
{
case HCI_LOG_DATA_TYPE_COMMAND:
// hci cmd data
tag = "CMD";
break;
case HCI_LOG_DATA_TYPE_H2C_ACL:
// host to controller hci acl data
tag = "HAL";
break;
case HCI_LOG_DATA_TYPE_SCO:
// hci sco data
tag = "SCO";
break;
case HCI_LOG_DATA_TYPE_EVENT:
// hci event
tag = "EVT";
break;
case HCI_LOG_DATA_TYPE_ADV:
// controller adv report data
tag = "ADV";
break;
case HCI_LOG_DATA_TYPE_C2H_ACL:
// controller to host hci acl data
tag = "CAL";
break;
case HCI_LOG_DATA_TYPE_SELF_DEFINE:
// self-defining data
tag = "ST";
break;
default:
// unknown data type
tag = "UK";
break;
}
return tag;
}
#endif
void bt_hci_log_record_hex(bt_hci_log_t *p_hci_log_ctl, uint8_t *hex, uint8_t hex_len)
{
uint8_t hci_log_char;
uint8_t *g_hci_log_buffer;
g_hci_log_buffer = p_hci_log_ctl->p_hci_log_buffer;
while (hex_len--)
{
hci_log_char = ((*hex) >> 4);
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = s_hex_to_char_mapping [hci_log_char];
if (++ p_hci_log_ctl->log_record_in >= p_hci_log_ctl->buf_size) {
p_hci_log_ctl->log_record_in = 0;
}
if (p_hci_log_ctl->log_record_in == p_hci_log_ctl->log_record_out) {
p_hci_log_ctl->overflow = true;
}
hci_log_char = ((*hex) & 0x0f);
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = s_hex_to_char_mapping [hci_log_char];
if (++p_hci_log_ctl->log_record_in >= p_hci_log_ctl->buf_size) {
p_hci_log_ctl->log_record_in = 0;
}
if (p_hci_log_ctl->log_record_in == p_hci_log_ctl->log_record_out) {
p_hci_log_ctl->overflow = true;
}
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = ' ';
if (++ p_hci_log_ctl->log_record_in >= p_hci_log_ctl->buf_size) {
p_hci_log_ctl->log_record_in = 0;
}
if (p_hci_log_ctl->log_record_in == p_hci_log_ctl->log_record_out) {
p_hci_log_ctl->overflow = true;
}
++ hex;
}
}
void bt_hci_log_record_string(bt_hci_log_t *p_hci_log_ctl, char *string)
{
uint8_t *g_hci_log_buffer;
g_hci_log_buffer = p_hci_log_ctl->p_hci_log_buffer;
while (*string != '\0') {
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = *string;
++string;
if (++p_hci_log_ctl->log_record_in >= p_hci_log_ctl->buf_size) {
p_hci_log_ctl->log_record_in = 0;
}
if (p_hci_log_ctl->log_record_in == p_hci_log_ctl->log_record_out) {
p_hci_log_ctl->overflow = true;
}
}
}
esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *str, uint8_t data_type, uint8_t *data, uint8_t data_len)
{
osi_mutex_t mutex_lock;
uint8_t *g_hci_log_buffer;
if (!p_hci_log_ctl->p_hci_log_buffer) {
return ESP_FAIL;
}
g_hci_log_buffer = p_hci_log_ctl->p_hci_log_buffer;
if (!g_hci_log_buffer) {
return ESP_FAIL;
}
mutex_lock = p_hci_log_ctl->mutex_lock;
osi_mutex_lock(&mutex_lock, OSI_MUTEX_MAX_TIMEOUT);
#if (1)
// Add hci data index
bt_hci_log_record_hex(p_hci_log_ctl, &p_hci_log_ctl->index, 1);
#endif
#if (BT_HCI_LOG_PRINT_TAG)
char *tag = NULL;
tag = bt_data_type_to_str(data_type);
if (tag) {
bt_hci_log_record_string(p_hci_log_ctl, tag);
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = ':';
if (++p_hci_log_ctl->log_record_in >= p_hci_log_ctl->buf_size) {
p_hci_log_ctl->log_record_in = 0;
}
if (p_hci_log_ctl->log_record_in == p_hci_log_ctl->log_record_out) {
p_hci_log_ctl->overflow = true;
}
}
#endif
if (str) {
bt_hci_log_record_string(p_hci_log_ctl, str);
}
bt_hci_log_record_hex(p_hci_log_ctl, data, data_len);
g_hci_log_buffer[p_hci_log_ctl->log_record_in] = '\n';
if (++p_hci_log_ctl->log_record_in >= p_hci_log_ctl->buf_size) {
p_hci_log_ctl->log_record_in = 0;
}
if (p_hci_log_ctl->log_record_in == p_hci_log_ctl->log_record_out) {
p_hci_log_ctl->overflow = true;
}
p_hci_log_ctl->index ++;
osi_mutex_unlock(&mutex_lock);
return ESP_OK;
}
void bt_hci_log_data_show(bt_hci_log_t *p_hci_log_ctl)
{
volatile uint64_t log_record_in,log_record_out;
uint8_t *g_hci_log_buffer;
if (!p_hci_log_ctl->p_hci_log_buffer) {
return;
}
osi_mutex_t mutex_lock = p_hci_log_ctl->mutex_lock;
osi_mutex_lock(&mutex_lock, OSI_MUTEX_MAX_TIMEOUT);
log_record_in = p_hci_log_ctl->log_record_in;
log_record_out = p_hci_log_ctl->log_record_out;
g_hci_log_buffer = p_hci_log_ctl->p_hci_log_buffer;
if (p_hci_log_ctl->overflow) {
log_record_out = log_record_in;
printf("%c",g_hci_log_buffer[log_record_out]);
if (++log_record_out >= p_hci_log_ctl->buf_size) {
log_record_out = 0;
}
}
while (log_record_in != log_record_out)
{
printf("%c",g_hci_log_buffer[log_record_out]);
if (++log_record_out >= p_hci_log_ctl->buf_size) {
log_record_out = 0;
}
}
p_hci_log_ctl->log_record_out = log_record_out;
p_hci_log_ctl->overflow = false;
osi_mutex_unlock(&mutex_lock);
}
esp_err_t IRAM_ATTR bt_hci_log_record_hci_data(uint8_t data_type, uint8_t *data, uint8_t data_len)
{
return bt_hci_log_record_data(&g_bt_hci_log_data_ctl, NULL, data_type, data, data_len);
}
esp_err_t IRAM_ATTR bt_hci_log_record_custom_data(char *string, uint8_t *data, uint8_t data_len)
{
return bt_hci_log_record_data(&g_bt_hci_log_data_ctl, string, HCI_LOG_DATA_TYPE_SELF_DEFINE, data, data_len);
}
esp_err_t IRAM_ATTR bt_hci_log_record_hci_adv(uint8_t data_type, uint8_t *data, uint8_t data_len)
{
return bt_hci_log_record_data(&g_bt_hci_log_adv_ctl, NULL, data_type, data, data_len);
}
void bt_hci_log_hci_data_show(void)
{
bt_hci_log_data_show(&g_bt_hci_log_data_ctl);
}
void bt_hci_log_hci_adv_show(void)
{
bt_hci_log_data_show(&g_bt_hci_log_adv_ctl);
}
#endif // (BT_HCI_LOG_INCLUDED == TRUE)

View File

@ -0,0 +1,108 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __ESP_BT_HCI_LOG_H__
#define __ESP_BT_HCI_LOG_H__
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
#define HCI_LOG_DATA_TYPE_COMMAND (1)
#define HCI_LOG_DATA_TYPE_H2C_ACL (2)
#define HCI_LOG_DATA_TYPE_SCO (3)
#define HCI_LOG_DATA_TYPE_EVENT (4)
#define HCI_LOG_DATA_TYPE_ADV (5)
#define HCI_LOG_DATA_TYPE_SELF_DEFINE (6)
#define HCI_LOG_DATA_TYPE_C2H_ACL (7)
/**
*
* @brief This function is called to record self-defining data
* @param string : data identification
* @param data : data
* @param data_len : the length of data
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t bt_hci_log_record_custom_data(char *string, uint8_t *data, uint8_t data_len);
/**
*
* @brief This function is called to print all hci data record
*
*
* @return None
*
*/
void bt_hci_log_hci_data_show(void);
/**
*
* @brief This function is called to print all adv report
*
*
* @return None
*
*/
void bt_hci_log_hci_adv_show(void);
/**
*
* @brief This function is called to init hci log env
*
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t bt_hci_log_init(void);
/**
*
* @brief This function is called to deinit hci debug mode,
* and can only be called internally by Bluetooth
*
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t bt_hci_log_deinit(void);
/**
*
* @brief This function is called to record hci data without adv report event,
* and can only be called internally by Bluetooth
*
* @param str : data type, define in bt_data_type_to_str()
* @param data : data
* @param data_len : the length of data
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t bt_hci_log_record_hci_data(uint8_t data_type, uint8_t *data, uint8_t data_len);
/**
*
* @brief This function is called to record hci adv report event only
* and can only be called internally by Bluetooth
*
* @param str : data type, define in bt_data_type_to_str()
* @param data : data
* @param data_len : the length of data
* @return ESP_OK - success, other - failed
*
*/
esp_err_t bt_hci_log_record_hci_adv(uint8_t data_type, uint8_t *data, uint8_t data_len);
#ifdef __cplusplus
}
#endif
#endif /* _ESP_BT_HCI_LOG_H__ */

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
*/
@ -64,6 +64,24 @@
#define BT_BLE_DYNAMIC_ENV_MEMORY FALSE
#endif
#if UC_BT_HCI_LOG_DEBUG_EN
#define BT_HCI_LOG_INCLUDED UC_BT_HCI_LOG_DEBUG_EN
#else
#define BT_HCI_LOG_INCLUDED FALSE
#endif
#if UC_BT_HCI_LOG_DATA_BUFFER_SIZE
#define HCI_LOG_DATA_BUFFER_SIZE UC_BT_HCI_LOG_DATA_BUFFER_SIZE
#else
#define HCI_BUFFER_SIZE (5)
#endif
#if UC_BT_HCI_ADV_BUFFER_SIZE
#define HCI_LOG_ADV_BUFFER_SIZE UC_BT_HCI_LOG_ADV_BUFFER_SIZE
#else
#define HCI_LOG_ADV_BUFFER_SIZE (5)
#endif
/* OS Configuration from User config (eg: sdkconfig) */
#define TASK_PINNED_TO_CORE UC_TASK_PINNED_TO_CORE
#define BT_TASK_MAX_PRIORITIES configMAX_PRIORITIES

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
*/
@ -29,6 +29,12 @@
#define UC_BT_STACK_NO_LOG FALSE
#endif
#ifdef CONFIG_BT_CONTROLLER_ENABLED
#define UC_BT_CONTROLLER_INCLUDED TRUE
#else
#define UC_BT_CONTROLLER_INCLUDED FALSE
#endif
/**********************************************************
* Thread/Task reference
**********************************************************/
@ -44,6 +50,15 @@
#define UC_BTC_TASK_STACK_SIZE 4096
#endif
/**********************************************************
* Alarm reference
**********************************************************/
#ifdef CONFIG_BT_ALARM_MAX_NUM
#define UC_ALARM_MAX_NUM CONFIG_BT_ALARM_MAX_NUM
#else
#define UC_ALARM_MAX_NUM 50
#endif
/**********************************************************
* Trace reference
**********************************************************/
@ -92,4 +107,22 @@
#define UC_BT_BLUEDROID_MEM_DEBUG FALSE
#endif
#ifdef CONFIG_BT_HCI_LOG_DEBUG_EN
#define UC_BT_HCI_LOG_DEBUG_EN TRUE
#else
#define UC_BT_HCI_LOG_DEBUG_EN 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
#define UC_BT_HCI_LOG_DATA_BUFFER_SIZE (5)
#endif
#ifdef CONFIG_BT_HCI_LOG_ADV_BUFFER_SIZE
#define UC_BT_HCI_LOG_ADV_BUFFER_SIZE CONFIG_BT_HCI_LOG_ADV_BUFFER_SIZE
#else
#define UC_BT_HCI_LOG_ADV_BUFFER_SIZE (5)
#endif
#endif /* __BT_USER_CONFIG_H__ */

View File

@ -264,13 +264,13 @@ bool config_update_newest_section(config_t *config, const char *section)
return false;
}
section_t *first_sec = list_node(first_node);
if (!strcmp(first_sec->name, section)) {
if (strcmp(first_sec->name, section) == 0) {
return true;
}
for (const list_node_t *node = list_begin(config->sections); node != list_end(config->sections); node = list_next(node)) {
section_t *sec = list_node(node);
if (!strcmp(sec->name, section)) {
if (strcmp(sec->name, section) == 0) {
list_delete(config->sections, sec);
list_prepend(config->sections, sec);
return true;

View File

@ -21,6 +21,7 @@
#include <stdint.h>
#include "esp_timer.h"
#include "bt_user_config.h"
typedef struct alarm_t osi_alarm_t;
typedef uint64_t period_ms_t;
@ -33,7 +34,7 @@ typedef enum {
OSI_ALARM_ERR_INVALID_STATE = -3,
} osi_alarm_err_t;
#define ALARM_CBS_NUM 50
#define ALARM_CBS_NUM UC_ALARM_MAX_NUM
#define ALARM_ID_BASE 1000
int osi_alarm_create_mux(void);

View File

@ -172,7 +172,7 @@ config BTDM_CTRL_PINNED_TO_CORE
choice BTDM_CTRL_HCI_MODE_CHOICE
prompt "HCI mode"
help
Speicify HCI mode as VHCI or UART(H4)
Specify HCI mode as VHCI or UART(H4)
config BTDM_CTRL_HCI_MODE_VHCI
bool "VHCI"
@ -356,7 +356,7 @@ config BTDM_SCAN_DUPL_CACHE_SIZE
default 100
help
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
When the maximum amount of device in the filter is reached, the oldest device will be refreshed.
config BTDM_SCAN_DUPL_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
@ -398,6 +398,14 @@ config BTDM_CTRL_FULL_SCAN_SUPPORTED
The full scan function is mainly used to provide BLE scan performance.
This is required for scenes with high scan performance requirements, such as BLE Mesh scenes.
config BTDM_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
bool "Disable active scan backoff"
default n
help
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.
config BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
bool "BLE adv report flow control supported"
depends on (BTDM_CTRL_MODE_BTDM || BTDM_CTRL_MODE_BLE_ONLY)

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -16,8 +16,8 @@
#include "freertos/task.h"
#include "freertos/queue.h"
#include "freertos/semphr.h"
#include "freertos/xtensa_api.h"
#include "freertos/portmacro.h"
#include "xtensa_api.h" // Replace with interrupt allocator API (IDF-3891)
#include "xtensa/core-macros.h"
#include "esp_types.h"
#include "esp_mac.h"
@ -35,7 +35,7 @@
#include "soc/rtc.h"
#include "soc/soc_memory_layout.h"
#include "soc/dport_reg.h"
#include "esp_coexist_internal.h"
#include "private/esp_coexist_internal.h"
#include "esp_timer.h"
#if !CONFIG_FREERTOS_UNICORE
#include "esp_ipc.h"
@ -89,7 +89,7 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010004
#define OSI_VERSION 0x00010005
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* Types definition
@ -176,6 +176,7 @@ struct osi_funcs_t {
void (*_interrupt_l3_restore)(void);
void *(* _customer_queue_create)(uint32_t queue_len, uint32_t item_size);
int (* _coex_version_get)(unsigned int *major, unsigned int *minor, unsigned int *patch);
void (* _patch_apply)(void);
uint32_t _magic;
};
@ -232,16 +233,16 @@ extern uint32_t _data_end_btdm_rom;
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _nimble_bss_start;
extern uint32_t _nimble_bss_end;
extern uint32_t _btdm_bss_start;
extern uint32_t _btdm_bss_end;
extern uint32_t _bt_controller_bss_start;
extern uint32_t _bt_controller_bss_end;
extern uint32_t _bt_data_start;
extern uint32_t _bt_data_end;
extern uint32_t _nimble_data_start;
extern uint32_t _nimble_data_end;
extern uint32_t _btdm_data_start;
extern uint32_t _btdm_data_end;
extern uint32_t _bt_controller_data_start;
extern uint32_t _bt_controller_data_end;
extern void config_bt_funcs_reset(void);
extern void config_ble_funcs_reset(void);
extern void config_btdm_funcs_reset(void);
/* Local Function Declare
*********************************************************************
@ -315,6 +316,7 @@ static void *customer_queue_create_hlevel_wrapper(uint32_t queue_len, uint32_t i
static void interrupt_l3_disable(void);
static void interrupt_l3_restore(void);
static void bt_controller_deinit_internal(void);
static void patch_apply(void);
/* Local variable definition
***************************************************************************
@ -402,6 +404,7 @@ static const struct osi_funcs_t osi_funcs_ro = {
._customer_queue_create = NULL,
#endif /* CONFIG_BTDM_CTRL_HLI */
._coex_version_get = coex_version_get_wrapper,
._patch_apply = patch_apply,
._magic = OSI_MAGIC_VALUE,
};
@ -753,7 +756,7 @@ static int32_t queue_send_hlevel_wrapper(void *queue, void *item, uint32_t block
* @param item The message which will be send
* @param hptw need do task yield or not
* @return send success or not
* There is an issue here: When the queue is full, it may reture true but it send fail to the queue, sometimes.
* There is an issue here: When the queue is full, it may return true but it send fail to the queue, sometimes.
* But in Bluetooth controller's isr, We don't care about the return value.
* It only required tp send success when the queue is empty all the time.
* So, this function meets the requirement.
@ -1197,23 +1200,12 @@ static int coex_register_wifi_channel_change_callback_wrapper(void *cb)
static int coex_version_get_wrapper(unsigned int *major, unsigned int *minor, unsigned int *patch)
{
#if CONFIG_SW_COEXIST_ENABLE
const char *ver_str = esp_coex_version_get();
if (ver_str != NULL) {
unsigned int _major = 0, _minor = 0, _patch = 0;
if (sscanf(ver_str, "%u.%u.%u", &_major, &_minor, &_patch) != 3) {
return -1;
}
if (major != NULL) {
*major = _major;
}
if (minor != NULL) {
*minor = _minor;
}
if (patch != NULL) {
*patch = _patch;
}
return 0;
}
coex_version_t version;
ESP_ERROR_CHECK(coex_version_get_value(&version));
*major = (unsigned int)version.major;
*minor = (unsigned int)version.minor;
*patch = (unsigned int)version.patch;
return 0;
#endif
return -1;
}
@ -1285,7 +1277,45 @@ static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end)
return ret;
}
esp_err_t esp_bt_controller_mem_release(esp_bt_mode_t mode)
typedef struct {
intptr_t start;
intptr_t end;
const char* name;
} bt_area_t;
static esp_err_t esp_bt_mem_release_area(const bt_area_t *area)
{
esp_err_t ret = ESP_OK;
intptr_t mem_start = area->start;
intptr_t mem_end = area->end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release %s [0x%08x] - [0x%08x], len %d", area->name, mem_start, mem_end, mem_end - mem_start);
ret = try_heap_caps_add_region(mem_start, mem_end);
}
return ret;
}
static esp_err_t esp_bt_mem_release_areas(const bt_area_t *area1, const bt_area_t *area2)
{
esp_err_t ret = ESP_OK;
if (area1->end == area2->start) {
bt_area_t merged_area = {
.start = area1->start,
.end = area2->end,
.name = area1->name
};
ret = esp_bt_mem_release_area(&merged_area);
} else {
esp_bt_mem_release_area(area1);
ret = esp_bt_mem_release_area(area2);
}
return ret;
}
static esp_err_t esp_bt_controller_rom_mem_release(esp_bt_mode_t mode)
{
bool update = true;
intptr_t mem_start=(intptr_t) NULL, mem_end=(intptr_t) NULL;
@ -1336,61 +1366,86 @@ esp_err_t esp_bt_controller_mem_release(esp_bt_mode_t mode)
}
}
if (mode == ESP_BT_MODE_BTDM) {
mem_start = (intptr_t)&_btdm_bss_start;
mem_end = (intptr_t)&_btdm_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release BTDM BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_btdm_data_start;
mem_end = (intptr_t)&_btdm_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release BTDM Data [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
return ESP_OK;
}
esp_err_t esp_bt_controller_mem_release(esp_bt_mode_t mode)
{
esp_err_t ret = ESP_OK;
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
if (mode == ESP_BT_MODE_BTDM) {
bt_area_t cont_bss = {
.start = (intptr_t)&_bt_controller_bss_start,
.end = (intptr_t)&_bt_controller_bss_end,
.name = "BT Controller BSS",
};
bt_area_t cont_data = {
.start = (intptr_t)&_bt_controller_data_start,
.end = (intptr_t)&_bt_controller_data_end,
.name = "BT Controller Data"
};
ret = esp_bt_mem_release_areas(&cont_data, &cont_bss);
}
if (ret == ESP_OK) {
ret = esp_bt_controller_rom_mem_release(mode);
}
return ret;
}
esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
int ret;
intptr_t mem_start, mem_end;
esp_err_t ret = ESP_OK;
ret = esp_bt_controller_mem_release(mode);
if (ret != ESP_OK) {
return ret;
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
bt_area_t bss = {
.start = (intptr_t)&_bt_bss_start,
.end = (intptr_t)&_bt_bss_end,
.name = "BT BSS",
};
bt_area_t cont_bss = {
.start = (intptr_t)&_bt_controller_bss_start,
.end = (intptr_t)&_bt_controller_bss_end,
.name = "BT Controller BSS",
};
bt_area_t data = {
.start = (intptr_t)&_bt_data_start,
.end = (intptr_t)&_bt_data_end,
.name = "BT Data",
};
bt_area_t cont_data = {
.start = (intptr_t)&_bt_controller_data_start,
.end = (intptr_t)&_bt_controller_data_end,
.name = "BT Controller Data"
};
if (mode == ESP_BT_MODE_BTDM) {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_bt_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release BT BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release BT Data [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
/* Start by freeing Bluetooth BSS section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&bss, &cont_bss);
}
mem_start = (intptr_t)&_nimble_bss_start;
mem_end = (intptr_t)&_nimble_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release NimBLE BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_nimble_data_start;
mem_end = (intptr_t)&_nimble_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release NimBLE Data [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
/* Do the same thing with the Bluetooth data section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&data, &cont_data);
}
}
return ESP_OK;
/* free data and BSS section for Bluetooth controller ROM code */
if (ret == ESP_OK) {
ret = esp_bt_controller_rom_mem_release(mode);
}
return ret;
}
#if CONFIG_BTDM_CTRL_HLI
@ -1654,6 +1709,18 @@ static void bt_shutdown(void)
return;
}
static void patch_apply(void)
{
config_btdm_funcs_reset();
#ifndef CONFIG_BTDM_CTRL_MODE_BLE_ONLY
config_bt_funcs_reset();
#endif
#ifndef CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY
config_ble_funcs_reset();
#endif
}
esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
{
@ -1687,7 +1754,7 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
sdk_config_set_bt_pll_track_enable(true);
// inititalize bluetooth baseband
// initialize bluetooth baseband
btdm_check_and_init_bb();
ret = btdm_controller_enable(mode);
@ -1850,7 +1917,7 @@ esp_err_t esp_ble_scan_dupilcate_list_flush(void)
/**
* This function re-write controller's function,
* As coredump can not show paramerters in function which is in a .a file.
* As coredump can not show parameters in function which is in a .a file.
*
* After coredump fixing this issue, just delete this function.
*/

View File

@ -8,7 +8,7 @@
#include <xtensa/coreasm.h>
#include <xtensa/corebits.h>
#include <xtensa/config/system.h>
#include "freertos/xtensa_context.h"
#include "xtensa_context.h"
#include "sdkconfig.h"
#include "soc/soc.h"

View File

@ -147,7 +147,7 @@ if BT_LE_EXT_ADV
Enable this option to start periodic advertisement.
config BT_LE_PERIODIC_ADV_SYNC_TRANSFER
bool "Enable Transer Sync Events"
bool "Enable Transfer Sync Events"
depends on BT_LE_ENABLE_PERIODIC_ADV
default y
help
@ -253,7 +253,7 @@ config BT_LE_CONTROLLER_TASK_STACK_SIZE
help
This configures stack size of NimBLE controller task
config BT_LE_CONTROLLER_LOG_ENABLED
menuconfig BT_LE_CONTROLLER_LOG_ENABLED
bool "Controller log enable"
default n
help
@ -264,21 +264,42 @@ config BT_LE_CONTROLLER_LOG_CTRL_ENABLED
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable controller log module
Enable controller log module
config BT_LE_CONTROLLER_LOG_HCI_ENABLED
bool "enable HCI log module"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable hci log module
Enable hci log module
config BT_LE_CONTROLLER_LOG_DUMP_ONLY
bool "Controller log dump mode only"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Only operate in dump mode
Only operate in dump mode
config BT_LE_LOG_CTRL_BUF1_SIZE
int "size of the first BLE controller LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 4096
help
Configure the size of the first BLE controller LOG buffer.
config BT_LE_LOG_CTRL_BUF2_SIZE
int "size of the second BLE controller LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 1024
help
Configure the size of the second BLE controller LOG buffer.
config BT_LE_LOG_HCI_BUF_SIZE
int "size of the BLE HCI LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 4096
help
Configure the size of the BLE HCI LOG buffer.
config BT_LE_LL_RESOLV_LIST_SIZE
int "BLE LL Resolving list size"
@ -400,6 +421,26 @@ config BT_LE_SLEEP_ENABLE
help
Enable BLE sleep
choice BT_LE_LP_CLK_SRC
prompt "BLE low power clock source"
default BT_LE_LP_CLK_SRC_MAIN_XTAL
config BT_LE_LP_CLK_SRC_MAIN_XTAL
bool "Use main XTAL as RTC clock source"
help
User main XTAL as RTC clock source.
This option is recommended if external 32.768k XTAL is not available.
Using the external 32.768 kHz XTAL will have lower current consumption
in light sleep compared to using the main XTAL.
config BT_LE_LP_CLK_SRC_DEFAULT
bool "Use system RTC slow clock source"
help
Use the same slow clock source as system RTC
Using any clock source other than external 32.768 kHz XTAL at pin0 supports only
legacy ADV and SCAN due to low clock accuracy.
endchoice
config BT_LE_USE_ESP_TIMER
bool "Use Esp Timer for callout"
depends on !BT_NIMBLE_ENABLED
@ -409,6 +450,7 @@ config BT_LE_USE_ESP_TIMER
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
bool "BLE adv report flow control supported"
depends on BT_LE_ROLE_OBSERVER_ENABLE
default y
help
The function is mainly used to enable flow control for advertising reports. When it is enabled,
@ -443,3 +485,45 @@ config BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD
config BT_LE_RELEASE_IRAM_SUPPORTED
bool
default y
config BT_LE_TX_CCA_ENABLED
bool "Enable TX CCA feature"
default n
help
Enable CCA feature to cancel sending the packet if the signal power is stronger than CCA threshold.
config BT_LE_CCA_RSSI_THRESH
int "CCA RSSI threshold value"
depends on BT_LE_TX_CCA_ENABLED
range 20 100
default 20
help
Power threshold of CCA in unit of -1 dBm.
config BT_LE_ROLE_CENTROL_ENABLE
bool "Enable BLE Centrol role function"
depends on !BT_NIMBLE_ENABLED
default y
help
Enable centrol role function.
config BT_LE_ROLE_PERIPHERAL_ENABLE
bool "Enable BLE Peripheral role function"
depends on !BT_NIMBLE_ENABLED
default y
help
Enable Peripheral role function.
config BT_LE_ROLE_BROADCASTER_ENABLE
bool "Enable BLE Broadcaster role function"
depends on !BT_NIMBLE_ENABLED
default y
help
Enable broadcaster role function.
config BT_LE_ROLE_OBSERVER_ENABLE
bool "Enable BLE Observer role function"
depends on !BT_NIMBLE_ENABLED
default y
help
Enable observer role function.

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -24,7 +24,7 @@
#endif
#if CONFIG_SW_COEXIST_ENABLE
#include "esp_coexist_internal.h"
#include "private/esp_coexist_internal.h"
#endif
#include "nimble/nimble_npl_os.h"
@ -54,12 +54,14 @@
#include "freertos/task.h"
#include "esp_private/periph_ctrl.h"
#include "esp_private/esp_clk.h"
#include "esp_sleep.h"
#include "soc/syscon_reg.h"
#include "soc/dport_access.h"
#include "hal/efuse_ll.h"
#include "soc/rtc.h"
/* Macro definition
************************************************************************
*/
@ -78,6 +80,10 @@
#define ACL_DATA_MBUF_LEADINGSPCAE 4
#endif // CONFIG_BT_BLUEDROID_ENABLED
typedef enum ble_rtc_slow_clk_src {
BT_SLOW_CLK_SRC_MAIN_XTAL,
BT_SLOW_CLK_SRC_32K_XTAL_ON_PIN0,
} ble_rtc_slow_clk_src_t;
/* Types definition
************************************************************************
@ -127,6 +133,7 @@ extern int ble_controller_init(esp_bt_controller_config_t *cfg);
extern int ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
extern int ble_log_deinit_async(void);
extern void ble_log_async_output_dump_all(bool output);
extern void esp_panic_handler_reconfigure_wdts(uint32_t timeout_ms);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_controller_deinit(void);
extern int ble_controller_enable(uint8_t mode);
@ -156,15 +163,22 @@ extern int ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t hand
extern int ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
extern int ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
extern void bt_track_pll_cap(void);
extern char *ble_controller_get_compile_version(void);
extern const char *r_ble_controller_get_rom_compile_version(void);
#if CONFIG_BT_RELEASE_IRAM
extern uint32_t _iram_bt_text_start;
extern uint32_t _bss_bt_end;
#else
extern uint32_t _bt_bss_end;
extern uint32_t _bt_controller_data_start;
#endif
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _bt_controller_bss_start;
extern uint32_t _bt_controller_bss_end;
extern uint32_t _bt_data_start;
extern uint32_t _bt_data_end;
extern uint32_t _bt_controller_data_start;
extern uint32_t _bt_controller_data_end;
/* Local Function Declaration
*********************************************************************
*/
@ -201,7 +215,7 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b
static DRAM_ATTR esp_bt_controller_status_t ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
const static uint32_t log_bufs_size[] = {2048, 1024, 1024};
const static uint32_t log_bufs_size[] = {CONFIG_BT_LE_LOG_CTRL_BUF1_SIZE, CONFIG_BT_LE_LOG_HCI_BUF_SIZE, CONFIG_BT_LE_LOG_CTRL_BUF2_SIZE};
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* This variable tells if BLE is running */
@ -486,7 +500,7 @@ IRAM_ATTR void controller_wakeup_cb(void *arg)
s_ble_active = true;
}
esp_err_t controller_sleep_init(void)
esp_err_t controller_sleep_init(ble_rtc_slow_clk_src_t slow_clk_src)
{
esp_err_t rc = 0;
#ifdef CONFIG_BT_LE_SLEEP_ENABLE
@ -494,7 +508,11 @@ esp_err_t controller_sleep_init(void)
r_ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0, 500 + BLE_RTC_DELAY_US);
#ifdef CONFIG_PM_ENABLE
esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON);
if (slow_clk_src == BT_SLOW_CLK_SRC_MAIN_XTAL) {
esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON);
} else {
esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_AUTO);
}
#endif // CONFIG_PM_ENABLE
#endif // CONFIG_BT_LE_SLEEP_ENABLE
@ -545,37 +563,74 @@ void controller_sleep_deinit(void)
#endif //CONFIG_PM_ENABLE
}
void ble_rtc_clk_init(void)
static void esp_bt_rtc_slow_clk_select(ble_rtc_slow_clk_src_t slow_clk_src)
{
// modem_clkrst_reg
// LP_TIMER_SEL_XTAL32K -> 0
// LP_TIMER_SEL_XTAL -> 1
// LP_TIMER_SEL_8M -> 0
// LP_TIMER_SEL_RTC_SLOW -> 0
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_XTAL32K_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 1, MODEM_CLKRST_LP_TIMER_SEL_XTAL_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_8M_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_RTC_SLOW_S);
/* Select slow clock source for BT momdule */
switch (slow_clk_src) {
case BT_SLOW_CLK_SRC_MAIN_XTAL:
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "Using main XTAL as clock source");
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_XTAL32K_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 1, MODEM_CLKRST_LP_TIMER_SEL_XTAL_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_8M_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_RTC_SLOW_S);
#ifdef CONFIG_XTAL_FREQ_26
// LP_TIMER_CLK_DIV_NUM -> 130
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM, 129, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM, 129, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM_S);
#else
// LP_TIMER_CLK_DIV_NUM -> 250
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM, 249, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM, 249, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM_S);
#endif // CONFIG_XTAL_FREQ_26
// MODEM_CLKRST_ETM_CLK_ACTIVE -> 1
// MODEM_CLKRST_ETM_CLK_SEL -> 0
break;
case BT_SLOW_CLK_SRC_32K_XTAL_ON_PIN0:
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "Using external 32.768 kHz XTAL as clock source");
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 1, MODEM_CLKRST_LP_TIMER_SEL_XTAL32K_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_XTAL_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_8M_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, 1, 0, MODEM_CLKRST_LP_TIMER_SEL_RTC_SLOW_S);
SET_PERI_REG_BITS(MODEM_CLKRST_MODEM_LP_TIMER_CONF_REG, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM, 0, MODEM_CLKRST_LP_TIMER_CLK_DIV_NUM_S);
break;
default:
ESP_LOGE(NIMBLE_PORT_LOG_TAG, "Unsupported slow clock");
assert(0);
break;
}
SET_PERI_REG_BITS(MODEM_CLKRST_ETM_CLK_CONF_REG, 1, 1, MODEM_CLKRST_ETM_CLK_ACTIVE_S);
SET_PERI_REG_BITS(MODEM_CLKRST_ETM_CLK_CONF_REG, 1, 0, MODEM_CLKRST_ETM_CLK_SEL_S);
}
static ble_rtc_slow_clk_src_t ble_rtc_clk_init(esp_bt_controller_config_t *cfg)
{
ble_rtc_slow_clk_src_t slow_clk_src;
#if CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL
#ifdef CONFIG_XTAL_FREQ_26
cfg->rtc_freq = 40000;
#else
cfg->rtc_freq = 32000;
#endif // CONFIG_XTAL_FREQ_26
slow_clk_src = BT_SLOW_CLK_SRC_MAIN_XTAL;
#else
if (rtc_clk_slow_src_get() == SOC_RTC_SLOW_CLK_SRC_OSC_SLOW) {
cfg->rtc_freq = 32768;
slow_clk_src = BT_SLOW_CLK_SRC_32K_XTAL_ON_PIN0;
} else {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock");
#ifdef CONFIG_XTAL_FREQ_26
cfg->rtc_freq = 40000;
#else
cfg->rtc_freq = 32000;
#endif // CONFIG_XTAL_FREQ_26
slow_clk_src = BT_SLOW_CLK_SRC_MAIN_XTAL;
}
#endif /* CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL */
esp_bt_rtc_slow_clk_select(slow_clk_src);
return slow_clk_src;
}
esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
{
esp_err_t ret = ESP_OK;
ble_npl_count_info_t npl_info;
ble_rtc_slow_clk_src_t rtc_clk_src;
memset(&npl_info, 0, sizeof(ble_npl_count_info_t));
if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
@ -587,7 +642,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_ERR_INVALID_ARG;
}
ble_rtc_clk_init();
rtc_clk_src = ble_rtc_clk_init(cfg);
ret = esp_register_ext_funcs(&ext_funcs_ro);
if (ret != ESP_OK) {
@ -595,6 +650,15 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ret;
}
#if DEFAULT_BT_LE_50_FEATURE_SUPPORT || DEFAULT_BT_LE_ROLE_CENTROL || DEFAULT_BT_LE_ROLE_OBSERVER
extern int esp_ble_rom_func_ptr_init_all(void);
esp_ble_rom_func_ptr_init_all();
#else
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "Init only legacy adv and slave function");
extern int esp_ble_rom_func_ptr_init_legacy_adv_and_slave(void);
esp_ble_rom_func_ptr_init_legacy_adv_and_slave();
#endif
/* Initialize the function pointers for OS porting */
npl_freertos_funcs_init();
struct npl_funcs_t *p_npl_funcs = npl_freertos_funcs_get();
@ -643,6 +707,14 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
#if CONFIG_SW_COEXIST_ENABLE
coex_init();
#endif
ret = ble_controller_init(cfg);
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_init failed %d", ret);
goto modem_deint;
}
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "ble controller commit:[%s]", ble_controller_get_compile_version());
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "ble rom commit:[%s]", r_ble_controller_get_rom_compile_version());
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
interface_func_t bt_controller_log_interface;
@ -661,17 +733,11 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
#endif // CONFIG_BT_CONTROLLER_LOG_DUMP
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_log_init failed %d", ret);
goto modem_deint;
goto controller_init_err;
}
#endif // CONFIG_BT_CONTROLLER_LOG_ENABLED
ret = ble_controller_init(cfg);
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_init failed %d", ret);
goto modem_deint;
}
ret = controller_sleep_init();
ret = controller_sleep_init(rtc_clk_src);
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "controller_sleep_init failed %d", ret);
goto free_controller;
@ -691,11 +757,12 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_OK;
free_controller:
controller_sleep_deinit();
ble_controller_deinit();
modem_deint:
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
controller_init_err:
ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_controller_deinit();
modem_deint:
esp_phy_modem_deinit();
periph_module_disable(PERIPH_BT_MODULE);
#if CONFIG_BT_NIMBLE_ENABLED
@ -839,9 +906,48 @@ static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end)
return ret;
}
typedef struct {
intptr_t start;
intptr_t end;
const char* name;
} bt_area_t;
static esp_err_t esp_bt_mem_release_area(const bt_area_t *area)
{
esp_err_t ret = ESP_OK;
intptr_t mem_start = area->start;
intptr_t mem_end = area->end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release %s [0x%08x] - [0x%08x], len %d", area->name, mem_start, mem_end, mem_end - mem_start);
ret = try_heap_caps_add_region(mem_start, mem_end);
}
return ret;
}
#ifndef CONFIG_BT_RELEASE_IRAM
static esp_err_t esp_bt_mem_release_areas(const bt_area_t *area1, const bt_area_t *area2)
{
esp_err_t ret = ESP_OK;
if(area1->end == area2->start) {
bt_area_t merged_area = {
.start = area1->start,
.end = area2->end,
.name = area1->name
};
ret = esp_bt_mem_release_area(&merged_area);
} else {
esp_bt_mem_release_area(area1);
ret = esp_bt_mem_release_area(area2);
}
return ret;
}
#endif
esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
intptr_t mem_start, mem_end;
esp_err_t ret = ESP_OK;
#if CONFIG_BT_RELEASE_IRAM && CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT
/* Release Bluetooth text section and merge Bluetooth data, bss & text into a large free heap
@ -850,26 +956,58 @@ esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
* memory into 3 different regions (IRAM, BLE-IRAM, DRAM). So `ESP_SYSTEM_PMP_IDRAM_SPLIT` needs
* to be disabled.
*/
ESP_LOGE(NIMBLE_PORT_LOG_TAG, "`ESP_SYSTEM_PMP_IDRAM_SPLIT` should be disabled!");
assert(0);
#error "ESP_SYSTEM_PMP_IDRAM_SPLIT should be disabled to allow BT to be released"
#endif // CONFIG_BT_RELEASE_IRAM && CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT
if (mode & ESP_BT_MODE_BLE) {
#if CONFIG_BT_RELEASE_IRAM
mem_start = (intptr_t)MAP_IRAM_TO_DRAM((intptr_t)&_iram_bt_text_start);
mem_end = (intptr_t)&_bss_bt_end;
#else
mem_start = (intptr_t)&_bt_controller_data_start;
mem_end = (intptr_t)&_bt_bss_end;
#endif // CONFIG_BT_RELEASE_IRAM
if (mem_start != mem_end) {
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "Release BLE [0x%08x] - [0x%08x], len %d", mem_start,
mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
return ESP_OK;
if ((mode & ESP_BT_MODE_BLE) == 0) {
return ret;
}
#if CONFIG_BT_RELEASE_IRAM
bt_area_t merged_region = {
.start = (intptr_t)MAP_IRAM_TO_DRAM((intptr_t)&_iram_bt_text_start),
.end = (intptr_t)&_bss_bt_end,
.name = "BT Text, BSS and Data"
};
ret = esp_bt_mem_release_area(&merged_region);
#else
bt_area_t bss = {
.start = (intptr_t)&_bt_bss_start,
.end = (intptr_t)&_bt_bss_end,
.name = "BT BSS",
};
bt_area_t cont_bss = {
.start = (intptr_t)&_bt_controller_bss_start,
.end = (intptr_t)&_bt_controller_bss_end,
.name = "BT Controller BSS",
};
bt_area_t data = {
.start = (intptr_t)&_bt_data_start,
.end = (intptr_t)&_bt_data_end,
.name = "BT Data",
};
bt_area_t cont_data = {
.start = (intptr_t)&_bt_controller_data_start,
.end = (intptr_t)&_bt_controller_data_end,
.name = "BT Controller Data"
};
/* Start by freeing Bluetooth BSS section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&bss, &cont_bss);
}
/* Do the same thing with the Bluetooth data section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&data, &cont_data);
}
#endif
return ret;
}
@ -1003,7 +1141,7 @@ uint8_t esp_ble_get_chip_rev_version(void)
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, bool end)
{
for (int i = 0; i < len; i++) {
esp_rom_printf("%02x,", addr[i]);
esp_rom_printf("%02x ", addr[i]);
}
if (end) {
esp_rom_printf("\n");
@ -1012,23 +1150,22 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b
void esp_ble_controller_log_dump_all(bool output)
{
portMUX_TYPE spinlock;
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
portENTER_CRITICAL_SAFE(&spinlock);
esp_panic_handler_reconfigure_wdts(5000);
BT_ASSERT_PRINT("\r\n[DUMP_START:");
ble_log_async_output_dump_all(output);
BT_ASSERT_PRINT("]\r\n");
BT_ASSERT_PRINT(":DUMP_END]\r\n");
portEXIT_CRITICAL_SAFE(&spinlock);
}
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED)
#if CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC
#define BLE_SM_KEY_ERR 0x17
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#include "mbedtls/aes.h"
#if CONFIG_BT_LE_SM_SC
#include "mbedtls/cipher.h"
#include "mbedtls/entropy.h"
@ -1036,7 +1173,9 @@ void esp_ble_controller_log_dump_all(bool output)
#include "mbedtls/cmac.h"
#include "mbedtls/ecdh.h"
#include "mbedtls/ecp.h"
#endif
static mbedtls_ecp_keypair keypair;
#endif // CONFIG_BT_LE_SM_SC
#else
#include "tinycrypt/aes.h"
@ -1046,15 +1185,15 @@ void esp_ble_controller_log_dump_all(bool output)
#if CONFIG_BT_LE_SM_SC
#include "tinycrypt/cmac_mode.h"
#include "tinycrypt/ecc_dh.h"
#endif
#endif // CONFIG_BT_LE_SM_SC
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#endif
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#if CONFIG_BT_LE_SM_SC
static mbedtls_ecp_keypair keypair;
#endif
#endif
/* Based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
};
int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
const uint8_t *our_priv_key, uint8_t *out_dhkey)
@ -1101,8 +1240,7 @@ int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_
}
/* Set PRNG */
if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
NULL, 0)) != 0) {
if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, NULL, 0)) != 0) {
goto exit;
}
@ -1146,19 +1284,12 @@ exit:
if (rc == TC_CRYPTO_FAIL) {
return BLE_SM_KEY_ERR;
}
#endif
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
swap_buf(out_dhkey, dh, 32);
return 0;
}
/* based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
};
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
static int mbedtls_gen_keypair(uint8_t *public_key, uint8_t *private_key)
{
@ -1204,7 +1335,7 @@ exit:
return 0;
}
#endif
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/**
* pub: 64 bytes
@ -1220,7 +1351,6 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
uint8_t pk[64];
do {
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
if (mbedtls_gen_keypair(pk, priv) != 0) {
return BLE_SM_KEY_ERR;
@ -1229,17 +1359,17 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
if (uECC_make_key(pk, priv, &curve_secp256r1) != TC_CRYPTO_SUCCESS) {
return BLE_SM_KEY_ERR;
}
#endif
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/* Make sure generated key isn't debug key. */
} while (memcmp(priv, ble_sm_alg_dbg_priv_key, 32) == 0);
swap_buf(pub, pk, 32);
swap_buf(&pub[32], &pk[32], 32);
swap_in_place(priv, 32);
#endif
#endif // CONFIG_BT_LE_SM_SC_DEBUG_KEYS
return 0;
}
#endif
#endif // CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC
#endif // (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED)

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -40,7 +40,16 @@ extern "C" {
#define DEFAULT_BT_NIMBLE_WHITELIST_SIZE MYNEWT_VAL(BLE_LL_WHITELIST_SIZE)
#define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT)
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT)
#if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif
#define DEFAULT_BT_LE_ROLE_OBSERVER MYNEWT_VAL(BLE_ROLE_OBSERVER)
#define DEFAULT_BT_LE_ROLE_CENTROL MYNEWT_VAL(BLE_ROLE_CENTRAL)
#define DEFAULT_BT_LE_ROLE_PERIPHERAL MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
#define DEFAULT_BT_LE_ROLE_BROADCASTER MYNEWT_VAL(BLE_ROLE_BROADCASTER)
#else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@ -52,13 +61,13 @@ extern "C" {
#if defined(CONFIG_BT_LE_MAX_PERIODIC_ADVERTISER_LIST)
#define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (CONFIG_BT_LE_MAX_PERIODIC_ADVERTISER_LIST)
#else
#define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (5)
#define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (0)
#endif
#if defined(CONFIG_BT_LE_MAX_PERIODIC_SYNCS)
#define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (CONFIG_BT_LE_MAX_PERIODIC_SYNCS)
#else
#define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (1)
#define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (0)
#endif
#if defined(CONFIG_BT_LE_MAX_CONNECTIONS)
@ -114,7 +123,35 @@ extern "C" {
#else
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT (8)
#endif
#if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif
#if defined(CONFIG_BT_LE_ROLE_CENTROL_ENABLE)
#define DEFAULT_BT_LE_ROLE_CENTROL (1)
#else
#define DEFAULT_BT_LE_ROLE_CENTROL (0)
#endif
#if defined(CONFIG_BT_LE_ROLE_PERIPHERAL_ENABLE)
#define DEFAULT_BT_LE_ROLE_PERIPHERAL (1)
#else
#define DEFAULT_BT_LE_ROLE_PERIPHERAL (0)
#endif
#if defined(CONFIG_BT_LE_ROLE_BROADCASTER_ENABLE)
#define DEFAULT_BT_LE_ROLE_BROADCASTER (1)
#else
#define DEFAULT_BT_LE_ROLE_BROADCASTER (0)
#endif
#if defined(CONFIG_BT_LE_ROLE_OBSERVER_ENABLE)
#define DEFAULT_BT_LE_ROLE_OBSERVER (1)
#else
#define DEFAULT_BT_LE_ROLE_OBSERVER (0)
#endif
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF

View File

@ -23,7 +23,7 @@ config BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB
default 0
help
BLE ACL buffer have two methods to be allocated. One is persistent allocating
(alloate when controller initialise, never free until controller de-initialise)
(allocate when controller initialise, never free until controller de-initialise)
another is dynamically allocating (allocate before TX and free after TX).
choice BT_CTRL_PINNED_TO_CORE_CHOICE
@ -72,11 +72,11 @@ config BT_CTRL_HCI_TL
HCI mode as VHCI or UART(H4)
config BT_CTRL_ADV_DUP_FILT_MAX
int "The maxinum number of 5.0 extend duplicate scan filter"
int "The maximum number of 5.0 extend duplicate scan filter"
range 1 500
default 30
help
The maxinum number of suplicate scan filter
The maximum number of suplicate scan filter
choice BT_BLE_CCA_MODE
prompt "BLE CCA mode"
@ -467,3 +467,25 @@ config BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.
config BT_BLE_ADV_DATA_LENGTH_ZERO_AUX
bool "Enable aux packet when ext adv data length is zero"
default n
help
When this option is enabled, auxiliary packets will be present in the events of
'Non-Connectable and Non-Scannable' regardless of whether the advertising length is 0.
If this option is not enabled, auxiliary packets will only be present when the advertising length is not 0.
config BT_CTRL_CHAN_ASS_EN
bool "Enable channel assessment"
default y
help
If this option is enabled, The Controller will records the communication quality
for each channel and then start a timer to check and update the channel map every 4 seconds.
config BT_CTRL_LE_PING_EN
bool "Enable LE Ping procedure"
default y
help
If this option is disabled, The Controller will not start the LE authenticated payload timer.
This option is used for some compatibility problems related to LE ping procedure.

File diff suppressed because it is too large Load Diff

View File

@ -147,7 +147,7 @@ if BT_LE_EXT_ADV
Enable this option to start periodic advertisement.
config BT_LE_PERIODIC_ADV_SYNC_TRANSFER
bool "Enable Transer Sync Events"
bool "Enable Transfer Sync Events"
depends on BT_LE_ENABLE_PERIODIC_ADV
default y
help
@ -212,6 +212,15 @@ menu "Memory Settings"
help
Dynamic memory size of block 2
config BT_LE_MSYS_BUF_FROM_HEAP
bool "Get Msys Mbuf from heap"
default y
depends on BT_LE_MSYS_INIT_IN_CONTROLLER
help
This option sets the source of the shared msys mbuf memory between
the Host and the Controller. Allocate the memory from the heap if
this option is sets, from the mempool otherwise.
config BT_LE_ACL_BUF_COUNT
int "ACL Buffer count"
default 10
@ -260,7 +269,7 @@ config BT_LE_CONTROLLER_TASK_STACK_SIZE
help
This configures stack size of NimBLE controller task
config BT_LE_CONTROLLER_LOG_ENABLED
menuconfig BT_LE_CONTROLLER_LOG_ENABLED
bool "Controller log enable"
default n
help
@ -271,21 +280,42 @@ config BT_LE_CONTROLLER_LOG_CTRL_ENABLED
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable controller log module
Enable controller log module
config BT_LE_CONTROLLER_LOG_HCI_ENABLED
bool "enable HCI log module"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable hci log module
Enable hci log module
config BT_LE_CONTROLLER_LOG_DUMP_ONLY
bool "Controller log dump mode only"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Only operate in dump mode
Only operate in dump mode
config BT_LE_LOG_CTRL_BUF1_SIZE
int "size of the first BLE controller LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 4096
help
Configure the size of the first BLE controller LOG buffer.
config BT_LE_LOG_CTRL_BUF2_SIZE
int "size of the second BLE controller LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 1024
help
Configure the size of the second BLE controller LOG buffer.
config BT_LE_LOG_HCI_BUF_SIZE
int "size of the BLE HCI LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 4096
help
Configure the size of the BLE HCI LOG buffer.
config BT_LE_LL_RESOLV_LIST_SIZE
int "BLE LL Resolving list size"
@ -352,7 +382,7 @@ config BT_LE_WHITELIST_SIZE
config BT_LE_LL_DUP_SCAN_LIST_COUNT
int "BLE duplicate scan list count"
range 1 100
range 5 100
default 20
help
config the max count of duplicate scan list
@ -513,15 +543,6 @@ config BT_LE_SCAN_DUPL_TYPE
default 2 if BT_LE_SCAN_DUPL_TYPE_DATA_DEVICE
default 0
config BT_LE_SCAN_DUPL_CACHE_SIZE
int "Maximum number of devices in scan duplicate filter"
depends on BT_LE_SCAN_DUPL
range 10 1000
default 100
help
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BT_LE_SCAN_DUPL_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
depends on BT_LE_SCAN_DUPL
@ -539,5 +560,19 @@ config BT_LE_SCAN_DUPL_CACHE_REFRESH_PERIOD
again.
config BT_LE_MSYS_INIT_IN_CONTROLLER
bool
bool "Msys Mbuf Init in Controller"
default y
config BT_LE_TX_CCA_ENABLED
bool "Enable TX CCA feature"
default n
help
Enable CCA feature to cancel sending the packet if the signal power is stronger than CCA threshold.
config BT_LE_CCA_RSSI_THRESH
int "CCA RSSI threshold value"
depends on BT_LE_TX_CCA_ENABLED
range 20 100
default 20
help
Power threshold of CCA in unit of -1 dBm.

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -24,7 +24,7 @@
#endif // ESP_PLATFORM
#if CONFIG_SW_COEXIST_ENABLE
#include "esp_coexist_internal.h"
#include "private/esp_coexist_internal.h"
#endif // CONFIG_SW_COEXIST_ENABLE
#include "nimble/nimble_npl_os.h"
@ -123,10 +123,11 @@ typedef void (*interface_func_t) (uint32_t len, const uint8_t*addr, bool end);
extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
extern int ble_controller_init(esp_bt_controller_config_t *cfg);
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
extern int ble_log_deinit_async(void);
extern void ble_log_async_select_dump_buffers(uint8_t buffers);
extern void ble_log_async_output_dump_all(bool output);
extern int r_ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
extern int r_ble_log_deinit_async(void);
extern void r_ble_log_async_select_dump_buffers(uint8_t buffers);
extern void r_ble_log_async_output_dump_all(bool output);
extern void esp_panic_handler_reconfigure_wdts(uint32_t timeout_ms);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_controller_deinit(void);
extern int ble_controller_enable(uint8_t mode);
@ -139,8 +140,8 @@ extern void esp_unregister_npl_funcs (void);
extern void npl_freertos_mempool_deinit(void);
extern uint32_t r_os_cputime_get32(void);
extern uint32_t r_os_cputime_ticks_to_usecs(uint32_t ticks);
extern void ble_lll_rfmgmt_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg,
void *w_arg, uint32_t us_to_enabled);
extern void r_ble_lll_rfmgmt_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg,
void *w_arg, uint32_t us_to_enabled);
extern void r_ble_rtc_wake_up_state_clr(void);
extern int os_msys_init(void);
extern void os_msys_deinit(void);
@ -156,6 +157,7 @@ extern int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv);
extern int ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t handle, int power_level);
extern int ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
extern int ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
extern char *ble_controller_get_compile_version(void);
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _bt_controller_bss_start;
@ -202,7 +204,7 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b
static DRAM_ATTR esp_bt_controller_status_t ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
const static uint32_t log_bufs_size[] = {6144, 1024, 2048};
const static uint32_t log_bufs_size[] = {CONFIG_BT_LE_LOG_CTRL_BUF1_SIZE, CONFIG_BT_LE_LOG_HCI_BUF_SIZE, CONFIG_BT_LE_LOG_CTRL_BUF2_SIZE};
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* This variable tells if BLE is running */
@ -488,9 +490,6 @@ IRAM_ATTR void controller_sleep_cb(uint32_t enable_tick, void *arg)
}
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
r_ble_rtc_wake_up_state_clr();
#if SOC_PM_RETENTION_HAS_CLOCK_BUG
sleep_retention_do_extra_retention(true);
#endif // SOC_PM_RETENTION_HAS_CLOCK_BUG
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
esp_phy_disable(PHY_MODEM_BT);
#ifdef CONFIG_PM_ENABLE
@ -507,18 +506,16 @@ IRAM_ATTR void controller_wakeup_cb(void *arg)
#ifdef CONFIG_PM_ENABLE
esp_pm_lock_acquire(s_pm_lock);
r_ble_rtc_wake_up_state_clr();
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE && SOC_PM_RETENTION_HAS_CLOCK_BUG
sleep_retention_do_extra_retention(false);
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE && SOC_PM_RETENTION_HAS_CLOCK_BUG */
#endif //CONFIG_PM_ENABLE
esp_phy_enable(PHY_MODEM_BT);
s_ble_active = true;
}
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
static esp_err_t sleep_modem_ble_mac_modem_state_init(uint8_t extra)
static esp_err_t sleep_modem_ble_mac_retention_init(void *arg)
{
uint8_t size;
int extra = *(int *)arg;
const sleep_retention_entries_config_t *ble_mac_modem_config = esp_ble_mac_retention_link_get(&size, extra);
esp_err_t err = sleep_retention_entries_create(ble_mac_modem_config, size, REGDMA_LINK_PRI_5, SLEEP_RETENTION_MODULE_BLE_MAC);
if (err == ESP_OK) {
@ -527,9 +524,27 @@ static esp_err_t sleep_modem_ble_mac_modem_state_init(uint8_t extra)
return err;
}
static esp_err_t sleep_modem_ble_mac_modem_state_init(uint8_t extra)
{
int retention_args = extra;
sleep_retention_module_init_param_t init_param = {
.cbs = { .create = { .handle = sleep_modem_ble_mac_retention_init, .arg = &retention_args } },
.depends = BIT(SLEEP_RETENTION_MODULE_BT_BB)
};
esp_err_t err = sleep_retention_module_init(SLEEP_RETENTION_MODULE_BLE_MAC, &init_param);
if (err == ESP_OK) {
err = sleep_retention_module_allocate(SLEEP_RETENTION_MODULE_BLE_MAC);
}
return err;
}
static void sleep_modem_ble_mac_modem_state_deinit(void)
{
sleep_retention_entries_destroy(SLEEP_RETENTION_MODULE_BLE_MAC);
esp_err_t err = sleep_retention_module_free(SLEEP_RETENTION_MODULE_BLE_MAC);
if (err == ESP_OK) {
err = sleep_retention_module_deinit(SLEEP_RETENTION_MODULE_BLE_MAC);
assert(err == ESP_OK);
}
}
void sleep_modem_light_sleep_overhead_set(uint32_t overhead)
@ -546,10 +561,10 @@ esp_err_t controller_sleep_init(void)
#ifdef CONFIG_BT_LE_SLEEP_ENABLE
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "BLE modem sleep is enabled");
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
r_ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
BLE_RTC_DELAY_US_LIGHT_SLEEP);
#else
ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
r_ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
BLE_RTC_DELAY_US_MODEM_SLEEP);
#endif /* FREERTOS_USE_TICKLESS_IDLE */
#endif // CONFIG_BT_LE_SLEEP_ENABLE
@ -570,12 +585,21 @@ esp_err_t controller_sleep_init(void)
if (rc != ESP_OK) {
goto error;
}
#if SOC_PM_RETENTION_HAS_CLOCK_BUG && CONFIG_MAC_BB_PD
sleep_modem_register_mac_bb_module_prepare_callback(sleep_modem_mac_bb_power_down_prepare,
sleep_modem_mac_bb_power_up_prepare);
#endif // SOC_PM_RETENTION_HAS_CLOCK_BUG && CONFIG_MAC_BB_PD
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
return rc;
error:
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
#if SOC_PM_RETENTION_HAS_CLOCK_BUG && CONFIG_MAC_BB_PD
sleep_modem_unregister_mac_bb_module_prepare_callback(sleep_modem_mac_bb_power_down_prepare,
sleep_modem_mac_bb_power_up_prepare);
#endif // SOC_PM_RETENTION_HAS_CLOCK_BUG && CONFIG_MAC_BB_PD
esp_sleep_disable_bt_wakeup();
esp_pm_unregister_inform_out_light_sleep_overhead_callback(sleep_modem_light_sleep_overhead_set);
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
@ -592,6 +616,10 @@ error:
void controller_sleep_deinit(void)
{
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
#if SOC_PM_RETENTION_HAS_CLOCK_BUG && CONFIG_MAC_BB_PD
sleep_modem_unregister_mac_bb_module_prepare_callback(sleep_modem_mac_bb_power_down_prepare,
sleep_modem_mac_bb_power_up_prepare);
#endif // SOC_PM_RETENTION_HAS_CLOCK_BUG && CONFIG_MAC_BB_PD
r_ble_rtc_wake_up_state_clr();
esp_sleep_disable_bt_wakeup();
sleep_modem_ble_mac_modem_state_deinit();
@ -616,16 +644,16 @@ typedef enum {
}disc_duplicate_mode_t;
extern void filter_duplicate_mode_enable(disc_duplicate_mode_t mode);
extern void filter_duplicate_mode_disable(disc_duplicate_mode_t mode);
extern void filter_duplicate_set_ring_list_max_num(uint32_t max_num);
extern void scan_duplicate_cache_refresh_set_time(uint32_t period_time);
extern void r_filter_duplicate_mode_enable(disc_duplicate_mode_t mode);
extern void r_filter_duplicate_mode_disable(disc_duplicate_mode_t mode);
extern void r_filter_duplicate_set_ring_list_max_num(uint32_t max_num);
extern void r_scan_duplicate_cache_refresh_set_time(uint32_t period_time);
int
ble_vhci_disc_duplicate_mode_enable(int mode)
{
// TODO: use vendor hci to update
filter_duplicate_mode_enable(mode);
r_filter_duplicate_mode_enable(mode);
return true;
}
@ -633,19 +661,19 @@ int
ble_vhci_disc_duplicate_mode_disable(int mode)
{
// TODO: use vendor hci to update
filter_duplicate_mode_disable(mode);
r_filter_duplicate_mode_disable(mode);
return true;
}
int ble_vhci_disc_duplicate_set_max_cache_size(int max_cache_size){
// TODO: use vendor hci to update
filter_duplicate_set_ring_list_max_num(max_cache_size);
r_filter_duplicate_set_ring_list_max_num(max_cache_size);
return true;
}
int ble_vhci_disc_duplicate_set_period_refresh_time(int refresh_period_time){
// TODO: use vendor hci to update
scan_duplicate_cache_refresh_set_time(refresh_period_time);
r_scan_duplicate_cache_refresh_set_time(refresh_period_time);
return true;
}
@ -657,7 +685,7 @@ void ble_controller_scan_duplicate_config(void)
uint32_t duplicate_mode = FILTER_DUPLICATE_DEFAULT;
uint32_t cache_size = 100;
#if CONFIG_BT_LE_SCAN_DUPL == true
cache_size = CONFIG_BT_LE_SCAN_DUPL_CACHE_SIZE;
cache_size = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT;
if (CONFIG_BT_LE_SCAN_DUPL_TYPE == 0) {
duplicate_mode = FILTER_DUPLICATE_ADDRESS | FILTER_DUPLICATE_PDUTYPE;
} else if (CONFIG_BT_LE_SCAN_DUPL_TYPE == 1) {
@ -782,22 +810,22 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
buffers |= ESP_BLE_LOG_BUF_HCI;
#endif // CONFIG_BT_LE_CONTROLLER_LOG_HCI_ENABLED
#if CONFIG_BT_LE_CONTROLLER_LOG_DUMP_ONLY
ret = ble_log_init_async(bt_controller_log_interface, false, buffers, (uint32_t *)log_bufs_size);
ret = r_ble_log_init_async(bt_controller_log_interface, false, buffers, (uint32_t *)log_bufs_size);
#else
ret = ble_log_init_async(bt_controller_log_interface, true, buffers, (uint32_t *)log_bufs_size);
ret = r_ble_log_init_async(bt_controller_log_interface, true, buffers, (uint32_t *)log_bufs_size);
#endif // CONFIG_BT_CONTROLLER_LOG_DUMP
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_log_init failed %d", ret);
goto modem_deint;
}
#endif // CONFIG_BT_CONTROLLER_LOG_ENABLED
ret = ble_controller_init(cfg);
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_init failed %d", ret);
goto modem_deint;
}
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "ble controller commit:[%s]", ble_controller_get_compile_version());
esp_ble_change_rtc_freq(slow_clk_freq);
ble_controller_scan_duplicate_config();
@ -829,7 +857,7 @@ free_controller:
ble_controller_deinit();
modem_deint:
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_log_deinit_async();
r_ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
esp_phy_modem_deinit();
modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
@ -861,10 +889,10 @@ esp_err_t esp_bt_controller_deinit(void)
modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
modem_clock_module_disable(PERIPH_BT_MODULE);
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_controller_deinit();
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
r_ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
#if CONFIG_BT_NIMBLE_ENABLED
/* De-initialize default event queue */
@ -902,9 +930,9 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
esp_pm_lock_acquire(s_pm_lock);
#endif // CONFIG_PM_ENABLE
esp_phy_enable(PHY_MODEM_BT);
esp_btbb_enable();
s_ble_active = true;
}
esp_btbb_enable();
#if CONFIG_SW_COEXIST_ENABLE
coex_enable();
#endif // CONFIG_SW_COEXIST_ENABLE
@ -920,8 +948,8 @@ error:
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
esp_btbb_disable();
if (s_ble_active) {
esp_btbb_disable();
esp_phy_disable(PHY_MODEM_BT);
#if CONFIG_PM_ENABLE
esp_pm_lock_release(s_pm_lock);
@ -943,18 +971,13 @@ esp_err_t esp_bt_controller_disable(void)
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
esp_btbb_disable();
if (s_ble_active) {
esp_btbb_disable();
esp_phy_disable(PHY_MODEM_BT);
#if CONFIG_PM_ENABLE
esp_pm_lock_release(s_pm_lock);
#endif // CONFIG_PM_ENABLE
s_ble_active = false;
} else {
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
/* Avoid consecutive backup of register cause assertion */
sleep_retention_module_deinit();
#endif // CONFIG_FREERTOS_USE_TICKLESS_IDLE
}
ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
return ESP_OK;
@ -980,70 +1003,86 @@ static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end)
return ret;
}
typedef struct {
intptr_t start;
intptr_t end;
const char* name;
} bt_area_t;
static esp_err_t esp_bt_mem_release_area(const bt_area_t *area)
{
esp_err_t ret = ESP_OK;
intptr_t mem_start = area->start;
intptr_t mem_end = area->end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release %s [0x%08x] - [0x%08x], len %d", area->name, mem_start, mem_end, mem_end - mem_start);
ret = try_heap_caps_add_region(mem_start, mem_end);
}
return ret;
}
static esp_err_t esp_bt_mem_release_areas(const bt_area_t *area1, const bt_area_t *area2)
{
esp_err_t ret = ESP_OK;
if (area1->end == area2->start) {
bt_area_t merged_area = {
.start = area1->start,
.end = area2->end,
.name = area1->name
};
ret = esp_bt_mem_release_area(&merged_area);
} else {
esp_bt_mem_release_area(area1);
ret = esp_bt_mem_release_area(area2);
}
return ret;
}
esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
intptr_t mem_start, mem_end;
esp_err_t ret = ESP_OK;
if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
bt_area_t bss = {
.start = (intptr_t)&_bt_bss_start,
.end = (intptr_t)&_bt_bss_end,
.name = "BT BSS",
};
bt_area_t cont_bss = {
.start = (intptr_t)&_bt_controller_bss_start,
.end = (intptr_t)&_bt_controller_bss_end,
.name = "BT Controller BSS",
};
bt_area_t data = {
.start = (intptr_t)&_bt_data_start,
.end = (intptr_t)&_bt_data_end,
.name = "BT Data",
};
bt_area_t cont_data = {
.start = (intptr_t)&_bt_controller_data_start,
.end = (intptr_t)&_bt_controller_data_end,
.name = "BT Controller Data"
};
if (mode & ESP_BT_MODE_BLE) {
/* If the addresses of btdm .bss and bt .bss are consecutive,
* they are registered in the system heap as a piece of memory
*/
if(_bt_bss_end == _bt_controller_bss_start) {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_bt_controller_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BSS [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_bt_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT BSS [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_bt_controller_bss_start;
mem_end = (intptr_t)&_bt_controller_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release Controller BSS [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
/* Start by freeing Bluetooth BSS section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&bss, &cont_bss);
}
/* If the addresses of btdm .data and bt .data are consecutive,
* they are registered in the system heap as a piece of memory
*/
if(_bt_data_end == _bt_controller_data_start) {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_controller_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release data [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT Data [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_bt_controller_data_start;
mem_end = (intptr_t)&_bt_controller_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release Controller Data [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
/* Do the same thing with the Bluetooth data section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&data, &cont_data);
}
}
return ESP_OK;
return ret;
}
@ -1173,7 +1212,7 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, bool end)
{
for (int i = 0; i < len; i++) {
esp_rom_printf("%02x,", addr[i]);
esp_rom_printf("%02x ", addr[i]);
}
if (end) {
esp_rom_printf("\n");
@ -1182,20 +1221,20 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b
void esp_ble_controller_log_dump_all(bool output)
{
portMUX_TYPE spinlock;
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
portENTER_CRITICAL_SAFE(&spinlock);
esp_panic_handler_reconfigure_wdts(5000);
BT_ASSERT_PRINT("\r\n[DUMP_START:");
ble_log_async_output_dump_all(output);
BT_ASSERT_PRINT("]\r\n");
r_ble_log_async_output_dump_all(output);
BT_ASSERT_PRINT(":DUMP_END]\r\n");
portEXIT_CRITICAL_SAFE(&spinlock);
}
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED)
#if CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC
#define BLE_SM_KEY_ERR 0x17
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#include "mbedtls/aes.h"
#if CONFIG_BT_LE_SM_SC
@ -1205,22 +1244,27 @@ void esp_ble_controller_log_dump_all(bool output)
#include "mbedtls/cmac.h"
#include "mbedtls/ecdh.h"
#include "mbedtls/ecp.h"
static mbedtls_ecp_keypair keypair;
#endif // CONFIG_BT_LE_SM_SC
#else
#include "tinycrypt/aes.h"
#include "tinycrypt/constants.h"
#include "tinycrypt/utils.h"
#if CONFIG_BT_LE_SM_SC
#include "tinycrypt/cmac_mode.h"
#include "tinycrypt/ecc_dh.h"
#endif // CONFIG_BT_LE_SM_SC
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#if CONFIG_BT_LE_SM_SC
static mbedtls_ecp_keypair keypair;
#endif // CONFIG_BT_LE_SM_SC
#endif// CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/* Based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
};
int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
const uint8_t *our_priv_key, uint8_t *out_dhkey)
@ -1267,8 +1311,7 @@ int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_
}
/* Set PRNG */
if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
NULL, 0)) != 0) {
if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, NULL, 0)) != 0) {
goto exit;
}
@ -1318,19 +1361,10 @@ exit:
return 0;
}
/* based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
};
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
static int mbedtls_gen_keypair(uint8_t *public_key, uint8_t *private_key)
{
int rc = BLE_SM_KEY_ERR;
size_t olen = 0;
uint8_t pub[65] = {0};
mbedtls_entropy_context entropy = {0};
mbedtls_ctr_drbg_context ctr_drbg = {0};
@ -1352,11 +1386,11 @@ static int mbedtls_gen_keypair(uint8_t *public_key, uint8_t *private_key)
goto exit;
}
size_t olen = 0;
uint8_t pub[65] = {0};
if ((rc = mbedtls_ecp_point_write_binary(&keypair.MBEDTLS_PRIVATE(grp),
&keypair.MBEDTLS_PRIVATE(Q),
MBEDTLS_ECP_PF_UNCOMPRESSED,
&olen, pub, 65)) != 0) {
if ((rc = mbedtls_ecp_point_write_binary(&keypair.MBEDTLS_PRIVATE(grp), &keypair.MBEDTLS_PRIVATE(Q), MBEDTLS_ECP_PF_UNCOMPRESSED,
&olen, pub, 65)) != 0) {
goto exit;
}
@ -1372,7 +1406,7 @@ exit:
return 0;
}
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/**
* pub: 64 bytes
@ -1396,7 +1430,7 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
if (uECC_make_key(pk, priv, &curve_secp256r1) != TC_CRYPTO_SUCCESS) {
return BLE_SM_KEY_ERR;
}
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/* Make sure generated key isn't debug key. */
} while (memcmp(priv, ble_sm_alg_dbg_priv_key, 32) == 0);
@ -1404,7 +1438,9 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
swap_buf(&pub[32], &pk[32], 32);
swap_in_place(priv, 32);
#endif // CONFIG_BT_LE_SM_SC_DEBUG_KEYS
return 0;
}
#endif // (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)
#endif // CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC
#endif // (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED)

View File

@ -40,6 +40,11 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT)
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT)
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED MYNEWT_VAL(BLE_POWER_CONTROL)
#if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif
#else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@ -119,6 +124,11 @@ extern "C" {
#else
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (0)
#endif
#if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF

View File

@ -147,7 +147,7 @@ if BT_LE_EXT_ADV
Enable this option to start periodic advertisement.
config BT_LE_PERIODIC_ADV_SYNC_TRANSFER
bool "Enable Transer Sync Events"
bool "Enable Transfer Sync Events"
depends on BT_LE_ENABLE_PERIODIC_ADV
default y
help
@ -260,7 +260,7 @@ config BT_LE_CONTROLLER_TASK_STACK_SIZE
help
This configures stack size of NimBLE controller task
config BT_LE_CONTROLLER_LOG_ENABLED
menuconfig BT_LE_CONTROLLER_LOG_ENABLED
bool "Controller log enable"
default n
help
@ -271,21 +271,42 @@ config BT_LE_CONTROLLER_LOG_CTRL_ENABLED
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable controller log module
Enable controller log module
config BT_LE_CONTROLLER_LOG_HCI_ENABLED
bool "enable HCI log module"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable hci log module
Enable hci log module
config BT_LE_CONTROLLER_LOG_DUMP_ONLY
bool "Controller log dump mode only"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Only operate in dump mode
Only operate in dump mode
config BT_LE_LOG_CTRL_BUF1_SIZE
int "size of the first BLE controller LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 4096
help
Configure the size of the first BLE controller LOG buffer.
config BT_LE_LOG_CTRL_BUF2_SIZE
int "size of the second BLE controller LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 1024
help
Configure the size of the second BLE controller LOG buffer.
config BT_LE_LOG_HCI_BUF_SIZE
int "size of the BLE HCI LOG buffer"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default 4096
help
Configure the size of the BLE HCI LOG buffer.
config BT_LE_LL_RESOLV_LIST_SIZE
int "BLE LL Resolving list size"
@ -352,7 +373,7 @@ config BT_LE_WHITELIST_SIZE
config BT_LE_LL_DUP_SCAN_LIST_COUNT
int "BLE duplicate scan list count"
range 1 100
range 5 100
default 20
help
config the max count of duplicate scan list
@ -514,16 +535,6 @@ config BT_LE_SCAN_DUPL_TYPE
default 2 if BT_LE_SCAN_DUPL_TYPE_DATA_DEVICE
default 0
config BT_LE_SCAN_DUPL_CACHE_SIZE
int "Maximum number of devices in scan duplicate filter"
depends on BT_LE_SCAN_DUPL
range 10 1000
default 100
help
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BT_LE_SCAN_DUPL_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
depends on BT_LE_SCAN_DUPL
@ -543,3 +554,17 @@ config BT_LE_SCAN_DUPL_CACHE_REFRESH_PERIOD
config BT_LE_MSYS_INIT_IN_CONTROLLER
bool
default y
config BT_LE_TX_CCA_ENABLED
bool "Enable TX CCA feature"
default n
help
Enable CCA feature to cancel sending the packet if the signal power is stronger than CCA threshold.
config BT_LE_CCA_RSSI_THRESH
int "CCA RSSI threshold value"
depends on BT_LE_TX_CCA_ENABLED
range 20 100
default 20
help
Power threshold of CCA in unit of -1 dBm.

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -24,7 +24,7 @@
#endif // ESP_PLATFORM
#if CONFIG_SW_COEXIST_ENABLE
#include "esp_coexist_internal.h"
#include "private/esp_coexist_internal.h"
#endif // CONFIG_SW_COEXIST_ENABLE
#include "nimble/nimble_npl_os.h"
@ -117,10 +117,11 @@ typedef void (*interface_func_t) (uint32_t len, const uint8_t*addr, bool end);
extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
extern int ble_controller_init(esp_bt_controller_config_t *cfg);
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
extern int ble_log_deinit_async(void);
extern void ble_log_async_select_dump_buffers(uint8_t buffers);
extern void ble_log_async_output_dump_all(bool output);
extern int r_ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
extern int r_ble_log_deinit_async(void);
extern void r_ble_log_async_select_dump_buffers(uint8_t buffers);
extern void r_ble_log_async_output_dump_all(bool output);
extern void esp_panic_handler_reconfigure_wdts(uint32_t timeout_ms);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_controller_deinit(void);
extern int ble_controller_enable(uint8_t mode);
@ -138,8 +139,8 @@ extern const sleep_retention_entries_config_t *esp_ble_mac_retention_link_get(ui
extern void esp_ble_set_wakeup_overhead(uint32_t overhead);
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
extern void esp_ble_change_rtc_freq(uint32_t freq);
extern void ble_lll_rfmgmt_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg,
void *w_arg, uint32_t us_to_enabled);
extern void r_ble_lll_rfmgmt_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg,
void *w_arg, uint32_t us_to_enabled);
extern void r_ble_rtc_wake_up_state_clr(void);
extern int os_msys_init(void);
extern void os_msys_deinit(void);
@ -150,6 +151,7 @@ extern int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv);
extern int ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t handle, int power_level);
extern int ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
extern int ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
extern char *ble_controller_get_compile_version(void);
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _bt_controller_bss_start;
@ -196,7 +198,7 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b
static DRAM_ATTR esp_bt_controller_status_t ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
const static uint32_t log_bufs_size[] = {6144, 1024, 2048};
const static uint32_t log_bufs_size[] = {CONFIG_BT_LE_LOG_CTRL_BUF1_SIZE, CONFIG_BT_LE_LOG_HCI_BUF_SIZE, CONFIG_BT_LE_LOG_CTRL_BUF2_SIZE};
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* This variable tells if BLE is running */
@ -499,9 +501,10 @@ IRAM_ATTR void controller_wakeup_cb(void *arg)
}
#ifdef CONFIG_FREERTOS_USE_TICKLESS_IDLE
static esp_err_t sleep_modem_ble_mac_modem_state_init(uint8_t extra)
static esp_err_t sleep_modem_ble_mac_retention_init(void *arg)
{
uint8_t size;
int extra = *(int *)arg;
const sleep_retention_entries_config_t *ble_mac_modem_config = esp_ble_mac_retention_link_get(&size, extra);
esp_err_t err = sleep_retention_entries_create(ble_mac_modem_config, size, REGDMA_LINK_PRI_5, SLEEP_RETENTION_MODULE_BLE_MAC);
if (err == ESP_OK) {
@ -510,9 +513,27 @@ static esp_err_t sleep_modem_ble_mac_modem_state_init(uint8_t extra)
return err;
}
static esp_err_t sleep_modem_ble_mac_modem_state_init(uint8_t extra)
{
int retention_args = extra;
sleep_retention_module_init_param_t init_param = {
.cbs = { .create = { .handle = sleep_modem_ble_mac_retention_init, .arg = &retention_args } },
.depends = BIT(SLEEP_RETENTION_MODULE_BT_BB)
};
esp_err_t err = sleep_retention_module_init(SLEEP_RETENTION_MODULE_BLE_MAC, &init_param);
if (err == ESP_OK) {
err = sleep_retention_module_allocate(SLEEP_RETENTION_MODULE_BLE_MAC);
}
return err;
}
static void sleep_modem_ble_mac_modem_state_deinit(void)
{
sleep_retention_entries_destroy(SLEEP_RETENTION_MODULE_BLE_MAC);
esp_err_t err = sleep_retention_module_free(SLEEP_RETENTION_MODULE_BLE_MAC);
if (err == ESP_OK) {
err = sleep_retention_module_deinit(SLEEP_RETENTION_MODULE_BLE_MAC);
assert(err == ESP_OK);
}
}
void sleep_modem_light_sleep_overhead_set(uint32_t overhead)
@ -528,10 +549,10 @@ esp_err_t controller_sleep_init(void)
#ifdef CONFIG_BT_LE_SLEEP_ENABLE
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "BLE modem sleep is enabled");
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
r_ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
BLE_RTC_DELAY_US_LIGHT_SLEEP);
#else
ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
r_ble_lll_rfmgmt_set_sleep_cb(controller_sleep_cb, controller_wakeup_cb, 0, 0,
BLE_RTC_DELAY_US_MODEM_SLEEP);
#endif /* FREERTOS_USE_TICKLESS_IDLE */
#endif // CONFIG_BT_LE_SLEEP_ENABLE
@ -598,16 +619,16 @@ typedef enum {
}disc_duplicate_mode_t;
extern void filter_duplicate_mode_enable(disc_duplicate_mode_t mode);
extern void filter_duplicate_mode_disable(disc_duplicate_mode_t mode);
extern void filter_duplicate_set_ring_list_max_num(uint32_t max_num);
extern void scan_duplicate_cache_refresh_set_time(uint32_t period_time);
extern void r_filter_duplicate_mode_enable(disc_duplicate_mode_t mode);
extern void r_filter_duplicate_mode_disable(disc_duplicate_mode_t mode);
extern void r_filter_duplicate_set_ring_list_max_num(uint32_t max_num);
extern void r_scan_duplicate_cache_refresh_set_time(uint32_t period_time);
int
ble_vhci_disc_duplicate_mode_enable(int mode)
{
// TODO: use vendor hci to update
filter_duplicate_mode_enable(mode);
r_filter_duplicate_mode_enable(mode);
return true;
}
@ -615,19 +636,19 @@ int
ble_vhci_disc_duplicate_mode_disable(int mode)
{
// TODO: use vendor hci to update
filter_duplicate_mode_disable(mode);
r_filter_duplicate_mode_disable(mode);
return true;
}
int ble_vhci_disc_duplicate_set_max_cache_size(int max_cache_size){
// TODO: use vendor hci to update
filter_duplicate_set_ring_list_max_num(max_cache_size);
r_filter_duplicate_set_ring_list_max_num(max_cache_size);
return true;
}
int ble_vhci_disc_duplicate_set_period_refresh_time(int refresh_period_time){
// TODO: use vendor hci to update
scan_duplicate_cache_refresh_set_time(refresh_period_time);
r_scan_duplicate_cache_refresh_set_time(refresh_period_time);
return true;
}
@ -639,7 +660,7 @@ void ble_controller_scan_duplicate_config(void)
uint32_t duplicate_mode = FILTER_DUPLICATE_DEFAULT;
uint32_t cache_size = 100;
#if CONFIG_BT_LE_SCAN_DUPL == true
cache_size = CONFIG_BT_LE_SCAN_DUPL_CACHE_SIZE;
cache_size = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT;
if (CONFIG_BT_LE_SCAN_DUPL_TYPE == 0) {
duplicate_mode = FILTER_DUPLICATE_ADDRESS | FILTER_DUPLICATE_PDUTYPE;
} else if (CONFIG_BT_LE_SCAN_DUPL_TYPE == 1) {
@ -750,7 +771,6 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
#if CONFIG_SW_COEXIST_ENABLE
coex_init();
#endif // CONFIG_SW_COEXIST_ENABLE
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
interface_func_t bt_controller_log_interface;
bt_controller_log_interface = esp_bt_controller_log_interface;
@ -762,9 +782,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
buffers |= ESP_BLE_LOG_BUF_HCI;
#endif // CONFIG_BT_LE_CONTROLLER_LOG_HCI_ENABLED
#if CONFIG_BT_LE_CONTROLLER_LOG_DUMP_ONLY
ret = ble_log_init_async(bt_controller_log_interface, false, buffers, (uint32_t *)log_bufs_size);
ret = r_ble_log_init_async(bt_controller_log_interface, false, buffers, (uint32_t *)log_bufs_size);
#else
ret = ble_log_init_async(bt_controller_log_interface, true, buffers, (uint32_t *)log_bufs_size);
ret = r_ble_log_init_async(bt_controller_log_interface, true, buffers, (uint32_t *)log_bufs_size);
#endif // CONFIG_BT_CONTROLLER_LOG_DUMP
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_log_init failed %d", ret);
@ -778,6 +798,8 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
goto modem_deint;
}
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "ble controller commit:[%s]", ble_controller_get_compile_version());
esp_ble_change_rtc_freq(slow_clk_freq);
ble_controller_scan_duplicate_config();
@ -810,7 +832,7 @@ free_controller:
ble_controller_deinit();
modem_deint:
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_log_deinit_async();
r_ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
modem_clock_module_disable(PERIPH_BT_MODULE);
@ -840,10 +862,10 @@ esp_err_t esp_bt_controller_deinit(void)
modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
modem_clock_module_disable(PERIPH_BT_MODULE);
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_controller_deinit();
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
r_ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
#if CONFIG_BT_NIMBLE_ENABLED
/* De-initialize default event queue */
@ -954,70 +976,86 @@ static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end)
return ret;
}
typedef struct {
intptr_t start;
intptr_t end;
const char* name;
} bt_area_t;
static esp_err_t esp_bt_mem_release_area(const bt_area_t *area)
{
esp_err_t ret = ESP_OK;
intptr_t mem_start = area->start;
intptr_t mem_end = area->end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release %s [0x%08x] - [0x%08x], len %d", area->name, mem_start, mem_end, mem_end - mem_start);
ret = try_heap_caps_add_region(mem_start, mem_end);
}
return ret;
}
static esp_err_t esp_bt_mem_release_areas(const bt_area_t *area1, const bt_area_t *area2)
{
esp_err_t ret = ESP_OK;
if (area1->end == area2->start) {
bt_area_t merged_area = {
.start = area1->start,
.end = area2->end,
.name = area1->name
};
ret = esp_bt_mem_release_area(&merged_area);
} else {
esp_bt_mem_release_area(area1);
ret = esp_bt_mem_release_area(area2);
}
return ret;
}
esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
intptr_t mem_start, mem_end;
esp_err_t ret = ESP_OK;
if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
bt_area_t bss = {
.start = (intptr_t)&_bt_bss_start,
.end = (intptr_t)&_bt_bss_end,
.name = "BT BSS",
};
bt_area_t cont_bss = {
.start = (intptr_t)&_bt_controller_bss_start,
.end = (intptr_t)&_bt_controller_bss_end,
.name = "BT Controller BSS",
};
bt_area_t data = {
.start = (intptr_t)&_bt_data_start,
.end = (intptr_t)&_bt_data_end,
.name = "BT Data",
};
bt_area_t cont_data = {
.start = (intptr_t)&_bt_controller_data_start,
.end = (intptr_t)&_bt_controller_data_end,
.name = "BT Controller Data"
};
if (mode & ESP_BT_MODE_BLE) {
/* If the addresses of btdm .bss and bt .bss are consecutive,
* they are registered in the system heap as a piece of memory
*/
if(_bt_bss_end == _bt_controller_bss_start) {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_bt_controller_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BSS [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_bt_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT BSS [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_bt_controller_bss_start;
mem_end = (intptr_t)&_bt_controller_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release Controller BSS [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
/* Start by freeing Bluetooth BSS section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&bss, &cont_bss);
}
/* If the addresses of btdm .data and bt .data are consecutive,
* they are registered in the system heap as a piece of memory
*/
if(_bt_data_end == _bt_controller_data_start) {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_controller_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release data [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT Data [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_bt_controller_data_start;
mem_end = (intptr_t)&_bt_controller_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release Controller Data [0x%08x] - [0x%08x], len %d",
mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
/* Do the same thing with the Bluetooth data section */
if (ret == ESP_OK) {
ret = esp_bt_mem_release_areas(&data, &cont_data);
}
}
return ESP_OK;
return ret;
}
@ -1147,7 +1185,7 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, bool end)
{
for (int i = 0; i < len; i++) {
esp_rom_printf("%02x,", addr[i]);
esp_rom_printf("%02x ", addr[i]);
}
if (end) {
esp_rom_printf("\n");
@ -1156,20 +1194,20 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b
void esp_ble_controller_log_dump_all(bool output)
{
portMUX_TYPE spinlock;
portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED;
portENTER_CRITICAL_SAFE(&spinlock);
esp_panic_handler_reconfigure_wdts(5000);
BT_ASSERT_PRINT("\r\n[DUMP_START:");
ble_log_async_output_dump_all(output);
BT_ASSERT_PRINT("]\r\n");
r_ble_log_async_output_dump_all(output);
BT_ASSERT_PRINT(":DUMP_END]\r\n");
portEXIT_CRITICAL_SAFE(&spinlock);
}
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED)
#if CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC
#define BLE_SM_KEY_ERR 0x17
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#include "mbedtls/aes.h"
#if CONFIG_BT_LE_SM_SC
@ -1179,22 +1217,27 @@ void esp_ble_controller_log_dump_all(bool output)
#include "mbedtls/cmac.h"
#include "mbedtls/ecdh.h"
#include "mbedtls/ecp.h"
static mbedtls_ecp_keypair keypair;
#endif // CONFIG_BT_LE_SM_SC
#else
#include "tinycrypt/aes.h"
#include "tinycrypt/constants.h"
#include "tinycrypt/utils.h"
#if CONFIG_BT_LE_SM_SC
#include "tinycrypt/cmac_mode.h"
#include "tinycrypt/ecc_dh.h"
#endif // CONFIG_BT_LE_SM_SC
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#if CONFIG_BT_LE_SM_SC
static mbedtls_ecp_keypair keypair;
#endif // CONFIG_BT_LE_SM_SC
#endif// CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/* Based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
};
int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
const uint8_t *our_priv_key, uint8_t *out_dhkey)
@ -1241,8 +1284,7 @@ int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_
}
/* Set PRNG */
if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
NULL, 0)) != 0) {
if ((rc = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, NULL, 0)) != 0) {
goto exit;
}
@ -1292,19 +1334,10 @@ exit:
return 0;
}
/* based on Core Specification 4.2 Vol 3. Part H 2.3.5.6.1 */
static const uint8_t ble_sm_alg_dbg_priv_key[32] = {
0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3,
0xd2, 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99,
0x58, 0x99, 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd
};
#if CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
static int mbedtls_gen_keypair(uint8_t *public_key, uint8_t *private_key)
{
int rc = BLE_SM_KEY_ERR;
size_t olen = 0;
uint8_t pub[65] = {0};
mbedtls_entropy_context entropy = {0};
mbedtls_ctr_drbg_context ctr_drbg = {0};
@ -1326,11 +1359,11 @@ static int mbedtls_gen_keypair(uint8_t *public_key, uint8_t *private_key)
goto exit;
}
size_t olen = 0;
uint8_t pub[65] = {0};
if ((rc = mbedtls_ecp_point_write_binary(&keypair.MBEDTLS_PRIVATE(grp),
&keypair.MBEDTLS_PRIVATE(Q),
MBEDTLS_ECP_PF_UNCOMPRESSED,
&olen, pub, 65)) != 0) {
if ((rc = mbedtls_ecp_point_write_binary(&keypair.MBEDTLS_PRIVATE(grp), &keypair.MBEDTLS_PRIVATE(Q), MBEDTLS_ECP_PF_UNCOMPRESSED,
&olen, pub, 65)) != 0) {
goto exit;
}
@ -1346,7 +1379,7 @@ exit:
return 0;
}
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/**
* pub: 64 bytes
@ -1370,7 +1403,7 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
if (uECC_make_key(pk, priv, &curve_secp256r1) != TC_CRYPTO_SUCCESS) {
return BLE_SM_KEY_ERR;
}
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
#endif // CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS
/* Make sure generated key isn't debug key. */
} while (memcmp(priv, ble_sm_alg_dbg_priv_key, 32) == 0);
@ -1378,7 +1411,9 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv)
swap_buf(&pub[32], &pk[32], 32);
swap_in_place(priv, 32);
#endif // CONFIG_BT_LE_SM_SC_DEBUG_KEYS
return 0;
}
#endif // (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)
#endif // CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC
#endif // (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED)

View File

@ -40,6 +40,11 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT)
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT)
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED MYNEWT_VAL(BLE_POWER_CONTROL)
#if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif
#else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@ -119,6 +124,12 @@ extern "C" {
#else
#define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (0)
#endif
#if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT)
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1)
#else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF

View File

@ -6,6 +6,15 @@ if BLE_MESH
help
It is a temporary solution and needs further modifications.
config BLE_MESH_RANDOM_ADV_INTERVAL
bool "Support using random adv interval for mesh packets"
select BT_BLE_HIGH_DUTY_ADV_INTERVAL if BT_BLUEDROID_ENABLED
default n
help
Enable this option to allow using random advertising interval
for mesh packets. And this could help avoid collision of
advertising packets.
config BLE_MESH_USE_DUPLICATE_SCAN
bool "Support Duplicate Scan in BLE Mesh"
select BTDM_BLE_SCAN_DUPL if IDF_TARGET_ESP32
@ -14,6 +23,7 @@ if BLE_MESH
select BT_CTRL_BLE_MESH_SCAN_DUPL_EN if IDF_TARGET_ESP32C3
select BT_LE_SCAN_DUPL if IDF_TARGET_ESP32C6
select BT_LE_SCAN_DUPL if IDF_TARGET_ESP32H2
select BT_NIMBLE_VS_SUPPORT if BT_NIMBLE_ENABLED
default y
help
Enable this option to allow using specific duplicate scan filter
@ -614,6 +624,21 @@ if BLE_MESH
Provisioner can provision up to 20 nodes and each node contains two elements,
then the replay protection list size of Provisioner should be at least 40.
config BLE_MESH_NOT_RELAY_REPLAY_MSG
bool "Not relay replayed messages in a mesh network"
depends on BLE_MESH_EXPERIMENTAL
default n
help
There may be many expired messages in a complex mesh network that would be
considered replayed messages.
Enable this option will refuse to relay such messages, which could help to
reduce invalid packets in the mesh network.
However, it should be noted that enabling this option may result in packet
loss in certain environments.
Therefore, users need to decide whether to enable this option according to
the actual usage situation.
config BLE_MESH_MSG_CACHE_SIZE
int "Network message cache size"
default 10
@ -678,6 +703,13 @@ if BLE_MESH
When the above situation is encountered, this option can be used to decide whether
to perform the IV index recovery procedure.
config BLE_MESH_SAR_ENHANCEMENT
bool "Segmentation and reassembly enhancement"
default n
help
Enable this option to use the enhanced segmentation and reassembly
mechanism introduced in Bluetooth Mesh Protocol 1.1.
config BLE_MESH_TX_SEG_MSG_COUNT
int "Maximum number of simultaneous outgoing segmented messages"
default 1
@ -1091,6 +1123,16 @@ if BLE_MESH
help
Maximum number of Bridging Table entries that the Bridge Configuration Server can support.
config BLE_MESH_BRIDGE_CRPL
int "Maximum capacity of bridge replay protection list"
default 5
range 1 255
help
This option specifies the maximum capacity of the bridge replay
protection list. The bridge replay protection list is used to
prevent a bridged subnet from replay attack, which will store the
source address and sequence number of the received bridge messages.
endif #BLE_MESH_BRC_SRV
config BLE_MESH_PRB_CLI
@ -1424,7 +1466,7 @@ if BLE_MESH
config BLE_MESH_MBT_CLI
bool "BLOB Transfer Client model"
default y
default n
help
Enable support for BLOB Transfer Client model.
@ -1442,7 +1484,7 @@ if BLE_MESH
config BLE_MESH_MBT_SRV
bool "BLOB Transfer Server model"
default y
default n
help
Enable support for BLOB Transfer Server model.
@ -1474,6 +1516,7 @@ if BLE_MESH
config BLE_MESH_BQB_TEST
bool "Enable BLE Mesh specific internal test"
select BLE_MESH_IV_UPDATE_TEST
default n
help
This option is used to enable some internal functions for auto-pts test.
@ -1579,4 +1622,12 @@ if BLE_MESH
endmenu
config BLE_MESH_EXPERIMENTAL
bool "Make BLE Mesh experimental features visible"
default n
help
Make BLE Mesh Experimental features visible.
Experimental features list:
- CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
endif # BLE_MESH

View File

@ -16,6 +16,6 @@ The ESP-BLE-MESH networking enables many-to-many (m:m) device communications and
- [API Reference](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/bluetooth/esp-ble-mesh.html)
### [ESP-BLE-MESH Examples](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/esp_ble_mesh)
### [ESP-BLE-MESH Examples](../../../examples/bluetooth/esp_ble_mesh)
- Refer to **ESP-BLE-MESH Examples** of [Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp-ble-mesh/ble-mesh-index.html#getting-started-with-esp-ble-mesh) for the tutorials of ESP BLE Mesh examples.

View File

@ -65,7 +65,9 @@ esp_err_t esp_ble_mesh_init(esp_ble_mesh_prov_t *prov, esp_ble_mesh_comp_t *comp
esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
{
btc_ble_mesh_prov_args_t arg = {0};
SemaphoreHandle_t semaphore = NULL;
btc_msg_t msg = {0};
esp_err_t ret = ESP_OK;
if (param == NULL) {
return ESP_ERR_INVALID_ARG;
@ -73,13 +75,36 @@ esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
// Create a semaphore
if ((semaphore = xSemaphoreCreateCounting(1, 0)) == NULL) {
BT_ERR("Failed to create semaphore");
return ESP_ERR_NO_MEM;
}
arg.mesh_deinit.param.erase_flash = param->erase_flash;
/* Transport semaphore pointer to BTC layer, and will give the semaphore in the BTC task */
arg.mesh_deinit.semaphore = semaphore;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_DEINIT_MESH;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
if (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL) != BT_STATUS_SUCCESS) {
vSemaphoreDelete(semaphore);
BT_ERR("Failed to start mesh deinit");
return ESP_FAIL;
}
/* Take the Semaphore, wait BLE Mesh de-initialization to finish. */
xSemaphoreTake(semaphore, portMAX_DELAY);
/* Don't forget to delete the semaphore at the end. */
vSemaphoreDelete(semaphore);
ret = bt_mesh_host_deinit();
if (ret != ESP_OK) {
return ret;
}
return ESP_OK;
}
#endif /* CONFIG_BLE_MESH_DEINIT */

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -576,9 +576,9 @@ esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_info(uint8_t op, esp_ble
return ESP_ERR_INVALID_ARG;
}
if (!ESP_BLE_MESH_ADDR_IS_UNICAST(info->hb_src) &&
!ESP_BLE_MESH_ADDR_IS_UNICAST(info->hb_dst) &&
!ESP_BLE_MESH_ADDR_IS_GROUP(info->hb_dst)) {
if (!(ESP_BLE_MESH_ADDR_IS_UNICAST(info->hb_src) &&
(ESP_BLE_MESH_ADDR_IS_UNICAST(info->hb_dst) ||
ESP_BLE_MESH_ADDR_IS_GROUP(info->hb_dst)))) {
return ESP_ERR_INVALID_ARG;
}

View File

@ -53,6 +53,34 @@ esp_err_t esp_ble_mesh_proxy_gatt_disable(void)
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#if CONFIG_BLE_MESH_PRB_SRV
esp_err_t esp_ble_mesh_private_proxy_identity_enable(void)
{
btc_msg_t msg = {0};
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PRIVATE_PROXY_IDENTITY_ENABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_private_proxy_identity_disable(void)
{
btc_msg_t msg = {0};
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PRIVATE_PROXY_IDENTITY_DISABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_PRB_SRV */
esp_err_t esp_ble_mesh_proxy_client_connect(esp_ble_mesh_bd_addr_t addr,
esp_ble_mesh_addr_type_t addr_type,
uint16_t net_idx)

View File

@ -48,6 +48,30 @@ esp_err_t esp_ble_mesh_proxy_gatt_enable(void);
*/
esp_err_t esp_ble_mesh_proxy_gatt_disable(void);
/**
* @brief Enable advertising with Private Node Identity.
*
* @note This API requires that GATT Proxy support be enabled. Once called,
* each subnet starts advertising using Private Node Identity for the
* next 60 seconds, and after 60s Private Network ID will be advertised.
* Under normal conditions, the BLE Mesh Proxy Node Identity, Network
* ID advertising, Proxy Private Node Identity and Private Network
* ID advertising will be enabled automatically by BLE Mesh stack
* after the device is provisioned.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_private_proxy_identity_enable(void);
/**
* @brief Disable advertising with Private Node Identity.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_private_proxy_identity_disable(void);
/**
* @brief Proxy Client creates a connection with the Proxy Server.
*

View File

@ -71,6 +71,14 @@ typedef uint8_t esp_ble_mesh_octet8_t[ESP_BLE_MESH_OCTET8_LEN];
#define ESP_BLE_MESH_KEY_PRIMARY 0x0000
#define ESP_BLE_MESH_KEY_ANY 0xFFFF
/*!< Internal macros used to initialize array members */
#define ESP_BLE_MESH_KEY_UNUSED_ELT_(IDX, _) ESP_BLE_MESH_KEY_UNUSED
#define ESP_BLE_MESH_ADDR_UNASSIGNED_ELT_(IDX, _) ESP_BLE_MESH_ADDR_UNASSIGNED
#define ESP_BLE_MESH_MODEL_KEYS_UNUSED \
{ LISTIFY(CONFIG_BLE_MESH_MODEL_KEY_COUNT, ESP_BLE_MESH_KEY_UNUSED_ELT_, (,)) }
#define ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED \
{ LISTIFY(CONFIG_BLE_MESH_MODEL_GROUP_COUNT, ESP_BLE_MESH_ADDR_UNASSIGNED_ELT_, (,)) }
/*!< Primary Network Key index */
#define ESP_BLE_MESH_NET_PRIMARY 0x000
@ -286,26 +294,24 @@ typedef enum {
#define ESP_BLE_MESH_SIG_MODEL(_id, _op, _pub, _user_data) \
{ \
.model_id = (_id), \
.op = _op, \
.keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
ESP_BLE_MESH_KEY_UNUSED }, \
.pub = _pub, \
.groups = { [0 ... (CONFIG_BLE_MESH_MODEL_GROUP_COUNT - 1)] = \
ESP_BLE_MESH_ADDR_UNASSIGNED }, \
.keys = ESP_BLE_MESH_MODEL_KEYS_UNUSED, \
.groups = ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED, \
.op = _op, \
.user_data = _user_data, \
}
/*!< This macro is associated with BLE_MESH_MODEL_VND_CB in mesh_access.h */
#define ESP_BLE_MESH_VENDOR_MODEL(_company, _id, _op, _pub, _user_data) \
{ \
.vnd.company_id = (_company), \
.vnd.model_id = (_id), \
.op = _op, \
.vnd = { \
.company_id = (_company), \
.model_id = (_id), \
}, \
.pub = _pub, \
.keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
ESP_BLE_MESH_KEY_UNUSED }, \
.groups = { [0 ... (CONFIG_BLE_MESH_MODEL_GROUP_COUNT - 1)] = \
ESP_BLE_MESH_ADDR_UNASSIGNED }, \
.keys = ESP_BLE_MESH_MODEL_KEYS_UNUSED, \
.groups = ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED, \
.op = _op, \
.user_data = _user_data, \
}
@ -324,8 +330,8 @@ typedef enum {
{ \
.location = (_loc), \
.sig_model_count = ARRAY_SIZE(_mods), \
.sig_models = (_mods), \
.vnd_model_count = ARRAY_SIZE(_vnd_mods), \
.sig_models = (_mods), \
.vnd_models = (_vnd_mods), \
}
@ -492,8 +498,9 @@ typedef struct {
#define ESP_BLE_MESH_MODEL_PUB_DEFINE(_name, _msg_len, _role) \
NET_BUF_SIMPLE_DEFINE_STATIC(bt_mesh_pub_msg_##_name, _msg_len); \
static esp_ble_mesh_model_pub_t _name = { \
.update = (uint32_t)NULL, \
.msg = &bt_mesh_pub_msg_##_name, \
.update = (uint32_t)NULL, \
.dev_role = _role, \
}
/** @def ESP_BLE_MESH_MODEL_OP
@ -916,6 +923,8 @@ typedef enum {
ESP_BLE_MESH_NODE_PROV_INPUT_NUMBER_COMP_EVT, /*!< Node input number completion event */
ESP_BLE_MESH_NODE_PROV_INPUT_STRING_COMP_EVT, /*!< Node input string completion event */
ESP_BLE_MESH_NODE_PROXY_IDENTITY_ENABLE_COMP_EVT, /*!< Enable BLE Mesh Proxy Identity advertising completion event */
ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_ENABLE_COMP_EVT, /*!< Enable BLE Mesh Private Proxy Identity advertising completion event */
ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_DISABLE_COMP_EVT, /*!< Disable BLE Mesh Private Proxy Identity advertising completion event */
ESP_BLE_MESH_NODE_PROXY_GATT_ENABLE_COMP_EVT, /*!< Enable BLE Mesh GATT Proxy Service completion event */
ESP_BLE_MESH_NODE_PROXY_GATT_DISABLE_COMP_EVT, /*!< Disable BLE Mesh GATT Proxy Service completion event */
ESP_BLE_MESH_NODE_ADD_LOCAL_NET_KEY_COMP_EVT, /*!< Node add NetKey locally completion event */
@ -1109,6 +1118,18 @@ typedef union {
struct ble_mesh_proxy_gatt_disable_comp_param {
int err_code; /*!< Indicate the result of disabling Mesh Proxy Service */
} node_proxy_gatt_disable_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_PROXY_GATT_DISABLE_COMP_EVT */
/**
* @brief ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_ENABLE_COMP_EVT
*/
struct ble_mesh_proxy_private_identity_enable_comp_param {
int err_code; /*!< Indicate the result of enabling Mesh Proxy private advertising */
} node_private_proxy_identity_enable_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_ENABLE_COMP_EVT */
/**
* @brief ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_DISABLE_COMP_EVT
*/
struct ble_mesh_proxy_private_identity_disable_comp_param {
int err_code; /*!< Indicate the result of disabling Mesh Proxy private advertising */
} node_private_proxy_identity_disable_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_DISABLE_COMP_EVT */
/**
* @brief ESP_BLE_MESH_NODE_ADD_LOCAL_NET_KEY_COMP_EVT
*/

View File

@ -2368,6 +2368,16 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
act = ESP_BLE_MESH_NODE_PROXY_GATT_DISABLE_COMP_EVT;
param.node_proxy_gatt_disable_comp.err_code = bt_mesh_proxy_server_gatt_disable();
break;
#if CONFIG_BLE_MESH_PRB_SRV
case BTC_BLE_MESH_ACT_PRIVATE_PROXY_IDENTITY_ENABLE:
act = ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_ENABLE_COMP_EVT;
param.node_private_proxy_identity_enable_comp.err_code = bt_mesh_proxy_private_identity_enable();
break;
case BTC_BLE_MESH_ACT_PRIVATE_PROXY_IDENTITY_DISABLE:
act = ESP_BLE_MESH_NODE_PRIVATE_PROXY_IDENTITY_DISABLE_COMP_EVT;
param.node_private_proxy_identity_disable_comp.err_code = bt_mesh_proxy_private_identity_disable();
break;
#endif /* CONFIG_BLE_MESH_PRB_SRV */
#endif /* CONFIG_BLE_MESH_GATT_PROXY_SERVER */
#endif /* (CONFIG_BLE_MESH_NODE && CONFIG_BLE_MESH_PB_GATT) || CONFIG_BLE_MESH_GATT_PROXY_SERVER */
#if CONFIG_BLE_MESH_PROVISIONER
@ -2815,6 +2825,8 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
case BTC_BLE_MESH_ACT_DEINIT_MESH:
act = ESP_BLE_MESH_DEINIT_MESH_COMP_EVT;
param.deinit_mesh_comp.err_code = bt_mesh_deinit((struct bt_mesh_deinit_param *)&arg->mesh_deinit.param);
/* Give the semaphore when BLE Mesh de-initialization is finished. */
xSemaphoreGive(arg->mesh_deinit.semaphore);
break;
#endif /* CONFIG_BLE_MESH_DEINIT */
default:

View File

@ -28,6 +28,8 @@ typedef enum {
BTC_BLE_MESH_ACT_INPUT_STRING,
BTC_BLE_MESH_ACT_SET_DEVICE_NAME,
BTC_BLE_MESH_ACT_PROXY_IDENTITY_ENABLE,
BTC_BLE_MESH_ACT_PRIVATE_PROXY_IDENTITY_ENABLE,
BTC_BLE_MESH_ACT_PRIVATE_PROXY_IDENTITY_DISABLE,
BTC_BLE_MESH_ACT_PROXY_GATT_ENABLE,
BTC_BLE_MESH_ACT_PROXY_GATT_DISABLE,
BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_NET_KEY,
@ -339,6 +341,7 @@ typedef union {
} model_unsub_group_addr;
struct ble_mesh_deinit_args {
esp_ble_mesh_deinit_param_t param;
SemaphoreHandle_t semaphore;
} mesh_deinit;
} btc_ble_mesh_prov_args_t;

View File

@ -85,3 +85,8 @@ int bt_mesh_rand(void *buf, size_t len)
return 0;
}
uint32_t bt_mesh_get_rand(void)
{
return esp_random();
}

View File

@ -840,22 +840,22 @@ struct net_buf_pool {
#if CONFIG_BLE_MESH_NET_BUF_POOL_USAGE
#define NET_BUF_POOL_INITIALIZER(_pool, _alloc, _bufs, _count, _destroy) \
{ \
.alloc = _alloc, \
.__bufs = (struct net_buf *)_bufs, \
.buf_count = _count, \
.uninit_count = _count, \
.avail_count = _count, \
.destroy = _destroy, \
.name = STRINGIFY(_pool), \
.destroy = _destroy, \
.alloc = _alloc, \
.__bufs = (struct net_buf *)_bufs, \
}
#else
#define NET_BUF_POOL_INITIALIZER(_pool, _alloc, _bufs, _count, _destroy) \
{ \
.alloc = _alloc, \
.__bufs = (struct net_buf *)_bufs, \
.buf_count = _count, \
.uninit_count = _count, \
.destroy = _destroy, \
.alloc = _alloc, \
.__bufs = (struct net_buf *)_bufs, \
}
#endif /* CONFIG_BLE_MESH_NET_BUF_POOL_USAGE */

View File

@ -53,6 +53,8 @@ void bt_mesh_free_buf(struct net_buf_simple *buf);
int bt_mesh_rand(void *buf, size_t len);
uint32_t bt_mesh_get_rand(void);
#ifdef __cplusplus
}
#endif

View File

@ -17,6 +17,7 @@
#include <stddef.h>
#include "esp_bit_defs.h"
#include "mesh/types.h"
#include "utils_loops.h"
#ifdef __cplusplus
extern "C" {
@ -180,6 +181,40 @@ extern "C" {
*/
#define Z_IS_ENABLED3(ignore_this, val, ...) val
/* Used to remove brackets from around a single argument. */
#define __DEBRACKET(...) __VA_ARGS__
#define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)
#define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__
/**
* @brief Generates a sequence of code with configurable separator.
*
* Example:
*
* #define FOO(i, _) MY_PWM ## i
* { LISTIFY(PWM_COUNT, FOO, (,)) }
*
* The above two lines expand to:
*
* { MY_PWM0 , MY_PWM1 }
*
* @param LEN The length of the sequence. Must be an integer literal less
* than 255.
* @param F A macro function that accepts at least two arguments:
* <tt>F(i, ...)</tt>. @p F is called repeatedly in the expansion.
* Its first argument @p i is the index in the sequence, and
* the variable list of arguments passed to LISTIFY are passed
* through to @p F.
*
* @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
* this is required to enable providing a comma as separator.
*
* @note Calling LISTIFY with undefined arguments has undefined
* behavior.
*/
#define LISTIFY(LEN, F, sep, ...) UTIL_CAT(Z_UTIL_LISTIFY_, LEN)(F, sep, __VA_ARGS__)
const char *bt_hex(const void *buf, size_t len);
void mem_rcopy(uint8_t *dst, uint8_t const *src, uint16_t len);

File diff suppressed because it is too large Load Diff

View File

@ -207,7 +207,7 @@ int k_delayed_work_free(struct k_delayed_work *work)
alarm = hash_map_get(bm_alarm_hash_map, work);
if (alarm == NULL) {
BT_WARN("Free, alarm not found");
BT_DBG("Free, alarm not found");
bt_mesh_alarm_unlock();
return -EINVAL;
}

View File

@ -964,6 +964,9 @@ int bt_mesh_model_publish(struct bt_mesh_model *model)
ctx.send_ttl = pub->ttl;
ctx.send_cred = pub->cred ? BLE_MESH_FRIENDSHIP_CRED : BLE_MESH_FLOODING_CRED;
ctx.send_szmic = pub->send_szmic;
#if 0
ctx.send_tag |= BLE_MESH_TAG_IMMUTABLE_CRED;
#endif
if (pub->send_rel) {
/* Tag with send-segmented */
ctx.send_tag |= BLE_MESH_TAG_SEND_SEGMENTED;

View File

@ -32,8 +32,11 @@
/* Pre-5.0 controllers enforce a minimum interval of 100ms
* whereas 5.0+ controllers can go down to 20ms.
*/
#define ADV_INT_DEFAULT_MS 100
#define ADV_INT_FAST_MS 20
#if CONFIG_BLE_MESH_HCI_5_0
#define ADV_ITVL_MIN 20
#else
#define ADV_ITVL_MIN 100
#endif
static const uint8_t adv_type[] = {
[BLE_MESH_ADV_PROV] = BLE_MESH_DATA_MESH_PROV,
@ -141,10 +144,19 @@ static inline void adv_send_end(int err, const struct bt_mesh_send_cb *cb,
}
}
uint16_t bt_mesh_pdu_duration(uint8_t xmit)
{
uint16_t duration = 0U;
uint16_t adv_int = 0U;
adv_int = MAX(ADV_ITVL_MIN, BLE_MESH_TRANSMIT_INT(xmit));
duration = (BLE_MESH_TRANSMIT_COUNT(xmit) + 1) * (adv_int + 10);
return duration;
}
static inline int adv_send(struct net_buf *buf)
{
const int32_t adv_int_min = ((bt_mesh_dev.hci_version >= BLE_MESH_HCI_VERSION_5_0) ?
ADV_INT_FAST_MS : ADV_INT_DEFAULT_MS);
const struct bt_mesh_send_cb *cb = BLE_MESH_ADV(buf)->cb;
void *cb_data = BLE_MESH_ADV(buf)->cb_data;
struct bt_mesh_adv_param param = {0};
@ -158,7 +170,7 @@ static inline int adv_send(struct net_buf *buf)
#if CONFIG_BLE_MESH_SUPPORT_BLE_ADV
if (BLE_MESH_ADV(buf)->type != BLE_MESH_ADV_BLE) {
#endif
adv_int = MAX(adv_int_min,
adv_int = MAX(ADV_ITVL_MIN,
BLE_MESH_TRANSMIT_INT(BLE_MESH_ADV(buf)->xmit));
duration = (BLE_MESH_TRANSMIT_COUNT(BLE_MESH_ADV(buf)->xmit) + 1) *
(adv_int + 10);
@ -180,7 +192,7 @@ static inline int adv_send(struct net_buf *buf)
bt_mesh_adv_buf_ref_debug(__func__, buf, 3U, BLE_MESH_BUF_REF_SMALL);
struct bt_mesh_adv_data solic_ad[3] = {
BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_FLAGS, (BLE_MESH_AD_GENERAL | BLE_MESH_AD_NO_BREDR)),
BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_UUID16_ALL, 0x29, 0x18),
BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_UUID16_ALL, 0x59, 0x18),
BLE_MESH_ADV_DATA(BLE_MESH_DATA_SVC_DATA16, buf->data, buf->len),
};
err = bt_le_adv_start(&param, solic_ad, 3, NULL, 0);

View File

@ -25,6 +25,8 @@ extern "C" {
#define BLE_MESH_ADV(buf) (*(struct bt_mesh_adv **)net_buf_user_data(buf))
uint16_t bt_mesh_pdu_duration(uint8_t xmit);
typedef struct bt_mesh_msg {
bool relay; /* Flag indicates if the packet is a relayed one */
void *arg; /* Pointer to the struct net_buf */

View File

@ -30,6 +30,7 @@
#include "mesh/common.h"
#include "prov_pvnr.h"
#include "net.h"
#include "beacon.h"
#include "mesh_v1.1/utils.h"
@ -106,6 +107,11 @@ int bt_mesh_host_init(void)
return 0;
}
int bt_mesh_host_deinit(void)
{
return 0;
}
void bt_mesh_hci_init(void)
{
const uint8_t *features = controller_get_interface()->get_features_ble()->as_array;
@ -323,6 +329,7 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
tBLE_ADDR_TYPE addr_type_own = 0U;
tBLE_BD_ADDR p_dir_bda = {0};
tBTM_BLE_AFP adv_fil_pol = 0U;
uint16_t interval = 0U;
uint8_t adv_type = 0U;
int err = 0;
@ -369,7 +376,15 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
}
#if CONFIG_BLE_MESH_PRB_SRV
addr_type_own = bt_mesh_private_beacon_update_addr_type(ad);
/* NOTE: When a Mesh Private beacon is advertised, the Mesh Private beacon shall
* use a resolvable private address or a non-resolvable private address in the
* AdvA field of the advertising PDU.
*/
if (ad->type == BLE_MESH_DATA_MESH_BEACON && ad->data[0] == BEACON_TYPE_PRIVATE) {
addr_type_own = BLE_MESH_ADDR_RANDOM;
} else {
addr_type_own = BLE_MESH_ADDR_PUBLIC;
}
#else
addr_type_own = BLE_MESH_ADDR_PUBLIC;
#endif
@ -378,9 +393,24 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
adv_fil_pol = BLE_MESH_AP_SCAN_CONN_ALL;
p_start_adv_cb = start_adv_completed_cb;
interval = param->interval_min;
#if CONFIG_BLE_MESH_RANDOM_ADV_INTERVAL
/* If non-connectable mesh packets are transmitted with an adv interval
* not smaller than 10ms, then we will use a random adv interval between
* [interval / 2, interval] for them.
*/
if (adv_type == BLE_MESH_ADV_NONCONN_IND && interval >= 16) {
interval >>= 1;
interval += (bt_mesh_get_rand() % (interval + 1));
BT_INFO("%u->%u", param->interval_min, interval);
}
#endif
/* Check if we can start adv using BTM_BleSetAdvParamsStartAdvCheck */
BLE_MESH_BTM_CHECK_STATUS(
BTM_BleSetAdvParamsAll(param->interval_min, param->interval_max, adv_type,
BTM_BleSetAdvParamsAll(interval, interval, adv_type,
addr_type_own, &p_dir_bda,
channel_map, adv_fil_pol, p_start_adv_cb));
BLE_MESH_BTM_CHECK_STATUS(BTM_BleStartAdv());
@ -1102,7 +1132,7 @@ int bt_mesh_gatts_service_start(struct bt_mesh_gatt_service *svc)
int bt_mesh_gatts_set_local_device_name(const char *name)
{
BTM_SetLocalDeviceName((char *)name);
BTM_SetLocalDeviceName((char *)name, BT_DEVICE_TYPE_BLE);
return 0;
}
@ -1451,7 +1481,7 @@ static void bt_mesh_bta_gattc_cb(tBTA_GATTC_EVT event, tBTA_GATTC *p_data)
result = NULL;
}
/* Register Notification fot Mesh Provisioning/Proxy Data Out Characteristic */
/* Register Notification for Mesh Provisioning/Proxy Data Out Characteristic */
status = BTA_GATTC_RegisterForNotifications(bt_mesh_gattc_if, bt_mesh_gattc_info[i].addr.val,
bt_mesh_gattc_info[i].data_out_handle);
if (status != BTA_GATT_OK) {
@ -1978,7 +2008,7 @@ int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info)
if ((sub_code > BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN) ||
(sub_code < BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN &&
type > BLE_MESH_EXCEP_LIST_TYPE_MESH_PROXY_ADV) ||
type >= BLE_MESH_EXCEP_LIST_TYPE_MAX) ||
(sub_code == BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN &&
!(type & BLE_MESH_EXCEP_LIST_CLEAN_ALL_LIST))) {
BT_ERR("%s, Invalid parameter", __func__);
@ -1990,6 +2020,16 @@ int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info)
BT_ERR("Invalid Provisioning Link ID");
return -EINVAL;
}
/* When removing an unused link (i.e., Link ID is 0), and since
* Controller has never added this Link ID, it will cause error
* log been wrongly reported.
* Therefore, add this check here to avoid such occurrences.
*/
if (*(uint32_t *)info == 0) {
return 0;
}
sys_memcpy_swap(value, info, sizeof(uint32_t));
}

View File

@ -2,7 +2,7 @@
/*
* SPDX-FileCopyrightText: 2017 Intel Corporation
* SPDX-FileContributor: 2018-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2018-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -2514,7 +2514,7 @@ static void node_identity_set(struct bt_mesh_model *model,
* any subnet is 0x01, then the value of the Private Node
* Identity state shall be Disable (0x00).
*/
disable_all_private_node_identity();
bt_mesh_proxy_private_identity_disable();
#endif
bt_mesh_proxy_server_identity_start(sub);
} else {
@ -3575,6 +3575,17 @@ uint8_t bt_mesh_net_transmit_get(void)
return 0;
}
void bt_mesh_relay_local_set(bool enable)
{
if (conf && conf->relay != BLE_MESH_RELAY_NOT_SUPPORTED) {
if (enable) {
conf->relay = BLE_MESH_RELAY_ENABLED;
} else {
conf->relay = BLE_MESH_RELAY_DISABLED;
}
}
}
uint8_t bt_mesh_relay_get(void)
{
if (conf) {

View File

@ -246,10 +246,10 @@ extern "C" {
/* Defines the status codes for Opcodes Aggregator messages. */
#define AGG_STATUS_SUCCESS 0x00
#define AGG_STATUS_INVALID_ADDRESS 0x01
#define AGG_STATUS_INVALID_MODEL 0x02
#define AGG_STATUS_WRONG_ACCESS_KEY 0x03
#define AGG_STATUS_WRONG_OPCODE 0x04
#define AGG_STATUS_MSG_NOT_UNDERSTOOD 0x05
#define AGG_STATUS_WRONG_ACCESS_KEY 0x02
#define AGG_STATUS_WRONG_OPCODE 0x03
#define AGG_STATUS_MSG_NOT_UNDERSTOOD 0x04
#define AGG_STATUS_RESPONSE_OVERFLOW 0x05
enum {
BLE_MESH_VA_CHANGED, /* Label information changed */

View File

@ -4,7 +4,7 @@
/*
* SPDX-FileCopyrightText: 2017 Intel Corporation
* SPDX-FileContributor: 2018-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2018-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -54,8 +54,8 @@ extern "C" {
{ \
.loc = (_loc), \
.model_count = ARRAY_SIZE(_mods), \
.models = (_mods), \
.vnd_model_count = ARRAY_SIZE(_vnd_mods), \
.models = (_mods), \
.vnd_models = (_vnd_mods), \
}
@ -306,14 +306,12 @@ struct bt_mesh_model_op {
#define BLE_MESH_MODEL_CB(_id, _op, _pub, _user_data, _cb) \
{ \
.id = (_id), \
.op = (_op), \
.keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
BLE_MESH_KEY_UNUSED }, \
.pub = (_pub), \
.groups = { [0 ... (CONFIG_BLE_MESH_MODEL_GROUP_COUNT - 1)] = \
BLE_MESH_ADDR_UNASSIGNED }, \
.user_data = (_user_data), \
.keys = ESP_BLE_MESH_MODEL_KEYS_UNUSED, \
.groups = ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED, \
.op = (_op), \
.cb = (_cb), \
.user_data = (_user_data), \
}
/** @def BLE_MESH_MODEL_VND_CB
@ -331,14 +329,12 @@ struct bt_mesh_model_op {
{ \
.vnd.company = (_company), \
.vnd.id = (_id), \
.op = (_op), \
.pub = (_pub), \
.keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
BLE_MESH_KEY_UNUSED }, \
.groups = { [0 ... (CONFIG_BLE_MESH_MODEL_GROUP_COUNT - 1)] = \
BLE_MESH_ADDR_UNASSIGNED }, \
.user_data = (_user_data), \
.keys = ESP_BLE_MESH_MODEL_KEYS_UNUSED, \
.groups = ESP_BLE_MESH_MODEL_GROUPS_UNASSIGNED, \
.op = (_op), \
.cb = (_cb), \
.user_data = (_user_data), \
}
/** @def BLE_MESH_TRANSMIT
@ -475,8 +471,8 @@ struct bt_mesh_model_pub {
#define BLE_MESH_MODEL_PUB_DEFINE(_name, _update, _msg_len) \
NET_BUF_SIMPLE_DEFINE_STATIC(bt_mesh_pub_msg_##_name, _msg_len); \
static struct bt_mesh_model_pub _name = { \
.update = _update, \
.msg = &bt_mesh_pub_msg_##_name, \
.update = _update, \
}
/** Model callback functions. */

View File

@ -596,9 +596,9 @@ struct bt_mesh_gatt_attr {
#define BLE_MESH_GATT_PRIMARY_SERVICE(_service) \
{ \
.uuid = BLE_MESH_UUID_GATT_PRIMARY, \
.perm = BLE_MESH_GATT_PERM_READ, \
.read = bt_mesh_gatts_attr_read_service, \
.user_data = _service, \
.perm = BLE_MESH_GATT_PERM_READ, \
}
/** @def BLE_MESH_GATT_SECONDARY_SERVICE
@ -611,9 +611,9 @@ struct bt_mesh_gatt_attr {
#define BLE_MESH_GATT_SECONDARY_SERVICE(_service) \
{ \
.uuid = BLE_MESH_UUID_GATT_SECONDARY, \
.perm = BLE_MESH_GATT_PERM_READ, \
.read = bt_mesh_gatts_attr_read_service, \
.user_data = _service, \
.perm = BLE_MESH_GATT_PERM_READ, \
}
/** @def BLE_MESH_GATT_INCLUDE_SERVICE
@ -626,9 +626,9 @@ struct bt_mesh_gatt_attr {
#define BLE_MESH_GATT_INCLUDE_SERVICE(_service_incl) \
{ \
.uuid = BLE_MESH_UUID_GATT_INCLUDE, \
.perm = BLE_MESH_GATT_PERM_READ, \
.read = bt_mesh_gatts_attr_read_included, \
.user_data = _service_incl, \
.perm = BLE_MESH_GATT_PERM_READ, \
}
/** @def BLE_MESH_GATT_CHARACTERISTIC
@ -642,10 +642,10 @@ struct bt_mesh_gatt_attr {
#define BLE_MESH_GATT_CHARACTERISTIC(_uuid, _props) \
{ \
.uuid = BLE_MESH_UUID_GATT_CHRC, \
.perm = BLE_MESH_GATT_PERM_READ, \
.read = bt_mesh_gatts_attr_read_chrc, \
.user_data = (&(struct bt_mesh_gatt_char) { .uuid = _uuid, \
.properties = _props, }), \
.perm = BLE_MESH_GATT_PERM_READ, \
}
/** @def BLE_MESH_GATT_DESCRIPTOR
@ -662,10 +662,10 @@ struct bt_mesh_gatt_attr {
#define BLE_MESH_GATT_DESCRIPTOR(_uuid, _perm, _read, _write, _value) \
{ \
.uuid = _uuid, \
.perm = _perm, \
.read = _read, \
.write = _write, \
.user_data = _value, \
.perm = _perm, \
}
/** @def BLE_MESH_GATT_SERVICE
@ -682,6 +682,7 @@ struct bt_mesh_gatt_attr {
}
int bt_mesh_host_init(void);
int bt_mesh_host_deinit(void);
int bt_le_adv_start(const struct bt_mesh_adv_param *param,
const struct bt_mesh_adv_data *ad, size_t ad_len,
@ -810,6 +811,9 @@ enum {
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROV_ADV,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROXY_ADV,
BLE_MESH_EXCEP_LIST_TYPE_MESH_SOLIC_PDU,
BLE_MESH_EXCEP_LIST_TYPE_MESH_URI,
BLE_MESH_EXCEP_LIST_TYPE_MAX,
};
#define BLE_MESH_EXCEP_LIST_CLEAN_ADDR_LIST BIT(0)
@ -817,8 +821,10 @@ enum {
#define BLE_MESH_EXCEP_LIST_CLEAN_MESH_BEACON_LIST BIT(2)
#define BLE_MESH_EXCEP_LIST_CLEAN_MESH_PROV_ADV_LIST BIT(3)
#define BLE_MESH_EXCEP_LIST_CLEAN_MESH_PROXY_ADV_LIST BIT(4)
#define BLE_MESH_EXCEP_LIST_CLEAN_ALL_LIST (BIT(0) | BIT(1) | \
BIT(2) | BIT(3) | BIT(4))
#define BLE_MESH_EXCEP_LIST_CLEAN_MESH_SOLIC_PDU_LIST BIT(5)
#define BLE_MESH_EXCEP_LIST_CLEAN_MESH_URI_LIST BIT(6)
#define BLE_MESH_EXCEP_LIST_CLEAN_ALL_LIST (BIT(0) | BIT(1) | BIT(2) | BIT(3) | \
BIT(4) | BIT(5) | BIT(6))
int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info);

View File

@ -212,6 +212,8 @@ typedef union {
} cfg_net_transmit_set;
} bt_mesh_cfg_server_state_change_t;
void bt_mesh_relay_local_set(bool enable);
#ifdef __cplusplus
}
#endif

View File

@ -141,6 +141,11 @@ struct bt_mesh_uuid_128 {
*/
#define BLE_MESH_UUID_MESH_PROXY BLE_MESH_UUID_DECLARE_16(0x1828)
#define BLE_MESH_UUID_MESH_PROXY_VAL 0x1828
/** @def BLE_MESH_UUID_MESH_PROXY_SOLIC_VAL
* @brief Mesh Proxy Solicitation UUID
*/
#define BLE_MESH_UUID_MESH_PROXY_SOLIC BLE_MESH_UUID_DECLARE_16(0x1859)
#define BLE_MESH_UUID_MESH_PROXY_SOLIC_VAL 0x1859
/** @def BLE_MESH_UUID_GATT_PRIMARY
* @brief GATT Primary Service
*/
@ -466,10 +471,6 @@ struct bt_mesh_uuid_128 {
*/
#define BLE_MESH_UUID_MESH_PROXY_DATA_OUT BLE_MESH_UUID_DECLARE_16(0x2ade)
#define BLE_MESH_UUID_MESH_PROXY_DATA_OUT_VAL 0x2ade
/** @def BLE_MESH_UUID_MESH_PROXY_SOLIC_VAL
* @brief Mesh Proxy Solicitation UUID
*/
#define BLE_MESH_UUID_MESH_PROXY_SOLIC_VAL 0x7fcb
/*
* Protocol UUIDs

View File

@ -148,10 +148,9 @@ int bt_mesh_enable_directed_forwarding(uint16_t net_idx, bool directed_forwardin
return 0;
}
#endif /* CONFIG_BLE_MESH_DF_SRV */
#endif
#if CONFIG_BLE_MESH_NODE
const uint8_t *bt_mesh_node_get_local_net_key(uint16_t net_idx)
{
struct bt_mesh_subnet *sub = NULL;
@ -369,5 +368,4 @@ int bt_mesh_node_bind_app_key_to_model(uint16_t elem_addr, uint16_t mod_id,
BT_ERR("Model bound is full!");
return -ENOMEM;
}
#endif /* CONFIG_BLE_MESH_NODE */

View File

@ -238,6 +238,20 @@ static void clear_friendship(bool force, bool disable)
lpn_cb(lpn->frnd, false);
}
/* If the Low Power node supports directed forwarding functionality when
* the friendship is established in a subnet, the Low Power node shall
* store the current value of the Directed Forwarding state and shall set
* the state to 0x00 for that subnet. When that friendship is terminated,
* the Low Power node shall set the Directed Forwarding state to the stored
* value.
*/
#if CONFIG_BLE_MESH_DF_SRV
if (lpn->established) {
bt_mesh_restore_directed_forwarding_state(bt_mesh.sub[0].net_idx,
lpn->old_directed_forwarding);
}
#endif
lpn->frnd = BLE_MESH_ADDR_UNASSIGNED;
lpn->fsn = 0U;
lpn->req_attempts = 0U;
@ -1027,9 +1041,9 @@ int bt_mesh_lpn_friend_update(struct bt_mesh_net_rx *rx,
* the Low Power node shall set the Directed Forwarding state to the stored
* value.
*/
/* TODO:
* Store - clear - restore directed forwarding state value of the subnet.
*/
#if CONFIG_BLE_MESH_DF_SRV
lpn->old_directed_forwarding = bt_mesh_get_and_disable_directed_forwarding_state(sub);
#endif
}
friend_response_received(lpn);

View File

@ -109,6 +109,11 @@ void bt_mesh_node_reset(void)
return;
}
if (bt_mesh_prov_active()) {
BT_WARN("%s, link is still active", __func__);
return;
}
bt_mesh.iv_index = 0U;
bt_mesh.seq = 0U;

View File

@ -606,6 +606,13 @@ bool bt_mesh_kr_update(struct bt_mesh_subnet *sub, uint8_t new_kr, bool new_key)
case BLE_MESH_KR_PHASE_2:
BT_INFO("KR Phase 0x%02x -> Normal", sub->kr_phase);
#if CONFIG_BLE_MESH_PRB_SRV
/* In this case, consider that kr_flag has changed, so
* need to modify the content of the random field.
*/
bt_mesh_private_beacon_update_random(sub);
#endif
sub->kr_phase = BLE_MESH_KR_NORMAL;
bt_mesh_net_revoke_keys(sub);
@ -669,13 +676,26 @@ bool bt_mesh_net_iv_update(uint32_t iv_index, bool iv_update)
{
int i;
/* If a node in Normal Operation receives a Secure Network beacon or
* a Mesh Private beacon with an IV index less than the last known
* IV Index or greater than the last known IV Index + 42, the Secure
* Network beacon or the Mesh Private beacon shall be ignored.
*/
if (iv_index < bt_mesh.iv_index ||
iv_index > bt_mesh.iv_index + 42) {
BT_ERR("IV Index out of sync: 0x%08x != 0x%08x",
iv_index, bt_mesh.iv_index);
return false;
}
if (bt_mesh_atomic_test_bit(bt_mesh.flags, BLE_MESH_IVU_IN_PROGRESS)) {
/* We're currently in IV Update mode */
if (iv_index != bt_mesh.iv_index) {
BT_WARN("IV Index mismatch: 0x%08x != 0x%08x",
iv_index, bt_mesh.iv_index);
return false;
if (iv_index >= bt_mesh.iv_index + 1) {
BT_WARN("Performing IV Index Recovery");
(void)memset(bt_mesh.rpl, 0, sizeof(bt_mesh.rpl));
bt_mesh.iv_index = iv_index;
bt_mesh.seq = 0U;
goto do_update;
}
if (iv_update) {
@ -691,18 +711,6 @@ bool bt_mesh_net_iv_update(uint32_t iv_index, bool iv_update)
return false;
}
/* If a node in Normal Operation receives a Secure Network beacon or
* a Mesh Private beacon with an IV index less than the last known
* IV Index or greater than the last known IV Index + 42, the Secure
* Network beacon or the Mesh Private beacon shall be ignored.
*/
if (iv_index < bt_mesh.iv_index ||
iv_index > bt_mesh.iv_index + 42) {
BT_ERR("IV Index out of sync: 0x%08x != 0x%08x",
iv_index, bt_mesh.iv_index);
return false;
}
/* If a node in Normal Operation receives a Secure Network beacon
* or a Mesh Private beacon with an IV index greater than the
* last known IV Index + 1, it may initiate an IV Index Recovery
@ -1027,6 +1035,7 @@ int bt_mesh_net_send(struct bt_mesh_net_tx *tx, struct net_buf *buf,
tx->ctx->send_ttl = bt_mesh_default_ttl_get();
}
#if 0
/* The output filter of the interface connected to advertising
* or GATT bearers shall drop all messages with the TTL value
* set to 1 unless they contain a network PDU that is tagged
@ -1038,6 +1047,7 @@ int bt_mesh_net_send(struct bt_mesh_net_tx *tx, struct net_buf *buf,
err = -EIO;
goto done;
}
#endif
/* Spec:
* If the message security material is not set by the network
@ -1246,7 +1256,7 @@ int net_decrypt(struct bt_mesh_subnet *sub, const uint8_t *enc,
rx->ctx.addr = BLE_MESH_NET_HDR_SRC(buf->data);
if (!BLE_MESH_ADDR_IS_UNICAST(rx->ctx.addr)) {
BT_INFO("Ignoring non-unicast src addr 0x%04x", rx->ctx.addr);
BT_DBG("Ignoring non-unicast src addr 0x%04x", rx->ctx.addr);
return -EINVAL;
}
@ -1397,7 +1407,8 @@ static bool relay_to_adv(enum bt_mesh_net_if net_if)
case BLE_MESH_NET_IF_ADV:
return (bt_mesh_relay_get() == BLE_MESH_RELAY_ENABLED);
case BLE_MESH_NET_IF_PROXY:
return (bt_mesh_gatt_proxy_get() == BLE_MESH_GATT_PROXY_ENABLED);
return (bt_mesh_gatt_proxy_get() == BLE_MESH_GATT_PROXY_ENABLED ||
bt_mesh_private_gatt_proxy_state_get() == BLE_MESH_PRIVATE_GATT_PROXY_ENABLED);
default:
return false;
}
@ -1465,6 +1476,13 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
return;
}
#if CONFIG_BLE_MESH_BRC_SRV
if (rx->sbr_rpl) {
BT_ERR("Bridge RPL attack");
goto done;
}
#endif
if (cred != BLE_MESH_FLOODING_CRED
#if CONFIG_BLE_MESH_DF_SRV
&& cred != BLE_MESH_DIRECTED_CRED
@ -1474,8 +1492,13 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
return;
}
if (rx->ctx.recv_ttl == 0x01 && bt_mesh_tag_relay(tag) == false) {
BT_DBG("Ignore PDU with TTL=1 but not tagged as relay");
if (rx->ctx.recv_ttl == 0x01) {
BT_DBG("Ignore PDU with TTL = 1");
return;
}
if (rx->ctx.recv_ttl == 0x02 && bt_mesh_tag_relay(tag) == false) {
BT_DBG("Ignore PDU with TTL = 2 but not tagged as relay");
return;
}
@ -1519,7 +1542,7 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
#endif
if (!buf) {
BT_ERR("Out of relay buffers");
BT_INFO("Out of relay buffers");
return;
}
@ -1553,10 +1576,11 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
BT_DBG("Relaying packet. TTL is now %u", BLE_MESH_NET_HDR_TTL(buf->data));
/* 1. Update NID if RX or RX was with friend credentials.
/* 1. Update NID if RX or RX was with friend credentials(included by case 3).
* 2. Update NID if the net_key has changed.
* 3. Update NID if credential has changed.
*/
if (rx->ctx.recv_cred == BLE_MESH_FRIENDSHIP_CRED || netkey_changed) {
if (netkey_changed || cred != rx->ctx.recv_cred) {
buf->data[0] &= 0x80; /* Clear everything except IVI */
buf->data[0] |= nid;
}
@ -1600,19 +1624,6 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
if (((bearer & BLE_MESH_ADV_BEARER) && relay_to_adv(rx->net_if)) ||
netkey_changed ||
rx->ctx.recv_cred == BLE_MESH_FRIENDSHIP_CRED) {
/* NOTE: temporary add for case MESH/NODE/SBR/NET/BV-01-C */
#if CONFIG_BLE_MESH_BRC_SRV
if (bt_mesh_bridge_rpl_check(rx, NULL) && netkey_changed) {
BT_ERR("It is RPL attack, not bridge");
/**
* @todo:/NODE/DF/INIT/BV-TBD-C,
* The message from LT2 was double-checked,
* so the message was mistaken for an RPL attack.
*/
goto done;
}
#endif
#if !CONFIG_BLE_MESH_RELAY_ADV_BUF
bt_mesh_adv_send(buf, xmit, NULL, NULL);
#else
@ -1740,9 +1751,7 @@ static bool ignore_net_msg(uint16_t src, uint16_t dst)
}
if (IS_ENABLED(CONFIG_BLE_MESH_PROVISIONER) &&
bt_mesh_is_provisioner_en() &&
BLE_MESH_ADDR_IS_UNICAST(dst) &&
bt_mesh_elem_find(dst)) {
bt_mesh_is_provisioner_en()) {
/* If the destination address of the message is the element
* address of Provisioner, but Provisioner fails to find the
* node in its provisioning database, then this message will
@ -1799,7 +1808,7 @@ void bt_mesh_net_recv(struct net_buf_simple *data, int8_t rssi,
bt_mesh_elem_find(rx.ctx.recv_dst));
if (IS_ENABLED(CONFIG_BLE_MESH_GATT_PROXY_SERVER) &&
bt_mesh_private_gatt_proxy_state_get() == BLE_MESH_PRIVATE_GATT_PROXY_DISABLED &&
bt_mesh_private_gatt_proxy_state_get() != BLE_MESH_PRIVATE_GATT_PROXY_ENABLED &&
net_if == BLE_MESH_NET_IF_PROXY) {
bt_mesh_proxy_server_addr_add(data, rx.ctx.addr);
@ -1844,7 +1853,11 @@ void bt_mesh_net_recv(struct net_buf_simple *data, int8_t rssi,
* was neither a local element nor an LPN we're Friends for.
*/
if (!BLE_MESH_ADDR_IS_UNICAST(rx.ctx.recv_dst) ||
(!rx.local_match && !rx.friend_match)) {
(!rx.local_match && !rx.friend_match
#if CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
&& !rx.replay_msg
#endif
)) {
net_buf_simple_restore(&buf, &state);
bt_mesh_net_relay(&buf, &rx);
}

View File

@ -58,7 +58,6 @@ struct bt_mesh_subnet {
uint8_t mpb_flags_last; /* Flags of last sent private beacon */
uint8_t mpb_ivi_last: 1; /* IV Index of last sent private beacon */
uint8_t mpb_random[13]; /* Random of current private beacon */
uint8_t mpb_random_last[13]; /* Random of last sent private beacon */
uint8_t private_node_id; /* Private Node Identity State */
#endif /* CONFIG_BLE_MESH_PRIVATE_BEACON */
@ -274,6 +273,10 @@ struct bt_mesh_lpn {
/* Previous Friend of this LPN */
uint16_t old_friend;
#if CONFIG_BLE_MESH_DF_SRV
uint8_t old_directed_forwarding;
#endif
/* Duration reported for last advertising packet */
uint16_t adv_duration;
@ -381,13 +384,17 @@ struct bt_mesh_net_rx {
struct bt_mesh_subnet *sub;
struct bt_mesh_msg_ctx ctx;
uint32_t seq; /* Sequence Number */
uint8_t old_iv:1, /* iv_index - 1 was used */
uint16_t old_iv:1, /* iv_index - 1 was used */
new_key:1, /* Data was encrypted with updated key */
friend_cred:1 __attribute__((deprecated)), /* Data was encrypted with friend cred */
ctl:1, /* Network Control */
net_if:2, /* Network interface */
local_match:1, /* Matched a local element */
friend_match:1; /* Matched an LPN we're friends for */
friend_match:1, /* Matched an LPN we're friends for */
#if CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
replay_msg:1, /* Replayed messages */
#endif
sbr_rpl:1; /* Bridge RPL attacker */
uint16_t msg_cache_idx; /* Index of entry in message cache */
};
@ -406,7 +413,7 @@ extern struct bt_mesh_net bt_mesh;
#define BLE_MESH_NET_IVI_TX (bt_mesh.iv_index - \
bt_mesh_atomic_test_bit(bt_mesh.flags, \
BLE_MESH_IVU_IN_PROGRESS))
BLE_MESH_IVU_IN_PROGRESS))
#define BLE_MESH_NET_IVI_RX(rx) (bt_mesh.iv_index - (rx)->old_iv)
#define BLE_MESH_NET_HDR_LEN 9

View File

@ -81,14 +81,15 @@ static struct bt_mesh_conn_cb *bt_mesh_gatts_conn_cb;
static uint8_t bt_mesh_gatts_addr[6];
#endif /* CONFIG_BLE_MESH_NODE */
static bool g_host_init = false;
int bt_mesh_host_init(void)
{
static bool init = false;
int rc;
if (init == true) {
if (g_host_init == true) {
BT_WARN("Already initialized host for mesh!");
return 0;
return -EALREADY;
}
rc = btc_init();
@ -102,7 +103,30 @@ int bt_mesh_host_init(void)
}
osi_alarm_init();
init = true;
g_host_init = true;
return 0;
}
int bt_mesh_host_deinit(void)
{
int rc;
if (g_host_init == false) {
return -EALREADY;
}
osi_alarm_deinit();
rc = osi_alarm_delete_mux();
if (rc != 0) {
return -1;
}
btc_deinit();
g_host_init = false;
return 0;
}
@ -758,15 +782,17 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
const struct bt_mesh_adv_data *ad, size_t ad_len,
const struct bt_mesh_adv_data *sd, size_t sd_len)
{
struct ble_gap_adv_params adv_params;
uint8_t buf[BLE_HS_ADV_MAX_SZ];
uint16_t interval = 0;
uint8_t buf_len = 0;
int err;
#if BLE_MESH_DEV
if (bt_mesh_atomic_test_bit(bt_mesh_dev.flags, BLE_MESH_DEV_ADVERTISING)) {
return -EALREADY;
}
#endif
uint8_t buf[BLE_HS_ADV_MAX_SZ];
uint8_t buf_len = 0;
int err;
struct ble_gap_adv_params adv_params;
err = set_ad(ad, ad_len, buf, &buf_len);
if (err) {
@ -797,8 +823,6 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
}
memset(&adv_params, 0, sizeof adv_params);
adv_params.itvl_min = param->interval_min;
adv_params.itvl_max = param->interval_max;
if (param->options & BLE_MESH_ADV_OPT_CONNECTABLE) {
adv_params.conn_mode = BLE_GAP_CONN_MODE_UND;
@ -811,6 +835,25 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
adv_params.disc_mode = BLE_GAP_DISC_MODE_NON;
}
interval = param->interval_min;
#if CONFIG_BLE_MESH_RANDOM_ADV_INTERVAL
/* If non-connectable mesh packets are transmitted with an adv interval
* not smaller than 10ms, then we will use a random adv interval between
* [interval / 2, interval] for them.
*/
if (adv_params.conn_mode == BLE_GAP_CONN_MODE_NON &&
adv_params.disc_mode == BLE_GAP_DISC_MODE_NON && interval >= 16) {
interval >>= 1;
interval += (bt_mesh_get_rand() % (interval + 1));
BT_INFO("%u->%u", param->interval_min, interval);
}
#endif
adv_params.itvl_min = interval;
adv_params.itvl_max = interval;
again:
err = ble_gap_adv_start(BLE_OWN_ADDR_PUBLIC, NULL, BLE_HS_FOREVER, &adv_params,
gap_event_cb, NULL);
@ -876,7 +919,7 @@ int bt_mesh_ble_adv_start(const struct bt_mesh_ble_adv_param *param,
break;
case BLE_MESH_ADV_NONCONN_IND:
adv_params.conn_mode = BLE_GAP_CONN_MODE_NON;
adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN;
adv_params.disc_mode = BLE_GAP_DISC_MODE_NON;
break;
case BLE_MESH_ADV_DIRECT_IND_LOW_DUTY:
adv_params.conn_mode = BLE_GAP_CONN_MODE_DIR;
@ -1940,10 +1983,6 @@ int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info)
uint8_t value[6] = {0};
int rc = 0;
#if MYNEWT_VAL(BLE_HCI_VS)
struct ble_hci_vs_duplicate_exception_list_cp cmd;
#endif
if ((sub_code > BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN) ||
(sub_code < BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN &&
type > BLE_MESH_EXCEP_LIST_TYPE_MESH_PROXY_ADV) ||
@ -1958,18 +1997,23 @@ int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info)
BT_ERR("Invalid Provisioning Link ID");
return -EINVAL;
}
/* When removing an unused link (i.e., Link ID is 0), and since
* Controller has never added this Link ID, it will cause error
* log been wrongly reported.
* Therefore, add this check here to avoid such occurrences.
*/
if (*(uint32_t *)info == 0) {
return 0;
}
sys_memcpy_swap(value, info, sizeof(uint32_t));
}
BT_DBG("%s exceptional list, type 0x%08x", sub_code ? "Remove" : "Add", type);
#if MYNEWT_VAL(BLE_HCI_VS)
cmd.operation = sub_code;
cmd.type = htole32(type);
memcpy(&cmd.device_info, value, 6);
rc = ble_hs_hci_send_vs_cmd(BLE_HCI_OCF_VS_DUPLICATE_EXCEPTION_LIST,
&cmd, sizeof(cmd), NULL, 0);
rc = ble_gap_duplicate_exception_list(sub_code, type, value, NULL);
#endif
return rc;

View File

@ -141,6 +141,11 @@ bool bt_mesh_prov_pdu_check(uint8_t type, uint16_t length, uint8_t *reason)
#define XACT_SEG_DATA(link, _seg) (&link->rx.buf->data[20 + (((_seg) - 1) * 23)])
#define XACT_SEG_RECV(link, _seg) (link->rx.seg &= ~(1 << (_seg)))
static uint8_t bt_mesh_prov_buf_type_get(struct net_buf_simple *buf)
{
return buf->data[PROV_BUF_HEADROOM];
}
uint8_t node_next_xact_id(struct bt_mesh_prov_link *link)
{
if (link->tx.id != 0 && link->tx.id != 0xFF) {
@ -677,6 +682,13 @@ int bt_mesh_prov_send(struct bt_mesh_prov_link *link, struct net_buf_simple *buf
#endif /* CONFIG_BLE_MESH_PB_GATT */
#if CONFIG_BLE_MESH_PB_ADV
if (bt_mesh_prov_buf_type_get(buf) == PROV_FAILED) {
/* For case MESH/NODE/PROV/BV-10-C, Node must send Transaction
* ACK before Provisioning Failed message is transmitted.
*/
bt_mesh_gen_prov_ack_send(link, link->rx.id);
}
return bt_mesh_prov_send_adv(link, buf);
#endif /* CONFIG_BLE_MESH_PB_ADV */

View File

@ -62,8 +62,8 @@ extern "C" {
#define REC_RSP_REC_NOT_PRESENT 0x01
#define REC_RSP_OFFSET_OUT_OF_BOUND 0x02
#define CERT_BASED_PROV_SUPPORT(oob) ((oob) & BIT_MASK(7))
#define PROV_REC_SUPPORT(oob) ((oob) & BIT_MASK(8))
#define CERT_BASED_PROV_SUPPORT(oob) ((oob) & BIT(7))
#define PROV_REC_SUPPORT(oob) ((oob) & BIT(8))
#if CONFIG_BLE_MESH_PROV_EPA
#define PROV_ENC_SIZE(link) ((link)->algorithm == PROV_ALG_P256_HMAC_SHA256 ? 32 : 16)

View File

@ -179,12 +179,6 @@ static void prov_send_fail_msg(uint8_t err)
{
PROV_BUF(buf, 2);
/**
* For the case MESH/NODE/PROV/BV-10-C, Node must send Transaction ACK
* before Provisioning Failed message is transmitted.
*/
bt_mesh_gen_prov_ack_send(&prov_link, prov_link.rx.id);
bt_mesh_prov_buf_init(&buf, PROV_FAILED);
net_buf_simple_add_u8(&buf, err);

View File

@ -371,8 +371,7 @@ static int provisioner_start_prov_pb_adv(const uint8_t uuid[16], const bt_mesh_a
for (i = 0; i < CONFIG_BLE_MESH_PBA_SAME_TIME; i++) {
if (!bt_mesh_atomic_test_bit(prov_links[i].flags, LINK_ACTIVE) &&
!bt_mesh_atomic_test_bit(prov_links[i].flags, LINK_CLOSING)
) {
!bt_mesh_atomic_test_bit(prov_links[i].flags, LINK_CLOSING)) {
memcpy(prov_links[i].uuid, uuid, 16);
prov_links[i].oob_info = oob_info;
if (addr) {
@ -1070,14 +1069,24 @@ static void reset_adv_link(struct bt_mesh_prov_link *link, uint8_t reason)
static void send_link_open(struct bt_mesh_prov_link *link)
{
uint8_t count;
int i;
/* Generate link ID, and may need to check if this id is
* currently being used, which may will not happen ever.
*/
bt_mesh_rand(&link->link_id, sizeof(link->link_id));
link->link_id = 0;
while (1) {
count = 0;
/* Make sure the generated Link ID is not 0 */
while(link->link_id == 0) {
bt_mesh_rand(&link->link_id, sizeof(link->link_id));
if (count++ > 10) {
BT_ERR("Link ID error: all zero");
return;
}
}
/* Check if the generated Link ID is the same with other links */
for (i = 0; i < CONFIG_BLE_MESH_PBA_SAME_TIME; i++) {
if (bt_mesh_atomic_test_bit(prov_links[i].flags, LINK_ACTIVE) &&
prov_links[i].link_id == link->link_id) {
@ -1085,6 +1094,7 @@ static void send_link_open(struct bt_mesh_prov_link *link)
break;
}
}
if (i == CONFIG_BLE_MESH_PBA_SAME_TIME) {
break;
}
@ -3037,8 +3047,8 @@ void bt_mesh_provisioner_prov_adv_recv(struct net_buf_simple *buf,
uuid = buf->data;
net_buf_simple_pull(buf, 16);
/* Mesh beacon uses big-endian to send beacon data */
oob_info = net_buf_simple_pull_be16(buf);
/* According CSS, all the field within adv data shall be little-endian */
oob_info = net_buf_simple_pull_le16(buf);
if (provisioner_check_unprov_dev_info(uuid, BLE_MESH_PROV_GATT)) {
return;

View File

@ -35,7 +35,8 @@ _Static_assert(!(IS_ENABLED(CONFIG_BLE_MESH_GATT_PROXY_SERVER) && IS_ENABLED(CON
#define ADV_OPT (BLE_MESH_ADV_OPT_CONNECTABLE | BLE_MESH_ADV_OPT_ONE_TIME)
#if CONFIG_BLE_MESH_GATT_PROXY_SERVER && CONFIG_BLE_MESH_PRB_SRV
#if CONFIG_BLE_MESH_GATT_PROXY_SERVER && \
(CONFIG_BLE_MESH_PRB_SRV || CONFIG_BLE_MESH_PROXY_SOLIC_PDU_RX)
#define RAND_UPDATE_INTERVAL K_MINUTES(10)
/* The Random field of Private Network Identity
@ -438,12 +439,12 @@ static int beacon_send(struct bt_mesh_proxy_client *client, struct bt_mesh_subne
#if CONFIG_BLE_MESH_PROXY_PRIVACY
if (client->proxy_privacy == BLE_MESH_PROXY_PRIVACY_ENABLED) {
bt_mesh_private_beacon_create(sub, &buf);
/* NOTE: Each time a Mesh Private beacon for a subnet is sent to a Proxy Client,
* the Random field in the Mesh Private beacon shall be regenerated.
*/
bt_mesh_private_beacon_update_random(sub);
bt_mesh_private_beacon_create(sub, &buf);
} else
#endif
{
@ -476,22 +477,9 @@ static void proxy_send_beacons(struct k_work *work)
for (i = 0; i < ARRAY_SIZE(bt_mesh.sub); i++) {
struct bt_mesh_subnet *sub = &bt_mesh.sub[i];
#if 0
if (bt_mesh_gatt_proxy_get() == BLE_MESH_GATT_PROXY_ENABLED ||
sub->node_id == BLE_MESH_NODE_IDENTITY_RUNNING) {
sub->proxy_privacy = BLE_MESH_PROXY_PRIVACY_DISABLED;
} else if (true) {
#if CONFIG_BLE_MESH_PRB_SRV
/* TODO: Check if Private GATT Proxy or Private Node Identity is enabled */
#endif
sub->proxy_privacy = BLE_MESH_PROXY_PRIVACY_ENABLED;
} else {
sub->proxy_privacy = BLE_MESH_PROXY_PRIVACY_NOT_SUPPORTED;
}
#endif
if (sub->net_idx != BLE_MESH_KEY_UNUSED) {
beacon_send(client, sub);
#if CONFIG_BLE_MESH_DF_SRV
if (sub->directed_proxy != BLE_MESH_DIRECTED_PROXY_NOT_SUPPORTED) {
bt_mesh_directed_proxy_server_directed_proxy_caps_status_send(client->conn, sub);
@ -630,16 +618,58 @@ static bool is_exist_private_node_id_enable(void)
return false;
}
void disable_all_private_node_identity(void)
int bt_mesh_proxy_private_identity_disable(void)
{
if (!bt_mesh_is_provisioned()) {
return -EAGAIN;
}
for (size_t i = 0; i < ARRAY_SIZE(bt_mesh.sub); i++) {
/* NOTE: Set private node identity state of all valid subnets disabled */
struct bt_mesh_subnet *sub = &bt_mesh.sub[i];
if (sub->net_idx != BLE_MESH_KEY_UNUSED) {
bt_mesh_proxy_server_private_identity_stop(sub);
if (sub->net_idx == BLE_MESH_KEY_UNUSED) {
continue;
}
if (sub->private_node_id == BLE_MESH_PRIVATE_NODE_IDENTITY_NOT_SUPPORTED) {
continue;
}
bt_mesh_proxy_server_private_identity_stop(sub);
}
return 0;
}
int bt_mesh_proxy_private_identity_enable(void)
{
int count = 0;
if (!bt_mesh_is_provisioned()) {
return -EAGAIN;
}
for (size_t i = 0U; i < ARRAY_SIZE(bt_mesh.sub); i++) {
struct bt_mesh_subnet *sub = &bt_mesh.sub[i];
if (sub->net_idx == BLE_MESH_KEY_UNUSED) {
continue;
}
if (sub->private_node_id == BLE_MESH_PRIVATE_NODE_IDENTITY_NOT_SUPPORTED) {
continue;
}
bt_mesh_proxy_server_private_identity_start(sub);
count++;
}
if (count) {
bt_mesh_adv_update();
}
return 0;
}
#endif /* CONFIG_BLE_MESH_PRB_SRV */
#endif /* GATT_PROXY */
@ -1373,7 +1403,7 @@ static const struct bt_mesh_adv_data net_id_ad[] = {
BLE_MESH_ADV_DATA(BLE_MESH_DATA_SVC_DATA16, proxy_svc_data, NET_ID_LEN),
};
#if CONFIG_BLE_MESH_PRB_SRV
#if CONFIG_BLE_MESH_PRB_SRV || CONFIG_BLE_MESH_PROXY_SOLIC_PDU_RX
static const struct bt_mesh_adv_data private_node_id_ad[] = {
BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_FLAGS, (BLE_MESH_AD_GENERAL | BLE_MESH_AD_NO_BREDR)),
BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_UUID16_ALL, 0x28, 0x18),
@ -1533,23 +1563,6 @@ static int private_node_id_adv(struct bt_mesh_subnet *sub)
return 0;
}
void bt_mesh_prb_pnid_adv_local_set(bool start)
{
for (size_t i = 0U; i < ARRAY_SIZE(bt_mesh.sub); i++) {
struct bt_mesh_subnet *sub = &bt_mesh.sub[i];
if (sub->net_idx == BLE_MESH_KEY_UNUSED) {
continue;
}
if (start) {
bt_mesh_proxy_server_private_identity_start(sub);
} else {
bt_mesh_proxy_server_private_identity_stop(sub);
}
}
}
#endif /* CONFIG_BLE_MESH_PRB_SRV */
#if (CONFIG_BLE_MESH_PRB_SRV || \
@ -1751,7 +1764,8 @@ static size_t gatt_prov_adv_create(struct bt_mesh_adv_data prov_sd[2])
}
memcpy(prov_svc_data + 2, bt_mesh_prov_get()->uuid, 16);
sys_put_be16(bt_mesh_prov_get()->oob_info, prov_svc_data + 18);
/* According CSS, all the field within adv data shall be little-endian */
sys_put_le16(bt_mesh_prov_get()->oob_info, prov_svc_data + 18);
if (bt_mesh_prov_get()->uri) {
size_t uri_len = strlen(bt_mesh_prov_get()->uri);

View File

@ -107,9 +107,9 @@ void bt_mesh_disable_private_gatt_proxy(void);
bool bt_mesh_proxy_server_is_node_id_enable(void);
void disable_all_private_node_identity(void);
int bt_mesh_proxy_private_identity_disable(void);
void bt_mesh_prb_pnid_adv_local_set(bool start);
int bt_mesh_proxy_private_identity_enable(void);
#endif /* CONFIG_BLE_MESH_PRB_SRV */
void bt_mesh_proxy_server_identity_start(struct bt_mesh_subnet *sub);

View File

@ -64,6 +64,10 @@ static bool rpl_check_and_store(struct bt_mesh_net_rx *rx, struct bt_mesh_rpl **
return false;
}
#if CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
rx->replay_msg = 1;
#endif
return true;
}
}
@ -87,11 +91,6 @@ bool bt_mesh_rpl_check(struct bt_mesh_net_rx *rx, struct bt_mesh_rpl **match)
return rpl_check_and_store(rx, match);
}
bool bt_mesh_bridge_rpl_check(struct bt_mesh_net_rx *rx, struct bt_mesh_rpl **match)
{
return rpl_check_and_store(rx, match);
}
void bt_mesh_rpl_update(void)
{
/* Discard "old old" IV Index entries from RPL and flag

View File

@ -20,8 +20,6 @@ void bt_mesh_update_rpl(struct bt_mesh_rpl *rpl, struct bt_mesh_net_rx *rx);
bool bt_mesh_rpl_check(struct bt_mesh_net_rx *rx, struct bt_mesh_rpl **match);
bool bt_mesh_bridge_rpl_check(struct bt_mesh_net_rx *rx, struct bt_mesh_rpl **match);
void bt_mesh_rpl_update(void);
void bt_mesh_rpl_reset_single(uint16_t src, bool erase);

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