Compare commits

..

1223 Commits

Author SHA1 Message Date
Ivan Grokhotkov
5f8de192fa Merge branch 'update/version_4_2_5' into 'release/v4.2'
Update version to 4.2.5

See merge request espressif/esp-idf!24489
2023-06-29 23:55:49 +08:00
Ivan Grokhotkov
d1503315de versions: Update version to 4.2.5 2023-06-29 10:06:42 +02:00
Jiang Jiang Jian
058fd7396b Merge branch 'bugfix/fix_chip_broken_bug_in_monitor_mode_S2_v4.2' into 'release/v4.2'
pm: fix RTC IO and MEM issues under high temperature(v4.2)

See merge request espressif/esp-idf!24252
2023-06-16 18:22:09 +08:00
Michael (XIAO Xufeng)
e2c08f3a73 pm: fix RTC IO and MEM issues under high temperature(v4.2) 2023-06-16 18:22:09 +08:00
Jiang Jiang Jian
b2c9d3d0f3 Merge branch 'bugfix/call_missing_disconnected_cb_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs(Backport v4.2)

See merge request espressif/esp-idf!24245
2023-06-16 18:18:29 +08:00
Jiang Jiang Jian
985cca4afd Merge branch 'bugfix/fix_wps_with_sae_enabled_ap_v4.2' into 'release/v4.2'
esp_wifi: Fix WPS issue for WPA3+WPA2 mode(v4.2)

See merge request espressif/esp-idf!24158
2023-06-16 11:34:55 +08:00
muhaidong
e532cc81ef esp_wifi: fix some wifi bugs
1. verify if country start channel is valid
2. fix missing disconnected callback and update some log prints
2023-06-14 20:42:14 +08:00
Kapil Gupta
26533e07a3 esp_wifi: Fix WPS issue for WPA3+WPA2 mode 2023-06-09 18:15:54 +05:30
Jiang Jiang Jian
129286d207 Merge branch 'bugfix/fix_some_wifi_bugs_230605_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs(Backport v4.2)

See merge request espressif/esp-idf!24051
2023-06-06 13:50:52 +08:00
muhaidong
e3d9d5df0d esp_wifi: fix some wifi bugs
1. send null data when state change from association to run
2. fix sta auth failed but softAP shows it connected issue
3. mesh: layer2 node will scan all channels when root leave in fixed root network
2023-06-05 20:46:22 +08:00
Jiang Jiang Jian
a9cac7605b Merge branch 'bufix/Backport_some_lwip_bugs_for_4.2_0417' into 'release/v4.2'
lwip: Add security fixes and other features and bufixes to v4.2

See merge request espressif/esp-idf!23238
2023-06-05 17:15:19 +08:00
xueyunfei
00096a3433 lwip: Add security fixes and other features and bufixes to v4.2
* Update submodule: git log --oneline 2195f7416fb3136831babf3e96c027a73075bd4f..6bb132e3797d5449a923804c75c57d458920f8ac

Detailed description of the changes:
  - tcp_in/ooseq: Fix incorrect segment trim when FIN moved (espressif/esp-lwip@6bb132e3)
  - api_msg: fix tcp_abort thread safety (2.1.2-esp) (espressif/esp-lwip@53a6e019)
  - lwip:optimization dhcp coarse timer (espressif/esp-lwip@a7abf28e)
  - napt: Fix ip_portmap_add() to keep only one port mapping (espressif/esp-lwip@abab9fef)
  - reduce the DHCP Request timeout (espressif/esp-lwip@6fa02bd3)
  - lwip timer:optimization dhcp fine timer (espressif/esp-lwip@79182163)
  - optimization lwip ip4 reassembly timer (espressif/esp-lwip@17f41c9f)
  - optimization lwip ip6 reassembly timer (espressif/esp-lwip@c943fc5a)
  - optimization lwip dns timer (espressif/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)
  - test/napt: Add unit test for IP forward with PBUF_REF (espressif/esp-lwip@76303df2)
  - napt: Fix PBUF_REF type to clone the pbuf before forwarding (espressif/esp-lwip@39068263)
  - version: Update version numbers to match 2.1.2-esp (espressif/esp-lwip@2b922919)
  - pppos: fix in_tail null (espressif/esp-lwip@537c69d5)
  - PPP: Add test exhibiting empty packet null-deref (espressif/esp-lwip@202a07da)
  - pbuf: Add pbuf_copy_partial_pbuf library function (espressif/esp-lwip@1c9cd9c1)
  - Add #define for minimum IPv6 MTU length (espressif/esp-lwip@d2dc577b)
  - zepif: Copy possibly chained output pbuf properly (espressif/esp-lwip@64ab7f2a)
  - icmp6: Don't copy too much data (espressif/esp-lwip@4a64731b)
  - icmp6: Fix copying of chained pbuf in reply (espressif/esp-lwip@7c822ff4)
  - icmp6: keep to the RFC and send as much as possible with icmp6 error messages (espressif/esp-lwip@29100ab6)
  - dns: Add API to clear dns cache (espressif/esp-lwip@ee59f77d)
  - CI: Fixed adding gitlab key (espressif/esp-lwip@5a2bdba7)
  - test case: modify test case test_tcp_new_max_num_remove_FIN_WAIT_1 (espressif/esp-lwip@6b090f7d)
  - add function for deinit lwip timers (espressif/esp-lwip@2749568f)
  - dhcp: Fix build issue that set ESP_DHCP_DISABLE_VENDOR_CLASS_IDENTIFIER to true will build fail (espressif/esp-lwip@d827dbf7)
  - Document that sntp_setservername doesn't copy the string (espressif/esp-lwip@54acdb59)
  - Closes https://github.com/espressif/esp-idf/issues/6786
  - lwip/dhcp: add 60 option for vendor class identify (espressif/esp-lwip@ae7edc2a)
  - Closes https://github.com/espressif/esp-lwip/issues/32
  - dhcp: Restore dhcp_cb on restart after dhcp_release_and_stop() (espressif/esp-lwip@55ea9d9c)
  - Closes https://github.com/espressif/esp-idf/issues/7217
  - napt: Fix disbale IPv6 and enable NAPT will build error (espressif/esp-lwip@74cf7f9f)
  - napt: fix checksum of UDP (espressif/esp-lwip@bb63eed1)
  - sntp: Fix client receive KOD packet that make pool MEMP_SYS_TIMEOUT not be freed (espressif/esp-lwip@1c1642fe)
  - test case: add tcp state and reset test cases. (espressif/esp-lwip@67deb805)
2023-06-05 06:08:45 +00:00
Jiang Jiang Jian
92a03d6241 Merge branch 'bugfix/nvs_softap_pmk_v4.2' into 'release/v4.2'
esp_wifi: fix softap nvs <ssid,password,pmk> not matching issue(v4.2)

See merge request espressif/esp-idf!23818
2023-06-05 12:06:08 +08:00
Marius Vikhammer
da80b63f3f Merge branch 'contrib/github_pr_11215_v4.2' into 'release/v4.2'
improve thread safety in esp_timer (GitHub PR) (v4.2)

See merge request espressif/esp-idf!23543
2023-05-29 10:19:41 +08:00
Jens Gutermuth
457b71f1a3 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-18 15:41:53 +08:00
chenjianxing
54a4d20bd2 esp_wifi: fix softap nvs <ssid,password,pmk> not matching issue 2023-05-18 15:40:10 +08:00
Marius Vikhammer
fe907a6c39 Merge branch 'bugfix/esp32s2_startup_garbled_output_v4.2' into 'release/v4.2'
esp_system: fix garbled UART output on startup on esp32s2 (v4.2)

See merge request espressif/esp-idf!18752
2023-05-18 13:05:57 +08:00
Jiang Jiang Jian
65331f6ce1 Merge branch 'bugfix/fix_some_ble_bug_v4.2' into 'release/v4.2'
Fixed some BLE bugs (backport v4.2)

See merge request espressif/esp-idf!23701
2023-05-18 10:52:37 +08:00
Ivan Grokhotkov
dc07c9e110 esp_system: fix garbled UART output on startup on esp32s2
Closes https://github.com/espressif/esp-idf/issues/9168
2023-05-18 02:14:31 +00:00
Jiang Jiang Jian
c28f5a5cd2 Merge branch 'bugfix/fix_esp32_bugs_230511_v4.2' into 'release/v4.2'
Fixed some esp32 bugs(backport v4.2)

See merge request espressif/esp-idf!23706
2023-05-17 17:08:44 +08:00
Zim Kalinowski
af6dafe01e Merge branch 'bugfix/psram_newlib_time_rom_v4.2' into 'release/v4.2'
rom: fix newlib time ROM functions being regardless of CONFIG_SPIRAM_CACHE_WORKAROUND (v4.2)

See merge request espressif/esp-idf!23392
2023-05-15 18:46:22 +08:00
zhiweijian
20de428632 Fixed blufi doc error 2023-05-11 20:29:24 +08:00
zhiweijian
b9d062ef16 Fixed BLE disconnection failure on ESP32 2023-05-11 20:26:39 +08:00
zwj
0b8b26ec49 Fixed disconnection due to consecutive CRC errors in first 6 intervals 2023-05-11 20:26:29 +08:00
zhiweijian
f563a1e3cc Fixed battery profile wrong condition 2023-05-11 20:25:57 +08:00
chenjianhua
747daffc28 bluedroid: fix ble adv data construct for device name 2023-05-11 15:28:39 +08:00
chenjianhua
dfe7cffd09 bluedroid: fix ble smp key distribution setting 2023-05-11 15:28:26 +08:00
chenjianhua
cb658fefb3 bluedroid: report disconnect event after BLE link closed 2023-05-11 15:28:05 +08:00
Marius Vikhammer
6a3bd9e22b 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:33 +00:00
Wang Meng Yang
3d0cfc8cc3 Merge branch 'bugfix/hf_cind_ind_index_v4.2' into 'release/v4.2'
bt: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator(v4.2)

See merge request espressif/esp-idf!23564
2023-05-09 19:54:52 +08:00
xiongweichao
1b459301d6 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:24:42 +08:00
Jiang Jiang Jian
4a52b7845c Merge branch 'bugfix/bt_diable_enbale_crash_v4.2' into 'release/v4.2'
bt:Fixed esp32 controller bug (v4.2)

See merge request espressif/esp-idf!23176
2023-04-24 11:03:08 +08:00
Jiang Jiang Jian
f97a8a2a2d Merge branch 'bugfix/fix_some_ble_bug_v4.2' into 'release/v4.2'
Fixed some BLE bugs (backport v4.2)

See merge request espressif/esp-idf!23305
2023-04-24 10:46:13 +08:00
zwj
45a3c35d65 Fixed duplicate scan refresh cycle is not accurate after restarting scan on ESP32 2023-04-23 12:21:20 +00:00
xiongweichao
873856fdf3 bt: added coex adapter operation to get version of coexist module to ESP32 Bluetooth Controller 2023-04-23 12:21:20 +00:00
xiongweichao
37aa555611 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-23 12:21:20 +00:00
chenjianhua
93360655cf bluedroid: report status after clearing the BLE white list 2023-04-21 16:01:09 +08:00
chenjianhua
b242e0e602 bluedroid: fix GATTC cache address save 2023-04-21 15:58:11 +08:00
chenjianhua
1d7317b401 bluedroid: fix adv and scan state conflict 2023-04-21 15:57:58 +08:00
chenjianhua
564c4b644d bluedroid: support get bluetooth device name 2023-04-21 15:57:41 +08:00
Jiang Jiang Jian
527a23d63f Merge branch 'bugfix/fix_systimer_stall_issue_in_lightsleep_v4.2' into 'release/v4.2'
esp_wifi: fix failed to sleep after scan, coex: fix wifi connecting interrupted by ble

See merge request espressif/esp-idf!23214
2023-04-17 19:42:47 +08:00
liuning
cebf0acaee esp_wifi: fix failed to sleep after scan, coex: fix wifi connecting interrupted by ble 2023-04-14 18:53:13 +08:00
Jiang Jiang Jian
f06c39e9a6 Merge branch 'bugfix/espnow_config_channel_v4.2' into 'release/v4.2'
esp_wifi: fix espnow example add peer fail when config channel(v4.2)

See merge request espressif/esp-idf!23181
2023-04-13 18:08:10 +08:00
chenjianxing
d71832b0c3 esp_wifi: fix espnow example add peer fail when config channel
Closes https://github.com/espressif/esp-idf/issues/9592
2023-04-13 10:55:10 +08:00
Jiang Jiang Jian
148f4c62a9 Merge branch 'mesh/bugfix_fix_heap_corrupt_issue_v4.2' into 'release/v4.2'
esp_wifi: fix bugs in wifi mesh (backport v4.2)

See merge request espressif/esp-idf!23131
2023-04-11 17:42:01 +08:00
zhangyanjiao
504e83c856 Update the ESP-NOW frame length in docs 2023-04-10 17:21:59 +08:00
zhangyanjiao
a7ba067c2e wifi_mesh: update mesh doc 2023-04-10 17:21:51 +08:00
zhangyanjiao
a42b845cab esp_wifi:
1. wifi_mesh: fix the heap corrupt issue in MTXON task
2. wifi_mesh: Fix several bugs on mesh network
2023-04-10 17:20:59 +08:00
Jiang Jiang Jian
25e130a833 Merge branch 'bugfix/fix_blufi_frag_pkt_vulnerability_4.2' into 'release/v4.2'
Fixed vulnerability attacks that could cause heap overflow in fragmented Blufi packet processing (back port v4.2)

See merge request espressif/esp-idf!23063
2023-04-06 10:57:19 +08:00
zhiweijian
3a7dd3c0de Fixed vulnerability attacks that could cause heap overflow in fragmented Blufi packet processing 2023-04-04 15:42:34 +08:00
Jiang Jiang Jian
9dfbf27857 Merge branch 'bugfix/fix_some_ble_bugs_for_4.2' into 'release/v4.2'
Bluedroid: fix some ble bugs (backport 4.2)

See merge request espressif/esp-idf!22704
2023-03-20 14:02:59 +08:00
Jiang Jiang Jian
8e8ef2b469 Merge branch 'bugfix/close_rf_in_deep_sleep_backport_v4.2' into 'release/v4.2'
deep sleep: further optimize sleep current if RF is enabled (backport v4.2)

See merge request espressif/esp-idf!22735
2023-03-20 14:02:17 +08:00
Jiang Jiang Jian
03ad2abdee Merge branch 'feature/esp32_ulp_allow_8kb_v4.2' into 'release/v4.2'
esp32: allow up to 8 kB of ULP program size (v4.2)

See merge request espressif/esp-idf!22707
2023-03-20 14:00:59 +08:00
wuzhenghui
b158a891fe deep sleep: close rf to optimize sleep current 2023-03-19 18:37:58 +08:00
wuzhenghui
0270f9d435 Revert "deep sleep: optimize sleep current in wifi softap mode"
This reverts commit f16e8cb48e.
2023-03-17 12:06:55 +08:00
Zim Kalinowski
f558578958 Merge branch 'refactor/nvs_allocatable_objects_v4.2' into 'release/v4.2'
refactor(nvs): custom allocator for all objects allocated in NVS (v4.2)

See merge request espressif/esp-idf!21796
2023-03-14 03:58:03 +08:00
Ivan Grokhotkov
3ccd1ae6e2 esp32: allow up to 8 kB of ULP program size
The remaining 4 kB had been reserved for storing RF calibration and
BT stack state since 4e092be6. However, these features never got
implemented. If we ever need to place RF related data into RTC slow
memory, we can do this by creating a variable with RTC_NOINIT_ATTR
instead.

https://github.com/espressif/esp-idf/issues/6515
2023-03-10 18:08:14 +08:00
chenjianhua
c912fcba45 fix ble adv tx power map 2023-03-10 17:15:24 +08:00
chenjianhua
c5dc8389ed bluedroid: fix ble rpa generate and update by host 2023-03-10 17:15:24 +08:00
chenjianhua
763143a89a fix esp hid crash when auth failed 2023-03-10 17:15:24 +08:00
Jakob Hasse
3705e39db9 refactor(nvs): custom allocator for all objects allocated in NVS 2023-03-04 14:07:10 +00:00
Zim Kalinowski
45a488f9e1 Merge branch 'bugfix/twai_listen_only_errata_v4.2' into 'release/v4.2'
twai: Add errata workaround for listen only mode (v4.2)

See merge request espressif/esp-idf!22517
2023-03-01 16:13:31 +08:00
Roland Dobai
129c4f5b62 Merge branch 'fix/gdbgui_v4.2' into 'release/v4.2'
Tools: gdbgui is not supported on Python 3.11 (v4.2)

See merge request espressif/esp-idf!22549
2023-03-01 16:01:03 +08:00
Roland Dobai
9e9cbd541b Tools: gdbgui is not supported on Python 3.11
Closes https://github.com/espressif/esp-idf/issues/10116
2023-02-28 16:15:22 +01:00
Darian Leung
f3a8a911c0 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:38:37 +08:00
Jiang Jiang Jian
ab0ae8733f Merge branch 'bugfix/build_err_with_ssr_enabled_v4.2' into 'release/v4.2'
bt: Fixed build errors when sniff subrating is enabled (v4.2)

See merge request espressif/esp-idf!22353
2023-02-17 13:51:55 +08:00
Jin Cheng
c25d227280 Fixed build errors when sniff subrating is enabled. 2023-02-16 15:25:41 +08:00
Jiang Jiang Jian
30af2e87f5 Merge branch 'fix/long_assoc_comeback_time_v4.2' into 'release/v4.2'
esp_wifi: reject AP when assoc comeback time given is greater than 5 seconds (Backport v4.2)

See merge request espressif/esp-idf!21814
2023-01-12 13:56:57 +08:00
Sarvesh Bodakhe
3bc7626603 esp_wifi: Update wifi libs
Update wifi libs with below changes -
1. reject AP when assoc comeback time given is greater than 5 seconds
2023-01-11 14:39:24 +05:30
Jiang Jiang Jian
034d954cd2 Merge branch 'bugfix/sae_auth_and_pmk_issues_v4.2' into 'release/v4.2'
Fix SAE open auth and PMK issues (Backport v4.2)

See merge request espressif/esp-idf!21921
2023-01-10 22:16:21 +08:00
Shyamal Khachane
a858328f3b wpa_supplicant: Set PMK from PMKSA incase of caching 2023-01-09 10:22:15 +05:30
Shyamal Khachane
7d70759991 esp_wifi: Fix open auth issue after commit message exchange 2023-01-09 10:22:15 +05:30
Jiang Jiang Jian
8da3f6ec7f Merge branch 'bugfix/fix_softap_beacon_memory_leak_issue_v4.2' into 'release/v4.2'
esp_wifi: fix softap beacon memory leak issue(Backport v4.2)

See merge request espressif/esp-idf!21813
2023-01-06 12:03:53 +08:00
Island
6012cda1fe Merge branch 'bugfix/change_position_of_vendor_model_and_gen_onoff_model_callback_forv4.2' into 'release/v4.2'
ble_mesh:example:change position of vendor model and generic onoff model callback(v4.2)

See merge request espressif/esp-idf!21801
2022-12-30 10:16:43 +08:00
Yuan Hong Hui
76e254cfb0 ble_mesh:example:change position of vendor model and generic onoff model callback(v4.2) 2022-12-30 10:16:42 +08:00
Jiang Jiang Jian
cb47c3fbc1 Merge branch 'bugfix/backport_wifi_fixes_v4.2' into 'release/v4.2'
backported some wifi fixes (backport v4.2)

See merge request espressif/esp-idf!21812
2022-12-27 23:51:46 +08:00
muhaidong
d6722f1ae1 esp_wifi: fix softap beacon memory leak issue
1. fix softap beacon memory leak issue.
2. fix esp wifi sta get ap info does not return connected ssid issue.
3. update inactive timer when recv ps-poll or success send data.
2022-12-27 19:34:13 +08:00
Kapil Gupta
a519f63740 esp_wifi: Add changes to skip SAE handshake during WPS connection 2022-12-27 15:33:33 +05:30
Kapil Gupta
81a0c6a27d esp_wifi: Flush PMK caching if bss akm has changed 2022-12-27 15:32:46 +05:30
Kapil Gupta
4a5f26d7fc Correct SSID copy length during WPS scan 2022-12-27 15:32:35 +05:30
Jiang Jiang Jian
c135695a18 Merge branch 'bugfix/fix_ble_some_bugs_20221219_v4.2' into 'release/v4.2'
backport some BLE bugs 20221219 (backport v4.2)

See merge request espressif/esp-idf!21720
2022-12-21 12:00:08 +08:00
Jiang Jiang Jian
7c9bdca900 Merge branch 'bugfix/spp_vfs_memory_leak_v4.2' into 'release/v4.2'
Component_bt/fix esp_spp_vfs_register memory leak(v4.2)

See merge request espressif/esp-idf!21717
2022-12-21 11:59:58 +08:00
Jiang Jiang Jian
6617cee1b2 Merge branch 'bugfix/fix_some_ble_bugs_by_cjh_v4.2' into 'release/v4.2'
Fixed some BLE bugs (backport v4.2)

See merge request espressif/esp-idf!21696
2022-12-20 18:56:46 +08:00
zwj
18d0ba010d 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
- Change default TX power to 9 dBm
- Fixed disconnect reason 0x1f (unspecified error)
- Fixed connection timeout due to terminate ind has not been acknowledged
- Fixed some memory was not released after bluetooth controller initialization failed on ESP32
2022-12-20 17:21:21 +08:00
xiongweichao
7f371f7864 bt: Fixed repeated register of vfs_id causing memory leaks 2022-12-20 15:13:44 +08:00
xiongweichao
1d43c9103c Assert when malloc user_data fail 2022-12-20 15:13:25 +08:00
xiongweichao
41d064578f Fixed memory leak when SPP initialization failed 2022-12-20 15:12:48 +08:00
chenjianhua
2fd6fa2773 bluedroid: fix ble connection update with same params 2022-12-19 20:05:50 +08:00
chenjianhua
4ea33bbdba examples: fix ble hid led output report 2022-12-19 20:05:50 +08:00
chenjianhua
310be0d052 bluedroid: fix encrypt keysize of GATT characteristic permission 2022-12-19 20:05:50 +08:00
chenjianhua
b24bc2482b bluedroid: correct the length of att read by type pdu 2022-12-19 20:05:50 +08:00
Island
79f74f8f76 Merge branch 'bugfix/change_the_level_of_nimble_log_forv4.2' into 'release/v4.2'
ble_mesh:example:change the level of nimble host log(v4.2)

See merge request espressif/esp-idf!21631
2022-12-16 14:13:11 +08:00
Yuan Hong Hui
41ed43cc51 ble_mesh:example:change the level of nimble host log 2022-12-15 18:07:44 +08:00
Jiang Jiang Jian
698aae95cf Merge branch 'contrib/github_pr_9529_v4.2' into 'release/v4.2'
component_bt: Fixed memory leak due to not freeing memory if posting a message to a thread fails(v4.2)

See merge request espressif/esp-idf!21474
2022-12-13 13:56:24 +08:00
morris
083483effc Merge branch 'bugfix/fix_slave_gpio_cs_mixed_with_iomux_bus_v4.2' into 'release/v4.2'
spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin (v4.2)

See merge request espressif/esp-idf!21379
2022-12-12 15:50:41 +08:00
Jiang Jiang Jian
24de51437b Merge branch 'bugfix/correct_the_default_SR_mode_v4.2' into 'release/v4.2'
bugfix/correct the SR_mode selection when konw nothing about Peripheral's SR_mode (v4.2)

See merge request espressif/esp-idf!21522
2022-12-12 14:57:37 +08:00
xiongweichao
e5e225adaa bt: Fixed incorrect parameters in switching to BTC context 2022-12-09 16:27:36 +08:00
xiongweichao
b5a959f11d bt:Modify the member variable *arg in struct btc_msg to arg[0] 2022-12-09 16:27:36 +08:00
Jin Cheng
bd9fddf174 correct the SR_mode selection when konw nothing about Peripheral 2022-12-09 10:39:59 +08:00
xiongweichao
0b0f2eeb01 bt: Fixed memory leak due to not freeing memory if posting a message to a thread fails 2022-12-08 18:47:31 +08:00
Jiang Jiang Jian
ff4d3224aa Merge branch 'bugfix/Fix_exceptional_list_params_check_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix exceptional list parameters check issue(v4.2)

See merge request espressif/esp-idf!21444
2022-12-06 20:40:45 +08:00
wangjialiang
c281ef1f43 ble_mesh: stack: Fix exceptional list parameters check issue 2022-12-05 20:35:54 +08:00
Jiang Jiang Jian
8c6057db9d Merge branch 'bugfix/unprot_sa_query_issue_v4.2' into 'release/v4.2'
Fix unprotected SA Query issue (Backport v4.2)

See merge request espressif/esp-idf!21316
2022-12-05 10:59:10 +08:00
wanlei
e08bbd311f spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin 2022-12-01 20:36:14 +08:00
Jiang Jiang Jian
9ff6e4492e Merge branch 'bufix/a2dp_fail_connect_again_after_disconnect_v4.2' into 'release/v4.2'
component_bt: Fixed a2dp failing to connect again after disconnect(v4.2)

See merge request espressif/esp-idf!21345
2022-12-01 10:30:30 +08:00
gauri patankar
b924092320 esp_wifi: Update wifi libs
Fix unprotected SA Query issue
2022-11-30 17:39:55 +05:30
xiongweichao
1e09841bd1 bt: Fixed a2dp failing to connect again after disconnect 2022-11-30 19:19:18 +08:00
Jiang Jiang Jian
e6c736b1d7 Merge branch 'bugfix/security_params_overwrite_v4.2' into 'release/v4.2'
Add changes to prevent security params overwritten in full scan (backport v4.2)

See merge request espressif/esp-idf!21290
2022-11-30 14:35:34 +08:00
Jiang Jiang Jian
49e15e942c Merge branch 'bugfix/fix_hfp_clcc_parser_bug_4.2' into 'release/v4.2'
Bugfix/Fix HFP client parse CLCC command response bug[backport 4.2]

See merge request espressif/esp-idf!21160
2022-11-30 10:59:47 +08:00
gauri patankar
1bdb0a14fd Add changes to prevent security params overwritten in full scan (backport v4.2) 2022-11-28 11:14:15 +05:30
Jiang Jiang Jian
4c8e97304a Merge branch 'bugfix/fix_iram_end_redefined_backportv4.2' into 'release/v4.2'
bugfix:  fix redefined _iram_end (backport v4.2)

See merge request espressif/esp-idf!21153
2022-11-28 10:19:48 +08:00
Jiang Jiang Jian
f730580a2d Merge branch 'bugfix/fix_softap_not_send_null_data_issue_v4.2' into 'release/v4.2'
esp_wifi: fix some softap issues(Backport v4.2)

See merge request espressif/esp-idf!21218
2022-11-25 11:16:28 +08:00
muhaidong
bdcc61ce3f esp_wifi: fix some softap issues 2022-11-24 11:20:15 +08:00
Jiang Jiang Jian
78cebd6c0b Merge branch 'bugfix/fixed_HIDH_connection_failure_v4.2' into 'release/v4.2'
bugfix/fixed connection failure and build errors of HID host (v4.2)

See merge request espressif/esp-idf!21208
2022-11-24 11:05:33 +08:00
Jin Cheng
0f3c7470d7 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:05:13 +08:00
Jin Cheng
f161c867c7 fixed build errors with Secure Simple Paring disabled 2022-11-23 21:04:19 +08:00
liqigan
1fa4e7dd9c fix HFP client parse CLCC command response bug 2022-11-23 03:10:36 +00:00
Jiang Jiang Jian
633e3ae00b Merge branch 'bugfix/wpa_enterprise_reauth_v4.2' into 'release/v4.2'
esp_wifi: Fix WiFi Enterprise Reauthentication issue (v4.2)

See merge request espressif/esp-idf!21074
2022-11-23 10:42:17 +08:00
Shreyas Sheth
28d791fac5 esp_wifi: Fix WiFi Enterprise Reauthentication issue (v4.2) 2022-11-23 10:42:17 +08:00
Island
2d6395ffd2 Merge branch 'bugfix/change_log_print_forv4.2' into 'release/v4.2'
ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.2)

See merge request espressif/esp-idf!21123
2022-11-23 10:25:56 +08:00
Yuan Hong Hui
918151a983 ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.2) 2022-11-23 10:25:56 +08:00
Jiang Jiang Jian
2455a073d6 Merge branch 'bugfix/fixing_memory_leak_wps_scan_v4.2' into 'release/v4.2'
(wpa_supplicant) : Fixed a memory leak issue created when parsing scan results

See merge request espressif/esp-idf!20989
2022-11-22 10:34:13 +08:00
Roland Dobai
423dec275b Merge branch 'fix/bitstring_4_v4.2' into 'release/v4.2'
Tools: Use bitstring package compatible with supported Python versions (v4.2)

See merge request espressif/esp-idf!21181
2022-11-22 03:48:51 +08:00
Roland Dobai
460ebc115d 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:25 +01:00
jgujarathi
831a97a3db (wpa_supplicant) : Fixed a memory leak issue created when parsing scan results 2022-11-21 18:04:32 +05:30
wuzhenghui
e973d46045 bugfix: fix redefined _iram_end 2022-11-18 19:49:16 +08:00
morris
30eff41e9d Merge branch 'feature/remove_psram_cs_clk_pin_settings_config_s2_s3_v4.2' into 'release/v4.2'
psram: remove CS/CLK pin settings in kconfig on ESP32S2 (v4.2)

See merge request espressif/esp-idf!21049
2022-11-14 18:07:25 +08:00
Jiang Jiang Jian
8fcfcdda77 Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.2' into 'release/v4.2'
fixed the issue iOS devices cannot initiate connection (v4.2)

See merge request espressif/esp-idf!21060
2022-11-14 15:28:05 +08:00
Jin Cheng
e974410092 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:51:02 +08:00
Armando
0121b27a37 psram: remove CS/CLK pin settings in kconfig on ESP32S2 2022-11-11 18:20:06 +08:00
Jiang Jiang Jian
8c6e7089f5 Merge branch 'bugfix/fix_trans_optional_info_using_group_addr_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix can't trans optional info to group address(v4.2)

See merge request espressif/esp-idf!20961
2022-11-11 16:46:12 +08:00
wangjialiang
1cf785d3f5 ble_mesh: stack: Fix can't trans optional info to group address 2022-11-07 15:52:15 +08:00
Jiang Jiang Jian
a0281fc4c7 Merge branch 'bugfix/eapol_drop_issue_v4.2' into 'release/v4.2'
esp_wifi: Clear old keys before going for new connection

See merge request espressif/esp-idf!20903
2022-11-04 14:15:05 +08:00
jgujarathi
74b82595e3 esp_wifi: Clear old keys before going for new connection 2022-11-02 14:31:02 +05:30
Jiang Jiang Jian
cb65890aaf Merge branch 'bugfix/fix_sta_scan_when_already_connected_v4.2' into 'release/v4.2'
esp-wifi: Restores station status to connected when no other AP is found for roam

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

See merge request espressif/esp-idf!20811
2022-11-01 10:48:57 +08:00
morris
91ac2dc121 Merge branch 'bugfix/fix_esp32_psram_cs_hold_time_issue_when_under_80m_v4.2' into 'release/v4.2'
esp_psram: fix esp32 psram cs hold time issue when under 40m (v4.2)

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

See merge request espressif/esp-idf!20141
2022-11-01 10:17:12 +08:00
Jiang Jiang Jian
76bb98355d Merge branch 'bugfix/esp_spp_write_len_0_v4.2' into 'release/v4.2'
bt: Fixed esp_spp_write() crash when len is 0 (v4.2)

See merge request espressif/esp-idf!20708
2022-10-31 19:51:15 +08:00
Michael (XIAO Xufeng)
934f99710b Merge branch 'bugfix/fix_uart_fake_tx_done_v4.2' into 'release/v4.2'
uart: Fix unwanted processing of TX_DONE interrupt immediately after calling uart_wait_tx_done() (backport v4.2)

See merge request espressif/esp-idf!20315
2022-10-31 16:16:46 +08:00
Jiang Jiang Jian
fe16a6fcf0 Merge branch 'bugfix/handle_issue_of_malloc_fail_v4.2' into 'release/v4.2'
bugfix/avoid unexpected free when malloc failed (v4.2)

See merge request espressif/esp-idf!20725
2022-10-31 10:47:42 +08:00
Island
713d058c61 Merge branch 'bugfix/ble_mesh_console_memory_leak_test_forv4.2' into 'release/v4.2'
ble_mesh:example:fix memory leak(v4.2)

See merge request espressif/esp-idf!20040
2022-10-28 16:12:47 +08:00
David Čermák
9d50c47e10 Merge branch 'bugfix/fix_mdns_example_v4.2' into 'release/v4.2'
mDNS: Fix example test in CI using retries (v4.2)

See merge request espressif/esp-idf!19450
2022-10-27 16:36:38 +08:00
jgujarathi
a2bbe0918f esp-wifi: Restores station status to connected when no other AP is found for roam 2022-10-27 10:57:56 +05:30
wangmengyang
e4d21b2781 bt: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth on ESP32 2022-10-26 19:04:06 +08:00
xiongweichao
c528942f0d bt: Fixed SPP VFS mode not being able to send data 2022-10-26 16:46:11 +08:00
xiongweichao
404d2be6f2 bt: Fixed esp_spp_write() crash when len is 0
Closes https://github.com/espressif/esp-idf/issues/9977
2022-10-26 16:45:50 +08:00
gabsuren
321481b459 mDNS: Fix example test in CI using retries 2022-10-26 06:06:14 +00:00
Jiang Jiang Jian
d33ce3ce52 Merge branch 'bugfix/fix_esp32_some_bugs_v4.2' into 'release/v4.2'
Fixed BLE ASSERT_PARAM(32 0) in rwble.c at line 384 on ESP32(backport v4.2)

See merge request espressif/esp-idf!20762
2022-10-26 10:56:12 +08:00
Jiang Jiang Jian
39f3ab13ce Merge branch 'bugfix/update_ctrl_init_config_macro_v4.2' into 'release/v4.2'
Bugfix/update ctrl init config macro (v4.2)

See merge request espressif/esp-idf!20714
2022-10-25 17:41:42 +08:00
zhiweijian
78fd81c0d3 Fixed ESP32 BLE assert(32 0) 2022-10-25 17:33:17 +08:00
zwj
a2dfa5c86b allow bluedroid host to report adv_ind separately 2022-10-25 17:33:17 +08:00
Jiang Jiang Jian
45a2695b87 Merge branch 'bugfix/build_wifi_lib_with_Os_v4.2' into 'release/v4.2'
esp_wifi: build wifi lib with -Os optimization (Backport v4.2)

See merge request espressif/esp-idf!20751
2022-10-25 16:50:25 +08:00
Yuan Hong Hui
9de1ce057a ble_mesh:example:fix memory leak 2022-10-25 03:48:30 +00:00
Island
0021c6d14f Merge branch 'bugfix/remove_get_modle_and_get_comp_api_forv4.2' into 'release/v4.2'
ble_mesh:example:change the method of get model(for v4.2)

See merge request espressif/esp-idf!20395
2022-10-24 19:42:55 +08:00
zhangyanjiao
f32a3ad5b0 esp_wifi: build wifi lib with -Os optimization
Closes WIFI-4710
2022-10-24 15:24:06 +08:00
Jiang Jiang Jian
509e708a96 Merge branch 'bugfix/fix_some_wifi_bugs_1019_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs(Backport v4.2)

See merge request espressif/esp-idf!20729
2022-10-24 12:25:27 +08:00
Fu Hanxi
1a31c85f89 Merge branch 'ci/force_based_on_commit_v4.2' into 'release/v4.2'
ci: support one pipeline must based on commmits (v4.2)

See merge request espressif/esp-idf!17924
2022-10-24 08:57:30 +08:00
muhaidong
329d978c89 docs: update wifi country code docs. 2022-10-21 21:01:11 +08:00
liuning
73912c07ce esp_wifi: fix fail to scan after recv disassoc/deauth for esp32s2 2022-10-21 19:59:27 +08:00
muhaidong
234a45b2b3 esp_wifi: fix some wifi bugs:
1. fix sta reset beacon timeout timer issue
2. fix pairwise cipher tkip pmf compability issue
3. fix country policy issue
4. fix deinit return wrong status issue
5. fix get wrong channel value use esp_wifi_get_config
6. fix bug of missing unlock when wifi stop
7. fix error of esp_wifi_start_scan in api esp_wifi_connect
8. fix fail to scan after recv disassoc/deauth for esp32s2
2022-10-21 19:59:09 +08:00
Jiang Jiang Jian
04bf991178 Merge branch 'bugfix/fix_legacy_pair_not_send_link_key_host_v4.2' into 'release/v4.2'
component_bt: fix legacy pair controller does not send the link key to the host (v4.2)

See merge request espressif/esp-idf!19322
2022-10-21 16:06:58 +08:00
tgotic
b37b8f163b [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:57:19 +08:00
Jin Cheng
bb2f66843c Corrects header names in string from "bt.h" to "esp_bt.h". 2022-10-21 13:14:38 +08:00
Fu Hanxi
f4ee9a97dc ci: support one pipeline must based on commmits 2022-10-20 12:42:23 +00:00
Jiang Jiang Jian
eb8316394c Merge branch 'bugfix/revert_commit_da44fc9c_v4.2' into 'release/v4.2'
Revert "fixed the issue iOS devices cannot initiate connection" (v4.2)

See merge request espressif/esp-idf!20668
2022-10-20 19:18:54 +08:00
xiongweichao
2a3ab6accf fix legacy pair controller does not send the link key to the host
Closes https://github.com/espressif/esp-idf/issues/5850
2022-10-20 11:07:24 +00:00
Island
f17dce2c3b Merge branch 'feature/Add_IVI_recovery_option_v4.2' into 'release/v4.2'
ble_mesh: stack: Add IV index recovery option when device missed the whole IV update(v4.2)

See merge request espressif/esp-idf!20644
2022-10-20 16:42:51 +08:00
Island
25e80452ab Merge branch 'bugfix/fix_fast_interval_prov_adv_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix send fast interval prov_adv failed(v4.2)

See merge request espressif/esp-idf!20638
2022-10-20 16:41:58 +08:00
Jiang Jiang Jian
5158f347cd Merge branch 'bugfix/fix_connect_fail_when_enable_SPIRAM_v4.2' into 'release/v4.2'
esp_wifi: fix connect fail when enable SPIRAM and ESPNOW send (backport v4.2)

See merge request espressif/esp-idf!20606
2022-10-20 12:02:48 +08:00
zhangyanjiao
e28977a884 esp_wifi:
1. fix connect fail when enable SPIRAM and ESPNOW send
2. refactor WiFi ioctl function
2022-10-19 10:20:26 +08:00
Jin Cheng
15f49d5848 Revert "fixed the issue iOS devices cannot initiate connection"
This reverts commit da44fc9cbe.
2022-10-18 19:45:49 +08:00
Jiang Jiang Jian
b8e47cc6a9 Merge branch 'contrib/github_pr_9529_mr_v4.2' into 'release/v4.2'
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.2)

See merge request espressif/esp-idf!19694
2022-10-18 16:10:25 +08:00
xiongweichao
7162617e65 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-18 06:15:46 +00:00
tgotic
2b70fe2531 update code to use osi_free() 2022-10-18 06:15:46 +00:00
tgotic
59e36c445d 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-18 06:15:46 +00:00
wangjialiang
f56c9da3d7 ble_mesh: stack: Add IV index recovery option when device missed the whole IV update 2022-10-17 16:54:47 +08:00
wangjialiang
b467ab61a1 ble_mesh: stack: Fix send fast interval prov_adv failed when PB-ADV and PB-GATT enable simultaneously 2022-10-17 16:40:38 +08:00
Roland Dobai
b89f55d74a Merge branch 'fix/virtualenv_dir_v4.2' into 'release/v4.2'
Tools: Keep making virtual environments with python in the bin directory (v4.2)

See merge request espressif/esp-idf!20621
2022-10-17 01:04:41 +08:00
Roland Dobai
158df60dce 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:37:46 +02:00
morris
6e42e604b2 Merge branch 'bugfix/fix_rtc8m_calibration_fail_after_cpu_core_reset_v4.2' into 'release/v4.2'
rtc_clk: Fix rtc8m calibration failure after cpu/core reset (backport v4.2)

See merge request espressif/esp-idf!20555
2022-10-14 14:06:52 +08:00
Song Ruo Jing
3b5ce456e2 rtc_clk: Fix rtc8m calibration failure after cpu/core reset
Explicitly guarantee 8md256 clk is enabled before calibration
2022-10-12 12:44:48 +08:00
Michael (XIAO Xufeng)
2900d0da2e Merge branch 'bugfix/i2c_timeout_issue_v4.2' into 'release/v4.2'
I2C: patch for solving watchdog timeout issue(backport v4.2)

See merge request espressif/esp-idf!18135
2022-10-11 15:21:49 +08:00
morris
2451047a7b Merge branch 'feat/spi_flash_qio_test_v4.2' into 'release/v4.2'
spi_flash: add unit tests for qio mode (v4.2)

See merge request espressif/esp-idf!17696
2022-10-10 18:22:49 +08:00
Wang Meng Yang
db75db5509 Merge branch 'bugfix/remove_bt_dft_init_semicolon_v4.2' into 'release/v4.2'
bt: Remove trailing semicolon from bt dft initializer(v4.2)

See merge request espressif/esp-idf!19917
2022-10-10 17:32:57 +08:00
Wang Meng Yang
9c5127d0e4 Merge branch 'feature/sink_support_mono_v4.2' into 'release/v4.2'
bt: Fixed sink not being able to output mono audio because it can only decode dual channel audio data(v4.2)

See merge request espressif/esp-idf!20080
2022-10-10 17:32:35 +08:00
Wang Meng Yang
82890eee6c Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.2' into 'release/v4.2'
fixed the issue iOS devices cannot initiate connection (v4.2)

See merge request espressif/esp-idf!20406
2022-10-10 17:25:25 +08:00
Cao Sen Miao
9a59ed4b7a I2C: patch for solving watchdog timeout issue 2022-10-10 11:05:25 +08:00
Wang Meng Yang
bd4b68167d Merge branch 'bugfix/fix_ble_get_cur_pkt_num_crash_sometimes_when_bluetooth_is_disconnecting_v4.2' into 'release/v4.2'
Fixed calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting(backport v4.2)

See merge request espressif/esp-idf!20379
2022-10-08 16:35:45 +08:00
Michael (XIAO Xufeng)
e5f6cd9cc5 Merge branch 'feat/essl_extra_component_v4.2' into 'release/v4.2'
sdio/example: fixed the essl return value issue (v4.2)

See merge request espressif/esp-idf!20347
2022-10-08 14:07:19 +08:00
Roland Dobai
05830cb46d Merge branch 'bugfix/missing_idfSelectedId_v4.2' into 'release/v4.2'
Tools: bugfix wrong format of idf-env.json, KeyError: 'idfSelectedId' (v4.2)

See merge request espressif/esp-idf!20382
2022-09-29 01:31:01 +08:00
Jiang Jiang Jian
5976dcc006 Merge branch 'bugfix/fix_send_eapol_key_request_frame_when_wpa_group_handshake_issue_v4.2' into 'release/v4.2'
wpa_supplicant: try install gtk before send group key handshake message 2(Backport v4.2)

See merge request espressif/esp-idf!20199
2022-09-28 17:50:35 +08:00
Jin Cheng
396dc28ca9 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:16:05 +08:00
Yuan Hong Hui
8f01785e2f ble_mesh:example:change the method of get model 2022-09-28 15:34:08 +08:00
Wang Meng Yang
91874c837c Merge branch 'bugfix/hfp_examples_not_work_with_default_sdkconfig_v4.2' into 'release/v4.2'
bugfix/set default number of sco connection to 1 (v4.2)

See merge request espressif/esp-idf!19589
2022-09-28 15:28:01 +08:00
Island
ec05def4cd Merge branch 'bugfix/ble_mesh_console_support_nimble_host_for_v4.2' into 'release/v4.2'
ble_mesh:ble mesh console support nimble(v4.2)

See merge request espressif/esp-idf!19606
2022-09-28 12:32:31 +08:00
Marek Fiala
77569c24b9 Tools: bugfix wrong format of idf-env.json, KeyError: 'idfSelectedId'
Closes https://github.com/espressif/esp-idf/issues/9837
2022-09-27 22:42:10 +02:00
cjin
1659c3460a fix on data len change cmd malfunction 2022-09-27 21:47:39 +08:00
cjin
9d9b08ff10 fix err using rpa for confirmation calculation 2022-09-27 21:47:25 +08:00
zwj
4c3a48edea fix calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting 2022-09-27 21:46:57 +08:00
Michael (XIAO Xufeng)
cff557ce07 sdio/example: fixed the essl return type issue 2022-09-26 19:42:24 +08:00
Roland Dobai
0b92a1b40d Merge branch 'fix/ci_macos_idf_env_json_v4.2' into 'release/v4.2'
CI: Clean-up idf-env.json which might not be compatible with newer versions (v4.2)

See merge request espressif/esp-idf!20322
2022-09-23 21:47:12 +08:00
Roland Dobai
b3a80b4229 CI: Clean-up idf-env.json which might not compatible with newer versions 2022-09-23 12:26:23 +02:00
Song Ruo Jing
0f051a5e3b 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.

Introduced in 239e56541c
2022-09-23 16:24:30 +08:00
Jiang Jiang Jian
e81c5be7d8 Merge branch 'ci/optimize_ats_ci_flow_v4.2' into 'release/v4.2'
CI: optimize ATS ci flow (v4.2)

See merge request espressif/esp-idf!20179
2022-09-22 14:12:17 +08:00
morris
04f2766b3e Merge branch 'bugfix/fix_spi_bus_lock_concurrency_issue_v4.2' into 'release/v4.2'
spi_bus_lock: fix a concurrency issue (v4.2)

See merge request espressif/esp-idf!20140
2022-09-22 13:30:47 +08:00
Island
d1f4406718 Merge branch 'bugfix/lpn_not_recv_message_to_all_node_4.2' into 'release/v4.2'
ble_mesh: stack: Add option for lpn auto sub all-nodes(v4.2)

See merge request espressif/esp-idf!20262
2022-09-21 11:31:29 +08:00
wangjialiang
514e896462 ble_mesh: stack: Add option for lpn auto sub all-nodes. 2022-09-20 20:32:37 +08:00
muhaidong
faf4fd233a wpa_supplicant: try install gtk before send group key handshake message 2 2022-09-19 08:15:15 +00:00
Jiang Jiang Jian
138bbec8ab Merge branch 'bugfix/relay_friend_cred_message_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix friend relay lpn message when relay disable(v4.2)

See merge request espressif/esp-idf!20206
2022-09-19 14:03:31 +08:00
wangjialiang
c78efa5fa4 ble_mesh: stack: Fix friend relay lpn message when relay disable. 2022-09-18 09:51:31 +00:00
Island
13b05ca6ba Merge branch 'bugfix/adapt_new_btc_v4.2' into 'release/v4.2'
ble_mesh: stack: Corrected parameter size when the btc_transfer_context is used (v4.2)

See merge request espressif/esp-idf!20168
2022-09-18 14:35:49 +08:00
Jiang Jiang Jian
c2bb3afafa Merge branch 'bugfix/fix_some_wifi_bugs_0805_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs(Backport v4.2)

See merge request espressif/esp-idf!19402
2022-09-16 14:16:11 +08:00
Chen Yudong
9d5275375a CI: optimize ATS ci flow 2022-09-16 13:53:15 +08:00
Island
98d90cd216 Merge branch 'bugfix/friend_and_lpn_issues_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix friend and lpn issues(v4.2)

See merge request espressif/esp-idf!19477
2022-09-15 18:42:41 +08:00
Island
0b03533594 Merge branch 'bugfix/mesh_bqb_test_issues_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix mesh v1.0 BQB test issues(v4.2)

See merge request espressif/esp-idf!19504
2022-09-15 18:42:30 +08:00
wangjialiang
3052096ab1 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 17:02:24 +08:00
morris
949d7da779 Merge branch 'bugfix/driver_rs485_fix_test_sync_issues_v42' into 'release/v4.2'
driver: uart rs485 fix test sync issues and fail threshold (backport v4.2)

See merge request espressif/esp-idf!19615
2022-09-15 15:23:21 +08:00
Alex Lisitsyn
3c67e26dce driver: uart rs485 fix test sync issues and fail threshold (backport v4.2) 2022-09-15 15:23:21 +08:00
wanlei
d7e3f3fb64 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 14:20:16 +08:00
Armando
19098d3eb0 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:15:06 +08:00
Ivan Grokhotkov
ed22f22632 Merge branch 'bugfix/spi_slave_intr_iram_v4.2' into 'release/v4.2'
driver: spi_slave: make sure CS helpers are in IRAM if the ISR is (v4.2)

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

See merge request espressif/esp-idf!19613
2022-09-13 16:27:52 +08:00
Zim Kalinowski
eb128229a9 Merge branch 'bugfix/i2c_notify_task_in_ISR_v4.2' into 'release/v4.2'
I2C: Fix a bug making the I2C task wait too long on an event

See merge request espressif/esp-idf!19619
2022-09-13 16:27:40 +08:00
Roland Dobai
691c4ddeb5 Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' (v4.2)

See merge request espressif/esp-idf!19492
2022-09-12 16:54:19 +08:00
Michael (XIAO Xufeng)
afbfcbaef1 ci: add job num 2022-09-12 00:52:20 +08:00
Michael (XIAO Xufeng)
75ff8d7ff8 spi_flash: add unit tests for qio mode 2022-09-11 02:39:59 +08:00
xiongweichao
7f0c35dd32 bt:Fixed sink not being able to output mono audio because it can only decode dual channel audio data 2022-09-09 17:45:03 +08:00
Mahavir Jain
1ec5e249b6 Merge branch 'update/version_4_2_4' into 'release/v4.2'
Update version to 4.2.4

See merge request espressif/esp-idf!19867
2022-09-08 12:25:02 +08:00
Pedro
ef23935993 Remove trailing semicolon from bt dft initializer
Similar to espressif#6554
2022-09-02 11:14:16 +08:00
Ivan Grokhotkov
f5e484fc79 versions: Update version to 4.2.4 2022-08-31 00:18:44 +02:00
Armando
ea78cd1116 esp_psram: fixed 40mhz cs signal glitch issue 2022-08-18 20:39:56 +08:00
Omar Chebib
ebd63c499c (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-18 10:44:31 +08:00
Omar Chebib
17a5d4aff7 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-17 17:39:10 +08:00
Yuan Hong Hui
db99a12578 ble_mesh:ble mesh console support nimble 2022-08-17 14:39:53 +08:00
jincheng
c92e55cb4a 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:34 +08:00
Alexey Gerenkov
d42d181f27 test/examples: Fixes expected GDB message upon thread hit breakpoint 2022-08-15 19:06:19 +03:00
Alexey Gerenkov
4d9aed7511 tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' 2022-08-12 14:11:40 +03:00
wangjialiang
2850d7ca59 ble_mesh: stack: Fix kr from non-primary subnet shouldn't ignore
For case MESH/NODE/KR/BV-02-C
2022-08-11 14:17:46 +08:00
wangjialiang
f14a13b887 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:17:41 +08:00
wangjialiang
5df2e036df 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:17:35 +08:00
wangjialiang
929f931b88 ble_mesh: stack: The Heartbeat Publication Period Log value can set to 0x11, range: [0, 0x11] 2022-08-11 14:17:29 +08:00
wangjialiang
892b9b9def 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:17:22 +08:00
wangjialiang
6a88790a74 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:17:13 +08:00
wangjialiang
80630b1e6a ble_mesh: stack: Fix PB-GATT not check invalid link flag
For case MESH/NODE/PROV/BI-03-C
2022-08-11 14:17:05 +08:00
wangjialiang
386da9df0c ble_mesh: stack: Fix invalid provisioning pdu type check
For case MESH/NODE/PROV/BI-15-C
2022-08-11 14:17:01 +08:00
wangjialiang
2e190452b8 ble_mesh: stack: Fix add continuously secure update into friend queue.
For MESH/NODE/FRND/FN/BV-20-C
2022-08-09 21:50:24 +08:00
wangjialiang
a6b2103948 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:50:20 +08:00
Ivan Grokhotkov
5a65ac50e0 driver: spi_slave: make sure CS helpers are in IRAM if the ISR is
Closes https://github.com/espressif/esp-idf/issues/3870
2022-08-08 10:34:09 +02:00
Island
997844bbc3 Merge branch 'bugfix/vendor_model_send_message_no_memory_forv4.2' into 'release/v4.2'
ble_mesh:example: free the memory of malloc (v4.2)

See merge request espressif/esp-idf!19187
2022-08-08 12:25:38 +08:00
Yuan Hong Hui
10f0879fdb ble_mesh:the memory requested by malloc has not benn released 2022-08-05 12:13:47 +00:00
Jiang Jiang Jian
d016f69ffc Merge branch 'feat/make_property_idf_component_manager_root_level_v4.2' into 'release/v4.2'
Feat/make property idf component manager root level (v4.2)

See merge request espressif/esp-idf!19084
2022-08-05 19:58:57 +08:00
Jiang Jiang Jian
847d9631b9 Merge branch 'bugfix/restore_missing_ble_mesh_videos_v4.2' into 'release/v4.2'
ble_mesh: doc: Restore missing ble mesh videos(v4.2)

See merge request espressif/esp-idf!19405
2022-08-05 19:58:42 +08:00
wangjialiang
3c5eb41914 ble_mesh: doc: Restore missing ble mesh videos 2022-08-05 13:57:25 +08:00
muhaidong
647526af47 esp_wifi: fix some wifi bugs
1. fix not update phy according to country code.
2. sync peripheral device reg base.
3. fix for default ap ssid not set.
4. do not recv unencrypted unicaset ESPNOW packets when local encrypted.
2022-08-05 13:29:52 +08:00
Jiang Jiang Jian
be26894259 Merge branch 'bugfix/install_key_refactor_v4.2' into 'release/v4.2'
esp_wifi: backported some wifi fixes (19472381)

See merge request espressif/esp-idf!19385
2022-08-05 10:42:26 +08:00
Kapil Gupta
bdc671aee3 esp_wifi: backported some wifi fixes (19472381)
1. G1 rx drop from key install code refactoring
2. Remove group cipher check for PMF connection
2022-08-04 12:21:20 +05:30
Marius Vikhammer
ca1628b310 Merge branch 'bugfix/freertos_event_group_unblock_race_condition_v4.2' into 'release/v4.2'
FreeRTOS: Fix event group task list race condition (v4.2)

See merge request espressif/esp-idf!19105
2022-08-04 13:14:26 +08:00
Jiang Jiang Jian
2f634a82d5 Merge branch 'bugfix/wlan_fixes_backports_v4.2' into 'release/v4.2'
esp_wifi: Fix some wlan issues(backport v4.2)

See merge request espressif/esp-idf!19362
2022-08-04 11:33:57 +08:00
Jiang Jiang Jian
a46d166c49 Merge branch 'bugfix/combined_softap_pmf_fixes_v4.2' into 'release/v4.2'
Combined bugfixes for SoftAP and PMF (Backport v4.2)

See merge request espressif/esp-idf!19121
2022-08-04 11:05:10 +08:00
Nachiket Kukade
0c88beb9c4 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
2022-08-03 18:16:37 +05:30
Jiang Jiang Jian
c5875e64b1 Merge branch 'docs/update_wifi_api_doc_v4.2' into 'release/v4.2'
DOC: update wifi api docs ( backport v4.2)

See merge request espressif/esp-idf!18083
2022-08-03 20:12:06 +08:00
Kapil Gupta
0efba69571 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:47:07 +05:30
Kapil Gupta
ec70ed86e0 esp_wifi: Changes to not use pmkid caching when SSID is changed 2022-08-03 14:38:05 +05:30
Kapil Gupta
064474fca6 wpa_supplicant: Fix issues reported by coverity 2022-08-03 14:37:43 +05:30
Jiang Jiang Jian
d98e2a3d5f Merge branch 'bugfix/fix_write_to_null_pointer_if_malloc_failed_issue_v4.2' into 'release/v4.2'
fix write to null pointer if malloc failed(Backport v4.2)

See merge request espressif/esp-idf!19350
2022-08-03 10:59:10 +08:00
Jiang Jiang Jian
8e8cf08d2d Merge branch 'bugfix/update_gpio_intr_enable_note_v4.2' into 'release/v4.2'
Update the note of the gpio_intr_enable function(v4.2)

See merge request espressif/esp-idf!18544
2022-08-03 10:58:42 +08:00
xueyunfei
3ffcb03f60 bugfix for backport wifi bugs to 4.2
- Bugfix for close sniffer mode when wifi stop

  - Bugfix for qos null update ba ssn

  - Bugfix for wrong configuration of static txbuf

  - Fix deep sleep can't reconnect to ap when pmf enable.

  - Fix some ap will ignore auth when rx deauth for a while.

  - update wifi header file
2022-08-03 10:45:36 +08:00
Oleg Savchenko
0a0ad4309f fix write to null pointer if malloc failed 2022-08-02 20:30:30 +08:00
zhangyanjiao
63324950fa modify API-reference using Sphinx directives 2022-08-02 20:23:37 +08:00
zhangyanjiao
0a7fedcbbd update wifi api docs 2022-08-02 20:23:37 +08:00
Jiang Jiang Jian
9d854cd6b0 Merge branch 'bugfix/set_ipv6_dns_error_v4.2' into 'release/v4.2'
lw ip: Fixed that ipv6 dns cannot work (v4.2)

See merge request espressif/esp-idf!19064
2022-08-02 20:21:39 +08:00
Jiang Jiang Jian
eddee33f98 Merge branch 'bugfix/fix_bluedroid_host_memory_overflow_v4.2' into 'release/v4.2'
Fixed bluedroid host memory overflow for v4.2

See merge request espressif/esp-idf!18905
2022-08-02 19:47:41 +08:00
Jiang Jiang Jian
510f86d451 Merge branch 'bugfix/memory_debug_not_work_v4.2' into 'release/v4.2'
bugfix/fix the dependency error of macro for memory debug (v4.2)

See merge request espressif/esp-idf!19234
2022-08-02 15:49:36 +08:00
Jiang Jiang Jian
4bdc7853cf Merge branch 'bugfix/put_sempher_and_queue_used_in_isr_into_DRAM_v4.2' into 'release/v4.2'
Make sure semphr/queue used in interrupt is in DRAM

See merge request espressif/esp-idf!18990
2022-08-02 11:32:18 +08:00
Michael (XIAO Xufeng)
7718c60d81 Merge branch 'bugfix/reserve_dma_ram_in_segments_v4.2' into 'release/v4.2'
psram: reserve dma pool in the step of heap max block (v4.2)

See merge request espressif/esp-idf!18861
2022-08-01 17:14:46 +08:00
Fu Hanxi
8b09f2f01f ci: pip install idf-component-manager inside CI 2022-08-01 10:44:50 +08:00
Sergei Silnov
ac8b720880 docs: Add IDF_COMPONENT_MANAGER build property 2022-08-01 10:44:50 +08:00
Sergei Silnov
fdc70f5b7f docs: Enable the component manager by default in CMake 2022-08-01 10:44:50 +08:00
Fu Hanxi
5d1864b7d7 build&config: lift property IDF_COMPONENT_MANAGER to root level 2022-08-01 10:44:50 +08:00
David Čermák
9003e6d1eb Merge branch 'bugfix/cxx_exception_pool_4.2' into 'release/v4.2'
startup: Make __cxx_eh_arena_size_get return 0 if exceptions disabled (v4.2)

See merge request espressif/esp-idf!18800
2022-07-29 13:14:45 +08:00
zhiweijian@espressif.com
029ed39579 Fixed bluedroid host memory overflow 2022-07-28 09:47:03 +00:00
wanlei
da340c02cc psram: 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:17:17 +08:00
xiongweichao
06d169e518 Update the note of the gpio_intr_enable function 2022-07-26 12:39:42 +00:00
baohongde
1af2a470dc 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 13:50:43 +08:00
baohongde
6842dc1d2d components/bt: Make sure sempher and queue used in isr is in DRAM 2022-07-25 11:45:45 +08:00
Jiang Jiang Jian
1801a10828 Merge branch 'bugfix/schm_process_in_active_crash_v4.2' into 'release/v4.2'
Coex: fixed crash when calculating end transfer time(v4.2)

See merge request espressif/esp-idf!19192
2022-07-22 21:24:16 +08:00
jincheng
b7fe47292f fix the dependency error of macro for memory debug 2022-07-22 16:21:57 +08:00
xiongweichao
61af5f66a4 coex: fixed crash when calculating end transfer time 2022-07-22 16:15:58 +08:00
Jiang Jiang Jian
ad9395f74a Merge branch 'mesh/non_mesh_connections_access_v4.2' into 'release/v4.2'
esp_wifi_mesh: add non mesh connections access(v4.2)

See merge request espressif/esp-idf!18785
2022-07-21 19:19:14 +08:00
Darian Leung
c7c07c5fb2 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-19 12:19:42 +08:00
Darian Leung
5e15bafd26 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-19 12:13:54 +08:00
Chen Wu
43f1c37458 lwip: Fixed that ipv6 dns cannot work 2022-07-15 16:20:37 +08:00
Jiang Jiang Jian
611493af37 Merge branch 'docs/update_wifi_multiple_antennas_doc_v4.2' into 'release/v4.2'
docs: update wifi multiple antennas docs (v4.2)

See merge request espressif/esp-idf!19048
2022-07-15 10:48:10 +08:00
Island
23a3f97af1 Merge branch 'bugfix/print_ready_after_init_transaction_forv4.2' into 'release/v4.2'
ble_mesh:change the location of print ready(v4.2)

See merge request espressif/esp-idf!19030
2022-07-14 17:28:19 +08:00
Krzysztof Budzynski
15480c49e3 Apply 1 suggestion(s) to 1 file(s) 2022-07-14 16:44:00 +08:00
muhaidong
6ceabe794e Apply 2 suggestions by Marius Vikhammer 2022-07-14 16:42:55 +08:00
muhaidong
758e185090 docs: update wifi multiple antennas docs 2022-07-14 16:36:46 +08:00
Yuan Hong Hui
770075609f ble_mesh:change the location of print ready 2022-07-13 18:13:08 +08:00
David Čermák
bef5f431d9 Merge branch 'bugfix/eth_icmp_dest_localhost_v4.2' into 'release/v4.2'
ci/esp_eth: Make the ICMP destination localhost (v4.2)

See merge request espressif/esp-idf!18753
2022-07-13 16:06:53 +08:00
Jiang Jiang Jian
7a1df44319 Merge branch 'bugfix/modbus_allow_master_slave_work_simultaneously_v42' into 'release/v4.2'
freemodbus: fix issues when modbus master and slave work simultaneously (backport v4.2)

See merge request espressif/esp-idf!14949
2022-07-13 15:37:20 +08:00
Alex Lisitsyn
bfac558b6f freemodbus: fix issues when modbus master and slave work simultaneously (backport v4.2) 2022-07-13 15:37:19 +08:00
Jiang Jiang Jian
e040cd1a68 Merge branch 'bugfix/fix_esp32_ke_mem_c_assert_v4.2' into 'release/v4.2'
Fixed ESP32 BLE ke_mem.c assert for v4.2

See merge request espressif/esp-idf!19004
2022-07-13 14:06:47 +08:00
zwj
6c4351908c Fixed ESP32 BLE ke_mem.c assert 2022-07-13 03:08:09 +00:00
Island
d69e42348f Merge branch 'bugfix/no_proxy_beacon_send_after_deinit_v4.2' into 'release/v4.2'
ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh(v4.2)

See merge request espressif/esp-idf!18793
2022-07-13 10:51:36 +08:00
Jiang Jiang Jian
221993edd4 Merge branch 'bugfix/not_use_malloc_in_bluedroid_v4.2' into 'release/v4.2'
component/bt: use osi_malloc instead of malloc in bluedroid

See merge request espressif/esp-idf!18845
2022-07-12 10:43:44 +08:00
Jiang Jiang Jian
989a390798 Merge branch 'bugfix/enterprise_certs_ca_expired_v4.2' into 'release/v4.2'
esp_wifi: Fix issue of ca certificate expired.

See merge request espressif/esp-idf!18524
2022-07-11 16:45:50 +08:00
Jiang Jiang Jian
8f2659e2ad Merge branch 'bugfix/eap_method_selection_release_v4.2' into 'release/v4.2'
esp_wifi: Fix the negotiation of method with eap server.

See merge request espressif/esp-idf!18509
2022-07-11 16:45:22 +08:00
Jiang Jiang Jian
a07f18ff9f Merge branch 'bugfix/cpu_reset_perip_clk_disable_v4.2' into 'release/v4.2'
esp_system: Peripheral clocks faulty become disabled during cpu reset (backport v4.2)

See merge request espressif/esp-idf!15486
2022-07-11 16:44:32 +08:00
Jiang Jiang Jian
443d8a187b Merge branch 'bugfix/fix_esp_restart_does_not_reset_timer_groups_periph_v42' into 'release/v4.2'
modbus: fix esp restart does not reset timer groups periph (backport v4.2)

See merge request espressif/esp-idf!15506
2022-07-11 16:42:42 +08:00
Alex Lisitsyn
eaf03e06d5 modbus: fix esp restart does not reset timer groups periph (backport v4.2) 2022-07-11 16:42:42 +08:00
Jiang Jiang Jian
034c05c82e Merge branch 'bugfix/usb_hal_and_clk_v4.2' into 'release/v4.2'
Fix USB with swapped pins not working (backport v4.2)

See merge request espressif/esp-idf!17104
2022-07-11 16:42:13 +08:00
Wang Meng Yang
94fd4ffa2e Merge branch 'bugfix/fix_osi_men_dbg_xxx_not_defined_when_enable_mem_dbg_v4.2' into 'release/v4.2'
bugfix/fix the issue of functions not defined when enable memory debug (v4.2)

See merge request espressif/esp-idf!18817
2022-07-11 15:37:54 +08:00
morris
c9bc1943fa ci/esp_eth: Make the ICMP destination localhost
Original commit: 9fa06719fa
global: enable build uinit test for esp32-s3
2022-07-11 04:53:40 +00:00
baohongde
68612afa09 component/bt: use osi_malloc instead of malloc in bluedroid 2022-07-11 02:48:10 +00:00
Jiang Jiang Jian
25253b22cc Merge branch 'bugfix/do_not_allow_unauthenticated_encrypted_key_data_release_v4.2' into 'release/v4.2'
esp_wifi: Ignore unauthenticated encrypted EAPOL-Key data and fix

See merge request espressif/esp-idf!18316
2022-07-10 15:59:53 +08:00
Jiang Jiang Jian
c2090fc962 Merge branch 'bugfix/a2dp_source_not_stop_discovery_correctly_v4.2' into 'release/v4.2'
bugfix/avoid wrongly restart discovery in a2dp_source (v4.2)

See merge request espressif/esp-idf!18712
2022-07-10 15:52:21 +08:00
Jiang Jiang Jian
c811a2c2f4 Merge branch 'bugfix/restore_edr_en_and_protect_for_vhci_env_v4.2' into 'release/v4.2'
bugfix/restore edr_en and add protect for vhci_env (v4.2)

See merge request espressif/esp-idf!18813
2022-07-10 15:49:27 +08:00
Jiang Jiang Jian
3266c6a2d4 Merge branch 'bugfix/lower_a2dp_appT_prio_v4.2' into 'release/v4.2'
bugfix/lower the priority of application task of a2dp demo (v4.2)

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

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

See merge request espressif/esp-idf!18855
2022-07-10 15:45:06 +08:00
Jiang Jiang Jian
f735dfa617 Merge branch 'docs/update_wifi_csi_sub_carrier_index_doc_v4.2' into 'release/v4.2'
docs:update wifi sci subcarrier index docs (v4.2)

See merge request espressif/esp-idf!18943
2022-07-10 15:40:14 +08:00
muhaidong
496b27eb0a docs:update wifi sci subcarrier index docs 2022-07-08 14:51:48 +08:00
jincheng
aeeb255d35 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:23:09 +08:00
jincheng
e2c29bf4db avoid wrongly restart discovery 2022-07-08 14:19:54 +08:00
jincheng
aae7b6e1ae 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:13:08 +08:00
jincheng
37b9d3f886 lower the priority of application task of a2dp demo 2022-07-08 14:03:26 +08:00
Jiang Jiang Jian
5f5a2d9c5a Merge branch 'bugfix/auto_test_script_only_use_given_branch_v4.2' into 'release/v4.2'
CI: limit switching branches for auto_test_script (v4.2)

See merge request espressif/esp-idf!11144
2022-07-08 11:26:07 +08:00
jincheng
24fc73c4e0 fix the issue of functions not defined when enable memory debug 2022-07-08 11:00:59 +08:00
Mahavir Jain
b85c0ec352 Merge branch 'bugfix/efuse_esp_efuse_utility_burn_efuses_v4.2' into 'release/v4.2'
efuse: Fix burn operation when data was written directly to regs (v4.2)

See merge request espressif/esp-idf!18887
2022-07-07 22:30:33 +08:00
Chen Yu Dong
4620826c83 ci: limit switching branches for auto_test_script 2022-07-06 11:55:33 +08:00
KonstantinKondrashov
404979d71a efuse: Fix burn operation when data was written directly to regs
Closes https://github.com/espressif/esp-idf/issues/9290
2022-07-05 18:29:27 +08:00
Darian Leung
0a894c2b30 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:26:16 +08:00
Jakob Hasse
2bcfeb612f startup: Make __cxx_eh_arena_size_get return 0 if exceptions disabled
This function is necessary to provide the emergency exception
memory pool size for C++ code.
Since our libstdc++ always has exceptions enabled, this function
must exist here even if -fno-exception is set for user code.
2022-07-01 08:32:37 +02:00
wangjialiang
3facb2dcfa ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh 2022-07-01 11:50:43 +08:00
shenjun
b408043d7e esp_wifi_mesh: add non mesh connections access 2022-06-30 21:19:23 +08:00
Island
42ea9b7cb1 Merge branch 'feature/add_filter_seq_auth_config_v4.2' into 'release/v4.2'
ble_mesh: stack: Add filter old seq_auth packet menuconfig(v4.2)

See merge request espressif/esp-idf!18651
2022-06-24 11:15:22 +08:00
wangjialiang
aa42bb3355 ble_mesh: stack: Add filter old seq_auth packet menuconfig 2022-06-23 16:22:08 +08:00
Jiang Jiang Jian
372ae83fde Merge branch 'bugfix/avdtp_genreal_reject_format_error_v4.2' into 'release/v4.2'
component_bt: Fix AVDTP general reject format error(v4.2)

See merge request espressif/esp-idf!18558
2022-06-21 20:54:34 +08:00
Jiang Jiang Jian
46f777a254 Merge branch 'feature/update_hfp_ag_version_v4.2' into 'release/v4.2'
component_bt: update hfp_ag version to 1.7.2(v4.2)

See merge request espressif/esp-idf!18605
2022-06-21 19:40:59 +08:00
xiongweichao
90f464c671 update hfp_ag version to 1.7.2 2022-06-21 14:50:44 +08:00
Jiang Jiang Jian
32aa2ab24e Merge branch 'feat/epi_flash_api_iram_save_4.2' into 'release/v4.2'
spi_flash: partially move API functions out of IRAM (v4.2)

See merge request espressif/esp-idf!18304
2022-06-19 23:22:48 +08:00
Jiang Jiang Jian
8f9a3d508e Merge branch 'bugfix/idle_task_skipped_light_sleep_backport_v4.2' into 'release/v4.2'
pm_impl: fix neither enter light sleep nor enter waiti state in idle task(backport v4.2)

See merge request espressif/esp-idf!17849
2022-06-19 23:21:57 +08:00
xiongweichao
cec2713416 Fix AVDTP general reject format error. 2022-06-17 10:28:50 +08:00
aditi_lonkar
d8d32d71c9 esp_wifi: Fix issue of ca certificate expired. 2022-06-15 17:23:20 +05:30
Hrudaynath Dhabe
f66638c360 esp_wifi: Fix the negotiation of method with eap server. 2022-06-15 05:57:15 +00:00
Jiang Jiang Jian
14b204e201 Merge branch 'bugfix/pm_enabled_bt_build_fail_v4.2' into 'release/v4.2'
Bluetooth build fail when power management is enabled(v4.2)

See merge request espressif/esp-idf!18383
2022-06-15 11:07:08 +08:00
Hrudaynath Dhabe
8eb3c959dc esp_wifi: Ignore unauthenticated encrypted EAPOL-Key data and fix handling of key RSC.
Closes https://github.com/espressif/esp-idf/issues/8401
2022-06-14 18:33:27 +05:30
Michael (XIAO Xufeng)
ac6f45d290 bootloader: support unlock MXIC flash chips 2022-06-09 12:41:56 +08:00
Cao Sen Miao
168880fe7b spi_flash: move the unlock patch to bootloader and add support for GD 2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
e5ac1eb83f spi_flash: fix the corruption of ROM after calling bootloader_execute_flash_command
The user register, especially dummy related ones, needs to be restored, otherwise the ROM function will not work.

Introduced in dd40123129.
2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
33a8c60b2c bootloader: add xmc spi_flash startup flow to improve reliability 2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
e1bd7b9d8f bootloader: create public bootloader_flash.h header
Move non-public functions into bootloader_flash_priv.h header
2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
9582cbe5b8 bootloader: fix the WRSR format for ISSI flash chips
1. The 2nd bootloader always call `rom_spiflash_unlock()`, but never help to clear the WEL bit when exit. This may cause system unstability.

   This commit helps to clear WEL when flash configuration is done.

   **RISK:** When the app starts, it didn't have to clear the WEL before it actually write/erase. But now the very first write/erase operation should be done after a WEL clear. Though the risk is little (all the following write/erase also need to clear the WEL), we still have to test this carefully, especially for those functions used by the OTA.

2. The `rom_spiflash_unlock()` function in the patch of ESP32 may (1) trigger the QPI, (2) clear the QE or (3) fail to unlock the ISSI chips.

   Status register bitmap of ISSI chip and GD chip:

| SR | ISSI | GD25LQ32C |
| -- | ---- | --------- |
| 0  | WIP  | WIP       |
| 1  | WEL  | WEL       |
| 2  | BP0  | BP0       |
| 3  | BP1  | BP1       |
| 4  | BP2  | BP2       |
| 5  | BP3  | BP3       |
| 6  | QE   | BP4       |
| 7  | SRWD | SRP0      |
| 8  |      | SRP1      |
| 9  |      | QE        |
| 10 |      | SUS2      |
| 11 |      | LB1       |
| 12 |      | LB2       |
| 13 |      | LB3       |
| 14 |      | CMP       |
| 15 |      | SUS1      |

   QE bit of other chips are at the bit 9 of the status register (i.e. bit 1 of SR2), which should be read by RDSR2 command.

   However, the RDSR2 (35H, Read Status 2) command for chip of other vendors happens to be the QIOEN (Enter QPI mode) command of ISSI chips. When the `rom_spiflash_unlock()` function trys to read SR2, it may trigger the QPI of ISSI chips.

   Moreover, when `rom_spiflash_unlock()` try to clear the BP4 bit in the status register, QE (bit 6) of ISSI chip may be cleared by accident. Or if the ISSI chip doesn't accept WRSR command with argument of two bytes (since it only have status register of one byte), it may fail to clear the other protect bits (BP0~BP3) as expected.

   This commit makes the `rom_spiflash_unlock()` check whether the vendor is issi. if so, `rom_spiflash_unlock()` only send RDSR to read the status register, send WRSR with only 1 byte argument, and also avoid clearing the QE bit (bit 6).

3. `rom_spiflash_unlock()` always send WRSR command to clear protection bits even when there is no protection bit active. And the execution of clearing status registers, which takes about 700us, will also happen even when there's no bits cleared.

   This commit skips the clearing of status register if there is no protection bits active.

Also move the execute_flash_command to be a bootloader API; move
implementation of spi_flash_wrap_set to the bootloader
2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
a130dcd5ec test_spiffs: increase test case stack size 2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
51584d4f2a spi_flash: partially move API functions out of IRAM 2022-06-09 12:41:56 +08:00
Jiang Jiang Jian
a3374b2d2f Merge branch 'bugfix/fix_cannot_lslp_again_after_ulp_wakeup_backport_v4.2' into 'release/v4.2'
sleep: fix cannot lightsleep again after a wakeup from ULP(backport v4.2)

See merge request espressif/esp-idf!18218
2022-06-07 11:21:42 +08:00
xiongweichao
0cb13d47cc Bluetooth build fail when power management is enabled 2022-06-06 20:28:25 +08:00
Roland Dobai
087c72e8ea Merge branch 'bugfix/disable_extensions_idfpy_tests_v4.2' into 'release/v4.2'
Tools: Make idf.py tests independent on extra extensions (v4.2)

See merge request espressif/esp-idf!18284
2022-06-03 19:05:26 +08:00
Sergei Silnov
2e8e620d94 Tools: Make idf.py tests independent on extra extensions 2022-06-02 17:56:38 +02:00
Jiang Jiang Jian
59a66f90c7 Merge branch 'bugfix/add_bda_to_read_rmt_name_param_v4.2' into 'release/v4.2'
Bugfix/add bda to read rmt name param v4.2

See merge request espressif/esp-idf!18282
2022-06-02 11:46:51 +08:00
Jiang Jiang Jian
83b2a98682 Merge branch 'feature/docker_build_gh_actions_v4.2' into 'release/v4.2'
ci: move Docker image builds to Github, plus other improvements (v4.2)

See merge request espressif/esp-idf!18289
2022-06-02 11:45:20 +08:00
keymoon
c670dc6d14 assign value to uninitialized bt_addr field 2022-05-29 18:04:53 -07:00
keymoon
2bf87b0a53 add address field to read_rmt_name_param 2022-05-29 18:04:41 -07:00
Ivan Grokhotkov
7d9aff3913 tools/docker: add README.md file to be displayed on Docker Hub
Closes https://github.com/espressif/esp-idf/issues/7933
2022-05-27 14:15:51 +02:00
Ivan Grokhotkov
cf44cbfdc9 ci: build and push Docker images in Github actions
Replaces the previously used Docker Hub autobuild infrastructure.
This allows for more flexible configuration of the build process,
at the expense of some extra maintenance of CI workflow files
required.
2022-05-27 14:15:47 +02:00
Ivan Grokhotkov
a1eb5c77e9 docs: document build arguments of the Docker image 2022-05-27 14:01:34 +02:00
Ivan Grokhotkov
1e64f241f9 tools/docker: add IDF_CLONE_SHALLOW and IDF_INSTALL_TARGETS arguments
These two arguments can be used to reduce the size of the Docker
image:

- Setting IDF_CLONE_SHALLOW enables shallow cloning.
- Setting IDF_INSTALL_TARGETS to the comma separated list of targets
  results in toolchains being installed only for these targets.
2022-05-27 14:01:22 +02:00
jingli
57975000fe 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-23 01:00:28 +08:00
Jiang Jiang Jian
b6b7a59958 Merge branch 'bugfix/twai_esp32_errata_workarounds_backport_v4.2' into 'release/v4.2'
TWAI: Add FIFO overrun handling and ESP32 hardware errata workarounds + Refactor TWAI HAL to store state information  (backport v4.2)

See merge request espressif/esp-idf!17106
2022-05-19 10:55:59 +08:00
Jiang Jiang Jian
b74fc002f1 Merge branch 'bugfix/driver_uart_fix_tx_bytes_rts_assert_failure_v42' into 'release/v4.2'
driver: fixes context switch while sending cause rts reset before send (backport v4.2)

See merge request espressif/esp-idf!17942
2022-05-19 10:55:36 +08:00
Alex Lisitsyn
721e26019e driver: fixes context switch while sending cause rts reset before send (backport v4.2) 2022-05-19 10:55:35 +08:00
Jiang Jiang Jian
9cb1729107 Merge branch 'bugfix/fix_adc_calibration_light_sleep_issue_v4.2' into 'release/v4.2'
adc: fix calibration error when waking up from light sleep (v4.2)

See merge request espressif/esp-idf!16931
2022-05-19 10:55:10 +08:00
Jiang Jiang Jian
ea173fc189 Merge branch 'bugfix/ble_mesh_console_correct_repl_config_prompt_forv4.2' into 'release/v4.2'
ble mesh:example:correct repl config prompt in ble mesh console(v4.2)

See merge request espressif/esp-idf!17185
2022-05-19 10:54:52 +08:00
Yuan Hong Hui
886e846dc0 ble mesh:example:correct repl config prompt in ble mesh console(v4.2) 2022-05-19 10:54:51 +08:00
Jiang Jiang Jian
0fba64486a Merge branch 'bugfix/spi_lose_last_3_bytes_v4.2' into 'release/v4.2'
spi_master: fix an issue where master cannot correctly receive data when using DMA in halfduplex mode (v4.2)

See merge request espressif/esp-idf!17379
2022-05-19 10:54:36 +08:00
Jiang Jiang Jian
c71a9e5704 Merge branch 'feature/check_block_after_burn_v4.2' into 'release/v4.2'
efuse: Validates data after burning and re-burnes it if necessary (v4.2)

See merge request espressif/esp-idf!17704
2022-05-19 10:54:19 +08:00
morris
6c66b39221 Merge branch 'feature/modbus_master_fix_check_uart_set_pin_v42' into 'release/v4.2'
example/modbus_master: fix the assert for uart_set_pin (backport v4.2)

See merge request espressif/esp-idf!17626
2022-05-10 18:30:03 +08:00
Elbert van de Put
07c8e86987 example/modbus_master: fix the assert for uart_set_pin
Signed-off-by: aleks <aleks@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/8607
2022-05-10 08:05:22 +00:00
Jiang Jiang Jian
d6a975f6b2 Merge branch 'bugfix/_rtc_slow_length_incorrectly_optimized_backport_v4.2' into 'release/v4.2'
sleep_power_domain: fix _rtc_slow_length being incorrectly optimized by compiler(backport v4.2)

See merge request espressif/esp-idf!17976
2022-05-10 01:04:37 +08:00
morris
d0db75899d Merge branch 'bugfix/ledc_consecutive_fade_v4.2' into 'release/v4.2'
ledc: Bugfixes for issues related to fade protection (backport v4.2)

See merge request espressif/esp-idf!16955
2022-05-07 18:24:45 +08:00
jingli
05b7db9cd8 fix _rtc_slow_length being incorrectly optimized by compiler 2022-05-01 23:26:52 +08:00
Jiang Jiang Jian
667f3dfbad Merge branch 'bugfix/ignore_pmf_capable_flag_v4.2' into 'release/v4.2'
Always connect Station in PMF mode if possible (Backport v4.2)

See merge request espressif/esp-idf!17538
2022-05-01 20:10:58 +08:00
Jiang Jiang Jian
bf7b430f55 Merge branch 'contrib/github_pr_8779_v4.2' into 'release/v4.2'
esp_wifi: fix clearing default wifi netif procedure(v4.2)

See merge request espressif/esp-idf!17940
2022-04-28 16:17:14 +08:00
Jiang Jiang Jian
00d2c3037a Merge branch 'bugfix/fix_disable_bt_log_ci_fail_v4.2' into 'release/v4.2'
component_bt: Fix CI failure when disable bluetooth debug log(v4.2)

See merge request espressif/esp-idf!17905
2022-04-27 18:20:27 +08:00
Jiang Jiang Jian
5c1d1c0f45 Merge branch 'bugfix/spp_crash_after_call_spp_deinit_v4.2' into 'release/v4.2'
Component_bt/Fix spp crash after call esp_spp_deinit(v4.2)

See merge request espressif/esp-idf!17933
2022-04-27 18:06:57 +08:00
Krzysztof Lewandowski
55b6ff6fbd esp_wifi: fix clearing default wifi netif procedure
Prior to this change "esp_wifi_clear_default_wifi_driver_and_handlers"
will not remove netif pointer from table when both AP and STA interfaces were
created and destroying default wifi interfaces is done in unfortunate
order. As a result there is dangling pointer left and it may cause crash in
later code (i.e. when esp_wifi_stop() is called).
2022-04-27 03:23:20 -04:00
xiongweichao
d59d373edc Fix spp initialization failure without free mutex 2022-04-27 14:49:39 +08:00
xiongweichao
9e2ae1271d Fix spp crash after calling esp_spp_deinit 2022-04-27 14:43:42 +08:00
xiongweichao
0825981026 Fix CI failure when disable bluetooth debug log 2022-04-26 15:06:50 +08:00
KonstantinKondrashov
83728f3832 efuse: fix 2022-04-26 00:08:51 +08:00
Island
8b422cd8b1 Merge branch 'bugfix/oversized_SegN_as_valid_v4.2' into 'release/v4.2'
ble_mesh: stack: Bugfix for oversized SegN as valid(v4.2)

See merge request espressif/esp-idf!17774
2022-04-25 18:52:04 +08:00
wangjialiang
7691b8effb ble_mesh: stack: Bugfix for oversized SegN as valid 2022-04-25 11:53:35 +08:00
Jiang Jiang Jian
c35cd9d0fe Merge branch 'bugfix/rrm_dpp_task_delete_v4.2' into 'release/v4.2'
Bugfix/rrm dpp task delete v4.2

See merge request espressif/esp-idf!17880
2022-04-25 10:52:26 +08:00
Jack
be2779818b fix build error 2022-04-23 01:11:29 +08:00
Jack
fdf79ce300 ESP_WIFI: Remove static analysis warnings 2022-04-23 00:54:30 +08:00
Kapil Gupta
dc87416df0 wpa_supplicant: static analysis fixes 2022-04-23 00:33:34 +08:00
Kapil Gupta
a26b0dbaab wpa_supplicant: Add BTM security checks 2022-04-23 00:26:08 +08:00
Jiang Jiang Jian
06837c7efa Merge branch 'bugfix/fix_phy_i2c_crash_v4.2' into 'release/v4.2'
esp_phy: Add IRAM_ATTR for phy i2c spinlock (v4.2)

See merge request espressif/esp-idf!17844
2022-04-21 15:47:04 +08:00
gaoxiaojie
5516dc7d0c pm_impl: fix neither enter light sleep nor enter waiti state in idle task 2022-04-21 14:40:57 +08:00
xiewenxiang
d976bbec08 esp_phy: Add IRAM_ATTR for phy i2c spinlock 2022-04-21 02:57:08 +08:00
Wang Meng Yang
d8105a565e Merge branch 'bugfix/fix_spp_initiator_connect_failed_v4.2' into 'release/v4.2'
Component_bt/Fix SPP initiator can not free resource when connection is failed[backport 4.2]

See merge request espressif/esp-idf!17746
2022-04-19 15:49:12 +08:00
morris
7cb3e99740 Merge branch 'fix/spi_master_use_data_flag_v4.2' into 'release/v4.2'
spi_master: fix the error log when use tx/rx_data with larger data (v4.2)

See merge request espressif/esp-idf!17800
2022-04-18 23:22:02 +08:00
Michael (XIAO Xufeng)
5edd6a4ddf spi_master: fix the error log when use tx/rx_data with larger data 2022-04-18 15:15:06 +08:00
Michael (XIAO Xufeng)
396159299c Merge branch 'bugfix/gpio_pin_num_fix_v4.2' into 'release/v4.2'
gpio: Fix some gpio pin num errors on esp32s2 (backport v4.2)

See merge request espressif/esp-idf!17110
2022-04-18 14:49:52 +08:00
Ivan Grokhotkov
34a326130a Merge branch 'bugfix/nvs_coverity_issues_4.2' into 'release/v4.2'
bugfix (nvs): Fixed issues found by Coverity (backport v4.2)

See merge request espressif/esp-idf!17764
2022-04-14 17:44:51 +08:00
Jakob Hasse
e5eccb409e bugfix (nvs): Fixed issues found by Coverity
*  Fixed potential memory leak
*  Fixed wrong strncpy usage
*  Fixed potential out of bounds access
2022-04-13 18:02:47 +08:00
Nachiket Kukade
154e579cfc esp_wifi: Always connect Station in PMF mode if possible
While using esp_wifi_set_config, flag pmf_capable defaults to 0.
Users may not bother to enable it, which prevents connection to a
WPA3 AP. Or the AP may reset into WPA3 mode failing the re-connection.
To ensure better security, deprecate the pmf_capable flag and set it to
true internally.
Additionally add API esp_wifi_disable_pmf_config to disable PMF for
debug purposes or to avoid PMF issues on AP side.
2022-04-12 18:40:51 +05:30
liqigan
0c2c192013 add missing unlock in btc_spp_cb_handler of BTA_JV_RFCOMM_WRITE_EVT 2022-04-12 15:37:07 +08:00
liqigan
95ad53153f fix SPP initiator can not free resource when connection is failed 2022-04-12 15:36:47 +08:00
Wang Meng Yang
43ee24a52e Merge branch 'bugfix/bt_add_some_debug_log_v4.2' into 'release/v4.2'
component_bt: Add some bluetooth debug log(v4.2)

See merge request espressif/esp-idf!17616
2022-04-11 10:53:40 +08:00
KonstantinKondrashov
dffcb3d0fb efuse: Fix 3/4 coding scheme UTs 2022-04-08 17:13:23 +08:00
morris
ffe304268d Merge branch 'bugfix/modbus_add_task_affinity_and_callbacks_v42' into 'release/v4.2'
freemodbus: add task affinity and callbacks (backport v4.2)

See merge request espressif/esp-idf!14542
2022-04-08 15:59:33 +08:00
KonstantinKondrashov
3a4cf61318 efuse: Improve messages during burn operation 2022-04-07 22:25:06 +08:00
Michael (XIAO Xufeng)
2ec7449c37 Merge branch 'bugfix/phy_regi2c_critical_section_v4.2' into 'release/v4.2'
esp_phy: use spinlock to avoid regi2c access conflicts (v4.2)

See merge request espressif/esp-idf!17693
2022-04-07 20:19:33 +08:00
morris
c226560f6b Merge branch 'bugfix/flash_mmap_output_psram_arg_v4.2' into 'release/v4.2'
mmap: fixed the issue mmap cannot be called with pointers to psram (v4.2)

See merge request espressif/esp-idf!17699
2022-04-07 10:54:08 +08:00
KonstantinKondrashov
08a06865ec efuse: Burn func can return an error
esp_efuse_utility_burn_chip()
2022-04-06 23:42:26 +08:00
KonstantinKondrashov
26619521fb efuse: Validates data after burning and re-burnes it if necessary
It checks the content of the written data and encoding errors.
2022-04-06 20:02:46 +08:00
Michael (XIAO Xufeng)
50b87ff953 mmap: fixed the issue mmap cannot be called with pointers to psram 2022-04-06 17:23:42 +08:00
Anton Maklakov
66d65e66fd Merge branch 'feature/add_component_manager_python_dependency_v4.2' into 'release/v4.2'
Build System: Add idf-component-manager python dependency (v4.2)

See merge request espressif/esp-idf!15986
2022-04-06 16:31:26 +08:00
Michael (XIAO Xufeng)
cb0b143cb3 esp_phy: use spinlock to avoid regi2c access conflicts 2022-04-06 15:01:35 +08:00
Michael (XIAO Xufeng)
171096e856 regi2c: use safe version of spinlock, instead of ISR ver 2022-04-06 14:47:10 +08:00
Michael (XIAO Xufeng)
69c95bf983 Merge branch 'bugfix/spi_free_crash_uninitialized_v4.2' into 'release/v4.2'
spi: fixed crash when calling spi_bus_free when not initialized (v4.2)

See merge request espressif/esp-idf!17610
2022-04-01 11:17:54 +08:00
Michael (XIAO Xufeng)
e7d95dc787 Merge branch 'bugfix/gpio_example_config_struct_zero_init_v4.2' into 'release/v4.2'
example: fixed the issue that config struct is not properly initialized (v4.2)

See merge request espressif/esp-idf!17589
2022-04-01 11:17:17 +08:00
Michael (XIAO Xufeng)
c7c7d5d01d Merge branch 'bugfix/fix_x32k_startup_slow_bug_v4.2' into 'release/v4.2'
bugfix: Fix xtal 32k not oscillate or oscillate too slowly issue for esp32 (v4.2)

See merge request espressif/esp-idf!17591
2022-03-30 17:54:41 +08:00
chaijie
b2e08332e3 ESP32: Fix xtal 32k not oscillate or oscillate too slowly issue
ESP32 in revision0 and revision1 uses touchpad to provide
current to oscillate xtal 32k. But revision2 and revision3
do not need to do that.
Note: touchpad can not work and toupad/ULP wakeup sources
are not available when toupad provides current to xtal 32k
2022-03-30 15:27:03 +08:00
songruojing
affb956da5 esp_system: fix the bug that some peripheral clocks are being disabled during cpu reset for esp32s2 2022-03-29 03:42:34 +00:00
songruojing
9e79d0e06f ledc: Fix FADE_NO_WAIT mode concurrency problem.
Add test cases for fade concurrency issue and fade timing check.

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

(cherry picked from commit be2ab09832)
2022-03-29 03:42:06 +00:00
songruojing
01547c4bd8 ledc: Simplify the procedure to perform a one-time duty update
Avoid adding one extra fade cycle when performing a one-time duty update.
Add some notes to ledc_get_duty and ledc_update_duty APIs, so that users
are aware of when the new duty will be effective.

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

(cherry picked from commit e175086226)
2022-03-29 03:42:06 +00:00
me-no-dev
198ce9095a Fix USB with swapped pins not working
(cherry picked from commit 0aa1c13027)
2022-03-29 03:41:28 +00:00
songruojing
4c267ef0a6 gpio: Fix some gpio pin num errors on esp32s2 2022-03-29 03:40:54 +00:00
xiongweichao
b8c9bb4247 Add some bluetooth debug log 2022-03-28 11:28:50 +08:00
Michael (XIAO Xufeng)
49231ae961 spi: fixed crash when calling spi_bus_free when not initialized
introduced in 49a48644e4

Closes: https://github.com/espressif/esp-idf/issues/8642
2022-03-27 02:41:09 +08:00
Michael (XIAO Xufeng)
75f856ac37 example: fixed the issue that config struct is not properly initialized 2022-03-25 01:11:55 +08:00
Michael (XIAO Xufeng)
680710df2f Merge branch 'test/remove_spi_flash_perf_thr_v4.2' into 'release/v4.2'
spi_flash_test: remove threshold from unit test (v4.2)

See merge request espressif/esp-idf!16824
2022-03-19 02:36:18 +08:00
morris
84effb1708 Merge branch 'bugfix/sleep_wrong_log_lvl_v4.2' into 'release/v4.2'
Sleep: fix wrong debug level (backport v4.2)

See merge request espressif/esp-idf!17300
2022-03-16 17:10:53 +08:00
Michael (XIAO Xufeng)
16629eaf99 Merge branch 'bugfix/bootloader_uart_custom_gpio_v4.2' into 'release/v4.2'
bootloader: fixed the issue custom_uart_gpio doesn't take effect (v4.2)

See merge request espressif/esp-idf!17309
2022-03-16 11:39:36 +08:00
Jiang Jiang Jian
550872d629 Merge branch 'bugfix/assoc_comeback_fail_issue_v4.2' into 'release/v4.2'
Fix assoc comeback causing invalid state (Backport v4.2)

See merge request espressif/esp-idf!17174
2022-03-16 10:47:48 +08:00
Jiang Jiang Jian
ebee6f3c3f Merge branch 'bugfix/dual_core_pm_lock_issue_backport_v4.2' into 'release/v4.2'
System: fix pm lock issue in dual core mode(backport v4.2)

See merge request espressif/esp-idf!17263
2022-03-16 10:33:29 +08:00
Michael (XIAO Xufeng)
26cf75cb44 spi_flash_test: remove threshold from unit test 2022-03-15 15:22:55 +00:00
Michael (XIAO Xufeng)
67fea1b6bf test_utils: allow printint multiple argument in the performance log 2022-03-15 15:22:55 +00:00
Michael (XIAO Xufeng)
c2d2d58ff1 Merge branch 'bugfix/esp_flash_write_temp_buffer_lifetime_v4.2' into 'release/v4.2'
esp_flash: fix write issue using buffer on stack out of lifetime (v4.2)

See merge request espressif/esp-idf!17206
2022-03-15 22:14:57 +08:00
Michael (XIAO Xufeng)
6c21202065 Merge branch 'fix/sdio_slave_recv_intr_unhandled_v4.2' into 'release/v4.2'
sdio_slave: fixed the issue that interrupt may be cleared with finished trans unhandled (v4.2)

See merge request espressif/esp-idf!17150
2022-03-15 22:06:19 +08:00
Michael (XIAO Xufeng)
608e189a53 Merge branch 'ci/enable_default_ut_s2' into 'release/v4.2'
ci: enable unit test for S2 by default

See merge request espressif/esp-idf!17114
2022-03-15 22:03:07 +08:00
Omar Chebib
ba3266e2ec Sleep: fix wrong debug level
Fix usage of ESP_LOGD in sleep_modes.c which triggers a panic when
used in debug log level.
2022-03-15 11:18:42 +00:00
Roland Dobai
cc230188ea Merge branch 'bugfix/flash_from_monitor_on_windows_v4.2' into 'release/v4.2'
Tools: IDF Monitor should flash with the unmodified port (v4.2)

See merge request espressif/esp-idf!17259
2022-03-12 23:19:06 +08:00
Wang Meng Yang
09a8221d31 Merge branch 'feature/update_hfp_hf_version_v4.2' into 'release/v4.2'
component_bt: Update HFP_HF version to 1.7.2(v4.2)

See merge request espressif/esp-idf!17393
2022-03-10 20:20:08 +08:00
Wang Meng Yang
093fc90b92 Merge branch 'bugfix/a2dp_sniff_v4.2' into 'release/v4.2'
Fix crash when host exit sniff mode(v4.2)

See merge request espressif/esp-idf!17342
2022-03-10 14:09:03 +08:00
Krzysztof Budzynski
219c579084 Merge branch 'docs/fix_broken_links_4.2' into 'release/v4.2'
docs: fix broken links in queue.h file (v4.2)

See merge request espressif/esp-idf!17182
2022-03-09 19:12:40 +08:00
morris
cc518c3d05 Merge branch 'bugfix/i2s_write_failed_in_32bit_slave_mode_v4.2' into 'release/v4.2'
i2s: fix write failure issue in slave mode (backport v4.2)

See merge request espressif/esp-idf!15082
2022-03-09 19:10:56 +08:00
xiongweichao
5e8b07bdea Update HFP_HF version to 1.7.2 2022-03-08 11:11:58 +08:00
Armando
e9bbe44d19 spi_master: fix master HD mode cannot correctly receive data issue when using DMA 2022-03-07 13:54:25 +08:00
Armando
e6c97308b9 sleep: restore analog calibration registers after waking up from light sleep 2022-03-07 11:18:21 +08:00
Jiang Jiang Jian
3c9cc070dd Merge branch 'update/version_4_2_3' into 'release/v4.2'
Update version to 4.2.3

See merge request espressif/esp-idf!17349
2022-03-04 19:00:02 +08:00
Ivan Grokhotkov
bb29e93ddf versions: Update version to 4.2.3 2022-03-03 14:44:57 +01:00
xiongweichao
306df682cc Fix crash when host exit sniff mode 2022-03-03 16:31:43 +08:00
laokaiyao
0c71604b80 i2s: fix write failure issue in slave mode (backport v4.2) 2022-03-03 15:16:53 +08:00
songruojing
3d13370968 uart: fixed incorrect channel number on ESP32S2, S3 and C3 2022-03-02 10:53:30 +08:00
Michael (XIAO Xufeng)
d87d385e6f bootloader: fixed the issue custom_uart_gpio doesn't take effect 2022-03-02 10:53:30 +08:00
jingli
8dd7662696 fix pm lock issue in dual core mode 2022-02-23 22:00:36 +08:00
Roland Dobai
95eb9626a4 Tools: IDF Monitor should flash with the unmodified port
Closes https://github.com/espressif/esp-idf/issues/8432
2022-02-23 13:50:18 +01:00
Jiang Jiang Jian
d503c23d7a Merge branch 'bugfix/update_stack_init_check_4.2' into 'release/v4.2'
Nimble: Updated checks of stack initialization status before executing stack command

See merge request espressif/esp-idf!17198
2022-02-22 09:12:00 +00:00
Jiang Jiang Jian
147f37d6a2 Merge branch 'bugfix/fix_ble_adv_underrun_error_v4.2' into 'release/v4.2'
components/bt: Fix ble adv_underrun issue(backport v4.2)

See merge request espressif/esp-idf!17166
2022-02-22 09:11:16 +00:00
Michael (XIAO Xufeng)
ea6f4fd2ff esp_flash: fix write issue using buffer on stack out of lifetime 2022-02-20 03:24:59 +08:00
Isha Pardikar
05f7dd1d28 Merge branch 'bugfix/update_stack_init_check_4.2' into 'release/v4.2'
Nimble: Updated checks of stack initialization status before executing stack command
2022-02-17 15:09:52 +05:30
intern
e954c47abd docs: fix broken links 2022-02-16 14:24:22 +08:00
xiewenxiang
e39a101aaa components/bt: Fix ble adv_underrun issue
components/bt: Fix LLCP collision for channel map update
2022-02-16 00:28:45 +08:00
Nachiket Kukade
9f85fb2843 esp_wifi: Update wifi lib
Fix assoc comeback causing invalid state
2022-02-15 18:11:41 +05:30
Jiang Jiang Jian
473d39e6e6 Merge branch 'feature/refactor_phy_access_v4.2' into 'release/v4.2'
esp_wifi: refactor PHY access (Backport v4.2)

See merge request espressif/esp-idf!16975
2022-02-15 10:36:56 +00:00
Darian Leung
a0666b9be8 TWAI: FIFO overrun handling and errata workarounds
This commit adds handling for FIFO overruns and
adds workarounds for HW erratas on the ESP32.

Closes https://github.com/espressif/esp-idf/issues/2519
Closes https://github.com/espressif/esp-idf/issues/4276
2022-02-15 14:16:53 +08:00
Darian Leung
90ee294139 TWAI: Track HW state in HAL
This commit refactors the TWAI HAL such that it now tracks
the harwdare's state instead of at the driver layer.
Some HAL and LL cleanup was also done.
2022-02-15 14:16:53 +08:00
zhangyanjiao
c4ae443171 esp_wifi: refactor modem sleep access phy 2022-02-15 11:48:03 +08:00
Xia Xiaotian
cf2093be03 esp_wifi: store PHY digital registers before disabling PHY and load
them after enabling PHY
2022-02-15 11:43:10 +08:00
zhangyanjiao
8920361ff3 make esp32 same to esp32s2 in esp_phy_enable() 2022-02-15 11:43:10 +08:00
Xia Xiaotian
d472641430 esp_wifi: refactor PHY access
- Simplify PHY access API
- Move coexist initializing and deinitializing out from PHY API
  to Wi-Fi and Bluetooth
- Remove coexist pause and resume for they are no longer needed.
2022-02-15 11:43:10 +08:00
Zim Kalinowski
e70c238be0 Merge branch 'bugfix/enterprise_certs_weak_md_v4.2' into 'release/v4.2'
esp_wifi: Fixed issue of weak md for certificates in wifi_enterprise example.(v4.2)

See merge request espressif/esp-idf!16990
2022-02-15 03:39:45 +00:00
Zim Kalinowski
15a20d8100 Merge branch 'bugfix/sdio_slave_dma_desc_int_v4.2' into 'release/v4.2'
sdio_slave: Fixed the issue that DMA descriptors allocated to non-DMA capable area (v4.2)

See merge request espressif/esp-idf!17139
2022-02-15 03:38:38 +00:00
Zim Kalinowski
6f2d77ed2c Merge branch 'bugfix/mdns_null_deref_fuzzer_v4.2' into 'release/v4.2'
mdns: Fix potential null deref reported by fuzzer test(v4.2)

See merge request espressif/esp-idf!17145
2022-02-15 03:37:55 +00:00
Jiang Jiang Jian
3055474491 Merge branch 'bugfix/usb_device_struct_cleanup_v4.2' into 'release/v4.2'
USB: Cleanup device side struct and fix incorrect DM pulldown configuration (v4.2)

See merge request espressif/esp-idf!17102
2022-02-15 03:28:01 +00:00
Jiang Jiang Jian
128f228169 Merge branch 'bugfix/rmt_s2_doesnt_support_rx_wrap_v4.2' into 'release/v4.2'
rmt: do not support rx wrap on esp32s2 (v4.2)

See merge request espressif/esp-idf!17081
2022-02-15 03:07:16 +00:00
Jiang Jiang Jian
95f7e51af0 Merge branch 'bugfix/eap_client_crash_v4.2' into 'release/v4.2'
wpa_supplicant: Fix memory corruption (v4.2)

See merge request espressif/esp-idf!17130
2022-02-15 03:06:40 +00:00
Michael (XIAO Xufeng)
aed907c728 sdio_slave: fixed the issue that interrupt may be cleared with finished trans unhandled 2022-02-15 00:01:46 +08:00
Darian Leung
3e9eec1ebf Fix incorrect D- pulldown and cleanup USB device struct
This commit fixes the incorrect setting of the D- pulldown resistor in the USB LL.
The usb_struct.h used by USB device mode has also been cleaned up.
2022-02-14 23:51:32 +08:00
David Cermak
3efd220463 mdns: Fix potential null deref reported by fuzzer test 2022-02-14 22:52:26 +08:00
Jiang Jiang Jian
7482ad5139 Merge branch 'bugfix/support_esp32s2_eco1_v4.2' into 'release/v4.2'
esp_phy: Update ESP32S2 phy lib to support eco1 chip(v4.2)

See merge request espressif/esp-idf!16722
2022-02-14 12:40:55 +00:00
Wang Meng Yang
faba034955 Merge branch 'bugfix/clear_whitelist_v4.2' into 'release/v4.2'
Nimble : Modify `ble_gap_wl_set` to support clearing complete whitelist

See merge request espressif/esp-idf!16942
2022-02-14 10:47:02 +00:00
Jiang Jiang Jian
7d376a36f0 Merge branch 'feature/pro_recv_hb_forv4.2' into 'release/v4.2'
provisioner receive heartbeat message(v4.2)

See merge request espressif/esp-idf!16640
2022-02-14 06:10:15 +00:00
Jiang Jiang Jian
9150716570 Merge branch 'bugfix/filter_repeated_packages_forv4.2' into 'release/v4.2'
filter repeated packages then send response(v4.2)

See merge request espressif/esp-idf!16820
2022-02-14 06:09:45 +00:00
Yuan Hong Hui
6f7badf942 filter repeated packages then send response(v4.2) 2022-02-14 06:09:44 +00:00
Jiang Jiang Jian
a5ce5002c0 Merge branch 'bugfix/modbus_fix_invalid_error_handling_for_duplicate_param_key_v42' into 'release/v4.2'
freemodbus: fix invalid error handling for duplicate param key (backport v4.2)

See merge request espressif/esp-idf!14787
2022-02-14 06:09:03 +00:00
Jiang Jiang Jian
a609fb0f02 Merge branch 'fix/gitlab_404_local_mirror_v4.2' into 'release/v4.2'
Handle gitlab 404 error (v4.2)

See merge request espressif/esp-idf!16960
2022-02-14 06:08:38 +00:00
Jiang Jiang Jian
893fae229c Merge branch 'bugfix/task_wdt_timeout_uint32_overflow_v4.2' into 'release/v4.2'
Task WDT: Fix overflow issue during timeout calculation (v4.2.3)

See merge request espressif/esp-idf!16983
2022-02-14 06:08:10 +00:00
Jiang Jiang Jian
82c529a773 Merge branch 'bugfix/mcpwm-deadtime-preset-config-backport_v4.2' into 'release/v4.2'
MCPWM/deadtime: fix and sync preset deadtime modes with well-known definition (backport v4.2)

See merge request espressif/esp-idf!14623
2022-02-14 06:02:37 +00:00
Li Hang Fan
54251cfada MCPWM/deadtime: fix and sync preset deadtime modes with well-known definition (backport v4.2) 2022-02-14 06:02:36 +00:00
Michael (XIAO Xufeng)
dbf33d7947 sdio_slave: fixed the issue DMA desc not capable 2022-02-14 12:57:57 +08:00
Michael (XIAO Xufeng)
4d9a68e091 Merge branch 'flash/add_th_support_v4.2' into 'release/v4.2'
spi_flash: add support for th 1M flash(backport v4.2)

See merge request espressif/esp-idf!16717
2022-02-14 04:45:59 +00:00
Michael (XIAO Xufeng)
b4862d1ba2 Merge branch 'feature/support_new_psram_v4.2' into 'release/v4.2'
psram: add ESP32-D0WD-R2-V3 support(backport v4.2)

See merge request espressif/esp-idf!16709
2022-02-13 14:45:30 +00:00
morris
c7b5d3494c rmt: do not support rx wrap on esp32s2
Closes https://github.com/espressif/esp-idf/issues/8354
2022-02-13 12:20:20 +08:00
Michael (XIAO Xufeng)
a7c053c28d Merge branch 'bugfix/add_hw_flow_ctrl_for_uart_test_v4.2' into 'release/v4.2'
driver: add diagnostic information into UART test, enable flow control (v4.2)

See merge request espressif/esp-idf!17115
2022-02-12 20:03:30 +00:00
Kapil Gupta
eec9d6db94 wpa_supplicant: Fix invalid memory dereference 2022-02-12 10:36:00 +05:30
Marius Vikhammer
9c81bceb0e Task WDT: Fix overflow issue during timeout calculation
Closes https://github.com/espressif/esp-idf/issues/8239
2022-02-11 15:57:33 +08:00
Ivan Grokhotkov
dd67f769d9 driver: add diagnostic information into UART test, enable flow control 2022-02-11 13:47:06 +08:00
Rahul Tank
3e1efffd8a Nimble : Modify ble_gap_wl_set to support clearing complete whitelist 2022-02-11 10:35:01 +05:30
Michael (XIAO Xufeng)
067678bdf9 ci: enable unit test for S2 by default 2022-02-11 04:09:17 +00:00
Jiang Jiang Jian
9e7811b95e Merge branch 'bugfix/rd_rem_ext_feats_delayed_cs_4.2' into 'release/v4.2'
bugfix/fix cs event for rd_rem_ext_feats delayed issue (v4.2)

See merge request espressif/esp-idf!16892
2022-02-11 02:59:01 +00:00
Roland Dobai
8fed5801f7 Merge branch 'bugfix/add_dummy_to_total_size_v4.2' into 'release/v4.2'
Tools: fix bug with total size calculation issue (v4.2)

See merge request espressif/esp-idf!16862
2022-02-10 14:04:35 +00:00
Roland Dobai
d090020409 Merge branch 'bugfix/rm_copyright_ignore_list_v4.2' into 'release/v4.2'
CI: Remove unused copyright ignore list (v4.2)

See merge request espressif/esp-idf!16967
2022-02-10 14:03:58 +00:00
Roland Dobai
14038003be Merge branch 'bugfix/win_rename_delay_v4.2' into 'release/v4.2'
Tools: Use delay between rename attempts on Windows in the installer (v4.2)

See merge request espressif/esp-idf!17058
2022-02-10 14:03:42 +00:00
Michael (XIAO Xufeng)
dc50f0e828 Merge branch 'bugfix/fix_spi_cs_hold_time_issue_v4.2' into 'release/v4.2'
spi_master: fix spi cs_ena_posttrans issue (v4.2)

See merge request espressif/esp-idf!16688
2022-02-10 09:37:34 +00:00
Jiang Jiang Jian
d1ada53a7d Merge branch 'bugfix/wps_fixes_v4.2' into 'release/v4.2'
wpa_supplicant: Add WPS Fixes (backport V4.2)

See merge request espressif/esp-idf!17062
2022-02-10 08:14:23 +00:00
jincheng
17b8fbfc1b fix cs evt for rd_rem_ext_feats delayed issue 2022-02-10 15:28:26 +08:00
chenjianxing
10c604475d esp_phy: Update ESP32S2 phy lib to support eco1 chip 2022-02-10 14:00:53 +08:00
Kapil Gupta
eb90d9bf18 wpa_supplicant: Add WPS Fixes
Add following bugfixes

1. Station not able to connect when WPS pin is pressed first on AP.
2. PBC overlap getting detected for selected registrar PIN APs.
3. Station not considering authorised MACs for PIN method.
4. For PIN methodm If no AP is found, station will loop through
   APs in its vicinity and try to do WPS with them one by one till
   WPS timeout occurs. This is for some APs which do not set
   selected registrar correctly.
2022-02-08 17:13:01 +05:30
Roland Dobai
6a2255a18b Tools: Use delay between rename attempts on Windows in the installer 2022-02-08 11:09:15 +01:00
Sergei Silnov
018524ec7e examples: Add the component manager example 2022-02-02 16:44:44 +01:00
Sergei Silnov
3a4218156c docs: Add component manager documentation 2022-02-02 16:44:43 +01:00
Sergei Silnov
5594a511c9 Build System: Don't track dependencies.lock 2022-02-02 16:44:43 +01:00
Sergei Silnov
d955043aea Add idf-component-manager python dependency 2022-02-02 16:44:43 +01:00
aditi_lonkar
ef8a76c667 esp_wifi: Fixed issue of weak md for certificates in wifi_enterprise example. 2022-01-28 15:31:18 +05:30
simon.chupin
ddb8c8ddfd add test for checking memory segments with esptool.py 2022-01-27 15:07:38 +01:00
Roland Dobai
69e04fc263 CI: Remove unused copyright ignore list 2022-01-27 12:51:58 +01:00
Tomas Sebestik
7c3878b288 Handle gitlab 404 error
ci: do not retry on 404 when LOCAL_GITLAB_HTTPS_HOST not set
2022-01-27 11:44:44 +01:00
simon.chupin
d72fa4e62a tools/idf_size: Fixed bug with wrong memory calculation 2022-01-19 18:13:32 +01:00
Jiang Jiang Jian
fcce82ea53 Merge branch 'bugfix/modbus_port_fix_lgpl_licensed_files_v4.2' into 'release/v4.2'
freemodbus: fix port contains lgpl licensed files (v4.2)

See merge request espressif/esp-idf!16551
2022-01-19 08:23:42 +00:00
Jiang Jiang Jian
0e42db7ca8 Merge branch 'bugfix/fix_tbtt_and_phy_issues_v4.2' into 'release/v4.2'
esp_wifi: fix tbtt and phy issues (Backport v4.2)

See merge request espressif/esp-idf!16829
2022-01-19 05:01:12 +00:00
zhangyanjiao
2df406b6ce esp_wifi:
1. fix the issue that no tbtt is generated in station+softap mode when maximum modem sleep is enabled
2. store PHY digital registers before disabling PHY and load them after enabling PHY
3. update libphy.a to V4670 719f9f6_20210218 for esp32
4. update libphy.a to V1500 20210225_0a54a2f for esp32s2
2022-01-18 13:18:36 +08:00
Xia Xiaotian
c98745a5aa esp_wifi: store PHY digital registers before disabling PHY and load
them after enabling PHY
2022-01-18 13:18:36 +08:00
Jiang Jiang Jian
615ba73c4e Merge branch 'bugfix/fix_wifi_bugs_20220114_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs (Backport v4.2)

See merge request espressif/esp-idf!16795
2022-01-18 05:16:34 +00:00
aditi_lonkar
459674c444 esp_wifi: Fixed null pointer dereference 2022-01-14 15:00:52 +08:00
zhangyanjiao
c01c7acdab esp_wifi:
1. Fixed sniffer fcs error crash issue
2. Added support of SHA256 AKM without PMF enabled
3. Added station based check for auth frame formation
2022-01-14 14:57:51 +08:00
xiehang
69b8e2af84 example: Fix espnow stuck issue 2022-01-14 14:26:02 +08:00
ronghulin
f70ac4e529 fix phy init memory leak 2022-01-14 14:26:02 +08:00
28a340af37 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-01-14 14:26:02 +08:00
ronghulin
fa0edda538 Bugfix: Connect example to add scan mode config 2022-01-14 14:26:02 +08:00
Jiang Jiang Jian
909db7cd91 Merge branch 'mesh/bugfix_fix_layer2_node_connection_issue_v4.2' into 'release/v4.2'
esp_wifi_mesh: fix the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared(backport_v4.2)

See merge request espressif/esp-idf!15730
2022-01-14 05:32:46 +00:00
Jiang Jiang Jian
0336c5f525 Merge branch 'bugfix/wpa3_memory_leak_v4.2' into 'release/v4.2'
esp_wifi: Fixes memory leak in wpa3 connection.(v4.2)

See merge request espressif/esp-idf!16561
2022-01-14 04:42:53 +00:00
Jiang Jiang Jian
cf5d7befaf Merge branch 'bugfix/PRs_on_esp_hid_v4.2' into 'release/v4.2'
bugfix/handle_2_esp_hid_PRs (v4.2)

See merge request espressif/esp-idf!16710
2022-01-14 03:12:41 +00:00
Jiang Jiang Jian
9b53301b4d Merge branch 'bugfix/fix_spp_open_err_bda_v4.2' into 'release/v4.2'
Component_bt/Fix SPP acceptor open with wrong remote address[backport 4.2]

See merge request espressif/esp-idf!16615
2022-01-14 03:12:03 +00:00
Jiang Jiang Jian
85a36b86d0 Merge branch 'bugfix/touch_ll_get_sleep_time_v4.2' into 'release/v4.2'
Fixed error in "touch_ll_get_sleep_time" function for ESP32 (v4.2)

See merge request espressif/esp-idf!16249
2022-01-14 03:05:00 +00:00
Jiang Jiang Jian
9bf6cf5ed4 Merge branch 'bugfix/alarm_update_invalid_v4.2' into 'release/v4.2'
timer: stop alarm if alarm value doesn't change in ISR callback (v4.2)

See merge request espressif/esp-idf!16534
2022-01-14 03:04:36 +00:00
Jiang Jiang Jian
6683751579 Merge branch 'bugfix/gpio_uninstall_isr_service_intr_wdt_crash_v4.2' into 'release/v4.2'
gpio: Bugfix - Move esp_intr_free() out of the critical section in gpio_uninstall_isr_service() (backport v4.2)

See merge request espressif/esp-idf!16597
2022-01-14 03:04:15 +00:00
Jiang Jiang Jian
8f836882d4 Merge branch 'bugfix/fix_smartconfig_setopt_fail_v4.2' into 'release/v4.2'
smartconfig: Fix smartconfig set socket option fail (backport v4.2)

See merge request espressif/esp-idf!16773
2022-01-14 03:03:37 +00:00
Ivan Grokhotkov
7ad199d14a Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20211220' (v4.2)

See merge request espressif/esp-idf!16767
2022-01-13 16:23:16 +00:00
yuanjm
1ebd52f36a smartconfig: Fix smartconfig set socket option fail 2022-01-13 11:00:13 +08:00
Roland Dobai
698efba393 Merge branch 'bugfix/fix_modbus_rs485_rts_en_fail_v42' into 'release/v4.2'
Bugfix/fix modbus rs485 rts en fail (backport v4.2)

See merge request espressif/esp-idf!11566
2022-01-12 08:44:05 +00:00
Zim Kalinowski
5f2f1c013a Merge branch 'bugfix/app_compatible_with_3_1_bootloader_v4.2' into 'release/v4.2'
esp_system: Fix RTC_WDT protection in esp_restart_noos (v4.2)

See merge request espressif/esp-idf!16742
2022-01-12 08:37:55 +00:00
Alexey Gerenkov
57c429e618 tools: Updates OpenOCD version to 'v0.11.0-esp32-20211220' 2022-01-12 09:30:24 +01:00
Krzysztof Budzynski
476a0eb26d Merge branch 'fix/remove_deprecated_macro_SPI_TRANS_SET_CD_v4.2' into 'release/v4.2'
Remove a deprecated macro: SPI_TRANS_SET_CD (v4.2)

See merge request espressif/esp-idf!16690
2022-01-12 05:50:53 +00:00
Michael (XIAO Xufeng)
aa445dceeb Merge branch 'bugfix/adc_power_issue_4.2' into 'release/v4.2'
adc: fix adc power issue (4.2)

See merge request espressif/esp-idf!14280
2022-01-12 03:38:19 +00:00
Wang Meng Yang
9b5e0fb672 Merge branch 'bugfix/a2dp_source_congest_v4.2' into 'release/v4.2'
component_bt: Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink(v4.2)

See merge request espressif/esp-idf!16708
2022-01-11 02:41:55 +00:00
Wang Meng Yang
3516d536ca Merge branch 'bugfix/config_parse_crash_after_flash_erase_v4.2' into 'release/v4.2'
component_bt: fixed config parse crash after flash_erase(v4.2)

See merge request espressif/esp-idf!16696
2022-01-11 02:39:23 +00:00
KonstantinKondrashov
18f2078c5c esp_system: Fix RTC_WDT protection in esp_restart_noos
Fixed issue - v4.3 app not compatible with 3.1 bootloader
2022-01-10 21:58:01 +08:00
Krzysztof Budzynski
ddb7d6c4a0 Merge branch 'docs/fixed_typos_in_esp32-s2-saola-1_user_guide' into 'release/v4.2'
Docs: Fixed typos in ESP32-S2-Saola-1 user guide (backport v4.2)

See merge request espressif/esp-idf!16695
2022-01-10 09:54:42 +00:00
Cao Sen Miao
e59e7e1432 spi_flash: add support for th 1M flash 2022-01-10 11:53:37 +08:00
Cao Sen Miao
dfa736b0e3 psram: add ESP32-D0WD-R2-V3 support 2022-01-10 11:06:25 +08:00
xiongweichao
f41d77cce9 btc_a2dp_control_set_datachnl_stat is only used by a2dp sink 2022-01-10 11:01:41 +08:00
xiongweichao
45b9b12c04 remove btc_a2dp_dispatch_datapath_evt and event 2022-01-10 11:00:59 +08:00
xiongweichao
cf2f2a44c7 Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started 2022-01-10 11:00:03 +08:00
xiongweichao
190bd80f3d Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink 2022-01-10 10:59:43 +08:00
aleks
239e56541c freemodbus: fix uart_wait_tx_done() reenable tx_done interrupt 2022-01-07 16:45:47 +00:00
aleks
9ac8205208 freemodbus: fix rts enable fail when transmit frame 2022-01-07 16:45:47 +00:00
aleks
4c5099d194 freemodbus: fix modbus rs485 rts enable fail v42 2022-01-07 16:45:47 +00:00
aleks
bf8bff9870 freemodbus: fix invalid error handling for duplicate param_key 2022-01-07 16:09:25 +00:00
xiongweichao
ae676e3491 fixed config parse crash after flash_erase
Closes https://github.com/espressif/esp-idf/issues/6170
2022-01-07 17:13:03 +08:00
Wang Ning
a30cfb2ef3 docs/fixed_typos_in_esp32-s2-saola-1_user_guide 2022-01-07 17:01:53 +08:00
Wang Fang
fec6e140fb fix: remove a deprecated macro: SPI_TRANS_SET_CD 2022-01-07 16:39:31 +08:00
Zim Kalinowski
9f0c9ff2f0 Merge branch 'doc/target_specifc_doxygen_header_v4.2' into 'release/v4.2'
docs: change some header path to use IDF_TARGET (v4.2)

See merge request espressif/esp-idf!15804
2022-01-07 07:49:26 +00:00
Armando
ca6636c33e spi_master: fix spi cs_ena_posttrans issue 2022-01-07 14:28:57 +08:00
Marius Vikhammer
2f02a80d31 docs: change some header path to use IDF_TARGET
Some header path were using hardcoded esp32 paths, when they should be
target dependent.
2022-01-07 11:16:30 +08:00
Jiang Jiang Jian
2b95a627be Merge branch 'bugfix/set_authmode_by_switching_number_to_string_v4.2' into 'release/v4.2'
CI: set authmode by switching number to string (backport v4.2)

See merge request espressif/esp-idf!16555
2022-01-06 10:09:30 +00:00
Armando
a129933ccd adc: apply adc power API to adc driver 2022-01-06 11:42:55 +08:00
Roland Dobai
56cfd0b86b Merge branch 'bugfix/idf_tools_test_without_versions_v4.2' into 'release/v4.2'
Tools: Load tool versions automatically for IDF Tools tests (v4.2)

See merge request espressif/esp-idf!16512
2022-01-04 09:48:09 +00:00
Yuan Hong Hui
8a47cdeb2d add cmd to publish and recv heartbeat message 2022-01-04 15:56:45 +08:00
Zim Kalinowski
dca26e3fe9 Merge branch 'bugfix/psram_fix_bootloader_v4.2' into 'release/v4.2'
bootloader: disable psram cache bug fix for bootloader (v4.2)

See merge request espressif/esp-idf!15806
2022-01-02 06:13:12 +00:00
liqigan
4b3b77e4e8 fix SPP open with wrong remote bd_addr 2021-12-31 15:46:15 +08:00
songruojing
7ef8012019 gpio: Bugfix - Move esp_intr_free() out of the critical section in gpio_uninstall_isr_service()
Closes https://github.com/espressif/esp-idf/issues/5571

Fix the bug that if the API was called from one core to free the interrupt source on the other core, it would trigger interrupt watchdog.

(cherry picked from commit 0e8286c57b)
2021-12-30 14:45:13 +08:00
Murray Fordyce
000599986f Fixed left right key confusion in comments.
"Left" and "Right" were swapped in some comments.
2021-12-30 11:02:54 +08:00
Robin Krens
e9714eaaa5 spacing styling correction 2021-12-30 11:02:54 +08:00
Robin Krens
c115194e88 minor styling changes 2021-12-30 11:02:54 +08:00
Robin Krens
77c3a113bf esp_hid: fix output report char declaration
Current issue: output reports sent by Windows not received.
The report characteristic declaration should also support write without
response as specified by HIDS profile:
See https://www.bluetooth.com/specifications/GATT/ (page 14)
2021-12-30 11:02:54 +08:00
Zim Kalinowski
5f137204b1 Merge branch 'bugfix/ringbuf_read_pointer_wrap_v4.2' into 'release/v4.2'
ringbuf: Fix bug where comparision between a signed and unsigned operand resulted in incorrect free size for no-split/allow-split buffers (v4.2)

See merge request espressif/esp-idf!15883
2021-12-30 02:22:05 +00:00
Zim Kalinowski
f94ce9f51d Merge branch 'bugfix/fix_select_timeout_v4.2' into 'release/v4.2'
VFS: `select` function's timeout is now POSIX compliant (backport v4.2)

See merge request espressif/esp-idf!16191
2021-12-30 02:20:31 +00:00
aditi_lonkar
0b98671385 esp_wifi: Fixes memory leak in wpa3 connection. 2021-12-28 11:37:23 +05:30
huchaoru
fac6a5af5b bugfix: set authmode by switching number to string (backport v4.2) 2021-12-27 20:00:33 +08:00
aleks
394c2c100f freemodbus: fix port contains lgpl licensed files
Initial version of freemodbus master port files have been added to ESP-IDF based on https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32.
The overall repository license, at the time of adding these files, has been BSD 3-clause. However at that time, several port files carried LGPL license headers. As the author of these files confirmed in https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32/issues/61#issuecomment-977828450, this wasn't intentional. ESP-IDF version of modbus master port has been rewritten to target FreeRTOS instead of RT-Thread, but the license headers remained from the original version. This commit corrects this, replacing the license of these files with BSD 3-clause.
2021-12-27 11:12:32 +01:00
Sudeep Mohanty
c6134337a6 ringbuf: Fix bug where comparision between a signed and unsigned operand resulted in incorrect free size for no-split/allow-split buffers
This commit fixes a bug in no-split and allow-split ring buffers free buffer size calculation.
When the free size available in the buffers less than the size of one item header,
the function prvGetCurMaxSizeNoSplit/AllowSplit() incorrectly returned the maxItemSize instead of 0.
This is due to the comparision between a negative and a positive value
where both operands are treated as unsigned during the comparision operation,
thereby treating the negative operand as a large integer.

Also added new unit tests to test buffer-full and almost-full conditions
where this scenario is likely to be hit.

Closes https://github.com/espressif/esp-idf/issues/7344
Closes https://github.com/espressif/esp-idf/pull/7371
2021-12-27 15:14:17 +08:00
Sudeep Mohanty
31327caaf5 Merge branch 'bugfix/ringbuf_send_semaphore_release_order_v4.2' into 'release/v4.2'
esp_ringbuf: Fix order of semaphore release in xRingbufferSend (v4.2)

See merge request espressif/esp-idf!16231
2021-12-24 06:16:47 +00:00
morris
93c784e1c8 timer: stop alarm if alarm value doesn't change in ISR handler
Alarm will be disabled by hardware when alarm event happend.
In the ISR, if auto-reload is enabled, we should re-enable the alarm.
If the alarm target value is changed in user's callback,
the alarm will be reenabled as well.

Closes https://github.com/espressif/esp-idf/issues/7001
Closes https://github.com/espressif/esp-idf/issues/8095
2021-12-24 13:08:33 +08:00
Jiang Jiang Jian
775701d610 Merge branch 'feature/mbedtls-2.16.12-integration_v4.2' into 'release/v4.2'
mbedtls: upgrade to release v2.16.12 (v4.2)

See merge request espressif/esp-idf!16485
2021-12-24 03:20:34 +00:00
RichFalk
6df7b049a3 esp_ringbuf: Fix assertion xQueueGenericSend queue.c
The release of the semaphore indicating the item was successfully sent must be the last semaphore released.  The receiver may be in another task and may delete the Ringbuffer (such as with a return code across tasks design pattern) if they are through with the Ringbuffer.

The function xRingbufferSendAcquire followed by xRingbufferSendComplete had the semaphores released in the proper order and that same pattern should have been used in xRingbufferSend and xRingbufferSendFromISR.  This commit fixes this order.

Issue (IDFGH-6030) #7716 describes the problem in more detail.

Closes IDFGH-6030, https://github.com/espressif/esp-idf/issues/7716
Closes IDFGH-6036, https://github.com/espressif/esp-idf/pull/7721
2021-12-23 15:53:48 +08:00
shenjun
5ed4a3dbfb esp_wifi_mesh: fix the device can not receive IP_EVENT_STA_GOT_IP when the router restarted
1. fix the device can not receive IP_EVENT_STA_GOT_IP when the router restarted
2. fix the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared
2021-12-23 11:19:19 +08:00
Jiang Jiang Jian
9273f5045e Merge branch 'bugfix/fix_rx_fragment_error_issue_v4.2' into 'release/v4.2'
esp_wifi: fix fragment issue and PMF compatible for faulty APs(Backport v4.2)

See merge request espressif/esp-idf!16398
2021-12-22 17:33:54 +00:00
Roland Dobai
1699624dff Tools: Load tool versions automatically for IDF Tools tests 2021-12-22 10:37:01 +01:00
Mahavir Jain
1319034019 mbedtls: upgrade to release v2.16.12
For release notes, please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.12
2021-12-21 14:03:30 +05:30
Mahavir Jain
50df004292 mbedtls: small documentation update 2021-12-21 14:03:30 +05:30
Wang Meng Yang
e7687c7688 Merge branch 'bugfix/fix_spp_listen_err_v4.2' into 'release/v4.2'
Component_bt/Fix SPP cannot malloc slot bugs[backport v4.2]

See merge request espressif/esp-idf!16385
2021-12-21 05:28:25 +00:00
Jiang Jiang Jian
0c15051452 Merge branch 'bugfix/wpa_supplicant_logs_release_v4.2' into 'release/v4.2'
esp_wifi: Change the verbosity of wpa_supplicant logs. (Backport v4.2)

See merge request espressif/esp-idf!16347
2021-12-21 03:36:28 +00:00
Mahavir Jain
b4d4cbdd41 Merge branch 'bugfix/address_already_used_exception_in_ota_tests_v4.2' into 'release/v4.2'
Fix 'address already in use' exception in OTA tests (v4.2)

See merge request espressif/esp-idf!16418
2021-12-20 07:11:53 +00:00
Wang Meng Yang
db669217ac Merge branch 'feature/support_ble_direct_ind_low_adv_v4.2' into 'release/v4.2'
components/bt: Support low duty cycle directed advertising(backport release/v4.2)

See merge request espressif/esp-idf!16379
2021-12-20 03:11:22 +00:00
Harshit Malpani
46b58b5934 Fix for advanced_ota_redirect_url example failure in CI 2021-12-16 12:26:17 +05:30
Jiang Jiang Jian
769099dd64 Merge branch 'bugfix/lwip_config_dhcp_client_id_v4.2' into 'release/v4.2'
lw-ip: Add config for DHCP client id; Fix DNS server idx assert issue (v4.2)

See merge request espressif/esp-idf!16174
2021-12-16 06:43:41 +00:00
Harshit Malpani
a687c3413e Fix 'address already in use' exception in OTA tests
We will stop the server instance at the end of each test case. This will solve the "address already in use" exception
2021-12-16 10:33:27 +05:30
Jiang Jiang Jian
33a6effd3e Merge branch 'feature/support_eap_fast_release_v4.2' into 'release/v4.2'
Feature/support eap fast release v4.2

See merge request espressif/esp-idf!16142
2021-12-16 03:37:49 +00:00
Jiang Jiang Jian
0204aea35b Merge branch 'bugfix/fix_blufi_encryption_fail_v4.2' into 'release/v4.2'
components/bt: fix blufi encryption fail(backport release/v4.2)

See merge request espressif/esp-idf!16316
2021-12-16 03:33:51 +00:00
David Cermak
0eb18951be lwip: Add config for DHCP client id; Fix DNS server idx assert issue
This commit brings two esp-lwip fixes to IDF:

1) Add configuration to disable DHCP client identification
2195f7416f
This config could be used to disable option 61 in DHCP packets, so that
clients will be identified by their  chaddr only.
(This is the lwip upstream original behaviour)

2) Fix server_idx increasing to DNS_MAX_SERVERS and trigger the LWIP_ASSERT
5a567d52f7
When lwip doesn't have DNS server and resolve a domain address, the server_idx
will increase to DNS_MAX_SERVERS, which will trigger the LWIP_ASSERT and make device crash.

Closes https://github.com/espressif/esp-idf/issues/7912
2021-12-15 13:17:03 +01:00
Konstantin Kondrashov
0877949237 Merge branch 'bugfix/fix_esp32h2_efuse_get_ext_mac_v4.2' into 'release/v4.2'
efuse_table_gen: Fixes wrong joining fields with omitted names  (v4.2)

See merge request espressif/esp-idf!15739
2021-12-14 14:07:39 +00:00
NikLeberg
8c3b358abf allow for minimal scope of wifi_init_config_t
With this change one can use the default config as a variable with minimal scope: esp_wifi_init(&(wifi_init_config_t)WIFI_INIT_CONFIG_DEFAULT())
2021-12-14 19:44:31 +08:00
Shang Zhou
6f8ad7eb5e docs: Update miswritten and abbreviated words and syntax errors for initialize WiFi section in esp_wifi.h header file 2021-12-14 19:43:54 +08:00
muhaidong
6baac84d4a esp_wifi: fix fragment issue and PMF compatible for faulty APs
1. fix(pp): fix fragment plt loss when 2td pn compare with 1th pn
2. pmf allow keyindex in big endian format to workaround faulty APs
3. docs: update miswritten and abbreviated words and syntax errors for initialize WiFi section in esp_wifi.h header file
4. allow for minimal scope of wifi_init_config_t
2021-12-14 19:28:31 +08:00
Hrudaynath Dhabe
bab60d20af esp_wifi: Add an example for EAP-FAST. 2021-12-14 12:45:04 +05:30
nishanth.radja
69ca323a74 esp_wifi: Add support for EAP-FAST authentication method 2021-12-14 12:37:26 +05:30
xiewenxiang
146bbe95be components/bt: Fix high duty cycle directed advertising will not be stopped when timeout 2021-12-14 14:10:29 +08:00
xiewenxiang
b3adae9b40 components/bt: Support low duty cycle directed advertising 2021-12-14 14:10:29 +08:00
liqigan
6c2d8ea653 fix SPP server bugs when the BTC layer can not allocate a slot for the listen port 2021-12-14 11:16:42 +08:00
Vikram
c327a0016e Merge branch 'feature/local_control_sec1_v4.2' into 'release/v4.2'
Added support for security1 in local control (backport v4.2)

See merge request espressif/esp-idf!15280
2021-12-09 16:55:22 +00:00
Roland Dobai
01ebb72f0a Merge branch 'bugfix/remove_PIP_USER_v4.2' into 'release/v4.2'
tools: Add check for PIP_USER variable (backport v4.2)

See merge request espressif/esp-idf!16336
2021-12-09 08:10:10 +00:00
Vikram Dattu
f278db260e esp_local_ctrl: Added documentation to chose protocom security
Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-12-09 15:26:14 +08:00
Vikram Dattu
3af5f20da1 Added support for security1 in local control
1. Added config options to chose from protocom security.
    It can be chosen 0/1 or custom.
    Possible to set POP as well

2. Added support in `esp_local_ctrl.py` test script for sec_ver selection

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-12-09 15:26:14 +08:00
Hrudaynath Dhabe
c3e66a4ba2 esp_wifi: Change the verbosity of wpa_supplicant logs. 2021-12-09 12:55:32 +05:30
Jiang Jiang Jian
2fa5cee80d Merge branch 'bugfix/fix_some_wifi_bugs_20211202_v4.2' into 'release/v4.2'
fix wifi bugs 20211202 (backport v4.2)

See merge request espressif/esp-idf!16256
2021-12-09 06:19:06 +00:00
Juraj Sadel
a43a21a761 tools: Add check for PIP_USER variable
Closes https://github.com/espressif/esp-idf/issues/7910
2021-12-08 16:18:39 +01:00
xiewenxiang
ab7ad4e771 components/bt: fix blufi encryption fail 2021-12-08 14:09:29 +08:00
Mahavir Jain
5cc2eb15c9 Merge branch 'bugfix/bootloader_debug_buffers_v4.2' into 'release/v4.2'
bootloader_support: Fix and re-enable bootloader_debug_buffer function (v4.2)

See merge request espressif/esp-idf!16075
2021-12-07 02:34:42 +00:00
Jiang Jiang Jian
e694ffd5af Merge branch 'bugfix/link_spi_flash_rom_func_in_bootloader_stage_v4.2' into 'release/v4.2'
esp_rom: link rom spi flash functions in bootloader stage (v4.2)

See merge request espressif/esp-idf!15258
2021-12-06 03:57:55 +00:00
Jiang Jiang Jian
6317335174 Merge branch 'feature/add_coex_hci_command_v4.2' into 'release/v4.2'
Add hci command to set coexistence status (v4.2)

See merge request espressif/esp-idf!16055
2021-12-06 03:57:11 +00:00
Jiang Jiang Jian
38714c37d1 Merge branch 'feature/adds_fault_injection_protection_for_check_anti_rollback_v4.2' into 'release/v4.2'
bootloader_support: Adds fault injection protection for check_anti_rollback (v4.2)

See merge request espressif/esp-idf!16181
2021-12-06 03:56:33 +00:00
Jiang Jiang Jian
36574af3c9 Merge branch 'reduce_bootup_time_when_using_usb-serial-jtag_v4.2' into 'release/v4.2'
rtc_clk: reduce bootup time when using usb-serial-jtag(backport v4.2)

See merge request espressif/esp-idf!16262
2021-12-06 03:55:21 +00:00
Jiang Jiang Jian
06db6f510f Merge branch 'feature/add_dhcp_option_v4.2' into 'release/v4.2'
lw-ip: Add macro to disable vendor class option(backport v4.2)

See merge request espressif/esp-idf!15982
2021-12-06 03:54:59 +00:00
jingli
417711c390 reduce bootup time when using usb-serial-jtag 2021-12-03 21:01:02 +08:00
zhangyanjiao
aa5e034c52 eps_wifi:
1. Fix airkiss and esptouch find channel crash issue
2. Fix RF singal test without 9M rate issue
3. Fix issue of setting invalid size to nvs misc log even after erasing it
4. Fix WEP connection and crash issue
2021-12-03 17:59:31 +08:00
xiehang
a249794640 esp_wifi: Add beacon timeout event 2021-12-03 15:37:06 +08:00
Axel Lin
721fe216e7 wpa_supplicant: Fix wps_free_pins to remove all pins
Current code does not correctly free all pins in wps_free_pins due to the
semicolon at the end of dl_list_for_each_safe(). Fix it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
2021-12-03 14:35:55 +08:00
Sergey Gorban
f74b5accf3 Fixed error in "touch_ll_get_sleep_time" function for ESP32
Merges https://github.com/espressif/esp-idf/pull/6895
2021-12-03 12:41:31 +08:00
Mahavir Jain
37634f09b2 Merge branch 'fix/remove_warning_when_disabling_rom_dl_mode_v4.2' into 'release/v4.2'
secure_boot: Fix warning when UART ROM DL mode is disabled (v4.2)

See merge request espressif/esp-idf!16239
2021-12-03 04:27:14 +00:00
Jiang Jiang Jian
b656c406bf Merge branch 'bugfix/enable_gpio_20_v4.2' into 'release/v4.2'
gpio: Enable IO20 on ESP32 (backport v4.2)

See merge request espressif/esp-idf!15023
2021-12-03 03:39:47 +00:00
Jiang Jiang Jian
19643f715c Merge branch 'bugfix/fix_memory_leak_controller_deinit_v4.2' into 'release/v4.2'
ESP32: Fix memory leak in controller deinit function v4.2

See merge request espressif/esp-idf!15970
2021-12-03 03:32:18 +00:00
Roland Dobai
c3eb64ef85 Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20211111' (v4.2)

See merge request espressif/esp-idf!16001
2021-12-02 17:28:37 +00:00
Alexey Gerenkov
3c3711dcc3 idf_tools: Adds 'linux-armhf' platform support 2021-12-02 16:53:28 +03:00
Alexey Gerenkov
c2ffbaf683 tools: Updates OpenOCD version to 'v0.10.0-esp32-20211111' 2021-12-02 16:53:23 +03:00
Aditya Patwardhan
bffa30785b secure_boot: Fix warning when UART ROM DL mode is disabled
*Additionally use updated calls to enable rom secure download mode
2021-12-02 21:40:49 +08:00
Mahavir Jain
adda59cc97 bootloader: add anti-FI checks around secure version in anti-rollback scheme 2021-12-02 21:17:27 +08:00
Anton Maklakov
392a126b05 Merge branch 'bugfix/ci_fix_clean_dir' into 'release/v4.2'
ci: Fix build system tests to clean the dir

See merge request espressif/esp-idf!16221
2021-12-02 12:08:49 +00:00
Sergei Silnov
b5d459ee05 ci: Fix build system tests to clean the dir 2021-12-01 18:29:42 +01:00
Gustavo Henrique Nihei
8ffd02be29 bootloader_support: Fix and re-enable bootloader_debug_buffer function
The body of the bootloader_debug_buffer function was conditioned to
macros that were never defined, resulting in deactivated code.

Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-30 21:02:23 +08:00
Omar Chebib
53daf3dbbf VFS: select function's timeout is now POSIX compliant
`select` function will now round up the timeout passed as a parameter (if any).
It  makes it POSIX compliant.

* Closes https://github.com/espressif/esp-idf/issues/7514
2021-11-30 12:22:55 +08:00
Roland Dobai
a4ced2bf55 Merge branch 'bugfix/coredump_esp_panic_reason_v4.2' into 'release/v4.2'
coredump: Fixes ESP-specific panic reasons handling (v4.2)

See merge request espressif/esp-idf!16069
2021-11-26 11:00:41 +00:00
Roland Dobai
77a46fd122 Merge branch 'bugfix/doskey_v4.2' into 'release/v4.2'
tools: fix export.bat /tools/idf.py not found issue (v4.2)

See merge request espressif/esp-idf!16050
2021-11-26 10:09:04 +00:00
Mahavir Jain
d8f9e53504 Merge branch 'feature/remove_component_manager_tests_v4.2' into 'release/v4.2'
ci: Remove component manager test from build system tests (v4.2)

See merge request espressif/esp-idf!16108
2021-11-26 05:17:43 +00:00
Anton Maklakov
fccaf93a87 Merge branch 'feature/docker_build_use_git_mirror_v4.2' into 'release/v4.2'
ci: use LOCAL_GIT_MIRROR in docker build job, if set (v4.2)

See merge request espressif/esp-idf!16112
2021-11-25 05:33:45 +00:00
Ivan Grokhotkov
ccb1afa97a ci: use LOCAL_GIT_MIRROR in docker build job, if set
When the build runner has a local git mirror configured via
LOCAL_GIT_MIRROR variable, use that mirror when cloning IDF insider
the docker build job. Follows similar logic for
LOCAL_GITLAB_HTTPS_HOST, which is used for geo nodes.
2021-11-24 15:45:02 +01:00
Sergei Silnov
eee3af33d6 ci: Remove component manager test from build system tests
Component manager itself has a set of integration tests
that run against different ESP-IDF versions
2021-11-24 15:13:14 +01:00
Roland Dobai
792bc9a587 Merge branch 'feature/json_schema_for_idf_size_v4.2' into 'release/v4.2'
tools: add json schema for idf_size (v4.2)

See merge request espressif/esp-idf!15961
2021-11-24 09:00:43 +00:00
yuanjm
3cfcf2b4fd lwip: Add macro to disable vendor class option 2021-11-23 19:37:50 +08:00
Alexey Gerenkov
6d7aa57177 coredump: Fixes core dump private header inclusion guard 2021-11-23 13:06:18 +03:00
Alexey Gerenkov
0473ddffa7 coredump: Fixes ESP-specific panic reasons handling 2021-11-23 13:06:03 +03:00
Jiang Jiang Jian
d4c247dac6 Merge branch 'bugfix/fix_static_check_error_mr_4.2' into 'release/v4.2'
Fix the high-impact issues from the code analysis report from customer.

See merge request espressif/esp-idf!16046
2021-11-23 07:27:18 +00:00
Jiang Jiang Jian
440d1aeb25 Merge branch 'bugfix/leedarson_v4.2' into 'release/v4.2'
component_bt: Fix some code logic errors (v4.2)

See merge request espressif/esp-idf!16030
2021-11-23 07:26:55 +00:00
Jiang Jiang Jian
c1f7f216e3 Merge branch 'bugfix/register_non_32bit_access_v4.2' into 'release/v4.2'
hal: avoid non-32bit access to registers (v4.2)

See merge request espressif/esp-idf!15617
2021-11-23 07:26:31 +00:00
xiongweichao
3beae7c8ef Add hci command to set coexistence status 2021-11-23 11:48:39 +08:00
Ivan Grokhotkov
999abf403e tools: {install, export}.bat: fix path quoting
Also includes fix for DOSKEY definitions.
Closes https://github.com/espressif/esp-idf/issues/7605
Closes https://github.com/espressif/esp-idf/issues/7927
2021-11-22 23:08:49 +01:00
“YangZhao”
4200865dd1 Fix the high-impact issues from the code analysis report from customer.
For the CID10564,10384,10280,10098,10038,The memory was released in other place.
For the CID10365,it release the memory in the function when sent successfully.
For the CID10268,10011, we need not change the code.
2021-11-22 19:55:03 +08:00
xiongweichao
6ab925eaa0 Missing break in switch 2021-11-22 11:48:21 +08:00
xiongweichao
163dfb1091 already defined in bt_target.h 2021-11-22 11:47:00 +08:00
Wang Meng Yang
028a4c93ff Merge branch 'bugfix/fix_modem_sleep_hw_error_mr_4.2' into 'release/v4.2'
fix modem sleep hw error

See merge request espressif/esp-idf!16019
2021-11-22 03:46:30 +00:00
xiongweichao
1733159b08 Dereference after null check 2021-11-22 11:46:30 +08:00
xiongweichao
a8c653b094 Dereference before null check 2021-11-22 11:43:35 +08:00
xiongweichao
0ef796bfc2 Logically dead code 2021-11-22 11:43:05 +08:00
Yang Zhao
14cdcae482 It is abnormal when getting the deep sleep state bit. So we need to check
the state again and run the "ble_master_soft_rst()" if neesed.
2021-11-19 16:17:31 +08:00
Anton Maklakov
e74f0665fc Merge branch 'feature/ci_runner_failure_retries_v4.2' into 'release/v4.2'
ci: runner system failure retries (v4.2)

See merge request espressif/esp-idf!15724
2021-11-19 08:02:26 +00:00
Wang Meng Yang
05b1f873bd Merge branch 'bugfix/fix_custmoer_issues_v4.2' into 'release/v4.2'
bugfix/fix_3_controller_issues_v4.2

See merge request espressif/esp-idf!15978
2021-11-19 03:36:07 +00:00
Rahul Tank
c2a94ba1aa ESP32: Fix memory leak in controller deinit function
Added change to dealloc s_pm_lock in controller deinit as it gets allocated
during init procedure.
2021-11-17 20:42:29 +08:00
Roland Dobai
88e3ec6f03 Merge branch 'bugfix/create_dir_idf_env_v4.2' into 'release/v4.2'
tools: Create the ".espressif" directory on the first run on clean system (v4.2)

See merge request espressif/esp-idf!15857
2021-11-16 15:47:47 +00:00
jincheng
160afee96c - fix HCI_Read_Clock error
- fix HCI_Create_Connection_Cancel error
- fix ASSERT_WARN during epr
2021-11-16 17:10:30 +08:00
simon.chupin
3c69e6c990 tools: add json schema for idf_size 2021-11-15 18:45:08 +01:00
Mahavir Jain
a1b16acf7a Merge branch 'bugfix/efuse_stdbool_v4.2' into 'release/v4.2'
efuse: Add missing stdbool.h include file (v4.2)

See merge request espressif/esp-idf!15937
2021-11-15 15:39:03 +00:00
Jing Li
ccef7c1712 Merge branch 'bugfix/fix_ota_crash_backport_v4.2' into 'release/v4.2'
spi_flash: fix app crash when OTA because the OTA task's stack is in rtc fast memory(backport v4.2)

See merge request espressif/esp-idf!15861
2021-11-15 02:32:54 +00:00
Ondrej Kosta
f84e55bea2 Merge branch 'bugfix/LAN8720_reset_assertion_v4.2' into 'release/v4.2'
Increased LAN8720 ETH-PHY reset assertion time (v4.2)

See merge request espressif/esp-idf!15827
2021-11-14 21:49:08 +00:00
Gustavo Henrique Nihei
32d7f8e6f1 efuse: Enable C++ linkage for the include headers on esp_efuse.h
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-12 13:30:24 -03:00
Gustavo Henrique Nihei
d2da4598f5 efuse: Add missing stdbool.h include file
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-12 13:30:24 -03:00
Mahavir Jain
047a5bf2f7 Merge branch 'bugfix/aes_unaligned_access_v4.2' into 'release/v4.2'
aes: fix unaligned access (v4.2)

See merge request espressif/esp-idf!15803
2021-11-12 04:27:17 +00:00
Roland Dobai
ed6f72142f Merge branch 'bugfix/archive_details_always_run_like_diff_v4.2' into 'release/v4.2'
tools: fix bug with idf_size argument archive_details (v4.2)

See merge request espressif/esp-idf!15776
2021-11-11 12:34:14 +00:00
Frank Sautter
a8ed7f44bb Increased LAN8720 ETH-PHY reset assertion time (IDFGH-6018)
Increase reset assertion time from 100µs (as specified minimum in the datasheet) to 150µs.
Some specimen of the LAN8720 need the reset signal asserted longer than 100µs to initialise properly. Otherwise they are in a zombie state where they are establishing and loosing an Ethernet link once in a seconds interval.
2021-11-10 21:59:00 +01:00
Xie Wen Xiang
08c79908fb Merge branch 'bugfix/fix_crash_when_shutdown_bt_v4.2' into 'release/v4.2'
component/bt: fix crash when shutdown bt(backport v4.2)

See merge request espressif/esp-idf!15710
2021-11-10 06:31:40 +00:00
jingli
b6b227e6cc fix: app crash when OTA because the OTA task's stack is in rtc fast memory 2021-11-10 14:05:54 +08:00
Marius Vikhammer
a7a495f796 aes: fix potential unaligned access of buffers
https://github.com/espressif/esp-idf/issues/7236
2021-11-10 10:01:45 +08:00
simon.chupin
97873dbedc change --archive_details output 2021-11-09 14:30:11 +01:00
Roland Dobai
719207446f tools: Create the ".espressif" directory on the first run on clean system
Closes https://github.com/espressif/esp-idf/issues/7848
2021-11-09 12:03:20 +01:00
Wang Meng Yang
fab8e9d1bc Merge branch 'bugfix/hfp_demo_audio_not_sine_v4.2' into 'release/v4.2'
Bugfix/hfp demo audio not sine v4.2

See merge request espressif/esp-idf!15750
2021-11-09 03:05:25 +00:00
boarchuz
0fe219a3f3 fix bootloader build with rom flash driver
Closes https://github.com/espressif/esp-idf/pull/7508
Closes https://github.com/espressif/esp-idf/issues/6849
2021-11-08 14:14:39 +08:00
xiewenxiang
6ee20240ed component/bt: fix crash when shutdown bt(backport v4.2) 2021-11-08 10:37:31 +08:00
Island
125cf671e7 Merge branch 'bugfix/ble_mesh_host_init_v4.2' into 'release/v4.2'
ble_mesh: nimble: return error if init host twice (v4.2)

See merge request espressif/esp-idf!15789
2021-11-05 03:10:46 +00:00
Island
78fc16d1d3 Merge branch 'bugfix/sig_ble_mesh_errata_e16350_v4.2' into 'release/v4.2'
ble_mesh: stack: Apply the errata E16350 from Bluetooth SIG (v4.2)

See merge request espressif/esp-idf!15785
2021-11-05 03:09:15 +00:00
Chinmay Chhajed
890114733f Merge branch 'bugfix/ble_conn_latency_max_value_v4.2' into 'release/v4.2'
BLE: Set connection max latency value to 499.

See merge request espressif/esp-idf!15756
2021-11-04 08:55:15 +00:00
Marius Vikhammer
49c1dc43f1 Merge branch 'bugfix/define__DOXYGEN___v4.2' into 'release/v4.2'
docs: define __DOXYGEN__ for doxygen builds (v4.2)

See merge request espressif/esp-idf!15681
2021-11-04 05:57:07 +00:00
Marius Vikhammer
2f511cfaef bootloader: disable psram cache bug fix for bootloader
The psram cache bug fix was also being applied to the bootloader binary (for cmake),
which doesnt do any psram access.

Applying this fix would increase the binary size, as much as 300 bytes in worst case scenarios
2021-11-04 11:32:15 +08:00
Marius Vikhammer
86c5d3136e docs: define __DOXYGEN__ for doxygen builds
Some docs depended on __DOXYGEN__ but this was never defined anywhere.
2021-11-04 10:22:21 +08:00
lly
8106a823bd ble_mesh: nimble: return error if init host twice 2021-11-03 19:22:12 +08:00
lly
b32d6c355a ble_mesh: stack: Apply the errata E16350 from Bluetooth SIG 2021-11-03 19:06:49 +08:00
simon.chupin
fbf1df22b7 tools: fix bug with idf_size argument archive_details 2021-11-02 14:24:02 +01:00
Chinmay Chhajed
e0ea44fa46 BLE: Set connection max latency value to 499. 2021-11-01 16:37:46 +05:30
jincheng
c0fc6500cf fix hfp_ag demo audio not sine_v4.1 2021-11-01 12:26:40 +08:00
Yuan Jian Min
f370d5089f Merge branch 'bugfix/fix_cplusplus_miss_in_dhcp_v4.2' into 'release/v4.2'
dhcpserver: support cplusplus (backport v4.2)

See merge request espressif/esp-idf!15447
2021-10-30 06:21:43 +00:00
KonstantinKondrashov
939f4dfbc0 efuse_table_gen: Fixes wrong joining fields with omitted names
The issue is related to the non-sequential way of description when
such fields going together sequential.

Related to esp32h2 chip for eFuses: MAC_FACTORY and MAC_EXT.
The issue is in wrong indexes of MAC_EXT.
MAC_EXT got indexes like it is joined to MAC_FACTORY.

const esp_efuse_desc_t* ESP_EFUSE_MAC_FACTORY[] = {
    &MAC_FACTORY[0],
    &MAC_FACTORY[1],
    &MAC_FACTORY[2],
    &MAC_FACTORY[3],
    &MAC_FACTORY[4],
    &MAC_FACTORY[5],
    NULL
};

const esp_efuse_desc_t* ESP_EFUSE_MAC_EXT[] = {
    &MAC_EXT[6],
    &MAC_EXT[7],
    NULL
};

This commit fixed it to:

const esp_efuse_desc_t* ESP_EFUSE_MAC_EXT[] = {
    &MAC_EXT[0],
    &MAC_EXT[1],
    NULL
};
2021-10-29 19:37:21 +08:00
Mahavir Jain
7097d3c2f4 Merge branch 'bugfix/sdcard_example_format_timeout_v4.2' into 'release/v4.2'
CI: [Examples/Storage] provide sufficient timeout for SD card formatting (v4.2)

See merge request espressif/esp-idf!14912
2021-10-29 09:44:04 +00:00
Yuan Jian Min
4f1b5cdb8a Merge branch 'bugfix/fix_http_head_request_v4.2' into 'release/v4.2'
esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request(backport v4.2)

See merge request espressif/esp-idf!15713
2021-10-29 07:53:49 +00:00
Martin Vychodil
51e00ec105 Examples/Storage: provide sufficient timeout for SD card formatting
Large SD cards (16GB+) require significant amount of time for FS formatting.
Added FS mount checkpoint in example test python, timeout set to 60 sec

Closes IDFCI-706
2021-10-29 15:44:53 +08:00
Anton Maklakov
f97fd4e04e ci: Add retries on runner system failures 2021-10-29 13:50:47 +07:00
Kapil Gupta
fe505c5d1b Merge branch 'bugfix/eap_client_iot_issues_v4.2' into 'release/v4.2'
ESP_WiFi: Fix some wpa enterprise issue (backport V4.2)

See merge request espressif/esp-idf!15573
2021-10-29 04:44:45 +00:00
yuanjm
cb343db4c9 ci: Remove public headers check exceptions for dhcp 2021-10-29 10:34:08 +08:00
yuanjm
40b28a958c dhcpserver: support cplusplus
Closes https://github.com/espressif/esp-idf/issues/7494

Merges https://github.com/espressif/esp-idf/pull/7526
2021-10-29 10:34:08 +08:00
yuanjm
f2347ff434 esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request
Closes https://github.com/espressif/esp-idf/issues/7777
2021-10-29 10:20:04 +08:00
Kapil Gupta
345fe24460 wpa_supplicant: Add missing cflag for legacy makefile 2021-10-28 17:03:06 +05:30
Kapil Gupta
7c402bd790 wpa_supplicant: Update internal tls client with sha384/sha512 support 2021-10-28 17:02:51 +05:30
Kapil Gupta
73933d50e8 esp_wifi: Fix interoperability issue with windows 2008 2021-10-28 16:07:33 +08:00
Mahavir Jain
a790d96441 Merge branch 'bugfix/select_boot_app_v4.2' into 'release/v4.2'
partition_table: Fix case when a few similar to otadata partitions in the table (v4.2)

See merge request espressif/esp-idf!15649
2021-10-28 05:38:28 +00:00
Island
f9c75d82e2 Merge branch 'bugfix/heartbeat_filter_with_acceptlist_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix heartbeat filter with accept list (v4.2)

See merge request espressif/esp-idf!15677
2021-10-28 02:58:36 +00:00
Jiang Jiang Jian
016b848caf Merge branch 'bugfix/remove_assert_when_inq_done_4.2' into 'release/v4.2'
component_bt: fix crash after inquiry has finished (v4.2)

See merge request espressif/esp-idf!15671
2021-10-27 11:28:02 +00:00
wangjialiang
41c0ba2ed0 ble_mesh: stack: Fix heartbeat filter with accept list 2021-10-27 16:39:24 +08:00
xiongweichao
5a4d4a01db Remove assert when inq done
Closes https://github.com/espressif/esp-idf/issues/6759
Closes https://github.com/espressif/esp-idf/issues/7551
2021-10-27 14:26:43 +08:00
Anton Maklakov
5f46abd281 Merge branch 'bugfix/support_py34-35_cffi_v4.2' into 'release/v4.2'
Tools: Constrain the cffi package for older pythons (v4.2)

See merge request espressif/esp-idf!15608
2021-10-26 13:48:03 +00:00
KonstantinKondrashov
fc0f90e8aa partition_table: Fix case when a few similar to otadata partitions in the table
It was when in the partition table there is a partition with type="data" and suptype=""(empty),
in this case type=1, suptype=0. It is similar to otadata partition.

This commit fixes it, now it will handle it as type=1, suptype=6 (ESP_PARTITION_SUBTYPE_DATA_UNDEFINED).
2021-10-26 16:48:25 +08:00
Sergei Silnov
7f7bc4078a Tools: Constrain the cffi package for older pythons 2021-10-25 20:14:19 +08:00
Wang Meng Yang
eaf738fae9 Merge branch 'feature/add_README_for_controller_hci_uart_demo_v4.2' into 'release/v4.2'
[document] add README.md for demo controller_hci_uart_demo for v4.2

See merge request espressif/esp-idf!15563
2021-10-25 08:13:37 +00:00
Wang Meng Yang
78e345debc Merge branch 'bugfix/fix_ble_scan_failed_issue_master_4.2' into 'release/v4.2'
[Bluetooth] Fix the ble scan failed issue

See merge request espressif/esp-idf!15589
2021-10-25 07:55:14 +00:00
morris
30355d3c0c hal: avoid non-32bit access to registers 2021-10-25 12:05:55 +08:00
Wu Zheng Hui
3a9a2bcfc3 Merge branch 'bugfix/fix_stuck_in_rtc_clk_calibration_backport_v4.2' into 'release/v4.2'
[bugfix] Fix stuck in rtc clk calibration (backport v4.2)

See merge request espressif/esp-idf!15525
2021-10-21 13:22:20 +00:00
wuzhenghui
fe1d3401d9 fix stuck in rtc_clk_cal 2021-10-21 19:15:33 +08:00
Yang Zhao
c1edb161e7 1.Fix the ble scan failed issue, this may happen in coexit environment
2.Fix connection failed with LG 5.0 phone
3.Check only for same X component of public key in BR/EDR
2021-10-21 10:59:57 +08:00
Anton Maklakov
10c0bb1bc0 Merge branch 'bugfix/retry_download_submodule_v4.2' into 'release/v4.2'
ci: retry download from Gitlab on error 500 (v4.2)

See merge request espressif/esp-idf!15533
2021-10-20 03:35:11 +00:00
jincheng
75789bef8b add README.md for demo controller_hci_uart_demo 2021-10-19 22:00:46 +08:00
Anton Maklakov
3e9f15b12d Merge branch 'ci/fix_deploy_docs_preview_url_v4.2' into 'release/v4.2'
ci: update docs preview url (v4.2)

See merge request espressif/esp-idf!15509
2021-10-19 11:52:55 +00:00
Michael (XIAO Xufeng)
cb58226c5e Merge branch 'bugfix/fix_touch_sensor_measure_start_wait_time_backport_v4.2' into 'release/v4.2'
Bugfix(Touch): fix the touch sensor wait cycle after wakeup from sleep (backport v4.2)

See merge request espressif/esp-idf!13641
2021-10-18 16:58:30 +00:00
Roland Dobai
4498749f38 Merge branch 'backport/v4.2/dockerfile_multiarch' into 'release/v4.2'
Dockerfile working on x64/ARM (v4.2)

See merge request espressif/esp-idf!15520
2021-10-18 14:17:16 +00:00
Ivan Grokhotkov
672d112395 ci: revert type annotations in gitlab_api.py to python2 compatible 2021-10-18 14:42:35 +07:00
Ivan Grokhotkov
3b957bb67e ci: retry Gitlab operations on error 500 2021-10-18 14:42:35 +07:00
Fu Hanxi
46ef92abee ci: retry download artifacts 2021-10-18 14:42:35 +07:00
Ivan Grokhotkov
6b3f2ea744 ci: fetch submodules from mirror, if enabled 2021-10-18 14:42:35 +07:00
Fu Hanxi
1418efe7a4 ci: retry download if catched IOError/EOFError 2021-10-18 14:42:35 +07:00
Wang Meng Yang
de22cc8ca7 Merge branch 'bugfix/btdm_ble_data_length_update_fail_v4.2' into 'release/v4.2'
Fix data length update failed(release v4.2)

See merge request espressif/esp-idf!15503
2021-10-18 03:08:04 +00:00
Jiang Jiang Jian
8f8a88d5ec Merge branch 'bugfix/fix_efuse_err_address_backport4.2' into 'release/v4.2'
fix efuse err address in block0 (backport v4.2)

See merge request espressif/esp-idf!14813
2021-10-15 05:44:10 +00:00
Tomas Sebestik
7e663430ea Dockerfile working on x64/ARM 2021-10-14 13:11:25 +02:00
Marius Vikhammer
c72ab6944e ci: update docs preview url 2021-10-14 14:23:54 +08:00
Michael (XIAO Xufeng)
5cee2b34d6 Merge branch 'backport/v4.2/8_16bits_periph_access' into 'release/v4.2'
avoid generating 8/16 bits instructions for register accessing (backport v4.2)

See merge request espressif/esp-idf!15455
2021-10-13 17:55:09 +00:00
xiewenxiang
0dbd8701b5 component/bt: fix data length update failed 2021-10-13 19:43:47 +08:00
suda-morris
db956cdeca twai: update register struct file 2021-10-12 11:10:40 +08:00
SalimTerryLi
72bb572df1 hal: avoid generate 8/16 bits intruction for register access 2021-10-12 11:06:55 +08:00
Ivan Grokhotkov
5595042c16 Merge branch 'feature/windows_installer_moved_to_github_backport_4.2' into 'release/v4.2'
tools: Windows Installer project moved to github.com/espressif/idf-installer - backport v4.2

See merge request espressif/esp-idf!15475
2021-10-11 13:50:51 +00:00
Juraj Michálek
85427a8110 tools: remove dependency on Windows installer - backport 2021-10-11 12:26:55 +02:00
Roland Dobai
bf62154b18 Merge branch 'bugfix/constrain_cryptography_v4.2' into 'release/v4.2'
Tools: Constrain the cryptography package version in order to avoid breaking changes (v4.2)

See merge request espressif/esp-idf!15462
2021-10-11 07:19:10 +00:00
Mahavir Jain
1a50ddc2a3 Merge branch 'fix/update_https_example_root_certificate_v4.2' into 'release/v4.2'
Updated the root certificate of https examples (v4.2)

See merge request espressif/esp-idf!15438
2021-10-11 04:00:46 +00:00
Bao Hong De
600ef45abe Merge branch 'feature/sync_bt_lib_with_hli_v4.2' into 'release/v4.2'
components/bt: Sync bt lib with the high level interrupt version

See merge request espressif/esp-idf!15328
2021-10-11 03:15:09 +00:00
Roland Dobai
0f2d385a5a Tools: Constrain the cryptography package for avoiding breaking changes
The cryptography 35 release causes breaking changes. Some of
certificates are rendered invalid and the package cannot be build
without rust. See
https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst#3500---2021-09-29
for more details.
2021-10-10 19:26:11 +02:00
Mahavir Jain
8269fb23d7 Merge branch 'feature/github-7632_v4.2' into 'release/v4.2'
esp_crt_bundle: remove EC-ACC certificate (v4.2)

See merge request espressif/esp-idf!15435
2021-10-10 11:35:08 +00:00
baohongde
4a80c40c0c components/bt: Sync bt lib with the high level interrupt version 2021-10-08 14:17:49 +08:00
Harshit Malpani
9b0132387e Update example test for esp_http_client 2021-10-07 17:58:51 +05:30
Harshit Malpani
1aac3c64b5 Updated the root certificate of https examples 2021-10-07 17:54:06 +05:30
Victor Morales
b41f432262 esp_crt_bundle: remove EC-ACC certificate
Fixes bug #7631
2021-10-07 13:14:38 +05:30
Mahavir Jain
7caff8d13c Merge branch 'feature/upgrade_nghttp2_component_v4.2' into 'release/v4.2'
nghttp2: upgrade to v1.41.0 release (v4.2)

See merge request espressif/esp-idf!15343
2021-09-30 04:08:04 +00:00
Jiang Jiang Jian
fa6a77a5dc Merge branch 'cherry-pick-e8360fe0-3' into 'release/v4.2'
wpa_supplicant: clean tls client state machine (backport v4.2)

See merge request espressif/esp-idf!15039
2021-09-29 11:47:22 +00:00
Krzysztof Budzynski
8eca11af23 Merge branch 'docs/update_esp32-s2_devkit_user_guide_backport_v4.2' into 'release/v4.2'
Docs/Update two ESP32-S2 devkit user guides (backport v4.2)

See merge request espressif/esp-idf!15306
2021-09-29 07:26:21 +00:00
Roland Dobai
6f77c529ac Merge branch 'bugfix/idf_size_nan_in_json_v4.2' into 'release/v4.2'
Tools: fix appearing NaN value when calling idf_size.py --json (v4.2)

See merge request espressif/esp-idf!15353
2021-09-27 12:37:09 +00:00
Roland Dobai
4b469fb5e4 Merge branch 'bugfix/idf_tools_virtualenv_seeder_v4.2' into 'release/v4.2'
tools/idf_tools.py: Changed default AppData seeder to seeder pip (backport v4.2)

See merge request espressif/esp-idf!15350
2021-09-27 12:33:33 +00:00
Michael (XIAO Xufeng)
0e10bf11e3 Merge branch 'bugfix/uart_driver_obj_into_sram_v4.2' into 'release/v4.2'
uart: put driver object into sram(v4.2)

See merge request espressif/esp-idf!14753
2021-09-26 01:33:52 +00:00
Michael (XIAO Xufeng)
c00e51b11a Merge branch 'bugfix/wavegen_disable_iram_isr_backport4.2' into 'release/v4.2'
Bugfix/wavegen disable iram isr (backport v4.2)

See merge request espressif/esp-idf!15335
2021-09-26 01:21:10 +00:00
simon.chupin
df016b17f0 Tools: fix appearing NaN value when calling idf_size.py --json 2021-09-24 18:28:05 +02:00
Juraj Sadel
513c558f13 tools/idf_tools.py: Changed default AppData seeder to seeder pip 2021-09-24 15:00:04 +02:00
Mahavir Jain
385a299069 nghttp2: upgrade to v1.41.0 release
Detailed changelog:
https://github.com/nghttp2/nghttp2/releases/tag/v1.41.0

Closes: https://github.com/espressif/esp-idf/issues/4883
Closes IDFGH-2821
2021-09-24 17:47:02 +05:30
David Čermák
017b30bcee Merge branch 'bugfix/ping_iface_v4.2' into 'release/v4.2'
lw ip: Fix ICMP Ping on specific iface (GitHub PR) (v4.2)

See merge request espressif/esp-idf!15146
2021-09-24 06:54:42 +00:00
Krzysztof Budzynski
1ed132bf87 Merge branch 'docs/update_getStarted_CN_trans_V4.2' into 'release/v4.2'
docs: update CN translation for get-started V4.2

See merge request espressif/esp-idf!15308
2021-09-24 04:58:06 +00:00
SalimTerryLi
6d3bd3a48e bugfix by disabling IRAM attr on ISR 2021-09-24 11:00:26 +08:00
Zim Kalinowski
6501045d80 Merge branch 'feature/esp32c3_support_brownout_v4.2' into 'release/v4.2'
esp32c3: Adds support BROWNOUT reset (v4.2)

See merge request espressif/esp-idf!14963
2021-09-23 15:16:23 +00:00
Konstantin Kondrashov
f8e2eadc51 esp32c3: Adds support BROWNOUT reset (v4.2) 2021-09-23 23:16:16 +08:00
Jiang Jiang Jian
2453447940 Merge branch 'bugfix/stack_init_check_v4.2' into 'release/v4.2'
NimBLE: Check stack status before executing stack command

See merge request espressif/esp-idf!15026
2021-09-23 04:32:25 +00:00
Wang Meng Yang
41ff381a72 Merge branch 'feature/btdm_add_clear_white_list_API_v4.2' into 'release/v4.2'
component/bt: add clear white list API(backport v4.2)

See merge request espressif/esp-idf!15299
2021-09-23 03:21:46 +00:00
Wang Ning
d5eea66bbb docs/update_esp32-s2_devkit_user_guides 2021-09-22 19:12:28 +08:00
daiziyan
65540b991e docs: update CN translation and keep line number consistent for all documents in get-started section 2021-09-22 17:44:03 +08:00
zhiweijian
cc8ef6b8d2 component/bt: add clear white list API 2021-09-22 15:59:45 +08:00
morris
9b6d4c4015 uart: support alloc driver object in SRAM
If CONFIG_UART_ISR_IN_IRAM is on, which means user hope the uart
interrupt can still be serviced even when cache is diabled (e.g.
writing to flash). In that case, the driver should make sure to
put the all related objects into SRAM, avoid putting them in the PSRAM.

Closes https://github.com/espressif/esp-idf/issues/7044
Closes https://github.com/espressif/esp-idf/pull/7355
2021-09-22 12:01:04 +08:00
morris
5253a6c916 uart: format driver code by astyle 2021-09-22 12:01:04 +08:00
Mahavir Jain
61d5e5a93e Merge branch 'bugfix/http_client_eagain_v4.2' into 'release/v4.2'
esp_http_client: Fixed handling of EAGAIN return (backport v4.2)

See merge request espressif/esp-idf!15274
2021-09-21 11:50:56 +00:00
Vikram Dattu
718d2e5f19 esp_http_client: Fixed handling of EAGAIN return
For https connection `ESP_TLS_ERR_SSL_WANT_READ` of esp_transport_read was getting treated as error.
Treated this as a timeout to fix connection abort issue!

Also handled http connection EAGAIN with `errno == EAGAIN` check.

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-09-20 17:49:11 +05:30
Mahavir Jain
295624d5a3 Merge branch 'fix/esp_mbedtls_write_api_v4.2' into 'release/v4.2'
Fix esp_mbedtls_write API (v4.2)

See merge request espressif/esp-idf!15215
2021-09-20 11:34:23 +00:00
Roland Dobai
4ccfbf5138 Merge branch 'feature/gcov_dump_in_thread_v4.2' into 'release/v4.2'
backport/gcov dump in thread to v4.2

See merge request espressif/esp-idf!15207
2021-09-20 09:37:20 +00:00
Mahavir Jain
0dea76b299 Merge branch 'docs/flash_enc_only_s2_v4.2' into 'release/v4.2'
docs: fix S2 specific flash encryption cmds in ESP32 docs

See merge request espressif/esp-idf!15139
2021-09-16 14:31:38 +00:00
wuzhenghui
1d63988db2 fix s2 efuse err address in block0 2021-09-16 20:16:52 +08:00
Marius Vikhammer
33663461c0 docs: fix S2 specific flash encryption cmds in ESP32 docs
Closes https://github.com/espressif/esp-idf/issues/7537
2021-09-16 19:39:16 +08:00
Aditya Patwardhan
a0b107fe3d Fix esp_mbedtls_write API
Fix esp_wolfssl_write API
Closes https://github.com/espressif/esp-idf/issues/7461
2021-09-16 09:02:34 +05:30
Erhan Kurubas
e4fdf07acb esp_ipc: fix race condition in ipc task 2021-09-15 22:57:02 +03:00
Erhan Kurubas
e662d90e9f gcov: enable single core tests 2021-09-15 22:57:02 +03:00
Erhan Kurubas
dc25973825 ipc: enable ipc task at single core for gcov dump 2021-09-15 22:57:02 +03:00
Erhan Kurubas
5ad1e020ce gcov: add stub table size entry 2021-09-15 22:57:02 +03:00
Erhan Kurubas
886ea8d33b gcov: add gcov callback into the ipc task 2021-09-15 22:57:02 +03:00
Erhan Kurubas
d63ff8cb7a gcov: readme update for ESP32-S2 2021-09-15 22:57:02 +03:00
Erhan Kurubas
67fc5183dc gcov: dump in a special thread 2021-09-15 22:57:02 +03:00
Erhan Kurubas
e43fedb3f4 gcov: added dbg stub capabilites and magic number entry to keep backward compatible 2021-09-15 22:57:02 +03:00
Krzysztof Budzynski
87e9a54f63 Merge branch 'docs/fix_adc_pad_typo_MOSI_typo_and_broken_link_v4.2' into 'release/v4.2'
Fix ADC pad and MOSI typo, update esp32c3 rom elf link (v4.2)

See merge request espressif/esp-idf!15188
2021-09-14 08:46:26 +00:00
Wang Fang
9814e9afd7 docs: Fix ADC pad and MOSI typo, update esp32c3 rom elf link 2021-09-14 11:28:58 +08:00
morris
78ff78c789 Merge branch 'bugfix/config_data_interface_early_v4.2' into 'release/v4.2'
initialize data interface early (v4.2)

See merge request espressif/esp-idf!15090
2021-09-09 08:45:54 +00:00
Roland Dobai
4f319f26f9 Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20210902' (v4.2)

See merge request espressif/esp-idf!15133
2021-09-09 07:40:43 +00:00
ivmarkov
4b8492d46f lwip: Fix ICMP Ping on specific iface
Fix broken parentheses in setsockopt call

Merges https://github.com/espressif/esp-idf/pull/7397
2021-09-09 07:43:00 +02:00
He Yin Ling
4e6c12bf30 Merge branch 'bugfix/switch_icmp_unit_test_from_baidu_to_taobao_v4.2' into 'release/v4.2'
unit_test: increase icmp unit test timeout configuration (v4.2)

See merge request espressif/esp-idf!14937
2021-09-09 01:38:00 +00:00
Roland Dobai
ae21087d7e CI: Fix idf_tools.py tests with the updated openocd version 2021-09-08 21:01:22 +03:00
Roland Dobai
35bdf4bee8 CI: Check the number of detected cores of apptrace 2021-09-08 21:00:14 +03:00
Alexey Gerenkov
046626de9a tools: Updates OpenOCD version to 'v0.10.0-esp32-20210902' 2021-09-08 20:56:25 +03:00
Roland Dobai
6f4d973f13 Merge branch 'bugfix/idf_size_wrong_memory_calculations_v4.2' into 'release/v4.2'
Tools: Fix memory calculations of idf_size.py (v4.2)

See merge request espressif/esp-idf!14934
2021-09-08 11:51:17 +00:00
Roland Dobai
d221750223 Merge branch 'feature/installing_tools_for_IDF_TARGET_v4.2' into 'release/v4.2'
tools: Installing tools for given IDF_TARGET (v4.2)

See merge request espressif/esp-idf!14709
2021-09-08 10:31:39 +00:00
Wang Meng Yang
a5984fd939 Merge branch 'bugfix/controller_hci_uart_sdkconfig_v4.2' into 'release/v4.2'
controller_hci_uart: fixed the sdkconfig.defaults in the example(backport v4.2)

See merge request espressif/esp-idf!14808
2021-09-08 06:05:52 +00:00
Wang Meng Yang
f9632200fb Merge branch 'bugfix/hf_disc_acl_no_disc_v4.2' into 'release/v4.2'
bugfix/acl can't disconnect when hfp_client disconnect [release/v4.2]

See merge request espressif/esp-idf!15057
2021-09-07 10:13:57 +00:00
Mahavir Jain
afc74ae36a Merge branch 'bugfix/fix_ws_handle_big_messages_v4.2' into 'release/v4.2'
esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly(backport v4.2)

See merge request espressif/esp-idf!15014
2021-09-07 08:21:40 +00:00
Mahavir Jain
3ca7a2220f Merge branch 'feature/update_expat_v4.2' into 'release/v4.2'
expat: Update library from 2.2.9 to 2.4.1(backport v4.2)

See merge request espressif/esp-idf!15068
2021-09-07 08:18:13 +00:00
Liu Han
be4b8e547a expat: Update library from 2.2.9 to 2.4.1 2021-09-06 19:59:55 +08:00
morris
2e0f907656 eth: dont warn nego timeout if link is down 2021-09-06 18:45:15 +08:00
morris
83018bf05f emac: configure data interface early 2021-09-06 18:44:37 +08:00
Wang Meng Yang
d933aba6a1 Merge branch 'bugfix/bt_spp_timer_collision_v4.2' into 'release/v4.2'
fix timer collision in role switch(v4.2)

See merge request espressif/esp-idf!14819
2021-09-06 08:23:26 +00:00
Mahavir Jain
8dcf216034 Merge branch 'feature/update_cjson_submodule_v4.2' into 'release/v4.2'
cJSON: Update submodule to v1.7.15 (v4.2)

See merge request espressif/esp-idf!15075
2021-09-06 06:37:52 +00:00
Omar Chebib
f65845ef51 Merge branch 'bugfix/add_critical_section_in_uart_driver_v4.2' into 'release/v4.2'
UART: add missing critical section wrappers around rx_buffered_len (backport v4.2)

See merge request espressif/esp-idf!14775
2021-09-06 02:26:17 +00:00
jincheng
6da584270c fix timer collision in role switch
Closes https://github.com/espressif/esp-idf/issues/7203
2021-09-06 10:15:10 +08:00
Shubham Kulkarni
87a4f82d73 cJSON: Update submodule to latest release.
This update fixes NULL pointer dereference issues in previous release

Closes https://github.com/espressif/esp-idf/issues/7317
2021-09-06 07:42:32 +05:30
Omar Chebib
60ce887308 uart: cleaner way of handling error in a critical section
Some critical sections have also been added, making the code more
symetric accross the similar functions.

Closes https://github.com/espressif/esp-idf/pull/6396
2021-09-03 15:20:33 +08:00
Luca Burelli
3691fb9f48 uart: Add missing critical section wrappers around rx_buffered_len
The missing barriers caused uart_get_buffered_data_len() to (very rarely)
return a garbage value. When used in MicroPython, though, this caused
select() to return and a subsequent read() to stall indefinitely until
a char was actually available.

Signed-off-by: Chen Yi Qun <chenyiqun@espressif.com>

Closes https://github.com/espressif/esp-idf/issues/6397
Merges https://github.com/espressif/esp-idf/pull/6396
2021-09-03 15:20:33 +08:00
jincheng
1dcde9c74f fix acl can not disconnect when hf_client disconnect 2021-09-03 10:58:55 +08:00
Wang Meng Yang
b132b61181 Merge branch 'bugfix/btdm_fix_some_Document_Description_Error_v4.2' into 'release/v4.2'
component/bt: fix some ble document description error(backport v4.2)

See merge request espressif/esp-idf!14824
2021-09-03 01:40:16 +00:00
simon.chupin
8de953e7b9 Tools: Fix memory calculations of idf_size.py 2021-09-01 16:33:42 +02:00
XieWenxiang
7ea602838f component/bt: fix some ble document description error 2021-09-01 20:44:20 +08:00
Kapil Gupta
80a4d20462 Merge branch 'bugfix/eap_client_windows' into 'master'
wpa_supplicant: clean tls client state machine

Closes IDFGH-5702, IDFGH-5662, and IDFGH-119

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

See merge request espressif/esp-idf!14968

(cherry picked from commit e8360fe075)

d3a42d78 wpa_supplicant: clean tls client state machine
2021-09-01 19:16:31 +08:00
Rahul Tank
c7320b2d1d NimBLE: Check stack status before executing stack command 2021-08-31 18:30:06 +05:30
Alberto García Hierro
e2c35ca35b Enable IO20 on ESP32
Some newer ESP32 variants (like ESP32-PICO-V3 and ESP32-PICO-MINI-02)
do implement this pin and it can be used as a normal GPIO.

Fixes #6016
Fixes #6837

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

(cherry picked from commit 6deaefde69)
2021-08-31 20:33:13 +08:00
yuanjm
420aedbe3d esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly.
Closes https://github.com/espressif/esp-idf/issues/7457
2021-08-31 14:23:10 +08:00
yuanjm
f6d2932953 Revert "Merge branch 'bugfix/fix_ws_handle_big_messages_error_v4.2' into 'release/v4.2'"
This reverts commit 5ca91eb54e, reversing
changes made to 192d42c8b8.
2021-08-31 14:12:24 +08:00
Michael (XIAO Xufeng)
cf457bce0d idf_size.py: fixed diram counted twice issue, and improve display
Currently static RAM usage are listed under corresponding physical
memory.

ld: fix linker script for C3 and S3
2021-08-27 18:32:33 +02:00
Ondrej Kosta
436517fb7f Merge branch 'docfix/eth_events_4.2' into 'release/v4.2'
Added warning when to init user Eth handlers (release/v4.2)

See merge request espressif/esp-idf!14952
2021-08-27 09:15:40 +00:00
Mahavir Jain
df213946c6 Merge branch 'fixes/secure_boot_v4.2' into 'release/v4.2'
secure_boot/esp32s2: Disable read protecting of efuses (v4.2)

See merge request espressif/esp-idf!14961
2021-08-26 10:11:26 +00:00
Sachin Parekh
527e5abae0 secure_boot/esp32s2: Disable read protecting of efuses
When secure boot is enabled, disable the ability to read protect
efuses that contain the digest.
2021-08-26 12:05:39 +05:30
Ondrej Kosta
933567d440 Added warning when to init user Eth handlers 2021-08-25 11:27:05 +02:00
morris
bfa51a9a68 unit_test: switch icmp test server to taobao 2021-08-25 08:34:14 +02:00
Zim Kalinowski
e5da87933c Merge branch 'bugfix/fix_deep_sleep_miss_bug_mr_v4.2' into 'release/v4.2'
Fix controller may miss the sleep time

See merge request espressif/esp-idf!14738
2021-08-24 08:01:10 +00:00
David Čermák
6bb35ddf85 Merge branch 'bugfix/fix_ping_sock_return_error_v4.2' into 'release/v4.2'
ping_sock: Fix esp_ping_new_session may return ESP_OK when the error occured(backport v4.2)

See merge request espressif/esp-idf!14846
2021-08-23 06:30:54 +00:00
Wang Meng Yang
94cdecde30 Merge branch 'component_bt/add_spp_faq_v4.2' into 'release/v4.2'
Component_bt/Add FAQ in SPP Demo README[backport v4.2]

See merge request espressif/esp-idf!14797
2021-08-23 05:16:29 +00:00
Wang Ning
78a08714ba Merge branch 'docs/add_ESP32-S2-DevKitC-1_user_guide_backport_v4.2' into 'release/v4.2'
Docs: Add ESP32-S2-DevKitC-1 user guide (backport v4.2)

See merge request espressif/esp-idf!14876
2021-08-20 08:27:35 +00:00
Wang Ning
d81bd941ff docs/add_esp32-s2-devkitc-1_user_guide 2021-08-20 14:16:31 +08:00
Jiang Jiang Jian
7c3acadabe Merge branch 'bugfix/spp_memory_leak_v4.2' into 'release/v4.2'
Fix spp memory leak(v4.2)

See merge request espressif/esp-idf!14861
2021-08-20 02:50:19 +00:00
xiongweichao
5abc5f6748 components/bt: fix spp memory leak
Closes https://github.com/espressif/esp-idf/issues/7238
2021-08-19 14:35:53 +08:00
Zim Kalinowski
f075275cd1 Merge branch 'feature/update_efuses_for_esp32s2_v4.2' into 'release/v4.2'
efuse(esp32s2): Added flash_ver, psram_ver, pkg_ver efuses (v4.2)

See merge request espressif/esp-idf!14771
2021-08-19 06:28:50 +00:00
Mahavir Jain
48c9f47247 Merge branch 'fix/warning_in_wifi_prov_mgr_v4.2' into 'release/v4.2'
provisioning: fix wifi warning in wifi_prov_mgr application (v4.2)

See merge request espressif/esp-idf!14764
2021-08-19 04:09:18 +00:00
David Čermák
16be7d056d Merge branch 'bugfix/cmake_compiler_warn_write_string_v4.2' into 'release/v4.2'
Build: Fix CMake to pass -Wwrite-string compiler flag if enabled (v4.2)

See merge request espressif/esp-idf!14427
2021-08-18 16:02:28 +00:00
Island
2b2c1f5e65 Merge branch 'bugfix/ble_mesh_cve_recommendation_v4.2' into 'release/v4.2'
ble_mesh: Update the SIG recommendations for CVE issues (v4.2)

See merge request espressif/esp-idf!14842
2021-08-18 12:41:17 +00:00
David Cermak
1c59050209 panic/memprot: Fix minor const string correction on panic print 2021-08-18 19:29:32 +08:00
David Cermak
9b23491339 wpa_supplicant: Temporarily disable write-string warning
Since some assignment of a string literal to `char *` variables were
added and not caught by the CI.
2021-08-18 19:29:32 +08:00
David Cermak
fcf1419626 Build: Fix CMake to pass -Wwrite-string compiler flag if enabled 2021-08-18 19:29:32 +08:00
Harshit Malpani
d96dd2c002 provisioning: fix wifi warning in wifi_prov_mgr application
Scan configuration parameters should not modify in co-existence mode.
2021-08-18 18:34:46 +08:00
Zim Kalinowski
e3df8293a9 Merge branch 'bugfix/remove_bt_get_mac_v4.2' into 'release/v4.2'
bt: Remove unused function esp_bt_get_mac. (v4.2)

See merge request espressif/esp-idf!14836
2021-08-18 05:05:07 +00:00
Mahavir Jain
e821df501e Merge branch 'bugfix/libsodium_build_with_gnu_make_v4.2' into 'release/v4.2'
libsodium: fix build issues with GNU Make (v4.2)

See merge request espressif/esp-idf!14759
2021-08-18 04:38:31 +00:00
yuanjm
04be80124c ping_sock: Fix esp_ping_new_session may return ESP_OK when the error occured
Closes https://github.com/espressif/esp-idf/issues/7363
2021-08-18 11:53:09 +08:00
lly
06196f347a ble_mesh: Update the SIG recommendations for CVE issues 2021-08-18 10:58:18 +08:00
He Yin Ling
fce11704f0 Merge branch 'test/update_ble_mesh_console_files_for4.2' into 'release/v4.2'
test: fix ble mesh send problem (v4.2)

See merge request espressif/esp-idf!14274
2021-08-18 02:20:40 +00:00
Chinmay Chhajed
afe3f26fca bt: Remove unused function esp_bt_get_mac. 2021-08-17 18:53:05 +05:30
liqigan
cda9fc98e7 add FAQ in SPP demo README 2021-08-17 15:17:31 +08:00
Mahavir Jain
1472bf8780 libsodium: fix source directory names to address build issues with Make 2021-08-17 11:10:34 +05:30
Wang Meng Yang
bb0dbab859 Merge branch 'bugfix/btdm_auto_update_PPCP_attribute_value_v4.2' into 'release/v4.2'
component/bt: fix bluedroid host auto update PPCP attribute value(backport v4.2)

See merge request espressif/esp-idf!14749
2021-08-17 02:08:01 +00:00
Kelvie Wong
ace5ba77f4 Fix install.fish
install.fish script didn't catch error exit code from idf_tools.py. Now it does.

Signed-off-by: Marek Fiala <marek.fiala@espressif.com>

Closes: https://github.com/espressif/esp-idf/pull/7325
2021-08-16 16:27:35 +02:00
Marek Fiala
8b31c7d576 tools: Installing tools for given IDF_TARGET
Allow user to select specific ESP_TARGET while setting up ESD_IDF.
Only necessary tools for given target will be downloaded and installed.

Closes https://github.com/espressif/esp-idf/issues/5113
2021-08-16 16:27:35 +02:00
wangmengyang
cbfbc705eb controller_hci_uart: fixed the sdkconfig.defaults in the example 2021-08-16 16:56:10 +08:00
Anton Maklakov
cb9391a1cc Merge branch 'ci/change_perf_key_v4.2' into 'release/v4.2'
ci: update performance test key to db compatible format (v4.2)

See merge request espressif/esp-idf!14655
2021-08-16 06:13:21 +00:00
KonstantinKondrashov
6f0ad5662a efuse(esp32s2): Added flash_ver, psram_ver, pkg_ver efuses 2021-08-12 18:45:45 +05:00
XieWenxiang
921ec124ee component/bt: fix bluedroid host auto update PPCP attribute value 2021-08-11 18:04:53 +08:00
Yang Zhao
33f2bcec4c The controller may miss the sleep time caculated before. So it will stuck
in the loop to get the deep sleep HW flag. Then the watchdog issue happen.
2021-08-11 14:23:16 +08:00
Michael (XIAO Xufeng)
de7fd4e93e Merge branch 'bugfix/spi_master_crash_cache_disabled_v4.2' into 'release/v4.2'
spi_master: fix the crash when using interrupt mode when cache is disabled (v4.2)

See merge request espressif/esp-idf!14682
2021-08-10 02:39:39 +00:00
Zim Kalinowski
059a3fa1be Merge branch 'feature/skip_known_failure_cases_v4.2' into 'release/v4.2'
CI: Ignore Known Failure Cases Result (v4.2)

See merge request espressif/esp-idf!14649
2021-08-10 02:23:31 +00:00
Fu Hanxi
7089f62dab feat(tiny_test_fw): ignore known failure cases result
py
2021-08-10 10:23:26 +08:00
Mahavir Jain
e1d33a7fa1 Merge branch 'bugfix/xtensa_extra_info_register_values_v4.2' into 'release/v4.2'
espcoredump.py: Parse EPS and EPC register values using register index (v4.2)

See merge request espressif/esp-idf!14565
2021-08-06 05:10:33 +00:00
Michael (XIAO Xufeng)
d91d6945d7 spi_master: fix the crash when using interrupt mode when cache is disabled
Closes https://github.com/espressif/esp-idf/issues/6529
Closes https://github.com/espressif/esp-idf/issues/6781
Closes https://github.com/espressif/esp-idf/issues/7368
2021-08-06 12:22:15 +08:00
Yuan Hong Hui
e1af4a398b update ble mesh console files 2021-08-05 17:52:28 +08:00
Zim Kalinowski
45330303d6 Merge branch 'bugfix/freertos_ut_suspend_v4.2' into 'release/v4.2'
freertos: Increases delta for UT - Test suspend-resume CPU. The number of... (v4.2)

See merge request espressif/esp-idf!14631
2021-08-05 05:13:24 +00:00
Fu Hanxi
6b95f3bddd ci: update performance test key to db compatible format 2021-08-04 12:28:42 +08:00
Zim Kalinowski
57eeeef433 Merge branch 'feature/change_factory_reset_pin_range_v4.2' into 'release/v4.2'
bootloader: Change range of the factory reset pin in Kconfig for ESP32-S2 (v4.2)

See merge request espressif/esp-idf!14638
2021-08-03 14:24:14 +00:00
KonstantinKondrashov
5893641482 freertos: Increases delta for UT - Test suspend-resume CPU. The number of tick_hook should be the same for both CPUs 2021-08-03 16:07:03 +05:00
KonstantinKondrashov
f5897efa4f bootloader: Change range of the factory reset pin in Kconfig
Closes: https://github.com/espressif/esp-idf/issues/5489
2021-08-03 14:40:29 +05:00
Zim Kalinowski
a9a917b8d7 Merge branch 'doc/fix_secure_boot_v4.2' into 'release/v4.2'
doc/secure_boot_v2: Fix the steps mentioned for enabling secure boot (v4.2)

See merge request espressif/esp-idf!14589
2021-08-03 07:47:09 +00:00
Zim Kalinowski
f9af4a66f0 Merge branch 'bugfix/uart_sw_sw_flow_error_typo_v4.2' into 'release/v4.2'
uart: fix typo in error message (v4.2)

See merge request espressif/esp-idf!14614
2021-08-03 02:42:46 +00:00
Marius Vikhammer
2f02863fff uart: fix typo in error message
Closes https://github.com/espressif/esp-idf/issues/7360
2021-08-03 09:28:39 +08:00
Jiang Jiang Jian
f4a2c5b520 Merge branch 'mesh/bugfix_fix_esp_mesh_send_block_issue_v4.2' into 'release/v4.2'
mesh/ps: esp_mesh_send is blocked in nodes(layer>=3), when a FIXED-ROOT root is duty master(backport_v4.2)

See merge request espressif/esp-idf!14086
2021-07-31 02:52:26 +00:00
Sachin Parekh
8a516aadae doc/secure_boot_v2: Fix the steps mentioned for enabling secure boot 2021-07-30 19:50:37 +05:30
David Čermák
4dc431b87b Merge branch 'bugfix/fix_eth2ap_example_crash_v4.2' into 'release/v4.2'
eth2ap: Fix eth2ap example crash issue (backport v4.2)

See merge request espressif/esp-idf!14561
2021-07-30 05:14:25 +00:00
Shubham Patil
c06d8f8521 espcoredump.py: Parse EPS and EPC register values using register index 2021-07-29 10:46:02 +05:30
yuanjm
d0d7fbf6b1 eth2ap: Fix eth2ap example crash issue
Closes https://github.com/espressif/esp-idf/issues/7260
2021-07-29 11:12:40 +08:00
aleks
68e7ecec67 freemodbus: add affinity option for modbus stack tasks 2021-07-28 08:46:52 +02:00
Zim Kalinowski
764f0db002 Merge branch 'bugfix/freemodbus_change_max_task_prio_v42' into 'release/v4.2'
Bugfix/freemodbus change max task prio (backport v4.2)

See merge request espressif/esp-idf!13731
2021-07-27 21:19:14 +00:00
Vikram
2b42d78a3f Merge branch 'bugfix/smtp_client_attachment_newline_v4.2' into 'release/v4.2'
Add newline separator to fix wrong attachment sent (v4.2)

See merge request espressif/esp-idf!13729
2021-07-27 16:12:59 +00:00
Zim Kalinowski
87e9908506 Merge branch 'bugfix/fix_supplicant_log_v4.2' into 'release/v4.2'
wpa_supplicant: Fix compilation when debug prints are enabled

See merge request espressif/esp-idf!14227
2021-07-27 12:04:50 +00:00
Zim Kalinowski
bc8d2ebcbf Merge branch 'bugfix/wps_wfa_cert_fixes_v4.2' into 'release/v4.2'
wpa_supplicant: Add WPS strict in config option(backport v4.2)

See merge request espressif/esp-idf!14230
2021-07-27 10:44:12 +00:00
Zim Kalinowski
4a12179e0c Merge branch 'bugfix/ttfw_fix_flush_index_error_v4.2' into 'release/v4.2'
test: TTFW fix flush index error (v4.2)

See merge request espressif/esp-idf!14261
2021-07-27 10:44:00 +00:00
Anton Maklakov
def7fd7611 Merge branch 'feature/idf_tools_darwin_arm64_v4.2' into 'release/v4.2'
tools: idf_tools.py: allow macOS x86_64 tools to be installed on arm64 (v4.2)

See merge request espressif/esp-idf!14072
2021-07-27 08:16:21 +00:00
Michael (XIAO Xufeng)
b2be91d98b Merge branch 'feature/regi2c_add_lock_v4.2' into 'release/v4.2'
regi2c: add a spinlock for accessing (reg)I2C devices (backport v4.2)

See merge request espressif/esp-idf!13713
2021-07-27 07:32:35 +00:00
David Čermák
0d0d31bcf3 Merge branch 'bugfix/esp_netif_dhcps_state_v4.2' into 'release/v4.2'
esp_netif: Fix dhcps state transitions (v4.2)

See merge request espressif/esp-idf!14424
2021-07-27 07:23:45 +00:00
Krzysztof Budzynski
325eee68e4 Merge branch 'enhance/update-vscode-setup-docs-v4.2' into 'release/v4.2'
docs: Fix vscode extension setup links (backport v4.2)

See merge request espressif/esp-idf!13323
2021-07-27 03:53:42 +00:00
Brian Alberto Ignacio Reyes
728f3eab6c docs: Fix vscode extension setup links (backport v4.2) 2021-07-27 11:53:38 +08:00
Zim Kalinowski
60e4bfae90 Merge branch 'bugfix/fatfs_alloc_extram_first_v4.2' into 'release/v4.2'
fatfs: fix SPIRAM allocation not used due to Kconfig option name error (v4.2)

See merge request espressif/esp-idf!14049
2021-07-26 07:59:16 +00:00
Zim Kalinowski
5c82ebce35 Merge branch 'bugfix/fix_esp32s2_deep_sleep_timer_wake_up_fail_backport_v4.2' into 'release/v4.2'
rtc: fix esp32s2 fall into sleep forever when deep-sleep time is set to 0(backport v4.2)

See merge request espressif/esp-idf!13562
2021-07-26 07:39:16 +00:00
Zim Kalinowski
6fba03f681 Merge branch 'fix/memory_leaks_identified_by_cppcheck_v4.2' into 'release/v4.2'
Fix/memory leaks identified by cppcheck (v4.2)

See merge request espressif/esp-idf!14502
2021-07-26 06:43:27 +00:00
Aditya Patwardhan
e5b4d5f348 Fix memory leak on error path in register_select
And remove dead error handling code from unregister_select.

Closes https://github.com/espressif/esp-idf/pull/7296
2021-07-26 14:43:21 +08:00
Ivan Grokhotkov
f39dc35d92 tools: idf_tools.py: allow macOS x86_64 tools to be installed on arm64
Until arm64 tool binaries are available, we can run existing x86_64
ones under emulation.

Suggested in https://github.com/espressif/esp-idf/issues/6113.
2021-07-26 14:35:47 +08:00
Zim Kalinowski
e9198247a0 Merge branch 'bugfix/ci_fix_test_build_system_cmake_v4.2' into 'release/v4.2'
ci: Fix concurrency issues for macOS build system tests (v4.2)

See merge request espressif/esp-idf!14400
2021-07-26 06:30:25 +00:00
shenjun
416dc98ed8 mesh/ps: esp_mesh_send is blocked in nodes(layer>=3), when a FIXED-ROOT root is duty master 2021-07-26 14:14:08 +08:00
He Yin Ling
15b8981f48 ttfw: fix incorrect length when flush data cache after expect:
data cache is unicode. while we use bytes in RegEx expect. The index of
matched pattern is calculated with bytes, could be different from
unicode. Now we fix this issue by using unicode in expect.
2021-07-26 11:30:35 +08:00
Vikram Dattu
458dbaf0f1 Fixed content type of attachment
Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-07-26 10:15:47 +08:00
Vikram Dattu
81de14b505 Add newline separator to fix wrong attachment sent
Issue:

Missing newline between header and attachment

Issue seen with email clients viz., AppleMail and YahooMail. Attachment is not renderable.
Some clients like Google mail, Samsung mail tolerate the issue.

Fix:
Added newline between header and attachment.

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

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-07-26 10:15:47 +08:00
Zim Kalinowski
0832580661 Merge branch 'bugfix/spp_connect_20_fail_v4.2' into 'release/v4.2'
component_bt: fix spp acceptor deadlock

See merge request espressif/esp-idf!14106
2021-07-26 01:43:06 +00:00
Ivan Grokhotkov
cc366cc3c7 fatfs: fix SPIRAM allocation not used due to Kconfig option name error
Closes https://github.com/espressif/esp-idf/issues/5756
2021-07-26 09:40:39 +08:00
aditi_lonkar
6f016def84 wpa_supplicant: Fix compilation when debug prints are enabled. 2021-07-26 09:38:21 +08:00
aditi_lonkar
71b9121c7d wpa_supplicant: Add WPS strict in config option
WPS strict disables workarounds with different APs and may cause
IOT issues. Remove this as default and introduce as a config option.

Also declare esp device as single band mobile device otherwise
WFA sniffer was not able to identify it in the certification setup.
2021-07-26 09:37:28 +08:00
David Cermak
2b65b82bd6 esp_netif: Fix dhcps state transitions
When the DHCP server is stopped before starting the netif,
it should remain stopped -- as per compatibility with previous tcpip_adapter behavior
2021-07-26 09:33:32 +08:00
Sergei Silnov
d18793f695 ci: Fix concurrency issues for macos buildsystem tests 2021-07-26 09:07:17 +08:00
Zim Kalinowski
ac5443b68a Merge branch 'doc/power_management_esp32s2_v4.2' into 'release/v4.2'
docs: describe power management logic for ESP32-S2, fix translation (v4.2)

See merge request espressif/esp-idf!14048
2021-07-26 00:49:30 +00:00
aleks
ea101ecb38 freemodbus: increase max priority of modbus tasks
allows to avoid issues with modbus processing when higher priority tasks are used in user application
2021-07-26 08:46:25 +08:00
Omar Chebib
d7687ce6fa regi2c: add a spinlock for accessing (reg)I2C devices
When not compiling bootloader, a spinlock will be used for reading or writing
I2C internal devices/registers.
When compiling for bootloader, no need to use any lock.
2021-07-26 06:46:21 +08:00
David Čermák
ec196ae74b Merge branch 'bugfix/ci_move_udp_socket_tests_to_eth_runners_v4.2' into 'release/v4.2'
CI: Adjust UDP socket tests to be more reliable (v4.2)

See merge request espressif/esp-idf!14421
2021-07-23 15:01:46 +00:00
Krzysztof Budzynski
473194039d Merge branch 'docs/fix_UART_default_pin_error_and_provide_a_link_to_ESP_PROG_v4.2' into 'release/v4.2'
docs: fix uart default pin error and provide more information about ESP-Prog board (v4.2)

See merge request espressif/esp-idf!13969
2021-07-23 11:18:55 +00:00
Wang Meng Yang
12ce70a583 Merge branch 'bugfix/a2dp_deint_crash_v4.2' into 'release/v4.2'
component_bt: fix a2dp deinit crash(v4.2)

See merge request espressif/esp-idf!14418
2021-07-23 07:26:22 +00:00
Jakob Hasse
7f2da36c33 Merge branch 'bugfix/setjmp_longjmp_4.2' into 'release/v4.2'
[system]: Made longjmp save for context switch (backport v4.2)

See merge request espressif/esp-idf!13501
2021-07-23 03:52:55 +00:00
Zim Kalinowski
9e9efc4d92 Merge branch 'bugfix/fix_idf_monitor_unicode_path_crash_v4.2' into 'release/v4.2'
tools: handle exception in case of logging Unicode characters (v4.2)

See merge request espressif/esp-idf!13042
2021-07-23 01:09:44 +00:00
Roland Dobai
ea2b6898fb Merge branch 'feature/gcov_extest_improvements_v4.2' into 'release/v4.2'
Follow-up improvements for the gcov example test (v4.2)

See merge request espressif/esp-idf!14463
2021-07-22 19:11:52 +00:00
Roland Dobai
b717a0d3e1 Follow-up improvements for the gcov example test 2021-07-22 15:23:27 +02:00
Roland Dobai
c0ad291dc4 Merge branch 'ci/rename_test_log_path_v4.2' into 'release/v4.2'
CI: rename log path of IT jobs (v4.2)

See merge request espressif/esp-idf!14453
2021-07-22 13:21:14 +00:00
Zim Kalinowski
1bd6c102a4 Merge branch 'docs/fix_readme_links_v4.2' into 'release/v4.2'
docs: fixed dead readme links (v4.2)

See merge request espressif/esp-idf!14465
2021-07-22 02:44:44 +00:00
Marius Vikhammer
bcb1086410 docs: fixed dead readme link 2021-07-21 17:35:47 +08:00
Zim Kalinowski
4722c36926 Merge branch 'feature/upgrade_mbedtls_to_v4.2' into 'release/v4.2'
mbedtls: upgrade to release v2.16.11 (v4.2)

See merge request espressif/esp-idf!14438
2021-07-21 06:55:14 +00:00
Mahavir Jain
754e742344 mbedtls: upgrade to release v2.16.11
For detailed release notes please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.11
2021-07-21 14:55:09 +08:00
Zim Kalinowski
39a8dc30ea Merge branch 'bugfix/esp_event_any_id_unregister_4.2' into 'release/v4.2'
ESP Event: fix unregister documentation (backport 4.2)

See merge request espressif/esp-idf!14436
2021-07-21 04:07:34 +00:00
Zim Kalinowski
9f3cf98d4e Merge branch 'bugfix/fix_scan_timeout_mr_4.2' into 'release/v4.2'
Fix the scan timeout report

See merge request espressif/esp-idf!14446
2021-07-21 04:00:40 +00:00
He Yin Ling
59d0da0b33 CI: rename log path of IT jobs 2021-07-21 10:24:52 +08:00
Jakob Hasse
aabdb2c7a1 [system]: Made longjmp save for context switch
* Patched longjmp to be context-switch safe
  longjmp modifies the windowbase and windowstart
  registers, which isn't safe if a context switch
  occurs during the modification. After a context
  switch, windowstart and windowbase will be
  different, leading to a wrongly set windowstart
  bit due to longjmp writing it based on the
  windowbase before the context switch. This
  corrupts the registers at the next window
  overflow reaching that wrongly set bit.

  The solution is to disable interrupts during
  this code. It is only 6 instructions long,
  the impact shouldn't be significant.

  The fix is implemented as a wrapper which
  replaces the original first instructions of
  longjmp which are buggy. Then, it jumps back
  to execute the rest of the original longjmp
  function.

  Added a comparably reliable test to the
  test apps.
2021-07-21 09:48:48 +08:00
Yang Zhao
0fe0bea65a This is to fix the hardware bug. The device may report scan event
timeout when scaning.If check this error,then reset the rwble core.
2021-07-20 20:37:08 +08:00
Shubham Kulkarni
88b3e0d8d8 Merge branch 'bugfix/fix_truncated_headers_for_esp_http_client_v4.2' into 'release/v4.2'
esp_http_client: Fix header truncated when responded header length over buffer_size (backport v4.2)

See merge request espressif/esp-idf!14384
2021-07-20 12:17:11 +00:00
Yuan Jian Min
5ca91eb54e Merge branch 'bugfix/fix_ws_handle_big_messages_error_v4.2' into 'release/v4.2'
esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly(backport v4.2).

See merge request espressif/esp-idf!14345
2021-07-20 11:55:08 +00:00
Hrishikesh Dhayagude
192d42c8b8 Merge branch 'feature/protocomm_mfg_data_v4.2' into 'release/v4.2'
Provisioning BLE: Add API to set manufacturer data in advertisement (scan response) packets (v4.2)

See merge request espressif/esp-idf!14367
2021-07-20 10:50:21 +00:00
Jakob Hasse
d3ffdc79fd [esp_event]: fixed and improved docs
* Description of unregistering was incorrect
* Made clear that event loop arg mustn't be NULL
* Added parameter check in create function

Closes https://github.com/espressif/esp-idf/issues/6761
Closes IDFGH-4969
2021-07-20 15:47:37 +08:00
Zim Kalinowski
1b87cfc565 Merge branch 'bugfix/esp32s2_disable_bss_extram_v4.2' into 'release/v4.2'
esp32s2: disable bss extram option, clean up spiram init code a bit (v4.2)

See merge request espressif/esp-idf!13735
2021-07-20 07:24:38 +00:00
Angus Gratton
1d64638333 esp_common: Correctly disable ".bss segment placed in external memory" for ESP32-S2 & ESP32-S3
Support for this feature is still pending.

As reported by https://github.com/espressif/esp-idf/issues/6162
2021-07-20 15:24:32 +08:00
yuanjm
fc937e257b esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly.
Closes https://github.com/espressif/esp-idf/issues/7202
2021-07-20 14:27:10 +08:00
Krzysztof Budzynski
c106151cc6 Merge branch 'docs/update_docs_for_doc_751_v4.2' into 'release/v4.2'
docs: update the documents based on customer feedbacks (v4.2)

See merge request espressif/esp-idf!13959
2021-07-20 06:25:52 +00:00
Darian
86f808ef2b Merge branch 'bugfix/twai_low_speed_bit_rates_v4.2' into 'release/v4.2'
TWAI: Fix incorrect configuration initializers for low speed bit rates (backport v4.2)

See merge request espressif/esp-idf!14413
2021-07-20 05:12:59 +00:00
Zim Kalinowski
9896fc0aef Merge branch 'bugfix/otatool_imported_as_lib_v4.2' into 'release/v4.2'
otatool: Fix a crash when imported as external python lib (v4.2)

See merge request espressif/esp-idf!13667
2021-07-20 03:25:20 +00:00
Wang Fang
8eb2ec4fb5 docs: update the documents based on customer feedbacks 2021-07-20 11:07:50 +08:00
Jakob Hasse
2d83369184 Merge branch 'bugfix/missing_extern_c_4.2' into 'release/v4.2'
[test_utils]: added extern C decl to ccomp (backport 4.2)

See merge request espressif/esp-idf!14327
2021-07-20 02:33:26 +00:00
Zim Kalinowski
90ff580de5 Merge branch 'bugfix/read_ota_partition_required_output_arg_v4.2' into 'release/v4.2'
otatool: Fixes read_ota_partition cmd, required output arg (v4.2)

See merge request espressif/esp-idf!13673
2021-07-19 14:01:16 +00:00
David Cermak
07596559dd CI/socket examples: Add UDP operation retries, wait until server is up 2021-07-19 14:58:20 +02:00
xiongweichao
f83bacd2b5 Not initialized or in the process of de-initialization, calling API will return ERR 2021-07-19 20:13:32 +08:00
xiongweichao
3ba13749d3 fix a2dp deinit crash 2021-07-19 20:12:57 +08:00
Darian Leung
7ca2688378 TWAI: Fix incorrect configuration initializers for low speed bit rates
This commit fixes the timing configuration initializers for the
1K, 5K, and 10K bit rates.
2021-07-19 17:33:58 +08:00
Wang Meng Yang
1e2d7ea792 Merge branch 'bugfix/SCO_connect_fail_after_peer_not_accept_sniff_v4.2' into 'release/v4.2'
bugfix/unable to initiate SCO connection when peer device not accept sniff mode (v4.2)

See merge request espressif/esp-idf!14394
2021-07-19 07:24:58 +00:00
morris
a45146c87d Merge branch 'bugfix/delete_i2c_cmd_mux_semaphore_more_cleanly_v4.2' into 'release/v4.2'
dreiver/i2c: delete i2c cmd mux semaphore more cleanly (backport 4.2)

See merge request espressif/esp-idf!13401
2021-07-19 04:54:44 +00:00
KonstantinKondrashov
dd06800d7b otatool: Fix a crash when imported as external python lib
Closes: https://github.com/espressif/esp-idf/issues/6733
2021-07-19 12:41:17 +08:00
KonstantinKondrashov
12f666f303 otatool: Fixes read_ota_partition cmd, required output arg
Closes: https://github.com/espressif/esp-idf/issues/6559
2021-07-19 12:40:32 +08:00
Zim Kalinowski
469be5f7be Merge branch 'bugfix/newlib_FD_ISSET_v4.2' into 'release/v4.2'
newlib: Fix a case in FD_ISSET macro when n==-1 (v4.2)

See merge request espressif/esp-idf!13691
2021-07-19 04:32:55 +00:00
Jakob Hasse
9ba590cd47 [test_utils]: added extern C decl to ccomp
Closes https://github.com/espressif/esp-idf/issues/7121
2021-07-19 10:52:32 +08:00
wangmengyang
036a045b86 component/bt: fix some bugs in bluetooth controller(2fcbe897)
1. Fixed the crash when using scan parameter: window = 4 slots, interval = 5 slots
2. Fixed BLE ACL tx flush issue during reset
3. Added remove sniff when peer not accepted sniff mode
2021-07-19 08:12:48 +08:00
Mahavir Jain
5bb0706083 Merge branch 'bugfix/update_ota_cert_v4.2' into 'release/v4.2'
OTA examples: Update server certificate (v4.2)

See merge request espressif/esp-idf!14355
2021-07-18 14:17:50 +00:00
laokaiyao
8872c6a3ac driver/i2c: add notes to i2c deleteing function 2021-07-16 14:26:48 +08:00
Melissa LeBlanc-Williams
59d08d4467 dreiver/i2c: delete i2c cmd_mux semaphore more cleanly
Merges https://github.com/espressif/esp-idf/pull/6847
2021-07-16 14:26:48 +08:00
Zim Kalinowski
4663d3ec11 Merge branch 'docs/spi_max_transfer_sz_limit_v4.2' into 'release/v4.2'
spi_docs: Fixed the default value of max_transfer_sz_limit (backport v4.2)

See merge request espressif/esp-idf!14253
2021-07-16 06:24:15 +00:00
Zim Kalinowski
77b12f0659 Merge branch 'nimble/fix_broadcaster_role_v4.2' into 'release/v4.2'
NimBLE: Fix build error for broadcaster role and bug in peer_dev_record (v4.2)

See merge request espressif/esp-idf!14301
2021-07-16 06:18:18 +00:00
Shubham Kulkarni
e8a09a0135 OTA examples: Updated server certificate 2021-07-16 13:47:46 +08:00
yuanjm
c764c59893 esp_http_client: Optimize code structure 2021-07-15 16:26:43 +08:00
Clickau
7188eaaebf esp_http_client: fix truncated headers
Signed-off-by: yuanjm <yuanjianmin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6370
2021-07-15 16:26:39 +08:00
KonstantinKondrashov
1214dcea3a newlib: Fix a case in FD_ISSET macro when n==-1 2021-07-15 11:18:45 +08:00
Prasad Alatkar
bcdedf5501 Provisioning BLE: Add API to set manufacturer data in scan response
- Add `wifi_prov_scheme_ble_set_mfg_data` API to set custom manufacturer data
  in BLE advertisements.
- Run format.sh script on modified files.
- Fix few typos in `protocomm_nimble.c`.

- Incorporate suggestion to remove extra check on protocomm_ble_mfg_data_len

- Remove few unnecessary comments.
2021-07-14 18:25:20 +05:30
Chen Yi Qun
20e41d6265 fix esp32s2 fall into sleep forever when deep-sleep time is set to 0(backport v4.2) 2021-07-14 17:46:20 +08:00
Angus Gratton
21f4f460ca Merge branch 'bugfix/panic_handler_disable_wdts_early_v4.2' into 'release/v4.2'
esp_system: Reconfigure the WDTs at the start of the panic handler (v4.2)

See merge request espressif/esp-idf!14231
2021-07-14 08:47:15 +00:00
fuzhibo
0679862de2 Driver(Touch sensor): fix the touch sensor wait cycle after wakeup from sleep 2021-07-14 14:47:07 +08:00
Roland Dobai
68b6bc661b Merge branch 'bugfix/idf_tools_not_found_issue_v4.2' into 'release/v4.2'
tools: Catch OSError which is raised when the tool is not available (v4.2)

See merge request espressif/esp-idf!14134
2021-07-13 15:42:46 +00:00
Prasad Alatkar
b50711eec1 NimBLE: Fix build error for broadcaster role and bug in peer_dev_record (v4.2)
* Fix bug in nvs deletion of `ble_dev_record`.
* Update NimBLE submodule to nimble-1.2.0-idf.
2021-07-13 13:58:06 +08:00
Roland Dobai
4e0b8678e4 Merge branch 'bugfix/broken_virtualenv_v4.2' into 'release/v4.2'
tools: Reinstall virtualenv if it is broken (v4.2)

See merge request espressif/esp-idf!12952
2021-07-12 15:28:50 +00:00
Mahavir Jain
b3e2c714a7 Merge branch 'bugfix/pthread_join_debug_log_v4.2' into 'release/v4.2'
pthread: Fix possible deadlock when using pthread_join() and Debug log level (v4.2)

See merge request espressif/esp-idf!13777
2021-07-12 11:34:53 +00:00
Zim Kalinowski
96406ea6a5 Merge branch 'bugfix/prefetch_invalid_v4.2' into 'release/v4.2'
soc: add dummy bytes to ensure instr prefetch always valid (v4.2)

See merge request espressif/esp-idf!12994
2021-07-09 08:09:48 +00:00
Anton Maklakov
0f095e4732 Merge branch 'bugfix/cmake_export_ver_during_reqs_expansion_v4.2' into 'release/v4.2'
cmake: set IDF_VERSION_* variables at requirement expansion stage (v4.2)

See merge request espressif/esp-idf!14044
2021-07-09 05:41:11 +00:00
morris
49d1dc0fd3 Merge branch 'bugfix/timer_example_crashed_not_calling_timer_group_set_alarm_value_in_isr_v4.2' into 'release/v4.2'
driver/timer: fixed auto reload problem in default isr callback  (backport to 4.2)

See merge request espressif/esp-idf!13530
2021-07-06 12:44:07 +00:00
Angus Gratton
d685449314 esp_system: Reconfigure the WDTs at the start of the panic handler
This is mostly important on ESP32 ECO3 with the
ESP32_ECO3_CACHE_LOCK_FIX, because when we stall the other CPU core
before we disable the TG1 WDT then the first CPU can get stuck
in WDT ISR handle_livelock_int routine waiting for the other CPU.
2021-07-06 11:55:08 +10:00
Michael (XIAO Xufeng)
45984aceb3 spi_docs: Fixed the default value of max_transfer_sz.
(cherry picked from commit e89fabb963)
2021-07-05 14:05:04 +08:00
Michael (XIAO Xufeng)
1fe9b428f5 Merge branch 'bugfix/fix_bit_error_in_ledc_struct_backport_v4.2' into 'release/v4.2'
LEDC: fix bit error in ledc_struct.h(backport v4.2)

See merge request espressif/esp-idf!14163
2021-07-04 07:49:23 +00:00
Wang Meng Yang
884b8d319f Merge branch 'bugfix/attack_crash_for_release_v4.2' into 'release/v4.2'
bugfix/fix crash when lmp flooding

See merge request espressif/esp-idf!13825
2021-07-02 13:05:03 +00:00
Michael (XIAO Xufeng)
5684196707 Merge branch 'bugfix/i2s_apll_disable_issue_v4.2' into 'release/v4.2'
i2s: fix driver uninstall issue (backport v4.2)

See merge request espressif/esp-idf!14000
2021-07-02 10:55:47 +00:00
liaowenhao
65e19c0d1a bugfix/fix crash when lmp flooding 2021-07-01 20:07:45 +08:00
Krzysztof Budzynski
8ee8dcb3c5 Merge branch 'docs/windows_installer_2.9_backport_4.2' into 'release/v4.2'
docs: update Windows Tools 2.9 installation - backport 4.2

See merge request espressif/esp-idf!14190
2021-07-01 11:08:50 +00:00
Juraj Michálek
2bea91d089 docs: update Windows Tools 2.9 installation 2021-06-30 12:45:19 +02:00
Wang Meng Yang
f8470e8336 Merge branch 'bugfix/fix_data_length_callback_param_err_v4.2' into 'release/v4.2'
Fixed data length update callback parameters error (backport v4.2)

See merge request espressif/esp-idf!14172
2021-06-30 05:58:01 +00:00
Anton Maklakov
e3100dbecf Merge branch 'bugfix/gdbstub_threads_and_tests_v4.2' into 'release/v4.2'
gdbstub: fix thread list generation, add tests (v4.2)

See merge request espressif/esp-idf!14053
2021-06-30 04:28:22 +00:00
Angus Gratton
fbd2b60f52 Merge branch 'test/flash_perf_thr_update_by_grafana_avg_v4.2' into 'release/v4.2'
ci: adjust spi_flash performance value according to more test data (v4.2)

See merge request espressif/esp-idf!14117
2021-06-30 02:34:20 +00:00
Michael (XIAO Xufeng)
1d19a237b4 Update components/idf_test/include/esp32/idf_performance_target.h 2021-06-29 16:42:11 +08:00
Michael (XIAO Xufeng)
f7755f4175 ci: adjust spi_flash performance value according to more test data
After we have the performance dashboard, we have more data and no longer depend on the threshold to ensure performance.
Set looser performance thresholds to avoid CI failure.
2021-06-29 16:42:11 +08:00
zwj
a8e8eead70 - fix data length update failed
- fix no callback when the value being used is the same as the value to be set
2021-06-28 14:59:17 +08:00
Angus Gratton
bd9a6f32dd Merge branch 'bugfix/esp32s2_rom_address_range_backport_v4.2' into 'release/v4.2'
soc: Fix SOC_IROM_MASK_HIGH address (backport v4.2)

See merge request espressif/esp-idf!13662
2021-06-28 05:57:32 +00:00
Marius Vikhammer
54383f684f soc: add dummy bytes to ensure instr prefetch always valid
The CPU might prefetch instructions, which means it in some cases
will try to fetch instruction located after the last instruction in
flash.text.

Add dummy bytes to ensure fetching these wont result in an error,
 e.g. MMU exceptions
2021-06-26 08:54:46 +08:00
Chen Yi Qun
23c7a2c628 LEDC: fix bit error in ledc_struct.h(backport v4.2) 2021-06-25 20:51:04 +08:00
Jiang Jiang Jian
efa6eca8b8 Merge branch 'bugfix/update_esp32_phy_max_tx_power_v4.2' into 'release/v4.2'
esp_wifi: update esp32 phy max tx power(v4.2)

See merge request espressif/esp-idf!14140
2021-06-25 02:49:05 +00:00
Angus Gratton
cdb8690e63 Merge branch 'feature/ci_release_zips_v4.2' into 'release/v4.2'
ci: Use GitHub Actions to generate recursive source code zips for releases (v4.2)

See merge request espressif/esp-idf!13199
2021-06-24 23:42:56 +00:00
David Čermák
93921e042c Merge branch 'bugfix/mdns_one_shot_multicast_v4.2' into 'release/v4.2'
mdns: Support for One-Shot mDNS queries (v4.2)

See merge request espressif/esp-idf!14131
2021-06-24 18:48:23 +00:00
David Čermák
fa05924bc2 Merge branch 'bugfix/mqtt_examples_certificates_update_v4.2' into 'release/v4.2'
bugfix/mqtt examples: Updates the CA certificates used. (v4.2)

See merge request espressif/esp-idf!13126
2021-06-24 18:11:08 +00:00
David Čermák
0f5628a63d Merge branch 'bugfix/mdns_interface_del_crash_v4.2' into 'release/v4.2'
mdns: Fix of crash when wifi interface get deleted and mdns receives the packets(Backport v4.2)

See merge request espressif/esp-idf!13856
2021-06-24 16:23:53 +00:00
David Čermák
b694d36b7e Merge branch 'feature/mqtt_intro_new_modes_v4.2' into 'release/v4.2'
MQTT:  Update submodule reference to support new config modes (v4.2)

See merge request espressif/esp-idf!13708
2021-06-24 15:08:11 +00:00
Roland Dobai
54da845d7c tools: Reinstall virtualenv if it is broken
Closes https://github.com/espressif/esp-idf/issues/6656
2021-06-24 09:26:43 +02:00
Roland Dobai
68c1999df3 tools: Catch OSError which is raised when the tool is not available
Closes https://github.com/espressif/esp-idf/issues/7140
2021-06-24 09:16:56 +02:00
chenjianxing
96736a1cbd esp_wifi: update esp32 phy max tx power 2021-06-24 14:41:19 +08:00
Jiang Jiang Jian
c23a132698 Merge branch 'test/wifi_connect_with_full_scan_in_examples_v4.2' into 'release/v4.2'
example: set example wifi scan method to all channel (v4.2)

See merge request espressif/esp-idf!13913
2021-06-24 06:13:44 +00:00
Jiang Jiang Jian
60ccb3fecc Merge branch 'bugfix/fix_amsdu_fragment_vulnerability_v4.2' into 'release/v4.2'
esp_wifi: fix amsdu & fragment vulnerabilities(v4.2)

See merge request espressif/esp-idf!14099
2021-06-24 06:02:48 +00:00
David Cermak
af7f75268c MQTT: Update submodule reference to support new config modes
* Queueing publish messages to outbox when the client is not connected (default=off -> messages are queued if disconnected)
* Use of incremental msg-id instead of random id (default=off -> msg-id uses platform_random())
* Posting a new event-id if a queued message gets deleted from the outbox (default=off -> events are not posted)

Detailed description of included `esp-mqtt` changes
(da850b0add1e71b3659bfac5d797cc834dc3e89b...9ea804e0ab5368d5ab53ae2301a5fec9d1f12f1a)
* mqtt: Remove unused mqtt_header_state_t
  - esp-mqtt commit: b7158a4aea
  - esp-mqtt MR: espressif/esp-mqtt!84
  - Merges https://github.com/espressif/esp-mqtt/pull/180
* Cleanup public include dirs
  - esp-mqtt commit: f65d5d05db
  - esp-mqtt MR: espressif/esp-mqtt!85
* Config: Add a new option to use incremental message id
  - esp-mqtt commit: 8bb4a26f46
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Closes https://github.com/espressif/esp-mqtt/issues/176
* Publish: Add new API to enqueue qos>0 messages
  - esp-mqtt commit: dc7fd5c0b1
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Closes https://github.com/espressif/esp-mqtt/issues/155
* Config: Add a new option to disable publishing when disconnected
  - esp-mqtt commit: f44dcb1c26
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Related https://github.com/espressif/esp-mqtt/issues/177
* Events: Add new event to report deleted messages from outbox
  - esp-mqtt commit: 2e35d4d4d5
  - esp-mqtt MR: espressif/esp-mqtt!85
* Publish: Allow for qos=0 messages to be stored using esp_mqtt_client_enqueue()
  - esp-mqtt commit: e2de0f3e3e
  - esp-mqtt MR: espressif/esp-mqtt!85
2021-06-24 14:01:35 +08:00
Euripedes Rocha
33416006d3 bugfix/mqtt examples: Updates the CA certificates used.
- Updates the CA certificates.
- Updates the URI names to reflect the new URI in the service used in
  the examples.

Closes IDFGH-4986
Closes https://github.com/espressif/esp-idf/issues/6776
2021-06-24 13:57:49 +08:00
Mahavir Jain
131ab4b92b Merge branch 'bugfix/http_client_test_memcorupt_v4.2' into 'release/v4.2'
ci/test: Fix esp_http_client test not to use pointer after free (v4.2)

See merge request espressif/esp-idf!13701
2021-06-24 05:52:27 +00:00
David Cermak
df752f4c46 mdns: Support for One-Shot mDNS queries 2021-06-24 06:59:11 +02:00
Jiang Jiang Jian
c6e0decf0a Merge branch 'bugfix/lwip_docs_delete_while_select_v4.2' into 'release/v4.2'
lw-IP: Add docs about not supported delete of task while blocked on select (v4.2)

See merge request espressif/esp-idf!13677
2021-06-24 04:04:07 +00:00
David Cermak
3810be0df5 ci/test: Fix esp_http_client test not to use pointer after free 2021-06-23 20:31:37 +02:00
David Cermak
b71752f41b lwip: Add docs about not supported delete of task while blocked on select 2021-06-24 02:00:39 +08:00
Anton Maklakov
f4b556fdf9 Merge branch 'bugfix/mqtt_test_publish_less_data_v4.2' into 'release/v4.2'
ci: Make the mqtt example test to send only portion of the partition (v4.2)

See merge request espressif/esp-idf!14112
2021-06-23 15:18:23 +00:00
Suren Gabrielyan
0a387f98de mdns: Fix of crash when wifi interface get deleted and mdns receives the packets
Closes https://github.com/espressif/esp-idf/issues/6973
2021-06-23 22:52:26 +08:00
David Cermak
afaff3bca3 ci: Make the mqtt example test to send only portion of the partition
This makes the test faster and more robust in very a busy WiFi environment
(our CI) and still exercises the scenario of fragmenting the message on
both mqtt and ssl levels (binary size to send > mqtt buffer size)
2021-06-23 08:27:44 +02:00
Angus Gratton
b20c5e3756 Merge branch 'feature/codeowners_v4.2' into 'release/v4.2'
add simplified CODEOWNERS file for older release branches (v4.2)

See merge request espressif/esp-idf!14091
2021-06-23 05:39:11 +00:00
Angus Gratton
54ac548cd4 Merge branch 'bugfix/esp32_u4wdh_quad_io_v4.2' into 'release/v4.2'
bootloader: Fix selection of Quad I/O modes on ESP32-U4WDH chip (v4.2)

See merge request espressif/esp-idf!13877
2021-06-23 05:37:51 +00:00
Wang Meng Yang
007bb3f9ed Merge branch 'bugfix/ble_set_scan_param_error' into 'release/v4.2'
Fix the bug when ble setting scan param

See merge request espressif/esp-idf!13973
2021-06-23 05:10:08 +00:00
xiongweichao
77f880ff2b fix spp acceptor deadlock 2021-06-23 11:01:17 +08:00
He Yin Ling
de2baf098b example: set example wifi scan method to all channel:
in CI example test we could have runners with same SSID in the same lab.
Use scan on all channel will let DUT connect to the AP with best RSSI.
2021-06-23 10:17:48 +08:00
Jiang Jiang Jian
ebbc093fd2 Merge branch 'bugfix/fix_a2dp_sink_blocked_v4.2' into 'release/v4.2'
Bugfix/Fix a2dp Sink Blocked Bugs[backport v4.2]

See merge request espressif/esp-idf!14011
2021-06-22 13:12:03 +00:00
ChenJianxing
12ed1b2ab5 esp_wifi: fix amsdu & fragment vulnerabilities 2021-06-22 20:42:09 +08:00
Angus Gratton
036356ccba Merge branch 'bugfix/override_cmake_python_v4.2' into 'release/v4.2'
cmake: Minor Python CMake build fixes (v4.2)

See merge request espressif/esp-idf!13195
2021-06-22 07:45:17 +00:00
Ivan Grokhotkov
6f382600e4 add simplified CODEOWNERS file for older release branches 2021-06-22 09:21:51 +02:00
Angus Gratton
23a0ecedbf Merge branch 'feature/prevent_unwind_code_linking_4.2' into 'release/v4.2'
[C++]: prevent unwind code linking (backport 4.2)

See merge request espressif/esp-idf!13801
2021-06-22 04:48:45 +00:00
Angus Gratton
d938ab8fd4 Merge branch 'feature/update_libsodium_submodule_v4.2' into 'release/v4.2'
libsodium: Update library to v1.0.18 (v4.2)

See merge request espressif/esp-idf!13082
2021-06-22 03:06:44 +00:00
Anton Maklakov
3c4cfdfcd6 Merge branch 'bugfix/ci_socket_tests_v4.2' into 'release/v4.2'
ci: Made socket example tests more robust (v4.2)

See merge request espressif/esp-idf!13707
2021-06-22 02:05:01 +00:00
Angus Gratton
d8b921c438 Merge branch 'bugfix/link_gcov_rtio_backport_v4.2' into 'release/v4.2'
Bugfix/link gcov rtio backport v4.2

See merge request espressif/esp-idf!13832
2021-06-22 00:43:01 +00:00
Angus Gratton
0b45e84e2a Merge branch 'bugfix/ldgen_ignore_nonexistent_archives_and_obj_v4.2' into 'release/v4.2'
ldgen: Check mappings (v4.2)

See merge request espressif/esp-idf!13994
2021-06-21 23:20:59 +00:00
David Cermak
90b6780b1e ci: Made socket tests more robust
Added common timeout
Added debug logs for both addr families
Renamed example tests to have different names
2021-06-22 01:10:42 +08:00
Michael (XIAO Xufeng)
cb1a2642b6 Merge branch 'bugfix/spi_flash_cs_setup_v4.2' into 'release/v4.2'
spi_flash: fix cs line setup to make the flash driver more stable(backport v4.2)

See merge request espressif/esp-idf!13965
2021-06-21 14:33:02 +00:00
liqigan
a4f6af013c fix a2dp sink RxSbcQ bugs
Closes https://github.com/espressif/esp-idf/issues/6712
Closes https://github.com/espressif/esp-idf/issues/7100
2021-06-21 20:14:34 +08:00
Island
9ac6689a5d Merge branch 'feat/ble_mesh_make_unprov_beacon_interval_configurable_v4.2' into 'release/v4.2'
Feat/ble mesh make unprov beacon interval configurable (v4.2)

See merge request espressif/esp-idf!14062
2021-06-21 11:39:41 +00:00
Anton Maklakov
dcf4d1fa8c Merge branch 'bugfix/loadable_elf_test_eco3_v4.2' into 'release/v4.2'
tests: gdb_loadable_elf: adjust the breakpoint location for ESP32 ECO3 (v4.2)

See merge request espressif/esp-idf!14040
2021-06-21 04:39:04 +00:00
wangjialiang
00008a3bf5 ble_mesh: stack: Fix crash for net_key_del when subnet is NULL 2021-06-21 11:24:13 +08:00
wangjialiang
f227f0ebe6 ble_mesh: stack: Make unprovisioned beacon interval configurable.
Closes https://github.com/espressif/esp-idf/issues/6722
2021-06-21 11:24:00 +08:00
Island
ea7b487807 Merge branch 'bugfix/AuthValue_leak_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix AuthValue Leak and Predictable AuthValue in Bluetooth... (v4.2)

See merge request espressif/esp-idf!14023
2021-06-21 03:08:53 +00:00
Ivan Grokhotkov
0adf0f85dd gdbstub: fix thread list generation
This commit fixes an issue with gdbstub, where it would list threads
with TIDs 1 to N in qfThreadInfo/qsThreadInfo responses, and then
would tell GDB that the current TID is 0 in the qC response. This
caused an assertion failure in GDB, because it couldn't find the
thread structure corresponding to TID 0:

src/gdb/gdb/thread.c:93: internal-error: thread_info* inferior_thread(): Assertion `tp' failed.

The issue was caused by the logic of qfThreadInfo/qsThreadInfo.
If the "paniced" task index was 1, the code would report it in the
response to qfThreadInfo, and then mistakenly skip task with index 0
in qsThreadInfo, due to the use of pre-increment instead of a
post-increment.

With that issue fixed, GDB assertion doesn't happen anymore. However
the code contained a deeper problem, which manifested itself in the
fact that GDB would incorrectly show task index 0 as the current task,
after the above fix.

Previous version of the code assumed that when GDB requests the thread
list, it uses the first thread returned by the target as the "default"
thread, and subsequently shows the user that the program is stopped
in that thread. This assumption was incorrect. In fact, after
connecting to a remote target, GDB obtains information about the
"default" or "current" thread from two sources:
1. the 'thread' special register indicated in the status response
   ($T00thread;00000001#ee)
2. if the target has only sent the plain stop response ($T00#ee), GDB
   would ask for the current thread using a qC packet.
With that in mind, it is not necessary to report the paniced task as
the first task in qfThreadInfo response. We can simply returns the
tasks in their natural order, and then indicate the current task in
the qS packet response.

However even that change does not fully resolve the issues with task
list. The previous version of this code also incorrectly interpreted
the meaning of GDB TIDs -1 and 0. When GDB sends an "Hg0" command
early in the connection process, it doesn't expect the server to set
task 0 as the current task, as the code assumed. Rather, it tells the
server to "set any (arbitrary) task as the current one", and the most
logical thing to do for the server that is already in "stopped" state
is to keep the current task selection.

Since TID 0 has a special meaning in GDB remote protocol, gdbstub code
is now modified to map task indices (which start from 0) to GDB TIDs.
GDB TIDs are arbitrary, and for simplicity we keep the same order and
start counting them from 1.

The summary of all the above changes is:

1. Use "task index + 1" as the TID reported to GDB
2. Report the tasks in natural order; don't complicate the code to
   make the paniced task first in the list.
3. Centralize modification of 'current_task_index' and 'regfile'
   in the new 'set_active_task' function, to improve encapsulation.
2021-06-18 16:02:10 +02:00
Ivan Grokhotkov
55f233b945 docs: describe power management logic for ESP32-S2, fix translation 2021-06-18 15:40:35 +02:00
Ivan Grokhotkov
19121e2f6f cmake: set IDF_VERSION_* variables at requirement expansion stage
Currently IDF_VERSION_* variables are not available to the component
CMakeLists.txt files at the requirements expansion stage. This makes
it harder to write component CMakeLists files compatible with
different IDF versions.

Include version.cmake from the requirements expansion script, add a
build system test.
2021-06-18 15:27:33 +02:00
Ivan Grokhotkov
2a81167470 tests: gdb_loadable_elf: adjust the breakpoint location for ESP32 ECO3
The previous location was the return from the first ets_printf call
that prints ROM sign-on message. Since the main function was patched
in ECO3, the new address no longer works — there is no instruction at
0x40007901 in ECO3 ROM. This could be solved by setting two
breakpoints (one would work for ECO <=2, the other for ECO3), but we
would need to remove the unused breakpoint later.
Fix this by setting the breakpoint at ets_printf. This means that when
debugging a loadable ELF the ROM sign-on message will no longer be
shown, but this doesn't seem to be an issue.
2021-06-18 15:09:47 +02:00
Krzysztof Budzynski
d7acee288d Merge branch 'feature/link_idf_common_docs_v4.2' into 'release/v4.2'
docs: Linking to a page to help navigate to documentation for specific ESP32-x chip (v4.2)

See merge request espressif/esp-idf!13843
2021-06-18 10:06:12 +00:00
Aditya Patwardhan
1cdf60c914 libsodium: Update library to v1.0.18 2021-06-18 16:40:15 +08:00
Angus Gratton
681e71cb10 Merge branch 'bugfix/elf_sha256_first_byte_skip_v4.2' into 'release/v4.2'
app_update: fix incorrect first byte from esp_ota_get_app_elf_sha256 (v4.2)

See merge request espressif/esp-idf!13663
2021-06-18 08:00:18 +00:00
wangjialiang
3212d62b2b ble_mesh: stack: Fix AuthValue Leak and Predictable AuthValue in Bluetooth Mesh Provisioning Leads to MITM 2021-06-18 14:21:02 +08:00
Island
7166428ac0 Merge branch 'bugfix/impersonation_attacks_and_AuthValue_disclosure_v4.2' into 'release/v4.2'
ble_mesh: stack: Add check the value of Provisioning Random & Confirmation... (v4.2)

See merge request espressif/esp-idf!13923
2021-06-18 06:11:46 +00:00
He Yin Ling
333b9d7873 Merge branch 'bugfix/example_test_socket_issue_4.2' into 'release/v4.2'
CI: example test socket issue (4.2)

See merge request espressif/esp-idf!13905
2021-06-18 06:04:42 +00:00
Krzysztof Budzynski
b0a51f30bb Merge branch 'docs/add_esp32-s2-devkitm-1_user_guide_backport' into 'release/v4.2'
Add ESP32-S2-DevKitM-1 User Guide (backport master)

See merge request espressif/esp-idf!13860
2021-06-18 06:01:03 +00:00
Krzysztof Budzynski
dd27b49891 Merge branch 'doc/nvs_get_used_entry_count__clarify_4.2' into 'release/v4.2'
[doc]: NVS documentation updates (backport 4.2)

See merge request espressif/esp-idf!13824
2021-06-18 05:59:08 +00:00
Angus Gratton
9b48e5a024 Merge branch 'bugfix/ci_ble_wifi_example_test_v4.2' into 'release/v4.2'
Fix for ble and wifi example test (v4.2)

See merge request espressif/esp-idf!13803
2021-06-18 05:39:38 +00:00
Angus Gratton
cd8173bc13 pthread: Fix possible deadlock when using pthread_join() and Debug log level
Possible for a joined task to be deleted at the moment it is logging,
meaning it might hold the stdout lock. In that case the lock isn't
released and the next task to try and take it (i.e. call printf)
will block indefinitely.
2021-06-18 13:37:31 +08:00
Angus Gratton
a637d6f3d7 Merge branch 'ci/unify_all_target_test_artifacts_paths_v4.2' into 'release/v4.2'
ci: unify target test artifacts to all .log file and $LOG_PATH (v4.2)

See merge request espressif/esp-idf!13849
2021-06-18 05:37:30 +00:00
Angus Gratton
2d72e916ac Merge branch 'update/version_4_2_2' into 'release/v4.2'
Update version to 4.2.2

See merge request espressif/esp-idf!13984
2021-06-18 05:23:04 +00:00
Itay Perl
881909ecda app_update: fix incorrect first byte from esp_ota_get_app_elf_sha256
At -O2 optimization level, GCC seems to optimize out the copying of the
first byte of the checksum, assuming it is zero. This "miscompilation"
happens because the esp_app_desc struct is declared const, but then modified
post-compilation. Casting to volatile disables the optimization.

Closes: https://github.com/espressif/esp-idf/pull/6389
2021-06-17 17:32:31 +08:00
morris
813931720e i2s: fix driver uninstall issue 2021-06-17 14:18:21 +08:00
Renz Bagaporo
eed6eed909 components: fix ldgen check errors 2021-06-17 12:36:34 +10:00
laokaiyao
9a14cf083f driver/timer: only re-enable alarm in callback when auto reload is true
closes https://github.com/espressif/esp-idf/issues/7001
2021-06-17 10:30:44 +08:00
Renz Bagaporo
ea7d9c6368 ci: exempt upstream libmbedtls mapping for sha256 2021-06-17 12:21:53 +10:00
Renz Bagaporo
711048bce0 ldgen: fix sections info parsing
Fixes an issure where the first part of an object file name is not
included, due to matching the rule for a section entry previously.

Reduce depedency on matching literal strings in sections which might
change depending on toolchain (ex. matching 'elf32-xtensa-le')

Make sure parsing rule succeeds for the entirety of the sections info
string by adding 'parseAll=True'.

Add test for sections info parsing.
2021-06-17 12:21:53 +10:00
Renz Bagaporo
2c1c4999f5 ci: enabled ldgen mapping check in ci 2021-06-17 12:20:58 +10:00
Renz Bagaporo
5aa09271d8 ldgen: allow checking mappings 2021-06-17 12:18:02 +10:00
wangjialiang
34bfff424a ble_mesh: stack: Add check the value of Provisioning Random & Confirmation sent and received by provisioner 2021-06-16 21:29:02 +08:00
He Yin Ling
7ab8f793ca versions: Update version to 4.2.2 2021-06-16 14:49:39 +08:00
Yang Zhao
24578ac17b bugfix:Set address resolution enable. If not set enable and the filter
policy is 2 or 3, the controller will reply with invalid param error.
2021-06-15 16:14:23 +08:00
Wang Fang
1bb087d6af docs: Correct uart default pin names and provid more information about ESP-Prog board 2021-06-15 15:37:05 +08:00
Cao Sen Miao
8c16b4bcb3 spi_flash: fix cs line setup to make the flash driver more stable 2021-06-15 15:24:35 +08:00
Jiang Jiang Jian
1e36383909 Merge branch 'bugfix/handling_public_action_frame_v4.2' into 'release/v4.2'
esp_wifi: Fix SoftAP crash by handling public action frames.

See merge request espressif/esp-idf!13927
2021-06-11 05:19:05 +00:00
aditi_lonkar
1e8fca74f2 esp_wifi: Fix SoftAP crash by adding NULL check for handling publc action frames.
Closes https://github.com/espressif/esp-idf/issues/7109
2021-06-10 18:47:27 +05:30
Jiang Jiang Jian
32c63fca90 Merge branch 'bugfix/fix_pmf_ba_issue_v4.2' into 'release/v4.2'
fix pmf ba issue ( v4.2)

See merge request espressif/esp-idf!13901
2021-06-10 12:20:49 +00:00
Angus Gratton
f23c9d94ae bootloader: Fix selection of Quad I/O modes on ESP32-U4WDH chip
Closes https://github.com/espressif/esp-idf/issues/6191
2021-06-09 05:10:21 +00:00
Island
4921446d3d Merge branch 'bugfix/btdm_enable_gattc_cache_will_crash_v4.2' into 'release/v4.2'
component/bt: fix enable gattc nvs cache lead to crash

See merge request espressif/esp-idf!13889
2021-06-09 03:46:27 +00:00
Chen Yudong
443c9ff276 test: fix socket issue in iperf example test 2021-06-08 17:11:38 +08:00
He Yin Ling
06c7cde836 test: fix iperf example errors:
1. fix TypeError when running with python3
2. fix throughput chart x/y axis label error
3. make test case compatibile with iperf bin on earlier release branches
2021-06-08 17:08:29 +08:00
Chen Yudong
c26317ac90 CI: fix connection failures in asio example tests 2021-06-08 17:05:04 +08:00
He Yin Ling
96a00e59f4 example: set PMF capable to connect to PMF required APs 2021-06-08 16:07:09 +08:00
chenjianxing
36c2ef2828 esp_wifi: fix Block Ack issue when pmf enable 2021-06-08 16:06:24 +08:00
xiewenxiang
8491705b63 component/bt: fix enable gattc nvs cache lead to crash 2021-06-07 17:34:47 +08:00
Island
2c5f35fa8a Merge branch 'bugfix/bt_impersonation_passkey_fix_v4.2' into 'release/v4.2'
Bluedroid: Check only x component of passkey to avoid passkey impersonation attack. (v4.2)

See merge request espressif/esp-idf!13759
2021-06-07 07:24:00 +00:00
Ivan Grokhotkov
e632f2b366 Merge branch 'feature/IDF-2612_human_readable_error_v4.2' into 'release/v4.2'
export.bat/install.bat: print human-readable error message if Git or Python are not in PATH (v4.2)

See merge request espressif/esp-idf!13227
2021-06-07 06:08:15 +00:00
Ivan Grokhotkov
72f4f9542c Merge branch 'feature/installed_tool_failed_v4.2' into 'release/v4.2'
tools: Warning about tool being installed but failed to run. (v4.2)

See merge request espressif/esp-idf!13231
2021-06-07 06:07:54 +00:00
Ivan Grokhotkov
cbe42f1132 Merge branch 'bugfix/gdbgui_v4.2' into 'release/v4.2'
tools: Add various fixes for idf.py gdbgui (v4.2)

See merge request espressif/esp-idf!13417
2021-06-07 06:07:13 +00:00
Ivan Grokhotkov
8aa7eaa646 Merge branch 'bugfix/idfpy_global_action_callbacks_order_v4.2' into 'release/v4.2'
idf.py: Run global_action_callbacks in predictable order (v4.2)

See merge request espressif/esp-idf!13682
2021-06-07 06:06:54 +00:00
Ivan Grokhotkov
d21e948381 Merge branch 'feature/idf_tools_github_mirror_v4.2' into 'release/v4.2'
Add GitHub mirror option for IDF tools installs (v4.2)

See merge request espressif/esp-idf!13765
2021-06-07 06:06:31 +00:00
Ivan Grokhotkov
b50a8e0878 Merge branch 'bugfix/dfu_split_large_bins_v4.2' into 'release/v4.2'
tools: Split up large binaries into smaller chunks in the DFU binary (v4.2)

See merge request espressif/esp-idf!13794
2021-06-07 06:05:46 +00:00
Wang Ning
a5ffdaa962 Add ESP32-S2-DevKitM-1 User Guide
Update 1 based on comments

Fix typo

Add annotation to UFL connector

Add UFL connector to description table
2021-06-04 11:01:29 +08:00
Fu Hanxi
95f4bba736 ci: unify target test artifacts to all .log file and $LOG_PATH 2021-06-03 17:34:03 +08:00
Krzysztof
a954243875 docs: Linking to a page that helps navigate to documentation for specific ESP32-x chip 2021-06-03 08:13:03 +02:00
Angus Gratton
fa734e6af8 Merge branch 'bugfix/partition_table_integrity_check_v4.2' into 'release/v4.2'
paritition_table: Verify the partition table md5sum when loading in the app (v4.2)

See merge request espressif/esp-idf!13583
2021-06-03 02:19:11 +00:00
Angus Gratton
ca44fb1528 Merge branch 'bugfix/rtc_retain_mem_addr_v4.2' into 'release/v4.2'
bootloader: Fix "skip validate in deep sleep" on ESP32 & ESP32-S2 (v4.2)

See merge request espressif/esp-idf!13813
2021-06-03 02:18:59 +00:00
Alexey Gerenkov
0a5fbc1b8c gcov: Fixes not linked gcov rtio functions 2021-06-02 21:48:29 +03:00
Jakob Hasse
5dbca18324 [doc]: NVS documentation updates
* Better comment of nvs_get_used_entry_count()
* Mention C++ example in API reference
* WIP: Used target instead of hard code ESP32
* Note that strings can only span one page
* Reflect that item types have been moved
* Some clarification about nvs_commit()
* Improved reference to the ESP Partition API
* fixed little mistake in documenting-code.rst
* Change of nvs_open_from_part() to
  nvs_open_from_partition() reflected in docs
* Corrected documentation of
  NVSHandle::get_string(), NVSHandle::get_blob()
  and NVSHandle::get_item_size().

* Closes IDF-1563
* Closes IDF-859
* Closes https://github.com/espressif/esp-idf/issues/6123
2021-06-02 15:46:13 +08:00
Angus Gratton
f8b9cb2864 paritition_table: Verify the partition table md5sum when loading the app
Additionally, always enable the partition MD5 check if flash encryption is on in
Release mode. This ensures the partition table ciphertext has not been modified
(CVE-2021-27926).

The exception is pre-V3.1 ESP-IDF bootloaders and partition tables, which
don't have support for the MD5 entry.
2021-06-02 06:35:45 +00:00
Roland Dobai
7b70154566 tools: Split up large binaries into smaller chunks in the DFU binary
ROM will erase the region a partition is in as soon as it receives the
first bit of the data that is in the partition. For large partitions it
takes more than 5 seconds to erase which is a hard-coded limit in
dfu-utils.

This splits large binaries and adds them by chunks which should avoid
timing-out during flashing.

Closes https://github.com/espressif/esp-idf/issues/6999
2021-06-01 15:11:12 +02:00
Angus Gratton
fd50bcf704 bootloader: Fix "skip validate in deep sleep" on ESP32 & ESP32-S2
Regression in 83bf2e1ac1, this memory region was shifted from fast to slow RTC
memory (no change on ESP32-C3 as no RTC fast memory on this chip.)
2021-06-01 19:07:15 +10:00
Shivani Tipnis
be960bc3dc ble-wifi-example-tests: Add fixes and cleanups to ble and wifi tests
(cherry picked from commit 2d22374460)
2021-06-01 12:43:59 +05:30
Jakob Hasse
dd08575c29 [C++]: wrapper functions around unwind code
* Replaced all C++ exception related
  functions with wrappers if -fno-exception
  is used. This prevents linking of the
  corresponding code in libgcc. The code
  size will decrease by around 7-9 KB when
  building with -fno-exception.
* added no except test app

Closes https://github.com/espressif/esp-idf/pull/5380
Closes https://github.com/espressif/esp-idf/issues/5363
Closes https://github.com/espressif/esp-idf/issues/5224
Closes IDFGH-3153
Closes IDF-2577
2021-06-01 15:09:46 +08:00
Chinmay Chhajed
c1e204634f Bluedroid: Check only x component of passkey to avoid passkey impersonation attack. 2021-05-31 05:10:59 +00:00
daiziyan
96d00c5fa5 add CN translation for index.rst in get started section for MR10616 2021-05-31 11:05:04 +10:00
Anton Maklakov
054d3b81a6 tools: windows installer: Modify IDF's archive mirror link 2021-05-31 11:05:04 +10:00
Ivan Grokhotkov
daeaa8092b tools: windows installer: add support for IDF_GITHUB_ASSETS
Adds a checkbox to download tools from dl.espressif.com mirror.
2021-05-31 11:05:04 +10:00
Angus Gratton
56b4596b53 tools: Use GitHub download URLs for all files that can be downloaded from GitHub 2021-05-31 11:05:04 +10:00
Angus Gratton
bebc75af48 idf_tools: Add option to replace all GitHub tools download URLs with dl.espressif.com
Via new IDF_GITHUB_ASSETS environment variable.
2021-05-31 11:04:00 +10:00
Angus Gratton
71cf821659 Merge branch 'bugfix/calc_8m_freq_test_v4.2' into 'release/v4.2'
rtc: increase CI acceptance range for calc 8M test (v4.2)

See merge request espressif/esp-idf!13086
2021-05-30 23:46:14 +00:00
Jiang Jiang Jian
652e214f55 Merge branch 'mesh/esp_mesh_send_block_time_v4.2' into 'release/v4.2'
esp_wifi_mesh: add esp_mesh_send_block_time to set blocking time of esp_mesh_send(backport v4.2)

See merge request espressif/esp-idf!13409
2021-05-27 10:50:28 +00:00
shenjun
345e6acf80 esp_wifi_mesh: add esp_mesh_send_block_time
1. Ignore dirtyBuf check when buffer size is larger than 4092
2. Add esp_mesh_send_block_time to set blocking time of esp_mesh_send
2021-05-27 08:27:39 +00:00
Jiang Jiang Jian
e8e6021ada Merge branch 'docs/add_rf_calib_docs_v4.2' into 'release/v4.2'
docs: add RF calibration docs for ESP32-S2(v4.2)

See merge request espressif/esp-idf!13723
2021-05-27 08:06:12 +00:00
Jiang Jiang Jian
df0ca79bdb Merge branch 'bugfix/btdm_set_discoverable_after_create_server_v4.2' into 'release/v4.2'
components/bt: Set discoverable after create server

See merge request espressif/esp-idf!13726
2021-05-26 08:26:30 +00:00
Jiang Jiang Jian
ca77bdddbf Merge branch 'bugfix/fix_uart_handler_call_inline_func_v42' into 'release/v4.2'
Bugfix/fix uart handler call inline func (backport v4.2)

See merge request espressif/esp-idf!13005
2021-05-26 03:45:29 +00:00
Jiang Jiang Jian
e459f7b498 Merge branch 'bugfix/cmake_ulp_reserved_size_v4.2' into 'release/v4.2'
ulp: Fix bug where ULP linker script not regenerated for new config (v4.2)

See merge request espressif/esp-idf!13629
2021-05-26 03:43:55 +00:00
Jiang Jiang Jian
841aca897c Merge branch 'feature/extmem_alloc_for_s2_v4.2' into 'release/v4.2'
External memory allocation policy support  for ESP32-S2 (GitHub PR) (v4.2)

See merge request espressif/esp-idf!13620
2021-05-26 03:43:13 +00:00
Jiang Jiang Jian
b860069c10 Merge branch 'bugfix/start_emac_after_phy_reset_v4.2' into 'release/v4.2'
esp_eth: restart negotiation in esp_eth_start (v4.2)

See merge request espressif/esp-idf!13699
2021-05-26 03:36:38 +00:00
baohongde
bb1aa0ed5e components/bt: Set discoverable after create server 2021-05-26 11:35:07 +08:00
Jiang Jiang Jian
481da3143d Merge branch 'bugfix/ds_invalidate_assert_v4.2' into 'release/v4.2'
esp32s2 ds: Fix invalidating Digital Signature key from HMAC peripheral if assertions are disabled (v4.2)

See merge request espressif/esp-idf!12906
2021-05-26 03:30:45 +00:00
Jiang Jiang Jian
536d6eea61 Merge branch 'bugfix/aes_dma_completion_v4.2' into 'release/v4.2'
mbedtls: Fix AES dma completion race condition (v4.2)

See merge request espressif/esp-idf!12904
2021-05-26 03:30:18 +00:00
He Yin Ling
176ea97dd0 Merge branch 'test/support_multiple_targets_for_iperf_example_test_v4.2' into 'release/v4.2'
test: support multiple targets for iperf example test (v4.2)

See merge request espressif/esp-idf!13618
2021-05-26 03:11:56 +00:00
He Yin Ling
ca2a15dca7 Merge branch 'ci/ttfw_fix_dut_exception_not_added_to_junit_report_v4.2' into 'release/v4.2'
ttfw: fix DUT exception not added to junit report (v4.2)

See merge request espressif/esp-idf!12142
2021-05-26 03:11:26 +00:00
chenjianxing
5d88861dba docs: add RF calibration docs for ESP32-S2 2021-05-26 10:58:38 +08:00
Jiang Jiang Jian
f8e633a352 Merge branch 'ajust_espnow_channel_config_range_v4.2' into 'release/v4.2'
adjust espnow channel range

See merge request espressif/esp-idf!13689
2021-05-25 15:41:16 +00:00
Jiang Jiang Jian
9e40c13d4e Merge branch 'bugfix/invalid_feat_page_exec_v4.2' into 'release/v4.2'
bt controller: Fixed handling for invalid feature page.

See merge request espressif/esp-idf!13572
2021-05-25 14:51:24 +00:00
Angus Gratton
6e0c046bd9 mbedtls tests: Add optional debug log output to AES stream tests 2021-05-25 14:36:47 +00:00
Angus Gratton
9e1324fbbb mbedtls aes dma: Fix bug where DMA would complete when the first output descriptor was done, not the last 2021-05-25 14:36:47 +00:00
Jiang Jiang Jian
95c118171a Merge branch 'bugfix/backport_some_lwip_bugs_0428_v4.2' into 'release/v4.2'
lw-ip:backport bugfix lwip for v4.2(backport v4.2)

See merge request espressif/esp-idf!13378
2021-05-25 14:27:42 +00:00
Angus Gratton
2af8fac1d9 esp32s2 ds: Fix invalidating Digital Signature key from HMAC peripheral if assertions are disabled 2021-05-25 14:22:55 +00:00
Jiang Jiang Jian
93c28d1fac Merge branch 'bugfix/phy_calib_data_to_nvs_for_c3_s3_v4.2' into 'release/v4.2'
esp_wifi: re-enable phy calibration data to nvs for esp32s2

See merge request espressif/esp-idf!13626
2021-05-25 14:19:54 +00:00
Jiang Jiang Jian
97ed80f415 Merge branch 'nimble/fix_ble_sm_sc_pub_key_v4.2' into 'release/v4.2'
NimBLE: Fix MITM vulnerability and free AES context (v4.2)

See merge request espressif/esp-idf!13597
2021-05-25 14:17:55 +00:00
Jiang Jiang Jian
b18f37b2e2 Merge branch 'bugfix/ag_use_dynamic_memory_error_v4.2' into 'release/v4.2'
Fix ag use dynamic memory error

See merge request espressif/esp-idf!13551
2021-05-25 14:17:18 +00:00
Prasad Alatkar
0ca5134d5f NimBLE: Fix MITM vulnerability and free AES context (v4.2) 2021-05-25 09:21:12 +00:00
xueyunfei
a7c17edc8a backport bugfix lwip for v4.2 2021-05-25 09:06:28 +00:00
Jiang Jiang Jian
bab80796ca Merge branch 'bugfix/remove_redundant_other_core_cache_disable_v4.2' into 'release/v4.2'
[system]: Remove redundant othercore cache disable (backport v4.2)

See merge request espressif/esp-idf!13357
2021-05-25 09:05:33 +00:00
Jiang Jiang Jian
c219c9dcb2 Merge branch 'bugfix/fix_set_channel_error_after_wifi_stop_v4.2' into 'release/v4.2'
esp_wifi: Fix setting channel error after WiFi stop (backport v4.2)

See merge request espressif/esp-idf!13447
2021-05-25 08:09:39 +00:00
morris
e892fed593 esp_eth: restart negotiation in esp_eth_start 2021-05-25 15:17:48 +08:00
Michael (XIAO Xufeng)
18a262a6fa Merge branch 'ci/decrease_flash_performance_thr_4.2' into 'release/v4.2'
ci: decrease the flash performance threshold (4.2)

See merge request espressif/esp-idf!13632
2021-05-25 07:11:14 +00:00
baohongde
7988705558 components/bt: Delete BLE ADV priority high 2021-05-25 15:10:49 +08:00
xiongweichao
8e7f7dfe59 Remove btc_hf_idx_by_bdaddr in both btc_hf_init and btc_hf_deinit functions 2021-05-25 07:06:22 +00:00
xiongweichao
b257ad7d9e fix ag use dynamic memory error 2021-05-25 07:06:22 +00:00
Chinmay Chhajed
4d95ffcca2 bt controller: Fixed handling for invalid feature page. 2021-05-25 10:39:25 +05:30
wangmengyang
adb20fb2f3 components/bt: fix PATH of libbtdm_app.a in build script 2021-05-25 10:39:25 +05:30
dongyou
a8227a1d13 adjust espnow channel range 2021-05-25 11:21:53 +08:00
Michael (XIAO Xufeng)
d2715324e5 Merge branch 'bugfix/fix_touch_sensor_power_source_v4.2' into 'release/v4.2'
touch_sensor: fix esp32s2 touch sensor default power source (Backport v4.2)

See merge request espressif/esp-idf!13485
2021-05-25 03:13:32 +00:00
Sergei Silnov
2deea3b1b0 Run global_action_callbacks in predictable order 2021-05-24 18:14:44 +02:00
Darian Leung
f837b298e6 soc: Fix SOC_IROM_MASK_HIGH address
The high address limit IROM on the esp32s2 is incorrect, thus
causing backtrace printing to think valid function PCs are invalid.
2021-05-24 15:22:16 +08:00
He Yin Ling
e60640ab04 ttfw: fix DUT exception not added to junit report 2021-05-21 08:37:28 +00:00
Michael (XIAO Xufeng)
899c7852a4 ci: decrease the flash performance threshold 2021-05-21 13:03:36 +08:00
Angus Gratton
be74e06e50 ulp: Fix bug where ULP linker script not regenerated for new config
ULP linker script relies on value of CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM,
when this value changes in config then it should be regenerated.
2021-05-21 10:56:05 +10:00
chenjianxing
d3e730ff57 esp_wifi: re-enable phy calibration data to nvs for esp32s2 2021-05-20 22:13:39 +08:00
Marcel Kottmann
06bf491f13 mbedtls: Allow external mem alloc for ESP32-S2
Closes https://github.com/espressif/esp-idf/pull/6998
Closes IDFGH-5226
2021-05-20 15:22:07 +05:30
He Yin Ling
54bf4dccfa test: support multiple targets for iperf example test 2021-05-20 17:09:53 +08:00
Island
d9ec7df393 Merge branch 'nimble/fix_host_flow_ctrl_v4.2' into 'release/v4.2'
NimBLE: Fix host flow control in NimBLE porting layer and host (release/v4.2)

See merge request espressif/esp-idf!13571
2021-05-19 08:52:23 +00:00
Angus Gratton
71cddbdf8f Merge branch 'bugfix/fe_example_test_args' into 'release/v4.2'
ci: fix flash encryption example test esptool args (4.2)

See merge request espressif/esp-idf!13539
2021-05-19 06:58:48 +00:00
Angus Gratton
a699475df2 Merge branch 'bugfix/fix_ppos_ci_python3' into 'release/v4.2'
CI: fix ppos test app python3 error (v4.2)

See merge request espressif/esp-idf!13592
2021-05-19 06:58:41 +00:00
Marius Vikhammer
b5976a7167 CI: fix error when running pppos test app with python3
Socket.sendall expects bytes in python3, not strings
2021-05-19 11:42:42 +08:00
Prasad Alatkar
1c7340d229 NimBLE: Update submodule to fix host flow control bugs. 2021-05-18 18:10:19 +05:30
Prasad Alatkar
b3e1829f10 NimBLE: Fix host flow control in NimBLE porting layer.
- Register `ble_hs_flow_acl_free` callback in NimBLE porting layer.
2021-05-17 14:16:19 +05:30
Kang Zuoling
2515cd72c1 touch_sensor: fix esp32s2 touch sensor default power source 2021-05-15 13:52:37 +08:00
Jiang Jiang Jian
8a841d7cdf Merge branch 'bugfix/gtk_reinstallation_fix_v4.2' into 'release/v4.2'
wpa_supplicant: Prevent reinstallation of an already in-use group key (v4.2)

See merge request espressif/esp-idf!13182
2021-05-13 04:30:53 +00:00
Hrudaynath Dhabe
31d05a5072 wpa_supplicant: Group key reinstallation fixes
This commit reverts previous commit for GTK reinstallation fix
and corrects original fix.
2021-05-13 12:30:44 +08:00
Jiang Jiang Jian
bfb7c66a9f Merge branch 'bugfix/timer_spinlock_iram_v4.2' into 'release/v4.2'
timer: add IRAM_ATTR to spinlock give/take API (v4.2)

See merge request espressif/esp-idf!13512
2021-05-13 04:30:02 +00:00
Marius Vikhammer
3bb84e7738 ci: fix flash encryption example test esptool args
Esptool submodule got updated which changed the function signature for EncryptFlashDataArgs.

Update example test script to reflect the new function signature
2021-05-13 11:05:32 +08:00
Marius Vikhammer
ff4ca61cc6 timer: add IRAM_ATTR to spinlock give/take API
Closes https://github.com/espressif/esp-idf/issues/6824
2021-05-11 15:32:37 +08:00
Angus Gratton
f195a1d8ae Merge branch 'bugfix/otatool_wrong_switch_ota_partition_slots_v4.2' into 'release/v4.2'
otatool: Fix incorrect using otadata.seq&crc in switch_ota_partition cmd (v4.2)

See merge request espressif/esp-idf!13368
2021-05-11 01:27:53 +00:00
Angus Gratton
d52331849e Merge branch 'bugfix/flash_rodata_any_alignement_v4.2' into 'release/v4.2'
build: Fix cache issue and add dedicated section for (Custom) App version info (backport v4.2)

See merge request espressif/esp-idf!13465
2021-05-11 01:03:12 +00:00
Jiang Jiang Jian
d29cce7f0a Merge branch 'bugfix/fix_some_pm_issue_v4.2' into 'release/v4.2'
esp_pm: add an interface to get pm configuration (backport to v4.2)

See merge request espressif/esp-idf!13124
2021-05-10 03:45:55 +00:00
Jiang Jiang Jian
6b47fcdbdc Merge branch 'bugfix/correct_cod_check_v4.2' into 'release/v4.2'
esp-idf: Corrected check of Class of Device for discovered devices (v4.2)

See merge request espressif/esp-idf!13020
2021-05-10 03:45:35 +00:00
Jiang Jiang Jian
9a2362b5c7 Merge branch 'nimble/add_error_prints_acl_buf_v4.2' into 'release/v4.2'
NimBLE: Add error prints for ACL buffer exhaustion in NPL (v4.2)

See merge request espressif/esp-idf!12969
2021-05-10 03:45:08 +00:00
Jiang Jiang Jian
abe7a9d020 Merge branch 'bugfix/wifi_softap_deep_sleep_current_opt_v4.2' into 'release/v4.2'
backport v4.2: optimize deep sleep current in wifi softap mode

See merge request espressif/esp-idf!13393
2021-05-10 03:44:29 +00:00
Jiang Jiang Jian
9f63baf061 Merge branch 'bugfix/generate_value_0_when_prov_auth_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix provisioning input or output count number should be at least 1 (v4.2)

See merge request espressif/esp-idf!13479
2021-05-10 03:42:24 +00:00
Omar Chebib
bf4320ba68 ci: fix flasher_args.json parser (iterate over dictionary)
Closes IDFCI-347
2021-05-10 11:18:09 +08:00
Omar Chebib
5c175721e9 ci: use "encrypted" information in flasher_args.json
Take into account the new field "encrypted" that is part of the
partition entries in flasher_args.json file
Closes IDF-2231
2021-05-10 11:18:09 +08:00
Omar Chebib
78ea042e7d esptool: Update esptool to have merge adjacent sections feature 2021-05-10 11:18:09 +08:00
Ivan Grokhotkov
af7b21851e freertos: fix TLS run-time address calculation
Since dd849ffc, _rodata_start label has been moved to a different
linker output section from where the TLS templates (.tdata, .tbss)
are located. Since link-time addresses of thread-local variables are
calculated relative to the section start address, this resulted in
incorrect calculation of THREADPTR/$tp registers.

Fix by introducing new linker label, _flash_rodata_start, which points
to the .flash.rodata output section where TLS variables are located,
and use it when calculating THREADPTR/$tp.

Also remove the hardcoded rodata section alignment for Xtensa targets.
Alignment of rodata can be affected by the user application, which is
the issue dd849ffc was fixing. To accommodate any possible alignment,
save it in a linker label (_flash_rodata_align) and then use when
calculating THREADPTR. Note that this is not required on RISC-V, since
this target doesn't use TPOFF.
2021-05-10 11:18:09 +08:00
Omar Chebib
974b8dd4c4 build: (Custom) App version info is now on a dedicated section, independent of the rodata alignment
It is now possible to have any alignment restriction on rodata in the user
applicaiton. It will not affect the first section which must be aligned
on a 16-byte bound.

Closes https://github.com/espressif/esp-idf/issues/6719
Closes https://github.com/espressif/esp-idf/issues/6976
2021-05-10 11:17:58 +08:00
Jiang Jiang Jian
87da4bccd4 Merge branch 'bugfix/btdm_fix_multi-con_pair_failed_and_cancle_con_state_err_v4.2' into 'release/v4.2'
fix multi con pair failed and cancel con state err (backport v4.2)

See merge request espressif/esp-idf!13475
2021-05-08 12:53:35 +00:00
wangjialiang
c68f520389 ble_mesh: stack: Fix provisioning input or output count number should be at least 1
Closes https://github.com/espressif/esp-idf/issues/6863
2021-05-08 11:49:25 +08:00
Krzysztof Budzynski
232786235b Merge branch 'docs/update_CN_buildsystem_v4.2' into 'release/v4.2'
update CN translation for build-system for v4.2

See merge request espressif/esp-idf!13291
2021-05-08 03:36:01 +00:00
Dai Zi Yan
61fdb62c54 update CN translation for build-system for v4.2 2021-05-08 11:35:56 +08:00
Island
c4155d4b47 Merge branch 'bugfix/endianness_in_output_or_input_oob_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix endianness error in output or input oob data of number (v4.2)

See merge request espressif/esp-idf!13255
2021-05-07 13:45:15 +00:00
zwj
34e8265821 update con state when getting connection cancle complete 2021-05-07 20:47:34 +08:00
zwj
3ebcb25fb1 fix multi-connection pair failed 2021-05-07 20:46:50 +08:00
Wang Meng Yang
7223c8db5b Merge branch 'bugfix/btdm_incorrectly_spelled_v4.2' into 'release/v4.2'
component/bt: fix Spelling mistakes (release v4.2)

See merge request espressif/esp-idf!12816
2021-05-07 08:10:02 +00:00
Angus Gratton
fc7bf950f3 Merge branch 'bugfix/freertos_addition_overflow_v4.2' into 'release/v4.2'
freertos: Fix addition overflow (v4.2)

See merge request espressif/esp-idf!13423
2021-05-07 07:52:31 +00:00
wangjialiang
c37b15fa22 ble_mesh: stack: Fix endianness error in output or input oob data of number
Closes https://github.com/espressif/esp-idf/issues/6862
2021-05-07 03:33:59 +00:00
Michael (XIAO Xufeng)
e3fd4b097b Merge branch 'bugfix/spi_fix_duplex_switch_v4.2' into 'release/v4.2'
spi_master: fix duplex mode switch issue for multi devices (4.2)

See merge request espressif/esp-idf!11233
2021-05-06 07:43:40 +00:00
xiehang
86141ad01c esp_wifi: Fix setting channel error after WiFi stop 2021-05-06 11:40:57 +08:00
He Yin Ling
223cf48c26 Merge branch 'bugfix/python3_target_test_4.2' into 'release/v4.2'
ci: run target test with python3

See merge request espressif/esp-idf!12755
2021-05-06 02:19:19 +00:00
Angus Gratton
6d9d40e888 Merge branch 'bugfix/fix_bootloader_time_too_long_bug_v4.2' into 'release/v4.2'
esp32s2: decrease boot up and cpu start up time (backport v4.2)

See merge request espressif/esp-idf!12729
2021-05-06 02:03:10 +00:00
Angus Gratton
45c90be913 Merge branch 'update/version_4_2_1' into 'release/v4.2'
Update version to 4.2.1

See merge request espressif/esp-idf!13390
2021-05-05 23:12:32 +00:00
Krzysztof Budzynski
e7dc6eb8da Merge branch 'bugfix/doxygen_input_file_bug_v4.2' into 'release/v4.2'
docs: fix doxygen compile warnings for doxygen 1.9.1 (v4.2)

See merge request espressif/esp-idf!13076
2021-05-05 10:14:19 +00:00
Marius Vikhammer
56e7cb0c70 docs: fix doxygen compile warnings for doxygen 1.9.1
Newer versions of doxygen will give warnings for comments in
INPUT lists

Delete all comment lines to fix these warnings, our folder structure
stil gives an OK overview of what we are including
2021-05-05 18:14:19 +08:00
Krzysztof Budzynski
ad095f555b Merge branch 'docs/update_ESP32-S2-Kaluga-Kit_user_guide' into 'release/v4.2'
Update kaluga user guides for v1.3

See merge request espressif/esp-idf!12895
2021-05-05 10:11:36 +00:00
chaijie
e349f1b484 esp32s2: Decrease boot up time by delete useless slow clock calibration 2021-05-05 06:57:05 +00:00
Angus Gratton
be8295a918 Merge branch 'bugfix/ttfw_example_test_fails_port_remains_open_v4.2' into 'release/v4.2'
ci: Fix CI issue if one example test fails, and if serial port returns some noise (v4.2)

See merge request espressif/esp-idf!12381
2021-05-04 23:25:45 +00:00
Angus Gratton
c8912b79a6 freertos: Check for arithmetic overflows on queue creation
Addition overflow check is from FreeRTOS kernel commit 47338393f1f79558f6144213409f09f81d7c4837
2021-05-04 18:35:04 +10:00
Angus Gratton
5b932aa144 cmake: Improve the error message if the Python interpreter fails to run
RESULT_VARIABLE will return a string not a number in this case, so display it
for the user.
2021-05-04 07:54:20 +00:00
Angus Gratton
c52417eaba cmake: Set IDFTOOL variable using the correct PYTHON interpreter variable 2021-05-04 07:54:20 +00:00
Angus Gratton
48d075f87b cmake: Fix passing PYTHON path via CMake variable if using IDF as library
Closes https://github.com/espressif/esp-idf/issues/6285
2021-05-04 07:54:20 +00:00
Mahavir Jain
ec510fdf18 Merge branch 'bugfix/deep_sleep_skip_verify_rtc_mem_heap_v4.2' into 'release/v4.2'
Fix bootloader "skip validate on exiting deep sleep" option if "use RTC memory as heap" is enabled (v4.2)

See merge request espressif/esp-idf!13097
2021-05-03 13:44:06 +00:00
Mahavir Jain
e8f5b76112 Merge branch 'bugfix/fix_mbedtls_send_alert_crash_v4.2' into 'release/v4.2'
mbedtls: fix mbedtls dynamic resource memory leaks and mbedtls_ssl_send_alert_message crash due to ssl->out_iv is NULL[backport v4.2]

See merge request espressif/esp-idf!13301
2021-05-03 13:37:36 +00:00
Mahavir Jain
0f0cfb2cbc Merge branch 'bugfix/esp_http_client_read_v4.2' into 'release/v4.2'
Fix esp_http_client_read for file size aligned to 289 bytes (v4.2)

See merge request espressif/esp-idf!13306
2021-05-03 13:36:51 +00:00
Roland Dobai
62589fa251 tools: Add various fixes for idf.py gdbgui
Closes https://github.com/espressif/esp-idf/issues/5968
2021-05-03 11:43:36 +02:00
Angus Gratton
1cffa733a5 ci: Use GitHub Actions to generate recursive source code zips for releases
We do this for all ESP-IDF releases, this step automates it.

Uses action added in https://github.com/espressif/github-actions/pull/10
2021-05-03 04:19:49 +00:00
Li Shuai
f16e8cb48e deep sleep: optimize sleep current in wifi softap mode 2021-04-29 10:51:42 +08:00
yuanjm
532912b025 mbedtls: Fix mbedtls_ssl_send_alert_message crash due to ssl->out_iv is NULL 2021-04-28 09:11:15 +00:00
Dong Heng
176d6fa4d0 fix(mbedtls): fix mbedtls dynamic resource memory leaks and RSA cert drop earlier
RX process caches the session information in "ssl->in_ctr" not in "ssl->in_buf".
So when freeing the SSL, can't free the "ssl->in_ctr", because the "ssl->in_buf"
is empty.

Make the RX process like TX process, and cache the session information in
"ssl->in_buf", so that the cache buffer can be freed when freeing the SSL.

Closes https://github.com/espressif/esp-idf/issues/6104
2021-04-28 09:11:15 +00:00
Shubham Kulkarni
7ad3837244 esp_http_client_read: Add check for esp_http_client_is_complete_data_received before returning ESP_FAIL
Closes: https://github.com/espressif/esp-idf/issues/6772
2021-04-28 05:01:11 +00:00
KonstantinKondrashov
e7f75e6559 otatool: Fix incorrect using otadata.seq&crc in switch_ota_partition cmd
Closes: https://github.com/espressif/esp-idf/issues/6773
2021-04-27 19:39:50 +08:00
wuzhenghui
03e6d07b50 remove othercore cache disable 2021-04-27 14:39:49 +08:00
Marek Fiala
c71b1f6d4d Human-readable error if Git or Python are missing.
When user forgot to add git.exe or python to the PATH, there was a not
very helpful error message.
This improves the error with which tool is misssing and shows a link to
the espressif installer tool.
2021-04-26 14:12:07 +02:00
Marek Fiala
40b7ea1f95 tools: Warning about tool beiing installed but failed to run.
idf_tool.py runs "<tool> --version" which returns the error message but it is not used
This improves the error printing.
2021-04-26 13:57:45 +02:00
Natasha
48d3badc0f update kaluga user guides for v1.3 2021-04-26 07:07:54 +00:00
Chen Yudong
fa270d72c7 ci: using python3 to tun target test 2021-04-26 06:35:42 +00:00
Angus Gratton
baaf4de703 ci: Fix missing sys.stdout.encoding in python2 runners
Regression in fed98cd6ad
2021-04-23 23:09:58 +00:00
Angus Gratton
34a84c829c ci: ttfw: Encode serial port data to whatever the console encoding is
This is a bit of a hack, but gives us a way to always log it
2021-04-23 23:09:58 +00:00
Angus Gratton
340e2dff12 ci: Log failure to close any DUT 2021-04-23 23:09:58 +00:00
Angus Gratton
c8d15588e5 Merge branch 'bugfix/rtc_fast_memory_force_on_in_use_for_heap_backport_v4.2' into 'release/v4.2'
Bugfix/rtc fast memory force on in use for heap (backport v4.2)

See merge request espressif/esp-idf!12873
2021-04-23 09:06:40 +00:00
Angus Gratton
8de16142a5 bootloader: Fix "skip validate on exit deep sleep" when "Use RTC fast memory as heap" is enabled
RTC region used to store boot partition needs to remain reserved in the app.
2021-04-16 10:50:55 +10:00
ninh
e378ecd6cf esp_pm: add an interface to get pm configuration (backport to v4.2) 2021-04-13 17:15:35 +08:00
Marius Vikhammer
d20b442af2 rtc: increase CI acceptance range for calc 8M test 2021-04-09 15:06:20 +08:00
Juraj Michálek
e74fbf6608 tools: handle exception in case of logging Unicode characters 2021-04-06 19:16:39 +02:00
Rahul Tank
726ce37b14 esp-idf: Corrected check of Class of Device for discovered devices
Current code stopped inquiry if major class is not Phone. Modified the
condition to consider for both Phone and Audio to cover majority of real
world devices.

Closes https://github.com/espressif/esp-idf/issues/6548
2021-04-05 15:29:31 +05:30
aleks
df079d4ca9 soc/uart: update uart low level functions used in isr with force inline attribute 2021-03-31 17:46:17 +02:00
Prasad Alatkar
2ec1b7434e NimBLE: Add error prints for ACL buffer exhaustion in NPL 2021-03-31 10:43:19 +05:30
fuzhibo
9cb875949c fix: RTC_FAST_MEM always power on if used for heap 2021-03-24 11:52:55 +08:00
XieWenxiang
bfa07bb9d8 component/bt: Modify some ambiguous descriptions (release v4.2) 2021-03-23 23:10:51 +08:00
Armando
929632739a spi: fix duplex mode switch issue for multi devices 2021-01-07 11:56:16 +08:00
1098 changed files with 40579 additions and 32315 deletions

87
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,87 @@
name: docker
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
on:
push:
branches:
- 'master'
- 'release/*'
tags:
- 'v*.*'
env:
# Platforms to build the image for
BUILD_PLATFORMS: linux/amd64
DOCKERHUB_REPO: ${{ github.repository_owner }}/idf
jobs:
docker:
# Disable the job in forks
if: ${{ github.repository_owner == 'espressif' }}
runs-on: ubuntu-latest
steps:
# Depending on the branch/tag, set CLONE_BRANCH_OR_TAG variable (used in the Dockerfile
# as a build arg) and TAG_NAME (used when tagging the image).
#
# The following 3 steps cover the alternatives (tag, release branch, master branch):
- name: Set variables (tags)
if: ${{ github.ref_type == 'tag' }}
run: |
echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV
echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Set variables (release branches)
if: ${{ github.ref_type == 'branch' && startsWith(github.ref_name, 'release/') }}
run: |
echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV
echo "TAG_NAME=release-${GITHUB_REF_NAME##release/}" >> $GITHUB_ENV
- name: Set variables (main branch)
if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }}
run: |
echo "CLONE_BRANCH_OR_TAG=master" >> $GITHUB_ENV
echo "TAG_NAME=latest" >> $GITHUB_ENV
# Display the variables set above, just in case.
- name: Check variables
run: |
echo "CLONE_BRANCH_OR_TAG: $CLONE_BRANCH_OR_TAG"
echo "CHECKOUT_REF: $CHECKOUT_REF"
echo "TAG_NAME: $TAG_NAME"
# The following steps are the standard boilerplate from
# https://github.com/marketplace/actions/build-and-push-docker-images
- name: Checkout
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU for multiarch builds
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v3
with:
context: tools/docker
push: true
tags: ${{ env.DOCKERHUB_REPO }}:${{ env.TAG_NAME }}
platforms: ${{ env.BUILD_PLATFORMS }}
build-args: |
IDF_CLONE_URL=${{ github.server_url }}/${{ github.repository }}.git
IDF_CLONE_BRANCH_OR_TAG=${{ env.CLONE_BRANCH_OR_TAG }}
- name: Update Docker Hub repository description (master branch)
if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }}
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
# Token based authentication is not supported here:
# https://github.com/peter-evans/dockerhub-description/issues/10
# https://github.com/docker/roadmap/issues/115#issuecomment-891694974
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: ${{ env.DOCKERHUB_REPO }}
readme-filepath: ./tools/docker/README.md

17
.github/workflows/release_zips.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Create zip file with recursive source clone for release
on:
push:
tags:
- v*
jobs:
release_zips:
name: Create release zip file
runs-on: ubuntu-20.04
steps:
- name: Create a recursive clone source zip
uses: espressif/github-actions/release_zips@master
env:
RELEASE_PROJECT_NAME: ESP-IDF
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

3
.gitignore vendored
View File

@@ -83,3 +83,6 @@ build
# lock files for examples and components
dependencies.lock
# managed_components for examples
managed_components

View File

@@ -57,8 +57,6 @@ variables:
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/v3.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:v7"
@@ -80,6 +78,8 @@ variables:
python $SUBMODULE_FETCH_TOOL -s $SUBMODULES_TO_FETCH
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
# apply bot filter in before script
- *apply_bot_filter
@@ -101,6 +101,8 @@ before_script:
GIT_SUBMODULE_STRATEGY: none
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
@@ -110,6 +112,8 @@ before_script:
GIT_SUBMODULE_STRATEGY: none
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 in before script
- *apply_bot_filter
@@ -144,7 +148,12 @@ before_script:
- macos_shell
dependencies: []
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
@@ -157,6 +166,12 @@ before_script:
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
- *fetch_submodules
default:
retry:
max: 2
# In case of a runner failure we could hop to another one, or a network error could go away.
when: runner_system_failure
include:
- '/tools/ci/config/pre_check.yml'
- '/tools/ci/config/build.yml'

6
.gitlab/CODEOWNERS Normal file
View File

@@ -0,0 +1,6 @@
# For the syntax of this file, see:
#
# https://docs.gitlab.com/ee/user/project/code_owners.html#the-syntax-of-code-owners-files
#
* @esp-idf-codeowners/all-maintainers

View File

@@ -74,6 +74,10 @@ if(CONFIG_COMPILER_DISABLE_GCC8_WARNINGS)
"-Wno-int-in-bool-context")
endif()
if(CONFIG_COMPILER_WARN_WRITE_STRINGS)
list(APPEND compile_options "-Wwrite-strings")
endif()
if(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
list(APPEND compile_definitions "-DNDEBUG")
endif()

View File

@@ -114,7 +114,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
mon reset halt
# Run to a specific point in ROM code,
# where most of initialization is complete.
thb *0x40007901
thb *0x40007d54
c
# Load the application into RAM
load

View File

@@ -2,20 +2,15 @@
* [中文版](./README_CN.md)
ESP-IDF is the official development framework for the **ESP32** and **ESP32-S** Series SoCs provided for Windows, Linux and macOS.
ESP-IDF is the development framework for Espressif SoCs (released after 2016<sup>[1](#fn1)</sup>) provided for Windows, Linux and macOS.
# Developing With ESP-IDF
## Setting Up ESP-IDF
See setup guides for detailed instructions to set up the ESP-IDF:
See https://idf.espressif.com/ for links to detailed instructions on how to set up the ESP-IDF depending on chip you use.
| Chip | Getting Started Guides for ESP-IDF |
|:----:|:----|
| <img src="docs/_static/chip-esp32.svg" height="85" alt="ESP32"> | <ul><li>[stable](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/) version</li><li>[latest (master branch)](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/) version</li></ul> |
| <img src="docs/_static/chip-esp32-s2.svg" height="100" alt="ESP32-S2"> | <ul><li>[latest (master branch)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/) version</li></ul> |
**Note:** Each ESP-IDF release has its own documentation. Please see Section [Versions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html) how to find documentation and how to checkout specific release of ESP-IDF.
**Note:** Each SoC series and each ESP-IDF release has its own documentation. Please see Section [Versions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html) on how to find documentation and how to checkout specific release of ESP-IDF.
### Non-GitHub forks
@@ -70,7 +65,7 @@ You don't need to run `idf.py build` before running `idf.py flash`, `idf.py flas
## Viewing Serial Output
The `idf.py monitor` target uses the [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from ESP32 or ESP32-S Series SoCs. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
The `idf.py monitor` target uses the [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from Espressif SoCs. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
Exit the monitor by typing Ctrl-].
@@ -106,3 +101,6 @@ This can be combined with other targets, ie `idf.py -p PORT erase_flash flash` w
* If you're interested in contributing to ESP-IDF, please check the [Contributions Guide](https://docs.espressif.com/projects/esp-idf/en/latest/contribute/index.html).
________
<a name="fn1">1</a>: ESP8266 and ESP8285 are not supported in ESP-IDF. See [RTOS SDK](https://github.com/espressif/ESP8266_RTOS_SDK) instead.

View File

@@ -2,26 +2,22 @@
* [English Version](./README.md)
ESP-IDF 是由乐鑫官方推出的针对 **ESP32****ESP32-S2** 系列芯片的开发框架
ESP-IDF 是由乐鑫官方针对乐鑫各系列芯片产品(发布于 2016 年后<sup>[1](#fn1)</sup>)推出的开发框架,支持 Windows、Linux 和 macOS 操作系统
# 使用 ESP-IDF 进行开发
## 搭建 ESP-IDF 开发环境
请参阅如下指南搭建 ESP-IDF 的开发环境
| 芯片 | ESP-IDF 入门指南 |
|:----:|:----|
| <img src="docs/_static/chip-esp32.svg" height="85" alt="ESP32"> | <ul><li>[稳定](https://docs.espressif.com/projects/esp-idf/zh_CN/stable/get-started/) 版</li><li>[最新master 分支)](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/) 版本</li></ul> |
| <img src="docs/_static/chip-esp32-s2.svg" height="100" alt="ESP32-S2"> | <ul><li>[最新master 分支)](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/get-started/) 版本</li></ul> |
**注意:** 每个 ESP-IDF 版本都有其对应的文档。 请参阅 [版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html) 部分如何查找文档以及如何检出ESP-IDF的特定发行版。
关于不同芯片如何搭建 ESP-IDF 的开发环境,请参考 https://idf.espressif.com/。
**注意:** 不同系列芯片和不同 ESP-IDF 版本都有其对应的文档。请参阅[版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html)部分,获得关于如何查找文档以及如何检出 ESP-IDF 的特定发行版的详细信息。
### 非 GitHub 分叉的 ESP-IDF 项目
ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodules)),所以它们会指向 GitHub。
如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该[脚本](tools/set-submodules-to-github.sh)。它会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新
如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该脚本 [tools/set-submodules-to-github.sh](tools/set-submodules-to-github.sh)
这个脚本会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新。
如果 ESP-IDF 是从 GitHub 上克隆得到,则不需要此步骤。
## 寻找项目
@@ -38,24 +34,16 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
## 设置构建环境
请参考入门指南中列出的详细步骤。
* 在主机中安装入门指南中提到的构建所依赖的工具。
* 将 ESP-IDF 中的 `tools/` 目录加入 PATH 环境变量中。
* 运行 `python -m pip install -r requirements.txt` 安装 Python 依赖库。
请参考入门指南中列出的详细步骤。
* 在主机中安装入门指南中提到的构建所依赖的工具。
* 运行安装脚本来设置构建环境。可为 Windows shell 选择 `install.bat``install.ps1`,为 Unix shell 选择 `install.sh``install.fish`
* 在使用 ESP-IDF 之前,需要在 shell 中运行导出脚本。Windows 下可运行 `export.bat`Unix 下可运行 `source export.sh`
## 配置项目
`idf.py menuconfig`
* 打开项目的文本配置菜单。
* 使用上下键浏览菜单。
* 使用回车键进入子菜单,退出键返回上一级菜单或者退出配置。
* 输入 `?` 查看帮助界面,按下回车键可以退出帮助界面。
* 使用空格键或者 `Y``N` 按键来启用和禁用带复选框“`[*]`”的配置项。
* 高亮某个配置项的同时按下 `?` 键可以显示该选项的帮助文档。
* 输入 `/` 可以搜索指定的配置项。
一旦配置完成,请按下退出键多次以退出配置界面,当提示是否保存新的的配置时,选择 “Yes”。
* `idf.py set-target <chip_name>` 可将项目的目标芯片设置为 `<chip_name>`。运行 `idf.py set-target`,不用带任何参数,可查看所有支持的目标芯片列表。
* `idf.py menuconfig` 可打开一个基于文本的配置菜单,可以用来对项目进行配置。
## 编译项目
@@ -65,23 +53,23 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
## 烧写项目
当构建结束,终端会打印出一条命令行,告知如何使用 esptool.py 工具烧写项目到芯片中。但是你还可以运行下面这条命令来自动烧写:
当构建结束,终端会打印出一条命令行,告知如何使用 esptool.py 工具烧写项目到芯片中。但你也可以运行下面这条命令来自动烧写:
`idf.py -p PORT flash`
将其中的 PORT 替换为系统中实际串口的名字(比如 Windows 下的 `COM3`Linux 下的 `/dev/ttyUSB0`,或者 MacOS 下的 `/dev/cu.usbserial-X`。如果省略 `-p` 选项,`idf.py flash` 会尝试使用第一个可用的串口进行烧写。
将其中的 PORT 替换为系统中实际串口的名字(比如 Windows 下的 `COM3`Linux 下的 `/dev/ttyUSB0`,或者 macOS 下的 `/dev/cu.usbserial-X`。如果省略 `-p` 选项,`idf.py flash` 会尝试使用第一个可用的串口进行烧写。
这会烧写整个项目(包括应用程序,引导程序和分区表)到芯片中,此外还可以使用 `idf.py menuconfig` 来调整串口烧写相关的配置。
你也不必先运行 `idf.py build`再运行 `idf.py flash``idf.py flash` 会根据需要自动重新构建项目。
不必先运行 `idf.py build` 再运行 `idf.py flash``idf.py flash` 会根据需要自动重新构建项目。
## 观察串口输入
`idf.py monitor` 会调用 [idf_monitor 工具](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html)来显示 ESP32 和 ESP32-S2 的串口输出。`idf_monitor` 还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。更多详细内容,请参阅[文档](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
`idf.py monitor` 会调用 [idf_monitor 工具](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html)来显示乐鑫芯片的串口输出。`idf_monitor` 还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。更多详细内容,请参阅[文档](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
输入 `Ctrl-]` 可退出监视器。
想要一次性执行构建烧写和监视,可以运行如下命令:
想要一次性执行构建烧写和监视,可以运行如下命令:
`idf.py flash monitor`
@@ -92,24 +80,27 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
* `idf.py app` - 仅构建应用程序。
* `idf.py app-flash` - 仅烧写应用程序。
`idf.py app-flash` 会自动判断是否有源文件发生了改变后重新构建应用程序。
`idf.py app-flash` 会自动判断是否有源文件发生了改变后重新构建应用程序。
(在正常的开发中,即使引导程序和分区表没有发生变化,每次都重新烧写它们并不会带来什么危害。)
## 擦除 Flash
`idf.py flash` 并不会擦除 Flash 上所有的内容,但是有时候我们需要设备恢复到完全擦除的状态,尤其是分区表发生了变化或者 OTA 应用升级。要擦除整块 Flash 请运行 `idf.py erase_flash`
`idf.py flash` 并不会擦除 flash 上所有的内容,但是有时候我们需要设备恢复到完全擦除的状态,尤其是分区表发生了变化或者 OTA 应用升级。要擦除整块 flash 请运行 `idf.py erase_flash`
这条命令还可以和其余命令整合在一起,`idf.py -p PORT erase_flash flash` 会擦除一切然后重新烧写新的应用程序引导程序和分区表。
这条命令还可以和其余命令整合在一起,`idf.py -p PORT erase_flash flash` 会擦除一切然后重新烧写新的应用程序引导程序和分区表。
# 其它参考资源
* 最新版的文档https://docs.espressif.com/projects/esp-idf/ ,该文档是由本仓库 [docs 目录](docs) 构建得到。
* 最新版的文档https://docs.espressif.com/projects/esp-idf/,该文档是由本仓库 [docs 目录](docs) 构建得到。
* 可以前往 [esp32.com 论坛](https://esp32.com/) 提问,挖掘社区资源。
* 如果你在使用中发现了错误或者需要新的功能,请先[查看 GitHub Issues](https://github.com/espressif/esp-idf/issues),确保该问题不会被重复提交。
* 如果你在使用中发现了错误或者需要新的功能,请先[查看 GitHub Issues](https://github.com/espressif/esp-idf/issues),确保该问题没有重复提交。
* 如果你有兴趣为 ESP-IDF 作贡献,请先阅读[贡献指南](https://docs.espressif.com/projects/esp-idf/en/latest/contribute/index.html)。
__________
<a name="fn1">1</a>: ESP-IDF 不支持 ESP8266 和 ESP8285。如有需要请参考 [RTOS SDK](https://github.com/espressif/ESP8266_RTOS_SDK)。

View File

@@ -30,13 +30,17 @@ endif()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_REQUIRES soc
PRIV_REQUIRES soc esp_ipc
LDFRAGMENTS linker.lf)
# disable --coverage for this component, as it is used as transport
# for gcov
target_compile_options(${COMPONENT_LIB} PRIVATE "-fno-profile-arcs" "-fno-test-coverage")
# Force app_trace to also appear later than gcov in link line
idf_component_get_property(app_trace app_trace COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${app_trace}> gcov $<TARGET_FILE:${app_trace}> c)
if(CONFIG_APPTRACE_GCOV_ENABLE)
# disable --coverage for this component, as it is used as transport
# for gcov
target_compile_options(${COMPONENT_LIB} PRIVATE "-fno-profile-arcs" "-fno-test-coverage")
# Force app_trace to also appear later than gcov in link line
idf_component_get_property(app_trace app_trace COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} INTERFACE
"-Wl,--undefined=gcov_rtio_atexit" $<TARGET_FILE:${app_trace}> gcov $<TARGET_FILE:${app_trace}> c)
endif()

View File

@@ -8,11 +8,7 @@ COMPONENT_ADD_INCLUDEDIRS = include
COMPONENT_ADD_LDFLAGS = -lapp_trace
# do not produce gcov info for this module, it is used as transport for gcov
CFLAGS := $(subst --coverage,,$(CFLAGS))
ifdef CONFIG_SYSVIEW_ENABLE
COMPONENT_ADD_INCLUDEDIRS += \
sys_view/Config \
sys_view/SEGGER \
@@ -26,7 +22,12 @@ COMPONENT_SRCDIRS += \
sys_view/esp32 \
sys_view/ext
else
ifdef CONFIG_APPTRACE_GCOV_ENABLE
# do not produce gcov info for this module, it is used as transport for gcov
CFLAGS := $(subst --coverage,,$(CFLAGS))
COMPONENT_ADD_LDFLAGS += -Wl,--undefined=gcov_rtio_atexit
COMPONENT_SRCDIRS += gcov
endif
endif
COMPONENT_ADD_LDFRAGMENTS += linker.lf

View File

@@ -22,7 +22,9 @@
#include "soc/cpu.h"
#include "soc/timer_periph.h"
#include "esp_app_trace.h"
#include "esp_freertos_hooks.h"
#include "esp_private/dbg_stubs.h"
#include "esp_ipc.h"
#include "hal/wdt_hal.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/libc_stubs.h"
@@ -37,128 +39,113 @@
#define LOG_LOCAL_LEVEL CONFIG_LOG_DEFAULT_LEVEL
#include "esp_log.h"
const static char *TAG = "esp_gcov_rtio";
static volatile bool s_create_gcov_task = false;
static volatile bool s_gcov_task_running = false;
extern void __gcov_dump(void);
extern void __gcov_reset(void);
static struct syscall_stub_table s_gcov_stub_table;
static int gcov_stub_lock_try_acquire_recursive(_lock_t *lock)
void gcov_dump_task(void *pvParameter)
{
if (*lock && uxSemaphoreGetCount((xSemaphoreHandle)(*lock)) == 0) {
// we can do nothing here, gcov dump is initiated with some resource locked
// which is also used by gcov functions
ESP_EARLY_LOGE(TAG, "Lock 0x%x is busy during GCOV dump! System state can be inconsistent after dump!", lock);
}
return pdTRUE;
}
int dump_result = 0;
bool *running = (bool *)pvParameter;
static void gcov_stub_lock_acquire_recursive(_lock_t *lock)
{
gcov_stub_lock_try_acquire_recursive(lock);
}
ESP_EARLY_LOGV(TAG, "%s stack use in %d", __FUNCTION__, uxTaskGetStackHighWaterMark(NULL));
static void gcov_stub_lock_release_recursive(_lock_t *lock)
{
}
static int esp_dbg_stub_gcov_dump_do(void)
{
int ret = ESP_OK;
FILE* old_stderr = stderr;
FILE* old_stdout = stdout;
static struct syscall_stub_table *old_tables[portNUM_PROCESSORS];
old_tables[0] = syscall_table_ptr_pro;
#if portNUM_PROCESSORS > 1
old_tables[1] = syscall_table_ptr_app;
#endif
ESP_EARLY_LOGV(TAG, "Alloc apptrace down buf %d bytes", ESP_GCOV_DOWN_BUF_SIZE);
void *down_buf = malloc(ESP_GCOV_DOWN_BUF_SIZE);
if (down_buf == NULL) {
ESP_EARLY_LOGE(TAG, "Could not allocate memory for the buffer");
return ESP_ERR_NO_MEM;
dump_result = ESP_ERR_NO_MEM;
goto gcov_exit;
}
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
/* we are directing the std outputs to the fake ones in order to reduce stack usage */
FILE *old_stderr = stderr;
FILE *old_stdout = stdout;
stderr = (FILE *) &__sf_fake_stderr;
stdout = (FILE *) &__sf_fake_stdout;
ESP_EARLY_LOGV(TAG, "Dump data...");
// incase of dual-core chip APP and PRO CPUs share the same table, so it is safe to save only PRO's table
memcpy(&s_gcov_stub_table, syscall_table_ptr_pro, sizeof(s_gcov_stub_table));
s_gcov_stub_table._lock_acquire_recursive = &gcov_stub_lock_acquire_recursive;
s_gcov_stub_table._lock_release_recursive = &gcov_stub_lock_release_recursive;
s_gcov_stub_table._lock_try_acquire_recursive = &gcov_stub_lock_try_acquire_recursive,
syscall_table_ptr_pro = &s_gcov_stub_table;
#if portNUM_PROCESSORS > 1
syscall_table_ptr_app = &s_gcov_stub_table;
#endif
stderr = (FILE*) &__sf_fake_stderr;
stdout = (FILE*) &__sf_fake_stdout;
__gcov_dump();
// reset dump status to allow incremental data accumulation
__gcov_reset();
stdout = old_stdout;
stderr = old_stderr;
syscall_table_ptr_pro = old_tables[0];
#if portNUM_PROCESSORS > 1
syscall_table_ptr_app = old_tables[1];
#endif
ESP_EARLY_LOGV(TAG, "Free apptrace down buf");
free(down_buf);
stderr = old_stderr;
stdout = old_stdout;
ESP_EARLY_LOGV(TAG, "Finish file transfer session");
ret = esp_apptrace_fstop(ESP_APPTRACE_DEST_TRAX);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", ret);
dump_result = esp_apptrace_fstop(ESP_APPTRACE_DEST_TRAX);
if (dump_result != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", dump_result);
}
gcov_exit:
ESP_EARLY_LOGV(TAG, "dump_result %d", dump_result);
if (running) {
*running = false;
}
ESP_EARLY_LOGV(TAG, "%s stack use out %d", __FUNCTION__, uxTaskGetStackHighWaterMark(NULL));
vTaskDelete(NULL);
}
void gcov_create_task(void *arg)
{
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
xTaskCreatePinnedToCore(&gcov_dump_task, "gcov_dump_task", 2048, (void *)&s_gcov_task_running, configMAX_PRIORITIES - 1, NULL, 0);
}
void gcov_create_task_tick_hook(void)
{
extern esp_err_t esp_ipc_start_gcov_from_isr(uint32_t cpu_id, esp_ipc_func_t func, void* arg);
if (s_create_gcov_task) {
if (esp_ipc_start_gcov_from_isr(xPortGetCoreID(), &gcov_create_task, NULL) == ESP_OK) {
s_create_gcov_task = false;
}
}
ESP_EARLY_LOGV(TAG, "exit %d", ret);
return ret;
}
/**
* @brief Triggers gcov info dump.
* @brief Triggers gcov info dump task
* This function is to be called by OpenOCD, not by normal user code.
* TODO: what about interrupted flash access (when cache disabled)???
* TODO: what about interrupted flash access (when cache disabled)
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
static int esp_dbg_stub_gcov_entry(void)
{
return esp_dbg_stub_gcov_dump_do();
/* we are in isr context here */
s_create_gcov_task = true;
return ESP_OK;
}
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
{
uint32_t capabilities = 0;
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
return 0;
if (esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_CAPABILITIES, &capabilities) == ESP_OK) {
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_CAPABILITIES, capabilities | ESP_DBG_STUB_CAP_GCOV_TASK);
}
esp_register_freertos_tick_hook(gcov_create_task_tick_hook);
return ESP_OK;
}
void esp_gcov_dump(void)
{
// disable IRQs on this CPU, other CPU is halted by OpenOCD
unsigned irq_state = portENTER_CRITICAL_NESTED();
#if !CONFIG_FREERTOS_UNICORE
int other_core = xPortGetCoreID() ? 0 : 1;
esp_cpu_stall(other_core);
#endif
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_TRAX)) {
wdt_hal_context_t twdt = {.inst = WDT_MWDT0, .mwdt_dev = &TIMERG0};
wdt_hal_context_t iwdt = {.inst = WDT_MWDT1, .mwdt_dev = &TIMERG1};
//Feed the Task Watchdog (TG0) to prevent it from timing out
wdt_hal_write_protect_disable(&twdt);
wdt_hal_feed(&twdt);
wdt_hal_write_protect_enable(&twdt);
//Likewise, feed the Interrupt Watchdog (TG1) to prevent a reboot
wdt_hal_write_protect_disable(&iwdt);
wdt_hal_feed(&iwdt);
wdt_hal_write_protect_enable(&iwdt);
vTaskDelay(pdMS_TO_TICKS(10));
}
esp_dbg_stub_gcov_dump_do();
#if !CONFIG_FREERTOS_UNICORE
esp_cpu_unstall(other_core);
#endif
portEXIT_CRITICAL_NESTED(irq_state);
/* We are not in isr context here. Waiting for the completion is safe */
s_gcov_task_running = true;
s_create_gcov_task = true;
while (s_gcov_task_running) {
vTaskDelay(pdMS_TO_TICKS(10));
}
}
void *gcov_rtio_fopen(const char *path, const char *mode)
@@ -177,7 +164,7 @@ int gcov_rtio_fclose(void *stream)
size_t gcov_rtio_fread(void *ptr, size_t size, size_t nmemb, void *stream)
{
ESP_EARLY_LOGV(TAG, "%s read %u", __FUNCTION__, size*nmemb);
ESP_EARLY_LOGV(TAG, "%s read %u", __FUNCTION__, size * nmemb);
size_t sz = esp_apptrace_fread(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
ESP_EARLY_LOGV(TAG, "%s actually read %u", __FUNCTION__, sz);
return sz;

View File

@@ -3,12 +3,13 @@ archive: libapp_trace.a
entries:
app_trace (noflash)
app_trace_util (noflash)
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp32 (noflash)
SEGGER_SYSVIEW_Config_FreeRTOS (noflash)
SEGGER_SYSVIEW_FreeRTOS (noflash)
if SYSVIEW_ENABLE = y:
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp32 (noflash)
SEGGER_SYSVIEW_Config_FreeRTOS (noflash)
SEGGER_SYSVIEW_FreeRTOS (noflash)
[mapping:driver]
[mapping:app_trace_driver]
archive: libdriver.a
entries:
if SYSVIEW_TS_SOURCE_TIMER_00 = y || SYSVIEW_TS_SOURCE_TIMER_01 = y

View File

@@ -89,7 +89,10 @@ int IRAM_ATTR esp_ota_get_app_elf_sha256(char* dst, size_t size)
static bool first_call = true;
if (first_call) {
first_call = false;
const uint8_t* src = esp_app_desc.app_elf_sha256;
// At -O2 optimization level, GCC optimizes out the copying of the first byte of the app_elf_sha256,
// because it is zero at compile time, and only modified afterwards by esptool.
// Casting to volatile disables the optimization.
const volatile uint8_t* src = (const volatile uint8_t*)esp_app_desc.app_elf_sha256;
for (size_t i = 0; i < sizeof(s_app_elf_sha256); ++i) {
s_app_elf_sha256[i] = src[i];
}

View File

@@ -49,7 +49,7 @@ typedef uint32_t esp_ota_handle_t;
/**
* @brief Return esp_app_desc structure. This structure includes app version.
*
*
* Return description for running app.
* @return Pointer to esp_app_desc structure.
*/
@@ -224,7 +224,7 @@ const esp_partition_t* esp_ota_get_next_update_partition(const esp_partition_t *
/**
* @brief Returns esp_app_desc structure for app partition. This structure includes app version.
*
*
* Returns a description for the requested app partition.
* @param[in] partition Pointer to app partition. (only app partition)
* @param[out] app_desc Structure of info about app.
@@ -313,9 +313,9 @@ typedef enum {
/**
* @brief Revokes the old signature digest. To be called in the application after the rollback logic.
*
* Relevant for Secure boot v2 on ESP32-S2 where upto 3 key digests can be stored (Key #N-1, Key #N, Key #N+1).
* When key #N-1 used to sign an app is invalidated, an OTA update is to be sent with an app signed with key #N-1 & Key #N.
* After successfully booting the OTA app should call this function to revoke Key #N-1.
* Relevant for Secure boot v2 on ESP32-S2 where upto 3 key digests can be stored (Key N-1, Key N, Key N+1).
* When key N-1 used to sign an app is invalidated, an OTA update is to be sent with an app signed with key N-1 & Key N.
* After successfully booting the OTA app should call this function to revoke Key N-1.
*
* @param index - The index of the signature block to be revoked
*

View File

@@ -87,9 +87,8 @@ class OtatoolTarget():
seq = bytearray(self.otadata[start:start + 4])
crc = bytearray(self.otadata[start + 28:start + 32])
seq = struct.unpack('>I', seq)
crc = struct.unpack('>I', crc)
seq = struct.unpack('I', seq)
crc = struct.unpack('I', crc)
info.append(otadata_info(seq[0], crc[0]))
return info
@@ -103,12 +102,11 @@ class OtatoolTarget():
def switch_ota_partition(self, ota_id):
self._check_otadata_partition()
sys.path.append(PARTTOOL_DIR)
import gen_esp32part as gen
def is_otadata_info_valid(status):
seq = status.seq % (1 << 32)
crc = hex(binascii.crc32(struct.pack("I", seq), 0xFFFFFFFF) % (1 << 32))
crc = binascii.crc32(struct.pack('I', seq), 0xFFFFFFFF) % (1 << 32)
return seq < (int('0xFFFFFFFF', 16) % (1 << 32)) and status.crc == crc
partition_table = self.target.partition_table
@@ -219,8 +217,8 @@ def _read_otadata(target):
otadata_info = target._get_otadata_info()
print(" {:8s} \t {:8s} | \t {:8s} \t {:8s}".format("OTA_SEQ", "CRC", "OTA_SEQ", "CRC"))
print("Firmware: 0x{:8x} \t0x{:8x} | \t0x{:8x} \t 0x{:8x}".format(otadata_info[0].seq, otadata_info[0].crc,
print(' {:8s} \t {:8s} | \t {:8s} \t {:8s}'.format('OTA_SEQ', 'CRC', 'OTA_SEQ', 'CRC'))
print('Firmware: 0x{:08x} \t0x{:08x} | \t0x{:08x} \t 0x{:08x}'.format(otadata_info[0].seq, otadata_info[0].crc,
otadata_info[1].seq, otadata_info[1].crc))

View File

@@ -23,7 +23,7 @@
#include "unity.h"
#include "bootloader_common.h"
#include "../include_bootloader/bootloader_flash.h"
#include "../include_bootloader/bootloader_flash_priv.h"
#include "esp_log.h"
#include "esp_ota_ops.h"

View File

@@ -114,7 +114,8 @@ menu "Bootloader config"
config BOOTLOADER_NUM_PIN_FACTORY_RESET
int "Number of the GPIO input for factory reset"
depends on BOOTLOADER_FACTORY_RESET
range 0 39
range 0 39 if IDF_TARGET_ESP32
range 0 44 if IDF_TARGET_ESP32S2
default 4
help
The selected GPIO will be configured as an input with internal pull-up enabled.
@@ -308,6 +309,15 @@ menu "Bootloader config"
in this area of memory, you can increase it. It must be a multiple of 4 bytes.
This area (rtc_retain_mem_t) is reserved and has access from the bootloader and an application.
config BOOTLOADER_FLASH_XMC_SUPPORT
bool "Enable the support for flash chips of XMC (READ HELP FIRST)"
default y
help
Perform the startup flow recommended by XMC. Please consult XMC for the details of this flow.
XMC chips will be forbidden to be used, when this option is disabled.
DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU ARE DOING.
endmenu # Bootloader
@@ -615,6 +625,7 @@ menu "Security features"
config SECURE_FLASH_ENCRYPTION_MODE_RELEASE
bool "Release"
select SECURE_ENABLE_SECURE_ROM_DL_MODE if SECURE_TARGET_HAS_SECURE_ROM_DL_MODE && !SECURE_DISABLE_ROM_DL_MODE # NOERROR
select PARTITION_TABLE_MD5 if !ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS
endchoice
@@ -676,9 +687,17 @@ menu "Security features"
efuse when Secure Boot is enabled. This prevents any more efuses from being read protected.
If this option is set, it will remain possible to write the EFUSE_RD_DIS efuse field after Secure
Boot is enabled. This may allow an attacker to read-protect the BLK2 efuse holding the public
key digest, causing an immediate denial of service and possibly allowing an additional fault
injection attack to bypass the signature protection.
Boot is enabled. This may allow an attacker to read-protect the BLK2 efuse (for ESP32) and
BLOCK4-BLOCK10 (i.e. BLOCK_KEY0-BLOCK_KEY5)(for other chips) holding the public key digest, causing an
immediate denial of service and possibly allowing an additional fault injection attack to
bypass the signature protection.
NOTE: Once a BLOCK is read-protected, the application will read all zeros from that block
NOTE: If "UART ROM download mode (Permanently disabled (recommended))" or
"UART ROM download mode (Permanently switch to Secure mode (recommended))" is set,
then it is __NOT__ possible to read/write efuses using espefuse.py utility.
However, efuse can be read/written from the application
config SECURE_INSECURE_ALLOW_DL_MODE
bool "Don't automatically restrict UART download mode"

View File

@@ -32,4 +32,6 @@ CFLAGS += -D BOOTLOADER_BUILD=1
# include the top-level "project" include directory, for sdkconfig.h
CFLAGS += -I$(BUILD_DIR_BASE)/../include
COMPONENT_ADD_LDFLAGS += -l$(COMPONENT_NAME) -Wl,--wrap=longjmp \
include $(IDF_PATH)/make/project.mk

View File

@@ -164,8 +164,35 @@ SECTIONS
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
/** 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

@@ -150,8 +150,35 @@ SECTIONS
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
/** 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

@@ -0,0 +1,61 @@
// 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.
#pragma once
#include <stdint.h>
#include <esp_err.h>
#include <esp_spi_flash.h> /* including in bootloader for error values */
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Read flash ID by sending 0x9F command
* @return flash raw ID
* mfg_id = (ID >> 16) & 0xFF;
flash_id = ID & 0xffff;
*/
uint32_t bootloader_read_flash_id(void);
#if SOC_CACHE_SUPPORT_WRAP
/**
* @brief Set the burst mode setting command for specified wrap mode.
*
* @param mode The specified warp mode.
* @return always ESP_OK
*/
esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode);
#endif
/**
* @brief Startup flow recommended by XMC. Call at startup before any erase/write operation.
*
* @return ESP_OK When startup successfully, otherwise ESP_FAIL (indiciating you should reboot before erase/write).
*/
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 bootloader_flash_unlock(void);
#ifdef __cplusplus
}
#endif

View File

@@ -42,6 +42,9 @@ extern "C" {
#define PART_FLAG_ENCRYPTED (1<<0)
/* The md5sum value is found this many bytes after the ESP_PARTITION_MAGIC_MD5 offset */
#define ESP_PARTITION_MD5_OFFSET 16
/* Pre-partition table fixed flash offsets */
#define ESP_BOOTLOADER_DIGEST_OFFSET 0x0
#define ESP_BOOTLOADER_OFFSET 0x1000 /* Offset of bootloader image. Has matching value in bootloader KConfig.projbuild file. */

View File

@@ -19,11 +19,28 @@
#include <stdint.h>
#include <esp_err.h>
#include <esp_spi_flash.h> /* including in bootloader for error values */
#include "sdkconfig.h"
#include "bootloader_flash.h"
#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
#define MMAP_ALIGNED_MASK 0x0000FFFF
/* SPI commands (actual on-wire commands not SPI controller bitmasks)
Suitable for use with the bootloader_execute_flash_command static function.
*/
#define CMD_RDID 0x9F
#define CMD_WRSR 0x01
#define CMD_WRSR2 0x31 /* Not all SPI flash uses this command */
#define CMD_WREN 0x06
#define CMD_WRDI 0x04
#define CMD_RDSR 0x05
#define CMD_RDSR2 0x35 /* Not all SPI flash uses this command */
#define CMD_OTPEN 0x3A /* Enable OTP mode, not all SPI flash uses this command */
#define CMD_RDSFDP 0x5A /* Read the SFDP of the flash */
#define CMD_WRAP 0x77 /* Set burst with wrap command */
/* Provide a Flash API for bootloader_support code,
that can be used from bootloader or app code.
@@ -136,4 +153,29 @@ static inline uint32_t bootloader_cache_pages_to_map(uint32_t size, uint32_t vad
return (size + (vaddr - (vaddr & MMU_FLASH_MASK)) + MMU_BLOCK_SIZE - 1) / MMU_BLOCK_SIZE;
}
/**
* @brief Execute a user command on the flash
*
* @param command The command value to execute.
* @param mosi_data MOSI data to send
* @param mosi_len Length of MOSI data, in bits
* @param miso_len Length of MISO data to receive, in bits
* @return Received MISO data
*/
uint32_t bootloader_execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len);
/**
* @brief Read the SFDP of the flash
*
* @param sfdp_addr Address of the parameter to read
* @param miso_byte_num Bytes to read
* @return The read SFDP, little endian, 4 bytes at most
*/
uint32_t bootloader_flash_read_sfdp(uint32_t sfdp_addr, unsigned int miso_byte_num);
/**
* @brief Enable the flash write protect (WEL bit).
*/
void bootloader_enable_wp(void);
#endif

View File

@@ -99,9 +99,10 @@ __attribute__((noreturn)) void bootloader_reset(void);
esp_err_t bootloader_sha256_hex_to_str(char *out_str, const uint8_t *in_array_hex, size_t len);
/**
* @brief Debug log contents of a buffer as hexadecimal
* @brief Debug log contents of a buffer as hexadecimal.
*
* @note Only works if component log level is DEBUG or higher.
* @note - Only works if component log level is DEBUG or higher.
* - It will print at most 128 bytes from @c buffer.
*
* @param buffer Buffer to log
* @param length Length of buffer in bytes. Maximum length 128 bytes.

View File

@@ -13,6 +13,8 @@
// limitations under the License.
#pragma once
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif

View File

@@ -28,12 +28,13 @@
#include "esp32s2/rom/gpio.h"
#endif
#include "esp_flash_partitions.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_common.h"
#include "bootloader_utility.h"
#include "soc/gpio_periph.h"
#include "soc/rtc.h"
#include "soc/efuse_reg.h"
#include "soc/soc_memory_layout.h"
#include "esp_image_format.h"
#include "bootloader_sha.h"
#include "sys/param.h"
@@ -295,7 +296,18 @@ RESET_REASON bootloader_common_get_reset_reason(int cpu_no)
#if defined( CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP ) || defined( CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC )
rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)(SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t));
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t))
rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR;
#if !IS_BOOTLOADER_BUILD
/* The app needs to be told this memory is reserved, important if configured to use RTC memory as heap.
Note that keeping this macro here only works when other symbols in this file are referenced by the app, as
this feature is otherwise 100% part of the bootloader. However this seems to happen in all apps.
*/
SOC_RESERVE_MEMORY_REGION(RTC_RETAIN_MEM_ADDR, RTC_RETAIN_MEM_ADDR + sizeof(rtc_retain_mem_t), rtc_retain_mem);
#endif
static bool check_rtc_retain_mem(void)
{

View File

@@ -15,10 +15,10 @@
#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()
/* No other revisions for ESP32-S2 */
return 0;
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
}

View File

@@ -13,13 +13,44 @@
// limitations under the License.
#include <stddef.h>
#include <bootloader_flash.h>
#include <bootloader_flash_priv.h>
#include <esp_log.h>
#include <esp_flash_encrypt.h>
#if CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/spi_flash.h"
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#if CONFIG_IDF_TARGET_ESP32
# include "soc/spi_struct.h"
# include "soc/spi_reg.h"
/* SPI flash controller */
# define SPIFLASH SPI1
#else
# include "soc/spi_mem_struct.h"
# include "soc/spi_mem_reg.h"
/* SPI flash controller */
# define SPIFLASH SPIMEM1
#endif
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/spi_flash.h"
#include "esp32/rom/ets_sys.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/spi_flash.h" //For SPI_Encrypt_Write
#include "esp32s2/rom/ets_sys.h"
#endif
#define BYTESHIFT(VAR, IDX) (((VAR) >> ((IDX) * 8)) & 0xFF)
#define ISSI_ID 0x9D
#define MXIC_ID 0xC2
#define GD_Q_ID_HIGH 0xC8
#define GD_Q_ID_MID 0x40
#define GD_Q_ID_LOW 0x16
#define ESP_BOOTLOADER_SPIFLASH_BP_MASK_ISSI (BIT7 | BIT5 | BIT4 | BIT3 | BIT2)
#define ESP_BOOTLOADER_SPIFLASH_QE_GD_SR2 BIT1 // QE position when you write 8 bits(for SR2) at one time.
#define ESP_BOOTLOADER_SPIFLASH_QE_SR1_2BYTE BIT9 // QE position when you write 16 bits at one time.
#ifndef BOOTLOADER_BUILD
/* Normal app version maps to esp_spi_flash.h operations...
*/
@@ -89,7 +120,7 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
return spi_flash_erase_range(start_addr, size);
}
#else
#else //BOOTLOADER_BUILD
/* Bootloader version, uses ROM functions only */
#include "soc/dport_reg.h"
#if CONFIG_IDF_TARGET_ESP32
@@ -318,7 +349,7 @@ esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool
return ESP_FAIL;
}
err = spi_to_esp_err(esp_rom_spiflash_unlock());
err = bootloader_flash_unlock();
if (err != ESP_OK) {
return err;
}
@@ -364,4 +395,332 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
}
return spi_to_esp_err(rc);
}
#endif // BOOTLOADER_BUILD
FORCE_INLINE_ATTR bool is_issi_chip(const esp_rom_spiflash_chip_t* chip)
{
return BYTESHIFT(chip->device_id, 2) == ISSI_ID;
}
// For GD25Q32, GD25Q64, GD25Q127C, GD25Q128, which use single command to read/write different SR.
FORCE_INLINE_ATTR bool is_gd_q_chip(const esp_rom_spiflash_chip_t* chip)
{
return BYTESHIFT(chip->device_id, 2) == GD_Q_ID_HIGH && BYTESHIFT(chip->device_id, 1) == GD_Q_ID_MID && BYTESHIFT(chip->device_id, 0) >= GD_Q_ID_LOW;
}
FORCE_INLINE_ATTR bool is_mxic_chip(const esp_rom_spiflash_chip_t* chip)
{
return BYTESHIFT(chip->device_id, 2) == MXIC_ID;
}
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void)
{
// At the beginning status == new_status == status_sr2 == new_status_sr2 == 0.
// If the register doesn't need to be updated, keep them the same (0), so that no command will be actually sent.
uint16_t status = 0; // status for SR1 or SR1+SR2 if writing SR with 01H + 2Bytes.
uint16_t new_status = 0;
uint8_t status_sr2 = 0; // status_sr2 for SR2.
uint8_t new_status_sr2 = 0;
uint8_t sr1_bit_num = 0;
esp_err_t err = ESP_OK;
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
if (is_issi_chip(&g_rom_flashchip) || is_mxic_chip(&g_rom_flashchip)) {
// Currently ISSI & MXIC share the same command and register layout, which is different from the default model.
// If any code here needs to be modified, check both chips.
status = bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8);
/* Clear all bits in the mask.
(This is different from ROM esp_rom_spiflash_unlock, which keeps all bits as-is.)
*/
sr1_bit_num = 8;
new_status = status & (~ESP_BOOTLOADER_SPIFLASH_BP_MASK_ISSI);
} else if (is_gd_q_chip(&g_rom_flashchip)) {
/* The GD chips behaviour is to clear all bits in SR1 and clear bits in SR2 except QE bit.
Use 01H to write SR1 and 31H to write SR2.
*/
status = bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8);
sr1_bit_num = 8;
new_status = 0;
status_sr2 = bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8);
new_status_sr2 = status_sr2 & ESP_BOOTLOADER_SPIFLASH_QE_GD_SR2;
} else {
/* For common behaviour, like XMC chips, Use 01H+2Bytes to write both SR1 and SR2*/
status = bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8) | (bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8) << 8);
/* Clear all bits except QE, if it is set.
(This is different from ROM esp_rom_spiflash_unlock, which keeps all bits as-is.)
*/
sr1_bit_num = 16;
new_status = status & ESP_BOOTLOADER_SPIFLASH_QE_SR1_2BYTE;
}
// When SR is written, set to true to indicate that WRDI need to be sent to ensure the protection is ON before return.
bool status_written = false;
// Skip if nothing needs to be changed. Meaningless writing to SR increases the risk during write and wastes time.
if (status != new_status) {
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
bootloader_execute_flash_command(CMD_WREN, 0, 0, 0);
bootloader_execute_flash_command(CMD_WRSR, new_status, sr1_bit_num, 0);
status_written = true;
}
if (status_sr2 != new_status_sr2) {
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
bootloader_execute_flash_command(CMD_WREN, 0, 0, 0);
bootloader_execute_flash_command(CMD_WRSR2, new_status_sr2, 8, 0);
status_written = true;
}
if (status_written) {
//Call esp_rom_spiflash_wait_idle to make sure previous WRSR is completed.
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
bootloader_execute_flash_command(CMD_WRDI, 0, 0, 0);
}
return err;
}
/* dummy_len_plus values defined in ROM for SPI flash configuration */
extern uint8_t g_rom_spiflash_dummy_len_plus[];
IRAM_ATTR static uint32_t bootloader_flash_execute_command_common(
uint8_t command,
uint32_t addr_len, uint32_t address,
uint8_t dummy_len,
uint8_t mosi_len, uint32_t mosi_data,
uint8_t miso_len)
{
assert(mosi_len <= 32);
assert(miso_len <= 32);
uint32_t old_ctrl_reg = SPIFLASH.ctrl.val;
uint32_t old_user_reg = SPIFLASH.user.val;
uint32_t old_user1_reg = SPIFLASH.user1.val;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.ctrl.val = SPI_WP_REG_M; // keep WP high while idle, otherwise leave DIO mode
#else
SPIFLASH.ctrl.val = SPI_MEM_WP_REG_M; // keep WP high while idle, otherwise leave DIO mode
#endif
//command phase
SPIFLASH.user.usr_command = 1;
SPIFLASH.user2.usr_command_bitlen = 7;
SPIFLASH.user2.usr_command_value = command;
//addr phase
SPIFLASH.user.usr_addr = addr_len > 0;
SPIFLASH.user1.usr_addr_bitlen = addr_len - 1;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.addr = (addr_len > 0)? (address << (32-addr_len)) : 0;
#else
SPIFLASH.addr = address;
#endif
//dummy phase
if (miso_len > 0) {
uint32_t total_dummy = dummy_len + g_rom_spiflash_dummy_len_plus[1];
SPIFLASH.user.usr_dummy = total_dummy > 0;
SPIFLASH.user1.usr_dummy_cyclelen = total_dummy - 1;
} else {
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user1.usr_dummy_cyclelen = 0;
}
//output data
SPIFLASH.user.usr_mosi = mosi_len > 0;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.mosi_dlen.usr_mosi_dbitlen = mosi_len ? (mosi_len - 1) : 0;
#else
SPIFLASH.mosi_dlen.usr_mosi_bit_len = mosi_len ? (mosi_len - 1) : 0;
#endif
SPIFLASH.data_buf[0] = mosi_data;
//input data
SPIFLASH.user.usr_miso = miso_len > 0;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.miso_dlen.usr_miso_dbitlen = miso_len ? (miso_len - 1) : 0;
#else
SPIFLASH.miso_dlen.usr_miso_bit_len = miso_len ? (miso_len - 1) : 0;
#endif
SPIFLASH.cmd.usr = 1;
while (SPIFLASH.cmd.usr != 0) {
}
SPIFLASH.ctrl.val = old_ctrl_reg;
SPIFLASH.user.val = old_user_reg;
SPIFLASH.user1.val = old_user1_reg;
uint32_t ret = SPIFLASH.data_buf[0];
if (miso_len < 32) {
//set unused bits to 0
ret &= ~(UINT32_MAX << miso_len);
}
return ret;
}
uint32_t IRAM_ATTR bootloader_execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len)
{
const uint8_t addr_len = 0;
const uint8_t address = 0;
const uint8_t dummy_len = 0;
return bootloader_flash_execute_command_common(command, addr_len, address,
dummy_len, mosi_len, mosi_data, miso_len);
}
// cmd(0x5A) + 24bit address + 8 cycles dummy
uint32_t IRAM_ATTR bootloader_flash_read_sfdp(uint32_t sfdp_addr, unsigned int miso_byte_num)
{
assert(miso_byte_num <= 4);
const uint8_t command = CMD_RDSFDP;
const uint8_t addr_len = 24;
const uint8_t dummy_len = 8;
const uint8_t mosi_len = 0;
const uint32_t mosi_data = 0;
const uint8_t miso_len = miso_byte_num * 8;
return bootloader_flash_execute_command_common(command, addr_len, sfdp_addr,
dummy_len, mosi_len, mosi_data, miso_len);
}
void bootloader_enable_wp(void)
{
bootloader_execute_flash_command(CMD_WRDI, 0, 0, 0); /* Exit OTP mode */
}
uint32_t IRAM_ATTR bootloader_read_flash_id(void)
{
uint32_t id = bootloader_execute_flash_command(CMD_RDID, 0, 0, 24);
id = ((id & 0xff) << 16) | ((id >> 16) & 0xff) | (id & 0xff00);
return id;
}
#if SOC_CACHE_SUPPORT_WRAP
esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode)
{
uint32_t reg_bkp_ctrl = SPIFLASH.ctrl.val;
uint32_t reg_bkp_usr = SPIFLASH.user.val;
SPIFLASH.user.fwrite_dio = 0;
SPIFLASH.user.fwrite_dual = 0;
SPIFLASH.user.fwrite_qio = 1;
SPIFLASH.user.fwrite_quad = 0;
SPIFLASH.ctrl.fcmd_dual = 0;
SPIFLASH.ctrl.fcmd_quad = 0;
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user.usr_addr = 1;
SPIFLASH.user.usr_command = 1;
SPIFLASH.user2.usr_command_bitlen = 7;
SPIFLASH.user2.usr_command_value = CMD_WRAP;
SPIFLASH.user1.usr_addr_bitlen = 23;
SPIFLASH.addr = 0;
SPIFLASH.user.usr_miso = 0;
SPIFLASH.user.usr_mosi = 1;
SPIFLASH.mosi_dlen.usr_mosi_bit_len = 7;
SPIFLASH.data_buf[0] = (uint32_t) mode << 4;;
SPIFLASH.cmd.usr = 1;
while(SPIFLASH.cmd.usr != 0)
{ }
SPIFLASH.ctrl.val = reg_bkp_ctrl;
SPIFLASH.user.val = reg_bkp_usr;
return ESP_OK;
}
#endif //SOC_CACHE_SUPPORT_WRAP
/*******************************************************************************
* XMC startup flow
******************************************************************************/
#define XMC_SUPPORT CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT
#define XMC_VENDOR_ID 0x20
#if BOOTLOADER_BUILD
#define BOOTLOADER_FLASH_LOG(level, ...) ESP_LOG##level(TAG, ##__VA_ARGS__)
#else
static DRAM_ATTR char bootloader_flash_tag[] = "bootloader_flash";
#define BOOTLOADER_FLASH_LOG(level, ...) ESP_DRAM_LOG##level(bootloader_flash_tag, ##__VA_ARGS__)
#endif
#if XMC_SUPPORT
//strictly check the model
static IRAM_ATTR bool is_xmc_chip_strict(uint32_t rdid)
{
uint32_t vendor_id = BYTESHIFT(rdid, 2);
uint32_t mfid = BYTESHIFT(rdid, 1);
uint32_t cpid = BYTESHIFT(rdid, 0);
if (vendor_id != XMC_VENDOR_ID) {
return false;
}
bool matched = false;
if (mfid == 0x40) {
if (cpid >= 0x13 && cpid <= 0x20) {
matched = true;
}
} else if (mfid == 0x41) {
if (cpid >= 0x17 && cpid <= 0x20) {
matched = true;
}
} else if (mfid == 0x50) {
if (cpid >= 0x15 && cpid <= 0x16) {
matched = true;
}
}
return matched;
}
esp_err_t IRAM_ATTR bootloader_flash_xmc_startup(void)
{
// If the RDID value is a valid XMC one, may skip the flow
const bool fast_check = true;
if (fast_check && is_xmc_chip_strict(g_rom_flashchip.device_id)) {
BOOTLOADER_FLASH_LOG(D, "XMC chip detected by RDID (%08X), skip.", g_rom_flashchip.device_id);
return ESP_OK;
}
// Check the Manufacturer ID in SFDP registers (JEDEC standard). If not XMC chip, no need to run the flow
const int sfdp_mfid_addr = 0x10;
uint8_t mf_id = (bootloader_flash_read_sfdp(sfdp_mfid_addr, 1) & 0xff);
if (mf_id != XMC_VENDOR_ID) {
BOOTLOADER_FLASH_LOG(D, "non-XMC chip detected by SFDP Read (%02X), skip.", mf_id);
return ESP_OK;
}
BOOTLOADER_FLASH_LOG(I, "XM25QHxxC startup flow");
// Enter DPD
bootloader_execute_flash_command(0xB9, 0, 0, 0);
// Enter UDPD
bootloader_execute_flash_command(0x79, 0, 0, 0);
// Exit UDPD
bootloader_execute_flash_command(0xFF, 0, 0, 0);
// Delay tXUDPD
ets_delay_us(2000);
// Release Power-down
bootloader_execute_flash_command(0xAB, 0, 0, 0);
ets_delay_us(20);
// Read flash ID and check again
g_rom_flashchip.device_id = bootloader_read_flash_id();
if (!is_xmc_chip_strict(g_rom_flashchip.device_id)) {
BOOTLOADER_FLASH_LOG(E, "XMC flash startup fail");
return ESP_FAIL;
}
return ESP_OK;
}
#else
//only compare the vendor id
static IRAM_ATTR bool is_xmc_chip(uint32_t rdid)
{
uint32_t vendor_id = (rdid >> 16) & 0xFF;
return (vendor_id == XMC_VENDOR_ID);
}
esp_err_t IRAM_ATTR bootloader_flash_xmc_startup(void)
{
if (is_xmc_chip(g_rom_flashchip.device_id)) {
BOOTLOADER_FLASH_LOG(E, "XMC chip detected (%08X) while support disabled.", g_rom_flashchip.device_id);
return ESP_FAIL;
}
return ESP_OK;
}
#endif //XMC_SUPPORT

View File

@@ -178,9 +178,9 @@ int bootloader_flash_get_wp_pin(void)
uint8_t chip_ver;
uint32_t pkg_ver = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG);
switch(pkg_ver) {
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_ESP32PICOD2:
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();

View File

@@ -17,7 +17,7 @@
#include "esp_attr.h"
#include "esp_log.h"
#include "bootloader_init.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_flash_config.h"
#include "bootloader_random.h"
#include "bootloader_clock.h"

View File

@@ -59,13 +59,14 @@
#include "esp_secure_boot.h"
#include "esp_flash_encrypt.h"
#include "esp_flash_partitions.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_random.h"
#include "bootloader_config.h"
#include "bootloader_common.h"
#include "bootloader_utility.h"
#include "bootloader_sha.h"
#include "esp_efuse.h"
#include "esp_fault.h"
static const char *TAG = "boot";
@@ -257,9 +258,16 @@ static esp_err_t write_otadata(esp_ota_select_entry_t *otadata, uint32_t offset,
static bool check_anti_rollback(const esp_partition_pos_t *partition)
{
#ifdef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
esp_app_desc_t app_desc;
esp_app_desc_t app_desc = {};
esp_err_t err = bootloader_common_get_partition_description(partition, &app_desc);
return err == ESP_OK && esp_efuse_check_secure_version(app_desc.secure_version) == true;
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to get partition description %d", err);
return false;
}
bool sec_ver = esp_efuse_check_secure_version(app_desc.secure_version);
/* Anti FI check */
ESP_FAULT_ASSERT(sec_ver == esp_efuse_check_secure_version(app_desc.secure_version));
return sec_ver;
#else
return true;
#endif
@@ -272,6 +280,8 @@ static void update_anti_rollback(const esp_partition_pos_t *partition)
esp_err_t err = bootloader_common_get_partition_description(partition, &app_desc);
if (err == ESP_OK) {
esp_efuse_update_secure_version(app_desc.secure_version);
} else {
ESP_LOGE(TAG, "Failed to get partition description %d", err);
}
}
@@ -800,22 +810,19 @@ esp_err_t bootloader_sha256_hex_to_str(char *out_str, const uint8_t *in_array_he
void bootloader_debug_buffer(const void *buffer, size_t length, const char *label)
{
#if BOOT_LOG_LEVEL >= LOG_LEVEL_DEBUG
assert(length <= 128); // Avoid unbounded VLA size
#if CONFIG_BOOTLOADER_LOG_LEVEL >= 4
const uint8_t *bytes = (const uint8_t *)buffer;
char hexbuf[length * 2 + 1];
hexbuf[length * 2] = 0;
for (int i = 0; i < length; i++) {
for (int shift = 0; shift < 2; shift++) {
uint8_t nibble = (bytes[i] >> (shift ? 0 : 4)) & 0x0F;
if (nibble < 10) {
hexbuf[i * 2 + shift] = '0' + nibble;
} else {
hexbuf[i * 2 + shift] = 'a' + nibble - 10;
}
}
}
const size_t output_len = MIN(length, 128);
char hexbuf[128 * 2 + 1];
bootloader_sha256_hex_to_str(hexbuf, bytes, output_len);
hexbuf[output_len * 2] = '\0';
ESP_LOGD(TAG, "%s: %s", label, hexbuf);
#else
(void) buffer;
(void) length;
(void) label;
#endif
}

View File

@@ -23,6 +23,7 @@
#include "bootloader_common.h"
#include "bootloader_flash_config.h"
#include "bootloader_mem.h"
#include "bootloader_flash_priv.h"
#include "soc/cpu.h"
#include "soc/dport_reg.h"
@@ -259,7 +260,7 @@ static esp_err_t bootloader_init_spi_flash(void)
}
#endif
esp_rom_spiflash_unlock();
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
@@ -267,6 +268,8 @@ static esp_err_t bootloader_init_spi_flash(void)
print_flash_info(&bootloader_image_hdr);
update_flash_config(&bootloader_image_hdr);
//ensure the flash is write-protected
bootloader_enable_wp();
return ESP_OK;
}
@@ -305,11 +308,13 @@ static void bootloader_init_uart_console(void)
const uint32_t tx_idx = tx_idx_list[uart_num];
const uint32_t rx_idx = rx_idx_list[uart_num];
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[uart_rx_gpio], PIN_FUNC_GPIO);
PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[uart_rx_gpio]);
gpio_pad_pullup(uart_rx_gpio);
gpio_matrix_out(uart_tx_gpio, tx_idx, 0, 0);
gpio_matrix_in(uart_rx_gpio, rx_idx, 0);
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[uart_tx_gpio], PIN_FUNC_GPIO);
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, uart_reset[uart_num]);
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, uart_reset[uart_num]);
@@ -450,6 +455,11 @@ esp_err_t bootloader_init(void)
bootloader_print_banner();
// update flash ID
bootloader_flash_update_id();
// Check and run XMC startup flow
if ((ret = bootloader_flash_xmc_startup()) != ESP_OK) {
ESP_LOGE(TAG, "failed when running XMC startup flow, reboot!");
goto err;
}
// read bootloader header
if ((ret = bootloader_read_bootloader_header()) != ESP_OK) {
goto err;

View File

@@ -14,7 +14,7 @@
#include <strings.h>
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "esp_image_format.h"
#include "esp_flash_encrypt.h"
#include "esp_flash_partitions.h"

View File

@@ -29,7 +29,7 @@
#include "sdkconfig.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_random.h"
#include "esp_image_format.h"
#include "esp_secure_boot.h"

View File

@@ -13,7 +13,7 @@
// limitations under the License.
#include "sdkconfig.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_sha.h"
#include "bootloader_utility.h"
#include "esp_log.h"

View File

@@ -26,6 +26,7 @@
#include "bootloader_clock.h"
#include "bootloader_flash_config.h"
#include "bootloader_mem.h"
#include "bootloader_flash_priv.h"
#include "esp32s2/rom/cache.h"
#include "esp32s2/rom/ets_sys.h"
@@ -205,7 +206,7 @@ static esp_err_t bootloader_init_spi_flash(void)
}
#endif
esp_rom_spiflash_unlock();
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
@@ -213,6 +214,8 @@ static esp_err_t bootloader_init_spi_flash(void)
print_flash_info(&bootloader_image_hdr);
update_flash_config(&bootloader_image_hdr);
//ensure the flash is write-protected
bootloader_enable_wp();
return ESP_OK;
}
@@ -251,11 +254,13 @@ static void bootloader_init_uart_console(void)
const uint32_t tx_idx = tx_idx_list[uart_num];
const uint32_t rx_idx = rx_idx_list[uart_num];
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[uart_rx_gpio], PIN_FUNC_GPIO);
PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[uart_rx_gpio]);
gpio_pad_pullup(uart_rx_gpio);
gpio_matrix_out(uart_tx_gpio, tx_idx, 0, 0);
gpio_matrix_in(uart_rx_gpio, rx_idx, 0);
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[uart_tx_gpio], PIN_FUNC_GPIO);
DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, uart_reset[uart_num]);
DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, uart_reset[uart_num]);
@@ -372,6 +377,11 @@ esp_err_t bootloader_init(void)
bootloader_print_banner();
// update flash ID
bootloader_flash_update_id();
// Check and run XMC startup flow
if ((ret = bootloader_flash_xmc_startup()) != ESP_OK) {
ESP_LOGE(TAG, "failed when running XMC startup flow, reboot!");
goto err;
}
// read bootloader header
if ((ret = bootloader_read_bootloader_header()) != ESP_OK) {
goto err;

View File

@@ -14,7 +14,7 @@
#include <strings.h>
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_random.h"
#include "bootloader_utility.h"
#include "esp_image_format.h"
@@ -211,6 +211,12 @@ static esp_err_t initialise_flash_encryption(void)
esp_efuse_write_field_bit(ESP_EFUSE_DIS_BOOT_REMAP);
esp_efuse_write_field_bit(ESP_EFUSE_DIS_LEGACY_SPI_BOOT);
#if defined(CONFIG_SECURE_BOOT_V2_ENABLED) && !defined(CONFIG_SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS)
// This bit is set when enabling Secure Boot V2, but we can't enable it until this later point in the first boot
// otherwise the Flash Encryption key cannot be read protected
esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_RD_DIS);
#endif
esp_err_t err = esp_efuse_batch_write_commit();
return err;
@@ -297,8 +303,8 @@ static esp_err_t encrypt_bootloader(void)
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to encrypt bootloader in place: 0x%x", err);
return err;
}
}
ESP_LOGI(TAG, "bootloader encrypted successfully");
return err;
}

View File

@@ -17,7 +17,7 @@
#include "esp_secure_boot.h"
#include "soc/efuse_reg.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_sha.h"
#include "bootloader_utility.h"
@@ -287,11 +287,23 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag
esp_efuse_write_field_bit(ESP_EFUSE_DIS_BOOT_REMAP);
esp_efuse_write_field_bit(ESP_EFUSE_DIS_LEGACY_SPI_BOOT);
esp_err_t err = ESP_FAIL;
#ifdef CONFIG_SECURE_ENABLE_SECURE_ROM_DL_MODE
ESP_LOGI(TAG, "Enabling Security download mode...");
esp_efuse_write_field_bit(ESP_EFUSE_ENABLE_SECURITY_DOWNLOAD);
err = esp_efuse_enable_rom_secure_download_mode();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Could not enable Security download mode...");
return err;
}
#elif CONFIG_SECURE_DISABLE_ROM_DL_MODE
ESP_LOGI(TAG, "Disable ROM Download mode...");
err = esp_efuse_disable_rom_download_mode();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Could not disable ROM Download mode...");
return err;
}
#else
ESP_LOGW(TAG, "Not enabling Security download mode - SECURITY COMPROMISED");
ESP_LOGW(TAG, "UART ROM Download mode kept enabled - SECURITY COMPROMISED");
#endif
#ifndef CONFIG_SECURE_BOOT_ALLOW_JTAG
@@ -308,6 +320,21 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag
esp_efuse_write_field_bit(ESP_EFUSE_SECURE_BOOT_EN);
#ifndef CONFIG_SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS
bool rd_dis_now = true;
#ifdef CONFIG_SECURE_FLASH_ENC_ENABLED
/* If flash encryption is not enabled yet then don't read-disable efuses yet, do it later in the boot
when Flash Encryption is being enabled */
rd_dis_now = esp_flash_encryption_enabled();
#endif
if (rd_dis_now) {
ESP_LOGI(TAG, "Prevent read disabling of additional efuses...");
esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_RD_DIS);
}
#else
ESP_LOGW(TAG, "Allowing read disabling of additional efuses - SECURITY COMPROMISED");
#endif
err = esp_efuse_batch_write_commit();
if (err != ESP_OK) {
ESP_LOGI(TAG, "Error programming security eFuses.");

View File

@@ -15,7 +15,7 @@
#include <string.h>
#include "esp_fault.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_sha.h"
#include "bootloader_utility.h"
#include "esp_log.h"

View File

@@ -20,7 +20,7 @@
#include <esp_log.h>
#include <esp_attr.h>
#include <esp_spi_flash.h>
#include <bootloader_flash.h>
#include <bootloader_flash_priv.h>
#include <bootloader_random.h>
#include <bootloader_sha.h>
#include "bootloader_util.h"

View File

@@ -52,7 +52,7 @@ esp_err_t esp_partition_table_verify(const esp_partition_info_t *partition_table
MD5Update(&context, (unsigned char *) partition_table, num_parts * sizeof(esp_partition_info_t));
MD5Final(digest, &context);
unsigned char *md5sum = ((unsigned char *) part) + 16; // skip the 2B magic number and the 14B fillup bytes
unsigned char *md5sum = ((unsigned char *) part) + ESP_PARTITION_MD5_OFFSET;
if (memcmp(md5sum, digest, sizeof(digest)) != 0) {
if (log_errors) {

View File

@@ -15,6 +15,7 @@
#include <stdint.h>
#include "bootloader_flash_config.h"
#include "flash_qio_mode.h"
#include "bootloader_flash_priv.h"
#include "esp_log.h"
#include "esp_err.h"
#if CONFIG_IDF_TARGET_ESP32
@@ -25,30 +26,10 @@
#include "esp32s2/rom/efuse.h"
#include "soc/spi_mem_struct.h"
#endif
#include "soc/spi_struct.h"
#include "soc/spi_reg.h"
#include "soc/efuse_periph.h"
#include "soc/io_mux_reg.h"
#include "sdkconfig.h"
/* SPI flash controller */
#if CONFIG_IDF_TARGET_ESP32
#define SPIFLASH SPI1
#elif CONFIG_IDF_TARGET_ESP32S2
#define SPIFLASH SPIMEM1
#endif
/* SPI commands (actual on-wire commands not SPI controller bitmasks)
Suitable for use with the execute_flash_command static function.
*/
#define CMD_RDID 0x9F
#define CMD_WRSR 0x01
#define CMD_WRSR2 0x31 /* Not all SPI flash uses this command */
#define CMD_WREN 0x06
#define CMD_WRDI 0x04
#define CMD_RDSR 0x05
#define CMD_RDSR2 0x35 /* Not all SPI flash uses this command */
#define CMD_OTPEN 0x3A /* Enable OTP mode, not all SPI flash uses this command */
static const char *TAG = "qio_mode";
@@ -104,6 +85,7 @@ const static qio_info_t chip_data[] = {
{ "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 },
/* Final entry is default entry, if no other IDs have matched.
@@ -125,56 +107,6 @@ static esp_err_t enable_qio_mode(read_status_fn_t read_status_fn,
The command passed here is always the on-the-wire command given to the SPI flash unit.
*/
static uint32_t execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len);
/* dummy_len_plus values defined in ROM for SPI flash configuration */
extern uint8_t g_rom_spiflash_dummy_len_plus[];
uint32_t bootloader_read_flash_id(void)
{
uint32_t id = execute_flash_command(CMD_RDID, 0, 0, 24);
id = ((id & 0xff) << 16) | ((id >> 16) & 0xff) | (id & 0xff00);
return id;
}
#if CONFIG_IDF_TARGET_ESP32S2
#define FLASH_WRAP_CMD 0x77
typedef enum {
FLASH_WRAP_MODE_8B = 0,
FLASH_WRAP_MODE_16B = 2,
FLASH_WRAP_MODE_32B = 4,
FLASH_WRAP_MODE_64B = 6,
FLASH_WRAP_MODE_DISABLE = 1
} spi_flash_wrap_mode_t;
static esp_err_t spi_flash_wrap_set(spi_flash_wrap_mode_t mode)
{
uint32_t reg_bkp_ctrl = SPIFLASH.ctrl.val;
uint32_t reg_bkp_usr = SPIFLASH.user.val;
SPIFLASH.user.fwrite_dio = 0;
SPIFLASH.user.fwrite_dual = 0;
SPIFLASH.user.fwrite_qio = 1;
SPIFLASH.user.fwrite_quad = 0;
SPIFLASH.ctrl.fcmd_dual = 0;
SPIFLASH.ctrl.fcmd_quad = 0;
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user.usr_addr = 1;
SPIFLASH.user.usr_command = 1;
SPIFLASH.user2.usr_command_bitlen = 7;
SPIFLASH.user2.usr_command_value = FLASH_WRAP_CMD;
SPIFLASH.user1.usr_addr_bitlen = 23;
SPIFLASH.addr = 0;
SPIFLASH.user.usr_miso = 0;
SPIFLASH.user.usr_mosi = 1;
SPIFLASH.mosi_dlen.usr_mosi_bit_len = 7;
SPIFLASH.data_buf[0] = (uint32_t) mode << 4;;
SPIFLASH.cmd.usr = 1;
while (SPIFLASH.cmd.usr != 0) {
}
SPIFLASH.ctrl.val = reg_bkp_ctrl;
SPIFLASH.user.val = reg_bkp_usr;
return ESP_OK;
}
#endif
void bootloader_enable_qio_mode(void)
{
@@ -207,8 +139,8 @@ void bootloader_enable_qio_mode(void)
enable_qio_mode(chip_data[i].read_status_fn,
chip_data[i].write_status_fn,
chip_data[i].status_qio_bit);
#if CONFIG_IDF_TARGET_ESP32S2
spi_flash_wrap_set(FLASH_WRAP_MODE_DISABLE);
#if SOC_CACHE_SUPPORT_WRAP
bootloader_flash_wrap_set(FLASH_WRAP_MODE_DISABLE);
#endif
}
@@ -225,7 +157,7 @@ static esp_err_t enable_qio_mode(read_status_fn_t read_status_fn,
ESP_LOGD(TAG, "Initial flash chip status 0x%x", status);
if ((status & (1 << status_qio_bit)) == 0) {
execute_flash_command(CMD_WREN, 0, 0, 0);
bootloader_execute_flash_command(CMD_WREN, 0, 0, 0);
write_status_fn(status | (1 << status_qio_bit));
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
@@ -263,95 +195,48 @@ static esp_err_t enable_qio_mode(read_status_fn_t read_status_fn,
static unsigned read_status_8b_rdsr(void)
{
return execute_flash_command(CMD_RDSR, 0, 0, 8);
return bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8);
}
static unsigned read_status_8b_rdsr2(void)
{
return execute_flash_command(CMD_RDSR2, 0, 0, 8);
return bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8);
}
static unsigned read_status_16b_rdsr_rdsr2(void)
{
return execute_flash_command(CMD_RDSR, 0, 0, 8) | (execute_flash_command(CMD_RDSR2, 0, 0, 8) << 8);
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)
{
execute_flash_command(CMD_WRSR, new_status, 8, 0);
bootloader_execute_flash_command(CMD_WRSR, new_status, 8, 0);
}
static void write_status_8b_wrsr2(unsigned new_status)
{
execute_flash_command(CMD_WRSR2, new_status, 8, 0);
bootloader_execute_flash_command(CMD_WRSR2, new_status, 8, 0);
}
static void write_status_16b_wrsr(unsigned new_status)
{
execute_flash_command(CMD_WRSR, new_status, 16, 0);
bootloader_execute_flash_command(CMD_WRSR, new_status, 16, 0);
}
static unsigned read_status_8b_xmc25qu64a(void)
{
execute_flash_command(CMD_OTPEN, 0, 0, 0); /* Enter OTP mode */
bootloader_execute_flash_command(CMD_OTPEN, 0, 0, 0); /* Enter OTP mode */
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
uint32_t read_status = execute_flash_command(CMD_RDSR, 0, 0, 8);
execute_flash_command(CMD_WRDI, 0, 0, 0); /* Exit OTP mode */
uint32_t read_status = bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8);
bootloader_execute_flash_command(CMD_WRDI, 0, 0, 0); /* Exit OTP mode */
return read_status;
}
static void write_status_8b_xmc25qu64a(unsigned new_status)
{
execute_flash_command(CMD_OTPEN, 0, 0, 0); /* Enter OTP mode */
bootloader_execute_flash_command(CMD_OTPEN, 0, 0, 0); /* Enter OTP mode */
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
execute_flash_command(CMD_WRSR, new_status, 8, 0);
bootloader_execute_flash_command(CMD_WRSR, new_status, 8, 0);
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
execute_flash_command(CMD_WRDI, 0, 0, 0); /* Exit OTP mode */
}
static uint32_t execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len)
{
uint32_t old_ctrl_reg = SPIFLASH.ctrl.val;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.ctrl.val = SPI_WP_REG_M; // keep WP high while idle, otherwise leave DIO mode
#elif CONFIG_IDF_TARGET_ESP32S2
SPIFLASH.ctrl.val = SPI_MEM_WP_REG_M; // keep WP high while idle, otherwise leave DIO mode
#endif
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user.usr_addr = 0;
SPIFLASH.user.usr_command = 1;
SPIFLASH.user2.usr_command_bitlen = 7;
SPIFLASH.user2.usr_command_value = command;
SPIFLASH.user.usr_miso = miso_len > 0;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.miso_dlen.usr_miso_dbitlen = miso_len ? (miso_len - 1) : 0;
#elif CONFIG_IDF_TARGET_ESP32S2
SPIFLASH.miso_dlen.usr_miso_bit_len = miso_len ? (miso_len - 1) : 0;
#endif
SPIFLASH.user.usr_mosi = mosi_len > 0;
#if CONFIG_IDF_TARGET_ESP32
SPIFLASH.mosi_dlen.usr_mosi_dbitlen = mosi_len ? (mosi_len - 1) : 0;
#elif CONFIG_IDF_TARGET_ESP32S2
SPIFLASH.mosi_dlen.usr_mosi_bit_len = mosi_len ? (mosi_len - 1) : 0;
#endif
SPIFLASH.data_buf[0] = mosi_data;
if (g_rom_spiflash_dummy_len_plus[1]) {
/* When flash pins are mapped via GPIO matrix, need a dummy cycle before reading via MISO */
if (miso_len > 0) {
SPIFLASH.user.usr_dummy = 1;
SPIFLASH.user1.usr_dummy_cyclelen = g_rom_spiflash_dummy_len_plus[1] - 1;
} else {
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user1.usr_dummy_cyclelen = 0;
}
}
SPIFLASH.cmd.usr = 1;
while (SPIFLASH.cmd.usr != 0) {
}
SPIFLASH.ctrl.val = old_ctrl_reg;
return SPIFLASH.data_buf[0];
bootloader_execute_flash_command(CMD_WRDI, 0, 0, 0); /* Exit OTP mode */
}

View File

@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "bootloader_sha.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include <stdbool.h>
#include <string.h>
#include <assert.h>

View File

@@ -13,7 +13,7 @@
// limitations under the License.
#include "sdkconfig.h"
#include "bootloader_flash.h"
#include "bootloader_flash_priv.h"
#include "bootloader_sha.h"
#include "bootloader_utility.h"
#include "esp_log.h"
@@ -325,7 +325,7 @@ esp_err_t esp_secure_boot_verify_rsa_signature_block(const ets_secure_boot_signa
break;
}
}
free(sig_be);
free(buf);
#if CONFIG_IDF_TARGET_ESP32

View File

@@ -573,6 +573,6 @@ idf_component_register(SRCS "${srcs}"
if(CONFIG_BT_ENABLED)
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable)
target_link_libraries(${COMPONENT_LIB} INTERFACE "-L${CMAKE_CURRENT_LIST_DIR}/controller/lib")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-L${CMAKE_CURRENT_LIST_DIR}/controller/lib/esp32")
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
endif()

View File

@@ -365,11 +365,27 @@ menu "Bluetooth"
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
@@ -381,7 +397,7 @@ menu "Bluetooth"
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.
@@ -428,21 +444,6 @@ menu "Bluetooth"
If you set `BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more.
menuconfig BTDM_COEX_BT_OPTIONS
bool "Coexistence Bluetooth Side Options"
depends on ESP32_WIFI_SW_COEXIST_ENABLE
default n
help
Options of Bluetooth Side of WiFi and bluetooth coexistence.
config BTDM_COEX_BLE_ADV_HIGH_PRIORITY
bool "Improve BLE ADV priority for WiFi & BLE coexistence"
depends on BTDM_COEX_BT_OPTIONS
default n
help
Improve BLE ADV coexistence priority to make it better performance.
For example, BLE mesh need to enable this option to improve BLE adv performance.
endmenu
choice BT_HOST

View File

@@ -187,24 +187,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 +205,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);

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_t 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,19 +106,20 @@ 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);

View File

@@ -42,6 +42,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

@@ -80,4 +80,11 @@
#define UC_BT_LOG_OSI_TRACE_LEVEL UC_TRACE_LEVEL_WARNING
#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

@@ -143,13 +143,13 @@ static void alarm_cb_handler(struct alarm_t *alarm)
OSI_TRACE_WARNING("%s, invalid state %d\n", __func__, alarm_state);
return;
}
btc_msg_t msg;
btc_msg_t msg = {0};
btc_alarm_args_t arg;
msg.sig = BTC_SIG_API_CALL;
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)
@@ -173,7 +173,7 @@ osi_alarm_t *osi_alarm_new(const char *alarm_name, osi_alarm_callback_t callback
goto end;
}
esp_timer_create_args_t tca;
esp_timer_create_args_t tca = {0};
tca.callback = (esp_timer_cb_t)alarm_cb_handler;
tca.arg = timer_id;
tca.dispatch_method = ESP_TIMER_TASK;
@@ -318,3 +318,16 @@ uint32_t osi_time_get_os_boottime_ms(void)
{
return (uint32_t)(esp_timer_get_time() / 1000);
}
bool osi_alarm_is_active(osi_alarm_t *alarm)
{
assert(alarm != NULL);
assert(alarm_mutex != NULL);
bool is_active = false;
osi_mutex_lock(&alarm_mutex, OSI_MUTEX_MAX_TIMEOUT);
is_active = alarm->deadline_us > 0;
osi_mutex_unlock(&alarm_mutex);
return is_active;
}

View File

@@ -550,10 +550,12 @@ static void config_parse(nvs_handle_t fp, config_t *config)
const size_t keyname_bufsz = sizeof(CONFIG_KEY) + 5 + 1; // including log10(sizeof(i))
char *keyname = osi_calloc(keyname_bufsz);
int buf_size = get_config_size_from_flash(fp);
char *buf = osi_calloc(buf_size);
char *buf = NULL;
if(buf_size == 0) { //First use nvs
goto error;
}
buf = osi_calloc(buf_size);
if (!line || !section || !buf || !keyname) {
err_code |= 0x01;
goto error;

View File

@@ -20,6 +20,7 @@
#define _ALARM_H_
#include <stdint.h>
#include <stdbool.h>
#include "esp_timer.h"
typedef struct alarm_t osi_alarm_t;
@@ -77,4 +78,8 @@ period_ms_t osi_alarm_get_remaining_ms(const osi_alarm_t *alarm);
uint32_t osi_time_get_os_boottime_ms(void);
// This function returns whether the alarm which encapsulated
// a one-shot timer is active or not
bool osi_alarm_is_active(osi_alarm_t *alarm);
#endif /*_ALARM_H_*/

View File

@@ -110,7 +110,6 @@ static void osi_thread_stop(osi_thread_t *thread)
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)
{
int ret;
osi_thread_t *thread;
struct osi_thread_start_arg start_arg = {0};
if (stack_size <= 0 ||
@@ -119,17 +118,17 @@ osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priorit
return NULL;
}
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 = (fixed_queue_t **)osi_calloc(sizeof(fixed_queue_t *) * 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);

View File

@@ -9,11 +9,11 @@ COMPONENT_ADD_INCLUDEDIRS := include
LIBS := btdm_app
COMPONENT_ADD_LDFLAGS := -lbt -L $(COMPONENT_PATH)/controller/lib \
COMPONENT_ADD_LDFLAGS := -lbt -L $(COMPONENT_PATH)/controller/lib/esp32 \
$(addprefix -l,$(LIBS))
# re-link program if BT binary libs change
COMPONENT_ADD_LINKER_DEPS := $(patsubst %,$(COMPONENT_PATH)/controller/lib/lib%.a,$(LIBS))
COMPONENT_ADD_LINKER_DEPS := $(patsubst %,$(COMPONENT_PATH)/controller/lib/esp32/lib%.a,$(LIBS))
COMPONENT_SUBMODULES += controller/lib

View File

@@ -37,10 +37,12 @@
#include "esp_err.h"
#include "esp_log.h"
#include "esp_pm.h"
#include "esp_timer.h"
#include "driver/periph_ctrl.h"
#include "soc/rtc.h"
#include "soc/soc_memory_layout.h"
#include "esp32/clk.h"
#include "esp_coexist.h"
#include "esp_coexist_internal.h"
#if !CONFIG_FREERTOS_UNICORE
#include "esp_ipc.h"
@@ -90,14 +92,9 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010002
#define OSI_VERSION 0x00010004
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* SPIRAM Configuration */
#if CONFIG_SPIRAM_USE_MALLOC
#define BTDM_MAX_QUEUE_NUM (5)
#endif
/* Types definition
************************************************************************
*/
@@ -115,14 +112,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 {
@@ -182,6 +175,11 @@ struct osi_funcs_t {
void *(* _coex_schm_curr_phase_get)(void);
int (* _coex_wifi_channel_get)(uint8_t *primary, uint8_t *secondary);
int (* _coex_register_wifi_channel_change_callback)(void *cb);
xt_handler (*_set_isr_l3)(int n, xt_handler f, void *arg);
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;
};
@@ -238,7 +236,8 @@ extern uint8_t coex_schm_curr_period_get(void);
extern void * coex_schm_curr_phase_get(void);
extern int coex_wifi_channel_get(uint8_t *primary, uint8_t *secondary);
extern int coex_register_wifi_channel_change_callback(void *cb);
extern void coex_ble_adv_priority_high_set(bool high);
/* Shutdown */
extern void esp_bt_controller_shutdown(void);
extern char _bss_start_btdm;
extern char _bss_end_btdm;
@@ -263,12 +262,9 @@ 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);
static void IRAM_ATTR task_yield_from_isr(void);
static void *semphr_create_wrapper(uint32_t max, uint32_t init);
static void semphr_delete_wrapper(void *semphr);
@@ -316,6 +312,8 @@ 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
***************************************************************************
@@ -327,7 +325,7 @@ static const struct osi_funcs_t osi_funcs_ro = {
._ints_on = xt_ints_on,
._interrupt_disable = interrupt_disable,
._interrupt_restore = interrupt_restore,
._task_yield = vPortYield,
._task_yield = task_yield,
._task_yield_from_isr = task_yield_from_isr,
._semphr_create = semphr_create_wrapper,
._semphr_delete = semphr_delete_wrapper,
@@ -378,6 +376,11 @@ static const struct osi_funcs_t osi_funcs_ro = {
._coex_schm_curr_phase_get = coex_schm_curr_phase_get_wrapper,
._coex_wifi_channel_get = coex_wifi_channel_get_wrapper,
._coex_register_wifi_channel_change_callback = coex_register_wifi_channel_change_callback_wrapper,
._set_isr_l3 = xt_set_interrupt_handler,
._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,
};
@@ -404,11 +407,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,52 +446,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()) {
@@ -512,6 +464,11 @@ static void IRAM_ATTR interrupt_restore(void)
}
}
static void IRAM_ATTR task_yield(void)
{
vPortYield();
}
static void IRAM_ATTR task_yield_from_isr(void)
{
portYIELD_FROM_ISR();
@@ -519,148 +476,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 (int32_t)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 (int32_t)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 (int32_t)xSemaphoreTake(((btdm_queue_item_t *)semphr)->handle, portMAX_DELAY);
} else {
return (int32_t)xSemaphoreTake(semphr, block_time_ms / portTICK_PERIOD_MS);
return (int32_t)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 (int32_t)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)
@@ -675,102 +558,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)
@@ -887,8 +739,7 @@ static void btdm_sleep_enter_phase1_wrapper(uint32_t lpcycles)
static void btdm_sleep_enter_phase2_wrapper(void)
{
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_enter(MODEM_BLE_MODULE);
esp_modem_sleep_enter(MODEM_CLASSIC_BT_MODULE);
esp_phy_disable();
#ifdef CONFIG_PM_ENABLE
if (s_pm_lock_acquired) {
esp_pm_lock_release(s_pm_lock);
@@ -896,7 +747,7 @@ static void btdm_sleep_enter_phase2_wrapper(void)
}
#endif
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_enter(MODEM_BLE_MODULE);
esp_phy_disable();
// pause bluetooth baseband
periph_module_disable(PERIPH_BT_BASEBAND_MODULE);
}
@@ -912,8 +763,7 @@ static void btdm_sleep_exit_phase3_wrapper(void)
#endif
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_exit(MODEM_BLE_MODULE);
esp_modem_sleep_exit(MODEM_CLASSIC_BT_MODULE);
esp_phy_enable();
btdm_check_and_init_bb();
#ifdef CONFIG_PM_ENABLE
esp_timer_stop(s_btdm_slp_tmr);
@@ -921,7 +771,7 @@ static void btdm_sleep_exit_phase3_wrapper(void)
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
// resume bluetooth baseband
periph_module_enable(PERIPH_BT_BASEBAND_MODULE);
esp_modem_sleep_exit(MODEM_BLE_MODULE);
esp_phy_enable();
}
}
@@ -1144,6 +994,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();
@@ -1364,14 +1238,6 @@ 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
s_wakeup_req_sem = semphr_create_wrapper(1, 0);
if (s_wakeup_req_sem == NULL) {
err = ESP_ERR_NO_MEM;
@@ -1461,37 +1327,14 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
goto error;
}
#ifdef CONFIG_BTDM_COEX_BLE_ADV_HIGH_PRIORITY
coex_ble_adv_priority_high_set(true);
#else
coex_ble_adv_priority_high_set(false);
#endif
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
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;
}
@@ -1503,6 +1346,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
@@ -1510,40 +1360,47 @@ esp_err_t esp_bt_controller_deinit(void)
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
esp_timer_stop(s_btdm_slp_tmr);
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = 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_stop(s_btdm_slp_tmr);
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
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;
}
static void bt_shutdown(void)
{
esp_err_t ret = ESP_OK;
ESP_LOGD(BTDM_LOG_TAG, "stop Bluetooth");
ret = esp_bt_controller_disable();
if (ESP_OK != ret) {
ESP_LOGW(BTDM_LOG_TAG, "controller disable ret=%d", ret);
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return;
}
esp_bt_controller_shutdown();
esp_phy_disable();
return;
}
@@ -1568,21 +1425,11 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
esp_pm_lock_acquire(s_pm_lock);
#endif
esp_phy_load_cal_and_init(PHY_BT_MODULE);
esp_phy_enable();
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE) {
//Just register to sleep module, make the modem sleep modules check BT sleep status when sleep enter.
//Thus, it will prevent WIFI from disabling RF when BT is not in sleep but is using RF.
esp_modem_sleep_register(MODEM_BLE_MODULE);
esp_modem_sleep_register(MODEM_CLASSIC_BT_MODULE);
esp_modem_sleep_exit(MODEM_BLE_MODULE);
esp_modem_sleep_exit(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
esp_modem_sleep_register(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
}
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
coex_init();
#endif
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
btdm_controller_enable_sleep(true);
@@ -1592,15 +1439,11 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
btdm_check_and_init_bb();
ret = btdm_controller_enable(mode);
if (ret) {
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE
|| btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
}
esp_phy_rf_deinit(PHY_BT_MODULE);
if (ret != 0) {
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
coex_deinit();
#endif
esp_phy_disable();
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
esp_pm_lock_release(s_light_sleep_pm_lock);
@@ -1636,14 +1479,11 @@ esp_err_t esp_bt_controller_disable(void)
btdm_controller_disable();
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE
|| btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
}
esp_phy_rf_deinit(PHY_BT_MODULE);
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
coex_deinit();
#endif
esp_phy_disable();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
esp_unregister_shutdown_handler(bt_shutdown);
@@ -1710,13 +1550,8 @@ esp_err_t esp_bt_sleep_enable (void)
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
esp_modem_sleep_register(MODEM_CLASSIC_BT_MODULE);
btdm_controller_enable_sleep (true);
status = ESP_OK;
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG ||
btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
btdm_controller_enable_sleep (true);
status = ESP_OK;
} else {
@@ -1732,13 +1567,8 @@ esp_err_t esp_bt_sleep_disable (void)
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
btdm_controller_enable_sleep (false);
status = ESP_OK;
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG ||
btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
btdm_controller_enable_sleep (false);
status = ESP_OK;
} else {

View File

@@ -265,6 +265,19 @@ if BLE_MESH
advertising bearer. This option should be enabled if PB-ADV is
going to be used during provisioning procedure.
config BLE_MESH_UNPROVISIONED_BEACON_INTERVAL
int "Interval between two consecutive Unprovisioned Device Beacon"
depends on BLE_MESH_NODE && BLE_MESH_PB_ADV
default 5
default 3 if BLE_MESH_FAST_PROV
range 1 100
help
This option specifies the interval of sending two consecutive unprovisioned
device beacon, users can use this option to change the frequency of sending
unprovisioned device beacon. For example, if the value is 5, it means the
unprovisioned device beacon will send every 5 seconds. When the option of
BLE_MESH_FAST_PROV is selected, the value is better to be 3 seconds, or less.
config BLE_MESH_PB_GATT
bool "Provisioning support using GATT (PB-GATT)"
select BLE_MESH_PROXY
@@ -565,6 +578,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
@@ -783,6 +811,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
@@ -1074,6 +1109,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

@@ -69,6 +69,12 @@ esp_err_t esp_ble_mesh_node_prov_disable(esp_ble_mesh_prov_bearer_t bearers);
/**
* @brief Unprovisioned device set own oob public key & private key pair.
*
* @note In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* use an out-of-band mechanism to exchange the public keys.
* So as an unprovisioned device, it should use this function to input
* the Public Key exchanged through the out-of-band mechanism.
*
* @param[in] pub_key_x: Unprovisioned device's Public Key X
* @param[in] pub_key_y: Unprovisioned device's Public Key Y
* @param[in] private_key: Unprovisioned device's Private Key
@@ -121,6 +127,10 @@ esp_err_t esp_ble_mesh_set_unprovisioned_device_name(const char *name);
/**
* @brief Provisioner inputs unprovisioned device's oob public key.
*
* @note In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* use an out-of-band mechanism to exchange the public keys.
*
* @param[in] link_idx: The provisioning link index
* @param[in] pub_key_x: Unprovisioned device's Public Key X
* @param[in] pub_key_y: Unprovisioned device's Public Key Y
@@ -324,6 +334,19 @@ esp_err_t esp_ble_mesh_provisioner_set_prov_data_info(esp_ble_mesh_prov_data_inf
/**
* @brief This function is called by Provisioner to set static oob value used for provisioning.
*
* @note The Bluetooth SIG recommends that mesh implementations enforce a randomly selected
* AuthValue using all of the available bits, where permitted by the implementation.
* A large entropy helps ensure that a brute-force of the AuthValue, even a static
* AuthValue, cannot normally be completed in a reasonable time (CVE-2020-26557).
*
* AuthValues selected using a cryptographically secure random or pseudorandom number
* generator and having the maximum permitted entropy (128-bits) will be most difficult
* to brute-force. AuthValues with reduced entropy or generated in a predictable manner
* will not grant the same level of protection against this vulnerability. Selecting a
* new AuthValue with each provisioning attempt can also make it more difficult to launch
* a brute-force attack by requiring the attacker to restart the search with each
* provisioning attempt (CVE-2020-26556).
*
* @param[in] value: Pointer to the static oob value.
* @param[in] length: Length of the static oob value.
*

View File

@@ -582,6 +582,12 @@ typedef struct {
/** Out of Band information field. */
esp_ble_mesh_prov_oob_info_t oob_info;
/* NOTE: In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* support an out-of-band mechanism to exchange the public keys.
* So as an unprovisioned device, it should enable this flag to support
* using an out-of-band mechanism to exchange Public Key.
*/
/** Flag indicates whether unprovisioned devices support OOB public key */
bool oob_pub_key;
@@ -635,12 +641,29 @@ typedef struct {
/** Provisioning Algorithm for the Provisioner */
uint8_t prov_algorithm;
/* NOTE: In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* use an out-of-band mechanism to exchange the public keys.
*/
/** Provisioner public key oob */
uint8_t prov_pub_key_oob;
/** Callback used to notify to set device OOB Public Key. Initialized by the stack. */
esp_ble_mesh_cb_t provisioner_prov_read_oob_pub_key;
/* NOTE: The Bluetooth SIG recommends that mesh implementations enforce a randomly
* selected AuthValue using all of the available bits, where permitted by the
* implementation. A large entropy helps ensure that a brute-force of the AuthValue,
* even a static AuthValue, cannot normally be completed in a reasonable time (CVE-2020-26557).
*
* AuthValues selected using a cryptographically secure random or pseudorandom number
* generator and having the maximum permitted entropy (128-bits) will be most difficult
* to brute-force. AuthValues with reduced entropy or generated in a predictable manner
* will not grant the same level of protection against this vulnerability. Selecting a
* new AuthValue with each provisioning attempt can also make it more difficult to launch
* a brute-force attack by requiring the attacker to restart the search with each
* provisioning attempt (CVE-2020-26556).
*/
/** Provisioner static oob value */
uint8_t *prov_static_oob_val;
/** Provisioner static oob value length */

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

@@ -22,11 +22,11 @@
#include "provisioner_prov.h"
#include "provisioner_main.h"
#if defined(CONFIG_BLE_MESH_FAST_PROV)
#define UNPROVISIONED_INTERVAL K_SECONDS(3)
#if defined(CONFIG_BLE_MESH_UNPROVISIONED_BEACON_INTERVAL)
#define UNPROVISIONED_INTERVAL K_SECONDS(CONFIG_BLE_MESH_UNPROVISIONED_BEACON_INTERVAL)
#else
#define UNPROVISIONED_INTERVAL K_SECONDS(5)
#endif /* CONFIG_BLE_MESH_FAST_PROV */
#endif
#define PROVISIONED_INTERVAL K_SECONDS(10)
#define BEACON_TYPE_UNPROVISIONED 0x00
@@ -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;
}
@@ -1959,17 +1959,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 +1980,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;
}
@@ -2352,7 +2371,7 @@ send_status:
if (status == STATUS_SUCCESS) {
bt_mesh_cfg_server_state_change_t change = {0};
change.cfg_netkey_delete.net_idx = sub->net_idx;
change.cfg_netkey_delete.net_idx = sub ? sub->net_idx : BLE_MESH_KEY_UNUSED;
bt_mesh_config_server_cb_evt_to_btc(BTC_BLE_MESH_EVT_CONFIG_SERVER_STATE_CHANGE,
model, ctx, (const uint8_t *)&change, sizeof(change));
}
@@ -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,7 @@ int bt_mesh_host_init(void)
int rc;
if (init == true) {
return 0;
return -EALREADY;
}
rc = btc_init();

View File

@@ -74,6 +74,7 @@
#define START_PAYLOAD_MAX 20
#define CONT_PAYLOAD_MAX 23
#define START_LAST_SEG_MAX 2
#define START_LAST_SEG(gpc) (gpc >> 2)
#define CONT_SEG_INDEX(gpc) (gpc >> 2)
@@ -310,8 +311,8 @@ static void reset_adv_link(void)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Remove the link id from exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link.id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link.id);
#endif
reset_state();
@@ -751,7 +752,18 @@ static int prov_auth(uint8_t method, uint8_t action, uint8_t size)
uint32_t num = 0U;
bt_mesh_rand(&num, sizeof(num));
num %= div[size - 1];
if (output == BLE_MESH_BLINK ||
output == BLE_MESH_BEEP ||
output == BLE_MESH_VIBRATE) {
/** NOTE: According to the Bluetooth Mesh Profile Specification
* Section 5.4.2.4, blink, beep and vibrate should be a random
* integer between 0 and 10^size.
*/
num = (num % (div[size - 1] - 1)) + 1;
} else {
num %= div[size - 1];
}
sys_put_be32(num, &link.auth[12]);
(void)memset(link.auth, 0, 12);
@@ -829,6 +841,7 @@ static void prov_start(const uint8_t *data)
static void send_confirm(void)
{
uint8_t *local_conf = NULL;
PROV_BUF(cfm, 17);
BT_DBG("ConfInputs[0] %s", bt_hex(link.conf_inputs, 64));
@@ -861,13 +874,21 @@ static void send_confirm(void)
prov_buf_init(&cfm, PROV_CONFIRM);
local_conf = net_buf_simple_add(&cfm, 16);
if (bt_mesh_prov_conf(link.conf_key, link.rand, link.auth,
net_buf_simple_add(&cfm, 16))) {
local_conf)) {
BT_ERR("Unable to generate confirmation value");
prov_send_fail_msg(PROV_ERR_UNEXP_ERR);
return;
}
if (!memcmp(link.conf, local_conf, 16)) {
BT_ERR("Confirmation value is identical to ours, rejecting.");
prov_send_fail_msg(PROV_ERR_NVAL_FMT);
return;
}
if (prov_send(&cfm)) {
BT_ERR("Unable to send Provisioning Confirm");
return;
@@ -1359,8 +1380,8 @@ static void link_open(struct prov_rx *rx, struct net_buf_simple *buf)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Add the link id into exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link.id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link.id);
#endif
bearer_ctl_send(LINK_ACK, NULL, 0);
@@ -1429,18 +1450,22 @@ static void prov_msg_recv(void)
return;
}
if (type != PROV_FAILED && type != link.expect) {
BT_WARN("Unexpected msg 0x%02x != 0x%02x", type, link.expect);
prov_send_fail_msg(PROV_ERR_UNEXP_PDU);
return;
}
/* For case MESH/NODE/PROV/BI-15-C, when the node receive a Provisioning PDU
* with the Type field set to the lowest unsupported or RFU value, it sends a
* Provisioning Failed PDU with the Error Code field set to Invalid PDU(0x01).
*/
if (type >= ARRAY_SIZE(prov_handlers)) {
BT_ERR("Unknown provisioning PDU type 0x%02x", type);
prov_send_fail_msg(PROV_ERR_NVAL_PDU);
return;
}
if (type != PROV_FAILED && type != link.expect) {
BT_WARN("Unexpected msg 0x%02x != 0x%02x", type, link.expect);
prov_send_fail_msg(PROV_ERR_UNEXP_PDU);
return;
}
if (1 + prov_handlers[type].len != link.rx.buf->len) {
BT_ERR("Invalid length %u for type 0x%02x",
link.rx.buf->len, type);
@@ -1543,6 +1568,12 @@ static void gen_prov_start(struct prov_rx *rx, struct net_buf_simple *buf)
return;
}
if (START_LAST_SEG(rx->gpc) > START_LAST_SEG_MAX) {
BT_ERR("Invalid SegN 0x%02x", START_LAST_SEG(rx->gpc));
prov_send_fail_msg(PROV_ERR_UNEXP_ERR);
return;
}
if (link.rx.buf->len > link.rx.buf->size) {
BT_ERR("Too large provisioning PDU (%u bytes)",
link.rx.buf->len);
@@ -1639,15 +1670,30 @@ int bt_mesh_pb_gatt_recv(struct bt_mesh_conn *conn, struct net_buf_simple *buf)
return -EINVAL;
}
type = net_buf_simple_pull_u8(buf);
if (type != PROV_FAILED && type != link.expect) {
BT_WARN("Unexpected msg 0x%02x != 0x%02x", type, link.expect);
/* For case MESH/NODE/PROV/BI-03-C, if the link is closed, when the node receive
* a Provisioning PDU , it will send a Provisioning Failed PDU with the Error Code
* field set to Unexpected PDU(0x03).
*/
if (bt_mesh_atomic_test_bit(link.flags, LINK_INVALID)) {
BT_WARN("Unexpected msg 0x%02x on invalid link", type);
prov_send_fail_msg(PROV_ERR_UNEXP_PDU);
return -EINVAL;
}
/* For case MESH/NODE/PROV/BI-15-C, when the node receive a Provisioning PDU
* with the Type field set to the lowest unsupported or RFU value, it sends a
* Provisioning Failed PDU with the Error Code field set to Invalid PDU(0x01).
*/
type = net_buf_simple_pull_u8(buf);
if (type >= ARRAY_SIZE(prov_handlers)) {
BT_ERR("Unknown provisioning PDU type 0x%02x", type);
prov_send_fail_msg(PROV_ERR_NVAL_PDU);
return -EINVAL;
}
if (type != PROV_FAILED && type != link.expect) {
BT_WARN("Unexpected msg 0x%02x != 0x%02x", type, link.expect);
prov_send_fail_msg(PROV_ERR_UNEXP_PDU);
return -EINVAL;
}
@@ -1791,8 +1837,8 @@ int bt_mesh_prov_deinit(void)
k_delayed_work_free(&link.tx.retransmit);
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Remove the link id from exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link.id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link.id);
#endif /* CONFIG_BLE_MESH_USE_DUPLICATE_SCAN */
#endif /* CONFIG_BLE_MESH_PB_ADV */

View File

@@ -1691,55 +1691,65 @@ int bt_mesh_provisioner_set_heartbeat_filter_info(uint8_t op, uint16_t src, uint
}
}
static bool filter_with_rejectlist(struct heartbeat_filter *filter,
uint16_t hb_src, uint16_t hb_dst)
static bool filter_with_rejectlist(uint16_t hb_src, uint16_t hb_dst)
{
switch (filter->type) {
case HEARTBEAT_FILTER_WITH_SRC:
if (hb_src == filter->src) {
return true;
int i;
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
switch (filter->type) {
case HEARTBEAT_FILTER_WITH_SRC:
if (hb_src == filter->src) {
return true;
}
break;
case HEARTBEAT_FILTER_WITH_DST:
if (hb_dst == filter->dst) {
return true;
}
break;
case HEARTBEAT_FILTER_WITH_BOTH:
if (hb_src == filter->src && hb_dst == filter->dst) {
return true;
}
break;
default:
BT_DBG("Unknown filter addr type 0x%02x", filter->type);
break;
}
break;
case HEARTBEAT_FILTER_WITH_DST:
if (hb_dst == filter->dst) {
return true;
}
break;
case HEARTBEAT_FILTER_WITH_BOTH:
if (hb_src == filter->src && hb_dst == filter->dst) {
return true;
}
break;
default:
BT_WARN("Unknown filter addr type 0x%02x", filter->type);
break;
}
return false;
}
static bool filter_with_acceptlist(struct heartbeat_filter *filter,
uint16_t hb_src, uint16_t hb_dst)
static bool filter_with_acceptlist(uint16_t hb_src, uint16_t hb_dst)
{
switch (filter->type) {
case HEARTBEAT_FILTER_WITH_SRC:
if (hb_src == filter->src) {
return false;
int i;
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
switch (filter->type) {
case HEARTBEAT_FILTER_WITH_SRC:
if (hb_src == filter->src) {
return false;
}
break;
case HEARTBEAT_FILTER_WITH_DST:
if (hb_dst == filter->dst) {
return false;
}
break;
case HEARTBEAT_FILTER_WITH_BOTH:
if (hb_src == filter->src && hb_dst == filter->dst) {
return false;
}
break;
default:
BT_DBG("Unknown filter addr type 0x%02x", filter->type);
break;
}
break;
case HEARTBEAT_FILTER_WITH_DST:
if (hb_dst == filter->dst) {
return false;
}
break;
case HEARTBEAT_FILTER_WITH_BOTH:
if (hb_src == filter->src && hb_dst == filter->dst) {
return false;
}
break;
default:
BT_WARN("Unknown filter addr type 0x%02x", filter->type);
return false;
}
return true;
@@ -1749,26 +1759,20 @@ void bt_mesh_provisioner_heartbeat(uint16_t hb_src, uint16_t hb_dst,
uint8_t init_ttl, uint8_t rx_ttl,
uint8_t hops, uint16_t feat, int8_t rssi)
{
int i;
if (hb_rx.cb == NULL) {
BT_DBG("Receiving heartbeat is not enabled");
return;
}
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
if (hb_rx.type == HEARTBEAT_FILTER_REJECTLIST) {
if (filter_with_rejectlist(filter, hb_src, hb_dst)) {
BT_DBG("Filtered by rejectlist, src 0x%04x, dst 0x%04x", hb_src, hb_dst);
return;
}
} else {
if (filter_with_acceptlist(filter, hb_src, hb_dst)) {
BT_DBG("Filtered by acceptlist, src 0x%04x, dst 0x%04x", hb_src, hb_dst);
return;
}
if (hb_rx.type == HEARTBEAT_FILTER_REJECTLIST) {
if (filter_with_rejectlist(hb_src, hb_dst)) {
BT_INFO("Filtered by rejectlist, src 0x%04x, dst 0x%04x", hb_src, hb_dst);
return;
}
} else {
if (filter_with_acceptlist(hb_src, hb_dst)) {
BT_INFO("Filtered by acceptlist, src 0x%04x, dst 0x%04x", hb_src, hb_dst);
return;
}
}

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