Compare commits

..

1371 Commits

Author SHA1 Message Date
Jiang Jiang Jian
ae221c7b7a Merge branch 'ci/use_github_on_macos_runners_v4.3' into 'release/v4.3'
ci: use github repo for mac runners (v4.3)

See merge request espressif/esp-idf!31145
2024-05-29 10:22:26 +08:00
Fu Hanxi
015fcc765f ci: make fast_template_app optional 2024-05-28 14:32:06 +02:00
Fu Hanxi
e19478c30c ci: use github repo for mac runners 2024-05-28 14:32:02 +02:00
Jiang Jiang Jian
2463efbc0a Merge branch 'bugfix/update_esp32c3_phy_v4.3' into 'release/v4.3'
bugfix(phy): fix esp32c3 tx power abnormal when multi phy init data enabled(v4.3)

See merge request espressif/esp-idf!29283
2024-05-27 14:06:50 +08:00
alanmaxwell
71c9ff2b4d bugfix(phy): update C3 phy lib to fix some issue
1.fix esp32c3 tx power abnormal when multi phy init data enabled
2.fix esp32c3 ble tx 2m problem
phy_version: 1150, 7c3c08f, Jan 24 2024
2024-05-16 11:35:47 +08:00
Michael (XIAO Xufeng)
3a71941503 Merge branch 'update/version_4_3_7' into 'release/v4.3'
Update version to 4.3.7

See merge request espressif/esp-idf!28202
2024-01-02 16:33:13 +08:00
Xiao Xufeng
1bdf0a8669 change(version): Update version to 4.3.7 2023-12-31 03:01:03 +08:00
Jiang Jiang Jian
af235c4b3f Merge branch 'bugfix/fix_ble_app_unregister_no_event_4.3' into 'release/v4.3'
fix(bt/bluedroid): Fix ble app unregister no event(backport v4.3)

See merge request espressif/esp-idf!28172
2023-12-29 11:30:07 +08:00
zhanghaipeng
17ea57ef5d fix(bt/bluedroid): Fix ble app unregister no event 2023-12-28 19:18:53 +08:00
Jiang Jiang Jian
738a49f3df Merge branch 'bugfix/increase_btu_task_stack_size' into 'release/v4.3'
fix(bt/bludroid): Increase BTU task stack size

See merge request espressif/esp-idf!28150
2023-12-28 10:24:18 +08:00
linruihao
95962bfee7 fix(bt/bludroid): Increase BTU task stack size 2023-12-27 19:37:44 +08:00
Jiang Jiang Jian
eadee01cec Merge branch 'bugfix/fix_ble_phy_tx_ifs_v4.3' into 'release/v4.3'
fix(phy): Fix ble tx ifs time for ESP32(backport v4.3)

See merge request espressif/esp-idf!28060
2023-12-23 10:53:12 +08:00
zhanghaipeng
c8144baca6 fix(phy): Fix ble tx ifs time for ESP32 2023-12-23 00:23:54 +08:00
Jiang Jiang Jian
a8584edf6c Merge branch 'fix/btc_config_lock_error_v4.3' into 'release/v4.3'
fix(bt/bluedroid): fixed btc_config_lock error (backport v4.3)

See merge request espressif/esp-idf!28074
2023-12-22 19:32:23 +08:00
Island
aab7332a1d Merge branch 'backport/fix_ble_prepare_write_v4.3' into 'release/v4.3'
Backport/fix ble prepare write v4.3

See merge request espressif/esp-idf!27906
2023-12-22 19:14:40 +08:00
Jiang Jiang Jian
2e8d33e1be Merge branch 'bugfix/fix_ble_recorrect_enable_bug_v4.3' into 'release/v4.3'
fix(ble/controller): Fixed BLE recorrect enable bug and fixed BLE bb isr enable by default(backport v4.3)

See merge request espressif/esp-idf!28039
2023-12-22 14:38:57 +08:00
gongyantao
9899c1aa04 fix(bt/bluedroid): fixed btc_config_lock error 2023-12-22 11:54:02 +08:00
Marius Vikhammer
30652c170d Merge branch 'fix/freertos_scheduler_suspension_test' into 'release/v4.3'
fix(freertos): Fixed a failing scheduler suspension unit test

See merge request espressif/esp-idf!28017
2023-12-21 09:48:48 +08:00
zhiweijian
dd65ff5193 fix(ble/controller): Fixed BLE recorrect enable bug and fixed BLE bb isr enable by default 2023-12-20 18:07:36 +08:00
Michael (XIAO Xufeng)
b129edd270 Merge branch 'bugfix/temp_clk_gate_pd_v4.3' into 'release/v4.3'
fix(tsens): Add clear ANALOG_I2C PD in sar_periph(backport v4.3)

See merge request espressif/esp-idf!27962
2023-12-20 17:13:44 +08:00
Sudeep Mohanty
823e15272a fix(freertos): Fixed a failing scheduler suspension unit test
This test fixes the flaky unit test which suspends the scheduler and prompts
a pending context switch.
2023-12-20 08:19:07 +01:00
Island
7cdd2b2fb4 Merge branch 'bugfix/ble_stack_disable_v4.3' into 'release/v4.3'
Bugfix/ble stack disable v4.3(backportv4.3)

See merge request espressif/esp-idf!27647
2023-12-19 12:05:35 +08:00
Michael (XIAO Xufeng)
70626689b3 Merge branch 'doc/update_usj_docs_v4.3' into 'release/v4.3'
docs: update using usb_serial_jtag documents(backport v4.3)

See merge request espressif/esp-idf!27691
2023-12-19 11:13:35 +08:00
zhanghaipeng
f561706053 fix(bt/bluedroid): Fix BLE prepare write 2023-12-18 19:02:53 +08:00
zhanghaipeng
36505e1c82 fix(bt/bluedroid): Fix prepare write for BLE example 2023-12-18 19:02:53 +08:00
Jiang Jiang Jian
67b9c0ac09 Merge branch 'bugfix/update_phy_lib_20231212_v4.3' into 'release/v4.3'
fix(phy): update phy lib to master (v4.3)

See merge request espressif/esp-idf!27912
2023-12-18 13:59:59 +08:00
Jiang Jiang Jian
530cf57163 Merge branch 'bugfix/fix_memory_leak_in_c3_s3_controller_v4.3' into 'release/v4.3'
Fixed memory leak in ESP32C3 and ESP32S3 controller (Backport v4.3)

See merge request espressif/esp-idf!27895
2023-12-18 13:44:18 +08:00
Jiang Jiang Jian
da75b64fe2 Merge branch 'bugfix/When_psram_is_enable_the_number_of_ooseq_is_not_limited_4.3' into 'release/v4.3'
optimize(lwip):when psram is enable the number of ooseq is not limited 4.3

See merge request espressif/esp-idf!27885
2023-12-18 13:44:04 +08:00
Cao Sen Miao
0d226847f1 fix(tsens): Add clear ANALOG_I2C PD in sar_periph 2023-12-18 10:44:59 +08:00
zhanghaipeng
65be8df57d fix(bt/bluedroid): Fix ble gattc deregister 2023-12-18 10:40:28 +08:00
zhanghaipeng
5871b729ee fix(bt/bluedroid): Fix ble adv and scan status when deinit bluedroid 2023-12-18 10:40:28 +08:00
Michael (XIAO Xufeng)
fab98d8996 Merge branch 'fix/twai_tag_not_defined_in_configure_gpio_v4.3' into 'release/v4.3'
fix(twai): fix build error TWAI_TAG used but not defined (v4.3)

See merge request espressif/esp-idf!27834
2023-12-18 01:15:46 +08:00
Xue yun fei
c51da7c24c optimize(lwip):when psram is enable the number of ooseq is not limited 2023-12-15 14:07:43 +08:00
linruihao
1d3a651cbc fix(phy): update phy lib to master
esp32: phy_version: 4790, b35933d, Dec 12 2023
2023-12-15 12:03:04 +08:00
Jiang Jiang Jian
16317f5fdb Merge branch 'bugfix/fix_issuse_in_scan_and_mesh_v4.3' into 'release/v4.3'
fix(wifi): fix issues in scan and wifi mesh (v4.3)

See merge request espressif/esp-idf!27862
2023-12-15 11:33:05 +08:00
Jiang Jiang Jian
eb0f7d0648 Merge branch 'bugfix/temp_clk_gate_v4.3' into 'release/v4.3'
fix(temperature_snesor): Put clock gate enable/disable in to sar_periph_ctrl together (backport v4.3)

See merge request espressif/esp-idf!27759
2023-12-14 19:42:01 +08:00
zhangyanjiao
a9d03cc576 fix(wifi): fix issues in scan and wifi mesh
1. fix(wifi): fix the crash issue when clear scan ap list
2. fix wifi mode error when mesh start after station has connected to router
2023-12-14 18:14:24 +08:00
Jiang Jiang Jian
bcc34871cf Merge branch 'bugfix/authcomplete_failure_v4.3' into 'release/v4.3'
fix(nimble): Fixed authcomplete failure caused by a mismatch in the c1 value (v4.3)

See merge request espressif/esp-idf!27638
2023-12-14 17:48:50 +08:00
Jiang Jiang Jian
b9a538b581 Merge branch 'bugfix/coex_ble_scan_rate_v4.3' into 'release/v4.3'
fix(coex): Fix esp32 ble scan not restart when wifi start stop

See merge request espressif/esp-idf!27813
2023-12-14 17:35:06 +08:00
liuning
594ace7f20 fix(coex): Fix esp32 ble scan not restart when wifi start stop 2023-12-14 10:30:35 +08:00
linruihao
c611a5d884 fix(bt): Update bt lib for ESP32-C3(9129dec) 2023-12-13 20:50:24 +08:00
Cao Sen Miao
b3ab5e6f89 fix(temperature_snesor): Put clock gate enable/disable in to sar_periph_ctrl together 2023-12-13 17:05:26 +08:00
Jiang Jiang Jian
e0c52bc78c Merge branch 'bugfix/nvs_oom_check_wrong_pointer_v4.3' into 'release/v4.3'
nvs: fixed OOM check wrong pointer issue (v4.3)

See merge request espressif/esp-idf!27687
2023-12-13 15:15:03 +08:00
Jiang Jiang Jian
49c2896ce1 Merge branch 'bugfix/fix_some_ble_bugs_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!27679
2023-12-13 15:14:37 +08:00
Jiang Jiang Jian
16e0493cc7 Merge branch 'bugfix/fix_ftm_regression_issues_v4.3' into 'release/v4.3'
fix(esp_wifi): Update wifi libs to fix FTM regression issues

See merge request espressif/esp-idf!27807
2023-12-12 10:02:20 +08:00
wanlei
878fd239d6 fix(twai): fix build error TWAI_TAG used but not defined
bug introduced from efef8401
closes https://github.com/espressif/esp-idf/issues/12760
2023-12-11 16:18:20 +08:00
Nachiket Kukade
c540e00bba fix(esp_wifi): Update wifi libs to fix FTM regression issues 2023-12-09 21:53:56 +05:30
Jiang Jiang Jian
644f19630d Merge branch 'bugfix/freemodbus_timer_struct_not_initialized_v4.3' into 'release/v4.3'
freemodbus: fixed timer config struct not initialized issue (v4.3)

See merge request espressif/esp-idf!27686
2023-12-08 20:42:15 +08:00
chenjianhua
558dca6859 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(65db61f)
- Fixed remove and clear white list
2023-12-08 20:04:00 +08:00
chenjianhua
79e80d9134 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-08 19:57:54 +08:00
shangke
fa7e4d8e68 fix(bt/controller): Fixed some HCI commands parameter 2023-12-08 19:57:54 +08:00
chenjianhua
0461975846 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(b8f0db9)
- Fixed assert when llcp instant passed
- Fixed assert for instant passed workaround
- Fixed add RPA to white list
- Fixed AES encryption for RPA resolution
2023-12-08 19:57:54 +08:00
chenjianhua
657dc39e36 fix(bt/bluedroid): Fixed add RPA to white list 2023-12-08 19:57:54 +08:00
Jiang Jiang Jian
e19f84cff5 Merge branch 'feat/max_ver_c3_199_v4.3' into 'release/v4.3'
feat(soc): Increase max supported version of C3 to 1.99 (v4.3)

See merge request espressif/esp-idf!26826
2023-12-08 19:28:58 +08:00
Cao Sen Miao
a42a1f85f5 docs: update using usb_serial_jtag documents 2023-12-06 10:25:19 +08:00
Michael (XIAO Xufeng)
7f240ea3e0 bugfix (nvs): fixed wrong pointer check 2023-12-06 02:09:56 +08:00
Michael (XIAO Xufeng)
a8ec21707e freemodbus: fixed timer config struct not initialized issue (v4.4) 2023-12-06 02:03:18 +08:00
Darshan Dobariya
425215c0f7 fix(nimble): Fixed authcomplete failure caused by a mismatch in the c1 value (v4.3) 2023-12-05 14:54:52 +05:30
Jiang Jiang Jian
03ccbb6690 Merge branch 'bugfix/fix_wifi_init_reentrant_issue_v4.3' into 'release/v4.3'
Bugfix/fix wifi init reentrant issue v4.3

See merge request espressif/esp-idf!27627
2023-12-05 05:15:59 +08:00
Jiang Jiang Jian
b99bade548 Merge branch 'bugfix/dpp_listen_bugs_v4.3' into 'release/v4.3'
fix(esp_wifi): Backport DPP related bug fixes (v4.3)

See merge request espressif/esp-idf!27350
2023-12-04 23:40:44 +08:00
Jiang Jiang Jian
baf57eca0f Merge branch 'bugfix/remove_bond_v4.3' into 'release/v4.3'
fix(nimble): Handled IRK/LTK deletion based on key availability(v4.3)

See merge request espressif/esp-idf!26608
2023-12-04 20:12:42 +08:00
Jiang Jiang Jian
3cd0cd967e Merge branch 'bugfix/fix_onebyte_watchpoint_setting_v4.3' into 'release/v4.3'
fix(riscv): supports 1 byte and larger than 64byte range watchpoint setting (v4.3)

See merge request espressif/esp-idf!27518
2023-12-04 17:35:46 +08:00
Jiang Jiang Jian
3211b02e98 Merge branch 'bugfix/alarm_args_double_free_v4.3' into 'release/v4.3'
Bugfix/alarm args double free v4.3

See merge request espressif/esp-idf!27541
2023-12-04 17:35:24 +08:00
Jiang Jiang Jian
378c13cb7e Merge branch 'fix/ble_mesh_example_relay_enable_v4.3' into 'release/v4.3'
fix(ble_mesh): Enable relay by default for the specific dev role (v4.3)

See merge request espressif/esp-idf!27509
2023-12-04 17:35:09 +08:00
Island
925654a135 Merge branch 'backport/fix_ble_menuconfig_v4.3' into 'release/v4.3'
Backport/fix ble menuconfig v4.3(backport v4.3)

See merge request espressif/esp-idf!27494
2023-12-04 16:30:17 +08:00
liuning
be30253725 fix(wifi): fix wifi deinit s_wifi_modem_sleep_lock 2023-12-04 16:09:23 +08:00
liuning
47bee14f8c fix(wifi): fix wifi init reentrant issue 2023-12-04 16:08:31 +08:00
Jiang Jiang Jian
8196913f7b Merge branch 'bugfix/fix_cpu_switches_freq_bug_s2_to_v4.3' into 'release/v4.3'
EspS2: fixed the bug of insufficient voltage when the CPU switches frequency(V4.3)

See merge request espressif/esp-idf!26283
2023-12-04 13:36:36 +08:00
jgujarathi
648bb39986 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-04 11:05:50 +05:30
jgujarathi
7947c5ea79 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-04 11:05:50 +05:30
jgujarathi
505b65846f 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-04 11:05:48 +05:30
Jiang Jiang Jian
f994bb8c25 Merge branch 'fix/twai_crash_on_s3_gpio_19and20_v4.3' into 'release/v4.3'
fix(twai): example crash using usb-serial-jtag pins (v4.3)

See merge request espressif/esp-idf!26666
2023-12-04 11:35:32 +08:00
Liu Linyan
4a31a9f92f fix(ble_mesh): Enable relay by default for the specific dev role 2023-12-04 01:20:51 +00:00
Abhinav Kudnar
13944779a8 fix(nimble): Handled IRK/LTK deletion based on key availability. 2023-12-02 03:31:01 +05:30
Jiang Jiang Jian
20b42ca0bb Merge branch 'bugfix/bod_intr_v4.3' into 'release/v4.3'
brownout: Disable the hardware BOD when BOD interrupt is enabled(backport v4.3)

See merge request espressif/esp-idf!27438
2023-12-01 19:23:05 +08:00
wanlei
a730188c3e fix(twai): twai example crash using usb-serial-jtag pins
Calling gpio_hal_iomux_func_sel() via gpio_config() may
disconnects/disables any influence from USJ when using USJ pins
2023-12-01 11:21:25 +00:00
hongshuqing
bcfec3e09e s2 cpu sw freq 2023-12-01 10:08:34 +00:00
zhanghaipeng
dedb6df4d3 fix(bt/bluedroid): Fix BLE SMP register log level 2023-12-01 16:55:40 +08:00
zhanghaipeng
81e3c1c12c fix(bt/bluedroid): Fix bluedroid menuconfig 2023-12-01 16:52:30 +08:00
zhanghaipeng
b8c263b668 docs(bt/bluedroid): Update ble example document 2023-12-01 16:47:32 +08:00
David Čermák
c79f1bc3c1 Merge branch 'fix/esp_netif_lock_v4.3' into 'release/v4.3'
fix(esp_netif): Lock netif list with TCPIP context (v4.3)

See merge request espressif/esp-idf!26715
2023-12-01 00:54:57 +08:00
Jin Cheng
9f2c86c6be fix(bt/bluedroid): Set the alarm_arg to NULL after releasing to avoid double free in BTC layer 2023-11-30 20:07:45 +08:00
wuzhenghui
4c58af8eae fix(riscv): supports 1 byte and larger than 64byte range watchpoint setting 2023-11-30 15:57:16 +08:00
aditi_lonkar
7835d44e88 fix(esp_wifi): Fix WDT when esp_supp_dpp_start_listen called multiple times
Update wifi lib with below changes -
1. Return error for 2nd offchan Tx when 1st API still in progress
2. Fix timer index issue with last timer enum

Co-authored-by: Shyamal Khachane <shyamal.khachane@espressif.com>
2023-11-29 22:24:57 +05:30
Jiang Jiang Jian
1444269b67 Merge branch 'feat/support_esp32c3_v1.1_wifi_v4.3' into 'release/v4.3'
backport(wifi): support esp32c3 v1.1 wifi(v4.3)

See merge request espressif/esp-idf!27424
2023-11-29 23:19:28 +08:00
Michael (XIAO Xufeng)
fae640c19b feat(soc): Increase max supported version of C3 to 1.99 2023-11-29 17:03:26 +08:00
Marius Vikhammer
12dec61cde Merge branch 'bugfix/intr_flags_to_level_v4.3' into 'release/v4.3'
fix(intr_flags_to_level): fix value returned one more than correct value (v4.3)

See merge request espressif/esp-idf!25427
2023-11-29 16:54:50 +08:00
Cao Sen Miao
3f6515232e brownout: Disable the hardware BOD when BOD interrupt is enabled 2023-11-28 17:08:57 +08:00
alanmaxwell
05a3d2d8ce feat(wifi): support esp32c3 v1.1 wifi 2023-11-28 11:36:58 +08:00
Jiang Jiang Jian
7e9d90ca22 Merge branch 'bugfix/backport_wifi_fix_1124_v4.3' into 'release/v4.3'
fix(wifi): backport some wifi bugfix(v4.3)

See merge request espressif/esp-idf!27386
2023-11-28 10:51:40 +08:00
David Cermak
f334e741f0 fix(esp_netif): Fix races in netif object locking 2023-11-27 08:18:57 +01:00
Jiang Jiang Jian
ef90a3d0e0 Merge branch 'feature/support_ble_esp32c3_eco7_v4.3' into 'release/v4.3'
Feature/support ble esp32c3 eco7 (backport v4.3)

See merge request espressif/esp-idf!27342
2023-11-27 13:58:05 +08:00
jgujarathi
9b0309b31a fix(wpa_supplicant): Add HT20_40 capability in assoc requests
- Add the HT2040 capability indication in the extended caps IE of
  assoc requests.
2023-11-27 10:37:32 +08:00
jgujarathi
34339565dc fix(esp_wifi): Ensure beacon timeout gets trigerred for AP config change
- Ensure that beacon timeout gets trigerred for AP config changes when we are in
  powersave.
2023-11-27 10:37:32 +08:00
alanmaxwell
37b1fc9d67 fix(wifi): backport some wifi bugfix
1. Fix multi antenna issue
2. Fix typo in wifi api docs
3. Optimize BB filter timer to pass some corner case
4. Change fragment threshold to 256
5. Support fragment for LR mode
6. Fix rx fragment fail in Open mode.
7. Drop fragmented AMPDUs
8. Fix ampdu duration issue
2023-11-27 10:37:31 +08:00
xueyunfei
f9b7fa964c feat(esp_wifi):static buf for management,control,qos null,null data rx packet 2023-11-27 10:37:31 +08:00
zhiweijian
3881da5bdb feat: support ble esp32c3 eco7 2023-11-24 20:24:50 +08:00
Jiang Guang Ming
37f97d005e feat(esp32c3): Update esp32c3 chip revision 2023-11-24 20:24:38 +08:00
Jiang Guang Ming
0a27b15f3e feat(esp32c3): Add rom ld with ROM tag esp32c3-eco7-20230720 2023-11-24 20:23:29 +08:00
Jiang Jiang Jian
4d8baf8cd7 Merge branch 'bugfix/fix_some_wifi_bugs_231123_v4.3' into 'release/v4.3'
fix(wifi): fix some wifi issues 231123 (Backport v4.3)

See merge request espressif/esp-idf!27374
2023-11-24 20:07:58 +08:00
Jiang Jiang Jian
11ab2e9258 Merge branch 'feat/dynamic_integration_pipeline_v4.3' into 'release/v4.3'
CI: dynamic integration pipeline v4.3

See merge request espressif/esp-idf!27108
2023-11-24 18:48:43 +08:00
muhaidong
fb38539ea9 fix(wifi): fix some wifi bugs
1. fix ccmp pn became large issue
2. sta not pmf capable when requires should reject profile
3. fix softap set config issue
4. allow some special igtk keyindex to workaround faulty APs
5. remove target_power_backoff
6. remove FreqCalCntforScan
7. fix enable psram wapi dhcp fail issue
2023-11-24 11:16:06 +08:00
muhaidong
5eb31b6bd1 fix(wifi): allow some special igtk keyindx to workaround faulty APs 2023-11-24 11:06:44 +08:00
muhaidong
59ff3f12fc fix(wifi): fix some wifi issues
1. fix enable psram wapi dhcp fail issue
3. fix wrong wifi mode connect crash issue
2023-11-24 11:06:44 +08:00
muhaidong
bd19f9c5aa fix(wifi): update scan example for scan get ap records 2023-11-24 11:06:44 +08:00
Jiang Jiang Jian
2f00d01316 Merge branch 'bugfix/wpa_connection_in_ent_mode_v4.3' into 'release/v4.3'
fix(wifi): Fix sta connecting with wpa security in enterprise mode

See merge request espressif/esp-idf!27332
2023-11-24 10:30:35 +08:00
David Čermák
a39355d1a0 Merge branch 'bugfix/emac_rx_buffer_v4.3' into 'release/v4.3'
esp_eth: receive buffer allocation optimization (v4.3)

See merge request espressif/esp-idf!27329
2023-11-24 00:42:23 +08:00
Shreyas Sheth
7cbab6efb0 fix(wifi): Fix sta connecting with wpa security in enterprise mode 2023-11-23 17:52:01 +05:30
Ondrej
f104be7b93 esp_eth: receive buffer allocation optimization
Receive buffers are allocated with a size equal to actual received frame size
2023-11-23 12:32:40 +01:00
Chen Yudong
e983162ec8 ci: add qa-test-tag rules 2023-11-23 08:52:34 +00:00
Chen Yudong
a60cea61a3 ci: dynamic integration test child pipeline 2023-11-23 08:52:34 +00:00
Jiang Jiang Jian
525f5a06ad Merge branch 'bufix/Backport_some_lwip_bugs_for_4.3_1121' into 'release/v4.3'
Bufix/backport some lwip bugs for 4.3 1121

See merge request espressif/esp-idf!27284
2023-11-23 11:52:01 +08:00
xueyunfei
89ba9ebde1 fix(dhcp server):fix set dhcp server poll fail issue 2023-11-22 20:56:09 +08:00
Jiang Jiang Jian
85f2d53e00 Merge branch 'bugfix/fix_pmf_set_race_v4.3' into 'release/v4.3'
WiFi: backported some fixes (v4.3)

See merge request espressif/esp-idf!27303
2023-11-22 16:52:00 +08:00
Jiang Jiang Jian
deffe32153 Merge branch 'bugfix/dpp_config_memset_v4.3' into 'release/v4.3'
Wi-Fi: Fixed some DPP issues (v4.3)

See merge request espressif/esp-idf!27279
2023-11-22 12:27:51 +08:00
Kapil Gupta
d08e533ae7 fix(WiFi): backported some fixes
Added following changes as part of this

1. Prevent PMF config overwritten by tx_cb
2. remove cipher header from tx cb done
2023-11-21 17:54:51 +05:30
Kapil Gupta
806696b112 fix(wpa_supplicant): memzero wifi config before sending config event 2023-11-21 11:38:30 +05:30
Kapil Gupta
c121908ddd fix(wifi): Disallow DPP and WPS concurrency 2023-11-21 11:38:07 +05:30
xueyunfei
4bdfc1be1e Fix(lwip):bugfix for add config for tcp ooseq bufs 2023-11-21 10:51:51 +08:00
Jiang Jiang Jian
0e493db2fe Merge branch 'bugfix/connect_issue_for_zero_rssi_v4.3' into 'release/v4.3'
fix(esp_wifi): Fix issue of station disconnecting immediately after scanning (Backport v4.3)

See merge request espressif/esp-idf!26748
2023-11-21 10:50:23 +08:00
Planck (Lu Zeyu)
0a6fba3fb9 fix(intr_flags_to_level): fix value returned one more than correct value 2023-11-21 02:45:39 +00:00
xueyunfei
6b9b3e41c7 Fix(tcp):optimize tcp connection 2023-11-21 10:32:50 +08:00
xueyunfei
3eb68f9829 Fix(dhcps):fix dhcp subnet option api dos not work issue 2023-11-21 10:25:48 +08:00
Wang Meng Yang
949c2960b3 Merge branch 'bugfix/spp_deinit_crash_v4.3' into 'release/v4.3'
fix(bt/bluedroid): Fix the crash of invalid access to released resources (v4.3)

See merge request espressif/esp-idf!27254
2023-11-21 10:02:11 +08:00
aditi_lonkar
139a0054c7 fix(wpa_supplicant): Fix few dpp bugs
1) Fix crash in dpp Listen without bootstrap
  2) Fix crash on receiving dpp auth_req from hostapd with dpp akm
  3) Ensures that the mode is set to station before dpp init
  4) Ensures that dpp follows the path of init->bootstrap->listen
2023-11-20 21:40:29 +05:30
Sarvesh Bodakhe
3060189023 fix(esp_wifi): Fix issue of station disconnecting immediately when AP RSSI is zero 2023-11-20 18:46:55 +05:30
Island
173f596159 Merge branch 'bugfix/fix_some_ble_bugs_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!27201
2023-11-17 20:22:08 +08:00
Island
64831f3d35 Merge branch 'backport/fix_ble_scan_rsp_v4.3' into 'release/v4.3'
Backport/fix ble scan rsp v4.3(backport v4.3)

See merge request espressif/esp-idf!27003
2023-11-17 18:18:35 +08:00
Jin Cheng
72022dfac3 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:58:51 +08:00
chenjianhua
4621adf8c7 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(2758518)
- Fixed power state setting when entering modem sleep
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
- Fix bugs in setting adv data and response data when data length is zero
2023-11-16 17:49:39 +08:00
chenjianhua
f404e3155b 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 17:46:43 +08:00
chenjianhua
547946d04b feat(bt/bluedroid): support clear legacy advertising 2023-11-16 17:46:34 +08:00
Jiang Jiang Jian
0418bd2336 Merge branch 'bugfix/update_phy_lib_v4.3' into 'release/v4.3'
fix(phy): update phy lib to master (v4.3)

See merge request espressif/esp-idf!26868
2023-11-15 14:31:07 +08:00
Jiang Jiang Jian
ca6473991f Merge branch 'bugfix/fix_deinit_init_wifi_scan_fail_issue_v4.3' into 'release/v4.3'
Bugfix/fix deinit init wifi scan fail issue v4.3(Backport v4.3)

See merge request espressif/esp-idf!27048
2023-11-14 15:25:28 +08:00
Jiang Jiang Jian
5af1c9e37a Merge branch 'bugfix/spi_master_fifo_use_dma_v4.3' into 'release/v4.3'
fix(spi): fixed undesired touching to DMA (v4.3)

See merge request espressif/esp-idf!26773
2023-11-14 15:22:30 +08:00
muhaidong
481a064d6b change(hal): remove useless code from periph_ll_wifi_bt_module_enable_clk 2023-11-10 14:44:23 +08:00
muhaidong
a3d4897e60 fix(wifi): fix deinit init wifi scan fail issue 2023-11-10 14:12:35 +08:00
Wang Meng Yang
eb53913f47 Merge branch 'bugfix/fix_ble_bond_error_after_reboot_v4.3' into 'release/v4.3'
fix(ble/bluedroid): fixed BLE bond error after reboot (backport v4.3)

See merge request espressif/esp-idf!26980
2023-11-09 19:36:41 +08:00
zhanghaipeng
a607ea496b fix(bt/bluedroid): Fix ble keysize check 2023-11-08 19:49:08 +08:00
zhanghaipeng
76508f4c23 fix(bt/bluedroid): Fix ble adv report evt type 2023-11-08 19:49:04 +08:00
morris
35a5a29f72 Merge branch 'bugfix/fix_wrong_adc_attenuation_name_v4.3' into 'release/v4.3'
fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12 (v4.3)

See merge request espressif/esp-idf!26970
2023-11-07 18:47:43 +08:00
zhanghaipeng
6072e77ad3 fix(bt/bluedroid): Fix BLE remove bond list status 2023-11-07 16:29:26 +08:00
zhiweijian
8ff82294ee fix(ble/bluedroid): fixed BLE bond error after reboot 2023-11-07 16:29:17 +08:00
Armando
40d021e39d 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:14:25 +08:00
Jiang Jiang Jian
f8e9443cbd Merge branch 'bugfix/unable_to_load_bonded_ble_devices_from_nvs_v4.3' into 'release/v4.3'
fix(bt/bluedroid): ble fails to load bonded device info after reboot(backport v4.3)

See merge request espressif/esp-idf!26474
2023-11-06 11:20:39 +08:00
Island
a01caee8bd Merge branch 'backport/fix_ble_bugs_v4.3' into 'release/v4.3'
Backport/fix ble bugs v4.3(backport v4.3)

See merge request espressif/esp-idf!26766
2023-11-03 09:12:59 +08:00
zhangyanjiao
7e817bb081 fix(phy): update phy lib to master
esp32: phy_version 4780,16b31a7,Sep 22 2023,20:42:16
esp32s2: phy_version 2401,2a6dc26,Sep 26 2023,11:22:15
esp32c3: phy_version 1130,b4e4b80,Sep  5 2023,11:09:30
esp32s3: phy_version 620,ec7ec30,Sep  5 2023,13:49:13
2023-11-02 16:04:56 +08:00
zhanghaipeng
8cd82305d1 fix(bt/bluedroid): Optimize compatibility with Android 10 and later devices 2023-11-02 12:27:03 +08:00
zhanghaipeng
69f482f911 feat(bt/bluedroid): Support hid device control point 2023-10-31 16:30:22 +08:00
zhanghaipeng
f825a36c38 fix(bt/bluedroid): Optimize compatibility with IOS and MACOS devices 2023-10-31 16:30:22 +08:00
zhanghaipeng
0e4d03b4de feat(bt/bluedroid): Display BLE permission check handle in error trace 2023-10-31 16:30:22 +08:00
zhanghaipeng
007982aad5 fix(bt/bluedroid): Fix max BLE gattc notify number to improve compatibility 2023-10-31 16:30:22 +08:00
zhanghaipeng
7841271e41 feat(bt/bluedroid): Support BLE gattc notify registration number 2023-10-31 16:30:22 +08:00
zhanghaipeng
1f785edead fix(bt/bluedroid): Fix key size check in BLE smp 2023-10-31 16:30:22 +08:00
Xiao Xufeng
5a5839bedb fix(spi): fixed undesired touching to DMA
Closes https://github.com/espressif/esp-idf/issues/12241
2023-10-31 15:54:42 +08:00
Jiang Jiang Jian
365b867ad0 Merge branch 'bugfix/fix_wifi_no_response_after_m_f_null_v4.3' into 'release/v4.3'
fix(pm): fix wifi station no response after m f null

See merge request espressif/esp-idf!26736
2023-10-31 15:36:17 +08:00
liuning
fd75950796 fix(pm): fix wifi station no response after m f null 2023-10-30 09:41:23 +08:00
gongyantao
3eea6650ab fix(bt/bluedroid): update the newest active device in bluetooth
1: update the newest active device when an ACL link is established and
   the remote device info is not in bond list. This updates will not stored
   into NVRAM until a new device is paired.
2023-10-26 19:43:21 +08:00
Wang Meng Yang
2b6ebac5ca Merge branch 'bugfix/backport_some_ble_bugs_20231020_v4.3' into 'release/v4.3'
Fixed some BLE bugs 20231020 (backport v4.3)

See merge request espressif/esp-idf!26614
2023-10-26 18:20:27 +08:00
Jiang Jiang Jian
2d976635a6 Merge branch 'bugfix/spurious_beacon_timeout_v4.3' into 'release/v4.3'
Fixed some WiFi Issues (Backport v4.3)

See merge request espressif/esp-idf!26616
2023-10-26 14:47:01 +08:00
zhiweijian
1b20c1970c Modify mesh proxy solic uuid to 0x18590303 2023-10-26 02:33:35 +00:00
zhiweijian
56ef2d06f7 feat: add config to disable ble hci uart flow control 2023-10-26 02:33:35 +00:00
zhiweijian
c0be439b92 change: enable pll track by default on ESP32 2023-10-26 02:33:35 +00:00
zhiweijian
0c9997c2ca Add mesh adv type for exception list 2023-10-26 02:33:35 +00:00
zhiweijian
bba23a4b9f Update ble lib for ESP32-C3
- Add new mesh types for exception list on ESP32-C3
- Fixed address resolution for directed adv with RPA when scanning on ESP32-C3
- Fixed resolvable private address renew after timeout on ESP32-C3
- Fixed extended adv address setting after adv restart on ESP32-C3
- Fixed scan channel index setting for extended scan on ESP32-C3
- Add API to set aux channel index for extended adv on ESP32-C3
- modify mesh proxy solic uuid to 0x18590303 on ESP32-C3
- Fixed DTM payload length cannot be 0 on ESP32-C3
- Added config to enable Hw recorrect eco on ESP32-C3
- report the number of packets sent on the TX end on ESP32-C3
2023-10-26 02:33:35 +00:00
zhiweijian
fbf871a611 Fixed bluedroid host build warning when log is disabled 2023-10-26 02:33:35 +00:00
Jiang Jiang Jian
a6bcdf9637 Merge branch 'bugfix/minor_enterprise_fixes_v4.3' into 'release/v4.3'
Drop Eapol msg if EAP success is not processed (Backport v4.3)

See merge request espressif/esp-idf!25070
2023-10-25 16:41:01 +08:00
Jiang Jiang Jian
a94a8cfce2 Merge branch 'ci/fix_integration_test_download_bin_4.3' into 'release/v4.3'
ci(fix): integration test download test bin (4.3)

See merge request espressif/esp-idf!26648
2023-10-25 16:19:26 +08:00
Chen Yudong
4dd1f02c4f ci(fix): integration test download test bin 2023-10-24 17:00:46 +08:00
Island
b84f9529e1 Merge branch 'backport_v4.3' into 'release/v4.3'
Fix some BLE bugs in bluedroid hostr(backport v4.3)

See merge request espressif/esp-idf!26166
2023-10-23 12:03:45 +08:00
Shyamal Khachane
ad3b52b058 fix(esp_wifi): Drop Eapol msg if EAP success is not processed 2023-10-21 21:49:27 +05:30
jgujarathi
085bf0ed5a fix(esp_wifi): Fixes issues in PMKSA and AID assignment
- Fix missing PMKSA flush scenarios.

- Fix wrong AID assigned to station when multiple stations try to connect
  simultaneously with mixed order of auth-request and assoc-request frames.
2023-10-20 19:44:11 +05:30
Jiang Jiang Jian
b7b0a6f094 Merge branch 'bugfix/wps_wpa3_passphrase_v4.3' into 'release/v4.3'
fix(wifi): Get passphrase in WPS if AP support SAE

See merge request espressif/esp-idf!26560
2023-10-20 19:46:53 +08:00
Jiang Jiang Jian
f4864a2a19 Merge branch 'bugfix/fix_no_mac_retention_at_wifi_start_v4.3' into 'release/v4.3'
fix(pm): wifi no mac retention at wifi start

See merge request espressif/esp-idf!25580
2023-10-19 10:34:33 +08:00
Jiang Jiang Jian
3a0399935e Merge branch 'feat/imporve_iperf_performance_v4.3' into 'release/v4.3'
feat(wifi): optimize iperf performance (Backport V4.3)

See merge request espressif/esp-idf!26398
2023-10-18 20:40:35 +08:00
Kapil Gupta
ad90f00afa fix(wifi): Get passphrase in WPS if AP support SAE
Also add changes to send NACK if WPS message received twice.
2023-10-18 17:58:43 +05:30
Mahavir Jain
193b8f8389 Merge branch 'feature/update_mbedtls_v2.28.5_idf_v4.3' into 'release/v4.3'
feat(mbedtls): update to release v2.28.5

See merge request espressif/esp-idf!26483
2023-10-18 19:37:50 +08:00
xuxiao
59cb30e837 feat(wifi): optimize iperf performance (Backport V4.3) 2023-10-17 19:13:29 +08:00
liuning
ae74ecea25 fix(pm): wifi no mac retention at wifi start 2023-10-17 09:44:27 +08:00
zhanghaipeng
6b3548f718 fix(bt/bluedroid): Fix hid example stack overflow bugs when using esp32s3 2023-10-16 19:35:47 +08:00
zhanghaipeng
20eacf3652 fix(bt/bluedroid): Fix remove resolving list error for esp32 2023-10-16 19:35:37 +08:00
zhanghaipeng
e306873664 fix(bt/bluedroid): Fix bugs in ble service change characteristic 2023-10-16 19:35:24 +08:00
zhanghaipeng
7a3304fc21 feat(bt/bluedroid): Support scan response data length zero in BLE 2023-10-16 19:35:10 +08:00
zhanghaipeng
ac87d24969 fix(bt/bluedroid): Optimize the description of Scan Duplicate in BLE 2023-10-16 19:35:00 +08:00
Harshit Malpani
132d490614 feat(mbedtls): Update to release v2.28.5 2023-10-16 11:20:33 +05:30
gongyantao
c7bde045e2 fix(bt/bluedroid): ble fails to load bonded device info after reboot
1: add a quantity check in bt when writing paired device info into nvs.
2: delete the exceeded device info from NVS when get bonded list during
bluedroid initialization.
3: unify the process of bt and ble to load bonded list during bluedroid
initialization.
2023-10-16 11:11:48 +08:00
Wang Meng Yang
947085b7c4 Merge branch 'bugfix/config_tpoll_fail_v4.3' into 'release/v4.3'
Bugfix/config tpoll fail v4.3

See merge request espressif/esp-idf!26454
2023-10-16 10:59:55 +08:00
baohongde
54ab0d3f71 feat(bt/hci): Added Vendor-Specific HCI command to disable DM1 for ACL-U 2023-10-13 14:24:46 +08:00
baohongde
97c1e30e39 fix(bt/bluedroid): Triggering disconnect event of GAP correctly 2023-10-13 14:24:46 +08:00
baohongde
5a17b753f1 fix(bt/bluedroid): Fix issue of QoS configuration failure when t_poll is greater than 40 2023-10-13 14:24:46 +08:00
Jiang Jiang Jian
3b34ed72dd Merge branch 'bugfix/place_esp_timer_in_internal_memory_v4.3' into 'release/v4.3'
ci: Fix for `ETSTimers arm & disarm run from IRAM` UT

See merge request espressif/esp-idf!25423
2023-10-12 18:39:17 +08:00
Laukik Hase
e06f2df346 ci: Fix for ETSTimers arm & disarm run from IRAM UT
- For ESP32 | SPIRAM_MALLOC_ALWAYSINTERNAL=0
- Forced `esp_timer_create` to allocate resource from the internal memory
- WiFi/BT coexistence will sometimes arm/disarm timers from an ISR
  where flash may be disabled. This can lead to a cache-based
  exception as the timer instance will be located in the PSRAM.
2023-10-12 02:13:48 +00:00
Jiang Jiang Jian
784a688aa9 Merge branch 'fix/spi_polling_api_buslock_logic_v4.3' into 'release/v4.3'
fix(spi_master): polling_transmit forgot release bus lock when alloc DMA buffer failed (v4.3)

See merge request espressif/esp-idf!26135
2023-10-12 10:13:08 +08:00
Island
320f0a4117 Merge branch 'bugfix/deepfree_v43' into 'release/v4.3'
fix(ble_mesh): fix compilation failure on using scene model.(v4.3)

See merge request espressif/esp-idf!26374
2023-10-11 19:28:25 +08:00
Wu Meng Shi
5484506582 fix(ble_mesh): fix compilation failure on using scene model.(v4.3) 2023-10-11 19:28:24 +08:00
Island
ac0138f251 Merge branch 'bugfix/BLEQABR23-414_v43' into 'release/v4.3'
fix(ble_mesh): Fix PB-GATT adv being reported to the app layer too frequently (v4.3)

See merge request espressif/esp-idf!26347
2023-10-10 16:10:24 +08:00
Wu Meng Shi
db6f38f68d fix(ble_mesh): Fix PB-GATT adv being reported to the app layer too frequently (v4.3) 2023-10-10 16:10:23 +08:00
Roland Dobai
53172cf552 Merge branch 'autocomplete_fix_4.3' into 'release/v4.3'
Fix autocomplete test [4.3]

See merge request espressif/esp-idf!26237
2023-10-10 01:22:12 +08:00
Jiang Jiang Jian
de21e45b72 Merge branch 'bugfix/neighbour_report_crash_v43' into 'release/v4.3'
Fix crash in RRM neighbour report requests.(v4.3)

See merge request espressif/esp-idf!25411
2023-10-08 19:09:21 +08:00
Jiang Jiang Jian
623c826a93 Merge branch 'bugfix/BLEQABR23-632v43' into 'release/v4.3'
fix(ble_mesh): avoid executing bt_mesh_host_init() more than once when using nimble (v4.3)

See merge request espressif/esp-idf!26244
2023-10-08 18:03:22 +08:00
Wu Meng Shi
96379a4626 fix(ble_mesh): avoid executing bt_mesh_host_init() more than once when using nimble (v4.3) 2023-10-08 18:03:21 +08:00
Jiang Jiang Jian
1b904fa547 Merge branch 'bugfix/hfp_api_pkt_stat_nums_v4.3' into 'release/v4.3'
fix(bt/bluedroid): Fix the judgment condition for packet transmission status statistics (backport v4.3)

See merge request espressif/esp-idf!26172
2023-10-08 13:43:25 +08:00
Jiang Jiang Jian
207d846419 Merge branch 'bugfix/wps_disable_disconnect_v4.3' into 'release/v4.3'
fix(wpa_supplicant): Fix WPS connection issue after WPS done (Backport v4.3)

See merge request espressif/esp-idf!25249
2023-10-07 16:41:51 +08:00
Jiang Jiang Jian
09e397bac8 Merge branch 'bugfix/skip_using_cache_in_wrong_passwd_cfg' into 'release/v4.3'
Skip using PMK cache in WPA3 connection incase configured password is incorrect (Backport v4.3)

See merge request espressif/esp-idf!25511
2023-10-07 15:17:20 +08:00
Jiang Jiang Jian
871182ef2b Merge branch 'bugfix/suppress_compiler_warning_silent_reboot_is_enabled_v4.3' into 'release/v4.3'
fix(esp_system): suppress compiler warning if ESP_SYSTEM_PANIC_SILENT_REBOOT is enabled (backport v4.3)

See merge request espressif/esp-idf!26039
2023-10-07 14:01:43 +08:00
Jiang Jiang Jian
5cd95b218e Merge branch 'bugfix/fix_hid_congestion_v4.3' into 'release/v4.3'
Fix(bt/bluedroid): Fix the issue for HID congestion checking[backport 4.3]

See merge request espressif/esp-idf!26234
2023-10-07 14:01:11 +08:00
Peter Dragun
bd3bec2ac3 fix: make sure requirements are installed before running autocomplete test
This reverts commit 4aa921a836.
2023-10-06 16:37:10 +02:00
wuzhenghui
744fc417a7 fix(esp_system): suppress compiler warning if ESP_SYSTEM_PANIC_SILENT_REBOOT is enabled 2023-09-28 02:53:51 +00:00
Wang Meng Yang
dc9092709a Merge branch 'bugfix/add_params_check_for_hci_v4.3' into 'release/v4.3'
Fixed some HCI commands parameter (backport v4.3)

See merge request espressif/esp-idf!26151
2023-09-27 16:25:36 +08:00
liqigan
4752dac185 fix(bt/bluedroid): Fix the issue for HID congestion checking 2023-09-26 16:03:28 +08:00
Rahul Tank
9f3840da59 Merge branch 'bugfix/post_reattempt_cnt_event_v4.3' into 'release/v4.3'
fix(nimble): Add event for reattempt connection count information(v4.3)

See merge request espressif/esp-idf!26116
2023-09-26 14:44:54 +08:00
Wang Meng Yang
435561c9b9 Merge branch 'change/optimize_sniff_request_v4.3' into 'release/v4.3'
Change(bt/bluedroid): Limit sniff request when pending mode change event[backport 4.3]

See merge request espressif/esp-idf!26056
2023-09-25 17:53:36 +08:00
shangke
4c4da5a35f fix(bt/controller): Fixed some HCI commands parameter
1: add param check for HCI_Recevie_Synchronization_Train.
2: add param check for HCI_Set_Connectionless_Peripheral_Broadcast.
3: fix slave cannot take a secure authentication.
2023-09-25 11:50:18 +08:00
chenqingqing
666e9e6555 fix(bt/bluedroid): Fix the judgment condition for packet transmission status statistics 2023-09-25 11:01:06 +08:00
zhanghaipeng
2d8207523a fix(bt/bluedroid): Fix set periodic advertising data error 2023-09-23 20:17:48 +08:00
wanlei
73bbc3c620 fix(spi_master): polling_transmit forgot release bus lock when alloc DMA buffer failed
Close https://github.com/espressif/esp-idf/issues/11845
2023-09-22 10:32:52 +08:00
Rahul Tank
44fdf6be2d fix(nimble): Add event for reattempt connection count information 2023-09-21 15:55:08 +05:30
Shyamal Khachane
1e2e809e23 fix(esp_wifi): Skip PMK cache usage if configured password is incorrect 2023-09-21 11:12:31 +05:30
Jiang Jiang Jian
6da3a3746a Merge branch 'bugfix/fix_espnow_send_error_when_sta_connected_v4.3' into 'release/v4.3'
fix(Wi-Fi/Vendor): fix ESPNOW send error when station connected to AP and modem sleep is enabled (v4.3)

See merge request espressif/esp-idf!25816
2023-09-21 12:32:49 +08:00
Kapil Gupta
8ea8e21803 fix(wpa_supplicant): Fix WPS connection issue after WPS done
esp_wifi_disconnect is needed to clear the wifi state and enable
station to connect to new SSID. Add changes to call it after
WPS is done.
2023-09-21 03:06:26 +00:00
Kapil Gupta
14096ea4bb fix(wpa_supplicant): Do not disconnect in WPS disable incase WPS is done/scanning 2023-09-21 03:06:26 +00:00
jgujarathi
a2f24aabe9 fix(rrm) : Fix crash in RRM neighbour report requests.
Fix crash in sending new RRM neighbour report requests by removing
the call to neighbour report request timeout callback in case of
already ongoing neighbour report request timer.
2023-09-21 03:05:53 +00:00
liqigan
3b04c1dc36 change(bt/bluedroid): Limit sniff request when pending mode change event 2023-09-19 20:13:02 +08:00
Marius Vikhammer
f21cbb625f Merge branch 'bugfix/pthread_cond_var_link_hook_v4.3' into 'release/v4.3'
bugfix(pthread): fixed pthread_condvar linker hook (v4.3)

See merge request espressif/esp-idf!26007
2023-09-19 15:46:16 +08:00
Wang Meng Yang
08991d3258 Merge branch 'bugfix/error_param_in_BTA_AG_WBS_EVT_v4.3' into 'release/v4.3'
Bugfix/error param in bta ag wbs evt (v4.3)

See merge request espressif/esp-idf!26003
2023-09-19 12:00:58 +08:00
Rahul Tank
5936402ff5 Merge branch 'bugfix/memmory_cleanup_optimizatoin_v4.3' into 'release/v4.3'
fix(nimble): Fix for memory leak/optimization(v4.3)

See merge request espressif/esp-idf!25983
2023-09-18 18:50:31 +08:00
Jakob Hasse
01ac40fd19 fix(pthread): fixed pthread_condvar linker hook 2023-09-18 12:31:52 +08:00
Jiang Jiang Jian
e9371ded86 Merge branch 'bugfix/fix_station_example_authmode_threshold_issue' into 'release/v4.3'
fix(wifi): fix station example authmode threshold issue

See merge request espressif/esp-idf!25985
2023-09-18 10:30:11 +08:00
muhaidong
f54957ce09 fix(wifi): fix station example authmode threshold issue 2023-09-15 16:34:29 +08:00
Rahul Tank
610472ac58 fix(nimble): Fix for memory leak/optimization 2023-09-15 13:18:33 +05:30
Mahavir Jain
a1aa516d25 Merge branch 'feature/freertos_add_sbom_file_v4.3' into 'release/v4.3'
feat(freertos): Added SBOM manifest file for SPDX file generation (v4.3)

See merge request espressif/esp-idf!25894
2023-09-14 23:53:25 +08:00
Island
fbd905aa52 Merge branch 'bugfix/fix_some_ble_bug_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!25916
2023-09-14 14:10:41 +08:00
Sudeep Mohanty
61b94e3758 feat(freertos): Added SBOM manifest file for SPDX file generation
This commit adds the SBOM manifest file for the FreeRTOS-Kernel to aid
SPDX file generation.
2023-09-12 15:28:05 +02:00
Rahul Tank
a4ac8a0adb Merge branch 'bugfix/add_nimble_50_feature_support_flag_v4.3' into 'release/v4.3'
fix(nimble): add flag to indicate 5.0 feature support(v4.3)

See merge request espressif/esp-idf!25766
2023-09-12 19:22:28 +08:00
Rahul Tank
83778ad67a Merge branch 'feat/add_high_duty_adv_interval_v4.3' into 'release/v4.3'
feat(nimble): Added support for high duty adv interval (v4.3)

See merge request espressif/esp-idf!25556
2023-09-11 22:14:38 +08:00
Jin Cheng
b519e684bd fix(bt/bluedroid): Fixed incorrect arrangement in type esp_hf_dial_type_t 2023-09-11 19:53:03 +08:00
Jin Cheng
64f72c1e6a change(bt/bluedroid): Added line information printing when error occurs CHECK_HF_IDX 2023-09-11 19:53:03 +08:00
Jin Cheng
7fce991d70 fix(bt/bluedroid): Fixed the issue of uninitialized parameters in event BTA_AG_WBS_EVT 2023-09-11 19:53:03 +08:00
chenjianhua
0d9bcc15b5 Update bt lib for ESP32-C3 and ESP32-S3(59725b5)
- Support BLE RX error packet count record
- Fixed adv random delay when adv interval is less than 20ms
- Fixed adv random address setting when owner address type is public
2023-09-11 19:21:22 +08:00
chenjianhua
592caca809 Update bt lib for ESP32-C3 and ESP32-S3(ff6efe7)
- fix(bt/controller): Fixed PHY enable and disable
- feat(bt/controller): Support DAA and LBT mode for BLE CCA
2023-09-11 19:10:36 +08:00
chenjianhua
e787278638 update esp32 bt-lib (7b24543)
- Support BLE RX error packet count record
- Fixed instant setting for LLC procedures with instants
- Fixed adv random delay when adv interval is less than 20ms
2023-09-11 17:16:01 +08:00
zhanghaipeng
fcafafb92a fix(bt): Fix bugs about updating connect param 2023-09-11 17:15:03 +08:00
zhanghaipeng
04d6936ce1 fix(bt): Fix bug while calculating block cipher using aes-128 2023-09-11 17:14:57 +08:00
zhanghaipeng
0b2fc6b34f docs(bt): Update comment in ble 2023-09-11 17:14:46 +08:00
zhanghaipeng
9c7626fab0 feat(bt/bluedroid): Support periodic adv adi feature 2023-09-11 17:13:44 +08:00
chenjianhua
997c2fd59c fix(bt/bluedroid): Fixed BLE disconnect event report when disconnecting 2023-09-11 16:47:29 +08:00
chenjianhua
afbc101fbf fix(bt/bluedroid): Fixed GATTC cache address save when list is full 2023-09-11 16:47:22 +08:00
chenjianhua
9438aa85e1 feat(bt/bluedroid): Support high duty adv interval setting 2023-09-11 16:47:11 +08:00
chenjianhua
a4df2b6305 fix(bt/bluedroid): Fix address check when using NRPA as random device address 2023-09-11 16:47:00 +08:00
Rahul Tank
c8def29e41 fix(nimble): add flag to indicate 5.0 feature support 2023-09-11 09:47:59 +05:30
Jiang Jiang Jian
8560017efd Merge branch 'feature/support_ble_53_host_feat_v4.3' into 'release/v4.3'
Support BLE host feature for PTS (backport v4.3)

See merge request espressif/esp-idf!25649
2023-09-11 12:00:05 +08:00
Rahul Tank
2accf6cf6e feat(nimble): Added support for high duty adv interval 2023-09-11 09:29:35 +05:30
Jiang Jiang Jian
d832144fb7 Merge branch 'bugfix/hf_ag_report_event_with_null_bdaddr_v4.3' into 'release/v4.3'
Bugfix/fixed bugs of HFP in BlueDroid (v4.3)

See merge request espressif/esp-idf!25830
2023-09-11 10:15:09 +08:00
Wang Meng Yang
82f1755b54 Merge branch 'test/bqb_test_bt_classic_a2dp_v4.3' into 'release/v4.3'
fix(bt/bluedroid): Reject SET CONFIGURATION command with error code INVALID_CODEC_TYPE(backport v4.3)

See merge request espressif/esp-idf!25686
2023-09-11 07:36:40 +08:00
Roland Dobai
bfcba10ef2 Merge branch 'fix/click-port-compl_v4.3' into 'release/v4.3'
fix(tools): fix autocomplete for --port option (v4.3)

See merge request espressif/esp-idf!25877
2023-09-09 09:09:12 +08:00
Island
6cc40d5622 Merge branch 'backport_v4.3' into 'release/v4.3'
fix(bt/bluedroid): Fix memory no free issue when disconneting for mesh(backport v4.3)

See merge request espressif/esp-idf!25862
2023-09-08 21:41:22 +08:00
Peter Dragun
649abd203e fix(tools): fix autocomplete for --port option
Closes https://github.com/espressif/esp-idf/issues/7970
2023-09-08 09:31:08 +02:00
Rahul Tank
d6d55aaf98 Merge branch 'bugfix/remove_global_min_max_def_v4.3' into 'release/v4.3'
fix(nimble): Removed global min/max definition causing problems with other libraries(v4.3)

See merge request espressif/esp-idf!25587
2023-09-08 14:39:33 +08:00
Wang Mengyang
1d70553ee6 ci(bt/bluedroid): Add CI build test for HFP examples with voice over HCI enabled 2023-09-08 11:52:26 +08:00
chenqingqing
79493578f2 feat(bt/api): Add new apis for hfp to get the numbers of packet status received and sent 2023-09-08 11:52:13 +08:00
zhanghaipeng
3acf19d9f9 fix(bt/bluedroid): Fix memory no free issue when disconneting for mesh 2023-09-08 10:36:03 +08:00
Rahul Tank
1d62bea80a fix(nimble): Removed global min/max definition causing problems with other libraries 2023-09-07 19:16:29 +05:30
Jin Cheng
670e8f9049 fix(bt/bluedroid): Deleted the redundant 'memset' in btc_hf_cb_handler 2023-09-07 11:31:22 +08:00
Jin Cheng
812f919706 docs(bt/bluedroid): Changed the description of esp_hf_client_reject_call 2023-09-07 11:31:22 +08:00
Jin Cheng
e4f65d9629 fix(bt/bluedroid): Fixed invalid access to freed semaphore 2023-09-07 11:31:22 +08:00
Jin Cheng
a0c505d128 fix(bt/bluedroid): Fixed wrong indexes of HF-AG indicators 2023-09-07 11:31:22 +08:00
Jin Cheng
820e3263fb fix(bt/bluedroid): Added peer Bluetooth device address into HF callback parameters 2023-09-07 11:31:22 +08:00
Jin Cheng
6ae76b7b69 fix(bt/bluedroid): Changed log level from WARNING to DEBUG in bta_ag_sco_read_cback 2023-09-07 11:31:22 +08:00
Jin Cheng
37b8bc13d5 fix(bt/bluedroid): Fixed wrong code logic in 'AT+CIND?' of HFP 2023-09-07 11:31:22 +08:00
Jin Cheng
dec7165a8f fix(bt/bluedroid): Fixed errors in parsing ATD command in HFP AG 2023-09-07 11:31:22 +08:00
Jin Cheng
0d75f97bf2 fix(bt/bluedroid): Fixed NULL Bluetooth device address in HF-AG events was reported to application layer 2023-09-07 11:31:22 +08:00
zhangyanjiao
48f25e4243 fix(Wi-Fi/Vendor): fix ESPNOW send error when station connected to AP and modem sleep is enabled 2023-09-07 10:03:35 +08:00
Anton Maklakov
7bc232a647 Merge branch 'docs/update_api-guides/jtag-debugging/esp32c3' into 'release/v4.3'
docs: synchronize CN version with EN version of api-guides/jtag-debugging/esp32c3.inc

See merge request espressif/esp-idf!25412
2023-09-07 09:25:07 +08:00
Wang Meng Yang
5ecd048c76 Merge branch 'bugfix/fix_some_hci_cmd_param_check_v4.3' into 'release/v4.3'
fix(bt/controller): Fixed some HCI commands parameter check (Backport v4.3)

See merge request espressif/esp-idf!25716
2023-09-07 07:41:18 +08:00
chenjianhua
786a4ce286 bluedroid: add GATT read multi variable API and evt 2023-09-06 21:02:21 +08:00
chenjianhua
281af95160 bluedroid: add periodic adv sync transfer API and EVT 2023-09-06 21:02:21 +08:00
chenjianhua
5714b64bc3 bluedroid: support gatts show local database 2023-09-06 21:02:21 +08:00
chenjianhua
91e6ab313d bluedroid: fixed GATT multi notify and robust caching 2023-09-06 21:02:21 +08:00
chenjianhua
14c2f27f3e bluedroid: add config for GAP service and periodic adv sync transfer 2023-09-06 21:02:21 +08:00
chenjianhua
c479918f2b bluedroid: add internal GATT API for PTS 2023-09-06 21:02:21 +08:00
chenjianhua
019e1aef99 bluedroid: add config for robust caching and RPA timeout 2023-09-06 21:02:21 +08:00
chenjianhua
9dd01968c9 bluedroid: support GATT robust caching feature 2023-09-06 21:02:21 +08:00
chenjianhua
40080c6957 bluedroid: support GATT services database hash calculate 2023-09-06 21:02:21 +08:00
chenjianhua
50496e15fc bluedroid: support periodic advertising sync transfer cmd 2023-09-06 21:02:21 +08:00
chenjianhua
0f46fad2c7 bluedroid: support LE L2CAP credit based connection 2023-09-06 21:02:21 +08:00
chenjianhua
ec5a7d1e74 bluedroid: support oob pairing for smp secure connection 2023-09-06 21:02:21 +08:00
satish.solanke
7393a3ed78 Support of Micro defination in header file 2023-09-06 21:02:21 +08:00
linruihao
c6d7c1687f fix(bt/controller): Fixed some HCI commands parameter check
Fixed HCI_Change_Connection_Packet_Type Command parameter check
Fixed HCI_Accpet_Synchronous_Connection_Request Command parameter check
Fixed HCI_Set_Connectionless_Peripheral_Broadcast_Data Command parameter check
2023-09-06 06:23:17 +00:00
gongyantao
83462ce916 fix(bt/bluedroid): Reject SET CONFIGURATION command with error code INVALID_CODEC_TYPE
1: reset p_scb->avdt_handle in cleanup function.
2: cancel comparing p_scb->codec_type and p_scb->seps[xx].codec_type to
send the error INVALID_CODEC_TYPE.
2023-09-06 03:07:26 +00:00
Jiang Jiang Jian
813a9bf38f Merge branch 'bugfix/fix_espnow_set_lr_rate_fail_v4.3' into 'release/v4.3'
fix(wifi/vendor): fix some bugs in LR and ESP-NOW (backport v4.3)

See merge request espressif/esp-idf!25413
2023-09-05 21:00:18 +08:00
Linda
c8be48f633 docs: synchronize CN version with EN version of api-guides/jtag-debugging/esp32c3.inc 2023-09-05 10:17:23 +00:00
Roland Dobai
d7a2c25acc Merge branch 'version_check_fix_dev_4.3' into 'release/v4.3'
fix(tools): check_python_version accept dev releases as requirement (v4.3)

See merge request espressif/esp-idf!25190
2023-09-05 16:27:27 +08:00
Roland Dobai
6f147b97d4 Merge branch 'component_manager_bump4.3' into 'release/v4.3'
tools(component-manager): bump version to avoid failures in dependency_check script (v4.3)

See merge request espressif/esp-idf!25069
2023-09-05 16:27:09 +08:00
Roland Dobai
d18aac6941 Merge branch 'bugfix/sbom_hash_check_v4.3' into 'release/v4.3'
fix(test_submodules.py): don't rely on submodule init (v4.3)

See merge request espressif/esp-idf!25063
2023-09-05 16:26:47 +08:00
Jiang Jiang Jian
92c75659a1 Merge branch 'bugfix/fix_cache_data_mem_corrupt_after_sleep_v4.3' into 'release/v4.3'
fix(lightsleep): Suspend cache before goto sleep to avoid cache load wrong data (backport v4.3)

See merge request espressif/esp-idf!25106
2023-09-04 14:26:06 +08:00
Jiang Jiang Jian
d06b5a1cde Merge branch 'bugfix/role_switch_enc_mode_lmp_timeout_v4.3' into 'release/v4.3'
fix(bt/controller): Fix disconnection due to lmp messages not being processed by both sides(v4.3)

See merge request espressif/esp-idf!25206
2023-09-04 14:25:40 +08:00
Jiang Jiang Jian
1915151d66 Merge branch 'bugfix/remove_deprecated_err_code_v4.3' into 'release/v4.3'
fix(bt): Removed an incorrectly defined HCI error code (4.3)

See merge request espressif/esp-idf!25291
2023-09-04 14:25:24 +08:00
Jiang Jiang Jian
f96b93cac1 Merge branch 'bugfix/clear_values_in_str_resetfn' into 'release/v4.3'
Clear values in string reset function

See merge request espressif/esp-idf!25322
2023-09-04 14:25:05 +08:00
Jiang Jiang Jian
ff16d2dc1c Merge branch 'bugfix/incr_sdp_max_conns_v4.3' into 'release/v4.3'
fix(bt): Increased SDP maximum connections to avoid connection exhausted (v4.3)

See merge request espressif/esp-idf!25432
2023-09-04 14:24:43 +08:00
Zim Kalinowski
d2b8914193 Merge branch 'update/version_4_3_6' into 'release/v4.3'
Update version to 4.3.6

See merge request espressif/esp-idf!25521
2023-09-03 10:13:46 +08:00
Zim Kalinowski
5dc5a442a2 versions: Update version to 4.3.6 2023-08-30 09:32:53 +08:00
Zim Kalinowski
0585cf0d96 fix(ci): pin component manager version to older one to fix build 2023-08-30 09:32:52 +08:00
Jiang Jiang Jian
9301c32873 Merge branch 'bugfix/ignore_eapol_nonkey_v4.3' into 'release/v4.3'
Ignore EAPOL non-key frames in EAPOL txdone callback (Backport v4.3)

See merge request espressif/esp-idf!25448
2023-08-23 16:37:26 +08:00
Nachiket Kukade
ecf6c02b02 fix(supplicant): Ignore EAPOL non-key frames in EAPOL txdone callback 2023-08-21 18:03:16 +05:30
Jin Cheng
240272ed88 fix(bt): Increased SDP maximum connections to avoid connection exhausted 2023-08-21 11:24:09 +08:00
zhangyanjiao
6c19019aad fix(wifi/vendor): fix some bugs in LR and ESP-NOW
1. Fix the LR rate set fail for espnow and 80211 tx
2. Fixed the RX error when softAP/station and ESP-NOW both encrypted,
   and the ESP-NOW peer address is equal to the connection peer address
2023-08-18 16:24:22 +08:00
Jiang Jiang Jian
70f8666b48 Merge branch 'bugfix/eapol_txdone_cb_issue_v4.3' into 'release/v4.3'
Fix EAPOL Key TxDone callback implementation (Backport v4.3)

See merge request espressif/esp-idf!25384
2023-08-18 14:41:11 +08:00
Nachiket Kukade
7ec1705c0f fix(wifi): Fix EAPOL Key TxDone callback implementation
Fix issues arising due to not distinguishing between M2 and M4
TxDone during 4-way handshake. Also fix EAPOL frame rate to lowest
possible rate.
2023-08-18 11:02:05 +08:00
Jiang Jiang Jian
f47d7d9d59 Merge branch 'bugfix/update_esp32_phy_v4.3' into 'release/v4.3'
fix(phy): update esp32 phy v4771(v4.3)

See merge request espressif/esp-idf!25369
2023-08-18 11:01:37 +08:00
Jiang Jiang Jian
061caf9569 Merge branch 'bugfix/fix_esp32s2_sleep_related_issue_backport_missing' into 'release/v4.3'
fix: fix esp32s2 abnormal light sleep current

See merge request espressif/esp-idf!25336
2023-08-17 11:54:05 +08:00
Jiang Jiang Jian
90c589dfab Merge branch 'bugfix/fix_idrom_bus_mapping_overlap_issue_v4.3' into 'release/v4.3'
fix(esptool): fix potential text/rodata overlap mapping issue on I/DBUS shares mmu entry chips  (backport v4.3)

See merge request espressif/esp-idf!25194
2023-08-16 20:52:43 +08:00
alanmaxwell
721f22a547 fix(phy): update esp32 phy v4771
1. optimize ht40 tx side band issue
2. revert 4770 one minor fix may cause unknown issue
2023-08-16 12:06:07 +08:00
Li Shuai
1ba2ac83e6 fix rtc register read error and add workaround for rtc bus isolate issue 2023-08-11 19:46:06 +08:00
wuzhenghui
64f8e61b17 fix(esp_system): fix cannot pd cpu and rc fast at the same time during light sleep 2023-08-11 19:46:02 +08:00
Shyamal Khachane
d04b9923ee fix(console): Clear values in string reset function 2023-08-11 11:07:04 +05:30
morris
d31e0fb105 Merge branch 'bugfix/wakeup_io_hold_unhold_in_sleep_v4.3' into 'release/v4.3'
gpio: Fix deep sleep wakeup IOs unable to unhold after wakeup (v4.3)

See merge request espressif/esp-idf!22671
2023-08-11 11:08:08 +08:00
Jiang Jiang Jian
b1bdbd1040 Merge branch 'bugfix/fix_phy_rx_issue_v4.3' into 'release/v4.3'
fix(phy): Fix 11b/g rx issue for ESP32(v4.3)

See merge request espressif/esp-idf!25222
2023-08-11 10:18:43 +08:00
alanmaxwell
8e32500e9d fix(phy): Fix 11b/g rx issue for ESP32 2023-08-10 14:11:26 +08:00
Jiang Jiang Jian
3a58f456f9 Merge branch 'bugfix/fix_ftm_error_propagation_v4.3' into 'release/v4.3'
Fix error propagation while initiating FTM (Backport v4.3)

See merge request espressif/esp-idf!25214
2023-08-10 10:38:57 +08:00
Jin Cheng
aeb8c91580 fix(bt): Removed an incorrectly defined HCI error code 2023-08-09 17:40:04 +08:00
Michael (XIAO Xufeng)
056459a629 Merge branch 'bugfix/temperature_get_value_negative_v4.3' into 'release/v4.3'
bugfix(temperature_sensor): Fix issue that get the value is negative (backport v4.3)

See merge request espressif/esp-idf!25250
2023-08-09 16:47:30 +08:00
Song Ruo Jing
8cb8c640f4 gpio: Fix IO hold function related problems
1. Fix deep sleep wakeup IOs can not be unhold issue
2. Correct hold related APIs' description
3. Fix gpio_force_hold_all API

docs: Add GPIO wakeup source to sleep_modes doc for ESP32C3
2023-08-08 02:40:46 +00:00
Song Ruo Jing
0b9e4ff912 examples: system/deep_sleep
1. Fix EXT0 wakeup pin error on ESP32: GPIO3 is not a RTC IO, change to use GPIO25.
2. Add ESP_ERROR_CHECK to explicitly show the runtime error
3. Improve example README
2023-08-08 02:40:46 +00:00
Song Ruo Jing
c3be230487 rtcio: Add a test case to test RTCIO's hold ability after deep sleep wakeup 2023-08-08 02:40:46 +00:00
Cao Sen Miao
0c584425e9 bugfix(temperature_sensor): Fix issue that get the value is negative 2023-08-07 18:48:54 +08:00
Peter Dragun
f1101a7bd4 fix(tools): check_python_version accept dev releases as requirement 2023-08-04 14:22:06 +02:00
Nachiket Kukade
67e287a02d fix(wifi): Fix error propagation while initiating FTM 2023-08-04 12:19:31 +05:30
Jiang Jiang Jian
166c5a7d58 Merge branch 'bugfix/action_tx_sleep_fix_v43' into 'release/v4.3'
Fix collection of issues in offchanel action frame tx and scanning.(v4.3)

See merge request espressif/esp-idf!25155
2023-08-04 13:38:48 +08:00
xiongweichao
5ccda5f84b fix(bt/controller): Fix disconnection due to lmp messages not being processed by both sides
The master sent lmp_enc_mode_req, and the slave sent lmp_switch_req.
However, both sides failed to handle the LMP message, resulting in LMP timeout.
2023-08-04 11:21:49 +08:00
wuzhenghui
064f71dfa2 fix(esptool): fix potential text/rodata mapping overlap issue on I/DBUS shares mmu entry chips 2023-08-03 22:17:30 +08:00
jgujarathi
9121fff643 fix(esp_wifi) : Fix issues with action_frame tx and scan
1. Moves the location of null data frame TX to before channel switch during
   offchannel action frame TX req.
2. Reverts Send wake up and sleep null between scanning.
2023-08-02 18:24:55 +05:30
wuzhenghui
bc13d808e3 fix(lightsleep): fix access pu_cfg after sleep wake wakeup which is linked to flash 2023-08-01 16:39:37 +08:00
wuzhenghui
46dd957c11 fix(lightsleep): suspend cache before goto sleep to avoid cache load wrong data after spi io isolation 2023-08-01 10:39:49 +08:00
Frantisek Hrbata
d1c1ebc196 fix(test_submodules.py): don't rely on submodule init
Current version of the test is using "git-submodule foreach", which
requires submodules to be initialized. Non-initialized submodules are
ignored. Our CI is not performing submodule initialization, but instead
it only downloads the submodule content in tools/ci/ci_fetch_submodule.py
from cache and copies it into the submodule path.

Since we already know the submodule path from .gitconfig, we can use it
as argument to git-ls-tree and avoid calling git-submodule at all. This
allows to perform the test even if the submodules are not initialization
and also it makes the code simpler.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-07-29 10:37:08 +02:00
Peter Dragun
f168e78b12 tools(component-manager): bump version to avoid failures in dependency_check script 2023-07-28 15:15:56 +02:00
Jiang Jiang Jian
a1e7766940 Merge branch 'bugfix/backport_phy_lib_v4.3' into 'release/v4.3'
esp_wifi: update phy lib for esp32c3 and esp32s2(v4.3)

See merge request espressif/esp-idf!24929
2023-07-28 02:48:09 +08:00
alanmaxwell
bb95e4cad3 esp_wifi: update phy lib
1. Fix WiFi not working with Tsens on ESP32S2.
2. WiFi RX multimpath optimization.
3. BLE TX sideband optimization for C3.
4. Fix WiFi and BLE calibration conflict issue.
2023-07-28 01:37:26 +08:00
Jiang Jiang Jian
51fa6add03 Merge branch 'change/rewrite_all_low_to_any_low_when_not_esp32_4.3' into 'release/v4.3'
Change: rewrite EXT1 triggle mode all_low to any_low when not esp32(backport v4.3)

See merge request espressif/esp-idf!24990
2023-07-27 23:05:48 +08:00
Jiang Jiang Jian
f57d0fcc5e Merge branch 'bugfix/tempsensor_wifi_conflict_v4.3' into 'release/v4.3'
temperature_sensor: Fix issue that have conflict with phy / Fix phy pwdet and tsens power cannot be set twice issue (backport v4.3)

See merge request espressif/esp-idf!24968
2023-07-27 23:05:17 +08:00
Jiang Jiang Jian
03d75dbddb Merge branch 'bugfix/test_idf_tools_timeout_v4.3' into 'release/v4.3'
tools: bugfix build_docker timeout

See merge request espressif/esp-idf!24605
2023-07-27 23:04:50 +08:00
alanmaxwell
a405774eff fix(bt/ble): delete rom funcs for backport missing. 2023-07-27 23:03:39 +08:00
Marek Fiala
459e17c413 tools: bugfix build_docker timeout
- Modify Dockerfile to install tools fixed versions to pyenv
- pip was unable to resolve the dependencies
2023-07-27 09:52:26 +02:00
Jiang Jiang Jian
65a1cce3fa Merge branch 'bugfix/fix_wifi_espnow_coexist_API_doc_v4.3' into 'release/v4.3'
fix(esp_wifi): fix ret when setting channel at wifi not started

See merge request espressif/esp-idf!25011
2023-07-27 13:34:54 +08:00
Jiang Jiang Jian
08c212e30c Merge branch 'backport_v4.3' into 'release/v4.3'
fix(bt): Fix ble periodic advertising data length 0 error(backport v4.3)

See merge request espressif/esp-idf!25009
2023-07-27 13:26:36 +08:00
Fu Hanxi
e481a4affa tools: fix requirements.txt for python 3.4
old pip version solver doesn't handle the `requires_python` metadata
field. Doing this for the solver.
2023-07-26 17:06:30 +02:00
liuning
77223bfa9f fix(esp_wifi): fix ret when setting channel at wifi not started 2023-07-26 19:42:11 +08:00
zhanghaipeng
f28b457554 fix(bt): Fix bug with address resolution enabling during non-connected activities 2023-07-26 17:20:15 +08:00
zhanghaipeng
a949b43e53 docs(bt): Organize header files for esp32c3 and esp32s3 2023-07-26 17:19:54 +08:00
zhanghaipeng
48701401fe fix(bt): Fix ble periodic advertising data length 0 error
- Fixed issues about data length 0 when set ext adv data,ext scan rsp data and periodic adv data
2023-07-26 16:48:51 +08:00
Lou Tianhao
cd8946d42d docs(pm/sleep): rewrite_all_low_to_any_low_when_not_esp32 2023-07-26 11:54:53 +08:00
Jiang Jiang Jian
b0bdc8c8a0 Merge branch 'bugfix/fix_dhcp_server_address_pool_issue_for_4.3' into 'release/v4.3'
fix(dhcp server): Fix dhcp server address pool issue for 4.3

See merge request espressif/esp-idf!24992
2023-07-26 10:16:25 +08:00
Cao Sen Miao
60f8d164fa temperature_sensor: Apply new-shared interface in temperature sensor driver 2023-07-26 10:11:07 +08:00
xueyunfei
f70de1aeec fix(dhcp server): Fix dhcp server address pool issue 2023-07-25 20:31:04 +08:00
Jiang Jiang Jian
eaf90a425f Merge branch 'bugfix/fix_sta_receive_other_ap_csa_issue_v4.3' into 'release/v4.3'
fix(wifi): fix sta receive other ap csa issue(Backport v4.3)

See merge request espressif/esp-idf!24981
2023-07-25 20:29:04 +08:00
Lou Tianhao
b0d46efc66 Change: rewrite EXT1 triggle mode all_low to any_low when not esp32 2023-07-25 17:50:32 +08:00
muhaidong
8f6ab93cf4 fix(wifi): fix sta receive other ap csa issue 2023-07-25 11:22:11 +08:00
Jiang Jiang Jian
c6a75ac0cd Merge branch 'bugfix/fix_uart_tx_done_hardware_concurrency_v4.3' into 'release/v4.3'
uart: Fix TX side concurrency issues (v4.3)

See merge request espressif/esp-idf!22597
2023-07-25 10:43:44 +08:00
Jiang Jiang Jian
adc016c8e6 Merge branch 'bugfix/fix_gpio_driver_calloc_v4.3' into 'release/v4.3'
fix(gpio): fix potential crash when processing gpio isr (v4.3)

See merge request espressif/esp-idf!24904
2023-07-24 20:06:13 +08:00
Aditya Patwardhan
f0b5277a2c Merge branch 'ci/fix_failures_in_esp_http_client_example_v4.3' into 'release/v4.3'
CI: fix esp_http_client example failures in CI. Timeout was observed in the... (v4.3)

See merge request espressif/esp-idf!24967
2023-07-24 19:20:19 +08:00
Song Ruo Jing
6a80e30839 uart: Fix two TX concurrency issues
1. Concurrency might cause ESP_ERR_TIMEOUT when calling uart_wait_tx_done
2. Concurrency might cause RTS line being de-assreted during tx transmission for rs485 mode
2023-07-24 11:18:38 +00:00
Cao Sen Miao
35e88d5f8f temperature_sensor: Add new interface and reference counts so that phy and driver can use together 2023-07-24 16:55:05 +08:00
Jiang Jiang Jian
637f491ebd Merge branch 'bugfix/sae_and_nvs_fixes_v4.3' into 'release/v4.3'
Fix SAE and SAE related NVS issues (Backport v4.3)

See merge request espressif/esp-idf!24925
2023-07-24 16:02:30 +08:00
Harshit Malpani
bb9d410578 fix(ci): update HTTP client example tests runner assignment
HTTP client example tests now connect with locally hosted httpbin service
for more stable results across multiple runs
2023-07-24 11:47:42 +05:30
Harshit Malpani
b04cca4933 CI: fix esp_http_client example failures in CI. Timeout was observed in the logs while performing HTTP requests. Changing the endpoint when testing in CI 2023-07-24 11:41:19 +05:30
Jiang Jiang Jian
3ebd574487 Merge branch 'test/rtc_8m_d256_v4.3' into 'release/v4.3'
rtc: fixed multiple RTC issues (dangerous power parameters in sleep modes, support S2/C3 different sleep mode) (v4.3)

See merge request espressif/esp-idf!24910
2023-07-24 10:14:27 +08:00
Shyamal Khachane
113a2ceaf7 fix(wifi): Fix SAE and SAE related NVS issues
1. Discard commit frame received at confirmed state in SAE STA
2. Add nvs values for new config params
3. Bugfix NVS get values for sae pwe
4. Bugfix memory leak caused by assoc retry timer and assoc IE
2023-07-22 20:42:45 +05:30
Jiang Jiang Jian
f93805ab5e Merge branch 'bugfix/fix_ftm_dist_est_v4.3' into 'release/v4.3'
FTM calibration update and improvements in FTM (Backport v4.3)

See merge request espressif/esp-idf!24928
2023-07-21 19:21:42 +08:00
Michael (XIAO Xufeng)
e1647e5b02 Merge branch 'bugfix/fix_spi_flash_api_concurrency_issue_v4.3' into 'release/v4.3'
spi_flash: fix concurrency issue when concurrently calling esp_flash apis (v4.3)

See merge request espressif/esp-idf!24516
2023-07-21 16:53:33 +08:00
Aditya Patwardhan
470fbc347f Merge branch 'fix/esp_aes_return_values_v4.3' into 'release/v4.3'
fix(mbedtls): fix return values of esp-aes APIs (v4.3)

See merge request espressif/esp-idf!24808
2023-07-21 16:00:52 +08:00
morris
08aab06556 Merge branch 'bugfix/bod_glitch_reset_c6_v4.3' into 'release/v4.3'
bootloader: fix BOD and glitch reset on C6 and H2 (v4.3)

See merge request espressif/esp-idf!24937
2023-07-21 15:18:29 +08:00
Nachiket Kukade
afca18bbf0 fix(esp_wifi): Update FTM calibration and fix other FTM issues
Update wifi libs with below fixes -

1. Bugfixes in Initiator and Responder mode
2. Fix wrong RTT value in first FTM procedure without connection
3. Update FTM calibration values for ESP32S2, S3 and C3
4. Update distance estimation logic
5. Add some useful command parameters in FTM example
6. Fix bug when number of FTM measurement frames received is more
   than (number_of_brusts * FTMs per brust).

Co-authored-by: Sarvesh Bodakhe <sarvesh.bodakhe@espressif.com>
2023-07-21 10:34:19 +05:30
Ivan Grokhotkov
e6901634f8 examples: wifi/ftm: make global variables static
Prevents conflict between g_ftm_report_num_entries defined in the
example and in the Wi-Fi library.
2023-07-21 10:17:33 +05:30
Jiang Jiang Jian
f846908135 Merge branch 'bugfix/split_scan_tx_v43' into 'release/v4.3'
Fix collection of issues in sta roam and scan.(v4.3)

See merge request espressif/esp-idf!24885
2023-07-21 11:25:31 +08:00
Xiao Xufeng
a42e6db2fa bootloader: cleanup ana reset config code 2023-07-21 03:28:40 +08:00
Xiao Xufeng
3778687975 bootloader: fixed super watchdog not enabled issue on C3 2023-07-21 03:28:26 +08:00
Xiao Xufeng
77e0c5b553 bootloader: removed unavailable rtc features 2023-07-21 03:28:22 +08:00
Xiao Xufeng
9c75a0fff7 sleep_modes: rename rtc_sleep_enable_adc_tesn_monitor
Partially pick e8b5096f52
2023-07-21 02:50:06 +08:00
harshal.patil
a7f4bb8503 fix(mbedtls): Fixed the transmission of return values of the esp-aes APIs
- Earlier, some intermediate return values were not stored and returned,
thus incorrect return values used to get transmitted to the upper layer of APIs.

- Also, zeroised the output buffer in case of error condition.
2023-07-20 18:56:22 +05:30
Jiang Jiang Jian
7b9ab494e4 Merge branch 'bufix/Backport_some_lwip_bugs_for_4.3_0719' into 'release/v4.3'
lw-ip:backport some lwip bugs for 4.3

See merge request espressif/esp-idf!24909
2023-07-20 13:38:04 +08:00
jgujarathi
984aa78261 fix(esp_wifi) : Fix collection of issues in sta roam and scan.
1) Fix issue during split scan to allow for data tx.
2) Fix issue when parsing wpa_ie to set correct authmode when AP
supports both WPA_EAP and WPA_EAP_SHA256 authmode.
Closes https://github.com/espressif/esp-idf/issues/11202
3) Fix an occasional crash during sta roam.
4) Add home_channel_dwell_time to wifi_scan_config_t. This allows
configuration of the time spent between scanning consecutive
channels for tx.
5) Adds a obss scan timer disarm when a sta disconnects from an AP
2023-07-20 10:09:14 +05:30
hongshuqing
8e911f67b8 fix chip broken bug in monitor mode c3 s2 to v4.4 2023-07-20 03:11:18 +08:00
Xiao Xufeng
f326b7e7a6 ci: Remove fast template build for S3 2023-07-20 03:07:51 +08:00
Michael (XIAO Xufeng)
0fda49b059 test_rtc: add test_app to test power consumption 2023-07-20 03:07:51 +08:00
Michael (XIAO Xufeng)
2e31c8ed52 soc_caps: add SOC_PM_SUPPORT_RTC_PERIPH_PD
Partially pick 6336f8191e
2023-07-20 03:07:51 +08:00
Michael (XIAO Xufeng)
d00d96ae98 pm: putting dbias and pd_cur code into same function 2023-07-20 03:07:51 +08:00
xueyunfei
bb70fa6450 Backport some lwip bugs for 4.3
* Update submodule: git log --oneline 8290c3b8f2adaf82aa45ec992b87f16205f2689b..4f24c9baf9101634b7c690802f424b197b3bb685

Detailed description of the changes:
- lower the dhcp discover and request retry backoff time (esp-lwip@4f24c9ba)
- netdb:fixed bug for getaddrinfo returns null when IPV4 mapped address (esp-lwip@a4d70c7e)
2023-07-19 21:06:58 +08:00
xueyunfei
aa24bfc1df esp_phy:update comments in esp_phy_init.h 2023-07-19 20:31:06 +08:00
Song Ruo Jing
9e7882ba6d fix(gpio): fix potential crash when processing gpio isr
If CONFIG_SPIRAM_USE_MALLOC is enabled, and cache is disabled when GPIO ISR is triggered,
it would lead to Guru Meditation Error due to "Cache disabled but cached memory region accessed".

Closes https://github.com/espressif/esp-idf/issues/11876
2023-07-19 20:04:14 +08:00
Jiang Jiang Jian
258623acf4 Merge branch 'bugfix/fix_some_wifi_bugs_230719_v4.3' into 'release/v4.3'
fix(wifi): fix some wifi bugs 230719 (backport v4.3)

See merge request espressif/esp-idf!24882
2023-07-19 16:36:52 +08:00
zhangyanjiao
2ab431b060 fix(wifi): Add bugfixes and improvements
1. Update wifi security mode
2. Add check for memory allocation in tx buffers
3. Fix association refused temporarily comeback time set to zero issue
4. Vnd ie callback can be set to null
5. Check the second channel info when bandwidth is ht40
6. Fix softap qos null issue
7. Fix the mac bug that hardware parse beacon of ie length equal to zero
8. Remove waiting RX/TXING during hw mac deinit
2023-07-19 12:47:57 +08:00
Rotzbua
7358881dd4 doc: remove WEP as security mode
Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/10015
2023-07-19 11:34:31 +08:00
david zuhn
5bce0abff8 spelling correction in documentation
Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/9721
2023-07-19 11:34:08 +08:00
zhangyanjiao
05695f7cba feat(wifi): Add API to get RSSI info after station connects to AP
- Add esp_wifi_sta_get_rssi() function to retrieve RSSI info after station connects to AP
2023-07-19 11:32:33 +08:00
Jiang Jiang Jian
a29d767e4e Merge branch 'lwip/dhcp_fine_tmr_bug_fix_backport' into 'release/v4.3'
lwip/dhcp: Fixed ondemand fine timers leakage bug (v4.3)

See merge request espressif/esp-idf!24299
2023-07-19 10:03:12 +08:00
Jiang Jiang Jian
a93ccc188e Merge branch 'bugfix/fix_some_wifi_bugs_230717_v4.3' into 'release/v4.3'
fix(wifi): fix some wifi bugs 230717 (Backport v4.3)

See merge request espressif/esp-idf!24860
2023-07-18 21:15:40 +08:00
Abhik Roy
84d93a31dd lwip/dhcp: Fixed ondemand fine timers leakage bug.
Fixed ondemand fine timers bug, that allowed only one dhcp client to run at a time without issue.
2023-07-18 04:02:22 +00:00
muhaidong
82a3693a4e fix(wifi): missed annotate ld function from txop fix 2023-07-18 11:04:48 +08:00
Jiang Jiang Jian
e8f2f5eceb Merge branch 'bugfix/multiple_btm_rrm_task_v43' into 'release/v4.3'
Fix race conditions in btm task deletion(v4.3)

See merge request espressif/esp-idf!24832
2023-07-18 10:49:43 +08:00
Jiang Jiang Jian
e45f7900a0 Merge branch 'bugfix/fix_some_bluedroid_bugs_v4.3' into 'release/v4.3'
Fixed some bluedroid bugs( backport v4.3)

See merge request espressif/esp-idf!24842
2023-07-18 10:49:26 +08:00
Roland Dobai
b3a98e2971 Merge branch 'pkg_resources_deprecation-v4.3' into 'release/v4.3'
fix(tools/python_dep_check): replace deprecated pkg_resources with importlib (backport v4.3)

See merge request espressif/esp-idf!24821
2023-07-17 22:56:05 +08:00
muhaidong
b2aa2eb384 esp_wifi: fix some txop issues 2023-07-17 20:24:28 +08:00
muhaidong
e9d414dea7 esp_supplicant: When the softAP authentication mode is set to WPA2_PSK, WPA2_WPA3_PSK, or WPA3_PSK, the pairwise cipher will be overwritten with WIFI_CIPHER_TYPE_CCMP 2023-07-17 20:19:25 +08:00
muhaidong
520e67b5bb 1. fix set inactive time crash issue 2023-07-17 20:11:50 +08:00
chenjianhua
2d1e936062 fix(bt/bluedroid): Fix memory leak of gattc cache upon disconnection 2023-07-17 16:36:45 +08:00
chenjianhua
a88e680fc8 bluedroid: fixed gatt tcb free when disconnecting 2023-07-17 16:36:45 +08:00
chenjianhua
2a9ded6195 bluedroid: fixed compile warning when optimize for performance 2023-07-17 16:36:45 +08:00
Peter Dragun
bbdaa0b3e1 fix(tools/python_dep_check): replace deprecated pkg_resources with importlib 2023-07-17 10:18:28 +02:00
Jiang Jiang Jian
b4494e6a11 Merge branch 'bugfix/sae_crypto_optimization_esp32_v4.3' into 'release/v4.3'
esp_wifi: Optimize sae crypto operations for esp32 (v4.3)

See merge request espressif/esp-idf!24763
2023-07-17 14:58:49 +08:00
Jiang Jiang Jian
7839ba508a Merge branch 'bugfix/btm_scan_done_crash_v43' into 'release/v4.3'
fix(wpa_supplicant) : Fix occasional crash during btm roam.

See merge request espressif/esp-idf!24734
2023-07-17 14:40:29 +08:00
jgujarathi
8fa90c2234 fix(esp_wifi): Fix race conditions in btm task deletion.
Fix possible cases of multiple btm_rrm_t tasks due to possible race
condition during btm task deletion.
2023-07-17 10:27:04 +05:30
Jiang Jiang Jian
328e1519cb Merge branch 'backport_v4.3' into 'release/v4.3'
fix(bt): Fix the issue of not printing the Bluetooth MAC address for ESP32(backport v4.3)

See merge request espressif/esp-idf!24777
2023-07-17 10:34:44 +08:00
zhanghaipeng
a2c9469e6c fix(bt): Fix the issue of not printing the Bluetooth MAC address for ESP32
- Add a log statement to print the Bluetooth MAC address
2023-07-13 16:20:51 +08:00
zhanghaipeng
ad3414cbd6 fix(bt): Fix ble advertising data length 0 error
- Fixed an issue where the BLE advertisement length of 0 was causing an error
2023-07-13 16:20:50 +08:00
Kapil Gupta
b0e4888063 esp_wifi: Optimize sae crypto operations for esp32 2023-07-13 09:47:44 +05:30
Jiang Jiang Jian
73c4120d42 Merge branch 'bugfix/nvs_softap_pmk_v4.3' into 'release/v4.3'
esp_wifi: fix softap nvs <ssid,password,pmk> not matching issue(v4.3)

See merge request espressif/esp-idf!23819
2023-07-13 10:42:09 +08:00
chenjianxing
331a93608d esp_wifi: fix softap nvs <ssid,password,pmk> not matching issue 2023-07-12 20:23:02 +08:00
jgujarathi
9451630000 fix(wpa_supplicant) : Fix occasional crash during btm roam.
Fix crash due to premature deallocation of neighbour report elements
by scan_done. Post event to btm_rrm_t task to handle scan_done serially
rather than when btm_rrm_t task is processing btm request rx frame.
2023-07-12 11:02:20 +05:30
Jiang Jiang Jian
33d18182b7 Merge branch 'bugfix/increase_pm_dump_time_field_length_v4.3' into 'release/v4.3'
Power Management: increase pm_dump time field width (backport v4.3)

See merge request espressif/esp-idf!24447
2023-07-11 01:50:47 +08:00
wuzhenghui
f33fbdcd2d bugfix: increase pm_dump time field width
Closes https://github.com/espressif/esp-idf/issues/11704
2023-07-10 06:40:37 +00:00
Sachin Parekh
f8ae448767 esp_pm: Label each column of lock dump 2023-07-10 06:40:37 +00:00
Jiang Jiang Jian
9195898b15 Merge branch 'mesh/bugfix_fix_layer2_node_scan_issue_when_fixed_root_v4.3' into 'release/v4.3'
fix(wifi_mesh): layer2 node will scan all channels when fixed root leave (backport v4.3)

See merge request espressif/esp-idf!24633
2023-07-10 12:29:15 +08:00
Jiang Jiang Jian
7c0156359e Merge branch 'bugfix/update_esp_rom_layout_v4.3' into 'release/v4.3'
esp_rom: fix rom layout issues (backport v4.3)

See merge request espressif/esp-idf!24642
2023-07-08 14:55:08 +08:00
Jiang Guang Ming
be2aa49519 esp_rom: fix rom layout issues 2023-07-07 01:38:45 -07:00
Armando
fb231a26d9 spi_flash: rename spi_flash_os_func_app: spi_start, spi_end
spi_start -> s_acquire_spi_bus_lock
spi_end -> s_release_spi_bus_lock
2023-07-07 11:10:27 +08:00
Armando
0fe635f111 spi_flash: fix concurrency issue when calling esp_flash apis under xip_psram or auto_suspen 2023-07-07 11:10:27 +08:00
zhangyanjiao
3e36f7c5d5 fix(wifi_mesh): layer2 node will scan all channels when fixed root leave 2023-07-07 10:04:08 +08:00
Jiang Jiang Jian
af6498f582 Merge branch 'bugfix/fix_some_bt_controller_bug_v4.3' into 'release/v4.3'
component_bt:Fixed some bluetooth bugs(v4.3)

See merge request espressif/esp-idf!24581
2023-07-05 19:51:27 +08:00
xiongweichao
4630164d81 bt: Fixed some bluetooth bugs
1. Fixed LC_AFH_UPDATE_IND  has not benn processed causing memory exhaustion
2. Fixed no free elt in prog push
3. Fixed disconnect due to sniff with error Dsniff
4. Fixed the problem that the host continued to send ACL data to the controller after disconnection, which caused the connection to fail again
2023-07-04 15:39:42 +08:00
chenjianhua
f92bfe15f2 Update bt-lib for esp32
- Fixed memory leak when setting adv data
2023-07-04 15:39:35 +08:00
xiongweichao
0292dc50cf components/bt: Fix crash due to NULL point 2023-07-04 15:39:30 +08:00
Armando
63e24a9ff9 spiflash: fix not calling on_spi_acquired when CONFIG_SPI_FLASH_SHARE_SPI1_BUS issue 2023-06-30 15:58:09 +08:00
Mahavir Jain
97653257fd Merge branch 'protobuf-c/update_submodule_to_v4.3' into 'release/v4.3'
protobuf-c: Update submodule to v1.4.1 (v4.3)

See merge request espressif/esp-idf!24423
2023-06-29 16:18:05 +08:00
Jiang Jiang Jian
0814f6565a Merge branch 'bugfix/resume_ext_scan_pti_in_time_v4.3' into 'release/v4.3'
bt: fix the issue that BLE scan uses high priority incorrectly and causes Wi-Fi unable to work normally on ESP32-C3 and ESP32-S3(backport v4.3)

See merge request espressif/esp-idf!24407
2023-06-28 14:29:35 +08:00
harshal.patil
9733dced38 protobuf-c: Update submodule to v1.4.1 2023-06-27 12:04:56 +05:30
wangmengyang
5ebe45433f bt-coexist: fix the issue for BLE scan in using whitelist that scan PTI keeps high and not resumes after reception of ADV_EXT_IND but no AUX_ADV_IND followed on ESP32-C3 and ESP32-S3, which causes Wi-Fi unable to work normally 2023-06-26 15:35:24 +08:00
Jiang Jiang Jian
4c0206c156 Merge branch 'bugfix/hfp_packet_type_err_v4.3' into 'release/v4.3'
Revised (e)SCO configuration parameter sets (v4.3)

See merge request espressif/esp-idf!24355
2023-06-26 10:22:36 +08:00
Jiang Jiang Jian
3fddf4a761 Merge branch 'bugfix/alarm_not_free_when_a2dp_deinit_v4.3' into 'release/v4.3'
bugfix/Fixed the issue of alarm leak (v4.3)

See merge request espressif/esp-idf!24354
2023-06-26 10:21:57 +08:00
Krzysztof Budzynski
01447b3cbe Merge branch 'docs/fix_error_in_esp32-s2-devkitc-1_pin_layout_diagram_v4.3' into 'release/v4.3'
Docs/Fix error in esp32-s2-devkitc-1 pin layout diagram (v4.3)

See merge request espressif/esp-idf!24119
2023-06-25 19:42:53 +08:00
Aditya Patwardhan
bcec78f672 Merge branch 'contrib/github_pr_11402_v4.3' into 'release/v4.3'
esp_ds: ignore releasing mutex if not called from same task (GitHub PR) (v4.3)

See merge request espressif/esp-idf!24315
2023-06-23 14:18:02 +08:00
Island
d6615a631e Merge branch 'feature/expose_addr_resolv_out_stack_v4.3' into 'release/v4.3'
Nimble:Added change to expose addr resolution API outside stack(v4.3)

See merge request espressif/esp-idf!23903
2023-06-21 19:38:31 +08:00
Wang Ning
3f6156657b fix_error_in_esp32-s2-devkitc-1_pin_layout_diagram 2023-06-21 08:12:08 +00:00
Jin Cheng
988892e0d6 Fixed the issue of alarm leak in hf-ag 2023-06-21 15:36:09 +08:00
Jin Cheng
d817d66d5f Fixed the issue of alarm leak in A2DP 2023-06-21 15:35:59 +08:00
Jin Cheng
3a91557f4e Revised (e)SCO configuration parameter sets 2023-06-21 14:50:20 +08:00
Rahul Tank
c429ef9a97 Nimble:Added change to expose addr resolution API outside stack 2023-06-20 20:00:47 +05:30
Jiang Jiang Jian
9812efb236 Merge branch 'bugfix/fix_some_ble_bugs_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!24286
2023-06-20 19:24:07 +08:00
Jiang Jiang Jian
0619320ee6 Merge branch 'bugfix/install_keys_after_successful_4_of_4_tx_v4.3' into 'release/v4.3'
esp_wifi: Install keys after successful transmission of EAPOL 4/4 Message(backport v4.3)

See merge request espressif/esp-idf!23624
2023-06-20 16:43:27 +08:00
Christoph Baechler
0002b59fc6 esp_ds: ignore releasing mutex if not called from same task 2023-06-20 09:02:48 +05:30
Roland Dobai
9dfc9b6244 Merge branch 'feature/submodules_sbom_v4.3' into 'release/v4.3'
tools: add sbom information for submodules (v4.3)

See merge request espressif/esp-idf!24246
2023-06-19 21:51:46 +08:00
Shreyas Sheth
5e60fb4fd4 esp_wifi: Install keys after eapol and NVS store security values
1. Bugfix store authmode security in NVS
2. Install keys after successful transmission of EAPOL 4/4 Message
2023-06-18 01:25:58 +05:30
Jiang Jiang Jian
dae9bac87f Merge branch 'bugfix/fix_wps_with_sae_enabled_ap_v4.3' into 'release/v4.3'
esp_wifi: Fix WPS issue for WPA3+WPA2 mode(v4.3)

See merge request espressif/esp-idf!24157
2023-06-16 18:44:26 +08:00
chenjianhua
7c916516a8 Update bt-lib for esp32
1 Fixed disconnection delay on peripheral when slave latency is not zero
2 Fixed LLCP info init for central and peripheral
3 Fixed sent cmd status evt twice when process disconnect cmd
2023-06-16 18:03:12 +08:00
chenjianhua
ea39667b84 Fixed crash when controller initialization fails due to insufficient memory 2023-06-16 18:02:30 +08:00
chenjianhua
bff2748b35 Revert "bluedroid: report disconnect event after BLE link closed"
This reverts commit a7c1fd9f60.
2023-06-16 17:55:44 +08:00
chenjianhua
8aad580431 bluedroid: fixed default extended connection params 2023-06-16 17:55:21 +08:00
chenjianhua
304deb005d esp_hid: fixed ble hid battery level setting 2023-06-16 17:55:11 +08:00
Frantisek Hrbata
d4ab79259a tools: add sbom information for submodules
Conflicts:
- spiffs submodules version and hash changed to 0.2-221-gf5e26c4e9331
- protobuf-c submodule version and hash changed to v1.3.0
- ci files moved from tools/ci/config/ into .gitlab/ci/ in v4.4, so
  host-test.yml and rules.yml were changed accordingly in tools/ci/config/.
- added patterns-submodule to rules.yml, because they were also added in
  v4.4
- removed pytest dependency

This adds SBOM information for submodules, which are not managed
by Espressif. Meaning there is no fork for them in the espressif
namespace. Other submodules should add sbom.yml manifest file to
the root of their git repository.

The SBOM information for submodules is stored in the .gitmodules file.
Each SBOM related variable has the "sbom-" prefix and the following
variables may be used:

sbom-version:
   submodule version

sbom-cpe:
   CPE record if available in NVD. This will be used by the SBOM
   tool to check for possible submodule vulnerabilities. The
   version in the CPE can be replaced with the "{}" placeholder,
   which will be replaced by the "sbom-version" value from above.

sbom-supplier:
   Person or organization who is providing the submodule.
   It has to start with "Person:" or "Organization:" prefix
   as required by the SPDX-2.2 standard.

sbom-url:
   URL to the project if exists, e.g. github.

sbom-description:
   Project description.

sbom-hash:
   Submodule SHA as recorded in the git-tree. This field is used by
   CI to check that the submodule checkout hash and info in .gitmodules
   are in sync. IOW if submodule is updated and it has SBOM info in
   .gitmodules, the .gitmodules has to be updated too. The test is
   part of this commit. The checkout has of the submodule can be found
   by using "git submodule status".

Example for micro-ecc submodule
---8<---
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
	path = components/bootloader/subproject/components/micro-ecc/micro-ecc
	url = ../../kmackay/micro-ecc.git
	sbom-version = 1.0
	sbom-cpe = cpe:2.3:a:micro-ecc_project:micro-ecc:{}:*:*:*:*:*:*:*
	sbom-supplier = Person: Ken MacKay
	sbom-url = https://github.com/kmackay/micro-ecc
	sbom-description = A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors
	sbom-hash = d037ec89546fad14b5c4d5456c2e23a71e554966
---8<---

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-16 07:34:49 +02:00
Aditya Patwardhan
3897faa9c8 Merge branch 'bugfix/aes_dma_align_issue_v4.3' into 'release/v4.3'
aes: fix DMA descriptor calculation for the alignment case (v4.3)

See merge request espressif/esp-idf!24096
2023-06-14 16:57:18 +08:00
Kapil Gupta
04e21b1af4 esp_wifi: Fix WPS issue for WPA3+WPA2 mode 2023-06-09 18:13:01 +05:30
Roland Dobai
2c3cba7e9f Merge branch 'feature/extend_proj_desc_json_v4.3' into 'release/v4.3'
extend information in project_description.json (v4.3)

See merge request espressif/esp-idf!24130
2023-06-09 02:10:56 +08:00
Frantisek Hrbata
f1eef50947 tools: extend information in project_description.json
This extends information provided in the project_description.json file.
Newly added information can be used in the SBOM generating tool and
also to improve hints regarding the the component dependency issues.

Added fields

version:
   This adds versioning to the project_description.json file,
   so it's easy to identify if it contains the required information.

project_version:
   Can be used as a version for the resulting binary e.g. `hello_world.bin`.

idf_path:
   This one is probably not necessary, but it allows tools to run even without
   esp-idf environment exported(e.g. export.sh).

c_compiler:
   The `CMAKE_C_COMPILER` value with full path to the compiler binary. This can
   be used to get information about toolchain, which was used to build the project.

common_component_reqs:
   List of common components as presented in cmake's __COMPONENT_REQUIRES_COMMON
   and set in tools/cmake/build.cmake:__build_init().

build_component_info:
   Detailed information about components used during build. It's a
   dictionary with the component name as a key and each component has
   a dictionary with detailed information. Following is an example for
   the efuse component.

   "efuse": {
       "alias": "idf::efuse",
       "target": "___idf_efuse",
       "prefix": "idf",
       "dir": "/home/fhrbata/work/esp-idf/components/efuse",
       "type": "LIBRARY",
       "lib": "__idf_efuse",
       "reqs": [],
       "priv_reqs": [ "bootloader_support", "soc", "spi_flash" ],
       "managed_reqs": [],
       "managed_priv_reqs": [],
       "file": "/home/fhrbata/work/blink/build/esp-idf/efuse/libefuse.a",
       "sources": [ "/home/fhrbata/work/esp-idf/components/efuse/esp32s3/esp_efuse_table.c", ... ],
       "include_dirs": [ "include", "esp32s3/include" ]
   }

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-08 18:42:06 +02:00
Frantisek Hrbata
befb32b45b tools: fix make_json_list to return empty json list for empty cmake list
Currently make_json_list() returns '[ "" ]' for empty cmake list. Fix this
so empty json list is returned instead.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-08 18:42:06 +02:00
Mahavir Jain
18dbdbb643 aes: fix DMA descriptor calculation for the alignment case
The number of the DMA descriptors allocated for certain length (e.g.,
8176) were not sufficient (off by 1 error). This used to result in the
dynamic memory corruption as the region was modified beyond the
allocated range.

This change fixes the DMA descriptor calculation part and allocates
sufficient DMA descriptors based on the data length alignment considerations.

Test has also been added to cover the specific scenario in the CI.

Closes https://github.com/espressif/esp-idf/issues/11310
2023-06-07 09:22:10 +05:30
Jiang Jiang Jian
b13ddef25c Merge branch 'bugfix/close_phy_tsens_before_sleep_v4.3' into 'release/v4.3'
sleep: fix deepsleep current leakage caused by phy_tsens (backport v4.3)

See merge request espressif/esp-idf!23907
2023-06-06 11:52:12 +08:00
Jiang Jiang Jian
756fa45a06 Merge branch 'bugfix/fix_wakeup_failed_if_powerdown_flash_in_lightsleep_v4.3' into 'release/v4.3'
Power Management: fixed flash funcs called in sleep wakeup process (backport v4.3)

See merge request espressif/esp-idf!24006
2023-06-06 11:50:59 +08:00
Jiang Jiang Jian
8c01b63cbd Merge branch 'bugfix/dpp_retry_start_listening_issue_v4.3' into 'release/v4.3'
esp_dpp: Fix retry with esp_supp_dpp_start_listen after failure (v4.3)

See merge request espressif/esp-idf!23597
2023-06-02 09:56:59 +08:00
Jiang Jiang Jian
cac7fb93e4 Merge branch 'bugfix/hf_cind_ind_index_v4.3' into 'release/v4.3'
bt: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator(v4.3)

See merge request espressif/esp-idf!23563
2023-06-01 19:44:38 +08:00
Jiang Jiang Jian
eb56474d53 Merge branch 'bugfix/hfp_ag_idx_invalid_v4.3' into 'release/v4.3'
bt: Fixed out of bounds access due to variable length array(v4.3)

See merge request espressif/esp-idf!23668
2023-06-01 19:43:39 +08:00
Jiang Jiang Jian
fabd11b320 Merge branch 'bugfix/s3_compile_error' into 'release/v4.3'
bt: Fixed compilation errors for ESP32S3(v4.3)

See merge request espressif/esp-idf!23957
2023-06-01 19:42:30 +08:00
Jiang Jiang Jian
65c877a63e Merge branch 'contrib/github_pr_11215_v4.3' into 'release/v4.3'
improve thread safety in esp_timer (GitHub PR) (v4.3)

See merge request espressif/esp-idf!23542
2023-06-01 19:41:42 +08:00
Jiang Jiang Jian
08c7c13260 Merge branch 'bugfix/fix_blufi_compilation_issue_v4.3' into 'release/v4.3'
Blufi: Fix compilation issue for blufi over NimBLE(v4.3)

See merge request espressif/esp-idf!24022
2023-06-01 19:38:19 +08:00
Rahul Tank
6445a2cc54 Blufi: Fix compilation issue for blufi over NimBLE 2023-06-01 12:56:31 +05:30
wuzhenghui
327352cf53 bugfix: fix wakeup failed if powerdown flash in lightsleep 2023-05-31 19:11:23 +08:00
xiongweichao
674593177c bt: Fixed compilation errors for ESP32S3 2023-05-30 06:14:02 +00:00
Jens Gutermuth
af3486ecf9 improve thread safety in esp_timer
Inadequate locking in the esp_timer component allowed corruption
of the s_timers linked list:

1. timer_armed(timer) returns false
2. another task arms the timer and adds it to s_timers
3. the list is locked
4. the timer is inserted into s_timers again

The last step results in a loop in the s_timers list, which causes
an infinite loop when iterated. This change always locks the
list before checking if the timer is already armed avoiding
the data race.
2023-05-29 14:27:49 +08:00
wuzhenghui
2f74124170 bugfix: close phy_tsens before deepsleep 2023-05-25 11:53:32 +08:00
Jiang Jiang Jian
3a10cc9e4a Merge branch 'bugfix/fix_iphone_disconnects_immediately_after_connecting_when_BLE_wifi_coexist_v4.3' into 'release/v4.3'
Fix iPhone disconnects immediately after connecting when ble wifi coexist(backport v4.3)

See merge request espressif/esp-idf!23814
2023-05-23 18:34:44 +08:00
zhiweijian
9e2e3f8d19 Update libphy for ble 1M/2M switch and ble track on ESP32-C3 2023-05-23 11:10:34 +08:00
Jiang Jiang Jian
119c4c4b18 Merge branch 'bugfix/fix_some_ble_bug_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!23700
2023-05-22 11:56:54 +08:00
Zim Kalinowski
ceddc4ff04 Merge branch 'bugfix/sync-contribution-guide_v4.3' into 'release/v4.3'
docs: updated contribution agreement (v4.3)

See merge request espressif/esp-idf!23836
2023-05-20 04:48:36 +08:00
chenjianhua
87aaf07b0f Update bt lib for ESP32-C3 and ESP32-S3
- Fixed remote mic error during encryption procedure
- Fixed ble hopping selection for connection when disabled 5.0 feature
2023-05-19 15:58:42 +08:00
chenjianhua
bb1b696e69 bluedroid: fix ble ext adv rand addr setting for NRPA 2023-05-19 15:57:45 +08:00
chenjianhua
7893c5f479 bluedroid: fix ble adv data construct for device name 2023-05-19 15:57:38 +08:00
chenjianhua
e3594aca70 bluedroid: fix ble smp key distribution setting 2023-05-19 15:57:32 +08:00
chenjianhua
a7c1fd9f60 bluedroid: report disconnect event after BLE link closed 2023-05-19 15:57:25 +08:00
Zim Kalinowski
40d52d7978 docs: updated contribution agreement 2023-05-18 16:48:29 +02:00
Wang Meng Yang
471332039e Merge branch 'bugfix/fix_esp32_bugs_230511_v4.3' into 'release/v4.3'
Fixed some esp32 bugs(backport v4.3)

See merge request espressif/esp-idf!23705
2023-05-18 15:04:37 +08:00
Mahavir Jain
d532e2307e Merge branch 'bugfix/update_test_dl_esp_cert_v4.3' into 'release/v4.3'
tests: update Root certificate for the test endpoints (v4.3)

See merge request espressif/esp-idf!23800
2023-05-18 12:16:29 +08:00
Mahavir Jain
e0bea82931 tests: update Root certificate for the test endpoints
Use Root certificate (`DigiCert Global Root G2`) for the
`dl.espressif.com` and `espressif.com` test endpoints.

This fixes the test failure introduced due to renewal of
the intermediate certificate.
2023-05-17 15:29:06 +05:30
Zim Kalinowski
bf2e588972 Merge branch 'bugfix/i2c_timing_wrong_v4.3' into 'release/v4.3'
i2c: fix a bug in sda sample timing (backport v4.3)

See merge request espressif/esp-idf!23232
2023-05-17 14:49:04 +08:00
Marius Vikhammer
85c0fe4a7d Merge branch 'bugfix/psram_newlib_time_rom_v4.3' into 'release/v4.3'
rom: fix newlib time ROM functions being regardless of CONFIG_SPIRAM_CACHE_WORKAROUND (v4.3)

See merge request espressif/esp-idf!23388
2023-05-17 09:24:27 +08:00
zhiweijian
4853b91b18 Fixed blufi doc error 2023-05-11 20:21:21 +08:00
zhiweijian
0f0ea746a9 Fixed BLE disconnection failure on ESP32 2023-05-11 20:18:40 +08:00
zwj
cd4a4a6bb5 Fixed disconnection due to consecutive CRC errors in first 6 intervals 2023-05-11 20:18:31 +08:00
zwj
2098472085 Fixed no error report when own address type is rpa_random and no random address setting 2023-05-11 20:18:21 +08:00
zhiweijian
60c5d952db Fixed battery profile wrong condition 2023-05-11 20:18:12 +08:00
Marius Vikhammer
e3d109dd1d rom: fix newlib time ROM functions being regardless of CONFIG_SPIRAM_CACHE_WORKAROUND
On ESP32 ROM functions are not compatible with CONFIG_SPIRAM_CACHE_WORKAROUND.
This were handled correctly in cmake, but not in make.
2023-05-11 07:22:17 +00:00
xiongweichao
08e3ff3f77 bt: Deleted some redundant variables in HFP_AG 2023-05-10 10:28:38 +08:00
xiongweichao
a21f801eba bt: Fixed the problem of out-of-bounds access caused by the variable-length array introduced in 3268075231
Closes https://github.com/espressif/esp-idf/issues/11264
2023-05-10 10:28:34 +08:00
xiongweichao
979d63de4d bt: Fixed codec mode error in ESP_HF_WBS_RESPONSE_EVT 2023-05-10 10:28:29 +08:00
jasta
cf14eb4a17 esp_dpp: Fix retry with esp_supp_dpp_start_listen after failure
This fixes a subtle bug in which ESP_ERR_DPP_TX_FAILURE errors would
call esp_supp_dpp_stop_listen which sets the s_dpp_stop_listening flag
to true.  Subsequent attempts to restart listening with
esp_supp_dpp_start_listen then only attempt to listen once more for
500ms before reading the s_dpp_stop_listening flag again and giving up.

This contributes greatly to #10615, but the fix here is still largely
a work-around as it sometimes requires manually retrying a couple times
before it works.  Without this fix, any number of retries by
deinit/init again will seemingly not work as the retries for currently
unknown reasons.

Signed-off-by: Shreyas Sheth <shreyas.sheth@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/10865
2023-05-05 14:21:32 +05:30
xiongweichao
d2ce8548cd bt: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator.
Closes https://github.com/espressif/esp-idf/issues/6486
2023-05-04 14:20:08 +08:00
Omar Chebib
b2c50986ee i2c: fix a bug in sda sample timing
* Closes https://github.com/espressif/esp-idf/issues/9777

This bug prevented SCL line to work properly after a NACK was received in master mode.
2023-05-04 04:16:12 +00:00
Zim Kalinowski
33b3db35d7 Merge branch 'doc/fix_pthread_create_example' into 'release/v4.3'
doc: fixed pthread_create call in example

See merge request espressif/esp-idf!23355
2023-04-24 14:54:30 +08:00
Jiang Jiang Jian
551de84c52 Merge branch 'bugfix/improve_scan_performance_when_scan_and_sync_coexist_v4.3' into 'release/v4.3'
Fixed some ESP32C3/S3 BLE bugs 23-04-22(backport v4.3)

See merge request espressif/esp-idf!23368
2023-04-24 11:09:39 +08:00
Jiang Jiang Jian
f3c5763f0e Merge branch 'bugfix/fix_some_ble_bug_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!23302
2023-04-24 10:46:48 +08:00
Jiang Jiang Jian
a42d0ef64f Merge branch 'bugfix/fix_duplicate_scan_cycle_refresh_not_accurate_v4.3' into 'release/v4.3'
Fixed duplicate scan refresh cycle is not accurate after restarting scan on ESP32 (backport v4.3)

See merge request espressif/esp-idf!23366
2023-04-24 10:35:12 +08:00
zhiweijian
0ca4644ad1 - improve scan performance when scan and sync coexist on ESP32-C3 and ESP32-S3
- Fixed non-connectable and non-scannable directed adv can't be scanned on ESP32-C3 and ESP32-S3
2023-04-23 22:00:14 +08:00
zhiweijian
96f9fac9c1 Disable controller 5.0 feature bits if host 5.0 feature is not enabled 2023-04-23 21:47:09 +08:00
zwj
f24ca9fdaf Fixed duplicate scan refresh cycle is not accurate after restarting scan on ESP32 2023-04-23 21:13:25 +08:00
Jakob Hasse
30f065a97b doc: fixed pthread_create call in example 2023-04-23 10:39:21 +08:00
Jiang Jiang Jian
a9586adb0b Merge branch 'bugfix/softap_beacon_process_v4.3' into 'release/v4.3'
esp_wifi: validate softAP interface when sending beacon and add sta_connected callback (Backport v4.3)

See merge request espressif/esp-idf!23264
2023-04-23 10:31:05 +08:00
Mahavir Jain
7b9accc482 Merge branch 'bugfix/block9_can_not_be_used_for_fe_v4.3' into 'release/v4.3'
efuse: Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5) (v4.3)

See merge request espressif/esp-idf!23293
2023-04-21 15:26:21 +08:00
chenjianhua
7c133db8b3 bluedroid: report status after clearing the BLE white list 2023-04-21 14:37:32 +08:00
chenjianhua
c186943097 bluedroid: fix GATTC cache address save 2023-04-21 14:37:31 +08:00
chenjianhua
8dbe4fec0d bluedroid: fix adv and scan state conflict 2023-04-21 14:37:31 +08:00
chenjianhua
31f6dab386 bluedroid: support get bluetooth device name 2023-04-21 14:37:31 +08:00
Zim Kalinowski
4571dd1d2f Merge branch 'contrib/github_pr_7754_v4.3' into 'release/v4.3'
Fix infinite recursion in FLAG_ATTR operator (GitHub PR) (backport v4.3)

See merge request espressif/esp-idf!23236
2023-04-20 19:34:38 +08:00
jgujarathi
f87afae48d wpa_supplicant : Prevent h2e config overwrite
Current esp_wifi_get_config doesn't return correct value of h2e config which will cause h2e config to be overwritten in Station connected handler.

Add one preventative condition to take care of this.
2023-04-20 15:29:19 +05:30
Sarvesh Bodakhe
37a2cce163 esp_wifi: fix some wifi bugs
1. Move wpa_supplicant WIFI_EVENT_STA_CONNECTED and WIFI_EVENT_STA_DISCONNECTED event handlers into callbacks
2. Validate softAP interface when sending beacon frame
2023-04-20 15:29:11 +05:30
KonstantinKondrashov
e920827199 esptool: Update esptool
Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5)
2023-04-20 14:16:21 +08:00
Mahavir Jain
719eb6375e docs: add a note regarding EFuse Block9 key purpose quirk for some chips 2023-04-20 14:16:21 +08:00
KonstantinKondrashov
e21b0cb6ed efuse: Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5)
eFuse module has a hardware bug.
It is related to ESP32-C3, C6, S3, H2 chips:
    - BLOCK9 (BLOCK_KEY5) can not be used by XTS_AES keys.
For H2 chips, the BLOCK9 (BLOCK_KEY5) can not be used by ECDSA keys.
S2 does not have such a hardware bug.
2023-04-20 14:16:21 +08:00
Jiang Jiang Jian
87234fdafc Merge branch 'feature/add_menuconfig_of_calibration_mode_v4.3' into 'release/v4.3'
esp_phy: add menuconfig of phy calibration mode and disable reduce PHY TX power when brownout reset(Backport v4.3)

See merge request espressif/esp-idf!23260
2023-04-19 15:26:37 +08:00
muhaidong
1c78db33ad esp_phy: add menuconfig of phy calibration mode and disable reduce PHY TX power when brownout reset 2023-04-18 20:06:01 +08:00
Jiang Jiang Jian
3ac5fbcf8b Merge branch 'bugfix/fix_systimer_stall_issue_in_lightsleep_v4.3' into 'release/v4.3'
esp_wifi: allow connectionless ps with mesh, fix failed to sleep after scan;...

See merge request espressif/esp-idf!23205
2023-04-17 19:41:06 +08:00
Otto Winter
381ac08f12 bugfix (esp_common): remove infinite recursion in FLAG_ATTR operator
Closes https://github.com/espressif/esp-idf/pull/7754

Signed-off-by: Jakob Hasse <jakob.hasse@espressif.com>
2023-04-17 18:37:15 +08:00
liuning
72253506e9 esp_wifi: allow connectionless ps with mesh, fix failed to sleep after scan; coex: fix esp32 wifi interrupted by ble act 2023-04-14 14:22:54 +08:00
Jiang Jiang Jian
650e722807 Merge branch 'bugfix/espnow_config_channel_v4.3' into 'release/v4.3'
esp_wifi: fix espnow example add peer fail when config channel(v4.3)

See merge request espressif/esp-idf!23180
2023-04-13 18:07:41 +08:00
chenjianxing
e490e9062c esp_wifi: fix espnow example add peer fail when config channel
Closes https://github.com/espressif/esp-idf/issues/9592
2023-04-13 10:54:28 +08:00
Jiang Jiang Jian
b8a3642270 Merge branch 'bugfix/add_get_coex_version_v4.3' into 'release/v4.3'
bt: added coex adapter operation to get version of coexist module to ESP32 Bluetooth Controller(v4.3)

See merge request espressif/esp-idf!23168
2023-04-13 10:09:11 +08:00
wangmengyang
8f0766c56e bt: added coex adapter operation to get version of coexist module to ESP32 Bluetooth Controller 2023-04-12 18:02:54 +08:00
Jiang Jiang Jian
0972f2cf58 Merge branch 'bugfix/bt_diable_enbale_crash_v4.3' into 'release/v4.3'
bt:Fixed esp32 controller bug (v4.3)

See merge request espressif/esp-idf!23152
2023-04-12 16:44:52 +08:00
Mahavir Jain
3591268d96 Merge branch 'feature/update_mbedtls_v2.28.3_v4.3' into 'release/v4.3'
mbedtls: Update to release v2.28.3 (v4.3)

See merge request espressif/esp-idf!23114
2023-04-12 16:30:36 +08:00
xiongweichao
665ae6a80d bt:Fixed esp32 controller bug
1. Fixed crash after controller disable and re-enable
2. Fixed the crash caused by processing the HCI_Read_Remote_Extented_Features command in the non-connected state
3. Fixed disconnection due to not handling lmp_unsniff_req in LC_WAIT_SNIFF_SUB_RSP state
4. Fixed crash caused by supervision timeout greater than sniff interval

Closes https://github.com/espressif/esp-idf/issues/11164
Closes https://github.com/espressif/esp-idf/issues/10835
2023-04-12 09:48:30 +08:00
harshal.patil
9e4055ef44 mbedtls: Update to release v2.28.3
- Release Notes: https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.3
2023-04-11 09:26:32 +00:00
Jiang Jiang Jian
c65c587b1f Merge branch 'mesh/bugfix_fix_heap_corrupt_issue_v4.3' into 'release/v4.3'
esp_wifi: fix bugs in LR and mesh (backport v4.3)

See merge request espressif/esp-idf!23129
2023-04-11 12:02:11 +08:00
Jiang Jiang Jian
6a7c5598e0 Merge branch 'bugfix/delete_node_during_list_traverse_4.3' into 'release/v4.3'
bugfix: Fixed the crash of LoadProhibited caused by invalid operation on list node in handling hci_hardware_error event (v4.3)

See merge request espressif/esp-idf!23119
2023-04-11 11:37:20 +08:00
zhangyanjiao
d8bbf4347a Update the ESP-NOW frame length in docs 2023-04-10 16:51:34 +08:00
zhangyanjiao
179b316de8 wifi_mesh: update mesh doc 2023-04-10 16:50:54 +08:00
zhangyanjiao
996cdca72f esp_wifi:
1. wifi_mesh: fix the heap corrupt issue in MTXON task
2. Update tx rate when phymode change from LR to 11N
3. wifi_mesh: Fix several bugs on mesh network
2023-04-10 16:48:49 +08:00
Michael (XIAO Xufeng)
1b31873389 Merge branch 'bugfix/himem_map_range_block_v4.3' into 'release/v4.3'
himem: fixed incorrect out_ptr when range_offset is given non-zero. (v4.3)

See merge request espressif/esp-idf!23083
2023-04-10 10:35:09 +08:00
Jin Cheng
df161ee5fb fixed the crash of LoadProhibited caused by taht
the nodes are deleted during the traversal of the linked list
2023-04-08 11:31:06 +08:00
Xiao Xufeng
32c558cf17 himem: Fixed incorrect out_ptr when calling esp_himem_map range_offset non-zero
Closes: https://github.com/espressif/esp-idf/issues/5639
2023-04-06 02:05:09 +08:00
Jiang Jiang Jian
0369fe88c3 Merge branch 'bugfix/sta_sa_query_process_v4.3' into 'release/v4.3'
esp_wifi: Improve station SA query procedure handling and other bugfixes (Backport v4.3)

See merge request espressif/esp-idf!22905
2023-04-03 17:37:33 +08:00
Jiang Jiang Jian
4675e38ce2 Merge branch 'bugfix/fix_sc_send_failure_and_exit_issue_v4.3' into 'release/v4.3'
smartconfig: fix the issue of sending failure and exit(Backport v4.3)

See merge request espressif/esp-idf!23024
2023-04-01 12:17:52 +08:00
Sarvesh Bodakhe
2cf98db9a8 esp_wifi: Improve station SA query procedure handling and other bugfixes
1. Disable SA query timers when station disconnect and other SA query related improvements
2. Send appropriate reason code in 4 way handshake failure
3. Send deauth while going from assoc state to init, if reason is assoc timeout
2023-03-31 17:46:03 +05:30
Jiang Jiang Jian
4ef3907183 Merge branch 'feature/gatt_server_improvements_v4.3' into 'release/v4.3'
NimBLE: Added custom GATT Server functionality and encryption (v4.3)

See merge request espressif/esp-idf!22742
2023-03-31 18:07:07 +08:00
Jiang Jiang Jian
dd8f93ee95 Merge branch 'doc/update_doc_of_esp_bt_gap_set_cod_v4.3' into 'release/v4.3'
bt: Optimized the document for GAP API: esp_bt_gap_set_cod (v4.3)

See merge request espressif/esp-idf!22996
2023-03-31 18:06:05 +08:00
Jiang Jiang Jian
54bce0c948 Merge branch 'bugfix/fix_chm_of_ext_adv_params_v43' into 'release/v4.3'
Bluedroid: fix channel map of ext adv params check (backport v4.3)

See merge request espressif/esp-idf!22690
2023-03-31 18:05:57 +08:00
muhaidong
00d569a1b2 smartconfig: fix the issue of sending failure and exit 2023-03-31 17:28:08 +08:00
Jiang Jiang Jian
40ed293404 Merge branch 'bugfix/tx_desc_fragment_v4.3' into 'release/v4.3'
esp_wifi: fix potential issue when tx fragment pkt(v4.3)

See merge request espressif/esp-idf!22962
2023-03-31 14:11:07 +08:00
Jiang Jiang Jian
b1ececef12 Merge branch 'bugfix/fix_hw_ralunderrun_assert_v4.3' into 'release/v4.3'
Fixed BLE HW RAL_UNDERRUN asser and backport some bug fix 23-03-30 (back port v4.3)

See merge request espressif/esp-idf!23011
2023-03-31 14:03:11 +08:00
Sumeet Singh
5042e38c42 NimBLE: Added custom GATT Server functionality and encryption (v4.3) 2023-03-31 05:55:58 +00:00
chenjianhua
e82ebbe772 Bluedroid: fix channel map of ext adv params check 2023-03-31 05:55:24 +00:00
Jiang Jiang Jian
9502bccfc4 Merge branch 'bugfix/improve_tx_robust_v4.3' into 'release/v4.3'
esp_wifi: fix c3 rate control issue to improve tx robust(v4.3)

See merge request espressif/esp-idf!23010
2023-03-31 13:52:29 +08:00
Jiang Jiang Jian
5a160d20b5 Merge branch 'bugfix/add_unregister_wpa3_cb_v4.3' into 'release/v4.3'
wpa_supplicant : Fix issues encountered in WFA testing (v4.3)

See merge request espressif/esp-idf!22893
2023-03-31 12:27:48 +08:00
zwj
e1a1e70720 - Support ESP32C3 and ESP32S3 new BLE lib
- Disable controller 5.0 feature bits if host 5.0 feature is not enabled
- Fixed extend ADV parameters check for ADV_DIRECT_HI
- Fixed HW RAL_UNDERRUN assert
2023-03-30 22:00:02 +08:00
chenjianxing
54b61a77a2 esp_wifi: fix c3 rate control issue to improve tx robust 2023-03-30 21:52:06 +08:00
jgujarathi
cf3cf0470a wpa_supplicant : Add deinitialization of Enterprise config_methods.
Add deinitialization of config_methods as it prevents correct reinitialization
of sta in eap_peer_config_init() during reassoc.
2023-03-30 13:35:36 +00:00
jgujarathi
a09946e3c3 wpa_supplicant : Add support for unregistering wifi wpa3 callbacks.
Unregister wifi callbacks allows for disabling support for wpa3 functions when not required.
2023-03-30 13:35:36 +00:00
Jiang Jiang Jian
3ce1d93958 Merge branch 'test/add_spi_slave_freq_test_v4.3' into 'release/v4.3'
spi_slave: fix io re-config issue (v4.3)

See merge request espressif/esp-idf!22594
2023-03-30 21:34:25 +08:00
Jiang Jiang Jian
49e55d0962 Merge branch 'bufix/Backport_some_lwip_bugs_for_4.3_0330' into 'release/v4.3'
bugfix/Backport_some_lwip_bugs_for_4.3_0330

See merge request espressif/esp-idf!22997
2023-03-30 21:33:59 +08:00
Jiang Jiang Jian
f01a1f5b6b Merge branch 'bugfix/hfp_ag_cannot_init_conn_v4.3' into 'release/v4.3'
bt: Fixed the index out of bounds of hfp_ag BTC control block (v4.3)

See merge request espressif/esp-idf!22874
2023-03-30 21:33:33 +08:00
zwj
3ef7e529b4 If it is not esp32 chips, hide the configuration item: BT_BLE_RPA_SUPPORTED 2023-03-30 19:28:38 +08:00
zwj
5e39c2316d remove SOC_BLE_UPDATE_OWN_RPA 2023-03-30 19:07:15 +08:00
zhiweijian
fbdbb5af62 set BT_CTRL_BLE_MAX_ACT default value to 6 2023-03-30 19:00:41 +08:00
zhiweijian
449efd1871 Fixed ATT Ignore wrong response error 2023-03-30 19:00:19 +08:00
zhiweijian
29ddc66cc0 Fixed vulnerability attacks that could cause heap overflow in fragmented Blufi packet processing 2023-03-30 18:43:01 +08:00
Jiang Jiang Jian
e7f3498419 Merge branch 'bugfix/close_rf_in_deep_sleep_backport_v4.3' into 'release/v4.3'
deep sleep: further optimize sleep current if RF is enabled (backport v4.3)

See merge request espressif/esp-idf!22736
2023-03-30 17:36:59 +08:00
Jiang Jiang Jian
3d25318fb0 Merge branch 'bugfix/wifi_enterprise_example_typo_v4.3' into 'release/v4.3'
esp_wifi: fix typo in wifi_enterprise example README (Backport v4.3)

See merge request espressif/esp-idf!22652
2023-03-30 17:36:42 +08:00
Jin Cheng
879038d09f Fixed the index out of bounds of hfp_ag BTC control block 2023-03-30 07:42:45 +00:00
xueyunfei
558b2b7151 lwip: solve some routers do not forward multicast packet issue 2023-03-30 14:42:05 +08:00
xueyunfei
c4ea0feab8 tcp_in/ooseq: Fix incorrect segment trim when FIN moved
* Update submodule: git log --oneline a7abf28e02282b32479f4bbaf2d90f09d2a60f4c..6bb132e3797d5449a923804c75c57d458920f8ac

Detailed description of the changes:
  - tcp_in/ooseq: Fix incorrect segment trim when FIN moved (esp-lwip@6bb132e3)
  - api_msg: fix tcp_abort thread safety (esp-lwip@53a6e019)
2023-03-30 14:42:05 +08:00
xueyunfei
22bf59fd48 Fixed bug for dhcp server support CIDR
Closes https://github.com/espressif/esp-idf/issues/10024

Closes https://github.com/espressif/esp-idf/issues/10559
2023-03-30 14:41:55 +08:00
Jin Cheng
9c26fc689d Optimized the document for GAP API:
`esp_bt_gap_set_cod`
2023-03-30 14:21:28 +08:00
Sarvesh Bodakhe
5770c19f8e esp_wifi: fix typo in wifi_enterprise example README
Closes https://github.com/espressif/esp-idf/issues/10042
2023-03-30 04:00:07 +00:00
wuzhenghui
ad27bd8aa0 deep sleep: close rf to optimize sleep current 2023-03-30 03:15:45 +00:00
wuzhenghui
65cc93d7d0 Revert "deep sleep: optimize sleep current in wifi softap mode"
This reverts commit f684bd10f5.
2023-03-30 03:15:45 +00:00
Wang Meng Yang
46e07795af Merge branch 'bugfix/avrcp_psth_cmd_rsp_v4.3' into 'release/v4.3'
bt:Added a parameter to tell the user the result of the pass through command implementation(v4.3)

See merge request espressif/esp-idf!22930
2023-03-30 10:37:31 +08:00
xiongweichao
b201f9dac6 bt:Added a parameter to tell the user the result of the pass through command implementation 2023-03-29 10:57:59 +00:00
chenjianxing
a24ae24347 esp_wifi: fix potential issue when tx fragment pkt. 2023-03-29 11:03:34 +08:00
Ivan Grokhotkov
3ab1ccc304 Merge branch 'fix/tmp_disable_test_autocomplete_v4.3' into 'release/v4.3'
CI: Temporarily allow failures for test_autocomplete

See merge request espressif/esp-idf!22928
2023-03-27 16:57:45 +08:00
Ivan Grokhotkov
62e9500573 Merge branch 'update/version_4_3_5' into release/v4.3
Update version to 4.3.5

See merge request !22876
2023-03-27 10:55:46 +02:00
Roland Dobai
4aa921a836 CI: Temporarily allow failures for test_autocomplete 2023-03-24 15:24:31 +01:00
Ivan Grokhotkov
6d04316cbe versions: Update version to 4.3.5 2023-03-22 09:49:23 +01:00
Zim Kalinowski
9760e25325 Merge branch 'bugfix/spram_and_virt_efuse_can_work_v4.3' into 'release/v4.3'
esp_psram: Use efuse_ll instead of efuse API (v4.3)

See merge request espressif/esp-idf!22643
2023-03-10 14:51:57 +08:00
KonstantinKondrashov
ff0a0951ef esp_psram: Use efuse_ll instead of efuse API
When the virt efuse mode is on and psram is on as well
then efuse buffer is not filled by efuses (it is filled by 0).
So the psram init func gets wrong pkg_ver = 0.

Closes https://github.com/espressif/esp-idf/issues/10925
Close IDFGH-9576
2023-03-08 01:47:46 +08:00
Zim Kalinowski
3cfdcdbdf9 Merge branch 'refactor/nvs_allocatable_objects_v4.3' into 'release/v4.3'
refactor(nvs): custom allocator for all objects allocated in NVS (v4.3)

See merge request espressif/esp-idf!21794
2023-03-07 19:19:09 +08:00
Michael (XIAO Xufeng)
6b323359ce Merge branch 'feature/apply_new_version_logic_v4.3' into 'release/v4.3'
all: Apply new version logic (major * 100 + minor) (v4.3)

See merge request espressif/esp-idf!22482
2023-03-07 11:25:42 +08:00
KonstantinKondrashov
05b8d8d698 bootloader: Do not check the max_chip_rev_full 2023-03-06 22:28:00 +08:00
Marius Vikhammer
05be2de500 Merge branch 'bugfix/fix-invalid-task-exit-critical_v4.3' into 'release/v4.3'
fixed invalid taskEXIT_CRITICAL

See merge request espressif/esp-idf!22614
2023-03-06 19:55:37 +08:00
morris
418d47a09b Merge branch 'bugfix/adc2_legacy_oneshot_clk_gating_issue_v4.3' into 'release/v4.3'
adc: fix legacy oneshot driver clock gating issue on c3 (v4.3)

See merge request espressif/esp-idf!22610
2023-03-06 18:37:18 +08:00
Jakob Hasse
1a3c6f0f19 refactor(nvs): custom allocator for all objects allocated in NVS 2023-03-06 18:26:18 +08:00
Marius Vikhammer
4cba3b68e8 Merge branch 'refactor/move_rom_test_to_fpga_only_v4.3' into 'release/v4.3'
esp_rom: miniz test only on FPGA  (backport 4.3)

See merge request espressif/esp-idf!22603
2023-03-06 14:18:44 +08:00
Zim Kalinowski
0a7159afad fixed invalid taskEXIT_CRITICAL 2023-03-06 05:00:30 +00:00
Armando
868c68bf89 adc: fix legacy oneshot driver clock gating issue on c3 2023-03-06 10:50:36 +08:00
KonstantinKondrashov
ab87a1012f version: Fix missed version checks 2023-03-04 04:48:24 +08:00
Xiao Xufeng
f368737a26 test: fixed test_build_system test failure due to Kconfig change 2023-03-04 04:48:24 +08:00
KonstantinKondrashov
017aa5acd6 kconfigs: Fix config issues raised by gen_kconfig_doc.py 2023-03-03 21:34:10 +08:00
Jakob Hasse
ffee70c883 refactor(esp_rom): miniz test only on FPGA now 2023-03-03 18:23:27 +08:00
wanlei
271c383210 spi_slave: fix io re-config issue 2023-03-03 17:36:04 +08:00
Jiang Jiang Jian
d8a21db37a Merge branch 'bugfix/twai_listen_only_errata_v4.3' into 'release/v4.3'
twai: Add errata workaround for listen only mode (v4.3)

See merge request espressif/esp-idf!22516
2023-03-03 14:03:26 +08:00
Jiang Jiang Jian
8c01e56ced Merge branch 'bugfix/optimize_protocol_socket_cases_4.3' into 'release/v4.3'
Bugfix: optimize protocol socket cases 4.3

See merge request espressif/esp-idf!22529
2023-03-03 14:02:51 +08:00
KonstantinKondrashov
57bd6979a4 esptool: Adds support major&minor chip versions + min&max chip revision options 2023-03-02 19:52:17 +08:00
KonstantinKondrashov
8095ee4dd2 app: Updates the chip version format (vX.Y) 2023-03-02 19:52:17 +08:00
KonstantinKondrashov
63a755e8b2 bootloader_support: Fix iram_loader_seg overflow for ESP32-S2 when -O0 2023-03-02 19:52:17 +08:00
KonstantinKondrashov
79659a0410 chip_version: Updates for Make build system 2023-03-02 19:52:17 +08:00
Chen Yudong
dee43d284e example: fix got ip error in protocol tests 2023-03-02 11:33:07 +00:00
Chen Yudong
db940f30bc CI: optimize example protocol test cases 2023-03-02 11:33:07 +00:00
KonstantinKondrashov
e88f235326 all: Apply new version logic (major * 100 + minor) 2023-03-02 03:21:34 +00:00
Jiang Jiang Jian
2b04fa8059 Merge branch 'bugfix/fix_sta_auth_fail_but_softap_shows_it_connected_issue_v4.3' into 'release/v4.3'
esp_wifi: fix sta auth failed but softap shows it connected issue(Backport v4.3)

See merge request espressif/esp-idf!22512
2023-03-01 15:45:41 +08:00
Jiang Jiang Jian
2e1c1a3292 Merge branch 'fix/gdbgui_v4.3' into 'release/v4.3'
Tools: gdbgui is not supported on Python 3.11 (v4.3)

See merge request espressif/esp-idf!22548
2023-03-01 10:47:47 +08:00
Jiang Jiang Jian
dfc8c67ec0 Merge branch 'bugfix/fix_some_ble_bug_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!22365
2023-03-01 10:46:00 +08:00
Roland Dobai
f9e5272727 Tools: gdbgui is not supported on Python 3.11
Closes https://github.com/espressif/esp-idf/issues/10116
2023-02-28 16:04:16 +01:00
muhaidong
f28a7853d3 esp_wifi: fix sta failed but softap shows it connected issue 2023-02-28 09:12:02 +00:00
chenjianhua
1e126817e6 examples: fix ble address type of adv and scan params 2023-02-28 09:11:40 +00:00
chenjianhua
156f40c976 bluedroid: support ble privacy by controller 2023-02-28 09:11:40 +00:00
chenjianhua
8790931bab bluedroid: add params in GATT connect event 2023-02-28 09:11:40 +00:00
chenjianhua
25394b6ac4 update bt-lib for ESP32
fix ble disconnect due to channel map update instant passed
2023-02-28 09:11:40 +00:00
Jiang Jiang Jian
d4253e703f Merge branch 'fix/heap-iram-to-flash-call' into 'release/v4.3'
heap: Fix call to substract_poison_overhead() in IRAM function

See merge request espressif/esp-idf!22525
2023-02-28 17:10:57 +08:00
Guillaume Souchere
7e6f20218b heap: Fix call to substract_poison_overhead() in IRAM function
When release sdkconfig is set, substract_poison_overhead() is not inlined
and called from IRAM in multi_heap_get_allocated_size(). By wlways inlining
substract_poison_overhead(), we assure that this problem will not happen.
2023-02-27 06:57:36 +01:00
Jiang Jiang Jian
e214989c58 Merge branch 'docs/fix_errors_in_esp32-c3-devkitm-1_pin_list_v4.3' into 'release/v4.3'
Docs/Fix Errors in ESP32-C3-DevKitM-1 Pin List (v4.3)

See merge request espressif/esp-idf!22496
2023-02-26 15:53:02 +08:00
Jiang Jiang Jian
ba4b47d24e Merge branch 'bugfix/secure_boot_v2_part_size_check_make_build' into 'release/v4.3'
partition_table: update make build for new "--secure [v1/v2]" argument

See merge request espressif/esp-idf!22437
2023-02-26 15:52:11 +08:00
Jiang Jiang Jian
1f739d7185 Merge branch 'bugfix/blufi_notify_v4.3' into 'release/v4.3'
BluFi : Fixed hdr getting free twice (v4.3)

See merge request espressif/esp-idf!22450
2023-02-26 15:51:54 +08:00
Jiang Jiang Jian
690b971f99 Merge branch 'feature/tlsf-dynamic-control-size_v4.3' into 'release/v4.3'
heap: Update tlsf to use dynamic metadata size and lower RAM usage of heap component (backport v4.3)

See merge request espressif/esp-idf!21783
2023-02-26 15:51:45 +08:00
Jiang Jiang Jian
043958e39f Merge branch 'bugfix/fix_gpio_wakeup_related_issues_in_ssc_sleep_test_backport_v4.3' into 'release/v4.3'
sleep: fix gpio wakeup related issues(backport v4.3)

See merge request espressif/esp-idf!22334
2023-02-26 15:51:29 +08:00
Jiang Jiang Jian
6f5e6b3841 Merge branch 'feature/add_bootloader_sector_pad_option_v4.3' into 'release/v4.3'
esptool_py: Added a --pad-to-size flag to align the bootloader image (v4.3)

See merge request espressif/esp-idf!22328
2023-02-26 15:51:09 +08:00
Jiang Jiang Jian
24aa00d99d Merge branch 'fix/heap-get-allocated-size_v4.3' into 'release/v4.3'
heap: Fix erroneous value returned by heap_caps_get_allocated_size() when poisoning is enabled (backport v4.3)

See merge request espressif/esp-idf!22190
2023-02-26 15:50:54 +08:00
Jiang Jiang Jian
3a4755e547 Merge branch 'bugfix/build_err_with_ssr_enabled_v4.3' into 'release/v4.3'
bt: Fixed build errors when sniff subrating is enabled (v4.3)

See merge request espressif/esp-idf!22352
2023-02-26 15:50:11 +08:00
Jiang Jiang Jian
fcf33944cd Merge branch 'bugfix/clear_pmk_cache_for_missing_reason_codes_v4.3' into 'release/v4.3'
Fix missing disconnected callback (Backport v4.3)

See merge request espressif/esp-idf!22518
2023-02-26 15:49:59 +08:00
Shyamal Khachane
179fc63526 esp_wifi: Fix missing disconnected callback 2023-02-24 18:44:28 +05:30
Darian Leung
1f6d7fa334 twai: Add errata workaround for listen only mode
This commit adds a workaround for the TWAI listen only mode errata which is
present on the ESP32, ESP32-S2, ESP32-S3, and ESP32-C3. twai_get_status_info()
has also been updated to account for the fact that TEC/REC are frozen in
listen only mode.

Errata Description:

When the TWAI controller is put into listen only mode, it should not influence
the TWAI bus in any way (i.e., should never send a dominant bit). However,
on the targets listed above, the TWAI controller will send dominant bits in an
error frame (i.e., active error frame), even if the controller is set to listen
only mode.

Workaround:

We can force the TWAI controller into the error passive state on startup (by
setting the REC to >= 128). Since the TEC/REC are frozen in listen only mode,
the TWAI controller will remain error passive and only send recessive bits
(i.e., passive error frames), thus will not influence the TWAI bus.

Closes https://github.com/espressif/esp-idf/issues/9157
2023-02-24 20:40:33 +08:00
Wang Ning
470b7e0ad0 docs/fix_errors_in_esp32-c3-devkitm-1_pin_list 2023-02-23 15:19:27 +08:00
Guillaume Souchere
a82cf0b00c heap: Fix erroneous value returned by heap_caps_get_allocated_size() when poisoning is enabled
When light (or comprehensive) poisoning is enabled, the size requested by the user for allocation
is extended by a few bytes to store the canary header and footer. heap_caps_get_allocated_size() should
return the original size asked by the user (without the additional canary bytes).

test_malloc.c extended with a new test assuring that  heap_caps_get_allocated_size() returns the proper size
regardless of the degree of poisoning.
2023-02-22 10:45:00 +00:00
isha.pardikar@espressif.com
9c0ad412ed BluFi : Fixed hdr getting free twice
Closes IDFGH-9378
2023-02-21 11:47:39 +05:30
Mahavir Jain
62e58ba624 partition_table: fix make build for new "--secure [v1/v2]" argument 2023-02-20 17:05:35 +05:30
Guillaume Souchere
73fca2c851 esp_system: fix placement of __stack_chk_fail from flash to RAM
When stack check is enabled, certain functions (sometimes placed in RAM)
are being decorated with stack guards and a call to __stask_chk_fail() in
case ofr stack corruption. For this reason, __stack_chk_fail() must be
placed in RAM too.

Add stack check config in heap tests on all targets to find eventual flash to RAM
calls due to stack checks when running callgraph_check.py
2023-02-16 08:48:00 +00:00
Guillaume Souchere
dbc4572814 heap: fix linker issues and remove spi flash dependencies 2023-02-16 08:48:00 +00:00
Guillaume Souchere
9b51759e8f feat: remove tlsf_fls and tlsf_ffs from linker as they are inlined. 2023-02-16 08:48:00 +00:00
Guillaume Souchere
f5e3585a9c tools: update list of references to not include symbold used by __assert_func calls
On xtensa architecture, the call to __assert_func uses a reference to __func__ that can
sometimes be placed in flash. Since the __asert_func can be called from functions in IRAM
the check_callgraph script can report an error when checking for invalid calls from IRAM
to flash sections. However, the __asert_func prevents this scenario at runtime so the
check_callgraph script reports a 'flas positive' situation. For this reasson, all references
to __func__$x found prior to a call to __assert_func are droped in the parsing of the rtl files.
2023-02-16 08:48:00 +00:00
Guillaume Souchere
598e77e287 heap: add check for usage of flash content from iram
this commits:
- adds build-time test to check that no call to flash regions are done from IRAM functions

- resolves problems related to IRAM function using content in flash memory

- update heap_caps_alloc_failed to use a default function name in DRAM
  when necessary instead of creating a function name variable in DRAM for
  each call of heap_caps_alloc_failed. This allows to save some extra bytes
  in RAM.
2023-02-16 08:48:00 +00:00
Guillaume Souchere
5f735a22ec heap: add documentation about the function placement in IRAM and its usage in ISR
This commits adds a internal.md file in the heap directory to clarify the idea behind
which functions is placed in IRAM or in flash.

A section in mem_alloc.rst documentation is added to specify which functions from the
heap component API can be used in interrupt handlers.
2023-02-16 08:48:00 +00:00
Guillaume Souchere
8700bdc156 heap: add selective placement of function in IRAM
This commit aims to place in the IRAM section only the functions that
are relevent for performance instead of placing the entire content of
multi_heap.c, mullti_heap_poisoning.c and tlsf.c in the IRAM.
2023-02-16 08:48:00 +00:00
Guillaume Souchere
7ce0620d32 heap: Update host tests after incorporation of the new TLSF implementation 2023-02-16 08:48:00 +00:00
Guillaume Souchere
48b0000e22 heap: update the calculation of fl index max and use bitfield in control_t
The calculation of fl index max is changed to always be the smallest
number that includes the size of the registered memory.

The control_construct() function now checks for minimum size as the control structure
parameters are calculated.

There is no longer a minimum configuration for fl index max so the tlsf_config
enum is striped down to remove unecessary compile time values.

the tlsf_size() function will fail if no tlsf pointer is passed as parameter since there
is no way to calculate a default tlsf size anymore.

bitfields are now used in control_t when possible which reduces the size of the structure
from 56 bytes to 36 bytes.
2023-02-16 08:48:00 +00:00
Guillaume Souchere
9f6b549dea Revert "tlsf control's structure should remain opaque"
This reverts commit 7010314c4a.
2023-02-16 08:48:00 +00:00
Philippe
6a3f3e9421 add host test with multiple heap size 2023-02-16 08:48:00 +00:00
Philippe
30bd908f97 clarify parameter usage in tslf_create 2023-02-16 08:48:00 +00:00
Philippe
a7b9e7a8bd tlsf control's structure should remain opaque 2023-02-16 08:48:00 +00:00
Philippe
e45d350b97 dynamic control block per heap 2023-02-16 08:48:00 +00:00
harshal.patil
4e77c32afc esptool_py: Added a sector-pad option for bootloader image
When SECURE BOOT V2 is enabled and CONFIG_SECURE_BOOT_SIGNED_BINARIES
is not set, sector-pad the bootloader image, which is required for an
external PKCS#11 interface to generate a signature.

esptool_py: Update submodule to release/v3 (4bc311767b7c6df41def6f95a50f87b1c9406cbd)
2023-02-15 16:10:31 +05:30
jingli
805db259b7 sleep: fix gpio wakeup not working properly in some cases
Before this fix, when we call esp_pm_configure after gpio_wakeup_enable,
the configuration of GPIO in sleep state in gpio_wakeup_enable will be
overwritten by esp_pm_configure.
2023-02-13 19:54:17 +08:00
jingli
f556ac1b92 soc_caps: remove SOC_GPIO_SUPPORT_SLP_SWITCH
all esp chips support this feature
2023-02-13 19:54:11 +08:00
Jin Cheng
7fc5d19730 Fixed build errors when sniff subrating is enabled. 2023-02-13 17:28:15 +08:00
Jiang Jiang Jian
ea8de4ddca Merge branch 'feature/efuse_rev_major_minor_v4.3' into 'release/v4.3'
efuse: Adds major and minor versions (v4.3)

See merge request espressif/esp-idf!19544
2023-02-11 20:01:59 +08:00
Michael (XIAO Xufeng)
3e269ffc0d esp32s3: fixed bug chip v0.0 detected as vX.Y
A typical value is 2.8.

Previous commit 32ef2b321a doesn't fix the issue cleanly. The MSB of wafer_minor also has this problem.
2023-02-11 08:06:49 +00:00
Michael (XIAO Xufeng)
611339564d esp32s3: fixed bug chip v0.0 detected as vX.0
A typical value is 2.0.
2023-02-11 08:06:49 +00:00
KonstantinKondrashov
3dcdcc08eb efuse: Adds major and minor versions and others 2023-02-11 08:06:49 +00:00
Jiang Jiang Jian
ab6735155a Merge branch 'bugfix/newlib_tz_env_mutex_v4.3' into 'release/v4.3'
newlib: Use correct recursive mutex for env and regular mutex for tz (v4.3)

See merge request espressif/esp-idf!22295
2023-02-11 12:32:55 +08:00
Jiang Jiang Jian
9ee1cda5e3 Merge branch 'bugfix/fatfs_mtime_dst_v4.3' into 'release/v4.3'
fatfs: fix incorrect mtime returned for files created during DST (v4.3)

See merge request espressif/esp-idf!18459
2023-02-11 09:01:31 +08:00
Jiang Jiang Jian
97454c017f Merge branch 'bugfix/fix_some_wifi_bugs_230209_v4.3' into 'release/v4.3'
esp_wifi: fix some wifi bugs(Backport v4.3)

See merge request espressif/esp-idf!22290
2023-02-11 03:10:08 +08:00
Jiang Jiang Jian
3250b88828 Merge branch 'optimization/lwip_dhcp_coarse_timer_4.3' into 'release/v4.3'
lwip:optimization dhcp coarse timer for 4.3

See merge request espressif/esp-idf!22287
2023-02-11 02:31:30 +08:00
Jiang Jiang Jian
3dc1ab532e Merge branch 'bugfix/secure_boot_v2_part_size_check_v4.3' into 'release/v4.3'
gen_esp32part: allow secure boot v2 based app partition size 4K aligned (v4.3)

See merge request espressif/esp-idf!22288
2023-02-10 19:24:46 +08:00
Jiang Jiang Jian
3d366e1959 Merge branch 'bugfix/rtc_8md256_deepsleep_time_esp32_v4.3' into 'release/v4.3'
pm: Fixed sleep time inaccurate bug when select 8MD256 as rtc slow clock on ESP32 (v4.3)

See merge request espressif/esp-idf!21823
2023-02-10 19:12:25 +08:00
morris
00746db03c Merge branch 'bugfix/no_more_public_adc2_dma_on_c3_s3_v4.3' into 'release/v4.3'
adc: no longer support adc2 continuous mode on esp32c3 (v4.3)

See merge request espressif/esp-idf!21650
2023-02-10 03:55:58 +08:00
cje
d8fc054115 sleep: fix sleep time inaccurate bug when select 8MD256 as rtc slow clock on ESP32
Related to: https://github.com/espressif/esp-idf/issues/6687
2023-02-10 01:36:40 +08:00
Ivan Grokhotkov
d7db6c3148 fatfs: fix incorrect mtime returned for files created during DST
mktime function uses tm_isdst member as an indicator whether the time
stamp is expected to be in daylight saving time (1) or not (0).
FAT filesystem uses local time as mtime, so no information about DST
is available from the filesystem.

According to mktime documentation, tm_isdst can be set to -1, in which
case the C library will try to determine if DST was or wasn't in
effect at that time, and will set UTC time accordingly.

Note that the conversion from UTC to local time and then back to UTC
(time_t -> localtime_r -> FAT timestamp -> mktime -> time_t) does not
always recover the same UTC time. In particular, the local time in the
hour before DST comes into effect can be interpreted as "before DST"
or "after DST", which would correspond to different UTC values. In
this case which option the C library chooses is undefined.

Closes https://github.com/espressif/esp-idf/issues/9039
Originally reported in https://github.com/espressif/arduino-esp32/issues/6786
2023-02-09 11:28:29 +00:00
xueyunfei
b5e8c68b59 lwip:optimization dhcp coarse timer 2023-02-09 19:28:28 +08:00
Steve Jothen
98c2470040 Use correct recursive mutex for env and regular mutex for tz 2023-02-09 16:04:47 +08:00
muhaidong
997af8de8a docs: update ftm docs 2023-02-09 15:07:37 +08:00
muhaidong
6c4ac9ab9e docs: add some details for wifi scan description 2023-02-09 15:05:27 +08:00
muhaidong
36caf700c7 esp_wifi: fix some wifi bugs
1. fix ftm timer macro issue
2. send null data when state change from association to run
3. bugfix for optimize abnormal beacon log
4. bugfix RSNXE related changes
5. send ftm frames immediately
6. fix ftm procedure with peer failed status 4 issue
2023-02-09 15:01:49 +08:00
Mahavir Jain
726c7cd45c partition_table: add tests for checking secure boot part size 2023-02-09 12:11:47 +05:30
Mahavir Jain
08ce6b92aa gen_esp32part: allow secure boot v2 based app partition size 4K aligned
For Secure Boot v2 case, unsigned image is first padded to next 64K
aligned boundary and then a signature block of 4K gets appended. Thus
an app partition whose size is 4K aligned should be allowed here.

For Secure Boot v1 case, app partition size must be 64K aligned as the
signature block lies at the very end of 64K boundary.

Relevant:
57b601ab7f
2023-02-09 12:08:59 +05:30
Armando
984ee9dd38 adc: no longer support adc2 oneshot mode on esp32c3
Due to HW limitation, we don't support this anymore. On c3, ADC2 under oneshot mode is not stable.

However, you can enable CONFIG_ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 to force use
ADC2.

Refer to errata to know more details:
https://www.espressif.com/sites/default/files/documentation/esp32-c3_errata_en.pdf
2023-02-08 09:04:28 +00:00
Armando
9b4986dd2c adc: no longer support adc2 continuous mode on esp32c3
Due to HW limitation, we don't support this anymore. On c3, ADC2 under continuous  mode is not stable.

However, you can enable CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 to force use
ADC2.

Refer to errata to know more details:
https://www.espressif.com/sites/default/files/documentation/esp32-c3_errata_en.pdf
2023-02-08 09:04:28 +00:00
Fu Hanxi
dc4c9c087f Merge branch 'ci/fix/isort_incompatible_with_py37_v4.3' into 'release/v4.3'
ci: fix isort py37 incompatible issue (v4.3)

See merge request espressif/esp-idf!22227
2023-02-07 09:12:03 +08:00
Jiang Jiang Jian
30ee33c62e Merge branch 'bugfix/wps_start_state_issue_v4.3' into 'release/v4.3'
esp_wifi: Add check for wps start state (v4.3)

See merge request espressif/esp-idf!22029
2023-02-06 17:22:09 +08:00
Fu Hanxi
0181762519 ci: fix isort py37 incompatible issue 2023-02-06 10:34:45 +08:00
Jiang Jiang Jian
419d6209a8 Merge branch 'bugfix/coex_enable_disable_not_in_pairs_v4.3' into 'release/v4.3'
bluetooth: fix that functions "coex_enable" and "coex_disable" are not used in pairs(backport v4.3)

See merge request espressif/esp-idf!22096
2023-02-04 01:53:35 +08:00
Jiang Jiang Jian
c9068dc1ae Merge branch 'bugfix/peer_dev_rec_add_and_clear_issue_v4.3' into 'release/v4.3'
NimBLE: Fix incomplete clearing of peer_dev_rec (v4.3)

See merge request espressif/esp-idf!22013
2023-02-03 22:17:14 +08:00
Sumeet Singh
feb32ec9f4 NimBLE: Fix incomplete clearing of peer_dev_rec 2023-02-03 03:09:24 +00:00
wangmengyang
35ba1547e5 bluetooth: fix that functions "coex_enable" and "coex_disable" are not used in pairs on ESP32-C3 2023-02-03 03:08:42 +00:00
Shreyas Sheth
2cc790a69b esp_wifi: Add check for wps start state 2023-02-03 03:08:17 +00:00
Jiang Jiang Jian
b24204c587 Merge branch 'bugfix/precommit_isort_deprecation_v4.3' into 'release/v4.3'
ci: Fix pre-commit hook per isort deps deprecation (v4.3)

See merge request espressif/esp-idf!22208
2023-02-03 00:08:06 +08:00
David Cermak
2ed027a633 ci: Fix pre-commit hook per isort deps deprecation
isorts dependecy became deprecated. Fixed to use 5.12.0 version of isort pre-commit
2023-02-02 10:10:05 +01:00
Mahavir Jain
86686d164a Merge branch 'fix/mbedtls_port_sanity_checks_and_return_values_v4.3' into 'release/v4.3'
mbedtls/port: refactor sanity checks and their return values (v4.3)

See merge request espressif/esp-idf!22129
2023-01-27 16:15:08 +08:00
harshal.patil
f138411fd7 mbedtls/port: added stream_block parameter sanity check 2023-01-25 15:40:45 +05:30
harshal.patil
119ac05b5e mbedtls: fix esp_aes_crypt_ctr writing to null stream block 2023-01-25 15:40:45 +05:30
harshal.patil
342671a943 mbedtls: added SOC_AES_SUPPORT_AES_192 check in esp_aes_gcm_setkey() 2023-01-25 15:40:45 +05:30
David Čermák
db60b5b628 Merge branch 'bugfix/fix_mdns_example_v4.3' into 'release/v4.3'
mDNS: Fix example test in CI  (v4.3)

See merge request espressif/esp-idf!21853
2023-01-23 18:37:09 +08:00
Jiang Jiang Jian
56ee43ec5e Merge branch 'bugfix/sta_add_config_for_wpa3_transition_disable_v4.3' into 'release/v4.3'
esp_wifi:Add wifi station config for enabling transition_disbale feature

See merge request espressif/esp-idf!21332
2023-01-17 19:56:03 +08:00
Shreyas Sheth
b44da528db esp_wifi:Add wifi station config for enabling transition_disbale feature 2023-01-16 00:59:04 +05:30
Jiang Jiang Jian
0d48889e81 Merge branch 'feature/seperate_ble_wifi_test_environment_v4.3' into 'release/v4.3'
seperate ble wifi environment backport for v4.3

See merge request espressif/esp-idf!21973
2023-01-12 17:42:12 +08:00
Chen Sheng
734b00a585 seperate ble wifi environment backport for v4.3 2023-01-12 17:42:12 +08:00
Jiang Jiang Jian
4f2e9c001b Merge branch 'example/opt_a2dp_gatts_coex_example_v4.3' into 'release/v4.3'
rebase a2dp_gatts_coex to latest a2dp_sink (v4.3)

See merge request espressif/esp-idf!22005
2023-01-12 10:53:55 +08:00
Jiang Jiang Jian
7d5a228f15 Merge branch 'Bugfix/softap_excedes_the_range_of_subnet_4.3' into 'release/v4.3'
dhcp server:bugfix softap excedes the range of subnet

See merge request espressif/esp-idf!21995
2023-01-12 10:53:38 +08:00
Jiang Jiang Jian
1fb3e3e409 Merge branch 'bugfix/fix_multicast_issue_v4.3' into 'release/v4.3'
esp_wifi: fix multicast pkts drop issue for some AP when DTIM period > 1(v4.3)

See merge request espressif/esp-idf!21998
2023-01-12 10:52:51 +08:00
Jin Cheng
528e7ba3ab rebase a2dp_gatts_coex to latest a2dp_sink 2023-01-11 14:55:35 +08:00
chenjianxing
b9f31eaa66 esp_wifi: fix multicast pkts drop issue for some AP when DTIM period > 1 2023-01-11 11:04:18 +08:00
xueyunfei
cab17c713d dhcp server:bugfix softap excedes the range of subnet 2023-01-11 09:53:48 +08:00
Jiang Jiang Jian
28f66e58ee Merge branch 'bugfix/remove_sha384_hash_for_bigger_certs_v4.3' into 'release/v4.3'
esp_wifi: remove sha384 hash for cert size > 2k (v4.3)

See merge request espressif/esp-idf!21965
2023-01-10 22:42:21 +08:00
Jiang Jiang Jian
80dd246b14 Merge branch 'bugfix/sae_auth_and_pmk_issues_v4.3' into 'release/v4.3'
Fix SAE open auth and PMK issues (Backport v4.3)

See merge request espressif/esp-idf!21920
2023-01-10 19:03:10 +08:00
Jiang Jiang Jian
fdecbe6c65 Merge branch 'bugfix/set_cipher_key_len' into 'release/v4.3'
wpa_supplicant: set cipher key_len for AES 128 CMAC

See merge request espressif/esp-idf!21945
2023-01-10 12:02:23 +08:00
Kapil Gupta
21310654c7 Removed sha384 hash for certs > 2k 2023-01-09 15:58:23 +05:30
Shyamal Khachane
18052cc0fc wpa_supplicant: Set PMK from PMKSA incase of caching 2023-01-09 09:58:54 +05:30
Shyamal Khachane
ce6bcb3868 esp_wifi: Fix open auth issue after commit message exchange 2023-01-09 09:58:54 +05:30
Shreyas Sheth
c78324e407 wpa_supplicant: set cipher key_len for AES 128 CMAC 2023-01-06 14:59:03 +05:30
Jiang Jiang Jian
aa8a00c4f0 Merge branch 'fix/long_assoc_comeback_time_v4.3' into 'release/v4.3'
esp_wifi: reject AP when assoc comeback time given is greater than 5 seconds (Backport v4.3)

See merge request espressif/esp-idf!21837
2023-01-06 12:01:51 +08:00
Jiang Jiang Jian
25a74f85f3 Merge branch 'doc/update_wifi_amsdu_docs_v4.3' into 'release/v4.3'
doc: update wifi amsdu docs(Backport v4.3)

See merge request espressif/esp-idf!21402
2023-01-06 10:59:51 +08:00
Wang Meng Yang
74821cd26d Merge branch 'bugfix/access_nullptr_when_ble_disconn_v4.3' into 'release/v4.3'
Bugfix/Fixed crash caused by accessing nullptr in `btm_acl_disconnected` (v4.3)

See merge request espressif/esp-idf!21880
2023-01-04 20:49:51 +08:00
Jin Cheng
9e501aad7f Fixed crash caused by accessing nullptr in btm_acl_disconnected 2023-01-04 11:44:50 +08:00
Suren Gabrielyan
bcfd9818f2 mDNS: Fix example test in CI using multiple retries 2023-01-01 11:58:12 +04:00
Sarvesh Bodakhe
b85e0c0daa esp_wifi: Update wifi libs
Update wifi libs with below changes -
1. reject AP when assoc comeback time given is greater than 5 seconds
2022-12-29 15:39:49 +05:30
Island
389a848a6a Merge branch 'bugfix/change_position_of_vendor_model_and_gen_onoff_model_callback_forv4.3' into 'release/v4.3'
ble_mesh:example:change position of vendor model and generic onoff model callback(v4.3)

See merge request espressif/esp-idf!21800
2022-12-29 16:42:18 +08:00
Yuan Hong Hui
d8eeb67dfd ble_mesh:example:change position of vendor model and generic onoff model callback(v4.3) 2022-12-29 16:42:18 +08:00
Jiang Jiang Jian
c3d47417fe Merge branch 'bugfix/fix_c3_ble_temperature_performance_v4.3' into 'release/v4.3'
Fixed bluetooth disconnection caused by HW temperature rise or fall on ESP32C3(backport v4.3)

See merge request espressif/esp-idf!21746
2022-12-29 00:38:14 +08:00
muhaidong
be340a7bf9 doc: update wifi amsdu docs 2022-12-28 17:51:40 +08:00
Aditya Patwardhan
58111664f8 Merge branch 'bugfix/esp_tls_timeout_v4.3' into 'release/v4.3'
esp_tls: Fix issue when timeout is not explicitly given in esp_tls_cfg_t (v4.3)

See merge request espressif/esp-idf!21745
2022-12-28 15:05:13 +08:00
zwj
1f05925676 update phy and bb lib for temperature performance 2022-12-27 20:57:04 +08:00
Jiang Jiang Jian
81fb7b03ed Merge branch 'fix/clear_cur_pmksa_v4.3' into 'release/v4.3'
Clear current pmksa before generating RSN IE (Backport v4.3)

See merge request espressif/esp-idf!21683
2022-12-27 15:44:43 +08:00
Shyamal Khachane
aa78c85a05 wpa_supplicant: Clear current pmksa before generating RSN IE
Also update wifi libs with below changes -
  - Fix reason codes for Invalid PMKID
  - Fix handling of Assoc Resp status codes for Station
2022-12-23 16:56:20 +05:30
Jiang Jiang Jian
72a643e7e1 Merge branch 'bugfix/avoid_ftm_initiator_mode_on_softap_v4.3' into 'release/v4.3'
Avoid ftm initiator mode on softap (Backport v4.3)

See merge request espressif/esp-idf!21768
2022-12-23 11:55:46 +08:00
gauri patankar
c1075e32e0 esp_wifi:Update wifi libs
1. Avoid ftm initiator mode on softap
2. Fix home channel issue in ftm for apsta mode
3. Fix int overflow for T1-T4 counter variable
2022-12-22 15:52:47 +05:30
Laukik Hase
dbedcc264d esp_tls: Fix issue when timeout is not explicitly given in esp_tls_cfg_t
- If internet connectivity weakened or disappeared suddenly while we were
  in the TLS handshake stage, the app got stuck at that point indefinitely.
- This was because when timeout was not explicitly specified in esp_tls_cfg_t,
  the default timeout was set at the wrong place. This causes the sockets to be
  setup with zero timeout, hence the indefinite wait.
2022-12-21 14:59:58 +05:30
Jiang Jiang Jian
8cd8ec019c Merge branch 'bugfix/fix_ble_some_bugs_20221219_v4.3' into 'release/v4.3'
backport some BLE bugs 20221219 (backport v4.3)

See merge request espressif/esp-idf!21716
2022-12-21 15:02:35 +08:00
Jiang Jiang Jian
0cf1971b3b Merge branch 'bugfix/fix_some_ble_bugs_by_cjh_v4.3' into 'release/v4.3'
Fixed some BLE bugs (backport v4.3)

See merge request espressif/esp-idf!21692
2022-12-21 11:27:50 +08:00
Jiang Jiang Jian
0528ace322 Merge branch 'bugfix/flush_pmksa_entry_after_disconnect_v4.3' into 'release/v4.3'
Fix PMK caching related regression (Backport v4.3)

See merge request espressif/esp-idf!21694
2022-12-20 16:28:31 +08:00
zwj
5c4a30d08b Update bt lib for ESP32
- Add config to set duplicate scan list refresh period
- overwrite the oldest device infor if the list is full
- Fixed duplicate scan period is not accurate
2022-12-20 15:58:37 +08:00
zhiweijian
3467e9db8b bluedroid host supports the maximum number of connections to 9 2022-12-20 15:03:30 +08:00
zwj
ad0f1bb807 Update bt lib for ESP32-C3 and ESP32-S3
- Add config to set duplicate scan list refresh period
- overwrite the oldest device infor if the list is full
- Fixed duplicate scan period is not accurate
- Fixed some memory was not released after bluetooth controller initialization failed
- Fixed privacy errorr for directed advertising
- Fixed multiple periodic advertising sync failed in air
- Fixed lld_con.c line 3048 assert
- Fixed crash sometimes when connected as a slave by the 8th device
2022-12-20 15:02:22 +08:00
Jiang Jiang Jian
7d61396a35 Merge branch 'bugfix/spp_vfs_memory_leak_v4.3' into 'release/v4.3'
Component_bt/fix esp_spp_vfs_register memory leak(v4.3)

See merge request espressif/esp-idf!21508
2022-12-20 13:53:08 +08:00
chenjianhua
df29143371 update bt-lib for ESP32
1 change default TX power to 9 dBm
2 fixed disconnect reason 0x1f (unspecified error)
3 fixed connection timeout due to terminate ind has not been acknowledged
2022-12-20 12:08:06 +08:00
zwj
3425d4df52 Fixed some memory was not released after bluetooth controller initialization failed on ESP32 2022-12-20 12:06:54 +08:00
Shyamal Khachane
37ce55cd3f wpa_supplicant: Fix PMK caching related regression
Fixed regression caused by commit c171f0f3
2022-12-19 19:11:37 +05:30
chenjianhua
8e4701275c bluedroid: fix ble connection update with same params 2022-12-19 19:32:41 +08:00
chenjianhua
2ff4ab0bd9 examples: fix ble hid led output report 2022-12-19 19:32:23 +08:00
chenjianhua
65b3d93f79 bluedroid: fix encrypt keysize of GATT characteristic permission 2022-12-19 19:32:00 +08:00
chenjianhua
262387025b bluedroid: correct the length of att read by type pdu 2022-12-19 19:31:49 +08:00
xiongweichao
f05fcfc752 bt: Fixed repeated register of vfs_id causing memory leaks 2022-12-19 12:17:14 +08:00
xiongweichao
110bdea520 Assert when malloc user_data fail 2022-12-19 12:17:14 +08:00
xiongweichao
efaa43d01b Fixed memory leak when SPP initialization failed 2022-12-19 12:17:14 +08:00
Jiang Jiang Jian
76eb67253d Merge branch 'bugfix/bdsa_security_issues_v4.3' into 'release/v4.3'
wpa_supplicant:BDSA related patch updates v4.3

See merge request espressif/esp-idf!21561
2022-12-17 18:03:21 +08:00
Shreyas Sheth
c171f0f39b wpa_supplicant:BDSA related patch updates 2022-12-16 16:14:06 +05:30
Jiang Jiang Jian
ec25f91a9d Merge branch 'feature/backport_blufi_coexist_phy_init_flag_v4.3' into 'release/v4.3'
esp_wifi: backport coexist fix, connectionless ps fix, blufi feature

See merge request espressif/esp-idf!21609
2022-12-16 17:57:49 +08:00
liuning
a02a385ee2 esp_wifi: update lib 2022-12-16 14:20:17 +08:00
liuning
ce2deab1a4 phy: only set phy_init_flag at power domain off, when all modems deinit 2022-12-16 14:20:17 +08:00
liuning
312da39eb9 esp_wifi: fix some connectionless related issue 2022-12-16 14:20:17 +08:00
liuning
dcdae20972 docs: update BluFi documentation 2022-12-16 14:20:12 +08:00
Island
607b7a9fd1 Merge branch 'bugfix/change_the_level_of_nimble_log_forv4.3' into 'release/v4.3'
ble_mesh:example:change the level of nimble host log(v4.3)

See merge request espressif/esp-idf!21630
2022-12-16 14:13:00 +08:00
Jiang Jiang Jian
3bb9fb3488 Merge branch 'bugfix/backport_wifi_fixes_v4.3' into 'release/v4.3'
backported some wifi fixes (backport v4.3)

See merge request espressif/esp-idf!21636
2022-12-16 11:13:30 +08:00
Kapil Gupta
6678e3fb8b esp_wifi: Add changes to skip SAE handshake during WPS connection 2022-12-15 12:35:26 +00:00
Kapil Gupta
9dfaf20508 esp_wifi: Flush PMK caching if bss akm has changed 2022-12-15 12:35:26 +00:00
Kapil Gupta
7c5b13f611 Correct SSID copy length during WPS scan 2022-12-15 12:35:26 +00:00
Yuan Hong Hui
4a5459f012 ble_mesh:example:change the level of nimble host log 2022-12-15 18:05:24 +08:00
Jiang Jiang Jian
6439222c31 Merge branch 'Bufix/backport_some_lwip_bugs_for_4.3_1214' into 'release/v4.3'
Lwip:Backport some lwip bugs to 4.3

See merge request espressif/esp-idf!21594
2022-12-15 13:55:20 +08:00
liuning
626b87871d blufi: update version to 1.3
record connecting status, got ip status, maximum retry, connection end info (reason code, rssi) and provide greater information to phone
2022-12-14 19:23:08 +08:00
zhangyanjiao
ca17dc4f2d esp_wifi: report rssi info in wifi event 2022-12-14 19:21:13 +08:00
morris
0319c702cf Merge branch 'feature/_spi_slave_reset_trans_queue_api_v4.3' into 'release/v4.3'
spi: limit esp32 dma workaround only on esp32(v4.3)

See merge request espressif/esp-idf!21384
2022-12-14 17:43:27 +08:00
xueyunfei
6abb3eb0b4 Lwip:Backport some lwip bugs to 4.3
* Update submodule: git log --oneline 76303df2386902e0d7873be4217f1d9d1b50f982..6fa02bd30daa656f896c7a36248253fb3b97660d

Detailed description of the changes:
  - dhcp: reduce the DHCP Request timeout(esp-lwip@6fa02bd3)
  - dhcp: optimization fine timer when dhcp start(esp-lwip@79182163)
  - ip6 timer: optimization lwip ip6 reassembly timer (esp-lwip@c943fc5a)
  - ip4 timer: optimization lwip ip4 reassembly timer (esp-lwip@17f41c9f)
  - dns timer: optimization lwip dns timer (esp-lwip@7f5ab42c)
  - napt: Fix clean compilation  (espressif/esp-lwip@6132c975)
  - Lwip:add TCP Fin2 timeout configuration (espressif/esp-lwip@15b4400e)
  - napt: Fix IP forwarding when forward netif enable NAPT (espressif/esp-lwip@c950063f)
  - napt/stats: Move some napt counters to stats module (espressif/esp-lwip@475d658a)
  - ip_napt_maint: Fix timestamp overflow handling (espressif/esp-lwip@2e904508)
  - napt: Fixes and improvements (espressif/esp-lwip@fb1f3552)
2022-12-14 14:56:06 +08:00
Jiang Jiang Jian
ca6553ad9b Merge branch 'bugfix/multiple_wifi_fixes_v4.3' into 'release/v4.3'
esp_wifi: backport some wifi bug fixes to v4.3

See merge request espressif/esp-idf!21467
2022-12-14 13:55:08 +08:00
Jiang Jiang Jian
0ee643387b Merge branch 'feature/nimble_support_ble_max_conn_num_v4.3' into 'release/v4.3'
Nimble:  Support maximum number of connections to 9 on ESP32-C3 and ESP32-S3 (v4.3)

See merge request espressif/esp-idf!21552
2022-12-14 10:43:24 +08:00
Jiang Jiang Jian
9248dcfc17 Merge branch 'doc/update_nimble_mesh_example_information_v4.3' into 'release/v4.3'
Nimble: Update Mesh example documentation (v4.3)

See merge request espressif/esp-idf!21580
2022-12-14 10:42:46 +08:00
jack
fc1e91f53c esp_wifi: update wifi lib
1.wifi: fixed sniffer mode can not capture control packet when station is enabled
2.Fixed WAPI issue on GTK compability and reference to broadcast arp pkts.
3.Fixed TX fragment issue that PN code is less than MSDU after PN code add two for TX fragment.
4.Added station connect retry count to make it easier to connect to the except AP
5.Fixed some issues on Soft-AP power save.
6.Fixed SoftAP memory leak after wifi init and deinit
7.Fixed sta get ap info does not return connected ssid issue.
8.Fixed SoftAP disconnection happened even when receive PS-Poll.
2022-12-13 16:19:41 +05:30
Rahul Tank
4e366665ae Nimble: Update documentation to include distinction between upstream
mesh example and ESP-BLE-MESH
2022-12-13 12:56:29 +05:30
morris
81ee095b16 Merge branch 'bugfix/fix_slave_gpio_cs_mixed_with_iomux_bus_v4.3' into 'release/v4.3'
spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin (v4.3)

See merge request espressif/esp-idf!21376
2022-12-12 15:49:09 +08:00
Jiang Jiang Jian
19310eea60 Merge branch 'bugfix/correct_the_default_SR_mode_v4.3' into 'release/v4.3'
bugfix/correct the SR_mode selection when konw nothing about Peripheral's SR_mode (v4.3)

See merge request espressif/esp-idf!21521
2022-12-12 14:57:27 +08:00
Wang Meng Yang
4268238733 Merge branch 'feature/report_acl_conn_cmp_stat_to_app_v4.3' into 'release/v4.3'
feature/report ACL link related events to application (v4.3)

See merge request espressif/esp-idf!21526
2022-12-12 10:51:55 +08:00
Rahul Tank
b07ca316d0 Nimble: Support maximum number of connections to 9 on ESP32-C3 and ESP32-S3 2022-12-09 19:13:56 +05:30
jincheng
629d445374 Added ACL link related events handler in A2DP sink GAP callback 2022-12-09 11:16:08 +08:00
jincheng
31b6acc88a Added reporting for ACL link related events to application 2022-12-09 11:15:56 +08:00
Jin Cheng
bfe007388f correct the SR_mode selection when konw nothing about Peripheral 2022-12-09 10:37:42 +08:00
Jiang Jiang Jian
df901e0fe8 Merge branch 'contrib/github_pr_9529_v4.3' into 'release/v4.3'
component_bt: Fixed memory leak due to not freeing memory if posting a message to a thread fails(v4.3)

See merge request espressif/esp-idf!21473
2022-12-08 11:44:55 +08:00
Wang Meng Yang
05c497e9c2 Merge branch 'bugfix/reduce_BTU_TASK_stack_consumption_v4.3' into 'release/v4.3'
Reduce the stack consumption of BTU_TASK (backport v4.3)

See merge request espressif/esp-idf!21436
2022-12-07 11:29:56 +08:00
morris
8b7ae11828 Merge branch 'bugfix/i2c_func_iram_v4.3' into 'release/v4.3'
I2C: put some interrupt used functions into IRAM(backport v4.3)

See merge request espressif/esp-idf!21422
2022-12-07 10:51:39 +08:00
xiongweichao
84e400cd8c bt: Fixed incorrect parameters in switching to BTC context 2022-12-07 10:22:41 +08:00
xiongweichao
dad8773c07 bt:Modify the member variable *arg in struct btc_msg to arg[0] 2022-12-07 10:22:36 +08:00
xiongweichao
433767f97a bt: Fixed memory leak due to not freeing memory if posting a message to a thread fails 2022-12-07 10:22:29 +08:00
alex.li
e7a2559640 esp_wifi: fix wapi gtk id compability issue and adapt tx frag pn sequently. 2022-12-06 17:28:09 +08:00
Kapil Gupta
10b0b768b7 esp_wifi: Add config option for AP retry count
Provide a config option for station to retry with the AP
if connection fails first time.
2022-12-06 17:28:09 +08:00
Jiang Jiang Jian
35f9b6ad58 Merge branch 'bugfix/Fix_exceptional_list_params_check_v4.3' into 'release/v4.3'
ble_mesh: stack: Fix exceptional list parameters check issue(v4.3)

See merge request espressif/esp-idf!21443
2022-12-06 14:44:25 +08:00
Wang Meng Yang
722291e404 Merge branch 'bugfix/reattempt_crash_v4.3' into 'release/v4.3'
NimBLE: Fixed going for reattempt connection code (v4.3)

See merge request espressif/esp-idf!21177
2022-12-06 14:02:23 +08:00
wangjialiang
0f95a31589 ble_mesh: stack: Fix exceptional list parameters check issue 2022-12-05 20:26:11 +08:00
Cao Sen Miao
aac5297f8a I2C: put some interrupt used functions into IRAM 2022-12-05 18:05:28 +08:00
zwj
8ce5d113ca Reduce the stack consumption of BTU_TASK 2022-12-05 17:29:40 +08:00
isha.pardikar@espressif.com
7b51ebe7a8 NimBLE: Fixed going for reattempt connection code 2022-12-05 14:33:40 +05:30
Wang Meng Yang
310571138e Merge branch 'bugfix/fix_bt_sleep_hangs_when_enable_light_sleep_backport_v4.3' into 'release/v4.3'
bt: fix bt sleep flow hangs in btdm_sleep_clock_sync(backport v4.3)

See merge request espressif/esp-idf!21385
2022-12-02 11:28:08 +08:00
Armando
9061efd3d1 spi: limit esp32 dma workaround only on esp32 2022-12-01 21:00:35 +08:00
jingli
f2e92f564e bt: fix bt sleep flow hangs in btdm_sleep_clock_sync
Bluetooth low power related logic and regs have separate power domain from MAC and BB,
and do not power down during light sleep. If reset when power up MAC and BB in sleep
flow, it may destroy the state of bt low power part.
2022-12-01 20:54:45 +08:00
wanlei
a6ea6716ce spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin 2022-12-01 20:21:11 +08:00
Jiang Jiang Jian
c0ba33a99d Merge branch 'bugfix/check_ies_in_match_security_v4.3' into 'release/v4.3'
Adding check for ies in match security (Backport v4.3)

See merge request espressif/esp-idf!21312
2022-12-01 10:46:57 +08:00
Jiang Jiang Jian
6298b8c8ff Merge branch 'bufix/a2dp_fail_connect_again_after_disconnect_v4.3' into 'release/v4.3'
component_bt: Fixed a2dp failing to connect again after disconnect(v4.3)

See merge request espressif/esp-idf!21344
2022-12-01 10:33:07 +08:00
xiongweichao
9b2b5d1651 Fixed a2dp failing to connect again after disconnect 2022-11-30 19:15:36 +08:00
Jiang Jiang Jian
6b48dd30e6 Merge branch 'bugfix/esp_periph_uart_clk_gate_issue_v4.3' into 'release/v4.3'
esp_system: use ESP_CONSOLE_UART_NUM instead of CONSOLE_UART_NUM (backport to v4.3)

See merge request espressif/esp-idf!21284
2022-11-30 17:30:42 +08:00
Jiang Jiang Jian
1d000363c6 Merge branch 'bugfix/disable_prov_encryption_v4.3' into 'release/v4.3'
Wifi Prov: Disabled the default support for BLE Encrpytion on characteristics read /write (v4.3)

See merge request espressif/esp-idf!21265
2022-11-30 15:59:06 +08:00
gauri patankar
66a8eb9ff9 Adding check for ies in match security 2022-11-30 11:57:26 +05:30
Aditya Patwardhan
ee7953dc2a Merge branch 'feature/update_expat_2_5_0_v4.3' into 'release/v4.3'
expat: Upgrade expat to release v2.5.0

See merge request espressif/esp-idf!21295
2022-11-30 14:03:18 +08:00
Jiang Jiang Jian
114ce9b7fd Merge branch 'bugfix/security_params_overwrite_v4.3' into 'release/v4.3'
Add changes to prevent security params overwritten in full scan (backport v4.3)

See merge request espressif/esp-idf!21293
2022-11-30 12:01:13 +08:00
Harshit Malpani
6ff2df0046 expat: Upgrade expat to release v2.5.0 2022-11-28 13:57:22 +05:30
gauri patankar
4f8a869392 Add changes to prevent security params overwritten in full scan (backport v4.3) 2022-11-28 12:50:54 +05:30
jiangguangming
5888f9201f esp_system: use ESP_CONSOLE_UART_NUM instead of CONSOLE_UART_NUM 2022-11-28 10:37:39 +08:00
Jiang Jiang Jian
3685ed2829 Merge branch 'bugfix/fix_connect_and_mesh_issues_v4.3' into 'release/v4.3'
esp_wifi: fix connect issue and mesh issue (backport v4.3)

See merge request espressif/esp-idf!21204
2022-11-28 10:19:51 +08:00
Rahul Tank
6040bba236 Wifi Prov: Disabled the default support for BLE Encrpytion on characteristics read /write
By default, disabled the BLE Encrpyption requirement for provisioning characteristic.
With this flag enabled, when remote attempts to read and if the ACL link is not encrypted,
ESP device will return Insufficient Authentication. It is remote device responsibility to go
for link encryption which may result in pairing.

Some devices do not proceed for any pairing and just show failure pop-up. Also, user needs
to remove bonding on remote phone manually and then try again. This is causing bad user experience.

End user can enable it as per their use case.
2022-11-25 14:21:13 +05:30
Jiang Jiang Jian
a0967db9d8 Merge branch 'bt/opt_audio_datapath_v4.3' into 'release/v4.3'
bt/optimized a2dp_sink audio datapath (v4.3)

See merge request espressif/esp-idf!21224
2022-11-25 10:29:25 +08:00
Jin Cheng
bda3683c85 Increase BtI2STask stack depth to avoid stack overflow 2022-11-24 13:13:43 +08:00
Jin Cheng
79b4d8fe4f optimized a2dp_sink audio datapath
1. removed audio cache in BTC layer of Bluedroid
2. added flow control for audio data in application layer

Closes https://github.com/espressif/esp-idf/issues/9622
2022-11-24 13:13:40 +08:00
Jiang Jiang Jian
81d598b46f Merge branch 'bugfix/fix_hfp_clcc_parser_bug_4.3' into 'release/v4.3'
Bugfix/Fix HFP client parse CLCC command response bug[backport 4.3]

See merge request espressif/esp-idf!21158
2022-11-24 11:12:15 +08:00
Jiang Jiang Jian
08ee8d7137 Merge branch 'bugfix/fixed_HIDH_connection_failure_v4.3' into 'release/v4.3'
bugfix/fixed connection failure and build errors of HID host (v4.3)

See merge request espressif/esp-idf!21209
2022-11-24 11:05:55 +08:00
Jiang Jiang Jian
a74a732c10 Merge branch 'bugfix/fixing_memory_leak_wps_scan' into 'release/v4.3'
Fixed a memory leak issue created when parsing scan results

See merge request espressif/esp-idf!20740
2022-11-24 10:39:10 +08:00
Jin Cheng
898324dc21 1. changed pin_type of Legacy Paring from FIXED to VARIABLE to avoid authentication failure
2. provide compatibilities with devices that do not support Secure Simple Paring

Closes https://github.com/espressif/esp-idf/issues/10069
Closes https://github.com/espressif/esp-idf/issues/10005
2022-11-23 21:00:02 +08:00
Jin Cheng
d533bc1cdd fixed build errors with Secure Simple Paring disabled 2022-11-23 20:58:52 +08:00
Marius Vikhammer
ff5c7d349f Apply suggestions to 2 files 2022-11-23 19:10:35 +08:00
muhaidong
0ed631f47a esp_wifi: Modify wifi scan return value.
1. Modify wifi scan return value same to docs.
2. Change some logs' log level wo avoid misunderstanding.
3. Fix connect fail return wrong error code issue
2022-11-23 19:10:13 +08:00
zhangyanjiao
7cf171cb1f update doc for set channel 2022-11-23 19:09:49 +08:00
zhangyanjiao
92eb91f985 update wifi reason code 2022-11-23 19:09:03 +08:00
Jiang Jiang Jian
2e0da2773b Merge branch 'bugfix/change_default_tx_power_on_c3_v4.3' into 'release/v4.3'
Change BLE default TX power on ESP32C3(backport v4.3)

See merge request espressif/esp-idf!21169
2022-11-23 14:28:30 +08:00
jgujarathi
d5b9fbac44 (wpa_supplicant) : Fixed a memory leak issue created when parsing scan results. 2022-11-23 10:07:01 +05:30
Jiang Jiang Jian
d732a84bfd Merge branch 'bugfix/wpa_enterprise_reauth_v4.3' into 'release/v4.3'
esp_wifi: Fix WiFi Enterprise Reauthentication issue (v4.3)

See merge request espressif/esp-idf!21073
2022-11-23 10:42:55 +08:00
Wang Meng Yang
92a3ba8325 Merge branch 'bugfix/a2dp_source_memory_access_out_of_bounds_v4.3' into 'release/v4.3'
Fixed the issue memory access out of bounds in a2dp_source example (v4.3)

See merge request espressif/esp-idf!21146
2022-11-23 10:32:01 +08:00
Island
cb79ad78d1 Merge branch 'bugfix/change_log_print_forv4.3' into 'release/v4.3'
ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.3)

See merge request espressif/esp-idf!21122
2022-11-23 10:25:33 +08:00
Yuan Hong Hui
35d63c893c ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.3) 2022-11-23 10:25:33 +08:00
Roland Dobai
784019ee2f Merge branch 'fix/bitstring_4_v4.3' into 'release/v4.3'
Tools: Use bitstring package compatible with supported Python versions (v4.3)

See merge request espressif/esp-idf!21180
2022-11-22 03:48:40 +08:00
Roland Dobai
b456d19ace Tools: Use bitstring package compatible with supported Python versions
Bitstring>=4 supports Python 3.7+ only. See:
https://github.com/scott-griffiths/bitstring/releases/tag/bitstring-4.0.1
2022-11-21 15:15:04 +01:00
zhiweijian
92c8189388 support BLE memory release on ESP32C3 and ESP32S3 2022-11-21 12:21:47 +08:00
zhiweijian
30f2cc87ce Update bt lib for ESP32C3
- Added config to disable scan backoff
- Fixed llm_scan.c assert at line 1485 during controller deinit if duplicate scan is not stopped
- Call pll track in controller task
2022-11-21 12:04:35 +08:00
zhiweijian
bba1cd5afa Fixed ble_compatibility_test example NVS init error 2022-11-21 11:12:08 +08:00
zwj
098465ff74 Fixed errors reported by CI clang_tidy_check 2022-11-21 11:11:52 +08:00
zwj
da42e4a234 Fixed sometimes BTU task overflow when doing read and write performance test 2022-11-21 11:11:40 +08:00
zhiweijian
14f396c367 change default tx power from 3dBm to 9dBm 2022-11-21 11:11:17 +08:00
morris
c283d9f1a3 Merge branch 'bugfix/fix_iram_end_redefined_backportv4.3' into 'release/v4.3'
bugfix: fix redefined _iram_end (backport v4.3)

See merge request espressif/esp-idf!21154
2022-11-20 18:30:46 +08:00
wuzhenghui
378fa313ec bugfix: fix redefined _iram_end 2022-11-18 19:50:23 +08:00
liqigan
60875836bd fix HFP client parse CLCC command response bug 2022-11-18 19:44:17 +08:00
Jin Cheng
32ac92adf8 Fixed the issue memory access out of bounds in a2dp_source example 2022-11-18 16:40:46 +08:00
Jiang Jiang Jian
ea57dd4363 Merge branch 'bugfix/fix_current_leakage_when_hold_digital_io_during_deep_sleep_backport_v4.3' into 'release/v4.3'
esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep(backport v4.3)

See merge request espressif/esp-idf!20946
2022-11-18 16:37:28 +08:00
jingli
b6896055a2 hal/gpio_ll: fix digital gpio can not enable hold during deep sleep when force_unhold set(32/s2/s3) 2022-11-18 03:00:01 +00:00
jingli
58e9ce6fe3 hal/gpio_ll: fix digital gpio can not disable hold during deep sleep 2022-11-18 03:00:01 +00:00
jingli
24eea75f9c esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep 2022-11-18 03:00:01 +00:00
Mahavir Jain
9d3d773228 Merge branch 'bugfix/flake8_precommit_v4.3' into 'release/v4.3'
precommit: update flake8 repo url to use github (v4.3)

See merge request espressif/esp-idf!21097
2022-11-17 12:11:41 +08:00
Marius Vikhammer
11c0850159 precommit: update flake8 repo url to use github
Gitlab mirror repo has been deprecated.
2022-11-15 16:26:42 +08:00
morris
3bbb109eb2 Merge branch 'feature/remove_psram_cs_clk_pin_settings_config_s2_s3_v4.3' into 'release/v4.3'
psram: remove CS/CLK pin settings in kconfig on ESP32S2 (v4.3)

See merge request espressif/esp-idf!21048
2022-11-14 17:17:13 +08:00
Jiang Jiang Jian
289a3311de Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.3' into 'release/v4.3'
fixed the issue iOS devices cannot initiate connection (v4.3)

See merge request espressif/esp-idf!21061
2022-11-14 15:28:40 +08:00
Shreyas Sheth
7e8cca6c2f esp_wifi: Bugfix WPA Enterprise Reauthentication issue 2022-11-14 11:12:58 +05:30
Jin Cheng
60e281805c fixed the issue iOS devices cannot initiate connection
to ESP32 while there is a BLE connection to this ESP32

Closes https://github.com/espressif/esp-idf/issues/6557
2022-11-14 09:50:22 +08:00
Michael (XIAO Xufeng)
af61c51385 Merge branch 'test/rtc_8m_d256_v4.3' into 'release/v4.3'
rtc: fixed 8MD256 can't be used as RTC slow src on ESP32 (v4.3)

See merge request espressif/esp-idf!18106
2022-11-12 00:45:11 +08:00
Armando
522cf49d33 psram: remove CS/CLK pin settings in kconfig on ESP32S2 2022-11-11 18:15:54 +08:00
morris
bfbf1139ae Merge branch 'bugfix/fix_modbus_rs485_rts_en_fail_v43' into 'release/v4.3'
Bugfix/fix modbus rs485 rts en fail (backport v4.3)

See merge request espressif/esp-idf!16257
2022-11-09 15:46:51 +08:00
Jiang Jiang Jian
0dbc3400a3 Merge branch 'bugfix/add_protection_for_mac_rst_v4.3' into 'release/v4.3'
esp_wifi: add protection for mac reset (backport 4.3)

See merge request espressif/esp-idf!20971
2022-11-09 13:58:05 +08:00
Song Ruo Jing
b8e62ce4b2 uart: Fix unwanted processing of TX_DONE interrupt immediately after calling uart_wait_tx_done()
In previous transmission(s), the TX_DONE interrupt raw bit may be raised, but never been cleared.
TX_DONE interrrupt status bit should be cleared before enabling it to check the new transmission.
2022-11-09 02:31:15 +00:00
aleks
a6e524418d freemodbus: fix uart_wait_tx_done() reenable tx_done interrupt 2022-11-09 02:31:15 +00:00
aleks
bc1f50dc0f freemodbus: fix rts enable fail when transmit frame 2022-11-09 02:31:15 +00:00
aleks
baa0aad20e freemodbus: fix modbus rs485 rts enable fail v42 2022-11-09 02:31:15 +00:00
liuning
dbe59eff86 esp_wifi: add protection for mac reset (backport 4.3) 2022-11-08 14:04:52 +08:00
Jiang Jiang Jian
635a9c5efb Merge branch 'bugfix/mqtt_enqueue4_3' into 'release/v4.3'
[mqtt] Fix esp_mqtt_client_enqueue for len=0 (v4.3)

See merge request espressif/esp-idf!20303
2022-11-08 11:08:00 +08:00
Jiang Jiang Jian
ffe6f240cf Merge branch 'bugfix/time_jump_after_reboot_v4.3' into 'release/v4.3'
esp_hw_support: Fix time jump after reboot (v4.3)

See merge request espressif/esp-idf!20909
2022-11-08 11:07:51 +08:00
Jiang Jiang Jian
714cf794f2 Merge branch 'bugfix/keep_rtc8m_in_lightsleep_v4.3' into 'release/v4.3'
pm: fixed RTC8M domain power down issue when used as RTC source (v4.3)

See merge request espressif/esp-idf!18080
2022-11-08 11:04:50 +08:00
Jiang Jiang Jian
b08d2c8693 Merge branch 'bugfix/fix_trans_optional_info_using_group_addr_v4.3' into 'release/v4.3'
ble_mesh: stack: Fix can't trans optional info to group address(v4.3)

See merge request espressif/esp-idf!20960
2022-11-08 11:04:16 +08:00
wangjialiang
215e1262ba ble_mesh: stack: Fix can't trans optional info to group address 2022-11-07 15:48:56 +08:00
jingli
81b98881ac esp_hw_support/sleep: fix cannot pd cpu and rc fast at the same time during light sleep
Since cpu retention dma use rc fast as clk source, so rc_fast_digi
will be enabled when we config to pd cpu. And cpu retention does not
need rc fast keep on during light sleep. So, if we use rc_fast_digi
to determine whether rc fast can be powered down, then cpu and and
rc fast cannot pd at the same time.
2022-11-06 01:34:18 +08:00
Michael (XIAO Xufeng)
7931c033ed pm: fixed RTC8M domain power issues
introduced in e44ead5356

1. The int8M power domain config by default is PD. While LEDC is using
RTC8M as clock source, this power domain will be kept on.

But when 8MD256 is used as RTC clock source, the power domain should
also be kept on.

On ESP32, there was protection for it, but broken by commit
e44ead5356. Currently the power domain
will be forced on when LEDC is using RTC8M as clock source &&
!int8m_pd_en (user enable ESP_PDP_DOMAIN_RTC8M in lightsleep). Otherwise
the power domain will be powered off, regardless of RTC clock source.

In other words, int8M domain will be forced off (even when 8MD256
used as RTC clock source) if LEDC not using RTC8M as clock source, user
doesn't enable ESP_PDP_DOMAIN_RTC8M, or in deep sleep.

On later chips, there's no such protection, so 8MD256 could't be used as
RTC clock source in sleep modes.

This commit adds protection of 8MD256 clock to other chips. Fixes the
incorrect protection logic overriding on ESP32. Now the power domain
will be determiend by the logic below (order by priority):

    1. When RTC clock source uses 8MD256, power up
    2. When LEDC uses RTC8M clock source, power up
    3. In deepsleep, power down
    4. Otherwise determined by user config of ESP_PDP_DOMAIN_RTC8M,
       power down by default. (This is preferred to have highest
       priority, but it's kept as is because of current code structure.)

2. Before, after the macro `RTC_SLEEP_CONFIG_DEFAULT` decides dbias, the
protection above may force the int8m PU. This may cause the inconsistent
of dbias and the int8m PU status.

This commit lifts the logic of pd int8m/xtal fpu logic to upper layer
(sleep_modes.c).

Related: https://github.com/espressif/esp-idf/issues/8007, https://github.com/espressif/esp-idf/pull/8089

temp
2022-11-05 20:02:53 +08:00
Jiang Jiang Jian
abb7962161 Merge branch 'bugfix/set_ap_rsnxe_while_connect_v4.3' into 'release/v4.3'
esp_wifi:Set AP rsnxe while connecting to a AP

See merge request espressif/esp-idf!20482
2022-11-04 16:38:16 +08:00
Michael (XIAO Xufeng)
ba76597923 ci: add s2, s3, c3 component ut jobs 2022-11-04 12:37:45 +08:00
Michael (XIAO Xufeng)
696de2e7ac pm: add test for RTC using 8MD256 as clock source 2022-11-04 12:37:45 +08:00
Michael (XIAO Xufeng)
b56b459960 rtc: fixed 8MD256 can't be used as RTC slow src on ESP32
Sync configuration from other chips

Closes: https://github.com/espressif/esp-idf/issues/8007, https://github.com/espressif/esp-idf/pull/8089
2022-11-04 12:37:45 +08:00
morris
2788e7e131 Merge branch 'test/stop_s3_test_v4.3' into 'release/v4.3'
ci: stop building & testing s3 apps

See merge request espressif/esp-idf!20924
2022-11-04 10:06:14 +08:00
Michael (XIAO Xufeng)
30c1b3d00f ci: stop building & testing s3 apps 2022-11-03 17:22:03 +08:00
morris
164d9bb782 Merge branch 'bugfix/calib_i2c_clk_v4.3' into 'release/v4.3'
I2C: Make I2C clock frequency accurate(backport v4.3)

See merge request espressif/esp-idf!19070
2022-11-03 10:04:31 +08:00
KonstantinKondrashov
2c3f30378f esp_hw_support: Fix time jump after reboot
Closes https://github.com/espressif/esp-idf/issues/9448
2022-11-02 19:38:26 +08:00
Shreyas Sheth
dc23667db8 esp_wifi:Set AP rsnxe while connecting to a AP 2022-11-02 15:25:31 +05:30
Jiang Jiang Jian
91c60b9cbd Merge branch 'bugfix/fast_scan_profile_issue_v4.3' into 'release/v4.3'
Fix repeated scans causing bss overwrite in connect process (Backport v4.3)

See merge request espressif/esp-idf!19860
2022-11-01 20:32:53 +08:00
Cao Sen Miao
32dca66fb6 I2C: Make I2C clock frequency accurate 2022-11-01 15:48:26 +08:00
Nachiket Kukade
aabfb142bc esp_wifi: Update wifi libs
Fix scan causing bss overwrite in connect process
2022-11-01 09:43:43 +05:30
Jiang Jiang Jian
1d5efaddac Merge branch 'bugfix/fix_sta_scan_when_already_connected_v4.3' into 'release/v4.3'
esp-wifi: Restores station status to connected when no other AP is found for roam

See merge request espressif/esp-idf!20343
2022-11-01 11:03:01 +08:00
Jiang Jiang Jian
9e6d5dce34 Merge branch 'bugfix/use_nonblocking_coex_callback_v4.3' into 'release/v4.3'
bluetooth: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth(backport v4.3)

See merge request espressif/esp-idf!20780
2022-11-01 10:48:38 +08:00
morris
9a9f503c73 Merge branch 'bugfix/spi2_add_device_cs_more_than_3_v4.3' into 'release/v4.3'
spi_master:fix error when use `spi_bus_add_device` more than 3 device(v4.3)

See merge request espressif/esp-idf!20127
2022-11-01 10:18:24 +08:00
Jiang Jiang Jian
6225c718c3 Merge branch 'bugfix/fix_xtal_related_rtc_params_for_esp32_backport_v4.3' into 'release/v4.3'
esp32/rtc: fix xtal unstable in some cases when sleep(backport v4.3)

See merge request espressif/esp-idf!20804
2022-10-31 19:52:04 +08:00
Jiang Jiang Jian
167a9896a2 Merge branch 'bugfix/fix_part_of_modem_not_reset_when_power_on_backport_v4.3' into 'release/v4.3'
Coexistence: fix part of modem module not reset when power up(backport v4.3)

See merge request espressif/esp-idf!20813
2022-10-31 19:51:50 +08:00
Island
c10ce8f92b Merge branch 'bugfix/ble_mesh_console_memory_leak_test_forv4.3' into 'release/v4.3'
ble_mesh:example:fix memory leak(v4.3)

See merge request espressif/esp-idf!20039
2022-10-28 16:12:36 +08:00
Wang Meng Yang
4fecbc30fa Merge branch 'bugfix/spp_vfs_mode_send_data_fail_v4.3' into 'release/v4.3'
bt: Fixed SPP VFS mode not being able to send data(v4.3)

See merge request espressif/esp-idf!20802
2022-10-27 10:50:11 +08:00
jgujarathi
c7edfd4ef0 esp-wifi: Restores station status to connected when no other AP is found for roam 2022-10-26 19:03:27 +05:30
jingli
91b147c9da wifi/bt: fix part of modem module not reset when power up 2022-10-26 20:47:10 +08:00
wangmengyang
de2e183c9a bt: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth for ESP32 2022-10-26 19:13:16 +08:00
Wang Meng Yang
067d5fb28d Merge branch 'bugfix/handle_issue_of_malloc_fail_v4.3' into 'release/v4.3'
bugfix/avoid unexpected free when malloc failed (v4.3)

See merge request espressif/esp-idf!20726
2022-10-26 18:57:28 +08:00
jingli
d8141bdf51 esp_hw_support/sleep: fix light sleep wakeup flag
light sleep wakeup flag is true to indicate the most recent successful wakeup from light sleep,
which means the most recent light sleep occurred successfully and then wakes up by wakeup source
2022-10-26 17:07:07 +08:00
jingli
b6491464e1 esp32/rtc: fix xtal unstable in some cases when sleep
1. add xtal buf wait to fix high temperature restart issue
2. add min sleep value to fix xtal stop due to too short sleep time issue
2022-10-26 17:05:07 +08:00
xiongweichao
45d4780760 bt: Fixed SPP VFS mode not being able to send data 2022-10-26 16:27:49 +08:00
Jiang Jiang Jian
a2086ca355 Merge branch 'bugfix/fix_esp32_esp32c3_some_bugs_v4.3' into 'release/v4.3'
Fixed BLE lld_per_adv.c line 401 assert on ESP32C3 (backport v4.3)

See merge request espressif/esp-idf!20759
2022-10-26 11:07:37 +08:00
Jiang Jiang Jian
69ae164794 Merge branch 'bugfix/update_ctrl_init_config_macro_v4.3' into 'release/v4.3'
Bugfix/update ctrl init config macro (v4.3)

See merge request espressif/esp-idf!20713
2022-10-25 17:41:53 +08:00
Jiang Jiang Jian
031d4c904c Merge branch 'bugfix/crash_in_i2s_when_reconnect_to_a2dp_v4.3' into 'release/v4.3'
fixed crash in I2S when reconnect to a2dp sink (v4.3)

See merge request espressif/esp-idf!20720
2022-10-25 17:40:41 +08:00
zhiweijian
2dfdea8b50 update ble tx power level mapping 2022-10-24 20:10:48 +08:00
zhiweijian
8005e6f0d5 Fixed BLE lld_per_adv.c line 401 assert on esp32c3 2022-10-24 19:51:34 +08:00
Island
18efe0ec9b Merge branch 'bugfix/remove_get_modle_and_get_comp_api_forv4.3' into 'release/v4.3'
ble_mesh:example:change the method of get model(for v4.3)

See merge request espressif/esp-idf!20394
2022-10-24 19:42:41 +08:00
zwj
858b869bb6 Fixed ESP32 BLE assert(32 0) 2022-10-24 19:36:58 +08:00
zwj
38945f54e1 allow bluedroid host to report adv_ind separately 2022-10-24 19:36:47 +08:00
Jiang Jiang Jian
d96bb082ba Merge branch 'bugfix/esp_spp_write_len_0_v4.3' into 'release/v4.3'
bt: Fixed esp_spp_write() crash when len is 0 (v4.3)

See merge request espressif/esp-idf!20707
2022-10-24 12:31:37 +08:00
Jiang Jiang Jian
1adb0b6b94 Merge branch 'bugfix/fix_some_wifi_bugs_1019_v4.3' into 'release/v4.3'
esp_wifi: fix deinit return wrong value(Backport v4.3)

See merge request espressif/esp-idf!20733
2022-10-24 11:21:39 +08:00
Fu Hanxi
a03444ebdd Merge branch 'ci/force_based_on_commit_v4.3' into 'release/v4.3'
ci: support one pipeline must based on commmits (v4.3)

See merge request espressif/esp-idf!17923
2022-10-24 08:57:42 +08:00
Li Shuai
54d59fae28 sleep: beacon loss and noise check timer optimize for wifi power save
esp_phy: optimize phy calibration for C3
2022-10-21 21:43:24 +08:00
tgotic
416f9b0cea [bt] fix if allocation fails
If osi_malloc fails for work_queues or osi_work_queue_create fails, osi_work_queue_delete in _err may release unallocated memory.
2022-10-21 14:46:12 +08:00
Jiang Jiang Jian
dd62e3bb9b Merge branch 'bugfix/close_stack_callback_during_ble_stop_v4.3' into 'release/v4.3'
Nimble: Added check to deregister stack callback with controller during stack deinit(v4.3)

See merge request espressif/esp-idf!20605
2022-10-21 14:21:41 +08:00
Jin Cheng
c8db15a4cd fixed crash in I2S when reconnect to a2dp sink 2022-10-21 14:11:56 +08:00
Evan Neidler
850efb4bbe Update #define BT_CONTROLLER_INIT_CONFIG_DEFAULT().
Corrects header names in string from "bt.h" to "esp_bt.h".
2022-10-21 12:03:39 +08:00
xiongweichao
58a7082114 bt: Fixed esp_spp_write() crash when len is 0
Closes https://github.com/espressif/esp-idf/issues/9977
2022-10-21 11:21:51 +08:00
Fu Hanxi
eab8c067bd ci: support one pipeline must based on commmits 2022-10-20 12:41:30 +00:00
Jiang Jiang Jian
844624ead2 Merge branch 'bugfix/revert_commit_da44fc9c_v4.3' into 'release/v4.3'
Revert "fixed the issue iOS devices cannot initiate connection" (v4.3)

See merge request espressif/esp-idf!20667
2022-10-20 19:18:28 +08:00
Jiang Jiang Jian
d2cc0f9f77 Merge branch 'bugfix/add_security_patches_v4.3' into 'release/v4.3'
Adding security patch for SAE side channel attacks (Backport v4.3)

See merge request espressif/esp-idf!20650
2022-10-20 19:17:36 +08:00
muhaidong
bfdccbd7cb esp_wifi: fix deinit return wrong value
1. Deinit does not return ESP_ERR_WIFI_NOT_INIT if the wifi driver is no longer initialized.
2. Fix get wrong channel value use esp_wifi_get_config.
3. Fix bug of missing unlock when wifi stop.
4. Fix annotation error of api esp_wifi_connect.
2022-10-20 11:41:07 +08:00
Michael (XIAO Xufeng)
19ebbf6f14 Merge branch 'feat/esp32s3_support_gpio_deepsleep_wakeup_v4.3' into 'release/v4.3'
example/deep_sleep: add example of EXT0 and using internal pullups (v4.3)

See merge request espressif/esp-idf!18120
2022-10-20 01:32:23 +08:00
Zim Kalinowski
96ef8f42be Merge branch 'bugfix/clobbering_freertos_base_priority_v4.3' into 'release/v4.3'
spi_flash: fix issue linked with raising of task priority while priority is already raised (v4.3)

See merge request espressif/esp-idf!20546
2022-10-19 18:02:30 +08:00
Jiang Jiang Jian
9040964321 Merge branch 'bugfix/fix_esp_hid_auth_fail_crash_v4.3' into 'release/v4.3'
Fix esp hid crash when auth failed (backport v4.3)

See merge request espressif/esp-idf!20613
2022-10-19 11:13:00 +08:00
Jiang Jiang Jian
1ec7a0cbf8 Merge branch 'feature/Add_IVI_recovery_option_v4.3' into 'release/v4.3'
ble_mesh: stack: Add IV index recovery option when device missed the whole IV update(v4.3)

See merge request espressif/esp-idf!20643
2022-10-19 11:12:11 +08:00
Jiang Jiang Jian
f1beed4911 Merge branch 'bugfix/fix_fast_interval_prov_adv_v4.3' into 'release/v4.3'
ble_mesh: stack: Fix send fast interval prov_adv failed(v4.3)

See merge request espressif/esp-idf!20639
2022-10-19 11:11:45 +08:00
Michael (XIAO Xufeng)
14222bc998 example/deep_sleep: add example of EXT0 and using internal pullups 2022-10-19 02:36:14 +08:00
morris
9966753e46 Merge branch 'bugfix/2nd_bootloader_uart1_baudrate_issues_v4.3' into 'release/v4.3'
esp_rom: fix 2nd bootloader custom uart1 baudrate issue (backport to v4.3)

See merge request espressif/esp-idf!20655
2022-10-19 02:09:51 +08:00
Jin Cheng
b5996dd051 Revert "fixed the issue iOS devices cannot initiate connection"
This reverts commit da44fc9cbe.
2022-10-18 19:45:00 +08:00
morris
83dc965b2f Merge branch 'bugfix/fix_rtc8m_calibration_fail_after_cpu_core_reset_v4.3' into 'release/v4.3'
rtc_clk: Fix rtc8m calibration failure after cpu/core reset (backport v4.3)

See merge request espressif/esp-idf!20554
2022-10-18 18:22:01 +08:00
Rahul Tank
7d3207f70b Nimble: Added check to deregister stack callback with controller during stack deinit(v4.3) 2022-10-18 12:19:20 +05:30
jiangguangming
45e6ae724d esp_rom: fix 2nd bootloader custom uart1 baudrate issue 2022-10-18 13:51:20 +08:00
Jiang Jiang Jian
ed9fb4db6f Merge branch 'bugfix/fix_c3_dig_dibas_limit_bug_to_v4.3' into 'release/v4.3'
C3:  Fix system not stable bug when dbias storing in efuse is bigger than 27 (v4.3)

See merge request espressif/esp-idf!20497
2022-10-18 12:38:37 +08:00
Jiang Jiang Jian
8b8b69a4c3 Merge branch 'bugfix/fix_ignore_rx_sub_ampdu_int_issue_v4.3' into 'release/v4.3'
esp_wifi: fix ignore rx sub ampdu interrupt issue(Backport v4.3)

See merge request espressif/esp-idf!20614
2022-10-17 22:09:12 +08:00
gauri patankar
929a1f8549 wpa_supplicant: Update security patches from upstream
1. Adding security patch for SAE side channel attacks
2. Adding confirm message validation in error cases
3. Adding y coordinate for PWE in SAE
2022-10-17 18:03:33 +05:30
gauri patankar
a01a64f02c wpa_supplicant: Move SAE modules into dragonfly files 2022-10-17 18:01:24 +05:30
Jiang Jiang Jian
ed6f966009 Merge branch 'contrib/github_pr_9529_mr_v4.3' into 'release/v4.3'
bt:No need to use local copy of btc_msg_t in btc_transfer_context, create it on heap and pass to osi_thread_post()(v4.3)

See merge request espressif/esp-idf!19693
2022-10-17 18:04:57 +08:00
Jiang Jiang Jian
c482cf16d4 Merge branch 'backport/cjh_v4.3' into 'release/v4.3'
Fixed some BLE bugs on bluedroid (backport v4.3)

See merge request espressif/esp-idf!20507
2022-10-17 17:05:00 +08:00
wangjialiang
b8e9a77463 ble_mesh: stack: Add IV index recovery option when device missed the whole IV update 2022-10-17 16:54:16 +08:00
wangjialiang
cac449f57a ble_mesh: stack: Fix send fast interval prov_adv failed when PB-ADV and PB-GATT enable simultaneously 2022-10-17 16:39:59 +08:00
Jiang Jiang Jian
bf00ddb62c Merge branch 'bugfix/fix_esprv_intc_int_set_type_err_parameter_backportv4.3' into 'release/v4.3'
bugfix: esprv_intc_int_set_type should not use bitmap parameter(backport v4.3)

See merge request espressif/esp-idf!20608
2022-10-17 14:39:31 +08:00
Mahavir Jain
d4789383a4 Merge branch 'bugfix/fix_mbedlts_ds_memory_leak_v4.3' into 'release/v4.3'
esp-tls: Fix memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled (backport v4.3)

See merge request espressif/esp-idf!20595
2022-10-17 12:41:03 +08:00
Roland Dobai
feeca500de Merge branch 'fix/virtualenv_dir_v4.3' into 'release/v4.3'
Tools: Keep making virtual environments with python in the bin directory (v4.3)

See merge request espressif/esp-idf!20620
2022-10-17 01:04:34 +08:00
Roland Dobai
71598bf4f9 Tools: Keep making virtual environments with python in the bin directory
On Ubuntu 22.04 virtualenv with the latest setuptools produces
environments with Python in "local/bin" instead of "bin" (see
https://github.com/pypa/virtualenv/issues/2350).

Closes https://github.com/espressif/esp-idf/issues/9931
2022-10-14 15:35:17 +02:00
KonstantinKondrashov
e8bf8ce14d freertos: Adds new APIs to set/get and restore base priority
Closes https://github.com/espressif/esp-idf/issues/7580
2022-10-14 19:04:44 +08:00
muhaidong
56933d09ea esp_wifi: fix ignore rx sub ampdu interrupt issue 2022-10-14 16:08:24 +08:00
chenjianhua
b3bd5cbf77 fix esp hid crash when auth failed 2022-10-14 16:02:58 +08:00
Jiang Jiang Jian
bc4de7dc29 Merge branch 'bugfix/fix_connect_fail_when_enable_SPIRAM_v4.3' into 'release/v4.3'
esp_wifi: fix connect fail when enable SPIRAM and ESPNOW send (backport v4.3)

See merge request espressif/esp-idf!20586
2022-10-14 15:49:13 +08:00
wuzhenghui
4934d700c9 bugfix: esprv_intc_int_set_type should not use bitmap parameter 2022-10-14 15:27:19 +08:00
yuanjianmin
4848e11ac6 esp-tls: Fix memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled 2022-10-13 19:41:19 +08:00
zhangyanjiao
14ce174215 esp_wifi: fix connect fail when enable SPIRAM and ESPNOW send 2022-10-13 17:05:17 +08:00
Song Ruo Jing
c0be4cb2ba rtc_clk: Fix rtc8m calibration failure after cpu/core reset
Explicitly guarantee 8md256 clk is enabled before calibration
2022-10-12 12:41:50 +08:00
xiongweichao
9f5ff9fddf Fixed deadlock due to wrong parameter when calling btc_transfer_context() after calling esp_bluedroid_disable()
Closes https://github.com/espressif/esp-idf/issues/9672
2022-10-10 09:31:47 +00:00
tgotic
5d3af603a6 update code to use osi_free() 2022-10-10 09:31:47 +00:00
tgotic
01ac97732d local copy of btc_msg_t
No need to use local copy of btc_msg_t in btc_transfer_context, create it on heap and pass to osi_thread_post().
2022-10-10 09:31:47 +00:00
chenjianhua
ed24da98eb bluedroid: configurable max gattc cache characteristic count 2022-10-09 15:31:11 +08:00
chenjianhua
b904278330 fix ble adv tx power map 2022-10-09 15:28:39 +08:00
chenjianhua
7a324e2984 bluedroid: fix ble rpa generate and update by host 2022-10-09 15:28:39 +08:00
chenjianhua
0446de4429 Revert "component/bt: add local irk to controller"
This reverts commit 032f6d34d1.
2022-10-09 15:28:39 +08:00
chenjianhua
fb20a1be8e Revert "Fixed ESP32 BLE can't resolve the peer address when enable white list"
This reverts commit 192aa18c31.
2022-10-09 15:28:39 +08:00
chenjianhua
e5a195fc2c Bluedroid: Configurable option to modify max gatt service attributes count 2022-10-09 15:28:39 +08:00
cje
5e5b8c16cb fix C3 system not stable bug when dbias storing in efuse is bigger than 27 2022-10-08 11:48:47 +08:00
Euripedes Rocha
ec3381f043 [mqtt] Fix esp_mqtt_client_enqueue for len=0
27eb4726067465c5c67d4ecdca5ddccd26f02580..60983d1dd54196b1e3f399c6f928d77256ec742a

Detailed description of the changes:
* [Backport] mqtt_client: fix esp_mqtt_client_enqueue for len=0
  - See merge request espressif/esp-mqtt!144
  - mqtt_client: fix esp_mqtt_client_enqueue for len=0
    (espressif/esp-mqtt@e918742)
2022-10-04 05:14:13 +00:00
Jiang Jiang Jian
9e863ecdb8 Merge branch 'bugfix/fix_some_ble_bugs_on_esp32c3_v4.3' into 'release/v4.3'
Fixed some BLE controller bugs on ESP32-C3 (backport v4.3)

See merge request espressif/esp-idf!19990
2022-09-29 13:59:20 +08:00
Jiang Jiang Jian
07bffab8d4 Merge branch 'feature/sink_support_mono_v4.3' into 'release/v4.3'
bt: Fixed sink not being able to output mono audio because it can only decode dual channel audio data(v4.3)

See merge request espressif/esp-idf!20079
2022-09-29 11:40:01 +08:00
Jiang Jiang Jian
a5e5ab7b1b Merge branch 'bugfix/acl_buf_ocf_and_conn_fail_v4.3' into 'release/v4.3'
bugfix/fixed the exhaustion of ACL buffer and duplicated connection requests (v4.3)

See merge request espressif/esp-idf!20385
2022-09-29 11:37:57 +08:00
Jiang Jiang Jian
b52b357b94 Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.3' into 'release/v4.3'
fixed the issue iOS devices cannot initiate connection (v4.3)

See merge request espressif/esp-idf!20405
2022-09-29 11:37:13 +08:00
Roland Dobai
4c601e1d47 Merge branch 'bugfix/missing_idfSelectedId_v4.3' into 'release/v4.3'
Tools: bugfix wrong format of idf-env.json, KeyError: 'idfSelectedId' (v4.3)

See merge request espressif/esp-idf!20381
2022-09-29 01:30:28 +08:00
Jin Cheng
f2000d8925 fixed the issue iOS devices cannot initiate connection
to ESP32 while there is a BLE connection to this ESP32

Closes https://github.com/espressif/esp-idf/issues/6557
2022-09-28 16:12:11 +08:00
Yuan Hong Hui
eba6275572 ble_mesh:example:change the method of get model 2022-09-28 15:29:03 +08:00
Island
89ecfa9470 Merge branch 'bugfix/ble_mesh_console_support_nimble_host_for_v4.3' into 'release/v4.3'
ble_mesh:ble mesh console support nimble(v4.3)

See merge request espressif/esp-idf!19605
2022-09-28 12:32:21 +08:00
morris
c930046693 Merge branch 'doc/usj_sw_reset_alive_bbpll_doc_v4.3' into 'release/v4.3'
usb_serial_jtag: fixed the docs that we can use usj in sleep modes (v4.3)

See merge request espressif/esp-idf!20294
2022-09-28 11:50:08 +08:00
Jin Cheng
9a953f7740 fixed the exhaustion of ACL buffer
fixed the duplication of connection request from the same device
2022-09-28 10:16:24 +08:00
Marek Fiala
37f193c46c Tools: bugfix wrong format of idf-env.json, KeyError: 'idfSelectedId'
Closes https://github.com/espressif/esp-idf/issues/9837
2022-09-27 22:39:07 +02:00
zwj
f635a2f2a1 fix calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting 2022-09-27 21:38:11 +08:00
zwj
157acb3086 Fixed extend adv tx power range error 2022-09-27 21:37:04 +08:00
cjin
ebb23ff4fe fix err using rpa for confirmation calculation 2022-09-27 21:35:49 +08:00
cjin
78a08e9ca7 fix on data len change cmd malfunction 2022-09-27 21:35:33 +08:00
zwj
d826f8ae34 Update ESP32-C3 BLE lib
- Fixed the usage of PLL track related baseband IRQs
- Fixed connect failed due to error sync found signal
- Fixed BLE disconnect failed due to terminate_ind have sent but no ACK is received
- Added ADV mode error check in ADV rx isr handler function
- Fixed BLE RAL_UNDERRUN and TX_CRYPT_ERR assert
- Disable scan continue
- Fixed scan forever if scan continue is disable
- Fixed BLE disconnection issue when channel map update failed due to bad channels
2022-09-27 20:55:19 +08:00
zwj
05c8753eaa Fixed extend adv set remove failed 2022-09-27 20:55:19 +08:00
morris
853ce78b19 Merge branch 'feat/essl_extra_component_v4.3' into 'release/v4.3'
sdio/example: fixed the essl return value issue (v4.3)

See merge request espressif/esp-idf!20346
2022-09-27 18:33:22 +08:00
Mahavir Jain
07251a99f1 Merge branch 'bugfix/fix_socket_leak_v4.3' into 'release/v4.3'
esp-tls: socket will be set to -1 and will not be closed (backport v4.3)

See merge request espressif/esp-idf!20350
2022-09-27 18:18:07 +08:00
Michael (XIAO Xufeng)
78aca699b9 sdio/example: fixed the essl return type issue 2022-09-26 19:41:30 +08:00
Yuan Jian Min
3a92e82e97 esp-tls: socket will be set to -1 and will not be closed 2022-09-26 19:25:27 +08:00
Roland Dobai
e40b55e854 Merge branch 'fix/ci_macos_idf_env_json' into 'release/v4.3'
CI: Clean-up idf-env.json which might not be compatible with newer versions

See merge request espressif/esp-idf!20316
2022-09-23 21:47:00 +08:00
Roland Dobai
a9501e16c7 CI: Clean-up idf-env.json which might not compatible with newer versions 2022-09-23 12:24:37 +02:00
Jiang Jiang Jian
aefd3db87d Merge branch 'bugfix/fix_set_country_code_before_wifi_start_issue_v4.3' into 'release/v4.3'
Bugfix/fix set country code before wifi start issue v4.3(Backport v4.3)

See merge request espressif/esp-idf!20106
2022-09-23 17:56:12 +08:00
Mahavir Jain
8034c03106 Merge branch 'update_expat_R_2_4_8_v4.3' into 'release/v4.3'
expat: Update expat library to R_2_4_8 release (v4.3)

See merge request espressif/esp-idf!20284
2022-09-22 21:25:47 +08:00
Michael (XIAO Xufeng)
e28bb4b9c4 usb_serial_jtag: fixed the docs that we can use usj in sleep modes
Related to: https://github.com/espressif/esp-idf/issues/8507, https://github.com/espressif/esp-idf/issues/8884
2022-09-22 17:39:15 +08:00
Island
eb922b57a3 Merge branch 'bugfix/relay_friend_cred_message_v4.3' into 'release/v4.3'
ble_mesh: stack: Fix friend relay lpn message when relay disable(v4.3)

See merge request espressif/esp-idf!20205
2022-09-22 14:17:40 +08:00
Jiang Jiang Jian
4fc2ff34b5 Merge branch 'ci/optimize_ats_ci_flow_v4.3' into 'release/v4.3'
CI: optimize ATS ci flow (v4.3)

See merge request espressif/esp-idf!20177
2022-09-22 14:12:06 +08:00
Jiang Jiang Jian
8ed3ec79cf Merge branch 'bugfix/fix_xtal32k_error_detect_backport_v4.3' into 'release/v4.3'
esp_hw_support/clk_cali: fix xtal32k error detect(backport v4.3)

See merge request espressif/esp-idf!20277
2022-09-22 14:04:44 +08:00
morris
1ecf62bf14 Merge branch 'bugfix/fix_spi_bus_lock_concurrency_issue_v4.3' into 'release/v4.3'
spi_bus_lock: fix a concurrency issue (v4.3)

See merge request espressif/esp-idf!20139
2022-09-22 13:34:00 +08:00
Harshit Malpani
f310113c91 expat: Update expat library to R_2_4_8 release
Detailed changelog: https://github.com/libexpat/libexpat/blob/R_2_4_8/expat/Changes
2022-09-22 10:04:59 +05:30
jingli
b85e5627d3 esp_hw_support/clk_cali: remove redundant check for cali value 2022-09-21 16:30:17 +08:00
jingli
07d69b7cae esp_hw_support/clk_cali: fix xtal32k error detect 2022-09-21 16:29:36 +08:00
morris
179d12db47 Merge branch 'bugfix/fix_ledc_timer_update_usage_v4.3' into 'release/v4.3'
ledc: Fix the usage of ledc_ls_timer_update and ledc_timer_rst (backport v4.3)

See merge request espressif/esp-idf!20243
2022-09-21 15:00:37 +08:00
Michael (XIAO Xufeng)
02c45b6e52 Merge branch 'bugfix/spi_hd_quad_issue_4.3' into 'release/v4.3'
SPI : fix wrong dummy cycle on quad mode and put get-command function in spi_ll.h(backport v4.3)

See merge request espressif/esp-idf!19836
2022-09-21 12:10:23 +08:00
wangjialiang
e54506ceaa ble_mesh: stack: Fix friend relay lpn message when relay disable. 2022-09-21 03:36:36 +00:00
Island
894b1ad79d Merge branch 'bugfix/lpn_not_recv_message_to_all_node_4.3' into 'release/v4.3'
ble_mesh: stack: Add option for lpn auto sub all-nodes(v4.3)

See merge request espressif/esp-idf!20263
2022-09-21 11:31:39 +08:00
wangjialiang
7e2ebcde7a ble_mesh: stack: Add option for lpn auto sub all-nodes. 2022-09-20 20:31:37 +08:00
Song Ruo Jing
4cd54d6e32 ledc: Fix the usage of ledc_ls_timer_update and ledc_timer_rst
ledc_ls_timer_update is required only when CLK_DIV and DUTY_RES bits are changed.
Calling ledc_timer_rst while re-configure PWM frequency through ledc_set_freq can cause glitch in the signal
2022-09-20 12:04:13 +08:00
Michael (XIAO Xufeng)
5666813ce0 Merge branch 'bugfix/driver_rs485_fix_test_sync_issues_v43' into 'release/v4.3'
driver: uart rs485 fix test sync issues and fail threshold (backport v4.3)

See merge request espressif/esp-idf!19611
2022-09-19 16:16:01 +08:00
Alex Lisitsyn
ec7bab9b19 driver: uart rs485 fix test sync issues and fail threshold (backport v4.3) 2022-09-19 16:16:00 +08:00
xueyunfei
f1b8861f2b esp_wifi:add clear ap list interface 2022-09-19 15:52:06 +08:00
muhaidong
1773cdb3ac docs: update wifi country code docs. 2022-09-19 15:51:52 +08:00
muhaidong
e8abfaa20e esp_wifi: add small UT for country code. 2022-09-19 15:51:39 +08:00
muhaidong
5a6cbcd29b esp_wifi: fix country policy issue. 2022-09-19 15:51:19 +08:00
Jiang Jiang Jian
5c3e729198 Merge branch 'bugfix/fix_send_eapol_key_request_frame_when_wpa_group_handshake_issue_v4.3' into 'release/v4.3'
wpa_supplicant: try install gtk before send group key handshake message 2(Backport v4.3)

See merge request espressif/esp-idf!20200
2022-09-19 10:58:19 +08:00
Island
26369071d4 Merge branch 'bugfix/adapt_new_btc_v4.3' into 'release/v4.3'
ble_mesh: stack: Corrected parameter size when the btc_transfer_context is used (v4.3)

See merge request espressif/esp-idf!20167
2022-09-18 14:35:32 +08:00
muhaidong
6cf2fc39ce wpa_supplicant: try install gtk before send group key handshake message 2 2022-09-17 18:29:20 +08:00
Chen Yudong
977d1a4b95 CI: optimize ATS ci flow 2022-09-16 13:50:34 +08:00
wangjialiang
eb4ec4beda ble_mesh: stack: added the judgment that the parameter is NULL but the parameter len is not zero to avoid btc_transfer_context failed 2022-09-15 09:17:08 +00:00
morris
2ee1a33ed4 Merge branch 'bugfix/twai_isr_iram_v4.3' into 'release/v4.3'
hal: fix CONFIG_TWAI_ISR_IN_IRAM for C3, hide TWAI menu for C2 (v4.3)

See merge request espressif/esp-idf!20093
2022-09-15 17:04:18 +08:00
gaoxu
8095142796 SPI: change the different soc's spi defintion location and fix the bug that wrong dummy cycle under quad spi mode 2022-09-15 16:03:54 +08:00
morris
4b6a6a2684 Merge branch 'bugfix/fix_spi_slave_example_sender_ccount_issue_v4.3' into 'release/v4.3'
spi: fix spi slave example sender ccount issue (v4.3)

See merge request espressif/esp-idf!18875
2022-09-15 15:34:02 +08:00
morris
f425cd9d15 Merge branch 'bugfix/fix_esp32_psram_cs_hold_time_issue_when_under_80m_v4.3' into 'release/v4.3'
esp_psram: fix esp32 psram cs hold time issue when under 40m (v4.3)

See merge request espressif/esp-idf!19649
2022-09-15 15:30:30 +08:00
Jiang Jiang Jian
08726a8495 Merge branch 'bugfix/remove_bt_dft_init_semicolon_v4.3' into 'release/v4.3'
bt: Remove trailing semicolon from bt dft initializer(v4.3)

See merge request espressif/esp-idf!19916
2022-09-14 17:01:08 +08:00
Jiang Jiang Jian
f1bd2be298 Merge branch 'bugfix/fix_memory_corruption_in_recon_code_v4.3' into 'release/v4.3'
Nimble: Fixed memory corruption introduced in reconnection attempt code (v4.3)

See merge request espressif/esp-idf!19746
2022-09-14 16:59:38 +08:00
wanlei
8290d450f3 spi_master:fix error when use spi_bus_add_device more than 3 device
update gpio_sig at `spics_out` array in each spi_periph.c of chips later than s2
then `spi_bus_add_device` can correctly distribute gpio_signals for cs_signal

Closes https://github.com/espressif/esp-idf/issues/8876
2022-09-14 12:40:29 +08:00
Armando
6a1bfa29b0 SPI_BUS_LOCK: fix a concurrency issue
define: lock_bits = (lock->status & LOCK_MASK) >> LOCK_SHIFT;  This `lock_bits` is the Bit 29-20 of the lock->status

1. spi_hdl_1:
   acquire_end_core():
   uint32_t status = lock_status_clear(lock, dev_handle->mask & LOCK_MASK);
   Becuase this is the first `spi_hdl_1`, so after this , lock_bits == 0`b0. status == 0

2. spi_hdl_2:
   acquire_core:
   uint32_t status = lock_status_fetch_set(lock, dev_handle->mask & LOCK_MASK);
   Then here status is 0`b0, but lock_bits == 0`b10. Because this is the `spi_hdl_2`

3. spi_hdl_2:
   `acquire_core` return true, because status == 0. `spi_bus_lock_acquire_start(spi_hdl_2)` then won't block.

4. spi_hdl_2:
   spi_device_polling_end(spi_hdl_2).

5. spi_hdl_1:
   acquire_end_core:
   status is 0, so it cleas the lock->acquiring_dev

6. spi_hdl_2:
   spi_device_polling_end:
   assert(handle == get_acquiring_dev(host)); Fail

Closes https://github.com/espressif/esp-idf/issues/8179
2022-09-14 12:13:24 +08:00
Zim Kalinowski
73509d93a5 Merge branch 'bugfix/spiram_abort_allocation_failure_v4.3' into 'release/v4.3'
SPIRAM: 'Abort on allocation failure' should not trigger when there is available SPI ram (backport v4.3)

See merge request espressif/esp-idf!19550
2022-09-13 16:28:43 +08:00
Zim Kalinowski
867c622136 Merge branch 'bugfix/fix_disassembler_interpreting_padding_v4.3' into 'release/v4.3'
(Xtensa) Build: add .xt.prop and .xt.lit to the compiled ELF file (backport v4.3)

See merge request espressif/esp-idf!19612
2022-09-13 16:28:26 +08:00
Ivan Grokhotkov
5b2bfa0574 Merge branch 'bugfix/ci_check_executable_windows_v4.3' into 'release/v4.3'
ci: fix check_executables issue on Windows (v4.3)

See merge request espressif/esp-idf!20094
2022-09-13 14:57:03 +08:00
morris
7d2e9c45e2 Merge branch 'ci/ignore_adc_dma_single_read_test_v4.3' into 'release/v4.3'
adc: ignore ADC DMA single read test on esp32s2 (v4.3)

See merge request espressif/esp-idf!19726
2022-09-13 14:34:49 +08:00
Ivan Grokhotkov
ff98b2cf80 Merge branch 'update/version_4_3_4' into 'release/v4.3'
Update version to 4.3.4

See merge request espressif/esp-idf!20103
2022-09-12 22:37:17 +08:00
Ivan Grokhotkov
63091bdf8d versions: Update version to 4.3.4 2022-09-12 10:59:15 +02:00
Michael (XIAO Xufeng)
4919358d6b ci: put file sorter to the end of the pre-commit checking
So that the sorter will be done at the end of the checking flow, we don't need to run pre-commit hooks again if another hook also take effect.
2022-09-11 02:55:56 +08:00
Michael (XIAO Xufeng)
7ff41e406b ci: fix check_executables issue on Windows 2022-09-11 02:54:57 +08:00
Ivan Grokhotkov
c38eeeeda1 hal: fix CONFIG_TWAI_ISR_IN_IRAM not taking effect for C3/H2 2022-09-11 01:17:20 +08:00
xiongweichao
59ea02cb4c bt:Fixed sink not being able to output mono audio because it can only decode dual channel audio data 2022-09-09 17:42:30 +08:00
Armando
e1a5315ff7 adc: ignore ADC DMA single read test on esp32s2
This test is only on esp32s2, and using verification adc APIs.
This commit keeps the code, but don't check it on ci
2022-09-09 16:03:10 +08:00
Yuan Hong Hui
372f637f25 ble_mesh:example:fix memory leak 2022-09-08 16:24:18 +08:00
Mahavir Jain
ad857b5f2b Merge branch 'fix/fix_esp_rsa_sign_alt_modifying_input_params_v4.3' into 'release/v4.3'
esp_rsa_sign_alt: Fix esp_init_ds_data_ctx API to not modify user defined data... (v4.3)

See merge request espressif/esp-idf!19715
2022-09-08 13:56:58 +08:00
Mahavir Jain
b4d7495e0d Merge branch 'fix/esp_https_client_compile_warning_v4.3' into 'release/v4.3'
esp_https_ota: Fix build warning when CONFIG_OTA_ALLOW_HTTP is set (v4.3)

See merge request espressif/esp-idf!19981
2022-09-08 13:56:36 +08:00
Anton Maklakov
1dbab6dfc4 Merge branch 'ci/fix_nightly_run_build_jobs_v4.3' into 'release/v4.3'
ci: build all when has env var NIGHTLY_RUN (v4.3)

See merge request espressif/esp-idf!19702
2022-09-08 11:47:18 +08:00
Jiang Jiang Jian
90ef6426a8 Merge branch 'bugfix/ble_disconnect_enable_light_sleep_and_bb_pd_v4.3' into 'release/v4.3'
bt: Fixed bluetooth disconnection issue when light sleep and baseband power down are enabled (v4.3)

See merge request espressif/esp-idf!19804
2022-09-08 10:55:37 +08:00
Jiang Jiang Jian
cfdc0b9fce Merge branch 'bugfix/fix_rtc_clock_freq_value_macro_v4.3' into 'release/v4.3'
rtc_clk: Fix wrong RC_SLOW clock frequency value on ESP32C3 (backport v4.3)

See merge request espressif/esp-idf!19934
2022-09-08 10:41:05 +08:00
Aditya Patwardhan
ead1587caf esp_https_ota: Warn users when CONFIG_OTA_ALLOW_HTTP is set 2022-09-06 13:54:22 +05:30
Axel Lin
460df92e85 esp_https_ota: Fix build warning when CONFIG_OTA_ALLOW_HTTP is set
Fix below build warning when CONFIG_OTA_ALLOW_HTTP is set:
esp_https_ota.c:165:13: warning: 'is_server_verification_enabled' defined but not used [-Wunused-function]

While at it, also simplify the is_server_verification_enabled logic.

Fixes: 48987ad9df ("esp_https_ota: Enable option of using global_ca_store and x509_crt_bundle")
Signed-off-by: Axel Lin <axel.lin@gmail.com>

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

Signed-off-by: Aditya Patwardhan <aditya.patwardhan@espressif.com>
2022-09-06 13:54:22 +05:30
Song Ruo Jing
3ce98867a0 rtc_clk: Fix wrong RC_SLOW clock frequency value on ESP32C3 2022-09-02 21:06:24 +08:00
Pedro
86182baaaf Remove trailing semicolon from bt dft initializer
Similar to espressif#6554
2022-09-02 11:10:41 +08:00
Ivan Grokhotkov
5b81524e63 Merge branch 'bugfix/temp_fix_esp_event_test' into 'release/v4.3'
esp_event: lowered performance threshold temporarily for esp_event test

See merge request espressif/esp-idf!19672
2022-08-31 16:42:37 +08:00
xiongweichao
395f0eb5c1 Fix bluetooth disconnection issue when light sleep and baseband power down are enabled 2022-08-26 16:17:14 +08:00
Rahul Tank
1f695251a1 Nimble: Fixed memory corruption introduced in reconnection attempt code 2022-08-24 13:44:29 +05:30
Aditya Patwardhan
861c3f5025 esp_rsa_sign_alt: Fix esp_init_ds_data_ctx API to not modify user defined data when it is given directory from flash 2022-08-23 13:32:12 +05:30
Fu Hanxi
d7eb0d9d71 ci: build all when has env var NIGHTLY_RUN 2022-08-22 18:53:27 +08:00
Chip Weinberger
8792b1de1e SPIRAM: 'Abort on allocation failure' should not trigger when there is available SPI ram
(cherry picked from commit 8dcdb2f363fd3fa00bd77e4bd75e7c73d6c7d0fb)
2022-08-22 02:45:10 +00:00
Omar Chebib
f5ad8ac423 (Xtensa) Build: add .xt.prop and .xt.lit to the compiled ELF file
Adding prop and lit sections to the ELF will let the debugger and the disassembler
have more info about data bytes present in the middle of the Xtensa
instructions, usually used for padding.
2022-08-22 02:43:50 +00:00
Jiang Jiang Jian
6075806400 Merge branch 'bugfix/fix_country_policy_issue_v4.3' into 'release/v4.3'
esp_wifi: fix not update phy according to country code.

See merge request espressif/esp-idf!19655
2022-08-21 19:41:07 +08:00
muhaidong
189bdb2bf8 esp_wifi: fix not update phy according to country code.
1. Fixed not update phy according to country code.
2. Fixed crashed when esp_wifi_set_ant_gpio() called
3. Fixed a bug when ftm used with ps enabled
4. Fixed a potential issue to allocate PSRAM to wifi stack where internal RAM is required
5. Fixed potential fail to scan AP after receiving disassoc/deauth from AP on esp32s2
y
2022-08-21 16:01:34 +08:00
Jiang Jiang Jian
36decb6662 Merge branch 'feature/sae_sta_h2e_v4.3' into 'release/v4.3'
esp_wifi: WPA3 SAE H2E support for station (backport v4.3)

See merge request espressif/esp-idf!18661
2022-08-20 23:46:41 +08:00
Zim Kalinowski
662b6c9ad3 Merge branch 'bugfix/i2c_incorrect_speed_v4.3' into 'release/v4.3'
I2C: Fix SCL period timings on ESP targets (backport v4.3)

See merge request espressif/esp-idf!18272
2022-08-20 03:51:44 +08:00
Jakob Hasse
937633ad79 fix (esp_event): lowered performance threshold for esp_event test
The test in question is "performance test - no dedicated task".
Its performance dropped significantly during a WiFi library commit,
although there is no obvious reason. This needs to be investigated
and until then, we temporarily lower the performance threshold to
let the test pass.
2022-08-19 12:02:42 +02:00
Gauri Patankar
e055f5ced7 esp_wifi: WPA3 SAE H2E support for station
Mandate sta threshold wpa3 for ssid after receiving transition disable bit from AP
2022-08-19 15:09:14 +05:30
Jiang Jiang Jian
c2735be0c8 Merge branch 'bugfix/fix_i2c_issues_v4.3' into 'release/v4.3'
I2C: Fix task wait too long on an event & timeout WDT triggered (backport v4.3)

See merge request espressif/esp-idf!18770
2022-08-19 14:01:14 +08:00
Jiang Jiang Jian
d4d70c3fcd Merge branch 'bugfix/nvs_part_ptr_wrong_init_4.3' into 'release/v4.3'
bugfix (nvs_flash): Fix nvs_flash_init_partition_ptr (backport v4.3)

See merge request espressif/esp-idf!18674
2022-08-19 13:59:12 +08:00
Jiang Jiang Jian
4ed1729262 Merge branch 'refactor/flash_qio_overidable_v4.3' into 'release/v4.3'
spi_flash: refact that flash qio can be overidable(backport v4.3)

See merge request espressif/esp-idf!18037
2022-08-19 13:58:26 +08:00
Jiang Jiang Jian
29978c0f17 Merge branch 'bugfix/hfp_examples_not_work_with_default_sdkconfig_v4.3' into 'release/v4.3'
bugfix/set default number of sco connection to 1 (v4.3)

See merge request espressif/esp-idf!19590
2022-08-18 21:40:35 +08:00
Armando
19951bce8c esp_psram: fixed 40mhz cs signal glitch issue 2022-08-18 20:37:46 +08:00
Jiang Jiang Jian
c207d09250 Merge branch 'bugfix/combined_softap_pmf_fixes_v4.3' into 'release/v4.3'
Combined bugfixes for SoftAP and PMF (Backport v4.3)

See merge request espressif/esp-idf!19118
2022-08-18 17:54:13 +08:00
Omar Chebib
9faeca3d1c I2C: Fix SCL period timings on ESP targets
The output frequency is now more accurate as the SCL period timings have been fixed.
This fix applies for ESP32, ESP32S3, ESP32C3 and ESP32H2
2022-08-18 02:45:36 +00:00
Omar Chebib
4d7f007645 I2C: Fix a bug making the I2C task wait too long on an event
The I2C ISR will now notify the task waiting on an event. Thus, the task can stop waiting on the event queue as soon as possible.
2022-08-18 02:37:43 +00:00
Chen Yi Qun
b6bbb5e0a2 I2C: add conf_update for esp32c3 i2c 2022-08-18 02:37:43 +00:00
Cao Sen Miao
19205b0696 I2C: Fix i2c write fake timeout and WDT triggered 2022-08-18 02:37:43 +00:00
Nachiket Kukade
5e3ade893a esp_wifi: Update wifi libs
Update wifi libs with below fixes -
1. Improved error handling in SoftAP Rx path, fixed LoRa IE length
2. Handle low memory scenario, re-enabling PMF Capable flag in STA PMF
3. Release wifi lock in offchannel operation
2022-08-17 15:41:13 +05:30
Yuan Hong Hui
33ea98ffc7 ble_mesh:ble mesh console support nimble 2022-08-17 14:36:26 +08:00
Anton Maklakov
843b870b20 Merge branch 'ci/support_nightly_build_keyword_in_ttfw_v4.3' into 'release/v4.3'
ci: support keyword `nightly_run` in ttfw_idf decorator (v4.3)

See merge request espressif/esp-idf!19133
2022-08-17 12:50:30 +08:00
jincheng
49fba45156 Fixed the failure of 'connect audio' operation in HFP examples with default SDK configuration
Due to the lack of synchronized connections, the hf_client can not create audio_connection to
hf_ag. Set default number of synchronized connection to 1.

Closes https://github.com/espressif/esp-idf/issues/9537
2022-08-17 10:15:11 +08:00
Roland Dobai
d96dde38f9 Merge branch 'feature/oocd_ver_upgrade_v4.3' into 'release/v4.3'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' (v4.3)

See merge request espressif/esp-idf!19491
2022-08-16 23:20:12 +08:00
Roland Dobai
b3bdd6afc3 Merge branch 'fix/install.ps1.v4.4_v4.3' into 'release/v4.3'
Tools: Remove undefined variable from install.ps1 (v4.3)

See merge request espressif/esp-idf!19584
2022-08-16 22:19:54 +08:00
Alexey Gerenkov
def78db543 tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' 2022-08-16 11:07:06 +00:00
Roland Dobai
5d1a51db65 Tools: Remove undefined variable from install.ps1
Closes https://github.com/espressif/esp-idf/issues/9556
2022-08-16 12:20:11 +02:00
Jiang Jiang Jian
2828e8fe2f Merge branch 'bugfix/wifi_bt_mac_bb_pd_light_sleep_v4.3' into 'release/v4.3'
backport v4.3: deep sleep does not need cpu and wifi/bt mac retention

See merge request espressif/esp-idf!19511
2022-08-16 17:09:25 +08:00
Aleksei Apaseev
dbd6519948 ci: allow scheduled pipelines 2022-08-15 10:43:11 +00:00
Fu Hanxi
d94dbdd1be ci: support keyword nightly_run in ttfw_idf decorator 2022-08-15 10:43:11 +00:00
Jiang Jiang Jian
19de572d45 Merge branch 'bugfix/bt_invalid_workqueue_num_v4.3' into 'release/v4.3'
Bluetooth: fixed the invalid workqueue number for BTU thread in Bluedroid(backport v4.3)

See merge request espressif/esp-idf!19509
2022-08-12 19:50:07 +08:00
Jiang Jiang Jian
f128f4f83e Merge branch 'bugfix/vendor_model_send_message_no_memory_forv4.3' into 'release/v4.3'
ble_mesh:example: free the memory of malloc (v4.3)

See merge request espressif/esp-idf!19186
2022-08-12 19:49:25 +08:00
Yuan Hong Hui
190cd2f8cd ble_mesh:the memory requested by malloc has not benn released 2022-08-12 06:03:58 +00:00
Jiang Jiang Jian
c6f5e4f505 Merge branch 'bugfix/memory_region_define_rtc_fast_v4.3' into 'release/v4.3'
backport v4.3: substract rtc_iram_seg memory region size from ESP_BOOTLOADER_RESERVE_RTC

See merge request espressif/esp-idf!19424
2022-08-12 14:00:51 +08:00
Jiang Jiang Jian
a456819d78 Merge branch 'bugfix/fix_bt_sphinx_warnings_4.3' into 'release/v4.3'
components_bt: fix unstandard typedefs [backport v4.3]

See merge request espressif/esp-idf!19339
2022-08-12 14:00:35 +08:00
Jiang Jiang Jian
9a09a64e36 Merge branch 'bugfix/wifi_bt_use_same_clock_source_v4.3' into 'release/v4.3'
Fix Wi-Fi does not know that Bluetooth has modified the lpclk source (v4.3)

See merge request espressif/esp-idf!15733
2022-08-12 12:52:18 +08:00
weitianhua
d264f30e76 component_bt: Fix build doc errors of bt
1. bluedroid: use standard function pointer define.
   2. blufi: Change ESP_BD_ADDR_LEN into ESP_BLUFI_BD_ADDR_LEN
   3. doc/sphinx_known_warnings: Remove fixed parts.
2022-08-12 12:11:54 +08:00
xiongweichao
460cfbd583 1. Wi-Fi: update tsf tick interval when lpclk is modified
2. Move register_lpclk_callback to coexistence
2022-08-11 20:21:59 +08:00
xiongweichao
cfc5576b0d Power Management: fix the issue of sleeping time error beacause external 32kHz xtal does not exist 2022-08-11 20:17:39 +08:00
xiongweichao
23e8e497da make bluetooth and wifi use the same low power clock 2022-08-11 20:17:39 +08:00
xiongweichao
12ca203856 ESP32C3:bluetooth support use main XTAL in light sleep mode 2022-08-11 20:17:39 +08:00
Jiang Jiang Jian
a0a0b2b4f7 Merge branch 'bugfix/fix_some_wifi_bugs_0805_v4.3' into 'release/v4.3'
fix some wifi bugs 0805 (backport v4.3)

See merge request espressif/esp-idf!19412
2022-08-11 20:07:31 +08:00
Jiang Jiang Jian
26707c3f3b Merge branch 'bugfix/mesh_bqb_test_issues_v4.3' into 'release/v4.3'
ble_mesh: stack: Fix mesh v1.0 BQB test issues(v4.3)

See merge request espressif/esp-idf!19503
2022-08-11 20:07:10 +08:00
Li Shuai
0d7b72e057 sleep: deep sleep does not need cpu and wifi/bt mac retention 2022-08-11 16:36:57 +08:00
wangmengyang
73cc09b118 components/bt: fixed the invalid workqueue number for BTU thread in Bluedroid
There should be only one workqueue for BTU task. The queue length for the second workqueue of BTU can be uninitialized and caused memory overflow and corruption.

Closes https://github.com/espressif/esp-idf/issues/9507
2022-08-11 16:18:12 +08:00
Jiang Jiang Jian
8ba4dd328a Merge branch 'bugfix/docs_update_deep_sleep_note_v4.3' into 'release/v4.3'
backport v4.3: add a note for deep sleep crc check

See merge request espressif/esp-idf!19422
2022-08-11 15:45:39 +08:00
wangjialiang
041784e653 ble_mesh: stack: Fix kr from non-primary subnet shouldn't ignore
For case MESH/NODE/KR/BV-02-C
2022-08-11 14:15:56 +08:00
wangjialiang
bfb5e06df4 ble_mesh: stack: Add a check if the appkey is bound to the model.
For case MESH/NODE/CFG/MP/BI-03-C
2022-08-11 14:15:51 +08:00
wangjialiang
2490d28cc6 ble_mesh: stack: the count_log field should be set to 0 when HBS is sent.
For MESH/NODE/CFG/HBS/BV-02-C
2022-08-11 14:15:46 +08:00
wangjialiang
17372e5b3d ble_mesh: stack: The Heartbeat Publication Period Log value can set to 0x11, range: [0, 0x11] 2022-08-11 14:15:40 +08:00
wangjialiang
7ce06c8c3b ble_mesh: stack: The value of expect_ack_for will be rewrited after send_pub_key().
For case MESH/PVNR/PROV/BV-04-C
2022-08-11 14:15:33 +08:00
wangjialiang
ff8588ec46 ble_mesh: stack: Fix ignore connectable PB-ADV PDU containing a Link Open message.
For case MESH/NODE/PBADV/BI-04-C
2022-08-11 14:15:18 +08:00
wangjialiang
a6e921684c ble_mesh: stack: Fix PB-GATT not check invalid link flag
For case MESH/NODE/PROV/BI-03-C
2022-08-11 14:15:12 +08:00
wangjialiang
529f49db5b ble_mesh: stack: Fix invalid provisioning pdu type check
For case MESH/NODE/PROV/BI-15-C
2022-08-11 14:15:06 +08:00
Jiang Jiang Jian
a253cf8118 Merge branch 'opt/bluedroid_adv_report_datapath_v4.3' into 'release/v4.3'
Bluetooth/Bluedroid: optimize BLE adv report datapath and adv report flow control mechanism(backport v4.3)

See merge request espressif/esp-idf!19383
2022-08-11 10:57:03 +08:00
Jiang Jiang Jian
7c64c12b74 Merge branch 'contrib/github_pr_9498_backport4_3' into 'release/v4.3'
Bluetooth/Bluedroid: fix member typo(backport v4.3)

See merge request espressif/esp-idf!19459
2022-08-11 10:53:34 +08:00
Island
ee973b0a2a Merge branch 'bugfix/friend_and_lpn_issues_v4.3' into 'release/v4.3'
ble_mesh: stack: Fix friend and lpn issues(v4.3)

See merge request espressif/esp-idf!19476
2022-08-10 13:50:44 +08:00
wangjialiang
41b4ead681 ble_mesh: stack: Fix add continuously secure update into friend queue.
For MESH/NODE/FRND/FN/BV-20-C
2022-08-09 21:49:36 +08:00
wangjialiang
71fc7b73f6 ble_mesh: stack: Fix friend relay lpn message when relay feature is disable
For MESH/NODE/FRND/FN/BV-23-C
2022-08-09 21:49:24 +08:00
linruihao
6ad7114a45 Fixed union member access typo
Closes https://github.com/espressif/esp-idf/pull/9498
2022-08-09 13:23:18 +08:00
tgotic
763f9c91a4 bt member typo
Terminate sec_event.cfm_req.bd_name string, not sec_event.pin_req.bd_name
2022-08-09 13:23:05 +08:00
Island
77adeb15c6 Merge branch 'bugfix/restore_missing_ble_mesh_videos_v4.3' into 'release/v4.3'
ble_mesh: doc: Restore missing ble mesh videos(v4.3)

See merge request espressif/esp-idf!19404
2022-08-08 17:12:07 +08:00
Li Shuai
2bf40e52c9 substract rtc_iram_seg memory region size from ESP_BOOTLOADER_RESERVE_RTC 2022-08-08 11:32:46 +08:00
Li Shuai
d0f8a7c2bf docs: add a note for deep sleep crc check 2022-08-08 11:17:56 +08:00
zhangyanjiao
3c59955135 update wifi lib:
1. Clear old keys before going for new connection
2. Fix deep sleep can't reconnect to ap when pmf enable
3. Fix some ap will ignore auth when rx deauth for some time
4. Support force ht40 for espnow & 80211_tx
5. WAPI: Key mgmt type compability issue
6. Update wifi header file
7. Fix espnow recv unencrypted packets issue
2022-08-05 16:20:48 +08:00
Kapil Gupta
487ef592a2 esp_wifi: Clear old keys before going for new connection 2022-08-05 15:35:44 +08:00
ChenJianxing
c8814343dc esp_wifi: add ht40 support for 80211_tx & espnow 2022-08-05 15:35:39 +08:00
zhangyanjiao
6648e0e541 modify API-reference using Sphinx directives 2022-08-05 15:16:27 +08:00
zhangyanjiao
13da594657 update wifi api docs 2022-08-05 15:13:36 +08:00
Jiang Jiang Jian
158d69cb51 Merge branch 'bugfix/default_ssid_not_set_v4.3' into 'release/v4.3'
esp_wifi: Fix for default ssid not set.(4.3)

See merge request espressif/esp-idf!18247
2022-08-05 12:10:48 +08:00
wangjialiang
bcf14175c4 ble_mesh: doc: Restore missing ble mesh videos 2022-08-05 11:55:22 +08:00
aditi_lonkar
9027fef06f esp_wifi: Fix for default ssid not set. 2022-08-04 16:27:55 +05:30
Karl Wang
7b3d4d5074 component/bt: use OSI utility "osi_event" for HCI downstream data processing 2022-08-04 14:27:34 +08:00
wangmengyang
6ffe0a5262 component/bt: consider to handle HCI LE Direct Advertising Report 2022-08-04 14:27:33 +08:00
Karl Wang
ca945e8211 component/bt: allocate and use one static buffer for HCI adv flow control command 2022-08-04 14:27:33 +08:00
wangmengyang
20705588b2 component/bt: use fixed_pkt_queue instead of fixed_queue for hci commands
some fixes after modifications:
  1. removed the use of waiting_command_t
  2. fix assert for HCI write_eir command
  3. fixed the crash upon handling command status event when trying to free to the HCI command buffer
  4. fixed the issue in transmitting HCI vendor specific commands
  5. fixed the lost command complete callbacks for HCI commands LE_RAND and LE_ENCRYPT
2022-08-04 14:27:32 +08:00
wangmengyang
dd02446224 component/bt: add a timer to monitor the adv flow control credits downwards procedure 2022-08-04 14:27:32 +08:00
wangmengyang
2da8b2c78b component/bt: fix adv report flow control logic, give ADV report credits every 10 packets 2022-08-04 14:27:32 +08:00
wangmengyang
64572b7ff2 component/bt: add simple ADV flow control mechanism -- drop the packets when the adv report queues are considered full 2022-08-04 14:27:31 +08:00
wangmengyang
e406be3cf4 component/bt: use the OSI utility "osi_event" to handle adv report in btc_layer 2022-08-04 14:27:31 +08:00
wangmengyang
f16e5df27f component/bt: use the OSI utility "pkt_queue" to store ADV report packet in btu layer
# Conflicts:
#	components/bt/host/bluedroid/hci/hci_hal_h4.c
2022-08-04 14:27:30 +08:00
wangmengyang
09a79cf90a component/bt: use the OSI utility "osi_event" for hci_hal_h4 upstream data packets handling 2022-08-04 14:27:30 +08:00
wangmengyang
622148d491 component/bt: use the OSI utility "osi_event" to handle A2DP source data Tx processing 2022-08-04 14:27:29 +08:00
wangmengyang
ed509a8d52 component/bt: use the OSI utility "osi_event" to handle A2DP sink data Rx processing 2022-08-04 14:27:26 +08:00
wangmengyang
fb01677372 component/bt: add new OSI utility "fixed_pkt_queue", which has same functionality with "fixed_queue" 2022-08-04 14:25:03 +08:00
Karl Wang
3c14e739f0 component/bt: add new OSI utility "pkt_queue" which acts as a mutex-protected linked list, to be used as data queue between tasks 2022-08-04 14:25:03 +08:00
wangmengyang
0f4c9a47f1 component/bt: add new OSI utility "osi_event" to support the scenario that event need only to be handle once. 2022-08-04 14:25:02 +08:00
wangmengyang
26d2011442 component/bt: make OSI thread workqueue length configurable through API
reduce the length of workqueue1 for BTC and HCI task

# Conflicts:
#	components/bt/common/osi/thread.c
2022-08-04 14:25:02 +08:00
wangmengyang
b1cded8e48 component/bt: modify the implementation of osi_thread using freeRTOS queue 2022-08-04 14:25:01 +08:00
Jiang Jiang Jian
bfb2fee42a Merge branch 'bugfix/wlan_fixes_backports_v4.3' into 'release/v4.3'
esp_wifi: Fix some wlan issues(backport v4.3)

See merge request espressif/esp-idf!19359
2022-08-03 21:16:39 +08:00
Kapil Gupta
dc386c71b1 wpa_supplicant: Unicast key renew in TKIP mic failure
Currently we always request group key renew for during
TKIP mic failure. Add support for unicast/multicast
key renew as per packet.
2022-08-03 14:55:56 +05:30
Kapil Gupta
77661ba436 esp_wifi: Add APIs to check BTM and RRM support of connected AP 2022-08-03 11:35:44 +05:30
Kapil Gupta
3e789d4ed4 esp_wifi: Changes to not use pmkid caching when SSID is changed 2022-08-03 11:26:40 +05:30
Kapil Gupta
eb448172e9 wpa_supplicant: Fix issues reported by coverity 2022-08-03 11:26:31 +05:30
Jiang Jiang Jian
7b10f3264a Merge branch 'bugfix/fix_esptouch_v2_found_none_issue_v4.3' into 'release/v4.3'
esp_wifi: fix the bug that check whether bssid is zero mac(Backport v4.3)

See merge request espressif/esp-idf!19281
2022-08-03 13:17:00 +08:00
Jiang Jiang Jian
5b2444695c Merge branch 'bugfix/corrected_typo_in_example_peripherals_usb_v4.3' into 'release/v4.3'
example: peripherals/usb: fix typo naming of local variables (backport v4.3)

See merge request espressif/esp-idf!19101
2022-08-03 11:33:38 +08:00
Jiang Jiang Jian
d8a6f77da8 Merge branch 'bugfix/fix_write_to_null_pointer_if_malloc_failed_issue_v4.3' into 'release/v4.3'
Bugfix/fix write to null pointer if malloc failed issue(Backport v4.3)

See merge request espressif/esp-idf!19351
2022-08-03 10:59:36 +08:00
Oleg Savchenko
829a81b37f fix possible memory leak if report level not set 2022-08-02 20:39:01 +08:00
Oleg Savchenko
d2397d42ca fix write to null pointer if malloc failed 2022-08-02 20:38:51 +08:00
Ivan Grokhotkov
7d383bb5fb Merge branch 'bugfix/systimer_counter_value_bit_field_v4.3' into 'release/v4.3'
HAL: Fix systimer counter value bit field (v4.3)

See merge request espressif/esp-idf!18253
2022-08-02 16:48:29 +08:00
Jiang Jiang Jian
5eb176082d Merge branch 'bugfix/memory_debug_not_work_v4.3' into 'release/v4.3'
bugfix/fix the dependency error of macro for memory debug (v4.3)

See merge request espressif/esp-idf!19236
2022-08-02 15:50:06 +08:00
Jiang Jiang Jian
658b4026c9 Merge branch 'bugfix/fix_legacy_pair_not_send_link_key_host_v4.3' into 'release/v4.3'
component_bt: fix legacy pair controller does not send the link key to the host (v4.3)

See merge request espressif/esp-idf!19321
2022-08-02 14:41:24 +08:00
Jiang Jiang Jian
3f88df5046 Merge branch 'bugfix/put_sempher_and_queue_used_in_isr_into_DRAM_v4.3' into 'release/v4.3'
Make sure semphr/queue used in interrupt is in DRAM

See merge request espressif/esp-idf!18989
2022-08-02 11:32:05 +08:00
Jiang Jiang Jian
588e9801a3 Merge branch 'bugfix/fix_ble_ke_mem_c_assert_on_c3_s3_v4.3' into 'release/v4.3'
Fixed BLE ke_mem.c assert on ESP32C3 for v4.3

See merge request espressif/esp-idf!18900
2022-08-01 21:10:59 +08:00
xiongweichao
c6671788d2 fix legacy pair controller does not send the link key to the host
Closes https://github.com/espressif/esp-idf/issues/5850
2022-08-01 20:31:26 +08:00
Jiang Jiang Jian
69cc5c677d Merge branch 'fix/set_idf_component_manager_default_to_zero' into 'release/v4.3'
fix: set IDF_COMPONENT_MANAGER property to 0 as default

See merge request espressif/esp-idf!19309
2022-08-01 19:56:07 +08:00
Jiang Jiang Jian
896090ce12 Merge branch 'bugfix/fix_bluedroid_host_memory_overflow_v4.3' into 'release/v4.3'
Fixed bluedroid host memory overflow for v4.3

See merge request espressif/esp-idf!18904
2022-08-01 19:41:29 +08:00
Jiang Jiang Jian
69ac4dd716 Merge branch 'bugfix/qatest_spp_crash_v4.3' into 'release/v4.3'
bugfix/qatest spp crash (v4.3)

See merge request espressif/esp-idf!19239
2022-08-01 19:41:09 +08:00
Michael (XIAO Xufeng)
3a88cf8b49 Merge branch 'bugfix/reserve_dma_ram_in_segments_v4.3' into 'release/v4.3'
psram: reserve dma pool in the step of heap max block (v4.3)

See merge request espressif/esp-idf!18859
2022-08-01 17:14:39 +08:00
Fu Hanxi
da2e62270b fix: set IDF_COMPONENT_MANAGER property to 0 as default 2022-08-01 11:10:32 +08:00
David Čermák
224730ec25 Merge branch 'examples/tls_removed_deprecated_version' into 'release/v4.3'
test_apps: Removed verification of TLS v1.1 (v4.3)

See merge request espressif/esp-idf!19180
2022-07-29 13:46:50 +08:00
Jiang Jiang Jian
6c38c6b176 Merge branch 'bugfix/add_multiple_scan_mode_v4.3' into 'release/v4.3'
Bugfix: Connect example to add scan mode config

See merge request espressif/esp-idf!19124
2022-07-29 10:58:32 +08:00
muhaidong
eed82f378e esp_wifi: fix the bug that check whether bssid is zero mac 2022-07-28 21:53:30 +08:00
Jiang Jiang Jian
11508b6fbe Merge branch 'bufix/Backport_some_wifi_lwip_bugs_for_4.3_0719' into 'release/v4.3'
Backport some wifi&lwip bugs for 4.3 0719

See merge request espressif/esp-idf!19110
2022-07-28 16:03:49 +08:00
wanlei
846b51fe15 param: fixed heap pool reservation for DMA/internal usage fail issue
As heap block may be allocated into multiple non-continuous chunks, to
reserve enough memory for dma/internal usage, we do the malloc in the
step of max available block.
2022-07-28 10:15:53 +08:00
jincheng
af5b3e600e 1. add protect for bt_util_buf_env buffers when multi-access
2. ignore assert_err in em_bt_clkoff1_setf
2022-07-27 18:02:54 +08:00
gabsuren
7fd218dfa1 test_apps: tls removed version 1_1 2022-07-27 12:42:02 +04:00
Mahavir Jain
949a6a8d3f Merge branch 'bugfix/freertos_event_group_unblock_race_condition_v4.3' into 'release/v4.3'
FreeRTOS: Fix event group task list race condition (v4.3)

See merge request espressif/esp-idf!19104
2022-07-27 12:25:39 +08:00
xueyunfei
e7e962b8d0 lwip:add function for deinit lwip timers 2022-07-26 09:55:39 +00:00
xueyunfei
bc61578d68 esp_wifi: backport some wifi fix
1 Bugfix for wrong config of static txbuf

     2 fix bug that qos data will update BA SSN

     3 reset beacon timeout timer

     4 Bugfix for close sniffer mode when wifi stop

     5 update wifi header files
2022-07-26 09:55:39 +00:00
xueyunfei
61b1b2ac12 Icmp: get tos parameter in icmp reply
bugfix for add ttl for ping socket
2022-07-26 09:55:39 +00:00
Jeff H
55e69bf9cb add option to route LWIP logs through ESP_LOG interface
Signed-off-by: xueyunfei <xueyunfei@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/8785
Closes https://github.com/espressif/esp-idf/issues/8361
2022-07-26 09:55:39 +00:00
xueyunfei
563639ba01 udp example:Optimization udp example with recv_msg 2022-07-26 09:55:39 +00:00
xueyunfei
18ee6fdbd4 wifi example:optimization example of wifi station 2022-07-26 09:55:39 +00:00
Jessy Chen
63cb1da0b6 esp_wifi: update esp_wifi_internal_set_fix_rate usage 2022-07-26 09:55:39 +00:00
Jessy Chen
6e84f737a9 esp_wifi: update noise floor unit 2022-07-26 09:55:39 +00:00
Jack Farley
aa13b48819 DOC:Correct IP_EVENT_STA_LOST_IP name
Fix the name of the IP_EVENT_STA_LOST_IP event (was IP_STA_LOST_IP)

Signed-off-by: xueyunfei <xueyunfei@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/8347
2022-07-26 09:55:39 +00:00
xueyunfei
5b614cd3e4 Doc:update wifi api docs
* Add documents related to espnow config rate

* Optimization set dns server api description
2022-07-26 09:55:39 +00:00
daiziyan
767088d877 docs: fix the format for DPP 2022-07-26 09:55:39 +00:00
David Čermák
96bd791c74 Merge branch 'bugfix/set_ipv6_dns_error_v4.3' into 'release/v4.3'
lw ip: Fixed that ipv6 dns cannot work (v4.3)

See merge request espressif/esp-idf!19063
2022-07-25 22:44:38 +08:00
baohongde
8ac667b763 components/coex: Make sure sempher and queue used in isr is in DRAM
Closes https://github.com/espressif/esp-idf/issues/9032
Closes https://github.com/espressif/esp-idf/issues/8928
Closes https://github.com/espressif/esp-idf/issues/9129
2022-07-25 11:37:06 +08:00
baohongde
f85c30a73c components/bt: Make sure sempher and queue used in isr is in DRAM 2022-07-25 11:35:44 +08:00
Darian Leung
bfb4a0c9df freertos: Fix flakey event group unit test
The "FreeRTOS Event Groups" main task will only wait a single tick for the created
tasks to set their response bits. This short delay may not be sufficent if the tick
frequency is high.

This commit updates the test so that

- the main task waits indefinitely for all the response bits to be set.
- created tasks are cleaned up by the main task
2022-07-25 03:01:16 +00:00
Darian Leung
ad39eaaeb0 freertos: Fix event group task list race condition
FreeRTOS synchronization primitives (e.g., queues, eventgroups) use various event lists (i.e., task lists) to track what
tasks are blocked on a current primitive. Usually these event lists are accessed via one of the event lists functions
(such as vTask[PlaceOn|RemoveFrom]UnorderedEventList()), which in turn ensure that the global task list spinlock
(xTaskQueueMutex) is taken when accessing these lists.

However, some functions in event_groups.c manually traverse their event lists. Thus if a tick interrupt occurs on
another core during traversal and that tick interrupt unblocks a task on the event list being traversed, the event list
will be corrupted.

This commit modifies the following event_groups.c functions so that they take the global task list lock before
traversing their event list.

- xEventGroupSetBits()
- vEventGroupDelete()
2022-07-25 03:01:16 +00:00
Darian Leung
22d052fe7a hal: Fix systimer counter value bit field
This commit fixes the systimer_counter_value_t by adding a resreved field so that the
type fills 64-bits.

Without the reserved field, when compiling with -O0 optimization, the unoccupied high
bits would not be initalized by the compiler, leading to systimer_hal_get_counter_value()
returning a garbage value.
2022-07-24 16:34:24 +08:00
Mahavir Jain
cd9541fdb4 Merge branch 'bugfix/fix_esp32_ci_v4.3' into 'release/v4.3'
unit_test: power on wifi or bt domain before phy enable(v4.3)

See merge request espressif/esp-idf!19176
2022-07-23 03:13:40 +08:00
Jiang Jiang Jian
561218ab8a Merge branch 'bugfix/schm_process_in_active_crash_v4.3' into 'release/v4.3'
Coex: fixed crash when calculating end transfer time(v4.3)

See merge request espressif/esp-idf!19190
2022-07-22 21:24:24 +08:00
jincheng
e20fd0b4f1 fix the dependency error of macro for memory debug 2022-07-22 16:17:53 +08:00
xiongweichao
178e97b152 coex: fixed crash when calculating end transfer time 2022-07-22 16:11:27 +08:00
zwj
0a2d924a19 Update ble lib:
Fixed BLE ke_mem.c assert
Fixed adv report duplicate check
2022-07-22 07:44:46 +00:00
Jiang Jiang Jian
cbeb9ae14b Merge branch 'bugfix/phy_init_failed_when_wifi_deinit_4.3' into 'release/v4.3'
esp_wifi:bugfix for phy init failed when wifi deinit(4.3)

See merge request espressif/esp-idf!19138
2022-07-22 12:01:06 +08:00
Jiang Jiang Jian
182af34da8 Merge branch 'bugfix/uart_isr_followup_v4.3' into 'release/v4.3'
UART: Fix custom ISR registration function (backport v4.3)

See merge request espressif/esp-idf!19053
2022-07-22 11:58:05 +08:00
Jiang Jiang Jian
f412bb1701 Merge branch 'bugfix/wifi_condition_linker_mapping_v4.3' into 'release/v4.3'
esp_wifi: Fix linking of WiFi functions dependent on PM_ENABLE (v4.3)

See merge request espressif/esp-idf!18799
2022-07-22 11:57:42 +08:00
Jiang Jiang Jian
c4aa7e2ebf Merge branch 'feat/make_property_idf_component_manager_root_level' into 'release/v4.3'
Feat/make property idf component manager root level

See merge request espressif/esp-idf!18707
2022-07-22 11:57:20 +08:00
chenjianxing
927b402153 unit_test: power on wifi or bt domain before phy enable 2022-07-22 10:28:32 +08:00
zhiweijian@espressif.com
197371d085 Fixed bluedroid host memory overflow 2022-07-20 09:12:46 +00:00
xueyunfei
78ba8d406d bugfix for phy init failed when wifi deinit 2022-07-20 15:17:26 +08:00
c846ed9a58 Init phy data to default if invalid in flash partition to avoid bootloops
Signed-off-by: ronghulin <ronghulin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6610
2022-07-19 18:49:29 +08:00
ronghulin
a70b8e0fb8 Bugfix: Connect example to add scan mode config
Closes https://github.com/espressif/esp-idf/issues/6595
2022-07-19 15:43:35 +08:00
Darian Leung
823e1da543 wifi: Fix linking of WiFi functions dependent on PM_ENABLE
The following functions are only defined when CONFIG_PM_ENABLE is defined:

- wifi_apb80m_request()
- wifi_apb80m_release()

This commit makes their linker script mapping statements also dependent on CONFIG_PM_ENABLE
thus fixing some linker errors when CONFIG_PM_ENABLE is disabled.
2022-07-19 12:41:58 +08:00
jiangguangming
a7ce9ba63c example: peripherals/usb: fix typo naming of local variables 2022-07-19 11:05:40 +08:00
Mahavir Jain
af928313ab Merge branch 'update_v4.3/mbedtls_v2.28.1' into 'release/v4.3'
mbedtls: Update to release v2.28.1 (v4.3)

See merge request espressif/esp-idf!19042
2022-07-18 18:49:01 +08:00
Fu Hanxi
19ad4a8d51 ci: pip install idf-component-manager inside CI 2022-07-18 13:21:55 +08:00
Sergei Silnov
aa2300c002 docs: Add IDF_COMPONENT_MANAGER build property 2022-07-18 13:21:41 +08:00
Sergei Silnov
38aecb227e docs: Enable the component manager by default in CMake 2022-07-18 13:21:41 +08:00
Fu Hanxi
12180aabfa build&config: lift property IDF_COMPONENT_MANAGER to root level 2022-07-18 13:21:41 +08:00
Anton Maklakov
4f9f78da71 Merge branch 'bugfix/mqtt_read_neg_and_ping_v4.3' into 'release/v4.3'
mqtt: Fix incorrect reads on error (v4.3)

See merge request espressif/esp-idf!18178
2022-07-16 04:43:48 +08:00
Chen Wu
ffc7057ae4 lwip: Fixed that ipv6 dns cannot work 2022-07-15 16:18:15 +08:00
David Cermak
0ab0ca5410 mqtt: Fix incorrect reads on error (idf_v4.x)
* Update submodule: git log --oneline 985078affa8a2d2b56b87c8e6455252850f895c6..27eb4726067465c5c67d4ecdca5ddccd26f02580

Detailed description of the changes:
* MQTT: Fix signature matching for integer values (Backport to idf_v4.x)
  - See merge request espressif/esp-mqtt!133
  - Closes https://github.com/espressif/esp-idf/issues/8482
  - MQTT: Fix signature matching for integer values (espressif/esp-mqtt@f162002)
* ci: Deploy idf_v4.x branch to GitHub (espressif/esp-mqtt@ee5ecad)
2022-07-15 06:16:40 +00:00
Jiang Jiang Jian
2c8420bbd5 Merge branch 'docs/update_wifi_multiple_antennas_doc_v4.3' into 'release/v4.3'
docs: update wifi multiple antennas docs (v4.3)

See merge request espressif/esp-idf!19047
2022-07-15 10:48:20 +08:00
Jiang Jiang Jian
99bfa32eb9 Merge branch 'bugfix/fix_blufi_example_softap_current_connection_equal_zero_issue_v4.3' into 'release/v4.3'
bluetooth: fix two blufi example bugs(Backport v4.3)

See merge request espressif/esp-idf!18771
2022-07-14 20:19:20 +08:00
Jiang Jiang Jian
432e6af7f6 Merge branch 'bugfix/reset_ble_hw_on_inititalization_v4.3' into 'release/v4.3'
[Bluetooth] reset Bluetooth hardware during controller inititalization on ESP32-C3(backport release/v4.3)

See merge request espressif/esp-idf!18965
2022-07-14 20:18:46 +08:00
Jiang Jiang Jian
60f585e4c6 Merge branch 'docs/update_wifi_beacon_timeout_doc_v4.3' into 'release/v4.3'
docs: update wifi beacon timeout docs (v4.3)

See merge request espressif/esp-idf!19045
2022-07-14 20:18:30 +08:00
Omar Chebib
9fa0c131a4 UART: Fix custom ISR registration function
* Closes https://github.com/espressif/esp-idf/issues/8491
2022-07-14 17:49:52 +08:00
Island
c21962ea45 Merge branch 'bugfix/print_ready_after_init_transaction_forv4.3' into 'release/v4.3'
ble_mesh:change the location of print ready(v4.3)

See merge request espressif/esp-idf!19029
2022-07-14 17:28:11 +08:00
Dai Zi Yan
18b41408fe Apply 1 suggestion(s) to 1 file(s) 2022-07-14 16:48:59 +08:00
Krzysztof Budzynski
153271c3f1 Apply 1 suggestion(s) to 1 file(s) 2022-07-14 16:48:59 +08:00
Marius Vikhammer
a7177bc695 Apply 2 suggestions by Marius Vikhammer 2022-07-14 16:48:44 +08:00
muhaidong
f5bf1b502e docs: update wifi multiple antennas docs 2022-07-14 16:48:29 +08:00
muhaidong
0ec51f96d6 docs: add WIFI_EVENT_STA_BEACON_TIMEOUT event docs. 2022-07-14 15:43:15 +08:00
muhaidong
9ab491d055 docs: update wifi beacon timeout docs 2022-07-14 15:43:15 +08:00
Laukik Hase
7008e36ccb mbedtls: Update to release v2.28.1
- Changelog: https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.1
2022-07-14 10:08:45 +05:30
Yuan Hong Hui
ff77e2fa69 ble_mesh:change the location of print ready 2022-07-13 18:08:47 +08:00
muhaidong
1fce807796 bluetooth: fix two blufi example bugs
1. Softap mode do not assign ip issue
2. Softap current connection always show 0
2022-07-13 17:48:03 +08:00
wangmengyang
a471f1e18e fix licence copyright for header file syscon_reg.h on ESP32C3 and ESP32S3
# Conflicts:
#	components/soc/esp32s3/include/soc/syscon_reg.h
2022-07-13 17:35:27 +08:00
wangmengyang
580b57c8b1 component/bt: reset Bluetooth hardware during controller inititalization on ESP32-C3
1. Rename MACROs SYSTEM_WIFI_RST_EN register bit fields to be more recognizable
2. reset Bluetooth baseband and MAC bits to fix the issue of task watchdog triggered during controller initialization due to invalid hardware state
2022-07-13 17:35:22 +08:00
Jiang Jiang Jian
0dd9e338de Merge branch 'bugfix/fix_esp32_ke_mem_c_assert_v4.3' into 'release/v4.3'
fix esp32 BLE ke_mem.c assert for v4.3

See merge request espressif/esp-idf!19002
2022-07-13 15:40:34 +08:00
zwj
8769f62c3b fix esp32 BLE ke_mem.c assert 2022-07-13 03:08:36 +00:00
Jiang Jiang Jian
0326e5874f Merge branch 'bugfix/esp32s2_startup_garbled_output_v4.3' into 'release/v4.3'
esp_system: fix garbled UART output on startup on esp32s2 (v4.3)

See merge request espressif/esp-idf!18751
2022-07-13 11:01:33 +08:00
Jiang Jiang Jian
0df62cf49a Merge branch 'bugfix/ble_50_sync_periodic_adv_lost_data_v4.3' into 'release/v4.3'
components/bt: Fix ble sync periodic adv report will lost data(backport  release/v4.3)

See merge request espressif/esp-idf!18959
2022-07-13 11:01:05 +08:00
Jiang Jiang Jian
47c20c4294 Merge branch 'bugfix/wifi_sta_and_ble_disconnect_BCI-303_v4.3' into 'release/v4.3'
component_bt: Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected(v4.3)

See merge request espressif/esp-idf!19001
2022-07-13 11:00:23 +08:00
Ivan Grokhotkov
971e3b139b Merge branch 'bugfix/fix_docker_image_build_v4.3' into 'release/v4.3'
ci: Don't build docker image for linux-arm64

See merge request espressif/esp-idf!19013
2022-07-12 22:20:06 +08:00
Jiang Jiang Jian
d6a422b0a6 Merge branch 'bugfix/correct_blecmd_for_rf_path_v4.3' into 'release/v4.3'
Bluedroid: Fixed compilation error due to incorrect macro name (v4.3)

See merge request espressif/esp-idf!18995
2022-07-12 20:37:05 +08:00
Krzysztof Budzynski
923ab8aa06 Merge branch 'docs/404_tips_backport_v4.3' into 'release/v4.3'
docs: update 404.rst (backport v4.3)

See merge request espressif/esp-idf!18974
2022-07-12 19:53:07 +08:00
Sergei Silnov
9600ba2e7e tools: Don't build docker image for linux-arm64 2022-07-12 13:16:29 +02:00
Jiang Jiang Jian
79765d12df Merge branch 'bugfix/wifi_bt_power_domain_leakage_current_v4.3' into 'release/v4.3'
Bugfix/wifi bt power domain leakage current v4.3

See merge request espressif/esp-idf!18901
2022-07-12 15:45:07 +08:00
xiongweichao
5cf696a714 Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected 2022-07-12 14:44:46 +08:00
Jiang Jiang Jian
b6af8e08e8 Merge branch 'bugfix/s3_wakeup_light_sleep_rtc_wdt_timeout_v4.3' into 'release/v4.3'
component_bt: Fixed rtc watchdog timeout when waking up light sleep due to some functions not in IRAM(v4.3)

See merge request espressif/esp-idf!18873
2022-07-12 12:18:34 +08:00
Rahul Tank
e28ec880a3 Bluedroid: Fixed compilation error due to incorrect macro name 2022-07-12 09:44:23 +05:30
Jiang Jiang Jian
4e5162dd5c Merge branch 'bugfix/update_gpio_intr_enable_note_v4.3' into 'release/v4.3'
Update the note of the gpio_intr_enable function(v4.3)

See merge request espressif/esp-idf!18543
2022-07-12 12:00:09 +08:00
Jiang Jiang Jian
890e29fcac Merge branch 'bugfix/no_proxy_beacon_send_after_deinit_v4.3' into 'release/v4.3'
ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh(v4.3)

See merge request espressif/esp-idf!18792
2022-07-12 10:42:22 +08:00
Jiang Jiang Jian
8d9b493120 Merge branch 'bugfix/enterprise_certs_ca_expired_v4.3' into 'release/v4.3'
esp_wifi: Fix issue of ca certificate expired.

See merge request espressif/esp-idf!18521
2022-07-12 10:37:57 +08:00
Jiang Jiang Jian
e66df0492e Merge branch 'bugfix/fix_ble_ext_adv_parameter_detection_v4.3' into 'release/v4.3'
component/bt: check the ble ext adv parameters (backport release/v4.3)

See merge request espressif/esp-idf!18490
2022-07-12 10:35:09 +08:00
Jiang Jiang Jian
fc14448654 Merge branch 'doc/ble_deinit_v4.3' into 'release/v4.3'
doc(bt): Add description for de-initialize bt controller(backport release/v4.3)

See merge request espressif/esp-idf!18929
2022-07-12 10:34:53 +08:00
baohongde
7580de6be1 components/bt: Fix the issue caused by the power off the bt power domain 2022-07-11 21:16:42 +08:00
Li Shuai
3cfda14ed4 fix the wifi scan fail issue caused by the power off the wifi power domain 2022-07-11 21:16:42 +08:00
Li Shuai
94d1a1847e ci: replace old header with new SPDX header style 2022-07-11 21:15:16 +08:00
Li Shuai
30b32fa45e esp_hw_support: force power down wifi and bt power domain when rtc module init 2022-07-11 21:15:16 +08:00
baohongde
7f543bb3b4 Power Management: Initialize backup memory for MAC and Baseband power up/down 2022-07-11 21:15:16 +08:00
baohongde
1e7bc626ee Power Management: power up/down BT power domain when BT init/deinit 2022-07-11 21:15:16 +08:00
Li Shuai
a66b5bbda2 Power Management: power up or down wifi power domain when wifi init or deinit 2022-07-11 21:15:16 +08:00
Anton Maklakov
e9514be5f8 Merge branch 'fix/tls-size-esp32c2_esp32c3_esp32h2_v4.3' into 'release/v4.3'
esp_system: Fix esp32c2/esp32c3/esp32h2 TLS size (v4.3)

See merge request espressif/esp-idf!18828
2022-07-11 18:44:45 +08:00
xiewenxiang
730094a3ef components/bt: Fix ble sync periodic adv report lost data issue 2022-07-11 16:49:26 +08:00
Jiang Jiang Jian
1970d887a3 Merge branch 'bugfix/do_not_allow_unauthenticated_encrypted_key_data_release_v4.3' into 'release/v4.3'
esp_wifi: Ignore unauthenticated encrypted EAPOL-Key data and fix

See merge request espressif/esp-idf!18315
2022-07-11 16:33:30 +08:00
wangziyan
ec9e44610e docs: update 404.rst 2022-07-11 15:56:08 +08:00
Wang Meng Yang
500df7bc1f Merge branch 'bugfix/fix_osi_men_dbg_xxx_not_defined_when_enable_mem_dbg_v4.3' into 'release/v4.3'
bugfix/fix the issue of functions not defined when enable memory debug (v4.3)

See merge request espressif/esp-idf!18816
2022-07-11 15:37:43 +08:00
Jiang Jiang Jian
8225ffcda3 Merge branch 'bugfix/install_key_refactor_v4.3' into 'release/v4.3'
esp_wifi: Refactor key install code(v4.3)

See merge request espressif/esp-idf!18599
2022-07-11 11:28:28 +08:00
xiongweichao
5cc8262a09 Update the note of the gpio_intr_enable function 2022-07-11 02:45:01 +00:00
xiewenxiang
98245dabe0 component/bt: check the ble ext adv parameters 2022-07-11 02:44:30 +00:00
aditi_lonkar
f2e96e85ff esp_wifi: Fix issue of ca certificate expired. 2022-07-11 02:42:38 +00:00
Ivan Grokhotkov
95dbc746ed esp_system: fix garbled UART output on startup on esp32s2
Closes https://github.com/espressif/esp-idf/issues/9168
2022-07-11 02:41:46 +00:00
Hrudaynath Dhabe
7af06705d3 esp_wifi: Ignore unauthenticated encrypted EAPOL-Key data and fix handling of key RSC.
Closes https://github.com/espressif/esp-idf/issues/8401
2022-07-10 08:00:24 +00:00
Jiang Jiang Jian
a015532f66 Merge branch 'bugfix/mbedtls_free_keypair_v4.3' into 'release/v4.3'
Nimble: Fixed memory leak while generating keypair using embedtls v4.3

See merge request espressif/esp-idf!18719
2022-07-10 15:51:44 +08:00
Jiang Jiang Jian
5fe6852ed9 Merge branch 'bugfix/restore_edr_en_and_protect_for_vhci_env_v4.3' into 'release/v4.3'
bugfix/restore edr_en and add protect for vhci_env (v4.3)

See merge request espressif/esp-idf!18812
2022-07-10 15:49:48 +08:00
Jiang Jiang Jian
36875e1b78 Merge branch 'bugfix/lower_a2dp_appT_prio_v4.3' into 'release/v4.3'
bugfix/lower the priority of application task of a2dp demo (v4.3)

See merge request espressif/esp-idf!18820
2022-07-10 15:48:15 +08:00
Jiang Jiang Jian
aa81cebd82 Merge branch 'bugfix/resolve_redefinition_in_spp_and_hid_v4.3' into 'release/v4.3'
bugfix/resolve redefinition in btc_spp.h and btc_hd.h/btc_hh.h (v4.3)

See merge request espressif/esp-idf!18825
2022-07-10 15:47:16 +08:00
Jiang Jiang Jian
802c93b5f1 Merge branch 'bugfix/xtensa_sol_frame_saves_extra_registers_v4.3' into 'release/v4.3'
freertos: Xtensa solicited stack frame should save threadptr register (v4.3)

See merge request espressif/esp-idf!18854
2022-07-10 15:45:16 +08:00
Jiang Jiang Jian
09b05350b3 Merge branch 'bugfix/main_task_on_cpu1_startup_failure_v4.3' into 'release/v4.3'
freertos: Fix issue with bootup failure in ESP_MAIN_TASK_AFFINITY_CPU1 config (v4.3)

See merge request espressif/esp-idf!18936
2022-07-10 15:41:46 +08:00
Jiang Jiang Jian
0c6e436e15 Merge branch 'docs/update_wifi_csi_sub_carrier_index_doc_v4.3' into 'release/v4.3'
docs:update wifi sci subcarrier index docs (v4.3)

See merge request espressif/esp-idf!18942
2022-07-10 15:39:57 +08:00
Jiang Jiang Jian
d5728c4583 Merge branch 'bugfix/not_use_malloc_in_bluedroid_v4.3' into 'release/v4.3'
component/bt: use osi_malloc instead of malloc in bluedroid

See merge request espressif/esp-idf!18844
2022-07-08 16:48:30 +08:00
Jiang Jiang Jian
e268aec85c Merge branch 'bugfix/fix_some_memory_leak_in_phy_v4.3' into 'release/v4.3'
fix the bug that some memory leaked in phy after wifi/ble deinit

See merge request espressif/esp-idf!18550
2022-07-08 16:46:16 +08:00
muhaidong
44ef1f070e docs: modify some Chinese expressions related to CSI 2022-07-08 15:01:48 +08:00
muhaidong
b142e78363 docs:update wifi sci subcarrier index docs 2022-07-08 14:44:33 +08:00
jincheng
4e7b2fedcd resolve redefinition in btc_spp.h and btc_hd.h/btc_hh.h
Closes https://github.com/espressif/esp-idf/issues/9199
2022-07-08 14:25:55 +08:00
jincheng
21888edbf3 restore edr_en which wrongly cleared by rsw
add critical protection for vhci_env_p->vhci_intr_st
ignore max_page when handle remote features
2022-07-08 14:11:46 +08:00
jincheng
dca3686f0a lower the priority of application task of a2dp demo 2022-07-08 13:08:23 +08:00
Mahavir Jain
35f8df3995 freertos: Fix issue with bootup failure in ESP_MAIN_TASK_AFFINITY_CPU1 config
Idle tick hook that indicates completion of scheduler init must be launched
on other core than the one where main task runs. Earlier it was assumed that
main task shall always run on PRO cpu but that behavior can be changed with
ESP_MAIN_TASK_AFFINITY_CPU1 and hence this fix.

Closes https://github.com/espressif/esp-idf/issues/9247
Closes IDFGH-7705
2022-07-08 08:37:28 +05:30
xiewenxiang
ac3fbccbe1 doc(bt): Add description for de-initialize bt controller 2022-07-08 11:03:16 +08:00
jincheng
5050625f9e fix the issue of functions not defined when enable memory debug 2022-07-08 11:02:04 +08:00
Mahavir Jain
9bbe2fc041 Merge branch 'bugfix/efuse_esp_efuse_utility_burn_efuses' into 'release/v4.3'
efuse: Fix burn operation when data was written directly to regs

See merge request espressif/esp-idf!18886
2022-07-07 21:12:24 +08:00
Jack
937069dc6c esp_wifi: clear phy calibrated flag when phy pd memory deinit 2022-07-06 04:36:12 +00:00
Jack
9b0b046382 fix the bug that some memory leaked in phy after wifi/ble deinit 2022-07-06 04:36:12 +00:00
KonstantinKondrashov
7841054063 efuse: Fix burn operation when data was written directly to regs
Closes https://github.com/espressif/esp-idf/issues/9290
2022-07-05 17:37:48 +08:00
Rahul Tank
aedf00cd78 Nimble: Added check to free keypair if already allocated to avoid memory leak.
Added an API that allows to free keypair
2022-07-05 10:53:21 +05:30
gaoxu
7a2bad690b SPI:fix spi slave example sender ccount issue
On riscv core, core cycle counter counts the clock cycles only when core is active (not sleeping).
In spi_slave/sender example, it uses ccount (core cycle counter) to do a simple debounce.
Therefore, when using spi_slave/sender and spi_slave/receiver, program will be stuck.
This commit fix this issue by using esp_timer


(cherry picked from commit afe3bfe19f)
2022-07-05 11:45:47 +08:00
xiongweichao
24e47c1def Fix rtc watchdog timeout when waking up light sleep because some functions are not in IRAM 2022-07-05 11:16:19 +08:00
Darian Leung
5f50e835e6 freertos: Xtensa FreeRTOS saves threadptr in solicited stack frame
The Xtensa FreeRTOS port does not save the threadptr register when
doing a voluntary yield. This can result in a crash when multiple
tasks used the threadptr register and call "taskYIELD()".

This commit adds the threadptr register to the solicited stack frame.
2022-07-04 18:27:26 +08:00
baohongde
565142e60c component/bt: use osi_malloc instead of malloc in bluedroid 2022-07-04 16:17:51 +08:00
Alexey Lapshin
0f98788d59 esp_system: Fix esp32c2/esp32c3/esp32h2 TLS size
The change fixes thread-local-storage size by removing .srodata section
from it. It initially was included in TLS section by mistake.
The issue was found when stack size increased after building applications
with GCC-11.1 compiler. Stack size became bigger because some new data
appeared in .srodata. See more details here:
adce62f53d
2022-07-01 16:08:04 +04:00
wangjialiang
5747b35308 ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh 2022-07-01 11:43:48 +08:00
Jiang Jiang Jian
228cbc4dae Merge branch 'bugfix/sync_host_nocp_cmd_v4.3' into 'release/v4.3'
Nimble: Add support for sync for Host NOCP command .

See merge request espressif/esp-idf!18609
2022-06-30 15:55:08 +08:00
Jiang Jiang Jian
e313ab14ec Merge branch 'bugfix/a_small_fix_for_multi_heap_backport_v4.3' into 'release/v4.3'
Heap: fix param passed to assert_valid_block, should be block not ptr(backport v4.3)

See merge request espressif/esp-idf!18675
2022-06-29 14:06:36 +08:00
Jiang Jiang Jian
473f637ca2 Merge branch 'bugfix/a2dp_source_not_stop_discovery_correctly_v4.3' into 'release/v4.3'
bugfix/avoid wrongly restart discovery in a2dp_source (v4.3)

See merge request espressif/esp-idf!18711
2022-06-29 13:52:05 +08:00
Jiang Jiang Jian
e448ba32d6 Merge branch 'bugfix/app_trace_iram_v4.3' into 'release/v4.3'
apptrace: move all apptrace related functions to IRAM (v4.3)

See merge request espressif/esp-idf!18729
2022-06-29 13:50:21 +08:00
Marius Vikhammer
85511fcafb apptrace: move all apptrace related functions to IRAM
Closes: https://github.com/espressif/esp-idf/issues/9131
2022-06-29 10:21:32 +08:00
Roland Dobai
5f93e3c702 Merge branch 'tools/csv_handling_overhaul_v4.3' into 'release/v4.3'
tools: Overhaul csv handling for mfg_gen and nvs_partition_gen (v4.3)

See merge request espressif/esp-idf!18568
2022-06-28 23:30:22 +08:00
jincheng
464673fb10 avoid wrongly restart discovery 2022-06-28 13:05:13 +08:00
Djordje Nedic
dd10afb18d tools: overhaul csv handling for mfg_gen and nvs_partition_gen
This fixes the issue where multiline strings and strings with delimiters inside the nvs input csv file were incorrectly parsed, and adds back the ability to add comment lines anywhere in the CSV file.

The issue stems from the move away from the python built in csv module to manual parsing, which was made after moving away from using the csv module to parse mfg data.

This reverts back to using the csv module for parsing and writing csv data in both mfg_gen and nvs_partition_gen, fixes the original issue in mfg_gen and improves code quality which makes the code more readable and maintainable.

Closes https://github.com/espressif/esp-idf/issues/7175
2022-06-24 22:18:00 +02:00
Island
7988aec391 Merge branch 'feature/add_filter_seq_auth_config_v4.3' into 'release/v4.3'
ble_mesh: stack: Add filter old seq_auth packet menuconfig(v4.3)

See merge request espressif/esp-idf!18650
2022-06-24 11:15:45 +08:00
ioio
d762f2bd3f bugfix (nvs_flash): Fix nvs_flash_init_partition_ptr
Added unit test case.

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

Signed-off-by: Jakob Hasse <jakob.hasse@espressif.com>
2022-06-24 10:46:27 +08:00
jingli
b01797b87d fix param passed to assert_valid_block, should be block not ptr 2022-06-23 21:45:26 +08:00
Jiang Jiang Jian
b3f523b64b Merge branch 'feature/efuse_rst_is_treated_as_poweron_rst_v4.3' into 'release/v4.3'
reset_reasons: EFUSE_RST is treated as POWERON_RST + checks errors of eFuse BLOCK0 (v4.3)

See merge request espressif/esp-idf!14806
2022-06-23 17:06:27 +08:00
wangjialiang
dd72d309b6 ble_mesh: stack: Add filter old seq_auth packet menuconfig 2022-06-23 16:19:15 +08:00
David Čermák
c8882c2ba5 Merge branch 'bugfix/vfs_sock_select_race_v4.3' into 'release/v4.3'
vfs: Fix potential select() race if both sock and other-fd trigger (v4.3)

See merge request espressif/esp-idf!18176
2022-06-22 22:56:39 +08:00
KonstantinKondrashov
714bc66e0e efuse: Checks errors of 4x coding scheme for BLOCK0 if so then abort 2022-06-22 18:04:11 +08:00
KonstantinKondrashov
0a71dce1ef reset_reasons: EFUSE_RST is treated as POWERON_RST
ESP32 does not have the EFUSE_RST, the rest chips has this reset reason.
2022-06-22 17:56:32 +08:00
Mahavir Jain
0fc7bd6a37 Merge branch 'ci/fix_protobuf_error' into 'release/v4.3'
[ci] Fix protobuf-related error in assign_test stage

See merge request espressif/esp-idf!18570
2022-06-22 13:44:26 +08:00
morris
a1c4397ce2 Merge branch 'bugfix/cpu_cycle_count_not_iram_v4.3' into 'release/v4.3'
HAL: place cpu_ll_get_cycle_count in IRAM (v4.3)

See merge request espressif/esp-idf!18294
2022-06-22 11:42:27 +08:00
David Cermak
b972b442e0 vfs: Fix potential select() race if both sock and other-fd trigger
This fixes a potential race condition in select() if both a socket-fd
and non-socket fd trigger simultaneously to unblock this select.
In case of both fds, we use lwip's local thread semaphore, so we only
have to try return it (if it was taken/triggered more than once) when
we exit select().

Closes https://github.com/espressif/esp-idf/issues/8896
2022-06-21 16:39:58 +00:00
Jiang Jiang Jian
578146ad5d Merge branch 'bugfix/avdtp_genreal_reject_format_error_v4.3' into 'release/v4.3'
component_bt: Fix AVDTP general reject format error(v4.3)

See merge request espressif/esp-idf!18557
2022-06-21 20:54:45 +08:00
Jiang Jiang Jian
7855067dc3 Merge branch 'feature/update_hfp_ag_version_v4.3' into 'release/v4.3'
component_bt: update hfp_ag version to 1.7.2(v4.3)

See merge request espressif/esp-idf!18604
2022-06-21 19:41:11 +08:00
Rahul Tank
57fd6c0e69 Nimble: Add support for sync for Host NOCP command . 2022-06-21 16:41:52 +05:30
morris
b0b895cf00 Merge branch 'bugfix/rmt_register_file_v4.3' into 'release/v4.3'
rmt: fix error in rmt register file (v4.3)

See merge request espressif/esp-idf!18512
2022-06-21 17:45:50 +08:00
xiongweichao
e1120e2554 update hfp_ag version to 1.7.2 2022-06-21 14:46:49 +08:00
chenjianxing
b4d3ed9f10 esp_wifi: Refactor key install code 2022-06-21 11:23:46 +08:00
Jiang Jiang Jian
142d7d2bb2 Merge branch 'bugfix/adds_iram_attr_for_efuse_apis_v4.3' into 'release/v4.3'
bootloader_efuse: Adds IRAM_ATTR for efuse API (v4.3)

See merge request espressif/esp-idf!18562
2022-06-20 19:57:03 +08:00
Jiang Jiang Jian
fdc1aa147e Merge branch 'bugfix/light_sleep_when_rtc_is_used_for_gettimeofday_v4.3' into 'release/v4.3'
esp_hw_support: Fix time spent in light sleep when RTC is used for gettimeofday (v4.3)

See merge request espressif/esp-idf!18414
2022-06-19 23:17:43 +08:00
Jiang Jiang Jian
2e7cc4679d Merge branch 'feature/adds_check_32k_xtal_stopped_v4.3' into 'release/v4.3'
esp_hw_support: Adds a msg when 32k xtal was stopped (v4.3)

See merge request espressif/esp-idf!18412
2022-06-19 23:17:29 +08:00
Jiang Jiang Jian
79ae12203e Merge branch 'bugfix/ipc_blocking_v4.3' into 'release/v4.3'
esp_ipc: Fix a case when ipc_task() can wake up blocking task early (v4.3)

See merge request espressif/esp-idf!18416
2022-06-19 23:16:28 +08:00
morris
7c9e19b9bb rmt: fix error in rmt register file
Closes https://github.com/espressif/esp-idf/issues/9100
2022-06-18 13:51:53 +00:00
Laukik Hase
75073353ed ci: Fix protobuf-related error in assign_test stage 2022-06-17 15:37:49 +05:30
Mahavir Jain
d9610cfa0b Merge branch 'bugfix/esp_crt_bundle_build_issue_v4.3' into 'release/v4.3'
esp_crt_bundle: Fix build problems if MBEDTLS_CERTIFICATE_BUNDLE is disabled (v4.3)

See merge request espressif/esp-idf!18476
2022-06-17 14:15:44 +08:00
KonstantinKondrashov
a4a7f1d8b7 bootloader_efuse: Adds IRAM_ATTR for efuse API
Fixes startup of app for case:
bootloader with 40Mhz and app with 80Mhz (ESPTOOLPY_FLASHFREQ)

Closes https://github.com/espressif/esp-idf/issues/9156
2022-06-17 13:53:35 +08:00
xiongweichao
21fbc7355a Fix AVDTP general reject format error. 2022-06-17 10:21:10 +08:00
Jiang Jiang Jian
e2ebb90df3 Merge branch 'bugfix/eap_method_selection_release_v4.3' into 'release/v4.3'
esp_wifi: Fix the negotiation of method with eap server.

See merge request espressif/esp-idf!18508
2022-06-15 11:25:45 +08:00
Jiang Jiang Jian
a9432cd781 Merge branch 'bugfix/psram_startup_crash_v4.3' into 'release/v4.3'
psram: Fix startup crash when `CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0` (v4.3)

See merge request espressif/esp-idf!18501
2022-06-15 11:10:32 +08:00
Jiang Jiang Jian
319ba4419d Merge branch 'bugfix/uninitialized-element_v4.3' into 'release/v4.3'
component_bt:initialize all elements of esp_bt_controller_config_t(v4.3)

See merge request espressif/esp-idf!18405
2022-06-15 11:06:56 +08:00
Hrudaynath Dhabe
7ccd26eeaf esp_wifi: Fix the negotiation of method with eap server. 2022-06-14 12:34:18 +00:00
Laukik Hase
7c85d2c498 freertos: Indicate completed initialization for APP CPU with idle task hook
Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2022-06-14 14:25:59 +05:30
Jiang Jiang Jian
2a4321223f Merge branch 'feature/add_esp32c3_hci_uart_example_v4.3' into 'release/v4.3'
Bluetooth: add hci uart example to ESP32-C3

See merge request espressif/esp-idf!18481
2022-06-14 16:24:38 +08:00
xiongweichao
3a2f98613d modified README.md 2022-06-13 16:10:40 +08:00
xiongweichao
3b3f9c1f49 add nvs initialize 2022-06-13 15:56:44 +08:00
wangmengyang
1257bd453e example/controller_hci_uart_esp32c3: fixed the GPIO pin mask for input PINs of UART1 2022-06-13 15:56:44 +08:00
wangmengyang
9e96538a86 Added example(ESP32-C3), to use Bluetooth Controller through HCI UART transport 2022-06-13 15:56:44 +08:00
Mahavir Jain
9b593dcb67 test_apps: add build only test for !MBEDTLS_CERTIFICATE_BUNDLE 2022-06-13 11:49:04 +05:30
Mahavir Jain
2cfae63c2b examples: add dependency on cert bundle configuration
Refactor examples to build with MBEDTLS_CERTIFICATE_BUNDLE disabled. Only examples
that can work with certificate bundle disabled have been modified here.
2022-06-13 11:49:00 +05:30
Mahavir Jain
d8ffa6df04 esp_crt_bundle: Fix build problems if MBEDTLS_CERTIFICATE_BUNDLE is disabled
Exclude source and include file from build list if certificate bundle feature
is disabled.

Closes https://github.com/espressif/esp-idf/issues/8714
Closes IDFGH-7106
2022-06-13 11:24:00 +05:30
Mahavir Jain
4a85b2256c Merge branch 'bugfix/esp_http_client_test_v4.3' into 'release/v4.3'
esp_http_client example: Fix CI failures (v4.3)

See merge request espressif/esp-idf!18465
2022-06-12 12:11:38 +08:00
Shubham Kulkarni
fda52d581b esp_http_client example: Fix CI failures 2022-06-10 16:59:29 +05:30
morris
c40400af8b Merge branch 'bugfix/c3_efuse_fail_bits_v4.3' into 'release/v4.3'
soc: Fix efuse fail bits (v4.3)

See merge request espressif/esp-idf!18418
2022-06-10 17:06:50 +08:00
Jiang Jiang Jian
c501448c13 Merge branch 'bugfix/fixed-unsatisfiable-condition_v4.3' into 'release/v4.3'
Fixed comparison with ESP_MONITOR_DECODE (v4.3)

See merge request espressif/esp-idf!18335
2022-06-10 10:47:26 +08:00
KonstantinKondrashov
50606887b2 esp_hw_support: Fix time spent in light sleep when RTC is used for gettimeofday
The esp_timer was not advanced correctly.
2022-06-09 14:51:44 +00:00
KonstantinKondrashov
8d022df00c esp_hw_support: Adds a msg when 32k xtal was stopped 2022-06-09 22:48:53 +08:00
KonstantinKondrashov
ff4b6949cf esp_ipc: Fix a case when ipc_task() can wake up blocking task early
Closes https://github.com/espressif/esp-idf/issues/8559
2022-06-09 10:59:30 +00:00
KonstantinKondrashov
4e0e261f4e soc: Fix description of efuse fail bits 2022-06-09 10:35:25 +00:00
Jiang Jiang Jian
c65f973e64 Merge branch 'bugfix/mbedtls_dynamic_buffer_crash_on_ssl_server_v4.3' into 'release/v4.3'
fix(mbedtls): fix ssl server memory leak when enable mbedtls dynamic buffer (backport v4.3)

See merge request espressif/esp-idf!17876
2022-06-09 17:26:16 +08:00
Jiang Jiang Jian
5494b483af Merge branch 'bugfix/pm_enabled_bt_build_fail_v4.3' into 'release/v4.3'
Bluetooth build fail when power management is enabled(v4.3)

See merge request espressif/esp-idf!18382
2022-06-09 17:25:51 +08:00
Mahavir Jain
6524f136b9 Merge branch 'bugfix/mbedtls_dynamic_memory_crash_on_rsa_ciphers_v4.3' into 'release/v4.3'
mbedtls: fix ssl server crash when enable mbedtls dynamic buffer(backport v4.3)

See merge request espressif/esp-idf!18428
2022-06-09 16:25:58 +08:00
Mahavir Jain
562e94be9e Merge branch 'fix/menuconfig_option_esp_cryptoauthlib_v4.3' into 'release/v4.3'
esp_tls_mbedtls.c: Fix esp-idf integration of esp-cryptoauthlib (v4.3)

See merge request espressif/esp-idf!18401
2022-06-09 16:08:14 +08:00
Li Jingyi
24feccbd80 mbedtls: fix ssl server crash when enable mbedtls dynamic buffer
Not free keycert until MBEDTLS_SSL_CLIENT_KEY_EXCHANGE for rsa key exchange methods, because keycert will be used to parse client key exchange.
2022-06-09 04:37:35 +00:00
Mahavir Jain
49bfb8491f Merge branch 'bugfix/esp_http_client_example_v4.3' into 'release/v4.3'
esp_http_client example: Add cert for redirect to HTTPS example (v4.3)

See merge request espressif/esp-idf!18403
2022-06-09 12:35:48 +08:00
Jiang Jiang Jian
5be64c3111 Merge branch 'bugfix/backport_certificate_bundle_fixes_v4.3' into 'release/v4.3'
Certificate bundle fixes (v4.3)

See merge request espressif/esp-idf!18353
2022-06-09 11:13:41 +08:00
Jiang Jiang Jian
e04eaca191 Merge branch 'bugfix/enable_crt_bundle_v4.3' into 'release/v4.3'
esp_https_ota: Enable option of using global_ca_store and x509_crt_bundle

See merge request espressif/esp-idf!18344
2022-06-09 11:12:54 +08:00
Jiang Jiang Jian
64636e002c Merge branch 'bugfix/mkdfu_flash_parameters_v4.3' into 'release/v4.3'
mkdfu.py: Support setting flash parameters (backport v4.3)

See merge request espressif/esp-idf!18292
2022-06-09 11:12:28 +08:00
Jiang Jiang Jian
ae47e3f172 Merge branch 'bugfix/add_bda_to_read_rmt_name_param_v4.3' into 'release/v4.3'
Bugfix/add bda to read rmt name param v4.3

See merge request espressif/esp-idf!18281
2022-06-09 11:12:17 +08:00
Jiang Jiang Jian
b08c5b746d Merge branch 'bugfix/disable_extensions_idfpy_tests_v4.3' into 'release/v4.3'
Tools: Make idf.py tests independent on extra extensions (v4.3)

See merge request espressif/esp-idf!18278
2022-06-09 11:11:59 +08:00
Jiang Jiang Jian
947601a567 Merge branch 'fix/coap_client_example_v4.3' into 'release/v4.3'
Update the coap client example URL and README (v4.3)

See merge request espressif/esp-idf!18226
2022-06-09 11:11:26 +08:00
Jiang Jiang Jian
b1eb8ebe79 Merge branch 'bugfix/fix_cannot_lslp_again_after_ulp_wakeup_backport_v4.3' into 'release/v4.3'
sleep: ‎fix cannot lightsleep again after a wakeup from ULP(backport v4.3)

See merge request espressif/esp-idf!18217
2022-06-09 11:11:08 +08:00
Jiang Jiang Jian
1b40e6173e Merge branch 'bugfix/i2c_timeout_issue_v4.3' into 'release/v4.3'
I2C: patch for solving watchdog timeout issue(backport v4.3)

See merge request espressif/esp-idf!18132
2022-06-09 11:10:57 +08:00
Jiang Jiang Jian
fab70ef326 Merge branch 'bugfix/Fix_ios_ble_adv_rsp_v4.3' into 'release/v4.3'
Fix iOS advertisement response and simplify (v4.3)

See merge request espressif/esp-idf!18039
2022-06-09 11:10:12 +08:00
Jiang Jiang Jian
8a788526af Merge branch 'docs/update_cn_trans_partition-tables_4.3' into 'release/v4.3'
docs: Update cn trans for partition-tables.rst (v4.3)

See merge request espressif/esp-idf!18031
2022-06-09 11:09:51 +08:00
Jiang Jiang Jian
6bd2776a86 Merge branch 'feature/adds_efuses_to_table_v4.3' into 'release/v4.3'
efuse: Adds ERR_RST_ENABLE efuse for C3 (v4.3)

See merge request espressif/esp-idf!18420
2022-06-09 11:08:21 +08:00
KonstantinKondrashov
4a203de329 efuse: Adds ERR_RST_ENABLE efuse for C3 and S3
Closes https://github.com/espressif/esp-idf/issues/8357
2022-06-07 22:12:20 +08:00
xiongweichao
16e6f85ab6 initialize all elements of esp_bt_controller_config_t
Closes https://github.com/espressif/esp-idf/pull/9073
2022-06-07 17:38:51 +08:00
Shubham Kulkarni
e4aa50aa87 esp_http_client example: Add cert for redirect to HTTPS example
esp_http_client_test.py: Add checks for missing example logs
2022-06-07 14:54:25 +05:30
Aditya Patwardhan
3831ad2d47 esp_tls_mbedtls.c: Fix esp-idf integration of esp-cryptoauthlib
menuconfig option
2022-06-07 14:46:35 +05:30
Jiang Jiang Jian
b436ca17b7 Merge branch 'update/version_4_3_3' into 'release/v4.3'
Update version to 4.3.3

See merge request espressif/esp-idf!18368
2022-06-07 11:08:34 +08:00
xiongweichao
222a3da891 Bluetooth build fail when power management is enabled
Closes https://github.com/espressif/esp-idf/issues/9081
2022-06-06 20:16:53 +08:00
Espressif BOT
d2c1c97755 Update esp_crt_bundle certificates 2022-06-06 11:22:07 +05:30
Aditya Patwardhan
ac05c493b9 esp_crt_bundle: Add bounds checking for the "esp_crt_bundle_set" API.
Closes https://github.com/espressif/esp-idf/issues/8397
2022-06-06 11:22:02 +05:30
Martin Gaňo
1735ebb320 Fixed comparsion of integer and string that evaluated always to False
Closes https://github.com/espressif/esp-idf/issues/9052
Closes IDFGH-7482
2022-06-03 21:19:15 +02:00
Sergei Silnov
5e32ecccba Tools: Make idf.py tests independent on extra extensions 2022-06-02 14:43:40 +02:00
Mahavir Jain
a6fd8b0972 mbedtls: move locally managed root certificates to separate file
Purpose:
This will allow for easily automating periodic updates to
"cacrt_all.pem" file.

Note:
For now newly created "cacrt_local.pem" contains single "DST Root CA X3"
which we are keeping to manage compatibility with endpoints like
"howsmyssl.com". Please note this Root CA is expired and is not part of
Mozilla’s NSS root certificate store.
2022-06-02 11:07:37 +05:30
Laukik Hase
bc7cb7c947 esp_crt_bundle: Fix build error
- When `esp_crt_bundle.h` is included before any config,
  a build error (`esp_err_t` not defined) is observed

Closes https://github.com/espressif/esp-idf/issues/8606
2022-06-02 11:06:55 +05:30
Aditya Patwardhan
be783ae29b tcp_transport: Add option to enable crt_bundle for SSL connection 2022-06-01 14:39:01 +05:30
Aditya Patwardhan
85ee22932a esp_http_client: Enable support of crt_bundle in esp_http_client 2022-06-01 14:38:51 +05:30
Aditya Patwardhan
f496742ec8 esp_https_ota: Enable option of using global_ca_store and x509_crt_bundle
Closes https://github.com/espressif/esp-idf/issues/5504
2022-06-01 14:01:19 +05:30
keymoon
8aa0f77863 assign value to uninitialized bt_addr field 2022-05-29 18:06:45 -07:00
keymoon
71791a4706 add address field to read_rmt_name_param 2022-05-29 18:06:35 -07:00
Marius Vikhammer
537f802260 HAL: place cpu_ll_get_cycle_count in IRAM
Closes https://github.com/espressif/esp-idf/issues/9008
2022-05-28 14:31:33 +08:00
radim.karnis
d0e38f5a9f mkdfu.py: Support setting flash parameters 2022-05-27 16:34:42 +02:00
Aditya Patwardhan
b806d19535 Update the coap client example URL and README
Closes https://github.com/espressif/esp-idf/issues/7219
2022-05-24 12:32:37 +05:30
jingli
da08dab9e5 remove wrong function rtc_cntl_ll_ulp_wakeup_enable for esp32s2 and esp32s3 2022-05-19 23:58:29 +08:00
jingli
8309e3e5ce esp_hw_‎support/sleep: ‎fix cannot lightsleep again after a wakeup from ULP
Since ulp wakeup signal are connected to ulp int raw(except esp32), we
need to clear ulp int raw before sleep when ulp wakeup enabled. Otherwise,
if the ulp int raw is already set, chip will not sleep properly.

Closes https://github.com/espressif/esp-idf/issues/6229
2022-05-19 23:54:29 +08:00
Li Jingyi
ffef57c580 fix(mbedtls): fix ssl server memory leak when enable mbedtls dynamic buffer function 2022-05-19 16:28:53 +08:00
Cao Sen Miao
75f6279c22 I2C: patch for solving watchdog timeout issue 2022-05-17 16:56:58 +08:00
mofeifei
e69bae62b2 docs:update cn trans for partition-tables.rst 2022-05-17 02:25:53 +00:00
lorenzo.consolaro
721a59dd31 Fix iOS advertisement response and simplify 2022-05-16 04:08:12 +00:00
Cao Sen Miao
4db597a728 spi_flash: refact that flash qio can be overidable 2022-05-09 11:27:19 +08:00
1001 changed files with 31912 additions and 12326 deletions

View File

@@ -6,14 +6,14 @@ concurrency:
on:
push:
branches:
- 'master'
- 'release/*'
- "master"
- "release/*"
tags:
- 'v*.*'
- "v*.*"
env:
# Platforms to build the image for
BUILD_PLATFORMS: linux/amd64,linux/arm64
BUILD_PLATFORMS: linux/amd64
DOCKERHUB_REPO: ${{ github.repository_owner }}/idf
jobs:

View File

@@ -17,7 +17,7 @@ workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_PIPELINE_SOURCE == "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"'
when: never
- when: always
@@ -54,13 +54,8 @@ variables:
# Docker images
BOT_DOCKER_IMAGE_TAG: ":latest"
# target test config file, used by assign test job
CI_TARGET_TEST_CONFIG_FILE: "$CI_PROJECT_DIR/tools/ci/config/target-test.yml"
# 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"
CI_AUTO_TEST_SCRIPT_REPO_URL: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/auto_test_script.git"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v4.1"
# Versioned esp-idf-doc env image to use for all document building jobs
ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v10"
@@ -75,6 +70,7 @@ variables:
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
- apply_bot_filter
- add_gitlab_ssh_keys
@@ -87,6 +83,7 @@ before_script:
before_script:
- echo "Not setting up GitLab key, not fetching submodules, not applying bot filter"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
- source tools/ci/configure_ci_environment.sh
@@ -95,6 +92,7 @@ before_script:
before_script:
- echo "Not setting up GitLab key, not fetching submodules"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
- apply_bot_filter
- source tools/ci/configure_ci_environment.sh
@@ -103,12 +101,16 @@ before_script:
before_script:
- echo "Only load utils.sh inside"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
.before_script_macos:
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- apply_bot_filter
- export IDF_TOOLS_PATH="${HOME}/.espressif_runner_${CI_RUNNER_ID}_${CI_CONCURRENT_ID}"
# Clean up idf-env.json which might not be compatible with one produced by newer ESP-IDF versions
- rm -f ${IDF_TOOLS_PATH}/idf-env.json
- $IDF_PATH/tools/idf_tools.py install-python-env
# On macOS, these tools need to be installed
- $IDF_PATH/tools/idf_tools.py --non-interactive install cmake ninja
@@ -121,6 +123,20 @@ before_script:
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
- fetch_submodules
# this is a workaround since CI on 4.3 is using python 3.4 and the real support version is 3.6
# Can't find package versions that match both of them at the same time.
# install the idf-component-manager here instead of in the dockerfile with a fixed version
.before_script_build_cmake:
before_script:
- source tools/ci/utils.sh
- source tools/ci/setup_python.sh
- apply_bot_filter
- add_gitlab_ssh_keys
- source tools/ci/configure_ci_environment.sh
- *setup_tools_unless_target_test
- fetch_submodules
- pip install "idf-component-manager~=1.1"
default:
retry:
max: 2
@@ -132,6 +148,7 @@ include:
- '/tools/ci/config/pre_check.yml'
- '/tools/ci/config/build.yml'
- '/tools/ci/config/assign-test.yml'
- '/tools/ci/config/integration_test.yml'
- '/tools/ci/config/host-test.yml'
- '/tools/ci/config/target-test.yml'
- '/tools/ci/config/post_check.yml'

53
.gitmodules vendored
View File

@@ -2,6 +2,26 @@
# All the relative URL paths are intended to be GitHub ones
# For Espressif's public projects please use '../../espressif/proj', not a '../proj'
#
# Submodules SBOM information
# ---------------------------
# Submodules, which are used directly and not forked into espressif namespace should
# contain SBOM information here. Other submodules should have the SBOM manifest file
# included in the root of their project's repository.
#
# The sbom-hash entry records the submodule's checkout SHA as presented in git-tree
# commit object. For example spiffs submodule
#
# $ git ls-tree HEAD components/spiffs/spiffs
# 160000 commit 0dbb3f71c5f6fae3747a9d935372773762baf852 components/spiffs/spiffs
#
# The hash can be also obtained with git submodule command
#
# $ git submodule status components/spiffs/spiffs
# 0dbb3f71c5f6fae3747a9d935372773762baf852 components/spiffs/spiffs (0.2-255-g0dbb3f71c5f6)
#
# The submodule SHA recorded here has to match with SHA, which is presented in git-tree.
# This is checked by CI. Also please don't forget to update the submodule version
# if you are changing the sbom-hash. This is important for SBOM generation.
[submodule "components/esptool_py/esptool"]
path = components/esptool_py/esptool
@@ -14,6 +34,12 @@
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
url = ../../kmackay/micro-ecc.git
sbom-version = 1.0
sbom-cpe = cpe:2.3:a:micro-ecc_project:micro-ecc:{}:*:*:*:*:*:*:*
sbom-supplier = Person: Ken MacKay
sbom-url = https://github.com/kmackay/micro-ecc
sbom-description = A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors
sbom-hash = d037ec89546fad14b5c4d5456c2e23a71e554966
[submodule "components/coap/libcoap"]
path = components/coap/libcoap
@@ -30,10 +56,21 @@
[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = ../../pellepl/spiffs.git
sbom-version = 0.2-221-gf5e26c4e9331
sbom-supplier = Person: Peter Andersson
sbom-url = https://github.com/pellepl/spiffs
sbom-description = Wear-leveled SPI flash file system for embedded devices
sbom-hash = f5e26c4e933189593a71c6b82cda381a7b21e41c
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = ../../DaveGamble/cJSON.git
sbom-version = 1.7.15
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 = d348621ca93571343a56862df7de4ff3bc9b5667
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
@@ -58,10 +95,21 @@
[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = ../../protobuf-c/protobuf-c.git
sbom-version = 1.4.1
sbom-cpe = cpe:2.3:a:protobuf-c_project:protobuf-c:{}:*:*:*:*:*:*:*
sbom-supplier = Organization: protobuf-c community <https://groups.google.com/g/protobuf-c>
sbom-url = https://github.com/protobuf-c/protobuf-c
sbom-description = Protocol Buffers implementation in C
sbom-hash = abc67a11c6db271bedbb9f58be85d6f4e2ea8389
[submodule "components/unity/unity"]
path = components/unity/unity
url = ../../ThrowTheSwitch/Unity.git
sbom-version = v2.4.3-51-g7d2bf62b7e6a
sbom-supplier = Organization: ThrowTheSwitch community <http://www.throwtheswitch.org>
sbom-url = https://github.com/ThrowTheSwitch/Unity
sbom-description = Simple Unit Testing for C
sbom-hash = 7d2bf62b7e6afaf38153041a9d53c21aeeca9a25
[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
@@ -90,6 +138,11 @@
[submodule "components/cmock/CMock"]
path = components/cmock/CMock
url = ../../ThrowTheSwitch/CMock.git
sbom-version = v2.5.2-2-geeecc49ce8af
sbom-supplier = Organization: ThrowTheSwitch community <http://www.throwtheswitch.org>
sbom-url = https://github.com/ThrowTheSwitch/CMock
sbom-description = CMock - Mock/stub generator for C
sbom-hash = eeecc49ce8af123cf8ad40efdb9673e37b56230f
[submodule "components/bt/controller/lib_esp32c3_family"]
path = components/bt/controller/lib_esp32c3_family

View File

@@ -22,18 +22,16 @@ repos:
- id: end-of-file-fixer
exclude: *whitespace_excludes
- id: check-executables-have-shebangs
- id: file-contents-sorter
files: 'tools/ci/executable-list.txt'
- id: mixed-line-ending
args: ['-f=lf']
- id: double-quote-string-fixer
- repo: https://gitlab.com/pycqa/flake8
- repo: https://github.com/PyCQA/flake8
rev: 3.8.4
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/pycqa/isort
rev: 5.6.4
rev: 5.11.5 # python 3.7 compatible
hooks:
- id: isort
name: isort (python)
@@ -75,3 +73,8 @@ repos:
language: python
files: '\.gitlab/CODEOWNERS'
pass_filenames: false
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.4.0
hooks:
- id: file-contents-sorter
files: 'tools/ci/executable-list.txt'

View File

@@ -3,6 +3,10 @@ archive: libapp_trace.a
entries:
app_trace (noflash)
app_trace_util (noflash)
if APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE:
app_trace_membufs_proto (noflash)
if APPTRACE_DEST_JTAG = y:
port (noflash)
if APPTRACE_SV_ENABLE = y:
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp (noflash)

View File

@@ -400,17 +400,22 @@ menu "Security features"
select MBEDTLS_ECDSA_C
depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE
config SECURE_ESP32_SUPPORTS_RSA
bool
default y if ESP32_REV_MIN_FULL >= 300
depends on IDF_TARGET_ESP32
config SECURE_BOOT_SUPPORTS_RSA
bool
default y
depends on ESP32_REV_MIN_3 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3
# RSA secure boot is supported in ESP32 revision >= v3.0
depends on SECURE_ESP32_SUPPORTS_RSA || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3
config SECURE_TARGET_HAS_SECURE_ROM_DL_MODE
bool
default y
depends on IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3
config SECURE_SIGNED_APPS_NO_SECURE_BOOT
bool "Require signed app images"
depends on !SECURE_BOOT
@@ -480,7 +485,8 @@ menu "Security features"
config SECURE_BOOT
bool "Enable hardware Secure Boot in bootloader (READ DOCS FIRST)"
default n
depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || ESP32C3_REV_MIN >= 3
# Secure boot is not supported for ESP32-C3 revision < v0.3
depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || (IDF_TARGET_ESP32C3 && ESP32C3_REV_MIN_FULL >= 3) # NOERROR
select ESPTOOLPY_NO_STUB if !IDF_TARGET_ESP32 && !IDF_TARGET_ESP32S2
help
Build a bootloader which enables Secure Boot on first boot.
@@ -493,7 +499,7 @@ menu "Security features"
choice SECURE_BOOT_VERSION
bool "Select secure boot version"
default SECURE_BOOT_V2_ENABLED if ESP32_REV_MIN_3
default SECURE_BOOT_V2_ENABLED if ESP32_REV_MIN_FULL >= 300
depends on SECURE_BOOT
help
Select the Secure Boot Version. Depends on the Chip Revision.
@@ -822,7 +828,7 @@ menu "Security features"
default SECURE_ENABLE_SECURE_ROM_DL_MODE if SECURE_TARGET_HAS_SECURE_ROM_DL_MODE && !SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT # NOERROR
default SECURE_INSECURE_ALLOW_DL_MODE
depends on SECURE_BOOT_V2_ENABLED || SECURE_FLASH_ENC_ENABLED
depends on !IDF_TARGET_ESP32 || ESP32_REV_MIN_3
depends on !(IDF_TARGET_ESP32 && ESP32_REV_MIN_FULL < 300)
config SECURE_DISABLE_ROM_DL_MODE
bool "UART ROM download mode (Permanently disabled (recommended))"

View File

@@ -18,7 +18,7 @@ ifdef CONFIG_IDF_TARGET_ESP32
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
LINKER_SCRIPTS += $(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.spiflash.ld
endif
ifdef CONFIG_ESP32_REV_MIN_3
ifeq ($(shell expr $(CONFIG_ESP32_REV_MIN_FULL) \>= 300), 1)
LINKER_SCRIPTS += $(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.eco3.ld
endif
endif

View File

@@ -43,7 +43,7 @@ SECTIONS
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_efuse_esp32.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -57,6 +57,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
@@ -108,8 +109,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -122,6 +121,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -180,4 +180,23 @@ SECTIONS
_etext = .;
} > iram_seg
/** This section will be used by the debugger and disassembler to get more information
* about raw data present in the code.
* Indeed, it may be required to add some padding at some points in the code
* in order to align a branch/jump destination on a particular bound.
* Padding these instructions will generate null bytes that shall be
* interpreted as data, and not code by the debugger or disassembler.
* This section will only be present in the ELF file, not in the final binary
* For more details, check GCC-212
*/
.xt.prop 0 :
{
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
}
.xt.lit 0 :
{
KEEP (*(.xt.lit .gnu.linkonce.p.*))
}
}

View File

@@ -31,7 +31,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse_esp32c3.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -45,6 +45,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
@@ -97,8 +98,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -111,6 +110,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)

View File

@@ -30,7 +30,7 @@ SECTIONS
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_efuse_esp32s2.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -44,6 +44,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
@@ -96,8 +97,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -110,6 +109,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -168,4 +168,23 @@ SECTIONS
_etext = .;
} > iram_seg
/** This section will be used by the debugger and disassembler to get more information
* about raw data present in the code.
* Indeed, it may be required to add some padding at some points in the code
* in order to align a branch/jump destination on a particular bound.
* Padding these instructions will generate null bytes that shall be
* interpreted as data, and not code by the debugger or disassembler.
* This section will only be present in the ELF file, not in the final binary
* For more details, check GCC-212
*/
.xt.prop 0 :
{
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
}
.xt.lit 0 :
{
KEEP (*(.xt.lit .gnu.linkonce.p.*))
}
}

View File

@@ -31,7 +31,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse_esp32s3.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -45,6 +45,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
@@ -97,8 +98,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -111,6 +110,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -169,6 +169,25 @@ SECTIONS
_etext = .;
} > iram_seg
/** This section will be used by the debugger and disassembler to get more information
* about raw data present in the code.
* Indeed, it may be required to add some padding at some points in the code
* in order to align a branch/jump destination on a particular bound.
* Padding these instructions will generate null bytes that shall be
* interpreted as data, and not code by the debugger or disassembler.
* This section will only be present in the ELF file, not in the final binary
* For more details, check GCC-212
*/
.xt.prop 0 :
{
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
}
.xt.lit 0 :
{
KEEP (*(.xt.lit .gnu.linkonce.p.*))
}
}

View File

@@ -13,7 +13,7 @@ set(srcs
"src/flash_partitions.c"
"src/flash_qio_mode.c"
"src/bootloader_flash_config_${IDF_TARGET}.c"
"src/bootloader_efuse_${IDF_TARGET}.c"
"src/bootloader_efuse.c"
)
if(BOOTLOADER_BUILD)

View File

@@ -173,13 +173,6 @@ int bootloader_common_select_otadata(const esp_ota_select_entry_t *two_otadata,
*/
esp_err_t bootloader_common_get_partition_description(const esp_partition_pos_t *partition, esp_app_desc_t *app_desc);
/**
* @brief Get chip revision
*
* @return Chip revision number
*/
uint8_t bootloader_common_get_chip_revision(void);
/**
* @brief Get chip package
*

View File

@@ -17,6 +17,7 @@
#include <esp_spi_flash.h> /* including in bootloader for error values */
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "bootloader_flash_override.h"
#ifdef __cplusplus
@@ -41,14 +42,6 @@ uint32_t bootloader_read_flash_id(void);
esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode);
#endif
/**
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak.
*/
esp_err_t bootloader_flash_unlock(void);
/**
* @brief Startup flow recommended by XMC. Call at startup before any erase/write operation.
*
@@ -56,6 +49,15 @@ esp_err_t bootloader_flash_unlock(void);
*/
esp_err_t bootloader_flash_xmc_startup(void);
/**
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak.
*/
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,101 @@
/*
* SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_err.h"
#include "esp_attr.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned (*bootloader_flash_read_status_fn_t)(void);
typedef void (*bootloader_flash_write_status_fn_t)(unsigned);
typedef struct __attribute__((packed))
{
const char *manufacturer;
uint8_t mfg_id; /* 8-bit JEDEC manufacturer ID */
uint16_t flash_id; /* 16-bit JEDEC flash chip ID */
uint16_t id_mask; /* Bits to match on in flash chip ID */
bootloader_flash_read_status_fn_t read_status_fn;
bootloader_flash_write_status_fn_t write_status_fn;
uint8_t status_qio_bit;
} bootloader_qio_info_t;
/**
* @brief Read 8 bit status using RDSR command
*
* @return Value of SR1.
*/
unsigned bootloader_read_status_8b_rdsr(void);
/**
* @brief Read 8 bit status (second byte) using RDSR2 command
*
* @return Value of SR2
*/
unsigned bootloader_read_status_8b_rdsr2(void);
/**
* @brief Read 16 bit status using RDSR & RDSR2 (low and high bytes)
*
* @return Value of SR2#SR1.
*/
unsigned bootloader_read_status_16b_rdsr_rdsr2(void);
/**
* @brief Write 8 bit status using WRSR
*/
void bootloader_write_status_8b_wrsr(unsigned new_status);
/**
* @brief Write 8 bit status (second byte) using WRSR2.
*/
void bootloader_write_status_8b_wrsr2(unsigned new_status);
/**
* @brief Write 16 bit status using WRSR, (both write SR1 and SR2)
*/
void bootloader_write_status_16b_wrsr(unsigned new_status);
/**
* @brief Read 8 bit status of XM25QU64A.
*
* @return Value of 8 bit SR.
*/
unsigned bootloader_read_status_8b_xmc25qu64a(void);
/**
* @brief Write 8 bit status for XM25QU64A
*/
void bootloader_write_status_8b_xmc25qu64a(unsigned new_status);
/* Array of known flash chips and data to enable Quad I/O mode
Manufacturer & flash ID can be tested by running "esptool.py
flash_id"
If manufacturer ID matches, and flash ID ORed with flash ID mask
matches, enable_qio_mode() will execute "Read Cmd", test if bit
number "QIE Bit" is set, and if not set it will call "Write Cmd"
with this bit set.
Searching of this table stops when the first match is found.
*/
extern const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list[];
/**
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak.
*/
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void);
#ifdef __cplusplus
}
#endif

View File

@@ -82,8 +82,15 @@ typedef struct {
* pin and sets this field to 0xEE=disabled) */
uint8_t spi_pin_drv[3]; /*!< Drive settings for the SPI flash pins (read by ROM bootloader) */
esp_chip_id_t chip_id; /*!< Chip identification number */
uint8_t min_chip_rev; /*!< Minimum chip revision supported by image */
uint8_t reserved[8]; /*!< Reserved bytes in additional header space, currently unused */
uint8_t min_chip_rev; /*!< Minimal chip revision supported by image
* After the Major and Minor revision eFuses were introduced into the chips, this field is no longer used.
* But for compatibility reasons, we keep this field and the data in it.
* Use min_chip_rev_full instead.
* The software interprets this as a Major version for most of the chips and as a Minor version for the ESP32-C3.
*/
uint16_t min_chip_rev_full; /*!< Minimal chip revision supported by image, in format: major * 100 + minor */
uint16_t max_chip_rev_full; /*!< Maximal chip revision supported by image, in format: major * 100 + minor */
uint8_t reserved[4]; /*!< Reserved bytes in additional header space, currently unused */
uint8_t hash_appended; /*!< If 1, a SHA256 digest "simple hash" (of the entire image) is appended after the checksum.
* Included in image length. This digest
* is separate to secure boot and only used for detecting corruption.

View File

@@ -188,7 +188,7 @@ typedef struct {
*/
esp_err_t esp_secure_boot_verify_ecdsa_signature_block(const esp_secure_boot_sig_block_t *sig_block, const uint8_t *image_digest, uint8_t *verified_digest);
#if !CONFIG_IDF_TARGET_ESP32 || CONFIG_ESP32_REV_MIN_3
#if !CONFIG_IDF_TARGET_ESP32 || CONFIG_ESP32_REV_MIN_FULL >= 300
/**
* @brief Structure to hold public key digests calculated from the signature blocks of a single image.
*
@@ -211,7 +211,7 @@ typedef struct {
*
*/
esp_err_t esp_secure_boot_verify_rsa_signature_block(const ets_secure_boot_signature_t *sig_block, const uint8_t *image_digest, uint8_t *verified_digest);
#endif // !CONFIG_IDF_TARGET_ESP32 || CONFIG_ESP32_REV_MIN_3
#endif // !CONFIG_IDF_TARGET_ESP32 || CONFIG_ESP32_REV_MIN_FULL >= 300
/** @brief Legacy ECDSA verification function
*

View File

@@ -15,6 +15,7 @@
#include "soc/soc.h"
#include "soc/rtc.h"
#include "soc/efuse_periph.h"
#include "soc/chip_revision.h"
#include "soc/rtc_cntl_reg.h"
#define CPU_RESET_REASON RTC_SW_CPU_RESET
@@ -31,6 +32,7 @@
#elif CONFIG_IDF_TARGET_ESP32C3
#include "esp32c3/rom/rtc.h"
#endif
#include "hal/efuse_hal.h"
#include "esp_rom_uart.h"
__attribute__((weak)) void bootloader_clock_configure(void)
@@ -51,8 +53,7 @@ __attribute__((weak)) void bootloader_clock_configure(void)
* document). For rev. 0, switch to 240 instead if it has been enabled
* previously.
*/
uint32_t chip_ver_reg = REG_READ(EFUSE_BLK0_RDATA3_REG);
if ((chip_ver_reg & EFUSE_RD_CHIP_VER_REV1_M) == 0 &&
if (!ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 100) &&
DPORT_REG_GET_FIELD(DPORT_CPU_PER_CONF_REG, DPORT_CPUPERIOD_SEL) == DPORT_CPUPERIOD_SEL_240) {
cpu_freq_mhz = 240;
}

View File

@@ -31,6 +31,9 @@
#include "soc/rtc.h"
#include "soc/efuse_reg.h"
#include "soc/soc_memory_layout.h"
#include "soc/chip_revision.h"
#include "hal/efuse_ll.h"
#include "hal/efuse_hal.h"
#include "hal/gpio_ll.h"
#include "esp_image_format.h"
#include "bootloader_sha.h"
@@ -38,6 +41,7 @@
#include "bootloader_flash_priv.h"
#define ESP_PARTITION_HASH_LEN 32 /* SHA-256 digest length */
#define IS_MAX_REV_SET(max_chip_rev_full) (((max_chip_rev_full) != 65535) && ((max_chip_rev_full) != 0))
static const char* TAG = "boot_comm";
@@ -67,25 +71,30 @@ int bootloader_common_get_active_otadata(esp_ota_select_entry_t *two_otadata)
return bootloader_common_select_otadata(two_otadata, valid_two_otadata, true);
}
esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr, esp_image_type type)
esp_err_t __attribute__((optimize("-Os"))) bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr, esp_image_type type)
{
esp_err_t err = ESP_OK;
esp_chip_id_t chip_id = CONFIG_IDF_FIRMWARE_CHIP_ID;
if (chip_id != img_hdr->chip_id) {
ESP_LOGE(TAG, "mismatch chip ID, expected %d, found %d", chip_id, img_hdr->chip_id);
err = ESP_FAIL;
} else {
#ifndef CONFIG_IDF_ENV_FPGA
unsigned revision = efuse_hal_chip_revision();
unsigned int major_rev = revision / 100;
unsigned int minor_rev = revision % 100;
unsigned min_rev = img_hdr->min_chip_rev_full;
if (type == ESP_IMAGE_BOOTLOADER || type == ESP_IMAGE_APPLICATION) {
if (!ESP_CHIP_REV_ABOVE(revision, min_rev)) {
ESP_LOGE(TAG, "Image requires chip rev >= v%d.%d, but chip is v%d.%d",
min_rev / 100, min_rev % 100,
major_rev, minor_rev);
err = ESP_FAIL;
}
}
#endif // CONFIG_IDF_ENV_FPGA
}
uint8_t revision = bootloader_common_get_chip_revision();
if (revision < img_hdr->min_chip_rev) {
/* To fix this error, please update mininum supported chip revision from configuration,
* located in TARGET (e.g. ESP32) specific options under "Component config" menu */
ESP_LOGE(TAG, "This chip is revision %d but the application is configured for minimum revision %d. Can't run.", revision, img_hdr->min_chip_rev);
err = ESP_FAIL;
} else if (revision != img_hdr->min_chip_rev) {
#ifdef BOOTLOADER_BUILD
ESP_LOGI(TAG, "chip revision: %d, min. %s chip revision: %d", revision, type == ESP_IMAGE_BOOTLOADER ? "bootloader" : "application", img_hdr->min_chip_rev);
#endif
}
return err;
}

View File

@@ -0,0 +1,34 @@
/*
* SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include "sdkconfig.h"
#include "bootloader_common.h"
#include "hal/efuse_ll.h"
#include "hal/efuse_hal.h"
#include "esp_attr.h"
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
return efuse_ll_get_chip_ver_pkg();
}
int bootloader_clock_get_rated_freq_mhz(void)
{
#ifdef CONFIG_IDF_TARGET_ESP32
return efuse_hal_get_rated_freq_mhz();
#elif CONFIG_IDF_TARGET_ESP32C3
return 160;
#elif CONFIG_IDF_TARGET_ESP32S2
return 240;
#elif CONFIG_IDF_TARGET_ESP32S3
return 240;
#endif
}

View File

@@ -1,63 +0,0 @@
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "bootloader_common.h"
#include "bootloader_clock.h"
#include "soc/efuse_reg.h"
#include "soc/apb_ctrl_reg.h"
uint8_t bootloader_common_get_chip_revision(void)
{
uint8_t eco_bit0, eco_bit1, eco_bit2;
eco_bit0 = (REG_READ(EFUSE_BLK0_RDATA3_REG) & 0xF000) >> 15;
eco_bit1 = (REG_READ(EFUSE_BLK0_RDATA5_REG) & 0x100000) >> 20;
eco_bit2 = (REG_READ(APB_CTRL_DATE_REG) & 0x80000000) >> 31;
uint32_t combine_value = (eco_bit2 << 2) | (eco_bit1 << 1) | eco_bit0;
uint8_t chip_ver = 0;
switch (combine_value) {
case 0:
chip_ver = 0;
break;
case 1:
chip_ver = 1;
break;
case 3:
chip_ver = 2;
break;
case 7:
chip_ver = 3;
break;
default:
chip_ver = 0;
break;
}
return chip_ver;
}
uint32_t bootloader_common_get_chip_ver_pkg(void)
{
uint32_t pkg_version = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG);
uint32_t pkg_version_4bit = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG_4BIT);
return (pkg_version_4bit << 3) | pkg_version;
}
int bootloader_clock_get_rated_freq_mhz()
{
//Check if ESP32 is rated for a CPU frequency of 160MHz only
if (REG_GET_BIT(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_CPU_FREQ_RATED) &&
REG_GET_BIT(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_CPU_FREQ_LOW)) {
return 160;
}
return 240;
}

View File

@@ -1,28 +0,0 @@
// Copyright 2020 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <stdint.h>
#include "soc/efuse_reg.h"
uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
}
uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
}

View File

@@ -1,31 +0,0 @@
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "sdkconfig.h"
#include "bootloader_clock.h"
#include "bootloader_common.h"
#include "soc/efuse_reg.h"
uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
return 0;
}
uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_4_REG, EFUSE_PKG_VERSION);
}

View File

@@ -1,28 +0,0 @@
// Copyright 2020 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <stdint.h>
uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
/* No other revisions for ESP32-S3 */
return 0;
}
uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return 0;
}

View File

@@ -25,6 +25,8 @@
#include "soc/spi_reg.h"
#include "soc/soc_caps.h"
#include "soc/soc_pins.h"
#include "soc/chip_revision.h"
#include "hal/efuse_hal.h"
#include "hal/gpio_hal.h"
#include "flash_qio_mode.h"
#include "bootloader_common.h"
@@ -176,16 +178,13 @@ int bootloader_flash_get_wp_pin(void)
return CONFIG_SPIRAM_SPIWP_SD3_PIN; // can be set for app when DIO or DOUT config used for PSRAM only
#else
// no custom value, find it based on the package eFuse value
uint8_t chip_ver;
uint32_t pkg_ver = bootloader_common_get_chip_ver_pkg();
switch(pkg_ver) {
switch(bootloader_common_get_chip_ver_pkg()) {
case EFUSE_RD_CHIP_VER_PKG_ESP32U4WDH:
case EFUSE_RD_CHIP_VER_PKG_ESP32D2WDQ5:
return ESP32_D2WD_WP_GPIO;
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOD4:
/* Same package IDs are used for ESP32-PICO-V3 and ESP32-PICO-D4, silicon version differentiates */
chip_ver = bootloader_common_get_chip_revision();
return (chip_ver < 3) ? ESP32_D2WD_WP_GPIO : ESP32_PICO_V3_GPIO;
return !ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 300) ? ESP32_D2WD_WP_GPIO : ESP32_PICO_V3_GPIO;
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302:
return ESP32_PICO_V3_GPIO;
default:

View File

@@ -26,6 +26,7 @@
#include "soc/cpu.h"
#include "soc/rtc.h"
#include "hal/wdt_hal.h"
#include "hal/efuse_hal.h"
static const char *TAG = "boot";
@@ -48,9 +49,10 @@ esp_err_t bootloader_read_bootloader_header(void)
esp_err_t bootloader_check_bootloader_validity(void)
{
/* read chip revision from efuse */
uint8_t revision = bootloader_common_get_chip_revision();
ESP_LOGI(TAG, "chip revision: %d", revision);
unsigned revision = efuse_hal_chip_revision();
unsigned major = revision / 100;
unsigned minor = revision % 100;
ESP_LOGI(TAG, "chip revision: v%d.%d", major, minor);
/* compare with the one set in bootloader image header */
if (bootloader_common_check_chip_validity(&bootloader_image_hdr, ESP_IMAGE_BOOTLOADER) != ESP_OK) {
return ESP_FAIL;

View File

@@ -3,18 +3,10 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
void bootloader_ana_super_wdt_reset_config(bool enable)
{
(void)enable;
}
void bootloader_ana_bod_reset_config(bool enable)
{
(void)enable;
}
//Not supported but common bootloader calls the function. Do nothing
void bootloader_ana_clock_glitch_reset_config(bool enable)
{
(void)enable;

View File

@@ -31,6 +31,7 @@
#include "soc/extmem_reg.h"
#include "soc/io_mux_reg.h"
#include "soc/system_reg.h"
#include "soc/chip_revision.h"
#include "esp32c3/rom/efuse.h"
#include "esp32c3/rom/spi_flash.h"
#include "esp32c3/rom/cache.h"
@@ -46,6 +47,7 @@
#include "bootloader_console.h"
#include "bootloader_flash_priv.h"
#include "bootloader_soc.h"
#include "hal/efuse_hal.h"
static const char *TAG = "boot.esp32c3";
@@ -267,7 +269,7 @@ static inline void bootloader_hardware_init(void)
{
// This check is always included in the bootloader so it can
// print the minimum revision error message later in the boot
if (bootloader_common_get_chip_revision() < 3) {
if (!ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 3)) {
REGI2C_WRITE_MASK(I2C_ULP, I2C_ULP_IR_FORCE_XPD_IPH, 1);
REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_DREG_1P1_PVT, 12);
}
@@ -275,30 +277,29 @@ static inline void bootloader_hardware_init(void)
static inline void bootloader_ana_reset_config(void)
{
//Enable super WDT reset.
bootloader_ana_super_wdt_reset_config(true);
/*
For origin chip & ECO1: only support swt reset;
For ECO2: fix brownout reset bug, support swt & brownout reset;
For ECO3: fix clock glitch reset bug, support all reset, include: swt & brownout & clock glitch reset.
For origin chip & ECO1: brownout & clock glitch reset not available
For ECO2: fix brownout reset bug
For ECO3: fix clock glitch reset bug
*/
uint8_t chip_version = bootloader_common_get_chip_revision();
switch (chip_version) {
switch (efuse_hal_chip_revision()) {
case 0:
case 1:
//Enable WDT reset. Disable BOR and GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
//Disable BOD and GLITCH reset
bootloader_ana_bod_reset_config(false);
bootloader_ana_clock_glitch_reset_config(false);
break;
case 2:
//Enable WDT and BOR reset. Disable GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
//Enable BOD reset. Disable GLITCH reset
bootloader_ana_bod_reset_config(true);
bootloader_ana_clock_glitch_reset_config(false);
break;
case 3:
default:
//Enable WDT, BOR, and GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
//Enable BOD, and GLITCH reset
bootloader_ana_bod_reset_config(true);
bootloader_ana_clock_glitch_reset_config(true);
break;

View File

@@ -12,15 +12,15 @@ void bootloader_ana_super_wdt_reset_config(bool enable)
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_SUPER_WDT_RST);
if (enable) {
REG_SET_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
} else {
REG_CLR_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
} else {
REG_SET_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
}
}
void bootloader_ana_bod_reset_config(bool enable)
{
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_BOR_RST);
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_BOD_RST);
if (enable) {
REG_SET_BIT(RTC_CNTL_BROWN_OUT_REG, RTC_CNTL_BROWN_OUT_ANA_RST_EN);

View File

@@ -3,18 +3,10 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
void bootloader_ana_super_wdt_reset_config(bool enable)
{
(void)enable;
}
void bootloader_ana_bod_reset_config(bool enable)
{
(void)enable;
}
//Not supported but common bootloader calls the function. Do nothing
void bootloader_ana_clock_glitch_reset_config(bool enable)
{
(void)enable;

View File

@@ -259,7 +259,11 @@ esp_err_t bootloader_load_image(const esp_partition_pos_t *part, esp_image_metad
#if CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS
mode = ESP_IMAGE_LOAD_NO_VALIDATE;
#elif CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON
if (rtc_get_reset_reason(0) == POWERON_RESET) {
if (rtc_get_reset_reason(0) == POWERON_RESET
#if SOC_EFUSE_HAS_EFUSE_RST_BUG
|| rtc_get_reset_reason(0) == EFUSE_RESET
#endif
) {
mode = ESP_IMAGE_LOAD_NO_VALIDATE;
}
#endif // CONFIG_BOOTLOADER_SKIP_...

View File

@@ -36,39 +36,6 @@
static const char *TAG = "qio_mode";
typedef unsigned (*read_status_fn_t)(void);
typedef void (*write_status_fn_t)(unsigned);
typedef struct __attribute__((packed))
{
const char *manufacturer;
uint8_t mfg_id; /* 8-bit JEDEC manufacturer ID */
uint16_t flash_id; /* 16-bit JEDEC flash chip ID */
uint16_t id_mask; /* Bits to match on in flash chip ID */
read_status_fn_t read_status_fn;
write_status_fn_t write_status_fn;
uint8_t status_qio_bit;
} qio_info_t;
/* Read 8 bit status using RDSR command */
static unsigned read_status_8b_rdsr(void);
/* Read 8 bit status (second byte) using RDSR2 command */
static unsigned read_status_8b_rdsr2(void);
/* read 16 bit status using RDSR & RDSR2 (low and high bytes) */
static unsigned read_status_16b_rdsr_rdsr2(void);
/* Write 8 bit status using WRSR */
static void write_status_8b_wrsr(unsigned new_status);
/* Write 8 bit status (second byte) using WRSR2 */
static void write_status_8b_wrsr2(unsigned new_status);
/* Write 16 bit status using WRSR */
static void write_status_16b_wrsr(unsigned new_status);
/* Read 8 bit status of XM25QU64A */
static unsigned read_status_8b_xmc25qu64a(void);
/* Write 8 bit status of XM25QU64A */
static void write_status_8b_xmc25qu64a(unsigned new_status);
/* Array of known flash chips and data to enable Quad I/O mode
Manufacturer & flash ID can be tested by running "esptool.py
@@ -81,14 +48,14 @@ static void write_status_8b_xmc25qu64a(unsigned new_status);
Searching of this table stops when the first match is found.
*/
const static qio_info_t chip_data[] = {
const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list[] = {
/* Manufacturer, mfg_id, flash_id, id mask, Read Status, Write Status, QIE Bit */
{ "MXIC", 0xC2, 0x2000, 0xFF00, read_status_8b_rdsr, write_status_8b_wrsr, 6 },
{ "ISSI", 0x9D, 0x4000, 0xCF00, read_status_8b_rdsr, write_status_8b_wrsr, 6 }, /* IDs 0x40xx, 0x70xx */
{ "WinBond", 0xEF, 0x4000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
{ "GD", 0xC8, 0x6000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
{ "XM25QU64A", 0x20, 0x3817, 0xFFFF, read_status_8b_xmc25qu64a, write_status_8b_xmc25qu64a, 6 },
{ "TH", 0xcd, 0x6000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
{ "MXIC", 0xC2, 0x2000, 0xFF00, bootloader_read_status_8b_rdsr, bootloader_write_status_8b_wrsr, 6 },
{ "ISSI", 0x9D, 0x4000, 0xCF00, bootloader_read_status_8b_rdsr, bootloader_write_status_8b_wrsr, 6 }, /* IDs 0x40xx, 0x70xx */
{ "WinBond", 0xEF, 0x4000, 0xFF00, bootloader_read_status_16b_rdsr_rdsr2, bootloader_write_status_16b_wrsr, 9 },
{ "GD", 0xC8, 0x6000, 0xFF00, bootloader_read_status_16b_rdsr_rdsr2, bootloader_write_status_16b_wrsr, 9 },
{ "XM25QU64A", 0x20, 0x3817, 0xFFFF, bootloader_read_status_8b_xmc25qu64a, bootloader_write_status_8b_xmc25qu64a, 6 },
{ "TH", 0xcd, 0x6000, 0xFF00, bootloader_read_status_16b_rdsr_rdsr2, bootloader_write_status_16b_wrsr, 9 },
/* Final entry is default entry, if no other IDs have matched.
@@ -97,13 +64,13 @@ const static qio_info_t chip_data[] = {
FM25Q32 (QOUT mode only, mfg ID 0xA1, flash IDs including 4016)
BY25Q32 (mfg ID 0x68, flash IDs including 4016)
*/
{ NULL, 0xFF, 0xFFFF, 0xFFFF, read_status_8b_rdsr2, write_status_8b_wrsr2, 1 },
{ NULL, 0xFF, 0xFFFF, 0xFFFF, bootloader_read_status_8b_rdsr2, bootloader_write_status_8b_wrsr2, 1 },
};
#define NUM_CHIPS (sizeof(chip_data) / sizeof(qio_info_t))
#define NUM_CHIPS (sizeof(bootloader_flash_qe_support_list) / sizeof(bootloader_qio_info_t))
static esp_err_t enable_qio_mode(read_status_fn_t read_status_fn,
write_status_fn_t write_status_fn,
static esp_err_t enable_qio_mode(bootloader_flash_read_status_fn_t read_status_fn,
bootloader_flash_write_status_fn_t write_status_fn,
uint8_t status_qio_bit);
/* Generic function to use the "user command" SPI controller functionality
@@ -130,9 +97,9 @@ void bootloader_enable_qio_mode(void)
ESP_LOGD(TAG, "Manufacturer ID 0x%02x chip ID 0x%04x", mfg_id, flash_id);
for (i = 0; i < NUM_CHIPS - 1; i++) {
const qio_info_t *chip = &chip_data[i];
const bootloader_qio_info_t *chip = &bootloader_flash_qe_support_list[i];
if (mfg_id == chip->mfg_id && (flash_id & chip->id_mask) == (chip->flash_id & chip->id_mask)) {
ESP_LOGI(TAG, "Enabling QIO for flash chip %s", chip_data[i].manufacturer);
ESP_LOGI(TAG, "Enabling QIO for flash chip %s", bootloader_flash_qe_support_list[i].manufacturer);
break;
}
}
@@ -140,16 +107,16 @@ void bootloader_enable_qio_mode(void)
if (i == NUM_CHIPS - 1) {
ESP_LOGI(TAG, "Enabling default flash chip QIO");
}
enable_qio_mode(chip_data[i].read_status_fn,
chip_data[i].write_status_fn,
chip_data[i].status_qio_bit);
enable_qio_mode(bootloader_flash_qe_support_list[i].read_status_fn,
bootloader_flash_qe_support_list[i].write_status_fn,
bootloader_flash_qe_support_list[i].status_qio_bit);
#if SOC_CACHE_SUPPORT_WRAP
bootloader_flash_wrap_set(FLASH_WRAP_MODE_DISABLE);
#endif
}
static esp_err_t enable_qio_mode(read_status_fn_t read_status_fn,
write_status_fn_t write_status_fn,
static esp_err_t enable_qio_mode(bootloader_flash_read_status_fn_t read_status_fn,
bootloader_flash_write_status_fn_t write_status_fn,
uint8_t status_qio_bit)
{
uint32_t status;
@@ -197,37 +164,37 @@ static esp_err_t enable_qio_mode(read_status_fn_t read_status_fn,
return ESP_OK;
}
static unsigned read_status_8b_rdsr(void)
unsigned bootloader_read_status_8b_rdsr(void)
{
return bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8);
}
static unsigned read_status_8b_rdsr2(void)
unsigned bootloader_read_status_8b_rdsr2(void)
{
return bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8);
}
static unsigned read_status_16b_rdsr_rdsr2(void)
unsigned bootloader_read_status_16b_rdsr_rdsr2(void)
{
return bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8) | (bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8) << 8);
}
static void write_status_8b_wrsr(unsigned new_status)
void bootloader_write_status_8b_wrsr(unsigned new_status)
{
bootloader_execute_flash_command(CMD_WRSR, new_status, 8, 0);
}
static void write_status_8b_wrsr2(unsigned new_status)
void bootloader_write_status_8b_wrsr2(unsigned new_status)
{
bootloader_execute_flash_command(CMD_WRSR2, new_status, 8, 0);
}
static void write_status_16b_wrsr(unsigned new_status)
void bootloader_write_status_16b_wrsr(unsigned new_status)
{
bootloader_execute_flash_command(CMD_WRSR, new_status, 16, 0);
}
static unsigned read_status_8b_xmc25qu64a(void)
unsigned bootloader_read_status_8b_xmc25qu64a(void)
{
bootloader_execute_flash_command(CMD_OTPEN, 0, 0, 0); /* Enter OTP mode */
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
@@ -236,7 +203,7 @@ static unsigned read_status_8b_xmc25qu64a(void)
return read_status;
}
static void write_status_8b_xmc25qu64a(unsigned new_status)
void bootloader_write_status_8b_xmc25qu64a(unsigned new_status)
{
bootloader_execute_flash_command(CMD_OTPEN, 0, 0, 0); /* Enter OTP mode */
esp_rom_spiflash_wait_idle(&g_rom_flashchip);

View File

@@ -36,6 +36,8 @@ if(CONFIG_BT_ENABLED)
"common/osi/buffer.c"
"common/osi/config.c"
"common/osi/fixed_queue.c"
"common/osi/pkt_queue.c"
"common/osi/fixed_pkt_queue.c"
"common/osi/future.c"
"common/osi/hash_functions.c"
"common/osi/hash_map.c"
@@ -284,6 +286,7 @@ if(CONFIG_BT_ENABLED)
"host/bluedroid/stack/gatt/gatt_db.c"
"host/bluedroid/stack/gatt/gatt_main.c"
"host/bluedroid/stack/gatt/gatt_sr.c"
"host/bluedroid/stack/gatt/gatt_sr_hash.c"
"host/bluedroid/stack/gatt/gatt_utils.c"
"host/bluedroid/stack/hcic/hciblecmds.c"
"host/bluedroid/stack/hcic/hcicmds.c"

View File

@@ -46,7 +46,8 @@ esp_err_t esp_blufi_send_wifi_conn_report(wifi_mode_t opmode, esp_blufi_sta_conn
arg.wifi_conn_report.softap_conn_num = softap_conn_num;
arg.wifi_conn_report.extra_info = extra_info;
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), btc_blufi_call_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), btc_blufi_call_deep_copy,
btc_blufi_call_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_blufi_send_wifi_list(uint16_t apCount, esp_blufi_ap_record_t *list)
@@ -62,7 +63,8 @@ esp_err_t esp_blufi_send_wifi_list(uint16_t apCount, esp_blufi_ap_record_t *list
arg.wifi_list.apCount = apCount;
arg.wifi_list.list = list;
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), btc_blufi_call_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), btc_blufi_call_deep_copy,
btc_blufi_call_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_blufi_profile_init(void)
@@ -75,7 +77,7 @@ esp_err_t esp_blufi_profile_init(void)
msg.pid = BTC_PID_BLUFI;
msg.act = BTC_BLUFI_ACT_INIT;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_blufi_profile_deinit(void)
@@ -88,7 +90,7 @@ esp_err_t esp_blufi_profile_deinit(void)
msg.pid = BTC_PID_BLUFI;
msg.act = BTC_BLUFI_ACT_DEINIT;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
uint16_t esp_blufi_get_version(void)
@@ -108,7 +110,7 @@ esp_err_t esp_blufi_send_error_info(esp_blufi_error_state_t state)
msg.act = BTC_BLUFI_ACT_SEND_ERR_INFO;
arg.blufi_err_infor.state = state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_blufi_send_custom_data(uint8_t *data, uint32_t data_len)
@@ -126,6 +128,7 @@ esp_err_t esp_blufi_send_custom_data(uint8_t *data, uint32_t data_len)
arg.custom_data.data = data;
arg.custom_data.data_len = data_len;
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), btc_blufi_call_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_blufi_args_t), btc_blufi_call_deep_copy,
btc_blufi_call_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif ///BLUFI_INCLUDED == TRUE

View File

@@ -57,6 +57,8 @@ typedef enum {
typedef enum {
ESP_BLUFI_STA_CONN_SUCCESS = 0x00,
ESP_BLUFI_STA_CONN_FAIL = 0x01,
ESP_BLUFI_STA_CONNECTING = 0x02,
ESP_BLUFI_STA_NO_IP = 0x03,
} esp_blufi_sta_conn_state_t;
/// BLUFI init status
@@ -82,6 +84,9 @@ typedef enum {
ESP_BLUFI_READ_PARAM_ERROR,
ESP_BLUFI_MAKE_PUBLIC_ERROR,
ESP_BLUFI_DATA_FORMAT_ERROR,
ESP_BLUFI_CALC_MD5_ERROR,
ESP_BLUFI_WIFI_SCAN_FAIL,
ESP_BLUFI_MSG_STATE_ERROR,
} esp_blufi_error_state_t;
/**
@@ -105,6 +110,12 @@ typedef struct {
bool softap_max_conn_num_set; /*!< is max connection number of softap interface set */
uint8_t softap_channel; /*!< channel of softap interface */
bool softap_channel_set; /*!< is channel of softap interface set */
uint8_t sta_max_conn_retry; /*!< max retry of sta establish connection */
bool sta_max_conn_retry_set; /*!< is max retry of sta establish connection set */
uint8_t sta_conn_end_reason; /*!< reason of sta connection end */
bool sta_conn_end_reason_set; /*!< is reason of sta connection end set */
int8_t sta_conn_rssi; /*!< rssi of sta connection */
bool sta_conn_rssi_set; /*!< is rssi of sta connection set */
} esp_blufi_extra_info_t;
/** @brief Description of an WiFi AP */
@@ -114,9 +125,9 @@ typedef struct {
} esp_blufi_ap_record_t;
/// Bluetooth address length
#define ESP_BD_ADDR_LEN 6
#define ESP_BLUFI_BD_ADDR_LEN 6
/// Bluetooth device address
typedef uint8_t esp_bd_addr_t[ESP_BD_ADDR_LEN];
typedef uint8_t esp_blufi_bd_addr_t[ESP_BLUFI_BD_ADDR_LEN];
/**
* @brief BLUFI callback parameters union
@@ -147,7 +158,7 @@ typedef union {
* @brief ESP_BLUFI_EVENT_CONNECT
*/
struct blufi_connect_evt_param {
esp_bd_addr_t remote_bda; /*!< Blufi Remote bluetooth device address */
esp_blufi_bd_addr_t remote_bda; /*!< Blufi Remote bluetooth device address */
uint8_t server_if; /*!< server interface */
uint16_t conn_id; /*!< Connection id */
} connect; /*!< Blufi callback param of ESP_BLUFI_EVENT_CONNECT */
@@ -156,7 +167,7 @@ typedef union {
* @brief ESP_BLUFI_EVENT_DISCONNECT
*/
struct blufi_disconnect_evt_param {
esp_bd_addr_t remote_bda; /*!< Blufi Remote bluetooth device address */
esp_blufi_bd_addr_t remote_bda; /*!< Blufi Remote bluetooth device address */
} disconnect; /*!< Blufi callback param of ESP_BLUFI_EVENT_DISCONNECT */
/* ESP_BLUFI_EVENT_REQ_WIFI_CONNECT */ /* No callback param */
@@ -224,7 +235,7 @@ typedef union {
*/
struct blufi_recv_softap_channel_evt_param {
uint8_t channel; /*!< Authentication mode */
} softap_channel; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_SOFTAP_CHANNEL */
} softap_channel; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_SOFTAP_CHANNEL */
/**
* @brief ESP_BLUFI_EVENT_RECV_USERNAME

View File

@@ -56,6 +56,10 @@
#endif /* #if CLASSIC_BT_INCLUDED */
#endif
#if (BLE_INCLUDED == TRUE)
#include "btc_gap_ble.h"
#endif
#if CONFIG_BLE_MESH
#include "btc_ble_mesh_ble.h"
#include "btc_ble_mesh_prov.h"
@@ -71,6 +75,9 @@
#define BTC_TASK_STACK_SIZE (BT_BTC_TASK_STACK_SIZE + BT_TASK_EXTRA_STACK_SIZE) //by menuconfig
#define BTC_TASK_NAME "BTC_TASK"
#define BTC_TASK_PRIO (BT_TASK_MAX_PRIORITIES - 6)
#define BTC_TASK_WORKQUEUE_NUM (2)
#define BTC_TASK_WORKQUEUE0_LEN (0)
#define BTC_TASK_WORKQUEUE1_LEN (5)
osi_thread_t *btc_thread;
@@ -187,24 +194,12 @@ static void btc_thread_handler(void *arg)
break;
}
if (msg->arg) {
osi_free(msg->arg);
}
osi_free(msg);
}
static bt_status_t btc_task_post(btc_msg_t *msg, uint32_t timeout)
{
btc_msg_t *lmsg;
lmsg = (btc_msg_t *)osi_malloc(sizeof(btc_msg_t));
if (lmsg == NULL) {
return BT_STATUS_NOMEM;
}
memcpy(lmsg, msg, sizeof(btc_msg_t));
if (osi_thread_post(btc_thread, btc_thread_handler, lmsg, 0, timeout) == false) {
if (osi_thread_post(btc_thread, btc_thread_handler, msg, 0, timeout) == false) {
return BT_STATUS_BUSY;
}
@@ -217,52 +212,61 @@ static bt_status_t btc_task_post(btc_msg_t *msg, uint32_t timeout)
* @param arg paramter
* @param arg_len length of paramter
* @param copy_func deep copy function
* @param free_func deep free function
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func)
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func,
btc_arg_deep_free_t free_func)
{
btc_msg_t lmsg;
if (msg == NULL) {
btc_msg_t* lmsg;
bt_status_t ret;
// arg XOR arg_len
if ((msg == NULL) || ((arg == NULL) == !(arg_len == 0))) {
BTC_TRACE_WARNING("%s Invalid parameters\n", __func__);
return BT_STATUS_PARM_INVALID;
}
BTC_TRACE_DEBUG("%s msg %u %u %u %p\n", __func__, msg->sig, msg->pid, msg->act, arg);
memcpy(&lmsg, msg, sizeof(btc_msg_t));
if (arg) {
lmsg.arg = (void *)osi_malloc(arg_len);
if (lmsg.arg == NULL) {
return BT_STATUS_NOMEM;
}
memset(lmsg.arg, 0x00, arg_len); //important, avoid arg which have no length
memcpy(lmsg.arg, arg, arg_len);
if (copy_func) {
copy_func(&lmsg, lmsg.arg, arg);
}
} else {
lmsg.arg = NULL;
lmsg = (btc_msg_t *)osi_malloc(sizeof(btc_msg_t) + arg_len);
if (lmsg == NULL) {
BTC_TRACE_WARNING("%s No memory\n", __func__);
return BT_STATUS_NOMEM;
}
return btc_task_post(&lmsg, OSI_THREAD_MAX_TIMEOUT);
memcpy(lmsg, msg, sizeof(btc_msg_t));
if (arg) {
memset(lmsg->arg, 0x00, arg_len); //important, avoid arg which have no length
memcpy(lmsg->arg, arg, arg_len);
if (copy_func) {
copy_func(lmsg, lmsg->arg, arg);
}
}
ret = btc_task_post(lmsg, OSI_THREAD_MAX_TIMEOUT);
if (ret != BT_STATUS_SUCCESS) {
if (copy_func && free_func) {
free_func(lmsg);
}
osi_free(lmsg);
}
return ret;
}
/**
* transfer an message to another module in tha same task.
* @param msg message
* @param arg paramter
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_inter_profile_call(btc_msg_t *msg, void *arg)
bt_status_t btc_inter_profile_call(btc_msg_t *msg)
{
if (msg == NULL) {
return BT_STATUS_PARM_INVALID;
}
msg->arg = arg;
switch (msg->sig) {
case BTC_SIG_API_CALL:
profile_tab[msg->pid].btc_call(msg);
@@ -398,7 +402,9 @@ error_exit:;
bt_status_t btc_init(void)
{
btc_thread = osi_thread_create(BTC_TASK_NAME, BTC_TASK_STACK_SIZE, BTC_TASK_PRIO, BTC_TASK_PINNED_TO_CORE, 2);
const size_t workqueue_len[] = {BTC_TASK_WORKQUEUE0_LEN, BTC_TASK_WORKQUEUE1_LEN};
btc_thread = osi_thread_create(BTC_TASK_NAME, BTC_TASK_STACK_SIZE, BTC_TASK_PRIO, BTC_TASK_PINNED_TO_CORE,
BTC_TASK_WORKQUEUE_NUM, workqueue_len);
if (btc_thread == NULL) {
return BT_STATUS_NOMEM;
}
@@ -411,6 +417,7 @@ bt_status_t btc_init(void)
#if (BLE_INCLUDED == TRUE)
btc_gap_callback_init();
btc_gap_ble_init();
#endif ///BLE_INCLUDED == TRUE
#if SCAN_QUEUE_CONGEST_CHECK
@@ -428,7 +435,9 @@ void btc_deinit(void)
osi_thread_free(btc_thread);
btc_thread = NULL;
#if (BLE_INCLUDED == TRUE)
btc_gap_ble_deinit();
#endif ///BLE_INCLUDED == TRUE
#if SCAN_QUEUE_CONGEST_CHECK
btc_adv_list_deinit();
#endif
@@ -447,3 +456,8 @@ int get_btc_work_queue_size(void)
{
return osi_thread_queue_wait_size(btc_thread, 0);
}
osi_thread_t *btc_get_current_thread(void)
{
return btc_thread;
}

View File

@@ -28,7 +28,7 @@ typedef struct btc_msg {
uint8_t aid; //application id
uint8_t pid; //profile id
uint8_t act; //profile action, defined in seprerate header files
void *arg; //param for btc function or function param
UINT8 arg[0]; //param for btc function or function param
} btc_msg_t;
typedef struct btc_adv_packet {
@@ -98,6 +98,7 @@ typedef struct {
} btc_func_t;
typedef void (* btc_arg_deep_copy_t)(btc_msg_t *msg, void *dst, void *src);
typedef void (* btc_arg_deep_free_t)(btc_msg_t *msg);
/**
* transfer an message to another module in the different task.
@@ -105,23 +106,31 @@ typedef void (* btc_arg_deep_copy_t)(btc_msg_t *msg, void *dst, void *src);
* @param arg paramter
* @param arg_len length of paramter
* @param copy_func deep copy function
* @param free_func deep free function
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func);
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func,
btc_arg_deep_free_t free_func);
/**
* transfer an message to another module in tha same task.
* @param msg message
* @param arg paramter
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_inter_profile_call(btc_msg_t *msg, void *arg);
bt_status_t btc_inter_profile_call(btc_msg_t *msg);
bt_status_t btc_init(void);
void btc_deinit(void);
bool btc_check_queue_is_congest(void);
int get_btc_work_queue_size(void);
/**
* get the BTC thread handle
* @return NULL: fail
* others: pointer of osi_thread structure of BTC
*/
osi_thread_t *btc_get_current_thread(void);
#endif /* __BTC_TASK_H__ */

View File

@@ -144,7 +144,7 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
msg.act = ESP_BLUFI_EVENT_DEINIT_FINISH;
param.deinit_finish.state = ESP_BLUFI_DEINIT_OK;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
}
@@ -283,7 +283,7 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
msg.act = ESP_BLUFI_EVENT_INIT_FINISH;
param.init_finish.state = ESP_BLUFI_INIT_OK;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
}
case BTA_GATTS_CONNECT_EVT: {
@@ -295,7 +295,7 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
BT_BD_ADDR_HEX(p_data->conn.remote_bda), p_data->conn.server_if,
p_data->conn.reason, p_data->conn.conn_id);
memcpy(blufi_env.remote_bda, p_data->conn.remote_bda, sizeof(esp_bd_addr_t));
memcpy(blufi_env.remote_bda, p_data->conn.remote_bda, ESP_BLUFI_BD_ADDR_LEN);
blufi_env.conn_id = p_data->conn.conn_id;
blufi_env.is_connected = true;
blufi_env.recv_seq = blufi_env.send_seq = 0;
@@ -303,11 +303,11 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_BLE_CONNECT;
memcpy(param.connect.remote_bda, p_data->conn.remote_bda, sizeof(esp_bd_addr_t));
memcpy(param.connect.remote_bda, p_data->conn.remote_bda, ESP_BLUFI_BD_ADDR_LEN);
param.connect.conn_id = BTC_GATT_GET_CONN_ID(p_data->conn.conn_id);
conn_id = param.connect.conn_id;
server_if = p_data->conn.server_if;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
}
case BTA_GATTS_DISCONNECT_EVT: {
@@ -320,7 +320,7 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
BT_BD_ADDR_HEX(p_data->conn.remote_bda), p_data->conn.server_if,
p_data->conn.reason, p_data->conn.conn_id);
memcpy(blufi_env.remote_bda, p_data->conn.remote_bda, sizeof(esp_bd_addr_t));
memcpy(blufi_env.remote_bda, p_data->conn.remote_bda, ESP_BLUFI_BD_ADDR_LEN);
blufi_env.conn_id = p_data->conn.conn_id;
blufi_env.recv_seq = blufi_env.send_seq = 0;
blufi_env.sec_mode = 0x0;
@@ -334,8 +334,8 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_BLE_DISCONNECT;
memcpy(param.disconnect.remote_bda, p_data->conn.remote_bda, sizeof(esp_bd_addr_t));
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
memcpy(param.disconnect.remote_bda, p_data->conn.remote_bda, ESP_BLUFI_BD_ADDR_LEN);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
}
case BTA_GATTS_OPEN_EVT:
@@ -385,8 +385,6 @@ void esp_blufi_send_encap(void *arg)
retry:
if (blufi_env.is_connected == false) {
BTC_TRACE_WARNING("%s ble connection is broken\n", __func__);
osi_free(hdr);
hdr = NULL;
return;
}
if (esp_ble_get_cur_sendable_packets_num(BTC_GATT_GET_CONN_ID(blufi_env.conn_id)) > 0) {
@@ -410,7 +408,7 @@ esp_err_t esp_blufi_close(esp_gatt_if_t gatts_if, uint16_t conn_id)
msg.pid = BTC_PID_GATTS;
msg.act = BTC_GATTS_ACT_CLOSE;
arg.close.conn_id = BTC_GATT_CREATE_CONN_ID(gatts_if, conn_id);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gatts_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gatts_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -98,7 +98,7 @@ void btc_blufi_report_error(esp_blufi_error_state_t state)
msg.act = ESP_BLUFI_EVENT_REPORT_ERROR;
esp_blufi_cb_param_t param;
param.report_error.state = state;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
}
void btc_blufi_recv_handler(uint8_t *data, int len)
@@ -144,6 +144,16 @@ void btc_blufi_recv_handler(uint8_t *data, int len)
if (BLUFI_FC_IS_FRAG(hdr->fc)) {
if (blufi_env.offset == 0) {
/*
blufi_env.aggr_buf should be NULL if blufi_env.offset is 0.
It is possible that the process of sending fragment packet
has not been completed
*/
if (blufi_env.aggr_buf) {
BTC_TRACE_ERROR("%s msg error, blufi_env.aggr_buf is not freed\n", __func__);
btc_blufi_report_error(ESP_BLUFI_MSG_STATE_ERROR);
return;
}
blufi_env.total_len = hdr->data[0] | (((uint16_t) hdr->data[1]) << 8);
blufi_env.aggr_buf = osi_malloc(blufi_env.total_len);
if (blufi_env.aggr_buf == NULL) {
@@ -163,6 +173,18 @@ void btc_blufi_recv_handler(uint8_t *data, int len)
} else {
if (blufi_env.offset > 0) { /* if previous pkt is frag */
/* blufi_env.aggr_buf should not be NULL */
if (blufi_env.aggr_buf == NULL) {
BTC_TRACE_ERROR("%s buffer is NULL\n", __func__);
btc_blufi_report_error(ESP_BLUFI_DH_MALLOC_ERROR);
return;
}
/* payload length should be equal to total_len */
if ((blufi_env.offset + hdr->data_len) != blufi_env.total_len) {
BTC_TRACE_ERROR("%s payload is longer than packet length, len %d \n", __func__, blufi_env.total_len);
btc_blufi_report_error(ESP_BLUFI_DATA_FORMAT_ERROR);
return;
}
memcpy(blufi_env.aggr_buf + blufi_env.offset, hdr->data, hdr->data_len);
btc_blufi_protocol_handler(hdr->type, blufi_env.aggr_buf, blufi_env.total_len);
@@ -321,6 +343,21 @@ static void btc_blufi_wifi_conn_report(uint8_t opmode, uint8_t sta_conn_state, u
*p++ = 1;
*p++ = info->softap_channel;
}
if (info->sta_max_conn_retry_set) {
*p++ = BLUFI_TYPE_DATA_SUBTYPE_STA_MAX_CONN_RETRY;
*p++ = 1;
*p++ = info->sta_max_conn_retry;
}
if (info->sta_conn_end_reason_set) {
*p++ = BLUFI_TYPE_DATA_SUBTYPE_STA_CONN_END_REASON;
*p++ = 1;
*p++ = info->sta_conn_end_reason;
}
if (info->sta_conn_rssi_set) {
*p++ = BLUFI_TYPE_DATA_SUBTYPE_STA_CONN_RSSI;
*p++ = 1;
*p++ = info->sta_conn_rssi;
}
}
if (p - data > data_len) {
BTC_TRACE_ERROR("%s len error %d %d\n", __func__, (int)(p - data), data_len);
@@ -714,6 +751,21 @@ void btc_blufi_call_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
dst->wifi_conn_report.extra_info->softap_channel = src_info->softap_channel;
dst->wifi_conn_report.extra_info_len += (1 + 2);
}
if (src_info->sta_max_conn_retry_set) {
dst->wifi_conn_report.extra_info->sta_max_conn_retry_set = src_info->sta_max_conn_retry_set;
dst->wifi_conn_report.extra_info->sta_max_conn_retry = src_info->sta_max_conn_retry;
dst->wifi_conn_report.extra_info_len += (1 + 2);
}
if (src_info->sta_conn_end_reason_set) {
dst->wifi_conn_report.extra_info->sta_conn_end_reason_set = src_info->sta_conn_end_reason_set;
dst->wifi_conn_report.extra_info->sta_conn_end_reason = src_info->sta_conn_end_reason;
dst->wifi_conn_report.extra_info_len += (1 + 2);
}
if (src_info->sta_conn_rssi_set) {
dst->wifi_conn_report.extra_info->sta_conn_rssi_set = src_info->sta_conn_rssi_set;
dst->wifi_conn_report.extra_info->sta_conn_rssi = src_info->sta_conn_rssi;
dst->wifi_conn_report.extra_info_len += (1 + 2);
}
break;
}
case BTC_BLUFI_ACT_SEND_WIFI_LIST:{

View File

@@ -51,35 +51,35 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.act = ESP_BLUFI_EVENT_SET_WIFI_OPMODE;
param.wifi_mode.op_mode = data[0];
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
case BLUFI_TYPE_CTRL_SUBTYPE_CONN_TO_AP:
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_REQ_CONNECT_TO_AP;
btc_transfer_context(&msg, NULL, 0, NULL);
btc_transfer_context(&msg, NULL, 0, NULL, NULL);
break;
case BLUFI_TYPE_CTRL_SUBTYPE_DISCONN_FROM_AP:
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_REQ_DISCONNECT_FROM_AP;
btc_transfer_context(&msg, NULL, 0, NULL);
btc_transfer_context(&msg, NULL, 0, NULL, NULL);
break;
case BLUFI_TYPE_CTRL_SUBTYPE_GET_WIFI_STATUS:
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_GET_WIFI_STATUS;
btc_transfer_context(&msg, NULL, 0, NULL);
btc_transfer_context(&msg, NULL, 0, NULL, NULL);
break;
case BLUFI_TYPE_CTRL_SUBTYPE_DEAUTHENTICATE_STA:
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_DEAUTHENTICATE_STA;
btc_transfer_context(&msg, NULL, 0, NULL);
btc_transfer_context(&msg, NULL, 0, NULL,NULL);
break;
case BLUFI_TYPE_CTRL_SUBTYPE_GET_VERSION: {
uint8_t type = BLUFI_BUILD_TYPE(BLUFI_TYPE_DATA, BLUFI_TYPE_DATA_SUBTYPE_REPLY_VERSION);
@@ -94,13 +94,13 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_RECV_SLAVE_DISCONNECT_BLE;
btc_transfer_context(&msg, NULL, 0, NULL);
btc_transfer_context(&msg, NULL, 0, NULL, NULL);
break;
case BLUFI_TYPE_CTRL_SUBTYPE_GET_WIFI_LIST:
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_GET_WIFI_LIST;
btc_transfer_context(&msg, NULL, 0, NULL);
btc_transfer_context(&msg, NULL, 0, NULL, NULL);
break;
default:
BTC_TRACE_ERROR("%s Unkown Ctrl pkt %02x\n", __func__, type);
@@ -125,7 +125,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.act = ESP_BLUFI_EVENT_RECV_STA_BSSID;
memcpy(param.sta_bssid.bssid, &data[0], 6);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
case BLUFI_TYPE_DATA_SUBTYPE_STA_SSID:
msg.sig = BTC_SIG_API_CB;
@@ -134,7 +134,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.sta_ssid.ssid = &data[0];
param.sta_ssid.ssid_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_STA_PASSWD:
msg.sig = BTC_SIG_API_CB;
@@ -143,7 +143,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.sta_passwd.passwd = &data[0];
param.sta_passwd.passwd_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_SSID:
msg.sig = BTC_SIG_API_CB;
@@ -152,7 +152,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.softap_ssid.ssid = &data[0];
param.softap_ssid.ssid_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_PASSWD:
msg.sig = BTC_SIG_API_CB;
@@ -161,7 +161,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.softap_passwd.passwd = &data[0];
param.softap_passwd.passwd_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_MAX_CONN_NUM:
msg.sig = BTC_SIG_API_CB;
@@ -169,7 +169,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.act = ESP_BLUFI_EVENT_RECV_SOFTAP_MAX_CONN_NUM;
param.softap_max_conn_num.max_conn_num = data[0];
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_AUTH_MODE:
msg.sig = BTC_SIG_API_CB;
@@ -177,7 +177,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.act = ESP_BLUFI_EVENT_RECV_SOFTAP_AUTH_MODE;
param.softap_auth_mode.auth_mode = data[0];
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SOFTAP_CHANNEL:
msg.sig = BTC_SIG_API_CB;
@@ -185,7 +185,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.act = ESP_BLUFI_EVENT_RECV_SOFTAP_CHANNEL;
param.softap_channel.channel = data[0];
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
break;
case BLUFI_TYPE_DATA_SUBTYPE_USERNAME:
msg.sig = BTC_SIG_API_CB;
@@ -194,7 +194,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.username.name = &data[0];
param.username.name_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_CA:
msg.sig = BTC_SIG_API_CB;
@@ -203,7 +203,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.ca.cert = &data[0];
param.ca.cert_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_CLIENT_CERT:
msg.sig = BTC_SIG_API_CB;
@@ -212,7 +212,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.client_cert.cert = &data[0];
param.client_cert.cert_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SERVER_CERT:
msg.sig = BTC_SIG_API_CB;
@@ -221,7 +221,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.client_cert.cert = &data[0];
param.client_cert.cert_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_CLIENT_PRIV_KEY:
msg.sig = BTC_SIG_API_CB;
@@ -230,7 +230,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.client_pkey.pkey = &data[0];
param.client_pkey.pkey_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_SERVER_PRIV_KEY:
msg.sig = BTC_SIG_API_CB;
@@ -239,7 +239,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
param.client_pkey.pkey = &data[0];
param.client_pkey.pkey_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
case BLUFI_TYPE_DATA_SUBTYPE_CUSTOM_DATA:
msg.sig = BTC_SIG_API_CB;
@@ -247,7 +247,7 @@ void btc_blufi_protocol_handler(uint8_t type, uint8_t *data, int len)
msg.act = ESP_BLUFI_EVENT_RECV_CUSTOM_DATA;
param.custom_data.data = &data[0];
param.custom_data.data_len = len;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), btc_blufi_cb_deep_copy, btc_blufi_cb_deep_free);
break;
default:
BTC_TRACE_ERROR("%s Unkown Ctrl pkt %02x\n", __func__, type);

View File

@@ -20,7 +20,7 @@
#if (BLUFI_INCLUDED == TRUE)
#define BTC_BLUFI_GREAT_VER 0x01 //Version + Subversion
#define BTC_BLUFI_SUB_VER 0x02 //Version + Subversion
#define BTC_BLUFI_SUB_VER 0x03 //Version + Subversion
#define BTC_BLUFI_VERSION ((BTC_BLUFI_GREAT_VER<<8)|BTC_BLUFI_SUB_VER) //Version + Subversion
typedef UINT8 tGATT_IF;
@@ -129,6 +129,9 @@ extern tBLUFI_ENV *blufi_env_ptr;
#define BLUFI_TYPE_DATA_SUBTYPE_WIFI_LIST 0x11
#define BLUFI_TYPE_DATA_SUBTYPE_ERROR_INFO 0x12
#define BLUFI_TYPE_DATA_SUBTYPE_CUSTOM_DATA 0x13
#define BLUFI_TYPE_DATA_SUBTYPE_STA_MAX_CONN_RETRY 0x14
#define BLUFI_TYPE_DATA_SUBTYPE_STA_CONN_END_REASON 0x15
#define BLUFI_TYPE_DATA_SUBTYPE_STA_CONN_RSSI 0x16
#define BLUFI_TYPE_IS_CTRL(type) (BLUFI_GET_TYPE((type)) == BLUFI_TYPE_CTRL)
#define BLUFI_TYPE_IS_DATA(type) (BLUFI_GET_TYPE((type)) == BLUFI_TYPE_DATA)

View File

@@ -256,12 +256,12 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg)
rc = ble_gap_conn_find(event->connect.conn_handle, &desc);
assert(rc == 0);
memcpy(param.connect.remote_bda, desc.peer_id_addr.val, sizeof(esp_bd_addr_t));
memcpy(param.connect.remote_bda, desc.peer_id_addr.val, ESP_BLUFI_BD_ADDR_LEN);
param.connect.conn_id = event->connect.conn_handle;
/* save connection handle */
conn_handle = event->connect.conn_handle;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
}
if (event->connect.status != 0) {
/* Connection failed; resume advertising. */
@@ -270,7 +270,7 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg)
return 0;
case BLE_GAP_EVENT_DISCONNECT:
ESP_LOGI(TAG, "disconnect; reason=%d\n", event->disconnect.reason);
memcpy(blufi_env.remote_bda, event->disconnect.conn.peer_id_addr.val, sizeof(esp_bd_addr_t));
memcpy(blufi_env.remote_bda, event->disconnect.conn.peer_id_addr.val, ESP_BLUFI_BD_ADDR_LEN);
blufi_env.is_connected = false;
blufi_env.recv_seq = blufi_env.send_seq = 0;
blufi_env.sec_mode = 0x0;
@@ -287,8 +287,8 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg)
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_BLE_DISCONNECT;
memcpy(param.disconnect.remote_bda, event->disconnect.conn.peer_id_addr.val, sizeof(esp_bd_addr_t));
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
memcpy(param.disconnect.remote_bda, event->disconnect.conn.peer_id_addr.val, ESP_BLUFI_BD_ADDR_LEN);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
return 0;
case BLE_GAP_EVENT_CONN_UPDATE:
@@ -419,7 +419,7 @@ void esp_blufi_deinit(void)
msg.pid = BTC_PID_BLUFI;
msg.act = ESP_BLUFI_EVENT_DEINIT_FINISH;
param.deinit_finish.state = ESP_BLUFI_DEINIT_OK;
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL);
btc_transfer_context(&msg, &param, sizeof(esp_blufi_cb_param_t), NULL, NULL);
}
void esp_blufi_send_notify(void *arg)
@@ -427,9 +427,15 @@ void esp_blufi_send_notify(void *arg)
struct pkt_info *pkts = (struct pkt_info *) arg;
struct os_mbuf *om;
om = ble_hs_mbuf_from_flat(pkts->pkt, pkts->pkt_len);
if (om == NULL) {
ESP_LOGE(TAG, "Error in allocating memory");
return;
}
int rc = 0;
rc = ble_gattc_notify_custom(conn_handle, gatt_values[1].val_handle, om);
assert(rc == 0);
if (rc != 0) {
ESP_LOGE(TAG, "Error in sending notification");
}
}
void esp_blufi_disconnect(void)
@@ -444,8 +450,6 @@ void esp_blufi_send_encap(void *arg)
struct blufi_hdr *hdr = (struct blufi_hdr *)arg;
if (blufi_env.is_connected == false) {
BTC_TRACE_WARNING("%s ble connection is broken\n", __func__);
osi_free(hdr);
hdr = NULL;
return;
}
btc_blufi_send_notify((uint8_t *)hdr,

View File

@@ -61,6 +61,12 @@
#define BTC_DYNAMIC_MEMORY FALSE
#endif
#if UC_BT_BLUEDROID_MEM_DEBUG
#define HEAP_MEMORY_DEBUG TRUE
#else
#define HEAP_MEMORY_DEBUG FALSE
#endif
#ifndef BT_BLE_DYNAMIC_ENV_MEMORY
#define BT_BLE_DYNAMIC_ENV_MEMORY FALSE
#endif

View File

@@ -93,4 +93,11 @@
#define UC_BT_BLUFI_ENABLE FALSE
#endif
//MEMORY DEBUG
#ifdef CONFIG_BT_BLUEDROID_MEM_DEBUG
#define UC_BT_BLUEDROID_MEM_DEBUG TRUE
#else
#define UC_BT_BLUEDROID_MEM_DEBUG FALSE
#endif
#endif /* __BT_USER_CONFIG_H__ */

View File

@@ -149,7 +149,7 @@ static void alarm_cb_handler(struct alarm_t *alarm)
msg.pid = BTC_PID_ALARM;
arg.cb = alarm->cb;
arg.cb_data = alarm->cb_data;
btc_transfer_context(&msg, &arg, sizeof(btc_alarm_args_t), NULL);
btc_transfer_context(&msg, &arg, sizeof(btc_alarm_args_t), NULL, NULL);
}
osi_alarm_t *osi_alarm_new(const char *alarm_name, osi_alarm_callback_t callback, void *data, period_ms_t timer_expire)

View File

@@ -262,6 +262,32 @@ bool config_remove_section(config_t *config, const char *section)
return list_remove(config->sections, sec);
}
bool config_update_newest_section(config_t *config, const char *section)
{
assert(config != NULL);
assert(section != NULL);
list_node_t *first_node = list_begin(config->sections);
if (first_node == NULL) {
return false;
}
section_t *first_sec = list_node(first_node);
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) == 0) {
list_delete(config->sections, sec);
list_prepend(config->sections, sec);
return true;
}
}
return false;
}
bool config_remove_key(config_t *config, const char *section, const char *key)
{
assert(config != NULL);

View File

@@ -0,0 +1,161 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "osi/allocator.h"
#include "osi/pkt_queue.h"
#include "osi/fixed_pkt_queue.h"
#include "osi/osi.h"
#include "osi/semaphore.h"
typedef struct fixed_pkt_queue_t {
struct pkt_queue *pkt_list;
osi_sem_t enqueue_sem;
osi_sem_t dequeue_sem;
size_t capacity;
fixed_pkt_queue_cb dequeue_ready;
} fixed_pkt_queue_t;
fixed_pkt_queue_t *fixed_pkt_queue_new(size_t capacity)
{
fixed_pkt_queue_t *ret = osi_calloc(sizeof(fixed_pkt_queue_t));
if (!ret) {
goto error;
}
ret->capacity = capacity;
ret->pkt_list = pkt_queue_create();
if (!ret->pkt_list) {
goto error;
}
osi_sem_new(&ret->enqueue_sem, capacity, capacity);
if (!ret->enqueue_sem) {
goto error;
}
osi_sem_new(&ret->dequeue_sem, capacity, 0);
if (!ret->dequeue_sem) {
goto error;
}
return ret;
error:
fixed_pkt_queue_free(ret, NULL);
return NULL;
}
void fixed_pkt_queue_free(fixed_pkt_queue_t *queue, fixed_pkt_queue_free_cb free_cb)
{
if (queue == NULL) {
return;
}
fixed_pkt_queue_unregister_dequeue(queue);
pkt_queue_destroy(queue->pkt_list, (pkt_queue_free_cb)free_cb);
queue->pkt_list = NULL;
if (queue->enqueue_sem) {
osi_sem_free(&queue->enqueue_sem);
}
if (queue->dequeue_sem) {
osi_sem_free(&queue->dequeue_sem);
}
osi_free(queue);
}
bool fixed_pkt_queue_is_empty(fixed_pkt_queue_t *queue)
{
if (queue == NULL) {
return true;
}
return pkt_queue_is_empty(queue->pkt_list);
}
size_t fixed_pkt_queue_length(fixed_pkt_queue_t *queue)
{
if (queue == NULL) {
return 0;
}
return pkt_queue_length(queue->pkt_list);
}
size_t fixed_pkt_queue_capacity(fixed_pkt_queue_t *queue)
{
assert(queue != NULL);
return queue->capacity;
}
bool fixed_pkt_queue_enqueue(fixed_pkt_queue_t *queue, pkt_linked_item_t *linked_pkt, uint32_t timeout)
{
bool ret = false;
assert(queue != NULL);
assert(linked_pkt != NULL);
if (osi_sem_take(&queue->enqueue_sem, timeout) != 0) {
return false;
}
ret = pkt_queue_enqueue(queue->pkt_list, linked_pkt);
assert(ret == true);
osi_sem_give(&queue->dequeue_sem);
return ret;
}
pkt_linked_item_t *fixed_pkt_queue_dequeue(fixed_pkt_queue_t *queue, uint32_t timeout)
{
pkt_linked_item_t *ret = NULL;
assert(queue != NULL);
if (osi_sem_take(&queue->dequeue_sem, timeout) != 0) {
return NULL;
}
ret = pkt_queue_dequeue(queue->pkt_list);
osi_sem_give(&queue->enqueue_sem);
return ret;
}
pkt_linked_item_t *fixed_pkt_queue_try_peek_first(fixed_pkt_queue_t *queue)
{
if (queue == NULL) {
return NULL;
}
return pkt_queue_try_peek_first(queue->pkt_list);
}
void fixed_pkt_queue_register_dequeue(fixed_pkt_queue_t *queue, fixed_pkt_queue_cb ready_cb)
{
assert(queue != NULL);
assert(ready_cb != NULL);
queue->dequeue_ready = ready_cb;
}
void fixed_pkt_queue_unregister_dequeue(fixed_pkt_queue_t *queue)
{
assert(queue != NULL);
queue->dequeue_ready = NULL;
}
void fixed_pkt_queue_process(fixed_pkt_queue_t *queue)
{
assert(queue != NULL);
if (queue->dequeue_ready) {
queue->dequeue_ready(queue);
}
}

View File

@@ -107,6 +107,11 @@ void config_set_string(config_t *config, const char *section, const char *key, c
// Neither |config| nor |section| may be NULL.
bool config_remove_section(config_t *config, const char *section);
// Updates |section| to be the first section in |config|. Return true if |section| is in
// |config| and updated successfully, false otherwise.
// Neither |config| nor |section| may be NULL.
bool config_update_newest_section(config_t *config, const char *section);
// Removes one specific |key| residing in |section| of the |config|. Returns true
// if the section and key were found and the key was removed, false otherwise.
// None of |config|, |section|, or |key| may be NULL.

View File

@@ -0,0 +1,79 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _FIXED_PKT_QUEUE_H_
#define _FIXED_PKT_QUEUE_H_
#include "osi/pkt_queue.h"
#include "osi/semaphore.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef FIXED_PKT_QUEUE_SIZE_MAX
#define FIXED_PKT_QUEUE_SIZE_MAX 254
#endif
#define FIXED_PKT_QUEUE_MAX_TIMEOUT OSI_SEM_MAX_TIMEOUT
struct fixed_pkt_queue_t;
typedef struct fixed_pkt_queue_t fixed_pkt_queue_t;
typedef void (*fixed_pkt_queue_free_cb)(pkt_linked_item_t *data);
typedef void (*fixed_pkt_queue_cb)(fixed_pkt_queue_t *queue);
// Creates a new fixed queue with the given |capacity|. If more elements than
// |capacity| are added to the queue, the caller is blocked until space is
// made available in the queue. Returns NULL on failure. The caller must free
// the returned queue with |fixed_pkt_queue_free|.
fixed_pkt_queue_t *fixed_pkt_queue_new(size_t capacity);
// Freeing a queue that is currently in use (i.e. has waiters
// blocked on it) results in undefined behaviour.
void fixed_pkt_queue_free(fixed_pkt_queue_t *queue, fixed_pkt_queue_free_cb free_cb);
// Returns a value indicating whether the given |queue| is empty. If |queue|
// is NULL, the return value is true.
bool fixed_pkt_queue_is_empty(fixed_pkt_queue_t *queue);
// Returns the length of the |queue|. If |queue| is NULL, the return value
// is 0.
size_t fixed_pkt_queue_length(fixed_pkt_queue_t *queue);
// Returns the maximum number of elements this queue may hold. |queue| may
// not be NULL.
size_t fixed_pkt_queue_capacity(fixed_pkt_queue_t *queue);
// Enqueues the given |data| into the |queue|. The caller will be blocked or immediately return or wait for timeout according to the parameter timeout.
// If enqueue failed, it will return false, otherwise return true
bool fixed_pkt_queue_enqueue(fixed_pkt_queue_t *queue, pkt_linked_item_t *linked_pkt, uint32_t timeout);
// Dequeues the next element from |queue|. If the queue is currently empty,
// this function will block the caller until an item is enqueued or immediately return or wait for timeout according to the parameter timeout.
// If dequeue failed, it will return NULL, otherwise return a point.
pkt_linked_item_t *fixed_pkt_queue_dequeue(fixed_pkt_queue_t *queue, uint32_t timeout);
// Returns the first element from |queue|, if present, without dequeuing it.
// This function will never block the caller. Returns NULL if there are no
// elements in the queue or |queue| is NULL.
pkt_linked_item_t *fixed_pkt_queue_try_peek_first(fixed_pkt_queue_t *queue);
// Registers |queue| with |reactor| for dequeue operations. When there is an element
// in the queue, ready_cb will be called. The |context| parameter is passed, untouched,
// to the callback routine. Neither |queue|, nor |reactor|, nor |read_cb| may be NULL.
// |context| may be NULL.
void fixed_pkt_queue_register_dequeue(fixed_pkt_queue_t *queue, fixed_pkt_queue_cb ready_cb);
// Unregisters the dequeue ready callback for |queue| from whichever reactor
// it is registered with, if any. This function is idempotent.
void fixed_pkt_queue_unregister_dequeue(fixed_pkt_queue_t *queue);
void fixed_pkt_queue_process(fixed_pkt_queue_t *queue);
#endif

View File

@@ -0,0 +1,88 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _PKT_LIST_H_
#define _PKT_LIST_H_
#include "sys/queue.h"
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
struct pkt_queue;
typedef struct pkt_linked_item {
STAILQ_ENTRY(pkt_linked_item) next;
uint8_t data[];
} pkt_linked_item_t;
#define BT_PKT_LINKED_HDR_SIZE (sizeof (pkt_linked_item_t))
typedef void (*pkt_queue_free_cb)(pkt_linked_item_t *item);
/*
* brief: create a pkt_queue instance. pkt_queue is a wrapper class of a FIFO implemented by single linked list.
* The enqueue and dequeue operations of the FIFO are protected against race conditions of multiple tasks
* return: NULL if not enough memory, otherwise a valid pointer
*/
struct pkt_queue *pkt_queue_create(void);
/*
* brief: enqueue one item to the FIFO
* param queue: pkt_queue instance created using pkt_queue_create
* param item: the item to be enqueued to the FIFO
* return: true if enqueued successfully, false when the arguments passed in are invalid
*/
bool pkt_queue_enqueue(struct pkt_queue *queue, pkt_linked_item_t *item);
/*
* brief: dequeue one item for the FIFO
* param queue: pkt_queue instance created using pkt_queue_create
* return: pointer of type pkt_linked_item_t dequeued, NULL if the queue is empty or upon exception
*/
pkt_linked_item_t *pkt_queue_dequeue(struct pkt_queue *queue);
/*
* brief: get the pointer of the first item from the FIFO but not get it dequeued
* param queue: pkt_queue instance created using pkt_queue_create
* return: pointer of the first item in the FIFO, NULL if the FIFO is empty
*/
pkt_linked_item_t *pkt_queue_try_peek_first(struct pkt_queue *queue);
/*
* brief: retrieve the number of items existing in the FIFO
* param queue: pkt_queue instance created using pkt_queue_create
* return: total number of items in the FIFO
*/
size_t pkt_queue_length(const struct pkt_queue *queue);
/*
* brief: retrieve the status whether the FIFO is empty
* param queue: pkt_queue instance created using pkt_queue_create
* return: false if the FIFO is not empty, otherwise true
*/
bool pkt_queue_is_empty(const struct pkt_queue *queue);
/*
* brief: delete the item in the FIFO one by one
* param free_cb: destructor function for each item in the FIFO, if set to NULL, will use osi_free_func by default
*/
void pkt_queue_flush(struct pkt_queue *queue, pkt_queue_free_cb free_cb);
/*
* brief: delete the items in the FIFO and then destroy the pkt_queue instance.
* param free_cb: destructor function for each item in the FIFO, if set to NULL, will use osi_free_func by default
*/
void pkt_queue_destroy(struct pkt_queue *queue, pkt_queue_free_cb free_cb);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -28,6 +28,7 @@
#define OSI_THREAD_MAX_TIMEOUT OSI_SEM_MAX_TIMEOUT
struct osi_thread;
struct osi_event;
typedef struct osi_thread osi_thread_t;
@@ -48,7 +49,7 @@ typedef enum {
* param work_queue_num: speicify queue number, the queue[0] has highest priority, and the priority is decrease by index
* return : if create successfully, return thread handler; otherwise return NULL.
*/
osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priority, osi_thread_core_t core, uint8_t work_queue_num);
osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priority, osi_thread_core_t core, uint8_t work_queue_num, const size_t work_queue_len[]);
/*
* brief: Destroy a thread or task
@@ -88,4 +89,42 @@ const char *osi_thread_name(osi_thread_t *thread);
*/
int osi_thread_queue_wait_size(osi_thread_t *thread, int wq_idx);
/*
* brief: Create an osi_event struct and register the handler function and its argument
* An osi_event is a kind of work that can be posted to the workqueue of osi_thread to process,
* but the work can have at most one instance the thread workqueue before it is processed. This
* allows the "single post, multiple data processing" jobs.
* param func: the handler to process the job
* param context: the argument to be passed to the handler function when the job is being processed
* return: NULL if no memory, otherwise a valid struct pointer
*/
struct osi_event *osi_event_create(osi_thread_func_t func, void *context);
/*
* brief: Bind an osi_event to a specific work queue for an osi_thread.
* After binding is completed, a function call of API osi_thread_post_event will send a work
* to the workqueue of the thread, with specified queue index.
* param func: event: the pointer to osi_event that is created using osi_event_create
* param thread: the pointer to osi_thread that is created using osi_thread_create
* param queue_idx: the index of the workqueue of the specified osi_thread, with range starting from 0 to work_queue_num - 1
* return: true if osi_event binds to the thread's workqueue successfully, otherwise false
*/
bool osi_event_bind(struct osi_event* event, osi_thread_t *thread, int queue_idx);
/*
* brief: Destroy the osi_event struct created by osi_event_create and free the allocated memory
* param event: the pointer to osi_event
*/
void osi_event_delete(struct osi_event* event);
/*
* brief: try sending a work to the binded thread's workqueue, so that it can be handled by the worker thread
* param event: pointer to osi_event, created by osi_event_create
* param timeout: post timeout, OSI_THREAD_MAX_TIMEOUT means blocking forever, 0 means never blocking, others means block millisecond
* return: true if the message is enqueued to the thread workqueue, otherwise failed
* note: if the return value of function is false, it is the case that the workqueue of the thread is full, and users
* are expected to post the event sometime later to get the work handled.
*/
bool osi_thread_post_event(struct osi_event *event, uint32_t timeout);
#endif /* __THREAD_H__ */

View File

@@ -0,0 +1,144 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "osi/pkt_queue.h"
#include "osi/allocator.h"
#include "osi/mutex.h"
STAILQ_HEAD(pkt_queue_header, pkt_linked_item);
struct pkt_queue {
osi_mutex_t lock;
size_t length;
struct pkt_queue_header header;
} pkt_queue_t;
struct pkt_queue *pkt_queue_create(void)
{
struct pkt_queue *queue = calloc(1, sizeof(struct pkt_queue));
if (queue == NULL) {
return NULL;
}
if (osi_mutex_new(&queue->lock) != 0) {
osi_free(queue);
}
struct pkt_queue_header *p = &queue->header;
STAILQ_INIT(p);
return queue;
}
static void pkt_queue_cleanup(struct pkt_queue *queue, pkt_queue_free_cb free_cb)
{
if (queue == NULL) {
return;
}
struct pkt_queue_header *header = &queue->header;
pkt_linked_item_t *item = STAILQ_FIRST(header);
pkt_linked_item_t *tmp;
pkt_queue_free_cb free_func = (free_cb != NULL) ? free_cb : (pkt_queue_free_cb)osi_free_func;
while (item != NULL) {
tmp = STAILQ_NEXT(item, next);
free_func(item);
item = tmp;
queue->length--;
}
STAILQ_INIT(header);
queue->length = 0;
}
void pkt_queue_flush(struct pkt_queue *queue, pkt_queue_free_cb free_cb)
{
if (queue == NULL) {
return;
}
osi_mutex_lock(&queue->lock, OSI_MUTEX_MAX_TIMEOUT);
pkt_queue_cleanup(queue, free_cb);
osi_mutex_unlock(&queue->lock);
}
void pkt_queue_destroy(struct pkt_queue *queue, pkt_queue_free_cb free_cb)
{
if (queue == NULL) {
return;
}
osi_mutex_lock(&queue->lock, OSI_MUTEX_MAX_TIMEOUT);
pkt_queue_cleanup(queue, free_cb);
osi_mutex_unlock(&queue->lock);
osi_mutex_free(&queue->lock);
osi_free(queue);
}
pkt_linked_item_t *pkt_queue_dequeue(struct pkt_queue *queue)
{
if (queue == NULL || queue->length == 0) {
return NULL;
}
struct pkt_linked_item *item;
struct pkt_queue_header *header;
osi_mutex_lock(&queue->lock, OSI_MUTEX_MAX_TIMEOUT);
header = &queue->header;
item = STAILQ_FIRST(header);
if (item != NULL) {
STAILQ_REMOVE_HEAD(header, next);
if (queue->length > 0) {
queue->length--;
}
}
osi_mutex_unlock(&queue->lock);
return item;
}
bool pkt_queue_enqueue(struct pkt_queue *queue, pkt_linked_item_t *item)
{
if (queue == NULL || item == NULL) {
return false;
}
struct pkt_queue_header *header;
osi_mutex_lock(&queue->lock, OSI_MUTEX_MAX_TIMEOUT);
header = &queue->header;
STAILQ_INSERT_TAIL(header, item, next);
queue->length++;
osi_mutex_unlock(&queue->lock);
return true;
}
size_t pkt_queue_length(const struct pkt_queue *queue)
{
if (queue == NULL) {
return 0;
}
return queue->length;
}
bool pkt_queue_is_empty(const struct pkt_queue *queue)
{
return pkt_queue_length(queue) == 0;
}
pkt_linked_item_t *pkt_queue_try_peek_first(struct pkt_queue *queue)
{
if (queue == NULL) {
return NULL;
}
struct pkt_queue_header *header = &queue->header;
pkt_linked_item_t *item;
osi_mutex_lock(&queue->lock, OSI_MUTEX_MAX_TIMEOUT);
item = STAILQ_FIRST(header);
osi_mutex_unlock(&queue->lock);
return item;
}

View File

@@ -19,16 +19,28 @@
#include <string.h>
#include "osi/allocator.h"
#include "osi/fixed_queue.h"
#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
#include "osi/semaphore.h"
#include "osi/thread.h"
#include "osi/mutex.h"
struct work_item {
osi_thread_func_t func;
void *context;
};
struct work_queue {
QueueHandle_t queue;
size_t capacity;
};
struct osi_thread {
void *thread_handle; /*!< Store the thread object */
int thread_id; /*!< May for some OS, such as Linux */
bool stop;
uint8_t work_queue_num; /*!< Work queue number */
fixed_queue_t **work_queues; /*!< Point to queue array, and the priority inverse array index */
struct work_queue **work_queues; /*!< Point to queue array, and the priority inverse array index */
osi_sem_t work_sem;
osi_sem_t stop_sem;
};
@@ -39,13 +51,98 @@ struct osi_thread_start_arg {
int error;
};
typedef struct {
osi_thread_func_t func;
void *context;
} work_item_t;
struct osi_event {
struct work_item item;
osi_mutex_t lock;
uint16_t is_queued;
uint16_t queue_idx;
osi_thread_t *thread;
};
static const size_t DEFAULT_WORK_QUEUE_CAPACITY = 100;
static struct work_queue *osi_work_queue_create(size_t capacity)
{
if (capacity == 0) {
return NULL;
}
struct work_queue *wq = (struct work_queue *)osi_malloc(sizeof(struct work_queue));
if (wq != NULL) {
wq->queue = xQueueCreate(capacity, sizeof(struct work_item));
if (wq->queue != 0) {
wq->capacity = capacity;
return wq;
} else {
osi_free(wq);
}
}
return NULL;
}
static void osi_work_queue_delete(struct work_queue *wq)
{
if (wq != NULL) {
if (wq->queue != 0) {
vQueueDelete(wq->queue);
}
wq->queue = 0;
wq->capacity = 0;
osi_free(wq);
}
return;
}
static bool osi_thead_work_queue_get(struct work_queue *wq, struct work_item *item)
{
assert (wq != NULL);
assert (wq->queue != 0);
assert (item != NULL);
if (pdTRUE == xQueueReceive(wq->queue, item, 0)) {
return true;
} else {
return false;
}
}
static bool osi_thead_work_queue_put(struct work_queue *wq, const struct work_item *item, uint32_t timeout)
{
assert (wq != NULL);
assert (wq->queue != 0);
assert (item != NULL);
bool ret = true;
if (timeout == OSI_SEM_MAX_TIMEOUT) {
if (xQueueSend(wq->queue, item, portMAX_DELAY) != pdTRUE) {
ret = false;
}
} else {
if (xQueueSend(wq->queue, item, timeout / portTICK_PERIOD_MS) != pdTRUE) {
ret = false;
}
}
return ret;
}
static size_t osi_thead_work_queue_len(struct work_queue *wq)
{
assert (wq != NULL);
assert (wq->queue != 0);
assert (wq->capacity != 0);
size_t available_spaces = (size_t)uxQueueSpacesAvailable(wq->queue);
if (available_spaces <= wq->capacity) {
return wq->capacity - available_spaces;
} else {
assert (0);
}
return 0;
}
static void osi_thread_run(void *arg)
{
struct osi_thread_start_arg *start = (struct osi_thread_start_arg *)arg;
@@ -62,11 +159,10 @@ static void osi_thread_run(void *arg)
break;
}
struct work_item item;
while (!thread->stop && idx < thread->work_queue_num) {
work_item_t *item = fixed_queue_dequeue(thread->work_queues[idx], 0);
if (item) {
item->func(item->context);
osi_free(item);
if (osi_thead_work_queue_get(thread->work_queues[idx], &item) == true) {
item.func(item.context);
idx = 0;
continue;
} else {
@@ -107,31 +203,32 @@ static void osi_thread_stop(osi_thread_t *thread)
}
//in linux, the stack_size, priority and core may not be set here, the code will be ignore the arguments
osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priority, osi_thread_core_t core, uint8_t work_queue_num)
osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priority, osi_thread_core_t core, uint8_t work_queue_num, const size_t work_queue_len[])
{
int ret;
struct osi_thread_start_arg start_arg = {0};
if (stack_size <= 0 ||
core < OSI_THREAD_CORE_0 || core > OSI_THREAD_CORE_AFFINITY ||
work_queue_num <= 0) {
work_queue_num <= 0 || work_queue_len == NULL) {
return NULL;
}
osi_thread_t *thread = (osi_thread_t *)osi_malloc(sizeof(osi_thread_t));
osi_thread_t *thread = (osi_thread_t *)osi_calloc(sizeof(osi_thread_t));
if (thread == NULL) {
goto _err;
}
thread->stop = false;
thread->work_queue_num = work_queue_num;
thread->work_queues = (fixed_queue_t **)osi_malloc(sizeof(fixed_queue_t *) * work_queue_num);
thread->work_queues = (struct work_queue **)osi_calloc(sizeof(struct work_queue *) * work_queue_num);
if (thread->work_queues == NULL) {
goto _err;
}
thread->work_queue_num = work_queue_num;
for (int i = 0; i < thread->work_queue_num; i++) {
thread->work_queues[i] = fixed_queue_new(DEFAULT_WORK_QUEUE_CAPACITY);
size_t queue_len = work_queue_len[i] ? work_queue_len[i] : DEFAULT_WORK_QUEUE_CAPACITY;
thread->work_queues[i] = osi_work_queue_create(queue_len);
if (thread->work_queues[i] == NULL) {
goto _err;
}
@@ -175,12 +272,14 @@ _err:
for (int i = 0; i < thread->work_queue_num; i++) {
if (thread->work_queues[i]) {
fixed_queue_free(thread->work_queues[i], osi_free_func);
osi_work_queue_delete(thread->work_queues[i]);
}
thread->work_queues[i] = NULL;
}
if (thread->work_queues) {
osi_free(thread->work_queues);
thread->work_queues = NULL;
}
if (thread->work_sem) {
@@ -206,12 +305,14 @@ void osi_thread_free(osi_thread_t *thread)
for (int i = 0; i < thread->work_queue_num; i++) {
if (thread->work_queues[i]) {
fixed_queue_free(thread->work_queues[i], osi_free_func);
osi_work_queue_delete(thread->work_queues[i]);
thread->work_queues[i] = NULL;
}
}
if (thread->work_queues) {
osi_free(thread->work_queues);
thread->work_queues = NULL;
}
if (thread->work_sem) {
@@ -235,15 +336,12 @@ bool osi_thread_post(osi_thread_t *thread, osi_thread_func_t func, void *context
return false;
}
work_item_t *item = (work_item_t *)osi_malloc(sizeof(work_item_t));
if (item == NULL) {
return false;
}
item->func = func;
item->context = context;
struct work_item item;
if (fixed_queue_enqueue(thread->work_queues[queue_idx], item, timeout) == false) {
osi_free(item);
item.func = func;
item.context = context;
if (osi_thead_work_queue_put(thread->work_queues[queue_idx], &item, timeout) == false) {
return false;
}
@@ -273,5 +371,83 @@ int osi_thread_queue_wait_size(osi_thread_t *thread, int wq_idx)
return -1;
}
return fixed_queue_length(thread->work_queues[wq_idx]);
return (int)(osi_thead_work_queue_len(thread->work_queues[wq_idx]));
}
struct osi_event *osi_event_create(osi_thread_func_t func, void *context)
{
struct osi_event *event = osi_calloc(sizeof(struct osi_event));
if (event != NULL) {
if (osi_mutex_new(&event->lock) == 0) {
event->item.func = func;
event->item.context = context;
return event;
}
osi_free(event);
}
return NULL;
}
void osi_event_delete(struct osi_event* event)
{
if (event != NULL) {
osi_mutex_free(&event->lock);
memset(event, 0, sizeof(struct osi_event));
osi_free(event);
}
}
bool osi_event_bind(struct osi_event* event, osi_thread_t *thread, int queue_idx)
{
if (event == NULL || event->thread != NULL) {
return false;
}
if (thread == NULL || queue_idx >= thread->work_queue_num) {
return false;
}
event->thread = thread;
event->queue_idx = queue_idx;
return true;
}
static void osi_thread_generic_event_handler(void *context)
{
struct osi_event *event = (struct osi_event *)context;
if (event != NULL && event->item.func != NULL) {
osi_mutex_lock(&event->lock, OSI_MUTEX_MAX_TIMEOUT);
event->is_queued = 0;
osi_mutex_unlock(&event->lock);
event->item.func(event->item.context);
}
}
bool osi_thread_post_event(struct osi_event *event, uint32_t timeout)
{
assert(event != NULL && event->thread != NULL);
assert(event->queue_idx >= 0 && event->queue_idx < event->thread->work_queue_num);
bool ret = false;
if (event->is_queued == 0) {
uint16_t acquire_cnt = 0;
osi_mutex_lock(&event->lock, OSI_MUTEX_MAX_TIMEOUT);
event->is_queued += 1;
acquire_cnt = event->is_queued;
osi_mutex_unlock(&event->lock);
if (acquire_cnt == 1) {
ret = osi_thread_post(event->thread, osi_thread_generic_event_handler, event, event->queue_idx, timeout);
if (!ret) {
// clear "is_queued" when post failure, to allow for following event posts
osi_mutex_lock(&event->lock, OSI_MUTEX_MAX_TIMEOUT);
event->is_queued = 0;
osi_mutex_unlock(&event->lock);
}
}
}
return ret;
}

View File

@@ -205,6 +205,11 @@ menu "HCI UART(H4) Options"
help
UART Baudrate for HCI. Please use standard baudrate.
config BTDM_CTRL_HCI_UART_FLOW_CTRL_EN
bool "Enable UART flow control"
depends on BTDM_CTRL_HCI_MODE_UART_H4
default y
endmenu
menu "MODEM SLEEP Options"
@@ -348,11 +353,27 @@ config BTDM_SCAN_DUPL_CACHE_SIZE
int "Maximum number of devices in scan duplicate filter"
depends on BTDM_BLE_SCAN_DUPL
range 10 1000
default 200
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 BTDM_SCAN_DUPL_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
depends on BTDM_BLE_SCAN_DUPL
range 0 1000
default 0
help
If the period value is non-zero, the controller will periodically clear the device information
stored in the scan duuplicate filter. If it is 0, the scan duuplicate filter will not be cleared
until the scanning is disabled. Duplicate advertisements for this period should not be sent to the
Host in advertising report events.
There are two scenarios where the ADV packet will be repeatedly reported:
1. The duplicate scan cache is full, the controller will delete the oldest device information and
add new device information.
2. When the refresh period is up, the controller will clear all device information and start filtering
again.
config BTDM_BLE_MESH_SCAN_DUPL_EN
bool "Special duplicate scan mechanism for BLE Mesh scan"
depends on BTDM_BLE_SCAN_DUPL
@@ -364,7 +385,7 @@ config BTDM_MESH_DUPL_SCAN_CACHE_SIZE
int "Maximum number of Mesh adv packets in scan duplicate filter"
depends on BTDM_BLE_MESH_SCAN_DUPL_EN
range 10 1000
default 200
default 100
help
Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh.
When the maximum amount of device in the filter is reached, the cache will be refreshed.

View File

@@ -1,16 +1,8 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stddef.h>
#include <stdlib.h>
@@ -41,7 +33,9 @@
#include "soc/rtc.h"
#include "soc/soc_memory_layout.h"
#include "esp32/clk.h"
#include "esp_coexist.h"
#include "esp_coexist_internal.h"
#include "esp_timer.h"
#if !CONFIG_FREERTOS_UNICORE
#include "esp_ipc.h"
#endif
@@ -92,13 +86,9 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010003
#define OSI_VERSION 0x00010004
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* SPIRAM Configuration */
#if CONFIG_SPIRAM_USE_MALLOC
#define BTDM_MAX_QUEUE_NUM (6)
#endif
/* Types definition
************************************************************************
@@ -117,14 +107,10 @@ typedef struct {
intptr_t end;
} btdm_dram_available_region_t;
/* PSRAM configuration */
#if CONFIG_SPIRAM_USE_MALLOC
typedef struct {
QueueHandle_t handle;
void *handle;
void *storage;
void *buffer;
} btdm_queue_item_t;
#endif
/* OSI function */
struct osi_funcs_t {
@@ -188,6 +174,7 @@ struct osi_funcs_t {
void (*_interrupt_l3_disable)(void);
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);
uint32_t _magic;
};
@@ -246,6 +233,8 @@ extern int coex_wifi_channel_get(uint8_t *primary, uint8_t *secondary);
extern int coex_register_wifi_channel_change_callback(void *cb);
/* Shutdown */
extern void esp_bt_controller_shutdown(void);
extern void sdk_config_set_bt_pll_track_enable(bool enable);
extern void sdk_config_set_uart_flow_ctrl_enable(bool enable);
extern char _bss_start_btdm;
extern char _bss_end_btdm;
@@ -270,10 +259,6 @@ extern uint32_t _btdm_data_end;
/* Local Function Declare
*********************************************************************
*/
#if CONFIG_SPIRAM_USE_MALLOC
static bool btdm_queue_generic_register(const btdm_queue_item_t *queue);
static bool btdm_queue_generic_deregister(btdm_queue_item_t *queue);
#endif /* CONFIG_SPIRAM_USE_MALLOC */
static void IRAM_ATTR interrupt_disable(void);
static void IRAM_ATTR interrupt_restore(void);
static void IRAM_ATTR task_yield(void);
@@ -324,6 +309,9 @@ static uint8_t coex_schm_curr_period_get_wrapper(void);
static void * coex_schm_curr_phase_get_wrapper(void);
static int coex_wifi_channel_get_wrapper(uint8_t *primary, uint8_t *secondary);
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);
static void bt_controller_deinit_internal(void);
/* Local variable definition
***************************************************************************
*/
@@ -389,6 +377,7 @@ static const struct osi_funcs_t osi_funcs_ro = {
._interrupt_l3_disable = interrupt_disable,
._interrupt_l3_restore = interrupt_restore,
._customer_queue_create = NULL,
._coex_version_get = coex_version_get_wrapper,
._magic = OSI_MAGIC_VALUE,
};
@@ -415,11 +404,6 @@ SOC_RESERVE_MEMORY_REGION(SOC_MEM_BT_DATA_START, SOC_MEM_BT_DATA_END,
static DRAM_ATTR struct osi_funcs_t *osi_funcs_p;
#if CONFIG_SPIRAM_USE_MALLOC
static DRAM_ATTR btdm_queue_item_t btdm_queue_table[BTDM_MAX_QUEUE_NUM];
static DRAM_ATTR SemaphoreHandle_t btdm_queue_table_mux = NULL;
#endif /* #if CONFIG_SPIRAM_USE_MALLOC */
/* Static variable declare */
// timestamp when PHY/RF was switched on
static DRAM_ATTR int64_t s_time_phy_rf_just_enabled = 0;
@@ -448,6 +432,18 @@ static void btdm_slp_tmr_callback(void *arg);
#endif /* #ifdef CONFIG_PM_ENABLE */
static inline void esp_bt_power_domain_on(void)
{
// Bluetooth module power up
esp_wifi_bt_power_domain_on();
}
static inline void esp_bt_power_domain_off(void)
{
// Bluetooth module power down
esp_wifi_bt_power_domain_off();
}
static inline void btdm_check_and_init_bb(void)
{
/* init BT-BB if PHY/RF has been switched off since last BT-BB init */
@@ -459,52 +455,6 @@ static inline void btdm_check_and_init_bb(void)
}
}
#if CONFIG_SPIRAM_USE_MALLOC
static bool btdm_queue_generic_register(const btdm_queue_item_t *queue)
{
if (!btdm_queue_table_mux || !queue) {
return NULL;
}
bool ret = false;
btdm_queue_item_t *item;
xSemaphoreTake(btdm_queue_table_mux, portMAX_DELAY);
for (int i = 0; i < BTDM_MAX_QUEUE_NUM; ++i) {
item = &btdm_queue_table[i];
if (item->handle == NULL) {
memcpy(item, queue, sizeof(btdm_queue_item_t));
ret = true;
break;
}
}
xSemaphoreGive(btdm_queue_table_mux);
return ret;
}
static bool btdm_queue_generic_deregister(btdm_queue_item_t *queue)
{
if (!btdm_queue_table_mux || !queue) {
return false;
}
bool ret = false;
btdm_queue_item_t *item;
xSemaphoreTake(btdm_queue_table_mux, portMAX_DELAY);
for (int i = 0; i < BTDM_MAX_QUEUE_NUM; ++i) {
item = &btdm_queue_table[i];
if (item->handle == queue->handle) {
memcpy(queue, item, sizeof(btdm_queue_item_t));
memset(item, 0, sizeof(btdm_queue_item_t));
ret = true;
break;
}
}
xSemaphoreGive(btdm_queue_table_mux);
return ret;
}
#endif /* CONFIG_SPIRAM_USE_MALLOC */
static void IRAM_ATTR interrupt_disable(void)
{
if (xPortInIsrContext()) {
@@ -535,148 +485,74 @@ static void IRAM_ATTR task_yield_from_isr(void)
static void *semphr_create_wrapper(uint32_t max, uint32_t init)
{
btdm_queue_item_t *semphr = heap_caps_calloc(1, sizeof(btdm_queue_item_t), MALLOC_CAP_8BIT|MALLOC_CAP_INTERNAL);
assert(semphr);
#if !CONFIG_SPIRAM_USE_MALLOC
return (void *)xSemaphoreCreateCounting(max, init);
semphr->handle = (void *)xSemaphoreCreateCounting(max, init);
#else
StaticQueue_t *queue_buffer = NULL;
QueueHandle_t handle = NULL;
queue_buffer = heap_caps_malloc(sizeof(StaticQueue_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
if (!queue_buffer) {
goto error;
}
semphr->storage = heap_caps_malloc(sizeof(StaticQueue_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
assert(semphr->storage);
handle = xSemaphoreCreateCountingStatic(max, init, queue_buffer);
if (!handle) {
goto error;
}
btdm_queue_item_t item = {
.handle = handle,
.storage = NULL,
.buffer = queue_buffer,
};
if (!btdm_queue_generic_register(&item)) {
goto error;
}
return handle;
error:
if (handle) {
vSemaphoreDelete(handle);
}
if (queue_buffer) {
free(queue_buffer);
}
return NULL;
semphr->handle = (void *)xSemaphoreCreateCountingStatic(max, init, semphr->storage);
#endif
assert(semphr->handle);
return semphr;
}
static void semphr_delete_wrapper(void *semphr)
{
#if !CONFIG_SPIRAM_USE_MALLOC
vSemaphoreDelete(semphr);
#else
btdm_queue_item_t item = {
.handle = semphr,
.storage = NULL,
.buffer = NULL,
};
if (btdm_queue_generic_deregister(&item)) {
vSemaphoreDelete(item.handle);
free(item.buffer);
if (semphr == NULL) {
return;
}
return;
btdm_queue_item_t *semphr_item = (btdm_queue_item_t *)semphr;
if (semphr_item->handle) {
vSemaphoreDelete(semphr_item->handle);
}
#ifdef CONFIG_SPIRAM_USE_MALLOC
if (semphr_item->storage) {
free(semphr_item->storage);
}
#endif
free(semphr);
}
static int32_t IRAM_ATTR semphr_take_from_isr_wrapper(void *semphr, void *hptw)
{
return (int32_t)xSemaphoreTakeFromISR(semphr, hptw);
return (int)xSemaphoreTakeFromISR(((btdm_queue_item_t *)semphr)->handle, hptw);
}
static int32_t IRAM_ATTR semphr_give_from_isr_wrapper(void *semphr, void *hptw)
{
return (int32_t)xSemaphoreGiveFromISR(semphr, hptw);
return (int)xSemaphoreGiveFromISR(((btdm_queue_item_t *)semphr)->handle, hptw);
}
static int32_t semphr_take_wrapper(void *semphr, uint32_t block_time_ms)
{
if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) {
return (int32_t)xSemaphoreTake(semphr, portMAX_DELAY);
return (int)xSemaphoreTake(((btdm_queue_item_t *)semphr)->handle, portMAX_DELAY);
} else {
return (int32_t)xSemaphoreTake(semphr, block_time_ms / portTICK_PERIOD_MS);
return (int)xSemaphoreTake(((btdm_queue_item_t *)semphr)->handle, block_time_ms / portTICK_PERIOD_MS);
}
}
static int32_t semphr_give_wrapper(void *semphr)
{
return (int32_t)xSemaphoreGive(semphr);
return (int)xSemaphoreGive(((btdm_queue_item_t *)semphr)->handle);
}
static void *mutex_create_wrapper(void)
{
#if CONFIG_SPIRAM_USE_MALLOC
StaticQueue_t *queue_buffer = NULL;
QueueHandle_t handle = NULL;
queue_buffer = heap_caps_malloc(sizeof(StaticQueue_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
if (!queue_buffer) {
goto error;
}
handle = xSemaphoreCreateMutexStatic(queue_buffer);
if (!handle) {
goto error;
}
btdm_queue_item_t item = {
.handle = handle,
.storage = NULL,
.buffer = queue_buffer,
};
if (!btdm_queue_generic_register(&item)) {
goto error;
}
return handle;
error:
if (handle) {
vSemaphoreDelete(handle);
}
if (queue_buffer) {
free(queue_buffer);
}
return NULL;
#else
return (void *)xSemaphoreCreateMutex();
#endif
}
static void mutex_delete_wrapper(void *mutex)
{
#if !CONFIG_SPIRAM_USE_MALLOC
vSemaphoreDelete(mutex);
#else
btdm_queue_item_t item = {
.handle = mutex,
.storage = NULL,
.buffer = NULL,
};
if (btdm_queue_generic_deregister(&item)) {
vSemaphoreDelete(item.handle);
free(item.buffer);
}
return;
#endif
}
static int32_t mutex_lock_wrapper(void *mutex)
@@ -691,102 +567,71 @@ static int32_t mutex_unlock_wrapper(void *mutex)
static void *queue_create_wrapper(uint32_t queue_len, uint32_t item_size)
{
btdm_queue_item_t *queue = NULL;
queue = (btdm_queue_item_t*)heap_caps_malloc(sizeof(btdm_queue_item_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
assert(queue);
#if CONFIG_SPIRAM_USE_MALLOC
StaticQueue_t *queue_buffer = NULL;
uint8_t *queue_storage = NULL;
QueueHandle_t handle = NULL;
queue_buffer = heap_caps_malloc(sizeof(StaticQueue_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
if (!queue_buffer) {
goto error;
}
queue->storage = heap_caps_calloc(1, sizeof(StaticQueue_t) + (queue_len*item_size), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
assert(queue->storage);
queue_storage = heap_caps_malloc((queue_len*item_size), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
if (!queue_storage ) {
goto error;
}
queue->handle = xQueueCreateStatic( queue_len, item_size, ((uint8_t*)(queue->storage)) + sizeof(StaticQueue_t), (StaticQueue_t*)(queue->storage));
assert(queue->handle);
handle = xQueueCreateStatic(queue_len, item_size, queue_storage, queue_buffer);
if (!handle) {
goto error;
}
btdm_queue_item_t item = {
.handle = handle,
.storage = queue_storage,
.buffer = queue_buffer,
};
if (!btdm_queue_generic_register(&item)) {
goto error;
}
return handle;
error:
if (handle) {
vQueueDelete(handle);
}
if (queue_storage) {
free(queue_storage);
}
if (queue_buffer) {
free(queue_buffer);
}
return NULL;
#else
return (void *)xQueueCreate(queue_len, item_size);
queue->handle = xQueueCreate( queue_len, item_size);
assert(queue->handle);
#endif
return queue;
}
static void queue_delete_wrapper(void *queue)
{
#if !CONFIG_SPIRAM_USE_MALLOC
vQueueDelete(queue);
#else
btdm_queue_item_t item = {
.handle = queue,
.storage = NULL,
.buffer = NULL,
};
btdm_queue_item_t *queue_item = (btdm_queue_item_t *)queue;
if (queue_item) {
if(queue_item->handle){
vQueueDelete(queue_item->handle);
}
if (btdm_queue_generic_deregister(&item)) {
vQueueDelete(item.handle);
free(item.storage);
free(item.buffer);
}
return;
#if CONFIG_SPIRAM_USE_MALLOC
if (queue_item->storage) {
free(queue_item->storage);
}
#endif
free(queue_item);
}
}
static int32_t queue_send_wrapper(void *queue, void *item, uint32_t block_time_ms)
{
if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) {
return (int32_t)xQueueSend(queue, item, portMAX_DELAY);
return (int32_t)xQueueSend(((btdm_queue_item_t*)queue)->handle, item, portMAX_DELAY);
} else {
return (int32_t)xQueueSend(queue, item, block_time_ms / portTICK_PERIOD_MS);
return (int32_t)xQueueSend(((btdm_queue_item_t*)queue)->handle, item, block_time_ms / portTICK_PERIOD_MS);
}
}
static int32_t IRAM_ATTR queue_send_from_isr_wrapper(void *queue, void *item, void *hptw)
{
return (int32_t)xQueueSendFromISR(queue, item, hptw);
return (int32_t)xQueueSendFromISR(((btdm_queue_item_t*)queue)->handle, item, hptw);
}
static int32_t queue_recv_wrapper(void *queue, void *item, uint32_t block_time_ms)
{
if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) {
return (int32_t)xQueueReceive(queue, item, portMAX_DELAY);
return (int32_t)xQueueReceive(((btdm_queue_item_t*)queue)->handle, item, portMAX_DELAY);
} else {
return (int32_t)xQueueReceive(queue, item, block_time_ms / portTICK_PERIOD_MS);
return (int32_t)xQueueReceive(((btdm_queue_item_t*)queue)->handle, item, block_time_ms / portTICK_PERIOD_MS);
}
}
static int32_t IRAM_ATTR queue_recv_from_isr_wrapper(void *queue, void *item, void *hptw)
{
return (int32_t)xQueueReceiveFromISR(queue, item, hptw);
return (int32_t)xQueueReceiveFromISR(((btdm_queue_item_t*)queue)->handle, item, hptw);
}
static int32_t task_create_wrapper(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id)
@@ -834,7 +679,11 @@ static void *malloc_internal_wrapper(size_t size)
static int32_t IRAM_ATTR read_mac_wrapper(uint8_t mac[6])
{
return esp_read_mac(mac, ESP_MAC_BT);
int ret = esp_read_mac(mac, ESP_MAC_BT);
ESP_LOGI(BTDM_LOG_TAG, "Bluetooth MAC: %02x:%02x:%02x:%02x:%02x:%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return ret;
}
static void IRAM_ATTR srand_wrapper(unsigned int seed)
@@ -1158,6 +1007,30 @@ static int coex_register_wifi_channel_change_callback_wrapper(void *cb)
#endif
}
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;
}
#endif
return -1;
}
bool esp_vhci_host_check_send_available(void)
{
return API_vhci_host_check_send_available();
@@ -1378,13 +1251,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
ESP_LOGI(BTDM_LOG_TAG, "BT controller compile version [%s]", btdm_controller_get_compile_version());
#if CONFIG_SPIRAM_USE_MALLOC
btdm_queue_table_mux = xSemaphoreCreateMutex();
if (btdm_queue_table_mux == NULL) {
return ESP_ERR_NO_MEM;
}
memset(btdm_queue_table, 0, sizeof(btdm_queue_item_t) * BTDM_MAX_QUEUE_NUM);
#endif
esp_phy_modem_init();
esp_bt_power_domain_on();
s_wakeup_req_sem = semphr_create_wrapper(1, 0);
if (s_wakeup_req_sem == NULL) {
@@ -1447,6 +1316,12 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
btdm_controller_set_sleep_mode(BTDM_MODEM_SLEEP_MODE_NONE);
#endif
#if CONFIG_BTDM_CTRL_HCI_UART_FLOW_CTRL_EN
sdk_config_set_uart_flow_ctrl_enable(true);
#else
sdk_config_set_uart_flow_ctrl_enable(false);
#endif
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
if ((err = esp_pm_lock_create(ESP_PM_NO_LIGHT_SLEEP, 0, "btLS", &s_light_sleep_pm_lock)) != ESP_OK) {
@@ -1484,26 +1359,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_OK;
error:
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
if (s_light_sleep_pm_lock != NULL) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
}
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
}
if (s_btdm_slp_tmr != NULL) {
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
#endif
if (s_wakeup_req_sem) {
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
bt_controller_deinit_internal();
return err;
}
@@ -1515,6 +1373,13 @@ esp_err_t esp_bt_controller_deinit(void)
btdm_controller_deinit();
bt_controller_deinit_internal();
return ESP_OK;
}
static void bt_controller_deinit_internal(void)
{
periph_module_disable(PERIPH_BT_MODULE);
#ifdef CONFIG_PM_ENABLE
@@ -1536,24 +1401,25 @@ esp_err_t esp_bt_controller_deinit(void)
s_pm_lock_acquired = false;
#endif
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
#if CONFIG_SPIRAM_USE_MALLOC
vSemaphoreDelete(btdm_queue_table_mux);
btdm_queue_table_mux = NULL;
memset(btdm_queue_table, 0, sizeof(btdm_queue_item_t) * BTDM_MAX_QUEUE_NUM);
#endif
if (s_wakeup_req_sem) {
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
free(osi_funcs_p);
osi_funcs_p = NULL;
if (osi_funcs_p) {
free(osi_funcs_p);
osi_funcs_p = NULL;
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
btdm_lpcycle_us = 0;
btdm_controller_set_sleep_mode(BTDM_MODEM_SLEEP_MODE_NONE);
return ESP_OK;
esp_bt_power_domain_off();
esp_phy_modem_deinit();
}
static void bt_shutdown(void)
@@ -1599,6 +1465,8 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
btdm_controller_enable_sleep(true);
}
sdk_config_set_bt_pll_track_enable(true);
// inititalize bluetooth baseband
btdm_check_and_init_bb();

View File

@@ -4,11 +4,13 @@ config BT_CTRL_MODE_EFF
config BT_CTRL_BLE_MAX_ACT
int "BLE Max Instances"
default 10
default 6
range 1 10
help
BLE maximum activities of bluetooth controllerboth of connections,
scan , sync and adv(periodic adv, multi-adv).
scan , sync and adv(periodic adv, multi-adv). Each instance needs to
consume 828 bytes, you can save RAM by modifying the instance value
according to actual needs.
config BT_CTRL_BLE_MAX_ACT_EFF
int
@@ -60,15 +62,29 @@ config BT_CTRL_ADV_DUP_FILT_MAX
help
The maxinum number of suplicate scan filter
config BT_CTRL_HW_CCA
bool "HW CCA check enable"
default n
choice BT_BLE_CCA_MODE
prompt "BLE CCA mode"
default BT_BLE_CCA_MODE_NONE
help
It enables HW CCA feature in controller
Define BT BLE CCA mode
config BT_BLE_CCA_MODE_NONE
bool "NONE"
config BT_BLE_CCA_MODE_HW
bool "Hardware"
config BT_BLE_CCA_MODE_SW
bool "Software"
endchoice
config BT_BLE_CCA_MODE
int
default 0 if BT_BLE_CCA_MODE_NONE
default 1 if BT_BLE_CCA_MODE_HW
default 2 if BT_BLE_CCA_MODE_SW
config BT_CTRL_HW_CCA_VAL
int "CCA threshold value"
range 20 60
range 20 100
default 20
help
It is the threshold value of HW CCA, if the value is 30, it means CCA threshold is -30 dBm.
@@ -134,12 +150,10 @@ config BT_CTRL_RX_ANTENNA_INDEX_EFF
choice BT_CTRL_DFT_TX_POWER_LEVEL
prompt "BLE default Tx power level"
default BT_CTRL_DFT_TX_POWER_LEVEL_P3
default BT_CTRL_DFT_TX_POWER_LEVEL_P9
help
Specify default Tx power level
config BT_CTRL_DFT_TX_POWER_LEVEL_N27
bool "-27dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N24
bool "-24dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N21
@@ -170,26 +184,28 @@ choice BT_CTRL_DFT_TX_POWER_LEVEL
bool "+15dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P18
bool "+18dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P21
bool "+21dBm"
endchoice
config BT_CTRL_DFT_TX_POWER_LEVEL_EFF
int
default 0 if BT_CTRL_DFT_TX_POWER_LEVEL_N27
default 1 if BT_CTRL_DFT_TX_POWER_LEVEL_N24
default 2 if BT_CTRL_DFT_TX_POWER_LEVEL_N21
default 3 if BT_CTRL_DFT_TX_POWER_LEVEL_N18
default 4 if BT_CTRL_DFT_TX_POWER_LEVEL_N15
default 5 if BT_CTRL_DFT_TX_POWER_LEVEL_N12
default 6 if BT_CTRL_DFT_TX_POWER_LEVEL_N9
default 7 if BT_CTRL_DFT_TX_POWER_LEVEL_N6
default 8 if BT_CTRL_DFT_TX_POWER_LEVEL_N3
default 9 if BT_CTRL_DFT_TX_POWER_LEVEL_N0
default 10 if BT_CTRL_DFT_TX_POWER_LEVEL_P3
default 11 if BT_CTRL_DFT_TX_POWER_LEVEL_P6
default 12 if BT_CTRL_DFT_TX_POWER_LEVEL_P9
default 13 if BT_CTRL_DFT_TX_POWER_LEVEL_P12
default 14 if BT_CTRL_DFT_TX_POWER_LEVEL_P15
default 15 if BT_CTRL_DFT_TX_POWER_LEVEL_P18
default 0 if BT_CTRL_DFT_TX_POWER_LEVEL_N24
default 1 if BT_CTRL_DFT_TX_POWER_LEVEL_N21
default 2 if BT_CTRL_DFT_TX_POWER_LEVEL_N18
default 3 if BT_CTRL_DFT_TX_POWER_LEVEL_N15
default 4 if BT_CTRL_DFT_TX_POWER_LEVEL_N12
default 5 if BT_CTRL_DFT_TX_POWER_LEVEL_N9
default 6 if BT_CTRL_DFT_TX_POWER_LEVEL_N6
default 7 if BT_CTRL_DFT_TX_POWER_LEVEL_N3
default 8 if BT_CTRL_DFT_TX_POWER_LEVEL_N0
default 9 if BT_CTRL_DFT_TX_POWER_LEVEL_P3
default 10 if BT_CTRL_DFT_TX_POWER_LEVEL_P6
default 11 if BT_CTRL_DFT_TX_POWER_LEVEL_P9
default 12 if BT_CTRL_DFT_TX_POWER_LEVEL_P12
default 13 if BT_CTRL_DFT_TX_POWER_LEVEL_P15
default 14 if BT_CTRL_DFT_TX_POWER_LEVEL_P18
default 15 if BT_CTRL_DFT_TX_POWER_LEVEL_P21
default 0
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
@@ -247,20 +263,19 @@ choice BT_CTRL_SCAN_DUPL_TYPE
config BT_CTRL_SCAN_DUPL_TYPE_DEVICE
bool "Scan Duplicate By Device Address"
help
This way is to use advertiser address filtering. The adv packet of the same address is only
allowed to be reported once
Advertising packets with the same address, address type, and advertising type are reported once.
config BT_CTRL_SCAN_DUPL_TYPE_DATA
bool "Scan Duplicate By Advertising Data"
help
This way is to use advertising data filtering. All same advertising data only allow to be reported
once even though they are from different devices.
Advertising packets with identical advertising data, address type, and advertising type
are reported only once, even if they originate from different devices.
config BT_CTRL_SCAN_DUPL_TYPE_DATA_DEVICE
bool "Scan Duplicate By Device Address And Advertising Data"
help
This way is to use advertising data and device address filtering. All different adv packets with
the same address are allowed to be reported.
Advertising packets with the same address, advertising data, address type,
and advertising type are reported only once.
endchoice
config BT_CTRL_SCAN_DUPL_TYPE
@@ -280,6 +295,22 @@ config BT_CTRL_SCAN_DUPL_CACHE_SIZE
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_CTRL_DUPL_SCAN_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
depends on BT_CTRL_BLE_SCAN_DUPL
range 0 1000
default 0
help
If the period value is non-zero, the controller will periodically clear the device information
stored in the scan duuplicate filter. If it is 0, the scan duuplicate filter will not be cleared
until the scanning is disabled. Duplicate advertisements for this period should not be sent to the
Host in advertising report events.
There are two scenarios where the ADV packet will be repeatedly reported:
1. The duplicate scan cache is full, the controller will delete the oldest device information and
add new device information.
2. When the refresh period is up, the controller will clear all device information and start filtering
again.
config BT_CTRL_BLE_MESH_SCAN_DUPL_EN
bool "Special duplicate scan mechanism for BLE Mesh scan"
depends on BT_CTRL_BLE_SCAN_DUPL
@@ -351,9 +382,9 @@ menu "MODEM SLEEP Options"
bool "Main crystal"
help
Main crystal can be used as low power clock for bluetooth modem sleep. If this option is
selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but
cannot work when light sleep is enabled. Main crystal has a relatively better performance than
other bluetooth low power clock sources.
selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, and
bluetooth can work under light sleep enabled. Main crystal has a relatively better performance
than other bluetooth low power clock sources.
config BT_CTRL_LPCLK_SEL_EXT_32K_XTAL
bool "External 32kHz crystal"
depends on ESP32C3_RTC_CLK_SRC_EXT_CRYS
@@ -368,9 +399,18 @@ menu "MODEM SLEEP Options"
help
Internal 150kHz RC oscillator. The accuracy of this clock is a lot larger than 500ppm which is required
in Bluetooth communication, so don't select this option in scenarios such as BLE connection state.
endchoice
config BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
bool "power up main XTAL during light sleep"
depends on (BT_CTRL_LPCLK_SEL_MAIN_XTAL || BT_CTRL_LPCLK_SEL_EXT_32K_XTAL) && FREERTOS_USE_TICKLESS_IDLE
default n
help
If this option is selected, the main crystal will power up during light sleep when the low power clock
selects an external 32kHz crystal but the external 32kHz crystal does not exist or the low power clock
selects the main crystal.
endmenu
config BT_CTRL_SLEEP_MODE_EFF
@@ -404,3 +444,11 @@ config BT_CTRL_CODED_AGC_RECORRECT_EN
default n
help
Enable coded phy AGC recorrect
config BT_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.

View File

@@ -1,16 +1,8 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stddef.h>
#include <stdlib.h>
@@ -45,6 +37,7 @@
#include "esp32c3/rom/rom_layout.h"
#include "esp_timer.h"
#include "esp_sleep.h"
#include "phy.h"
#if CONFIG_BT_ENABLED
@@ -78,7 +71,8 @@ typedef union {
uint32_t mac_bb_pd : 1; // whether hardware(MAC, BB) force-power-down is required during sleep
uint32_t wakeup_timer_required : 1; // whether system timer is needed
uint32_t no_light_sleep : 1; // do not allow system to enter light sleep after bluetooth is enabled
uint32_t reserved : 26; // reserved
uint32_t main_xtal_pu : 1; // power up main XTAL
uint32_t reserved : 25; // reserved
};
uint32_t val;
} btdm_lpcntl_t;
@@ -110,7 +104,7 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010006
#define OSI_VERSION 0x00010007
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* Types definition
@@ -194,6 +188,8 @@ struct osi_funcs_t {
void (* _esp_hw_power_down)(void);
void (* _esp_hw_power_up)(void);
void (* _ets_backup_dma_copy)(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_rem);
void (* _ets_delay_us)(uint32_t us);
void (* _btdm_rom_table_ready)(void);
};
@@ -223,8 +219,8 @@ extern void btdm_in_wakeup_requesting_set(bool in_wakeup_requesting);
/* vendor dependent tasks to be posted and handled by controller task*/
extern int btdm_vnd_offload_task_register(btdm_vnd_ol_sig_t sig, btdm_vnd_ol_task_func_t func);
extern int btdm_vnd_offload_task_deregister(btdm_vnd_ol_sig_t sig);
extern int btdm_vnd_offload_post_from_isr(btdm_vnd_ol_sig_t sig, void *param, bool need_yield);
extern int btdm_vnd_offload_post(btdm_vnd_ol_sig_t sig, void *param);
extern int r_btdm_vnd_offload_post_from_isr(btdm_vnd_ol_sig_t sig, void *param, bool need_yield);
extern int r_btdm_vnd_offload_post(btdm_vnd_ol_sig_t sig, void *param);
/* Low Power Clock */
extern bool btdm_lpclk_select_src(uint32_t sel);
@@ -241,12 +237,12 @@ extern int ble_txpwr_get(int power_type);
extern uint16_t l2c_ble_link_get_tx_buf_num(void);
extern int coex_core_ble_conn_dyn_prio_get(bool *low, bool *high);
extern void coex_pti_v2(void);
extern bool btdm_deep_sleep_mem_init(void);
extern void btdm_deep_sleep_mem_deinit(void);
extern void btdm_ble_power_down_dma_copy(bool copy);
extern uint8_t btdm_sleep_clock_sync(void);
extern void sdk_config_extend_set_pll_track(bool enable);
#if CONFIG_MAC_BB_PD
extern void esp_mac_bb_power_down(void);
@@ -254,24 +250,20 @@ extern void esp_mac_bb_power_up(void);
extern void ets_backup_dma_copy(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem);
#endif
extern char _bss_start_btdm;
extern char _bss_end_btdm;
extern char _data_start_btdm;
extern char _data_end_btdm;
extern uint32_t _data_start_btdm_rom;
extern uint32_t _data_end_btdm_rom;
extern void btdm_cca_feature_enable(void);
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _btdm_bss_start;
extern uint32_t _btdm_bss_end;
extern uint32_t _nimble_bss_start;
extern uint32_t _nimble_bss_end;
extern uint32_t _bt_data_start;
extern uint32_t _bt_data_end;
extern uint32_t _btdm_data_start;
extern uint32_t _btdm_data_end;
extern char _bt_tmp_bss_start;
extern char _bt_tmp_bss_end;
extern uint32_t _nimble_data_start;
extern uint32_t _nimble_data_end;
/* Local Function Declare
*********************************************************************
@@ -319,8 +311,14 @@ static void interrupt_off_wrapper(int intr_num);
static void btdm_hw_mac_power_up_wrapper(void);
static void btdm_hw_mac_power_down_wrapper(void);
static void btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem);
static void btdm_funcs_table_ready_wrapper(void);
static void btdm_slp_tmr_callback(void *arg);
static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end);
static void bt_controller_deinit_internal(void);
/* Local variable definition
***************************************************************************
*/
@@ -378,6 +376,8 @@ static const struct osi_funcs_t osi_funcs_ro = {
._esp_hw_power_down = btdm_hw_mac_power_down_wrapper,
._esp_hw_power_up = btdm_hw_mac_power_up_wrapper,
._ets_backup_dma_copy = btdm_backup_dma_copy_wrapper,
._ets_delay_us = esp_rom_delay_us,
._btdm_rom_table_ready = btdm_funcs_table_ready_wrapper,
};
static DRAM_ATTR struct osi_funcs_t *osi_funcs_p;
@@ -409,7 +409,7 @@ static DRAM_ATTR esp_pm_lock_handle_t s_light_sleep_pm_lock;
void IRAM_ATTR btdm_hw_mac_power_down_wrapper(void)
{
#if CONFIG_MAC_BB_PD
// le module power down
// Bluetooth module power down
SET_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
SET_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
@@ -420,7 +420,7 @@ void IRAM_ATTR btdm_hw_mac_power_down_wrapper(void)
void IRAM_ATTR btdm_hw_mac_power_up_wrapper(void)
{
#if CONFIG_MAC_BB_PD
// le module power up
// Bluetooth module power up
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
@@ -428,6 +428,22 @@ void IRAM_ATTR btdm_hw_mac_power_up_wrapper(void)
#endif
}
static inline void esp_bt_power_domain_on(void)
{
// Bluetooth module power up
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
esp_wifi_bt_power_domain_on();
}
static inline void esp_bt_power_domain_off(void)
{
// Bluetooth module power down
SET_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
SET_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
esp_wifi_bt_power_domain_off();
}
void IRAM_ATTR btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem)
{
#if CONFIG_MAC_BB_PD
@@ -762,7 +778,7 @@ static void IRAM_ATTR btdm_sleep_exit_phase0(void *param)
static void IRAM_ATTR btdm_slp_tmr_callback(void *arg)
{
#ifdef CONFIG_PM_ENABLE
btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)BTDM_ASYNC_WAKEUP_SRC_TMR);
r_btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)BTDM_ASYNC_WAKEUP_SRC_TMR);
#endif
}
@@ -779,7 +795,7 @@ static bool async_wakeup_request(int event)
case BTDM_ASYNC_WAKEUP_SRC_DISA:
btdm_in_wakeup_requesting_set(true);
if (!btdm_power_state_active()) {
btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)event);
r_btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)event);
do_wakeup_request = true;
semphr_take_wrapper(s_wakeup_req_sem, OSI_FUNCS_TIME_BLOCKING);
}
@@ -815,6 +831,13 @@ static void async_wakeup_request_end(int event)
return;
}
static void btdm_funcs_table_ready_wrapper(void)
{
#if BT_BLE_CCA_MODE == 2
btdm_cca_feature_enable();
#endif
}
static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status)
{
#if CONFIG_SW_COEXIST_ENABLE
@@ -865,13 +888,142 @@ static void btdm_controller_mem_init(void)
esp_err_t esp_bt_controller_mem_release(esp_bt_mode_t mode)
{
ESP_LOGW(BTDM_LOG_TAG, "%s not implemented, return OK", __func__);
intptr_t mem_start=(intptr_t) NULL, mem_end=(intptr_t) NULL;
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
if (mode & ESP_BT_MODE_BLE) {
/* if the addresses of rom btdm .data and .bss are consecutive,
they are registered in the system heap as a piece of memory
*/
if(ets_rom_layout_p->data_end_btdm == ets_rom_layout_p->bss_start_btdm) {
mem_start = (intptr_t)ets_rom_layout_p->data_start_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release rom btdm [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)ets_rom_layout_p->bss_start_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release rom btdm 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)ets_rom_layout_p->data_start_btdm;
mem_end = (intptr_t)ets_rom_layout_p->data_end_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release rom btdm 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));
}
}
/* if the addresses of rom interface btdm .data and .bss are consecutive,
they are registered in the system heap as a piece of memory
*/
if(ets_rom_layout_p->data_end_interface_btdm == ets_rom_layout_p->bss_start_interface_btdm) {
mem_start = (intptr_t)ets_rom_layout_p->data_start_interface_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_interface_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release rom interface btdm [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)ets_rom_layout_p->data_start_interface_btdm;
mem_end = (intptr_t)ets_rom_layout_p->data_end_interface_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release rom interface btdm 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)ets_rom_layout_p->bss_start_interface_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_interface_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_LOG_TAG, "Release rom interface btdm 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));
}
}
}
return ESP_OK;
}
esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
ESP_LOGW(BTDM_LOG_TAG, "%s not implemented, return OK", __func__);
int ret;
intptr_t mem_start, mem_end;
ret = esp_bt_controller_mem_release(mode);
if (ret != ESP_OK) {
return ret;
}
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 == _btdm_bss_start) {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_btdm_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_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(BTDM_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)&_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], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
/* 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 == _btdm_data_start) {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_btdm_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BTDM_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(BTDM_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)&_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], 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)&_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], 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)&_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], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
return ESP_OK;
}
@@ -953,7 +1105,11 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
// overwrite some parameters
cfg->magic = ESP_BT_CTRL_CONFIG_MAGIC_VAL;
sdk_config_extend_set_pll_track(false);
#if CONFIG_MAC_BB_PD
esp_mac_bb_pd_mem_init();
#endif
esp_phy_modem_init();
esp_bt_power_domain_on();
btdm_controller_mem_init();
@@ -986,12 +1142,13 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
// set default values for global states or resources
s_lp_stat.val = 0;
s_lp_cntl.val = 0;
s_lp_cntl.main_xtal_pu = 0;
s_wakeup_req_sem = NULL;
s_btdm_slp_tmr = NULL;
// configure and initialize resources
s_lp_cntl.enable = (cfg->sleep_mode == ESP_BT_SLEEP_MODE_1) ? 1 : 0;
s_lp_cntl.no_light_sleep = 1;
s_lp_cntl.no_light_sleep = 0;
if (s_lp_cntl.enable) {
#if CONFIG_MAC_BB_PD
@@ -1034,32 +1191,40 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
// check whether or not EXT_CRYS is working
if (rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_32K_XTAL) {
s_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_XTAL32K; // External 32 kHz XTAL
s_lp_cntl.no_light_sleep = 0;
} else {
ESP_LOGW(BTDM_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock\n"
"light sleep mode will not be able to apply when bluetooth is enabled");
ESP_LOGW(BTDM_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock.");
#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
s_lp_cntl.no_light_sleep = 1;
#endif
}
#elif CONFIG_BT_CTRL_LPCLK_SEL_RTC_SLOW
// check whether or not EXT_CRYS is working
#elif (CONFIG_BT_CTRL_LPCLK_SEL_MAIN_XTAL)
ESP_LOGI(BTDM_LOG_TAG, "Bluetooth will use main XTAL as Bluetooth sleep clock.");
#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
s_lp_cntl.no_light_sleep = 1;
#endif
#elif (CONFIG_BT_CTRL_LPCLK_SEL_RTC_SLOW)
// check whether or not internal 150 kHz RC oscillator is working
if (rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_RTC) {
s_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_RTC_SLOW; // Internal 150 kHz RC oscillator
ESP_LOGW(BTDM_LOG_TAG, "Internal 150kHz RC osciallator. The accuracy of this clock is a lot larger than 500ppm which is "
"required in Bluetooth communication, so don't select this option in scenarios such as BLE connection state.");
} else {
ESP_LOGW(BT_LOG_TAG, "Internal 150kHz RC oscillator not detected.");
ESP_LOGW(BTDM_LOG_TAG, "Internal 150kHz RC oscillator not detected.");
assert(0);
}
#else
s_lp_cntl.no_light_sleep = 1;
#endif
bool select_src_ret, set_div_ret;
if (s_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL) {
#ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON));
s_lp_cntl.main_xtal_pu = 1;
#endif
select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL);
set_div_ret = btdm_lpclk_set_div(rtc_clk_xtal_freq_get() * 2);
set_div_ret = btdm_lpclk_set_div(rtc_clk_xtal_freq_get());
assert(select_src_ret && set_div_ret);
btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT;
btdm_lpcycle_us = 2 << (btdm_lpcycle_us_frac);
btdm_lpcycle_us = 1 << (btdm_lpcycle_us_frac);
} else if (s_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL32K) {
select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL32K);
set_div_ret = btdm_lpclk_set_div(0);
@@ -1078,6 +1243,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
err = ESP_ERR_INVALID_ARG;
goto error;
}
#if CONFIG_SW_COEXIST_ENABLE
coex_update_lpclk_interval();
#endif
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
@@ -1085,6 +1253,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
err = ESP_ERR_NO_MEM;
goto error;
}
ESP_LOGW(BTDM_LOG_TAG, "Light sleep mode will not be able to apply when bluetooth is enabled.");
}
if ((err = esp_pm_lock_create(ESP_PM_APB_FREQ_MAX, 0, "bt", &s_pm_lock)) != ESP_OK) {
err = ESP_ERR_NO_MEM;
@@ -1100,9 +1269,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
#endif
periph_module_enable(PERIPH_BT_MODULE);
esp_phy_enable();
s_lp_stat.phy_enabled = 1;
periph_module_reset(PERIPH_BT_MODULE);
if (btdm_controller_init(cfg) != 0) {
err = ESP_ERR_NO_MEM;
@@ -1114,57 +1281,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_OK;
error:
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
}
do {
// deinit low power control resources
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
if (s_light_sleep_pm_lock != NULL) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
}
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
s_lp_stat.pm_lock_released = 0;
}
bt_controller_deinit_internal();
#endif
if (s_lp_cntl.wakeup_timer_required && s_btdm_slp_tmr != NULL) {
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
#if CONFIG_MAC_BB_PD
if (s_lp_cntl.mac_bb_pd) {
btdm_deep_sleep_mem_deinit();
s_lp_cntl.mac_bb_pd = 0;
}
#endif
if (s_lp_cntl.enable) {
btdm_vnd_offload_task_deregister(BTDM_VND_OL_SIG_WAKEUP_TMR);
if (s_wakeup_req_sem != NULL) {
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
}
} while (0);
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
if (osi_funcs_p != NULL) {
free(osi_funcs_p);
osi_funcs_p = NULL;
}
return err;
}
@@ -1175,31 +1294,42 @@ esp_err_t esp_bt_controller_deinit(void)
}
btdm_controller_deinit();
periph_module_disable(PERIPH_BT_MODULE);
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
} else {
assert(0);
}
bt_controller_deinit_internal();
return ESP_OK;
}
static void bt_controller_deinit_internal(void)
{
periph_module_disable(PERIPH_BT_MODULE);
// deinit low power control resources
do {
#if CONFIG_MAC_BB_PD
btdm_deep_sleep_mem_deinit();
if (s_lp_cntl.mac_bb_pd) {
btdm_deep_sleep_mem_deinit();
s_lp_cntl.mac_bb_pd = 0;
}
#endif
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
if (s_light_sleep_pm_lock != NULL) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
}
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
s_lp_stat.pm_lock_released = 0;
}
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
s_lp_stat.pm_lock_released = 0;
#endif
if (s_lp_cntl.wakeup_timer_required) {
if (s_lp_stat.wakeup_timer_started) {
esp_timer_stop(s_btdm_slp_tmr);
@@ -1211,27 +1341,51 @@ esp_err_t esp_bt_controller_deinit(void)
if (s_lp_cntl.enable) {
btdm_vnd_offload_task_deregister(BTDM_VND_OL_SIG_WAKEUP_TMR);
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
if (s_wakeup_req_sem != NULL) {
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
}
if (s_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL) {
#ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
if (s_lp_cntl.main_xtal_pu) {
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_OFF));
s_lp_cntl.main_xtal_pu = 0;
}
#endif
btdm_lpclk_select_src(BTDM_LPCLK_SEL_RTC_SLOW);
btdm_lpclk_set_div(0);
#if CONFIG_SW_COEXIST_ENABLE
coex_update_lpclk_interval();
#endif
}
btdm_lpcycle_us = 0;
} while (0);
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
free(osi_funcs_p);
osi_funcs_p = NULL;
esp_bt_power_domain_off();
#if CONFIG_MAC_BB_PD
esp_mac_bb_pd_mem_deinit();
#endif
esp_phy_modem_deinit();
if (osi_funcs_p != NULL) {
free(osi_funcs_p);
osi_funcs_p = NULL;
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
btdm_lpcycle_us = 0;
return ESP_OK;
}
esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
{
int ret = ESP_OK;
esp_err_t ret = ESP_OK;
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_INITED) {
return ESP_ERR_INVALID_STATE;
@@ -1243,6 +1397,12 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
return ESP_ERR_INVALID_ARG;
}
/* Enable PHY when enabling controller to reduce power dissipation after controller init
* Notice the init order: esp_phy_enable() -> bt_bb_v2_init_cmplx() -> coex_pti_v2()
*/
esp_phy_enable();
s_lp_stat.phy_enabled = 1;
#if CONFIG_SW_COEXIST_ENABLE
coex_enable();
#endif
@@ -1267,6 +1427,8 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
goto error;
}
coex_pti_v2();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED;
return ret;
@@ -1286,6 +1448,13 @@ error:
#endif
} while (0);
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
}
return ret;
}
@@ -1304,6 +1473,10 @@ esp_err_t esp_bt_controller_disable(void)
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;

View File

@@ -196,6 +196,7 @@ extern int API_vhci_host_register_callback(const vhci_host_callback_t *callback)
extern int ble_txpwr_set(int power_type, int power_level);
extern int ble_txpwr_get(int power_type);
extern void coex_pti_v2(void);
extern uint16_t l2c_ble_link_get_tx_buf_num(void);
extern char _bss_start_btdm;
@@ -1019,6 +1020,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
err = ESP_ERR_NO_MEM;
goto error;
}
coex_pti_v2();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
@@ -1078,7 +1080,6 @@ esp_err_t esp_bt_controller_deinit(void)
osi_funcs_p = NULL;
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
btdm_lpcycle_us = 0;
return ESP_OK;
}

View File

@@ -585,6 +585,21 @@ if BLE_MESH
stored to flash. E.g. the default value of 4 means that the
state is saved every 24 hours (96 / 4).
config BLE_MESH_IVU_RECOVERY_IVI
bool "Recovery the IV index when the latest whole IV update procedure is missed"
default n
help
According to Section 3.10.5 of Mesh Specification v1.0.1.
If a node in Normal Operation receives a Secure Network beacon with an IV index
equal to the last known IV index+1 and the IV Update Flag set to 0, the node may
update its IV without going to the IV Update in Progress state, or it may initiate
an IV Index Recovery procedure (Section 3.10.6), or it may ignore the Secure
Network beacon. The node makes the choice depending on the time since last IV
update and the likelihood that the node has missed the Secure Network beacons
with the IV update Flag.
When the above situation is encountered, this option can be used to decide whether
to perform the IV index recovery procedure.
config BLE_MESH_TX_SEG_MSG_COUNT
int "Maximum number of simultaneous outgoing segmented messages"
default 1
@@ -803,6 +818,13 @@ if BLE_MESH
help
Maximum number of groups to which the LPN can subscribe.
config BLE_MESH_LPN_SUB_ALL_NODES_ADDR
bool "Automatically subscribe all nodes address"
default n
help
Automatically subscribe all nodes address when friendship
established.
endif # BLE_MESH_LOW_POWER
config BLE_MESH_FRIEND
@@ -1094,6 +1116,13 @@ if BLE_MESH
lets the state to be changed at any time.
If IV Update test mode is going to be used, this option should be enabled.
config BLE_MESH_DISCARD_OLD_SEQ_AUTH
bool
default y
help
This option is used to decide whether discarding the old SeqAuth when
receiving a segmented message.
menu "BLE Mesh specific test option"
config BLE_MESH_SELF_TEST

View File

@@ -51,7 +51,7 @@ esp_err_t esp_ble_mesh_start_ble_advertising(const esp_ble_mesh_ble_adv_param_t
memcpy(&arg.start_ble_adv.data, data, sizeof(esp_ble_mesh_ble_adv_data_t));
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -72,7 +72,7 @@ esp_err_t esp_ble_mesh_stop_ble_advertising(uint8_t index)
arg.stop_ble_adv.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_ADV */
@@ -89,7 +89,7 @@ esp_err_t esp_ble_mesh_start_ble_scanning(esp_ble_mesh_ble_scan_param_t *param)
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = BTC_BLE_MESH_ACT_START_BLE_SCAN;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -104,7 +104,7 @@ esp_err_t esp_ble_mesh_stop_ble_scanning(void)
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = BTC_BLE_MESH_ACT_STOP_BLE_SCAN;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_SCAN */

View File

@@ -55,7 +55,7 @@ esp_err_t esp_ble_mesh_init(esp_ble_mesh_prov_t *prov, esp_ble_mesh_comp_t *comp
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_MESH_INIT;
if (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL) != BT_STATUS_SUCCESS) {
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 init");
return ESP_FAIL;
@@ -87,7 +87,7 @@ esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
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)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_DEINIT */

View File

@@ -100,7 +100,7 @@ esp_err_t esp_ble_mesh_model_subscribe_group_addr(uint16_t element_addr, uint16_
arg.model_sub_group_addr.model_id = model_id;
arg.model_sub_group_addr.group_addr = group_addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -126,7 +126,7 @@ esp_err_t esp_ble_mesh_model_unsubscribe_group_addr(uint16_t element_addr, uint1
arg.model_unsub_group_addr.model_id = model_id;
arg.model_unsub_group_addr.group_addr = group_addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -160,7 +160,7 @@ esp_err_t esp_ble_mesh_node_add_local_net_key(const uint8_t net_key[16], uint16_
arg.node_add_local_net_key.net_idx = net_idx;
memcpy(arg.node_add_local_net_key.net_key, net_key, 16);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -183,7 +183,7 @@ esp_err_t esp_ble_mesh_node_add_local_app_key(const uint8_t app_key[16], uint16_
arg.node_add_local_app_key.app_idx = app_idx;
memcpy(arg.node_add_local_app_key.app_key, app_key, 16);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -208,7 +208,7 @@ esp_err_t esp_ble_mesh_node_bind_app_key_to_local_model(uint16_t element_addr, u
arg.node_local_mod_app_bind.company_id = company_id;
arg.node_local_mod_app_bind.app_idx = app_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -29,7 +29,7 @@ esp_err_t esp_ble_mesh_lpn_enable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_LPN_ENABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_lpn_disable(bool force)
@@ -45,7 +45,7 @@ esp_err_t esp_ble_mesh_lpn_disable(bool force)
arg.lpn_disable.force = force;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -59,5 +59,5 @@ esp_err_t esp_ble_mesh_lpn_poll(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_LPN_POLL;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -109,8 +109,8 @@ static esp_err_t ble_mesh_model_send_msg(esp_ble_mesh_model_t *model,
arg.model_send.msg_timeout = msg_timeout;
}
status = (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
status = (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy,
btc_ble_mesh_model_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
bt_mesh_free(msg_data);
@@ -244,8 +244,8 @@ esp_err_t esp_ble_mesh_server_model_update_state(esp_ble_mesh_model_t *model,
msg.pid = BTC_PID_MODEL;
msg.act = BTC_BLE_MESH_ACT_SERVER_MODEL_UPDATE_STATE;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy,
btc_ble_mesh_model_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SERVER_MODEL */
@@ -259,7 +259,7 @@ esp_err_t esp_ble_mesh_node_local_reset(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_NODE_RESET;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#if (CONFIG_BLE_MESH_PROVISIONER)
@@ -283,7 +283,7 @@ esp_err_t esp_ble_mesh_provisioner_set_node_name(uint16_t index, const char *nam
memset(arg.set_node_name.name, 0, sizeof(arg.set_node_name.name));
strncpy(arg.set_node_name.name, name, ESP_BLE_MESH_NODE_NAME_MAX_LEN);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -320,8 +320,8 @@ esp_err_t esp_ble_mesh_provisioner_store_node_comp_data(uint16_t unicast_addr,
arg.store_node_comp_data.unicast_addr = unicast_addr;
arg.store_node_comp_data.length = length;
arg.store_node_comp_data.data = data;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy,
btc_ble_mesh_prov_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_ble_mesh_node_t *esp_ble_mesh_provisioner_get_node_with_uuid(const uint8_t uuid[16])
@@ -378,7 +378,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_node_with_uuid(const uint8_t uuid[16])
memcpy(arg.delete_node_with_uuid.uuid, uuid, 16);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -399,7 +399,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_node_with_addr(uint16_t unicast_addr)
arg.delete_node_with_addr.unicast_addr = unicast_addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -422,7 +422,7 @@ esp_err_t esp_ble_mesh_provisioner_add_local_app_key(const uint8_t app_key[16],
} else {
bzero(arg.add_local_app_key.app_key, 16);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -445,7 +445,7 @@ esp_err_t esp_ble_mesh_provisioner_update_local_app_key(const uint8_t app_key[16
memcpy(arg.update_local_app_key.app_key, app_key, 16);
arg.update_local_app_key.net_idx = net_idx;
arg.update_local_app_key.app_idx = app_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -474,7 +474,7 @@ esp_err_t esp_ble_mesh_provisioner_bind_app_key_to_local_model(uint16_t element_
arg.local_mod_app_bind.app_idx = app_idx;
arg.local_mod_app_bind.model_id = model_id;
arg.local_mod_app_bind.cid = company_id;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -499,7 +499,7 @@ esp_err_t esp_ble_mesh_provisioner_add_local_net_key(const uint8_t net_key[16],
} else {
bzero(arg.add_local_net_key.net_key, 16);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -520,7 +520,7 @@ esp_err_t esp_ble_mesh_provisioner_update_local_net_key(const uint8_t net_key[16
memcpy(arg.update_local_net_key.net_key, net_key, 16);
arg.update_local_net_key.net_idx = net_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -543,7 +543,7 @@ esp_err_t esp_ble_mesh_provisioner_recv_heartbeat(bool enable)
arg.enable_heartbeat_recv.enable = enable;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -564,7 +564,7 @@ esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_type(uint8_t type)
arg.set_heartbeat_filter_type.type = type;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -593,7 +593,7 @@ esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_info(uint8_t op, esp_ble
arg.set_heartbeat_filter_info.hb_src = info->hb_src;
arg.set_heartbeat_filter_info.hb_dst = info->hb_dst;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_PROVISIONER_RECV_HB */
@@ -610,7 +610,7 @@ esp_err_t esp_ble_mesh_provisioner_direct_erase_settings(void)
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_DIRECT_ERASE_SETTINGS;
return (btc_transfer_context(&msg, NULL, 0, NULL)
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SETTINGS */
@@ -633,7 +633,7 @@ esp_err_t esp_ble_mesh_provisioner_open_settings_with_index(uint8_t index)
arg.open_settings_with_index.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -654,7 +654,7 @@ esp_err_t esp_ble_mesh_provisioner_open_settings_with_uid(const char *uid)
strncpy(arg.open_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -676,7 +676,7 @@ esp_err_t esp_ble_mesh_provisioner_close_settings_with_index(uint8_t index, bool
arg.close_settings_with_index.index = index;
arg.close_settings_with_index.erase = erase;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -698,7 +698,7 @@ esp_err_t esp_ble_mesh_provisioner_close_settings_with_uid(const char *uid, bool
strncpy(arg.close_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
arg.close_settings_with_uid.erase = erase;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -719,7 +719,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_settings_with_index(uint8_t index)
arg.delete_settings_with_index.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -740,7 +740,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_settings_with_uid(const char *uid)
strncpy(arg.delete_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -65,7 +65,7 @@ esp_err_t esp_ble_mesh_node_prov_enable(esp_ble_mesh_prov_bearer_t bearers)
msg.act = BTC_BLE_MESH_ACT_PROV_ENABLE;
arg.node_prov_enable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -85,7 +85,7 @@ esp_err_t esp_ble_mesh_node_prov_disable(esp_ble_mesh_prov_bearer_t bearers)
msg.act = BTC_BLE_MESH_ACT_PROV_DISABLE;
arg.node_prov_disable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -109,7 +109,7 @@ esp_err_t esp_ble_mesh_node_set_oob_pub_key(uint8_t pub_key_x[32], uint8_t pub_k
memcpy(arg.set_oob_pub_key.pub_key_y, pub_key_y, 32);
memcpy(arg.set_oob_pub_key.private_key, private_key, 32);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -129,7 +129,7 @@ esp_err_t esp_ble_mesh_node_input_number(uint32_t number)
msg.act = BTC_BLE_MESH_ACT_INPUT_NUMBER;
arg.input_number.number = number;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -151,7 +151,7 @@ esp_err_t esp_ble_mesh_node_input_string(const char *string)
strncpy(arg.input_string.string, string,
MIN(strlen(string), sizeof(arg.input_string.string)));
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -173,7 +173,7 @@ esp_err_t esp_ble_mesh_set_unprovisioned_device_name(const char *name)
memset(arg.set_device_name.name, 0, sizeof(arg.set_device_name.name));
strncpy(arg.set_device_name.name, name, ESP_BLE_MESH_DEVICE_NAME_MAX_LEN);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -198,7 +198,7 @@ esp_err_t esp_ble_mesh_provisioner_read_oob_pub_key(uint8_t link_idx, uint8_t pu
memcpy(arg.provisioner_read_oob_pub_key.pub_key_x, pub_key_x, 32);
memcpy(arg.provisioner_read_oob_pub_key.pub_key_y, pub_key_y, 32);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -223,7 +223,7 @@ esp_err_t esp_ble_mesh_provisioner_input_string(const char *string, uint8_t link
MIN(strlen(string), sizeof(arg.provisioner_input_str.string)));
arg.provisioner_input_str.link_idx = link_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -245,7 +245,7 @@ esp_err_t esp_ble_mesh_provisioner_input_number(uint32_t number, uint8_t link_id
arg.provisioner_input_num.number = number;
arg.provisioner_input_num.link_idx = link_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -266,7 +266,7 @@ esp_err_t esp_ble_mesh_provisioner_prov_enable(esp_ble_mesh_prov_bearer_t bearer
arg.provisioner_enable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -287,7 +287,7 @@ esp_err_t esp_ble_mesh_provisioner_prov_disable(esp_ble_mesh_prov_bearer_t beare
arg.provisioner_disable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -313,7 +313,7 @@ esp_err_t esp_ble_mesh_provisioner_add_unprov_dev(esp_ble_mesh_unprov_dev_add_t
memcpy(arg.provisioner_dev_add.add_dev.addr, add_dev->addr, sizeof(esp_ble_mesh_bd_addr_t));
memcpy(arg.provisioner_dev_add.add_dev.uuid, add_dev->uuid, 16);
arg.provisioner_dev_add.flags = flags;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -347,7 +347,7 @@ esp_err_t esp_ble_mesh_provisioner_prov_device_with_addr(const uint8_t uuid[16],
arg.provisioner_prov_dev_with_addr.bearer = bearer;
arg.provisioner_prov_dev_with_addr.oob_info = oob_info;
arg.provisioner_prov_dev_with_addr.unicast_addr = unicast_addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -374,7 +374,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_dev(esp_ble_mesh_device_delete_t *del_
} else if (del_dev->flag & DEL_DEV_UUID_FLAG) {
memcpy(arg.provisioner_dev_del.del_dev.uuid, del_dev->uuid, 16);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -400,7 +400,7 @@ esp_err_t esp_ble_mesh_provisioner_set_dev_uuid_match(const uint8_t *match_val,
arg.set_dev_uuid_match.match_len = match_len;
arg.set_dev_uuid_match.offset = offset;
arg.set_dev_uuid_match.prov_after_match = prov_after_match;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -428,7 +428,7 @@ esp_err_t esp_ble_mesh_provisioner_set_prov_data_info(esp_ble_mesh_prov_data_inf
} else if (prov_data_info->flag & PROV_DATA_IV_INDEX_FLAG) {
arg.set_prov_data_info.prov_data.iv_index = prov_data_info->iv_index;
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -449,7 +449,7 @@ esp_err_t esp_ble_mesh_provisioner_set_static_oob_value(const uint8_t *value, ui
arg.set_static_oob_val.length = length;
memcpy(arg.set_static_oob_val.value, value, length);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -469,7 +469,7 @@ esp_err_t esp_ble_mesh_provisioner_set_primary_elem_addr(uint16_t addr)
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_SET_PRIMARY_ELEM_ADDR;
arg.set_primary_elem_addr.addr = addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -505,7 +505,7 @@ esp_err_t esp_ble_mesh_set_fast_prov_info(esp_ble_mesh_fast_prov_info_t *fast_pr
if (fast_prov_info->match_len && fast_prov_info->match_val) {
memcpy(arg.set_fast_prov_info.match_val, fast_prov_info->match_val, fast_prov_info->match_len);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -525,7 +525,7 @@ esp_err_t esp_ble_mesh_set_fast_prov_action(esp_ble_mesh_fast_prov_action_t acti
msg.act = BTC_BLE_MESH_ACT_SET_FAST_PROV_ACTION;
arg.set_fast_prov_action.action = action;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -30,7 +30,7 @@ esp_err_t esp_ble_mesh_proxy_identity_enable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROXY_IDENTITY_ENABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_gatt_enable(void)
@@ -43,7 +43,7 @@ esp_err_t esp_ble_mesh_proxy_gatt_enable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROXY_GATT_ENABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_gatt_disable(void)
@@ -56,7 +56,7 @@ esp_err_t esp_ble_mesh_proxy_gatt_disable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROXY_GATT_DISABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_client_connect(esp_ble_mesh_bd_addr_t addr,
@@ -80,7 +80,7 @@ esp_err_t esp_ble_mesh_proxy_client_connect(esp_ble_mesh_bd_addr_t addr,
arg.proxy_client_connect.addr_type = addr_type;
arg.proxy_client_connect.net_idx = net_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -97,7 +97,7 @@ esp_err_t esp_ble_mesh_proxy_client_disconnect(uint8_t conn_handle)
arg.proxy_client_disconnect.conn_handle = conn_handle;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -121,7 +121,7 @@ esp_err_t esp_ble_mesh_proxy_client_set_filter_type(uint8_t conn_handle, uint16_
arg.proxy_client_set_filter_type.net_idx = net_idx;
arg.proxy_client_set_filter_type.filter_type = filter_type;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -146,8 +146,8 @@ esp_err_t esp_ble_mesh_proxy_client_add_filter_addr(uint8_t conn_handle, uint16_
arg.proxy_client_add_filter_addr.addr_num = addr_num;
arg.proxy_client_add_filter_addr.addr = addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy,
btc_ble_mesh_prov_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_client_remove_filter_addr(uint8_t conn_handle, uint16_t net_idx,
@@ -171,6 +171,6 @@ esp_err_t esp_ble_mesh_proxy_client_remove_filter_addr(uint8_t conn_handle, uint
arg.proxy_client_remove_filter_addr.addr_num = addr_num;
arg.proxy_client_remove_filter_addr.addr = addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy,
btc_ble_mesh_prov_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -285,7 +285,7 @@ typedef enum {
#define ESP_BLE_MESH_VENDOR_MODEL(_company, _id, _op, _pub, _user_data) \
{ \
.vnd.company_id = (_company), \
.vnd.model_id = (_id), \
.vnd.vnd_model_id = (_id), \
.op = _op, \
.pub = _pub, \
.keys = { [0 ... (CONFIG_BLE_MESH_MODEL_KEY_COUNT - 1)] = \
@@ -480,7 +480,7 @@ struct esp_ble_mesh_model {
const uint16_t model_id; /*!< 16-bit model identifier */
struct {
uint16_t company_id; /*!< 16-bit company identifier */
uint16_t model_id; /*!< 16-bit model identifier */
uint16_t vnd_model_id; /*!< 16-bit vendor model identifier */
} vnd; /*!< Structure encapsulating a model ID with a company ID */
};

View File

@@ -67,8 +67,8 @@ esp_err_t esp_ble_mesh_config_client_get_state(esp_ble_mesh_client_common_param_
arg.cfg_client_get_state.params = params;
arg.cfg_client_get_state.get_state = get_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_config_client_args_t), btc_ble_mesh_config_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_config_client_args_t), btc_ble_mesh_config_client_arg_deep_copy,
btc_ble_mesh_config_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param_t *params,
@@ -92,8 +92,8 @@ esp_err_t esp_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param_
arg.cfg_client_set_state.params = params;
arg.cfg_client_set_state.set_state = set_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_config_client_args_t), btc_ble_mesh_config_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_config_client_args_t), btc_ble_mesh_config_client_arg_deep_copy,
btc_ble_mesh_config_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_CFG_CLI */

View File

@@ -62,8 +62,8 @@ esp_err_t esp_ble_mesh_generic_client_get_state(esp_ble_mesh_client_common_param
arg.generic_client_get_state.params = params;
arg.generic_client_get_state.get_state = get_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_generic_client_args_t), btc_ble_mesh_generic_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_generic_client_args_t), btc_ble_mesh_generic_client_arg_deep_copy,
btc_ble_mesh_generic_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_generic_client_set_state(esp_ble_mesh_client_common_param_t *params,
@@ -87,8 +87,8 @@ esp_err_t esp_ble_mesh_generic_client_set_state(esp_ble_mesh_client_common_param
arg.generic_client_set_state.params = params;
arg.generic_client_set_state.set_state = set_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_generic_client_args_t), btc_ble_mesh_generic_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_generic_client_args_t), btc_ble_mesh_generic_client_arg_deep_copy,
btc_ble_mesh_generic_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */

View File

@@ -49,8 +49,8 @@ esp_err_t esp_ble_mesh_health_client_get_state(esp_ble_mesh_client_common_param_
arg.health_client_get_state.params = params;
arg.health_client_get_state.get_state = get_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_client_args_t), btc_ble_mesh_health_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_client_args_t), btc_ble_mesh_health_client_arg_deep_copy,
btc_ble_mesh_health_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_health_client_set_state(esp_ble_mesh_client_common_param_t *params,
@@ -74,8 +74,8 @@ esp_err_t esp_ble_mesh_health_client_set_state(esp_ble_mesh_client_common_param_
arg.health_client_set_state.params = params;
arg.health_client_set_state.set_state = set_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_client_args_t), btc_ble_mesh_health_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_client_args_t), btc_ble_mesh_health_client_arg_deep_copy,
btc_ble_mesh_health_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
@@ -103,7 +103,7 @@ esp_err_t esp_ble_mesh_health_server_fault_update(esp_ble_mesh_elem_t *element)
msg.act = BTC_BLE_MESH_ACT_HEALTH_SERVER_FAULT_UPDATE;
arg.health_fault_update.element = element;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_server_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_server_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */

View File

@@ -49,8 +49,8 @@ esp_err_t esp_ble_mesh_light_client_get_state(esp_ble_mesh_client_common_param_t
arg.light_client_get_state.params = params;
arg.light_client_get_state.get_state = get_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_lighting_client_args_t), btc_ble_mesh_lighting_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_lighting_client_args_t), btc_ble_mesh_lighting_client_arg_deep_copy,
btc_ble_mesh_lighting_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_light_client_set_state(esp_ble_mesh_client_common_param_t *params,
@@ -74,8 +74,8 @@ esp_err_t esp_ble_mesh_light_client_set_state(esp_ble_mesh_client_common_param_t
arg.light_client_set_state.params = params;
arg.light_client_set_state.set_state = set_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_lighting_client_args_t), btc_ble_mesh_lighting_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_lighting_client_args_t), btc_ble_mesh_lighting_client_arg_deep_copy,
btc_ble_mesh_lighting_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */

View File

@@ -48,8 +48,8 @@ esp_err_t esp_ble_mesh_sensor_client_get_state(esp_ble_mesh_client_common_param_
arg.sensor_client_get_state.params = params;
arg.sensor_client_get_state.get_state = get_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_sensor_client_args_t), btc_ble_mesh_sensor_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_sensor_client_args_t), btc_ble_mesh_sensor_client_arg_deep_copy,
btc_ble_mesh_sensor_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_sensor_client_set_state(esp_ble_mesh_client_common_param_t *params,
@@ -73,8 +73,8 @@ esp_err_t esp_ble_mesh_sensor_client_set_state(esp_ble_mesh_client_common_param_
arg.sensor_client_set_state.params = params;
arg.sensor_client_set_state.set_state = set_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_sensor_client_args_t), btc_ble_mesh_sensor_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_sensor_client_args_t), btc_ble_mesh_sensor_client_arg_deep_copy,
btc_ble_mesh_sensor_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */

View File

@@ -49,8 +49,8 @@ esp_err_t esp_ble_mesh_time_scene_client_get_state(esp_ble_mesh_client_common_pa
arg.time_scene_client_get_state.params = params;
arg.time_scene_client_get_state.get_state = get_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_time_scene_client_args_t), btc_ble_mesh_time_scene_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_time_scene_client_args_t), btc_ble_mesh_time_scene_client_arg_deep_copy,
btc_ble_mesh_time_scene_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_time_scene_client_set_state(esp_ble_mesh_client_common_param_t *params,
@@ -74,8 +74,8 @@ esp_err_t esp_ble_mesh_time_scene_client_set_state(esp_ble_mesh_client_common_pa
arg.time_scene_client_set_state.params = params;
arg.time_scene_client_set_state.set_state = set_state;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_time_scene_client_args_t), btc_ble_mesh_time_scene_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_time_scene_client_args_t), btc_ble_mesh_time_scene_client_arg_deep_copy,
btc_ble_mesh_time_scene_client_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */

View File

@@ -90,8 +90,8 @@ static void btc_ble_mesh_ble_callback(esp_ble_mesh_ble_cb_param_t *cb_params, ui
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_ble_cb_param_t),
btc_ble_mesh_ble_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_ble_cb_param_t),
btc_ble_mesh_ble_copy_req_data, btc_ble_mesh_ble_free_req_data);
}
#if CONFIG_BLE_MESH_SUPPORT_BLE_SCAN

View File

@@ -91,7 +91,7 @@ void btc_ble_mesh_config_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void
}
}
static void btc_ble_mesh_config_client_arg_deep_free(btc_msg_t *msg)
void btc_ble_mesh_config_client_arg_deep_free(btc_msg_t *msg)
{
btc_ble_mesh_config_client_args_t *arg = NULL;
@@ -306,8 +306,8 @@ static void btc_ble_mesh_config_client_callback(esp_ble_mesh_cfg_client_cb_param
msg.pid = BTC_PID_CONFIG_CLIENT;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_cfg_client_cb_param_t),
btc_ble_mesh_config_client_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_cfg_client_cb_param_t),
btc_ble_mesh_config_client_copy_req_data, btc_ble_mesh_config_client_free_req_data);
}
void bt_mesh_config_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
@@ -710,7 +710,7 @@ static void btc_ble_mesh_config_server_callback(esp_ble_mesh_cfg_server_cb_param
msg.pid = BTC_PID_CONFIG_SERVER;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_cfg_server_cb_param_t), NULL);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_cfg_server_cb_param_t), NULL, NULL);
}
void bt_mesh_config_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,

View File

@@ -115,7 +115,7 @@ void btc_ble_mesh_generic_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, voi
}
}
static void btc_ble_mesh_generic_client_arg_deep_free(btc_msg_t *msg)
void btc_ble_mesh_generic_client_arg_deep_free(btc_msg_t *msg)
{
btc_ble_mesh_generic_client_args_t *arg = NULL;
@@ -376,8 +376,8 @@ static void btc_ble_mesh_generic_client_callback(esp_ble_mesh_generic_client_cb_
msg.pid = BTC_PID_GENERIC_CLIENT;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_generic_client_cb_param_t),
btc_ble_mesh_generic_client_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_generic_client_cb_param_t),
btc_ble_mesh_generic_client_copy_req_data, btc_ble_mesh_generic_client_free_req_data);
}
void bt_mesh_generic_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
@@ -693,8 +693,8 @@ static void btc_ble_mesh_generic_server_callback(esp_ble_mesh_generic_server_cb_
msg.pid = BTC_PID_GENERIC_SERVER;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_generic_server_cb_param_t),
btc_ble_mesh_generic_server_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_generic_server_cb_param_t),
btc_ble_mesh_generic_server_copy_req_data, btc_ble_mesh_generic_server_free_req_data);
}
void bt_mesh_generic_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,

View File

@@ -84,7 +84,7 @@ void btc_ble_mesh_health_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void
}
}
static void btc_ble_mesh_health_client_arg_deep_free(btc_msg_t *msg)
void btc_ble_mesh_health_client_arg_deep_free(btc_msg_t *msg)
{
btc_ble_mesh_health_client_args_t *arg = NULL;
@@ -239,8 +239,8 @@ static void btc_ble_mesh_health_client_callback(esp_ble_mesh_health_client_cb_pa
msg.pid = BTC_PID_HEALTH_CLIENT;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_health_client_cb_param_t),
btc_ble_mesh_health_client_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_health_client_cb_param_t),
btc_ble_mesh_health_client_copy_req_data, btc_ble_mesh_health_client_free_req_data);
}
void bt_mesh_health_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
@@ -550,8 +550,8 @@ static void btc_ble_mesh_health_server_callback(esp_ble_mesh_health_server_cb_pa
msg.pid = BTC_PID_HEALTH_SERVER;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_health_server_cb_param_t),
btc_ble_mesh_health_server_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_health_server_cb_param_t),
btc_ble_mesh_health_server_copy_req_data, btc_ble_mesh_health_server_free_req_data);
}
void btc_ble_mesh_health_server_call_handler(btc_msg_t *msg)

View File

@@ -83,7 +83,7 @@ void btc_ble_mesh_lighting_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, vo
}
}
static void btc_ble_mesh_lighting_client_arg_deep_free(btc_msg_t *msg)
void btc_ble_mesh_lighting_client_arg_deep_free(btc_msg_t *msg)
{
btc_ble_mesh_lighting_client_args_t *arg = NULL;
@@ -220,8 +220,8 @@ static void btc_ble_mesh_lighting_client_callback(esp_ble_mesh_light_client_cb_p
msg.pid = BTC_PID_LIGHTING_CLIENT;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_light_client_cb_param_t),
btc_ble_mesh_lighting_client_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_light_client_cb_param_t),
btc_ble_mesh_lighting_client_copy_req_data, btc_ble_mesh_lighting_client_free_req_data);
}
void bt_mesh_lighting_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
@@ -505,8 +505,8 @@ static void btc_ble_mesh_lighting_server_callback(esp_ble_mesh_lighting_server_c
msg.pid = BTC_PID_LIGHTING_SERVER;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_lighting_server_cb_param_t),
btc_ble_mesh_lighting_server_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_lighting_server_cb_param_t),
btc_ble_mesh_lighting_server_copy_req_data, btc_ble_mesh_lighting_server_free_req_data);
}
void bt_mesh_lighting_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,

View File

@@ -128,7 +128,7 @@ void btc_ble_mesh_prov_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
}
}
static void btc_ble_mesh_prov_arg_deep_free(btc_msg_t *msg)
void btc_ble_mesh_prov_arg_deep_free(btc_msg_t *msg)
{
btc_ble_mesh_prov_args_t *arg = NULL;
@@ -204,7 +204,7 @@ void btc_ble_mesh_model_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
}
}
static void btc_ble_mesh_model_arg_deep_free(btc_msg_t *msg)
void btc_ble_mesh_model_arg_deep_free(btc_msg_t *msg)
{
btc_ble_mesh_model_args_t *arg = NULL;
@@ -376,8 +376,8 @@ static bt_status_t btc_ble_mesh_model_callback(esp_ble_mesh_model_cb_param_t *pa
msg.pid = BTC_PID_MODEL;
msg.act = act;
ret = btc_transfer_context(&msg, param, sizeof(esp_ble_mesh_model_cb_param_t),
btc_ble_mesh_model_copy_req_data);
ret = btc_transfer_context(&msg, param, param == NULL ? 0 : sizeof(esp_ble_mesh_model_cb_param_t),
btc_ble_mesh_model_copy_req_data, btc_ble_mesh_model_free_req_data);
if (ret != BT_STATUS_SUCCESS) {
BT_ERR("btc_transfer_context failed");
}
@@ -536,7 +536,7 @@ static bt_status_t btc_ble_mesh_prov_callback(esp_ble_mesh_prov_cb_param_t *para
msg.pid = BTC_PID_PROV;
msg.act = act;
ret = btc_transfer_context(&msg, param, sizeof(esp_ble_mesh_prov_cb_param_t), NULL);
ret = btc_transfer_context(&msg, param, param == NULL ? 0 : sizeof(esp_ble_mesh_prov_cb_param_t), NULL, NULL);
if (ret != BT_STATUS_SUCCESS) {
BT_ERR("btc_transfer_context failed");
}

View File

@@ -458,8 +458,8 @@ static void btc_ble_mesh_sensor_client_callback(esp_ble_mesh_sensor_client_cb_pa
msg.pid = BTC_PID_SENSOR_CLIENT;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_sensor_client_cb_param_t),
btc_ble_mesh_sensor_client_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_sensor_client_cb_param_t),
btc_ble_mesh_sensor_client_copy_req_data, btc_ble_mesh_sensor_client_free_req_data);
}
void bt_mesh_sensor_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
@@ -825,8 +825,8 @@ static void btc_ble_mesh_sensor_server_callback(esp_ble_mesh_sensor_server_cb_pa
msg.pid = BTC_PID_SENSOR_SERVER;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_sensor_server_cb_param_t),
btc_ble_mesh_sensor_server_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_sensor_server_cb_param_t),
btc_ble_mesh_sensor_server_copy_req_data, btc_ble_mesh_sensor_server_free_req_data);
}
void bt_mesh_sensor_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,

View File

@@ -222,8 +222,8 @@ static void btc_ble_mesh_time_scene_client_callback(esp_ble_mesh_time_scene_clie
msg.pid = BTC_PID_TIME_SCENE_CLIENT;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_time_scene_client_cb_param_t),
btc_ble_mesh_time_scene_client_copy_req_data);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_time_scene_client_cb_param_t),
btc_ble_mesh_time_scene_client_copy_req_data, btc_ble_mesh_time_scene_client_free_req_data);
}
void bt_mesh_time_scene_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
@@ -409,7 +409,7 @@ static void btc_ble_mesh_time_scene_server_callback(esp_ble_mesh_time_scene_serv
msg.pid = BTC_PID_TIME_SCENE_SERVER;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_time_scene_server_cb_param_t), NULL);
btc_transfer_context(&msg, cb_params, cb_params == NULL ? 0 : sizeof(esp_ble_mesh_time_scene_server_cb_param_t), NULL, NULL);
}
void bt_mesh_time_scene_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,

View File

@@ -53,6 +53,8 @@ void btc_ble_mesh_config_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_config_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_config_client_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_config_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);

View File

@@ -53,6 +53,8 @@ void btc_ble_mesh_generic_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_generic_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_generic_client_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_generic_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);

View File

@@ -49,6 +49,8 @@ typedef enum {
void btc_ble_mesh_health_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_health_client_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_health_client_call_handler(btc_msg_t *msg);
void btc_ble_mesh_health_client_cb_handler(btc_msg_t *msg);

View File

@@ -53,6 +53,8 @@ void btc_ble_mesh_lighting_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_lighting_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_lighting_client_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_lighting_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);

View File

@@ -344,8 +344,12 @@ typedef union {
void btc_ble_mesh_prov_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_prov_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_model_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_model_arg_deep_free(btc_msg_t *msg);
const uint8_t *btc_ble_mesh_node_get_local_net_key(uint16_t net_idx);
const uint8_t *btc_ble_mesh_node_get_local_app_key(uint16_t app_idx);

View File

@@ -53,6 +53,8 @@ void btc_ble_mesh_sensor_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_sensor_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_sensor_client_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_sensor_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);

View File

@@ -53,6 +53,8 @@ void btc_ble_mesh_time_scene_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_time_scene_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_time_scene_client_arg_deep_free(btc_msg_t *msg);
void btc_ble_mesh_time_scene_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);

View File

@@ -374,9 +374,19 @@ static void secure_beacon_recv(struct net_buf_simple *buf)
cache_add(data, sub);
/* If we have NetKey0 accept initiation only from it */
/* Spec v1.0.1, Section 3.8.4:
* If a node on a primary subnet receives an update on
* the primary subnet, it shall propagate the IV update
* to all other subnets. If a node on a primary subnet
* receives an IV update on any other subnet, the update
* shall be ignored.
* If a node on a primary subnet receives an key update
* on any other subnet, the update shall not be ignored.
*/
if (bt_mesh_primary_subnet_exist() &&
sub->net_idx != BLE_MESH_KEY_PRIMARY) {
sub->net_idx != BLE_MESH_KEY_PRIMARY &&
BLE_MESH_IV_UPDATE(flags) &&
!BLE_MESH_KEY_REFRESH(flags)) {
BT_WARN("Ignoring secure beacon on non-primary subnet");
goto update_stats;
}
@@ -390,7 +400,15 @@ static void secure_beacon_recv(struct net_buf_simple *buf)
bt_mesh_beacon_ivu_initiator(false);
}
iv_change = bt_mesh_net_iv_update(iv_index, BLE_MESH_IV_UPDATE(flags));
/* If a node on a primary subnet receives an IV update on any other subnet,
* the IV update shall be ignored. And if a node on a non-primary subnet
* receives an IV update on primary subnet, the IV update shall be ignored,
* because it doesn't have a primary network key.
*/
if ((bt_mesh_primary_subnet_exist() && sub->net_idx == BLE_MESH_KEY_PRIMARY) ||
(!bt_mesh_primary_subnet_exist() && sub->net_idx != BLE_MESH_KEY_PRIMARY)) {
iv_change = bt_mesh_net_iv_update(iv_index, BLE_MESH_IV_UPDATE(flags));
}
kr_change = bt_mesh_kr_update(sub, BLE_MESH_KEY_REFRESH(flags), new_key);
if (kr_change) {

View File

@@ -502,7 +502,7 @@ int bt_le_update_white_list(struct bt_mesh_white_list *wl)
}
if (BTM_BleUpdateAdvWhitelist(wl->add_remove, wl->remote_bda,
wl->addr_type, (tBTM_ADD_WHITELIST_CBACK *)wl->update_wl_comp_cb) == false) {
wl->addr_type, (tBTM_UPDATE_WHITELIST_CBACK *)wl->update_wl_comp_cb) == false) {
return -EIO;
}
@@ -1615,6 +1615,7 @@ static void bt_mesh_bta_gattc_cb(tBTA_GATTC_EVT event, tBTA_GATTC *p_data)
}
break;
case BTA_GATTC_CLOSE_EVT:
bta_gattc_clcb_dealloc_by_conn_id(p_data->close.conn_id);
BT_DBG("BTA_GATTC_CLOSE_EVT");
break;
case BTA_GATTC_CONNECT_EVT: {
@@ -1959,17 +1960,20 @@ int bt_mesh_encrypt_be(const uint8_t key[16], const uint8_t plaintext[16],
}
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
int bt_mesh_update_exceptional_list(uint8_t sub_code, uint8_t type, void *info)
int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info)
{
BD_ADDR value = {0};
if ((sub_code > BLE_MESH_EXCEP_LIST_CLEAN) ||
(type > BLE_MESH_EXCEP_INFO_MESH_PROXY_ADV)) {
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) ||
(sub_code == BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN &&
!(type & BLE_MESH_EXCEP_LIST_CLEAN_ALL_LIST))) {
BT_ERR("%s, Invalid parameter", __func__);
return -EINVAL;
}
if (type == BLE_MESH_EXCEP_INFO_MESH_LINK_ID) {
if (type == BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID) {
if (!info) {
BT_ERR("Invalid Provisioning Link ID");
return -EINVAL;
@@ -1977,7 +1981,7 @@ int bt_mesh_update_exceptional_list(uint8_t sub_code, uint8_t type, void *info)
sys_memcpy_swap(value, info, sizeof(uint32_t));
}
BT_DBG("%s exceptional list, type 0x%02x", sub_code ? "Remove" : "Add", type);
BT_DBG("%s exceptional list, type 0x%08x", sub_code ? "Remove" : "Add", type);
/* The parameter "device_info" can't be NULL in the API */
BLE_MESH_BTM_CHECK_STATUS(BTM_UpdateBleDuplicateExceptionalList(sub_code, type, value, NULL));

View File

@@ -197,6 +197,21 @@ static bool app_key_is_valid(uint16_t app_idx)
return false;
}
static bool mod_pub_app_key_bound(struct bt_mesh_model *model,
uint16_t app_idx)
{
int i;
for (i = 0; i < ARRAY_SIZE(model->keys); i++) {
if (model->keys[i] == app_idx) {
return true;
}
}
BT_ERR("Appkey(0x%02x) not bound to this model.", app_idx);
return false;
}
static uint8_t _mod_pub_set(struct bt_mesh_model *model, uint16_t pub_addr,
uint16_t app_idx, uint8_t cred_flag, uint8_t ttl, uint8_t period,
uint8_t retransmit, bool store)
@@ -237,7 +252,11 @@ static uint8_t _mod_pub_set(struct bt_mesh_model *model, uint16_t pub_addr,
return STATUS_SUCCESS;
}
if (!bt_mesh_app_key_find(app_idx)) {
/* For case MESH/NODE/CFG/MP/BI-03-C, need to check if appkey
* is bound to model identified by the ModelIdentifier.
*/
if (!bt_mesh_app_key_find(app_idx) ||
!mod_pub_app_key_bound(model, app_idx)) {
return STATUS_INVALID_APPKEY;
}
@@ -3049,7 +3068,7 @@ static void heartbeat_pub_set(struct bt_mesh_model *model,
goto failed;
}
if (param->period_log > 0x10) {
if (param->period_log > 0x11) {
status = STATUS_CANNOT_SET;
goto failed;
}
@@ -3202,19 +3221,18 @@ static void heartbeat_sub_set(struct bt_mesh_model *model,
}
if (sub_src == BLE_MESH_ADDR_UNASSIGNED ||
sub_dst == BLE_MESH_ADDR_UNASSIGNED ||
sub_period == 0x00) {
sub_dst == BLE_MESH_ADDR_UNASSIGNED ||
sub_period == 0x00) {
/* Only an explicit address change to unassigned should
* trigger clearing of the values according to
* MESH/NODE/CFG/HBS/BV-02-C.
*/
if (sub_src == BLE_MESH_ADDR_UNASSIGNED ||
sub_dst == BLE_MESH_ADDR_UNASSIGNED) {
sub_dst == BLE_MESH_ADDR_UNASSIGNED) {
cfg->hb_sub.src = BLE_MESH_ADDR_UNASSIGNED;
cfg->hb_sub.dst = BLE_MESH_ADDR_UNASSIGNED;
cfg->hb_sub.min_hops = BLE_MESH_TTL_MAX;
cfg->hb_sub.max_hops = 0U;
cfg->hb_sub.count = 0U;
}
period_ms = 0;
@@ -3240,6 +3258,11 @@ static void heartbeat_sub_set(struct bt_mesh_model *model,
hb_sub_send_status(model, ctx, STATUS_SUCCESS);
/* For case MESH/NODE/CFG/HBS/BV-02-C, set count_log to 0
* when Heartbeat Subscription Status message is sent.
*/
cfg->hb_sub.count = 0U;
/* MESH/NODE/CFG/HBS/BV-01-C expects the MinHops to be 0x7f after
* disabling subscription, but 0x00 for subsequent Get requests.
*/

View File

@@ -64,6 +64,7 @@ enum {
};
static void (*friend_cb)(bool establish, uint16_t lpn_addr, uint8_t reason);
static void enqueue_update(struct bt_mesh_friend *frnd, uint8_t md);
static bool friend_init = false;
@@ -233,7 +234,23 @@ void bt_mesh_friend_sec_update(uint16_t net_idx)
}
if (net_idx == BLE_MESH_KEY_ANY || frnd->net_idx == net_idx) {
frnd->sec_update = 1U;
/* For case MESH/NODE/FRND/FN/BV-20-C.
* A situation is:
* The friend node may receive more than one different secure updates
* consecutively. And using the previous approach will cause only the
* latest Friend Update message been enqueued.
* So we update the implementation here to enqueue the Friend Update
* message immediately once a different secure beacon is received.
*
* A disadvantage of the change is:
* A friend node may receive different secure beacons. Then the
* beacon_cache mechanism will not work. This will cause the friend
* message queue been full of these secure beacons. So before enqueuing
* the secure updates, we should check if the currently received one
* is already exists in the message queue. Or enhance the beacon cache
* filtering mechanism.
*/
enqueue_update(frnd, 1);
}
}
}
@@ -699,7 +716,6 @@ static void enqueue_update(struct bt_mesh_friend *frnd, uint8_t md)
return;
}
frnd->sec_update = 0U;
enqueue_buf(frnd, buf);
}
@@ -1116,10 +1132,6 @@ static void enqueue_friend_pdu(struct bt_mesh_friend *frnd,
BT_DBG("type %u", type);
if (type == BLE_MESH_FRIEND_PDU_SINGLE) {
if (frnd->sec_update) {
enqueue_update(frnd, 1);
}
enqueue_buf(frnd, buf);
return;
}
@@ -1136,10 +1148,6 @@ static void enqueue_friend_pdu(struct bt_mesh_friend *frnd,
net_buf_slist_put(&seg->queue, buf);
if (type == BLE_MESH_FRIEND_PDU_COMPLETE) {
if (frnd->sec_update) {
enqueue_update(frnd, 1);
}
sys_slist_merge_slist(&frnd->queue, &seg->queue);
frnd->queue_size += seg->seg_count;

View File

@@ -776,29 +776,28 @@ int bt_mesh_encrypt_be(const uint8_t key[16], const uint8_t plaintext[16],
uint8_t enc_data[16]);
enum {
BLE_MESH_EXCEP_LIST_ADD = 0,
BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_LIST_CLEAN,
BLE_MESH_EXCEP_LIST_SUB_CODE_ADD = 0,
BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN,
};
enum {
BLE_MESH_EXCEP_INFO_ADV_ADDR = 0,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID,
BLE_MESH_EXCEP_INFO_MESH_BEACON,
BLE_MESH_EXCEP_INFO_MESH_PROV_ADV,
BLE_MESH_EXCEP_INFO_MESH_PROXY_ADV,
BLE_MESH_EXCEP_LIST_TYPE_ADV_ADDR = 0,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROV_ADV,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROXY_ADV,
};
enum {
BLE_MESH_EXCEP_CLEAN_ADDR_LIST = BIT(0),
BLE_MESH_EXCEP_CLEAN_MESH_LINK_ID_LIST = BIT(1),
BLE_MESH_EXCEP_CLEAN_MESH_BEACON_LIST = BIT(2),
BLE_MESH_EXCEP_CLEAN_MESH_PROV_ADV_LIST = BIT(3),
BLE_MESH_EXCEP_CLEAN_MESH_PROXY_ADV_LIST = BIT(4),
BLE_MESH_EXCEP_CLEAN_ALL_LIST = 0xFFFF,
};
#define BLE_MESH_EXCEP_LIST_CLEAN_ADDR_LIST BIT(0)
#define BLE_MESH_EXCEP_LIST_CLEAN_MESH_LINK_ID_LIST BIT(1)
#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))
int bt_mesh_update_exceptional_list(uint8_t sub_code, uint8_t type, void *info);
int bt_mesh_update_exceptional_list(uint8_t sub_code, uint32_t type, void *info);
#ifdef __cplusplus
}

View File

@@ -78,6 +78,11 @@ int bt_mesh_provision(const uint8_t net_key[16], uint16_t net_idx,
memcpy(bt_mesh.dev_key, dev_key, 16);
if (IS_ENABLED(CONFIG_BLE_MESH_LOW_POWER) &&
IS_ENABLED(CONFIG_BLE_MESH_LPN_SUB_ALL_NODES_ADDR)) {
bt_mesh_lpn_group_add(BLE_MESH_ADDR_ALL_NODES);
}
if (IS_ENABLED(CONFIG_BLE_MESH_SETTINGS)) {
BT_DBG("Storing network information persistently");
bt_mesh_store_net();
@@ -110,6 +115,12 @@ void bt_mesh_node_reset(void)
bt_mesh_tx_reset();
if (IS_ENABLED(CONFIG_BLE_MESH_LOW_POWER)) {
if (IS_ENABLED(CONFIG_BLE_MESH_LPN_SUB_ALL_NODES_ADDR)) {
uint16_t group = BLE_MESH_ADDR_ALL_NODES;
bt_mesh_lpn_group_del(&group, 1);
}
bt_mesh_lpn_disable(true);
}
@@ -602,14 +613,14 @@ int bt_mesh_provisioner_enable(bt_mesh_prov_bearer_t bearers)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
if (IS_ENABLED(CONFIG_BLE_MESH_PB_ADV) &&
(bearers & BLE_MESH_PROV_ADV)) {
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_BEACON, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON, NULL);
}
if (IS_ENABLED(CONFIG_BLE_MESH_PB_GATT) &&
(bearers & BLE_MESH_PROV_GATT)) {
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_PROV_ADV, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROV_ADV, NULL);
}
#endif
@@ -657,8 +668,8 @@ int bt_mesh_provisioner_disable(bt_mesh_prov_bearer_t bearers)
(bearers & BLE_MESH_PROV_GATT)) {
bt_mesh_proxy_client_prov_disable();
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_PROV_ADV, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROV_ADV, NULL);
#endif
}
@@ -669,8 +680,8 @@ int bt_mesh_provisioner_disable(bt_mesh_prov_bearer_t bearers)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
if (IS_ENABLED(CONFIG_BLE_MESH_PB_ADV) &&
(enable & BLE_MESH_PROV_ADV)) {
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_BEACON, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON, NULL);
}
#endif

View File

@@ -20,7 +20,7 @@ extern "C" {
#define BLE_MESH_KEY_ANY 0xffff
#define BLE_MESH_ADDR_IS_UNICAST(addr) ((addr) && (addr) < 0x8000)
#define BLE_MESH_ADDR_IS_GROUP(addr) ((addr) >= 0xc000 && (addr) <= 0xff00)
#define BLE_MESH_ADDR_IS_GROUP(addr) ((addr) >= 0xc000 && (addr) < 0xff00)
#define BLE_MESH_ADDR_IS_VIRTUAL(addr) ((addr) >= 0x8000 && (addr) < 0xc000)
#define BLE_MESH_ADDR_IS_RFU(addr) ((addr) >= 0xff00 && (addr) <= 0xfffb)

View File

@@ -673,7 +673,11 @@ bool bt_mesh_net_iv_update(uint32_t iv_index, bool iv_update)
return false;
}
if (iv_index > bt_mesh.iv_index + 1) {
if ((iv_index > bt_mesh.iv_index + 1)
#if CONFIG_BLE_MESH_IVU_RECOVERY_IVI
|| (iv_index == bt_mesh.iv_index + 1 && !iv_update)
#endif
) {
BT_WARN("Performing IV Index Recovery");
(void)memset(bt_mesh.rpl, 0, sizeof(bt_mesh.rpl));
bt_mesh.iv_index = iv_index;
@@ -681,10 +685,12 @@ bool bt_mesh_net_iv_update(uint32_t iv_index, bool iv_update)
goto do_update;
}
#if !CONFIG_BLE_MESH_IVU_RECOVERY_IVI
if (iv_index == bt_mesh.iv_index + 1 && !iv_update) {
BT_WARN("Ignoring new index in normal mode");
return false;
}
#endif
if (!iv_update) {
/* Nothing to do */
@@ -1220,6 +1226,7 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
}
if (rx->net_if == BLE_MESH_NET_IF_ADV &&
!rx->friend_cred &&
bt_mesh_relay_get() != BLE_MESH_RELAY_ENABLED &&
bt_mesh_gatt_proxy_get() != BLE_MESH_GATT_PROXY_ENABLED) {
return;
@@ -1232,7 +1239,7 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
* Anything else (like GATT to adv, or locally originated packets)
* use the Network Transmit state.
*/
if (rx->net_if == BLE_MESH_NET_IF_ADV) {
if (rx->net_if == BLE_MESH_NET_IF_ADV && !rx->friend_cred) {
transmit = bt_mesh_relay_retransmit_get();
} else {
transmit = bt_mesh_net_transmit_get();
@@ -1302,6 +1309,7 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
*/
if (IS_ENABLED(CONFIG_BLE_MESH_GATT_PROXY_SERVER) &&
(bt_mesh_gatt_proxy_get() == BLE_MESH_GATT_PROXY_ENABLED ||
rx->friend_cred ||
rx->net_if == BLE_MESH_NET_IF_LOCAL)) {
if (bt_mesh_proxy_server_relay(&buf->b, rx->ctx.recv_dst) &&
BLE_MESH_ADDR_IS_UNICAST(rx->ctx.recv_dst)) {
@@ -1309,7 +1317,7 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
}
}
if (relay_to_adv(rx->net_if)) {
if (relay_to_adv(rx->net_if) || rx->friend_cred) {
#if !defined(CONFIG_BLE_MESH_RELAY_ADV_BUF)
bt_mesh_adv_send(buf, NULL, NULL);
#else
@@ -1378,8 +1386,9 @@ int bt_mesh_net_decode(struct net_buf_simple *data, enum bt_mesh_net_if net_if,
return -EBADMSG;
}
/* For case MESH/NODE/RLY/BV-01-C, even the DST is RFU, it needs to be forwarded. */
if (BLE_MESH_ADDR_IS_RFU(rx->ctx.recv_dst)) {
BT_ERR("Destination address is RFU; dropping packet");
BT_ERR("Destination address is RFU; dropping packet 0x%02x", rx->ctx.recv_dst);
return -EBADMSG;
}
@@ -1541,8 +1550,8 @@ void bt_mesh_net_start(void)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Add Mesh beacon type (Secure Network Beacon) to the exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_BEACON, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON, NULL);
#endif
if (IS_ENABLED(CONFIG_BLE_MESH_LOW_POWER)) {

View File

@@ -95,7 +95,6 @@ struct bt_mesh_friend {
uint8_t fsn:1,
send_last:1,
pending_req:1,
sec_update:1,
pending_buf:1,
valid:1,
established:1;

View File

@@ -88,7 +88,8 @@ int bt_mesh_host_init(void)
int rc;
if (init == true) {
return -EALREADY;
BT_WARN("Already initialized host for mesh!");
return 0;
}
rc = btc_init();

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