Compare commits

..

942 Commits

Author SHA1 Message Date
Aditya Patwardhan
03d7a3807b change(version): Update version to 5.0.5 2023-12-13 13:49:52 +05:50
Jiang Jiang Jian
9fe3bf2a3c Merge branch 'bugfix/fix_ble_clear_white_list_v5.0' into 'release/v5.0'
Fixed add(remove) RPA to(from) white list on ESP32C3(65db61f)(backport 5.0)

See merge request espressif/esp-idf!27757
2023-12-08 19:09:05 +08:00
Island
b1e88e3f6e Merge branch 'bugfix/remove_bond_v5.0' into 'release/v5.0'
fix(nimble): Handled IRK/LTK deletion based on key availability(v5.0)

See merge request espressif/esp-idf!26598
2023-12-08 18:43:20 +08:00
chenjianhua
32d3bf7919 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(65db61f)
- Fixed remove and clear white list
2023-12-08 13:40:44 +08:00
Abhinav Kudnar
2d14933dbc fix(nimble): Handled IRK/LTK deletion based on key availability. 2023-12-07 13:47:16 +05:30
Jiang Jiang Jian
2e387a71b0 Merge branch 'bugfix/fix_dhcp_server_can_not_restore_address_pool_issue_5.0' into 'release/v5.0'
fix(dhcp server):dhcp server can not restore address pool 5.0

See merge request espressif/esp-idf!27692
2023-12-06 16:57:35 +08:00
xueyunfei
112ce3f3a5 fix(dhcp server):dhcp server can not restore address pool 2023-12-06 10:32:27 +08:00
Island
ab5576d91d Merge branch 'bugfix/fix_bleqabr23_808_v5.0' into 'release/v5.0'
Fixed assert when LLCP instant passed on ESP32-C3 (backport v5.0)

See merge request espressif/esp-idf!27635
2023-12-05 12:32:45 +08:00
chenjianhua
259e8ab25b fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(b8f0db9)
- Fixed assert when llcp instant passed
2023-12-04 17:09:50 +08:00
chenjianhua
19919a2222 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(70ab55f)
- Fixed assert for instant passed workaround
- Fixed add RPA to white list
- Fixed AES encryption for RPA resolution
2023-12-04 17:09:38 +08:00
chenjianhua
52333aeac9 fix(bt/bluedroid): Fixed add RPA to white list 2023-12-04 17:09:28 +08:00
Jiang Jiang Jian
1d611df0b5 Merge branch 'bugfix/alarm_args_double_free_v5.0' into 'release/v5.0'
Bugfix/alarm args double free v5.0

See merge request espressif/esp-idf!27539
2023-12-04 14:57:21 +08:00
Island
a060a261ef Merge branch 'bugfix/ble_update_lib_20231124_v5.0' into 'release/v5.0'
ble(update):Update c2 lib to 79ed4e8a

See merge request espressif/esp-idf!27392
2023-12-01 13:58:16 +08:00
Jiang Jiang Jian
c56fa7ce36 Merge branch 'bugfix/fix_wifi_deinit_s_wifi_modem_sleep_lock_v5.0' into 'release/v5.0'
fix(wifi): fix wifi deinit s_wifi_modem_sleep_lock

See merge request espressif/esp-idf!27449
2023-12-01 13:57:41 +08:00
Jin Cheng
db287328bc fix(bt/bluedroid): Set the alarm_arg to NULL after releasing to avoid double free in L2CAP layer 2023-11-30 20:14:31 +08:00
Jin Cheng
bab64a98d8 fix(bt/bluedroid): Set the alarm_arg to NULL after releasing to avoid double free in BTC layer 2023-11-30 20:14:31 +08:00
Michael (XIAO Xufeng)
3cab1a00bc Merge branch 'feat/max_ver_c3_199_v5.0' into 'release/v5.0'
feat(soc): Increase max supported version of C3 to 1.99 (v5.0)

See merge request espressif/esp-idf!26824
2023-11-30 17:01:13 +08:00
Michael (XIAO Xufeng)
893725dd40 feat(soc): Increase max supported version of C3 to 1.99 2023-11-29 15:52:09 +08:00
luomanruo
0b71f8a2d2 ble(fix): fix RX issue on ESP32-C2(amend) 2023-11-29 11:05:11 +08:00
liuning
606360d33d fix(wifi): fix wifi deinit s_wifi_modem_sleep_lock 2023-11-28 20:52:42 +08:00
luomanruo
71ed11a7f0 ble: update rom.ld file 2023-11-24 20:35:07 +08:00
luomanruo
b147fcad42 ble: update sdkconfig_version on ESP32C2, ESP32H2 and ESP32C6 2023-11-24 20:17:28 +08:00
luomanruo
d8dd468631 ble(fix): fix RX issue on ESP32-C2 2023-11-24 19:44:11 +08:00
luomanruo
69e7b56c48 ble:
Update c2 lib to 79ed4e8a
2023-11-24 19:20:54 +08:00
Jiang Jiang Jian
32160c7b74 Merge branch 'bugfix/fix_ps_none_wake_null_v5.0' into 'release/v5.0'
fix(wifi): fix endless wake null at ps none mode (v5.0)

See merge request espressif/esp-idf!27346
2023-11-23 23:57:07 +08:00
Jiang Jiang Jian
15825570a3 Merge branch 'contrib/github_pr_12052_v5.0' into 'release/v5.0'
Two small patches for build system and fatfs (GitHub PR) (v5.0)

See merge request espressif/esp-idf!26432
2023-11-23 19:27:38 +08:00
Jiang Jiang Jian
eaba52d7df Merge branch 'fix/remove_deprecated_bt_example_sdkfonfigs_v5.0' into 'release/v5.0'
ci(bt/bluedroid): remove configs that are not in effect (backport v5.0)

See merge request espressif/esp-idf!27283
2023-11-23 19:14:14 +08:00
Jiang Jiang Jian
893dac658e Merge branch 'bugfix/validate_random_address_v5.0' into 'release/v5.0'
fix(nimble): Added check to validate allowed random address (v5.0)

See merge request espressif/esp-idf!26929
2023-11-23 19:12:15 +08:00
Jiang Jiang Jian
ae02cc7b7c Merge branch 'feat/dynamic_integration_pipeline_v5.0' into 'release/v5.0'
CI: dynamic integration pipeline v5.0

See merge request espressif/esp-idf!26947
2023-11-23 15:17:12 +08:00
Jiang Jiang Jian
85651c507f Merge branch 'contrib/github_pr_12558_v5.0' into 'release/v5.0'
Fix: esptool_py incorrectly assumed target name equals binary name (GitHub PR) (v5.0)

See merge request espressif/esp-idf!27272
2023-11-23 15:13:59 +08:00
Jiang Jiang Jian
a8caeb9af4 Merge branch 'bugfix/fix_lightsleep_current_leakage_on_usj_pad_v5.0' into 'release/v5.0'
fix(esp_hw_support): fix lightsleep current leakage on usb pad (backport v5.0)

See merge request espressif/esp-idf!27208
2023-11-23 14:46:38 +08:00
zhangyanjiao
0b740b3b80 fix(wifi): fix endless wake null at ps none mode 2023-11-23 14:43:40 +08:00
Jiang Jiang Jian
cba997763d Merge branch 'bugfix/fix_some_wifi_bugs_231121_v5.0' into 'release/v5.0'
fix(wifi): fix some wifi bugs(Backport v5.0)

See merge request espressif/esp-idf!27306
2023-11-23 14:41:40 +08:00
morris
f97e379122 Merge branch 'fix/twai_crash_on_s3_gpio_19and20' into 'release/v5.0'
fix(twai): example crash using usb-serial-jtag gpio (v5.0)

See merge request espressif/esp-idf!26660
2023-11-23 14:34:20 +08:00
morris
3bb601cee7 Merge branch 'feature/mcpwm_trigger_driver_v5.0' into 'release/v5.0'
feature(MCPWM): Add MCPWM trigger driver (v5.0)

See merge request espressif/esp-idf!26788
2023-11-23 14:33:20 +08:00
Jiang Jiang Jian
5f497153f7 Merge branch 'bugfix/rmt_stop_issue_v5.0' into 'release/v5.0'
fix(rmt): a disabled channel may pick up a pending transaction (v5.0)

See merge request espressif/esp-idf!26780
2023-11-23 14:27:25 +08:00
Rahul Tank
94c90c71bc fix(nimble): Added check to validate allowed random address 2023-11-23 10:37:54 +05:30
morris
28224b3af5 Merge branch 'bugfix/fix_wrong_adc_attenuation_name_v5.0' into 'release/v5.0'
fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12 (v5.0)

See merge request espressif/esp-idf!26968
2023-11-23 12:04:24 +08:00
Jiang Jiang Jian
20d82594d7 Merge branch 'bugfix/ble_gap_connect_v5.0' into 'release/v5.0'
fix(nimble):Handled the Load access fault crash caused due to an invalid setting of index-variable 'reattempt_idx'.(v5.0)

See merge request espressif/esp-idf!26950
2023-11-23 12:03:59 +08:00
morris
692952d60e Merge branch 'bugfix/ledc_max_duty_cycle_v5.0' into 'release/v5.0'
fix(ledc): fix ledc driver 100% duty cycle configuration (backport v5.0)

See merge request espressif/esp-idf!27228
2023-11-23 12:03:28 +08:00
Jiang Jiang Jian
a5c2e40416 Merge branch 'bugfix/ble_update_lib_1110_5.0' into 'release/v5.0'
Bugfix/ble update lib 1110 5.0

See merge request espressif/esp-idf!27063
2023-11-23 11:05:29 +08:00
Jiang Jiang Jian
457c00eead Merge branch 'fix/ci_autocomplete_v5.0' into 'release/v5.0'
Tools, CI: Improve autocomplete tests (v5.0)

See merge request espressif/esp-idf!27038
2023-11-23 11:04:37 +08:00
Jiang Jiang Jian
201608e590 Merge branch 'bugfix/fix_adc_oneshot_do_not_spilt_clk_v5.0' into 'release/v5.0'
fix(adc): fix ADC oneshot mod don't divide clk (v5.0)

See merge request espressif/esp-idf!26676
2023-11-23 11:02:10 +08:00
Jiang Jiang Jian
de88da5370 Merge branch 'bugfix/return_code_of_ota_finish_api_v5.0' into 'release/v5.0'
fix(esp_https_ota): fix return code of esp_https_ota_finish API (v5.0)

See merge request espressif/esp-idf!27336
2023-11-23 11:01:20 +08:00
Jiang Jiang Jian
2166b5986e Merge branch 'bugfix/fix_wifi_init_reentrant_issue_v5.0' into 'release/v5.0'
fix(wifi): fix wifi init reentrant issue (v5.0)

See merge request espressif/esp-idf!27175
2023-11-23 10:57:40 +08:00
Jiang Jiang Jian
5c1f5f2522 Merge branch 'bugfix/add_par_check_in_ag_cind_res_v5.0' into 'release/v5.0'
Bugfix/add par check in ag cind res v5.0

See merge request espressif/esp-idf!27258
2023-11-23 10:48:16 +08:00
wuzhenghui
ead822e6ee fix(esp_hw_support): fix lightsleep current leakage on usb-phy controlled pad 2023-11-23 10:21:02 +08:00
Jiang Jiang Jian
d7667c79ef Merge branch 'bugfix/fix_dhcp_subnet_option_api_dos_not_work_issue_5.0' into 'release/v5.0'
Fix(dhcps):fix dhcp subnet option api dos not work issue 5.0

See merge request espressif/esp-idf!27300
2023-11-23 00:05:38 +08:00
Frantisek Hrbata
d587d24c43 feat(ci): add test for custom cmake CMAKE_EXECUTABLE_SUFFIX
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-11-22 14:44:18 +00:00
Arno Moonen
7d87f56e35 fix(build): fix build failure if CMAKE_EXECUTABLE_SUFFIX is set
From: Arno Moonen <arno.moonen@airios.eu>

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

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

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

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

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

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

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

Closes https://github.com/espressif/esp-idf/pull/12558
2023-11-22 14:44:18 +00:00
Abhinav Kudnar
2e833a6a12 fix(nimble):Handled the Load access fault crash caused due to an invalid setting of index-varible 'reattempt_idx'. 2023-11-22 19:39:55 +05:30
Harshit Malpani
73de32f29f fix(esp_https_ota): fix return code of esp_https_ota_finish API
Closes https://github.com/espressif/esp-idf/issues/12635
2023-11-22 17:10:31 +05:30
muhaidong
2e5937286c fix(wifi): fix some wifi bugs
1 sta not pmf capable when ap requires should reject profile
2 fix softap set config issue
3 allow some special igtk keyindx to workaround faulty APs
2023-11-22 19:04:43 +08:00
Jiang Jiang Jian
5c4ddf2d83 Merge branch 'bugfix/clear_ulp_wake_intr_in_wake_source_enable_v5.0' into 'release/v5.0'
fix(esp_hw_support): clear all type ULP wakeup intr status at ulp wakeup source enable (backport v5.0)

See merge request espressif/esp-idf!27189
2023-11-22 17:33:23 +08:00
Jiang Jiang Jian
1884afc9c4 Merge branch 'bugfix/dpp_config_memset_v5.0' into 'release/v5.0'
Wi-Fi: Fixed some DPP issues (v5.0)

See merge request espressif/esp-idf!27193
2023-11-22 17:31:31 +08:00
Jiang Jiang Jian
c0dd50a35b Merge branch 'bugfix/esp32s3_usb_otg_console_without_efuse_v5.0' into 'release/v5.0'
fix(console): switch USB PHY to OTG when OTG is used for console (v5.0)

See merge request espressif/esp-idf!27135
2023-11-22 17:31:10 +08:00
Jiang Jiang Jian
09a9a9257d Merge branch 'check_debug_aware_config_v5.0' into 'release/v5.0'
fix(esp_hw_support): re-enable CONFIG_ESP_DEBUG_OCDAWARE functionality (v5.0)

See merge request espressif/esp-idf!27107
2023-11-22 17:30:59 +08:00
Jiang Jiang Jian
2e0d1508c4 Merge branch 'bugfix/spp_deinit_crash_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Fix the crash of invalid access to released resources (v5.0)

See merge request espressif/esp-idf!27252
2023-11-22 17:29:27 +08:00
Jiang Jiang Jian
d920052bf0 Merge branch 'feature/support_for_32_and_128_bit_custom_uuids_v5.0' into 'release/v5.0'
feat(bt/bluedroid): Add new APIs for 32 and 128-bit UUIDs (backport v5.0)

See merge request espressif/esp-idf!27231
2023-11-22 17:29:12 +08:00
Jiang Jiang Jian
12ee01fc87 Merge branch 'fix/wifi_prov_mgr_retry_auth_expire_v5.0' into 'release/v5.0'
fix (wifi_prov): Retry provisioning on `WIFI_AUTH_EXPIRE` event (v5.0)

See merge request espressif/esp-idf!26902
2023-11-22 17:27:13 +08:00
Jin Cheng
9998c2bd82 fix(bt/bluedroid): corrected the API documents of profile HFP and A2DP 2023-11-22 09:21:59 +00:00
Jin Cheng
4c8502e00d fix(bt/bluedroid): Added some argument check in APIs of HFP AG 2023-11-22 09:21:59 +00:00
liuning
ac5ce8d02d fix(wifi): fix wifi init reentrant issue 2023-11-22 16:58:55 +08:00
Jiang Jiang Jian
293cf4d332 Merge branch 'bugfix/s3_irom_addr_v5.0' into 'release/v5.0'
soc: fix SOC_IROM_MASK_HIGH for esp32s3 (v5.0)

See merge request espressif/esp-idf!27137
2023-11-22 13:58:47 +08:00
Jiang Jiang Jian
e4a38c3cba Merge branch 'bugfix/fix_psram_access_faild_after_pd_cpu_wakeup_v5.0' into 'release/v5.0'
fix(esp_pm): fix psram access failed after pd_cpu wakeup if uart driver driven console is used (backport v5.0)

See merge request espressif/esp-idf!27054
2023-11-22 13:58:38 +08:00
luomanruo
1c0fb3bb4a ble(fix): deinit crash issue 2023-11-22 03:13:43 +00:00
zwl
08e4757764 fix(ble): fixed ble occasional rx exception issue 2023-11-22 03:13:43 +00:00
luomanruo
1c261213d7 ble: update controller log module 2023-11-22 03:13:43 +00:00
luomanruo
30cd76b0f0 ble: update c2 lib to db4e1fb2 2023-11-22 03:13:43 +00:00
luomanruo
977b7f4bdb ble(fix): Fixed the issue of not returning memory to the memory pool after deinit callout
ble(fix): Fixed the issue of not returning memory to the memory pool after deinit callout
2023-11-22 03:13:43 +00:00
Song Ruo Jing
c0a1d27858 fix(ledc): fix ledc driver 100% duty cycle configuration
Update ledc duty cycle value range in doxygen.
Fix duty configuration error at 100% duty cycle for ESP32.
Improve LEDC API doxygen.

Closes https://github.com/espressif/esp-idf/pull/11516
Closes https://github.com/espressif/esp-idf/issues/12593
Closes https://github.com/espressif/esp-idf/issues/12083
2023-11-22 03:12:38 +00:00
Ilia Lutchenko
fffc6f9328 feat(bt/bluedroid): Add new APIs for 32 and 128-bit UUIDs
1. Added new API functions that can add 32 and 128-bit UUID to the EIR data
when these UUIDs are set in SDP.
The old functions that only work with 16-bit UUIDs have been left
unchanged to avoid having to redo code that already utilizes them.

2. Fixed bug with zero handler return in btc_sdp.c
sdp_create_record.handle in tBTA_SDP struct wasn't saved before.
Because of it Bluetooth stack always returned zero handler to
application callback.

Closes https://github.com/espressif/esp-idf/issues/11529
2023-11-22 03:10:00 +00:00
Jin Cheng
8ae138e7be fix(bt/bluedroid): Fix the crash of invalid access to released resources
It is caused by the delayed timer is alarmed after esp_spp_deinit.
2023-11-22 03:09:13 +00:00
Jiang Jiang Jian
6c9c30f125 Merge branch 'bugfix/coex_deprecate_config_rename_v5.0' into 'release/v5.0'
fix(esp_coex): Fix deprecated configuration options not rename to new one (Backport v5.0)

See merge request espressif/esp-idf!27092
2023-11-22 11:07:00 +08:00
wuzhenghui
ea8b719288 fix(esp_hw_support): clear all type ULP wakeup intr status at ulp wakeup source enable 2023-11-22 03:06:03 +00:00
Erhan Kurubas
5f1d3790cc fix(esp_hw_support): re-enable CONFIG_ESP_DEBUG_OCDAWARE functionality 2023-11-22 03:05:34 +00:00
Ivan Grokhotkov
c29f14e7b2 fix(console): switch USB PHY to OTG when OTG is used for console
On ESP32-S3 with the default efuse settings, USB PHY is connected to
the USB_SERIAL_JTAG peripheral. If USB OTG peripheral is used for the
console, we need to additionally switch the PHY to USB OTG, otherwise
we won't get any output.

Closes https://github.com/espressif/esp-idf/issues/12437
2023-11-22 03:04:13 +00:00
Ivan Grokhotkov
3fd3848932 fix(soc): update SOC_IROM_MASK_HIGH for esp32 for consistency 2023-11-22 03:03:35 +00:00
Ivan Grokhotkov
207996eb68 fix(soc): correct SOC_IROM_MASK_HIGH for esp32s3
Fixes corrupted backtraces on S3 when a function is in ROM.

Closes https://github.com/espressif/esp-idf/issues/11512
2023-11-22 03:03:35 +00:00
wuzhenghui
6de1e945c8 fix(esp_pm): fix psram access faild after pd_cpu wakeup 2023-11-22 03:02:06 +00:00
Kapil Gupta
a155523263 fix(wpa_supplicant): memzero wifi config before sending config event 2023-11-22 02:58:06 +00:00
Kapil Gupta
6383609e99 fix(wifi): Disallow DPP and WPS concurrency 2023-11-22 02:58:06 +00:00
xueyunfei
40f1ca7666 Fix(dhcps):fix dhcp subnet option api dos not work issue 2023-11-22 02:56:07 +00:00
Jiang Jiang Jian
35f09a6ce6 Merge branch 'bugfix/connect_before_connected_v5.0' into 'release/v5.0'
fix(connect): Change second connect time to 730

See merge request espressif/esp-idf!26974
2023-11-22 10:48:38 +08:00
Jiang Jiang Jian
13fdffbe98 Merge branch 'bugfix/pairing_when_enc_with_no_key_fails_v5.0' into 'release/v5.0'
fix(nimble): Initate pairing if encryption fails with reason no pin or key missing (v5.0)

See merge request espressif/esp-idf!27018
2023-11-22 10:47:22 +08:00
Island
6d77fe9b79 Merge branch 'backport/fix_ble_scan_rsp_v5.0' into 'release/v5.0'
Backport/fix ble scan rsp v5.0(backport v5.0)

See merge request espressif/esp-idf!27006
2023-11-21 12:15:09 +08:00
gongyantao
82aed29e59 ci(bt/bluedroid): remove configs that are not in effect 2023-11-21 10:11:12 +08:00
Island
a84ad081b2 Merge branch 'bugfix/fix_some_ble_bugs_v5.0' into 'release/v5.0'
Fixed some BLE bugs (backport v5.0)

See merge request espressif/esp-idf!27167
2023-11-17 10:34:35 +08:00
chenjianhua
50b49d856f fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(2758518)
- Fixed power state setting when entering modem sleep
2023-11-15 17:16:46 +08:00
chenjianhua
cd242a5e3e Update bt lib for ESP32-C3 and ESP32-S3(f817304)
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
2023-11-15 17:16:19 +08:00
zhanghaipeng
6bf79dfa8f fix(ble/controller): Fix bugs in setting adv data and scan response data 2023-11-15 17:16:08 +08:00
chenjianhua
905da8f5bf update esp32 bt-lib (6458728)
- Modify mesh proxy solic uuid to 0x18590303
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
2023-11-15 17:15:16 +08:00
chenjianhua
8cc73fe6bf feat(bt/bluedroid): support clear legacy advertising 2023-11-15 17:12:40 +08:00
Chen Yudong
81350e30f3 ci: fix assign test jobs 2023-11-15 05:49:32 +00:00
Chen Yudong
4d4b89755c ci: add label rules for integration test 2023-11-15 05:49:32 +00:00
Chen Yudong
249468e5bc ci: add qa-test-tag rules 2023-11-15 05:49:32 +00:00
Chen Yudong
29a2249170 ci: dynamic integration test child pipeline 2023-11-15 05:49:32 +00:00
Jiang Jiang Jian
3405065ed5 Merge branch 'bugfix/fix_deinit_init_wifi_scan_fail_issue_v5.0' into 'release/v5.0'
Bugfix/fix deinit init wifi scan fail issue v5.0(Backport v5.0)

See merge request espressif/esp-idf!27053
2023-11-14 15:27:26 +08:00
ding huan
856daf8a35 disable scan time set by esp_wifi_scan_start 2023-11-14 13:52:55 +08:00
ding huan
2542b74edd fix(connect): Change second connect delay time to 730 and not depends on default value 2023-11-14 11:00:32 +08:00
Jiang Jiang Jian
e42bcf2e88 Merge branch 'bugfix/build_error_when_enable_ag_and_hf_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Fix build error when both of the HFP roles are enabled (v5.0)

See merge request espressif/esp-idf!27078
2023-11-13 16:00:36 +08:00
Jiang Jiang Jian
33f8e6acea Merge branch 'bugfix/fix_wifi_issue_v5.0' into 'release/v5.0'
esp_wifi: backport some wifi fix(v5.0)

See merge request espressif/esp-idf!27041
2023-11-13 15:59:54 +08:00
linruihao
27acfa5377 fix(esp_coex): Fix deprecated configuration options not rename to new one 2023-11-13 14:38:38 +08:00
Wang Mengyang
ee53260db8 fix(bt/bluedroid): Fix build error when both of the HFP roles are enabled and also CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is set to true 2023-11-10 21:08:17 +08:00
Roland Dobai
3239ef1c8e Merge branch 'coredump_missing_proj_desc_v5.0' into 'release/v5.0'
fix(tools/coredump): ignore missing project description

See merge request espressif/esp-idf!27005
2023-11-10 20:51:30 +08:00
muhaidong
3937e35a08 change(hal): remove useless code from periph_ll_wifi_bt_module_enable_clk 2023-11-10 11:43:01 +08:00
muhaidong
4ee958df57 fix(wifi): fix deinit init wifi scan fail issue 2023-11-10 11:18:12 +08:00
Chen Jichang
01c5d8d72e feature(MCPWM): Add MCPWM trigger driver and test
Each MCPWM operator has two Trigger (named T0 and T1), and they can be
routed to GPIO fault signal or timer sync event.Generator can be set up
to perform different action on Trigger event.
This commit add a trigger driver and a test for the driver.

fix(mcpwm): fault trigger test forget connect timer and operator
2023-11-09 21:52:37 +08:00
alanmaxwell
5460d41b43 esp_wifi: backport some wifi fix
1. optimize BB filter timer to pass corner case
2. fix parse beacon rsnx ie missed break
2023-11-09 21:52:06 +08:00
Roland Dobai
1e69dbf6cf ci(fix): Improve the stability of the autocomplete tests 2023-11-09 14:10:13 +01:00
Rahul Tank
6ff708aa91 fix(nimble): Initate pairing if encryption fails with reason no pin or key missing 2023-11-09 11:52:16 +05:30
wanlei
efef840124 fix(twai): twai example crash using usb-serial-jtag pins
Calling gpio_hal_iomux_func_sel() via gpio_config() may
disconnects/disables any influence from USJ when using USJ pins
2023-11-09 02:52:27 +00:00
Peter Dragun
34a6d8ebe7 fix(tools/coredump): ignore missing project description 2023-11-08 13:10:10 +01:00
zhanghaipeng
44f7c7f6bb fix(bt/bluedroid): Fix ble keysize check 2023-11-08 19:47:32 +08:00
zhanghaipeng
ef444d6a1b fix(bt/bluedroid): Fix ble adv report evt type 2023-11-08 19:47:26 +08:00
morris
6a7e250442 feat(rmt): support calling rmt_receive in ISR callback 2023-11-08 15:03:44 +08:00
ding huan
3c1ec70457 fix(connect): Change second connect time to 730 2023-11-07 19:48:49 +08:00
Armando
f8500f77b1 fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12
By design, it's 12 dB. There're errors among chips, so the actual
attenuation will be 11dB more or less
2023-11-07 14:12:50 +08:00
Jiang Jiang Jian
d5a32fa5e8 Merge branch 'fix/check_integrity_on_used_blocks_v5.0' into 'release/v5.0'
heap: fix integrity check on used blocks by the tlsf component (backport v5.0)

See merge request espressif/esp-idf!26564
2023-11-03 16:40:38 +08:00
Jiang Jiang Jian
403ad764c8 Merge branch 'bugfix/backport_fix_1102' into 'release/v5.0'
fix(wifi): backport some wifi fix v5.0

See merge request espressif/esp-idf!26864
2023-11-03 16:35:27 +08:00
Laukik Hase
b2a4cf197e fix (wifi_prov): Retry provisioning on WIFI_AUTH_EXPIRE event
- Closes https://github.com/espressif/esp-idf/issues/11749
2023-11-03 11:51:02 +05:30
Wang Meng Yang
2d00212e19 Merge branch 'feature/include_hf_and_ag_in_single_build_v5.0' into 'release/v5.0'
Feature/include hf and ag in single build v5.0

See merge request espressif/esp-idf!26842
2023-11-03 14:09:35 +08:00
alanmaxwell
98d617b0dc fix(wifi): optimize wifi bin size and fix some issue
1.Optimize bin size for STA only mode
2.Change fragment threshold to 256
3.Support fragment for LR mode
4.Fix rx fragment fail in Open mode.
5.Fix ampdu duration issue
2023-11-03 11:44:40 +08:00
morris
da2399a2c5 fix(rmt): a disabled channel may pick up a pending transaction
because in the trans_done interrupt, the driver didn't check the channel FSM
2023-11-03 02:40:56 +00:00
Jiang Jiang Jian
af91df9e6f Merge branch 'fix/exception_was_unhandled_for_bt_spp_vfs_acceptor_v5.0' into 'release/v5.0'
fix(bt/bluedroid): fix LoadProhibited error in spp vfs acceptor example (backport v5.0)

See merge request espressif/esp-idf!26862
2023-11-03 01:28:30 +08:00
Michael (XIAO Xufeng)
a0c0857d94 Merge branch 'bugfix/ota_fail_on_octal_flash_v5.0' into 'release/v5.0'
fix(ota): Fixed OTA fail on octal flash with 32MB memory (backport v5.0)

See merge request espressif/esp-idf!26812
2023-11-02 21:12:06 +08:00
Michael (XIAO Xufeng)
1db67a7133 Merge branch 'bugfix/spi_master_fifo_use_dma_v5.0' into 'release/v5.0'
fix(spi): fixed undesired touching to DMA (v5.0)

See merge request espressif/esp-idf!26771
2023-11-02 21:11:10 +08:00
Kapil Gupta
5402e14cfb fix(esp_wifi): Drop fragmented AMPDU(fixCVE-2020-26142) 2023-11-02 19:20:17 +08:00
Kapil Gupta
ea93f7620b fix(esp_wifi): Fix key install issue in PTK renew 2023-11-02 19:20:17 +08:00
Roland Dobai
963284fc4c Merge branch 'coredump-info-offset_v5.0' into 'release/v5.0'
fix(tools/coredump-info): pass non-default partition table offset to esp-coredump (v5.0)

See merge request espressif/esp-idf!26832
2023-11-02 19:20:01 +08:00
Jiang Jiang Jian
dbdd6c7eb8 Merge branch 'bugfix/fix_espcoredump_compilation_warning_v5.0' into 'release/v5.0'
fix(espcoredump): fixed compilation warning (v5.0)

See merge request espressif/esp-idf!26592
2023-11-02 16:17:24 +08:00
Guillaume Souchere
d8a8149abd fix(heap): Patch tlsf_check_pool in ROM heap
The integrity_walker now calls the integrity check hook to control
free AND used blocks of memory in the TLSF pool. This integrity walker
function is called from tlsf_check_pool.

This commit creates a patch of integrity_walker function to update the
outdated implementation in the ROM.
2023-11-02 09:04:24 +01:00
Guillaume Souchere
825f99f16e fix(heap): Fixed integrity check on used blocks by the tlsf component
This commit updates the tlsf submodule to include the modification made in the component
aiming to perform integrity check on all blocks (not only the free ones).
Added test to test the fix in test_apps/heap_tests.

Fixes https://github.com/espressif/esp-idf/issues/12231
2023-11-02 08:21:06 +01:00
Jiang Jiang Jian
3f207efa4b Merge branch 'bugfix/supplicant_tls_fix_v5.0' into 'release/v5.0'
fix(wpa_supplicant): Correct iv lenght passed in mbedtls_cipher_set_iv() (v5.0)

See merge request espressif/esp-idf!26847
2023-11-02 15:13:20 +08:00
Jiang Jiang Jian
ae755628d0 Merge branch 'fix/xtensa-register-corrupted-after-context-switch_v5.0' into 'release/v5.0'
fix(xtensa): fix registers curruption on context switch (v5.0)

See merge request espressif/esp-idf!26211
2023-11-02 15:12:56 +08:00
Jiang Jiang Jian
03732b50fd Merge branch 'feature/pbkdf2_fast_implementation_v5.0' into 'release/v5.0'
change(esp_wifi): Copy fastpbkdf2 implementation

See merge request espressif/esp-idf!26852
2023-11-02 15:12:20 +08:00
Jiang Jiang Jian
ea59318583 Merge branch 'bugfix/fix_phy_calibration_error_for_c2_v5.0' into 'release/v5.0'
fix(phy): fix phy calibration error in none mode for 26MHz XTAL ESP32C2 (backport v5.0)

See merge request espressif/esp-idf!26556
2023-11-02 15:12:06 +08:00
Island
02089b1825 Merge branch 'bugfix/ble_update_lib_1027_5.0' into 'release/v5.0'
ble: update c2 lib to 1d31e175

See merge request espressif/esp-idf!26713
2023-11-02 14:11:34 +08:00
Xiao Xufeng
93e973fa21 fix(spi): fixed undesired touching to DMA
Closes https://github.com/espressif/esp-idf/issues/12241
2023-11-02 12:32:40 +08:00
Jiang Jiang Jian
2aa66f5188 Merge branch 'bugfix/fix_ble_bond_error_after_reboot_v5.0' into 'release/v5.0'
fix(ble/bluedroid): fixed BLE bond error after reboot (backport v5.0)

See merge request espressif/esp-idf!26721
2023-11-02 12:10:57 +08:00
gongyantao
c4affdb943 fix(bt/bluedroid): fix loadprohibited error in spp vfs acceptor example 2023-11-02 11:47:38 +08:00
Rahul Tank
1f34bece78 Merge branch 'bugfix/remove_iram_attr_from_ceva_files_v5.0' into 'release/v5.0'
fix(nimble): remove IRAM_ATTR from npl_os_freertos.c file (v5.0)

See merge request espressif/esp-idf!26840
2023-11-02 11:17:58 +08:00
Michal Jenikovsky
b1e5ef2c47 fatfs: raw diskio: Fixed handling read-only filesystem
ff_ routines incorrectly reported disk state and caused whole fatfs
to lock-up when trying to write to read-only device.

Signed-off-by: Michal Jenikovsky <jendo@jmsystems.sk>
2023-11-02 02:19:09 +00:00
Michal Jenikovsky
5dafc957ef idf.py: gdb action incorrectly generated EOL gdbinit scripts
GDB on Windows incorrectly reads EOL in the script files causing 'gdb'
action to fail.

(gdb) source .../build/gdbinit/py_extensions
(gdb) source .../build\gdbinit\symbols
add symbol table from file "...\build\bootloader\bootloader.elf"
.../build\gdbinit\symbols:6: Error in sourced command file:
Undefined command: "".  Try "help".

Forcing line separator to '\n' resolved the issue

Signed-off-by: Michal Jenikovsky <jendo@jmsystems.sk>
2023-11-02 02:19:09 +00:00
Alexey Lapshin
06ac8505b9 fix(xtensa): fix registers curruption on context switch
a6, a7 registers may be corrupted on multicore ESP chips while FreeRTOS
Kernel SMP context switch
2023-11-02 02:18:11 +00:00
Kapil Gupta
46f81cebe4 fix(wpa_supplicant): implement sha1_finish for fastpbkdf2 2023-11-01 21:58:00 +05:30
Kapil Gupta
cc12adf71b ci(esp_wifi): unit test for fast PBKDF2 validation 2023-11-01 21:57:23 +05:30
Kapil Gupta
973aca32be change(esp_wifi): Port fast_pbkdf2 implementation for mbedlts
Add changes to use fast_pbkdf2 as default for PMK calculations.
fast_pbkdf2 is significantly faster than current implementations
for esp chips.

Also removes unnecessary code for pbkdf-sha256 and pbkdf-sha512.
2023-11-01 21:56:56 +05:30
Kapil Gupta
5d26770886 change(esp_wifi): Copy fastpbkdf2 implementation
Copy pbkdf2 implementation from https://github.com/ctz/fastpbkdf2(3c56895)
2023-11-01 21:56:48 +05:30
Jiang Jiang Jian
e9ee047908 Merge branch 'feat/support_esp32c3_eco7_wifi_v5.0' into 'release/v5.0'
Backport/support esp32c3 v1.1 WiFi/BT/BLE(v5.0)

See merge request espressif/esp-idf!26756
2023-11-01 20:35:05 +08:00
Kapil Gupta
4ae0dc38cc fix(wpa_supplicant): Correct iv lenght passed in mbedtls_cipher_set_iv() 2023-11-01 18:02:42 +05:30
Rahul Tank
2b5f344a21 fix(nimble): remove IRAM_ATTR from npl_os_freertos.c file 2023-11-01 17:40:22 +05:30
Jin Cheng
7135c2d1fa feat(bt/bluedroid): Support to build HID Host and HID Device in single binary 2023-11-01 19:34:15 +08:00
Wang Mengyang
37d94af1f7 feat(bt/bluedroid): Support to build HFP Audio Gateway and Hands Free Unit in single binary 2023-11-01 19:34:09 +08:00
zhangyanjiao
49f02b3b43 fix(phy): Update phy lib to master 2023-11-01 17:56:48 +08:00
Peter Dragun
b784bbb27b fix(tools/coredump-info): pass non-default partition table offset to esp-coredump 2023-11-01 10:27:36 +01:00
zhanghaipeng
a84c563c1e fix(bt/bluedroid): Fix BLE remove bond list status 2023-11-01 17:14:32 +08:00
zhiweijian
52112a9b91 fix(ble/bluedroid): fixed BLE bond error after reboot 2023-11-01 17:13:50 +08:00
Jiang Jiang Jian
52ff4707d8 Merge branch 'backport/fix_ble_bugs_v5.0' into 'release/v5.0'
Backport/fix ble bugs v5.0(backport v5.0)

See merge request espressif/esp-idf!26763
2023-11-01 16:05:29 +08:00
Jiang Jiang Jian
912c1666ff Merge branch 'bugfix/fix_compilation_issue_v5.0' into 'release/v5.0'
fix(wpa_supplicant): Fix compilation issue in EAP disabled (v5.0)

See merge request espressif/esp-idf!26728
2023-11-01 13:19:57 +08:00
Cao Sen Miao
f5e80b68c7 fix(ota): Fixed OTA fail on octal flash with 32MB memory,
Closes https://github.com/espressif/esp-idf/issues/11903
2023-11-01 12:27:16 +08:00
zhiweijian
2a3d18c0cc feat: support ble esp32c3 eco7 2023-10-31 20:38:17 +08:00
Sarvesh Bodakhe
c90353291c fix(esp_wifi): Fix issue of station disconnecting immediately when AP RSSI is zero 2023-10-31 20:38:17 +08:00
liuning
20a34298cf fix(rom): fix rom ld for v5.0 2023-10-31 20:38:17 +08:00
liuning
728cd2489a feat(esp_wifi): support ps-none mode at coexist 2023-10-31 20:38:17 +08:00
liuning
345accbe13 fix(rom): remove related rom funcs in c3 rom eco7 MR 2023-10-31 20:38:17 +08:00
alanmaxwell
3d8915f2b3 feat(wifi): support esp32c3 v1.1 WiFi
1.bringup c3 v1.1 and sync func to c3 eco7 rom
2.support to set null&probe lifetime
3.support to adjust listen interval to dtim period
4.support tx pkt w/o wake null
5.allow to tx null0 if requtest to rx data
2023-10-31 20:38:05 +08:00
luomanruo
21885a0cf9 ble: update c2 lib to 6ed444f2 2023-10-31 16:28:50 +08:00
luomanruo
27f1557d70 ble: update c2 rom.ld 2023-10-31 16:28:50 +08:00
luomanruo
30f1c507d4 ble: update c2 lib to 1d31e175 2023-10-31 16:28:49 +08:00
zhanghaipeng
d6165c0859 feat(bt/bluedroid): Display BLE permission check handle in error trace 2023-10-31 14:37:39 +08:00
zhanghaipeng
336244a060 fix(bt/bluedroid): Fix max BLE gattc notify number to improve compatibility 2023-10-31 14:37:39 +08:00
zhanghaipeng
ea64b7cb1b feat(bt/bluedroid): Support BLE gattc notify registration number 2023-10-31 14:37:39 +08:00
zhanghaipeng
5758407281 fix(bt/bluedroid): Fix key size check in BLE smp 2023-10-31 14:37:39 +08:00
zhanghaipeng
018e84599a fix(bt/bluedroid): Optimize compatibility with Android 10 and later devices 2023-10-31 14:37:39 +08:00
zhanghaipeng
b19e24ef01 feat(bt/bluedroid): Support hid device control point 2023-10-31 14:37:39 +08:00
zhanghaipeng
fc96662044 fix(bt/bluedroid): Optimize compatibility with IOS and MACOS devices 2023-10-31 14:37:39 +08:00
Jiang Guang Ming
0e99be11f0 fix(esp32c3): Update esp32c3 chip revision 2023-10-30 20:56:57 +08:00
Jiang Guang Ming
89bf50f05a feat(esp32c3): Add rom ld with ROM tag esp32c3-eco7-20230720 2023-10-30 20:55:31 +08:00
Jiang Jiang Jian
a6afbb38a4 Merge branch 'bugfix/backport_wifi_fix_1026_v5.0' into 'release/v5.0'
fix(wifi): fix some wifi issues(v5.0)

See merge request espressif/esp-idf!26691
2023-10-30 17:57:53 +08:00
Kapil Gupta
f2da30262a fix(wpa_supplicant): Fix compilation issue in EAP disabled 2023-10-27 18:09:37 +05:30
Jiang Jiang Jian
4bd203b6da Merge branch 'bugfix/wps_condition_chain_v5.0' into 'release/v5.0'
fix(wifi): Fix static analyzer warning for WPS code (v5.0)

See merge request espressif/esp-idf!26495
2023-10-27 19:46:03 +08:00
Jiang Jiang Jian
eb432da2db Merge branch 'feature/support_esp32c2_rom_mbedtls_v5.0' into 'release/v5.0'
feat(mbedtls): support c2 mbedtls can use crypto algorithm in ROM (backport v5.0)

See merge request espressif/esp-idf!26700
2023-10-27 19:45:26 +08:00
Jiang Jiang Jian
9d8b38bafd Merge branch 'bugfix/dpp_bugs_v5.0' into 'release/v5.0'
fix(wpa_supplicant): Fix few dpp bugs(v5.0)

See merge request espressif/esp-idf!26686
2023-10-27 19:43:53 +08:00
Jiang Jiang Jian
4f97598f7d Merge branch 'bugfix/iperf_improvements_v5.0' into 'release/v5.0'
fix(examples/iperf): Update and rename default TCP/UDP buffer sizes (Backport v5.0)

See merge request espressif/esp-idf!26679
2023-10-27 11:30:19 +08:00
Wang Meng Yang
8e5bd616be Merge branch 'bugfix/unable_to_load_bonded_ble_devices_from_nvs_v5.0' into 'release/v5.0'
fix(bt&ble): fix BLE unable to load bonded device info after reboot. (backport v5.0)

See merge request espressif/esp-idf!26466
2023-10-27 10:27:21 +08:00
Jiang Guang Ming
c2f6a5c180 docs: Update COPYRIGHT.rst since mbedtls supported in C2 ROM 2023-10-26 21:00:39 +08:00
Jiang Guang Ming
d5fda4a286 docs: add the description of CONFIG_MBEDTLS_USE_CRYPTO_ROM_IMPL 2023-10-26 21:00:39 +08:00
Jiang Guang Ming
7789d30686 feat(mbedtls): add new config CONFIG_MBEDTLS_USE_CRYPTO_ROM_IMPL for mbedtls unit-test 2023-10-26 21:00:27 +08:00
Jiang Guang Ming
883d7e793f feat(mbedtls): support C2 mbedtls can use crypto algorithm in ROM 2023-10-26 20:56:29 +08:00
Jiang Jiang Jian
ecdbdc789c Merge branch 'doc/update_espnow_example_v5.0' into 'release/v5.0'
doc(WiFi/Vendor): Update the ESPNOW example for the recv callback function  (backport v5.0)

See merge request espressif/esp-idf!26677
2023-10-26 20:48:56 +08:00
gongyantao
dc85f670aa fix(bt/bluedroid): update the newest active device in bluetooth
1: update the newest active device when an ACL link is established and
   the remote device info is not in bond list. This updates will not stored
   into NVRAM until a new device is paired.
2023-10-26 19:33:06 +08:00
jgujarathi
bde852d403 fix(wifi): backport some wifi fix
1.Fix issue with frequent disconections when scanning for only a single
 channel.
2.Prints error message and returns ESP_ERR_NOT_SUPPORTED in case
 esp32c2 tries to set bandwidth to HT40.
3.Ensure that beacon timeout get trigged once.
2023-10-26 17:59:46 +08:00
Jiang Jiang Jian
5293a3e403 Merge branch 'feature/mbedtls_3_5_0_update_v5.0' into 'release/v5.0'
feat(mbedtls): update to 3.5.0 release (v5.0)

See merge request espressif/esp-idf!26477
2023-10-26 17:58:51 +08:00
muhaidong
6bfac2a6e4 fix(wifi): fix some wifi issues
1. fix enable psram wapi dhcp fail issue
2. fix tx power issue
2023-10-26 17:55:37 +08:00
muhaidong
bcb6a2f386 fix(wifi): fix ccmp and gcmp PN became large issue 2023-10-26 17:55:37 +08:00
xueyunfei
1f5e7e33df feat(esp_wifi):static buf for management,control,qos null,null data rx packet 2023-10-26 17:55:37 +08:00
Jiang Jiang Jian
349bc1795c Merge branch 'feature/free_bt_memory_5.0' into 'release/v5.0'
feat(bt): Frees BLE memory when no longer in use

See merge request espressif/esp-idf!26574
2023-10-26 17:55:32 +08:00
alanmaxwell
555891bb54 fix(wifi): fix multi antenna issue 2023-10-26 17:54:35 +08:00
Jiang Jiang Jian
279e00927b Merge branch 'bufix/Backport_some_lwip_bugs_for_5.0_1026' into 'release/v5.0'
Bufix/backport some lwip bugs for 5.0 1026

See merge request espressif/esp-idf!26678
2023-10-26 17:49:42 +08:00
Jiang Jiang Jian
e89e490565 Merge branch 'bugfix/update_scan_example_for_scan_get_ap_records_v5.0' into 'release/v5.0'
fix(wifi): update scan example for scan get ap records(Backport v5.0)

See merge request espressif/esp-idf!26681
2023-10-26 16:56:52 +08:00
Jiang Jiang Jian
2100dddaf1 Merge branch 'bugfix/spurious_beacon_timeout_v5.0' into 'release/v5.0'
Fixed some WiFi Issues (Backport v5.0)

See merge request espressif/esp-idf!26600
2023-10-26 14:48:44 +08:00
aditi_lonkar
8edd26b4f3 fix(wpa_supplicant): Fix few dpp bugs
1) Fix crash in dpp Listen without bootstrap
  2) Fix crash on receiving dpp auth_req from hostapd with dpp akm
  3) Ensures that the mode is set to station before dpp init
  4) Ensures that dpp follows the path of init->bootstrap->listen
2023-10-26 12:09:44 +05:30
muhaidong
b57ff5dce6 fix(wifi): update scan example for scan get ap records 2023-10-26 13:19:07 +08:00
Nachiket Kukade
d5bf0121ab fix(examples/iperf): Update and rename default TCP/UDP buffer sizes 2023-10-26 10:31:22 +05:30
xueyunfei
4bd2b33d9b Fix(tcp):optimize tcp connection 2023-10-26 13:00:44 +08:00
xueyunfei
1e3bb1469a fix(dhcp server):fix set dhcp server poll fail issue 2023-10-26 12:59:57 +08:00
zhangyanjiao
c06e48c02e doc(WiFi/Vendor): Update the ESPNOW example for the recv callback function 2023-10-26 12:02:37 +08:00
Jiang Jiang Jian
231e822d03 Merge branch 'bugfix/backport_some_ble_bugs_20231020_v5.0' into 'release/v5.0'
Fixed some BLE bugs 20231020 (backport v5.0)

See merge request espressif/esp-idf!26606
2023-10-26 11:51:48 +08:00
gaoxu
60d9fd9e3a fix(adc): fix adc oneshot mod do not split clk 2023-10-26 11:43:41 +08:00
Jiang Jiang Jian
4ba42edafc Merge branch 'bugfix/fix_cpu_switches_freq_bug_s2s3_to_v5.0' into 'release/v5.0'
EspS2/S3: fixed the bug of insufficient voltage when the CPU switches frequency(V5.0)

See merge request espressif/esp-idf!26281
2023-10-25 10:25:14 +08:00
morris
674b533eed Merge branch 'feature/mcpwm_timer_change_freq_v5.0' into 'release/v5.0'
feat(mcpwm): support update timer period dynamically (v5.0)

See merge request espressif/esp-idf!26625
2023-10-25 09:49:03 +08:00
Shen Weilong
6875e2b7d0 feat(bt): Frees BLE memory when no longer in use
It will free libble.a & libbt all txt, data and bss segment memory.
          This memory is combined into one large memory and put into the heap
          pool.
2023-10-24 06:04:39 +00:00
morris
0187f3b4e3 feat(mcpwm): support update timer period dynamically
Implement the requirement asked in
https://www.esp32.com/viewtopic.php?f=13&t=35919
2023-10-24 10:08:29 +08:00
Alexey Gerenkov
d2b9326df1 Merge branch 'bugfix/docs_hw_breakpoints_num_v5.0' into 'release/v5.0'
fix(docs/jtag): Fix hard-coded HW breakpoints/watchpoints number (v5.0)

See merge request espressif/esp-idf!26501
2023-10-23 20:16:27 +08:00
Wang Meng Yang
478ac965aa Merge branch 'fix/remove_esp_hf_ag_devices_status_indchage_in_example_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Send device status of AG to HF with a different api (backport v5.0)

See merge request espressif/esp-idf!26588
2023-10-23 16:35:38 +08:00
Wang Meng Yang
46c75fc31c Merge branch 'bugfix/coex_cfg_option_invisible_v5.0' into 'release/v5.0'
fix(esp_coex): Fix dependency errors in coexist configuration (Backport v5.0)

See merge request espressif/esp-idf!26581
2023-10-23 16:21:00 +08:00
zhiweijian
c6588baf8f Update BLE lib on ESP32-C3 and ESP32-S3
- modify mesh proxy solic uuid to 0x18590303
- Fixed DTM payload length cannot be 0
- Added config to enable Hw recorrect eco
- report the number of packets sent on the TX end
2023-10-20 17:16:53 +08:00
zhiweijian
f3729b1610 feat: add config to disable ble hci uart flow control 2023-10-20 17:16:45 +08:00
zhiweijian
b13e24f26c change: enable pll track by default on ESP32 2023-10-20 17:16:37 +08:00
zhiweijian
39674d11e0 Add mesh adv type for exception list 2023-10-20 17:16:27 +08:00
chenjianhua
3502d25a2e Update bt lib for ESP32-C3 and ESP32-S3(c8aa206)
- Fixed extended adv address setting after adv restart
- Fixed scan channel index setting for extended scan
- Add API to set aux channel index for extended adv
2023-10-20 17:16:17 +08:00
chenjianhua
ab427cc1c0 Update bt lib for ESP32-C3 and ESP32-S3(29996e0)
- Fixed address resolution for directed adv with RPA when scanning
- Fixed resolvable private address renew after timeout
2023-10-20 17:16:06 +08:00
zhiweijian
a16c26c4ca Add new mesh types for exception list on ESP32-C3 and ESP32-S3 2023-10-20 17:15:55 +08:00
zhiweijian
cc746091a9 Fixed bluedroid host build warning when log is disabled 2023-10-20 17:15:45 +08:00
Mahavir Jain
f333925342 Merge branch 'feature/locking_layer_for_ecdsa_v5.0' into 'release/v5.0'
feat(esp_hw_support): Added locking mechanism for the ECC peripheral (v5.0)

See merge request espressif/esp-idf!26287
2023-10-20 15:57:16 +08:00
jgujarathi
6881b3fa33 fix(esp_wifi): Fixes issues in PMKSA and AID assignment
- Fix missing PMKSA flush scenarios.

- Fix wrong AID assigned to station when multiple stations try to connect
  simultaneously with mixed order of auth-request and assoc-request frames.
2023-10-20 13:12:12 +05:30
Rahul Tank
22f31de902 fix(espcoredump): fixed compilation warning
Added conditional compilation for logging stack usage only when CONFIG_ESP_COREDUMP_LOGS is
enabled.

Closes: https://github.com/espressif/esp-idf/issues/12318
2023-10-20 11:23:44 +05:30
Island
ded1414d7b Merge branch 'bugfix/update_ble_lib_1018_5_0' into 'release/v5.0'
change(ble): update ble lib on c6 h2 and c2 chip

See merge request espressif/esp-idf!26545
2023-10-20 10:25:25 +08:00
gongyantao
65e0356c3d fix(bt/bluedroid): Send device status of AG to HF with a different api
1: replace api esp_hf_ag_devices_status_indchange with esp_hf_ag_ciev_report in bluetooth
   hfp_ag example to send device status of AG to HF unit.
2: remove the unused codes
2023-10-20 10:03:34 +08:00
linruihao
dd16903b51 fix(esp_coex): Fix dependency errors in coexist configuration 2023-10-19 19:04:32 +08:00
Roland Dobai
443f2b8ebe Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20230921_v5.0' into 'release/v5.0'
feat(tools): Update OpenOCD version to v0.12.0-esp32-20230921 (v5.0)

See merge request espressif/esp-idf!26550
2023-10-19 17:44:10 +08:00
Jiang Jiang Jian
861410f4eb Merge branch 'docs/update_wifi_and_wpa_supplicant_documentation_v5.0' into 'release/v5.0'
docs(wifi): Update wifi and wifi security documentation_v5.0

See merge request espressif/esp-idf!25752
2023-10-19 10:38:30 +08:00
Jiang Jiang Jian
64ceda77f4 Merge branch 'feat/imporve_iperf_performance_v5.0' into 'release/v5.0'
feat(wifi): optimize iperf performance (Backport V5.0)

See merge request espressif/esp-idf!26406
2023-10-19 10:33:28 +08:00
Kapil Gupta
28ba29a95d fix(wifi): Fix static analyzer warning for WPS code 2023-10-18 17:55:38 +05:30
luomanruo
8b7c87028b ble: update controller log module for ESP32-C2 2023-10-18 18:03:45 +08:00
luomanruo
3d381ba560 ble: update controller log module for ESP32-C2 2023-10-18 16:59:11 +08:00
Alexey Gerenkov
e943bbda36 feat(tools): Update OpenOCD version to v0.12.0-esp32-20230921 2023-10-18 10:51:45 +02:00
cjin
82563128c8 change(ble): update ble lib on c6 h2 and c2 chip 2023-10-18 16:28:22 +08:00
Marius Vikhammer
9ca65d9720 Merge branch 'bugfix/fix_freertos_system_task_names_v5.0' into 'release/v5.0'
fix(freertos): Updated IDLE task names for each core to have the coreID as a suffix (v5.0)

See merge request espressif/esp-idf!26119
2023-10-18 16:09:48 +08:00
Marius Vikhammer
d5255c9ba8 Merge branch 'contrib/github_pr_12258_v5.0' into 'release/v5.0'
fix(vfs): Fix event_write may not exit critical section (GitHub PR) (v5.0)

See merge request espressif/esp-idf!26048
2023-10-18 15:52:04 +08:00
Mahavir Jain
39ea20354d Merge branch 'fix_esp32s3_irq_names_v5.0' into 'release/v5.0'
fix(interrupts): reorder esp32s3 irq names to align with the respective irq numbers (v5.0)

See merge request espressif/esp-idf!26504
2023-10-18 13:48:55 +08:00
Shreyas Sheth
5004647fb1 fix(wifi): Fix crash occuring when station SAE group is not set to SECP256R1 2023-10-17 14:11:19 +05:30
Shreyas Sheth
79e55b6e92 docs(wifi): Update wifi and wifi security documentation and bugfixes
1. Update documentation for WPA3 Enterprise and WPA3 Enterprise 192-bit
mode
2. Update documentation for WPA3 OWE and OWE transition mode
3. Update documentation related to SAE PK, SAE PWE and Transition Disable
4. Update documnetation for wifi connect API
5. Fix config paramter information for wifi scan start
6. Fix documentation related to scan threshold config setting
7. Replace ESP_ERR_WIFI_ARG error code as ESP_ERR_INVALID_ARG
8. Update documentation for 802.11R Fast transition
9. Fix sta connecting with wpa security in enterprise mode
2023-10-17 14:01:18 +05:30
Island
00d58a92dc Merge branch 'ble_dev/added_modem_reset_on_ble_v5_0' into 'release/v5.0'
feat(ble): added modem reset on c2

See merge request espressif/esp-idf!26450
2023-10-17 15:42:12 +08:00
Erhan Kurubas
9fc58a706d fix(interrupts): reorder esp32s3 irq names to align with the respective irq numbers 2023-10-17 09:02:31 +02:00
Island
467cae8a41 Merge branch 'backport_v5.0' into 'release/v5.0'
Fix some BLE bugs in bluedroid host(backport 5.0)

See merge request espressif/esp-idf!26168
2023-10-17 11:00:39 +08:00
Nic Ballinger
3229216527 fix(docs/jtag): Fix hard-coded HW breakpoints/watchpoints number
Closes https://github.com/espressif/esp-idf/pull/11986
2023-10-16 17:33:48 +03:00
zhanghaipeng
baf04c4334 fix(bt/bluedroid): Fix hid example stack overflow bugs when using esp32s3 2023-10-16 19:30:29 +08:00
zhanghaipeng
98d88f86a7 fix(bt/bluedroid): Fix remove resolving list error for esp32 2023-10-16 19:30:18 +08:00
zhanghaipeng
5c6533d574 fix(bt/bluedroid): Fix bugs in ble service change characteristic 2023-10-16 19:30:08 +08:00
zhanghaipeng
c1b8734fb9 feat(bt/bluedroid): Support scan response data length zero in BLE 2023-10-16 19:29:56 +08:00
zhanghaipeng
18c8d0e04c fix(bt/bluedroid): Optimize the description of Scan Duplicate in BLE 2023-10-16 19:29:45 +08:00
morris
447e9701ef Merge branch 'bugfix/usb_serial_jtag_write_return_val_v5.0' into 'release/v5.0'
bugfix(usb_serial_jtag): Fix usb_serial_jtag wrong return value, vfs lose data randomly (backport v5.0)

See merge request espressif/esp-idf!26439
2023-10-16 14:26:11 +08:00
morris
c33962259c Merge branch 'bugfix/temp_clk_gate_v5.01' into 'release/v5.0'
fix(temperature_snesor): Put clock gate enable/disable in to sar_periph_ctrl together (backport v5.0)

See merge request espressif/esp-idf!26437
2023-10-16 14:22:13 +08:00
Mahavir Jain
3e90ed6428 fix(mbedtls): remove deprecated MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
This config has been removed in the upstream mbedTLS starting 3.0
release. Please see mbedTLS changelog for more details.
2023-10-16 03:54:57 +00:00
Mahavir Jain
088c546964 fix(mbedtls): dynamic buffer feature issue with mbedtls 3.5.0
Set max TLS version in the SSL context during setup phase. Dynamic
buffer feature overrides the `mbedtls_ssl_setup` API and hence
this change is required per upstream 3.5.0 codebase change.
2023-10-16 03:54:57 +00:00
Mahavir Jain
97fe016e4e feat(mbedtls): update to 3.5.0 release
Changelog:
https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.5.0
2023-10-16 03:54:57 +00:00
Mahavir Jain
10ef082950 Merge branch 'feature/update_openthread_upstream_manually' into 'release/v5.0'
feat(openthread): update upstream manually.

See merge request espressif/esp-idf!26388
2023-10-16 11:53:39 +08:00
Jiang Jiang Jian
65321ea317 Merge branch 'bugfix/use_bt_sdp_bqb_include_macro_for_ertm_mode_flag_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Add correct macro for ertm mode included flag (v5.0)

See merge request espressif/esp-idf!26456
2023-10-16 11:51:56 +08:00
Wang Meng Yang
209608623c Merge branch 'bugfix/config_tpoll_fail_v5.0' into 'release/v5.0'
Bugfix/config tpoll fail v5.0

See merge request espressif/esp-idf!26452
2023-10-16 10:59:05 +08:00
Island
f8f999870f Merge branch 'bugfix/0925_update_libble_c2_v5.0' into 'release/v5.0'
ble: update c2 libble to 7ec5b5c1

See merge request espressif/esp-idf!26192
2023-10-16 10:47:32 +08:00
gongyantao
c80e82fa07 fix(bt/bluedroid): Add correct macro for ertm mode included flag 2023-10-13 14:44:35 +08:00
baohongde
64e1f2fe5e feat(bt/hci): Added Vendor-Specific HCI command to disable DM1 for ACL-U 2023-10-13 14:22:39 +08:00
baohongde
299fa49d75 fix(bt/bluedroid): Triggering disconnect event of GAP correctly 2023-10-13 14:22:39 +08:00
baohongde
363f37cc67 fix(bt/bluedroid): Fix issue of QoS configuration failure when t_poll is greater than 40 2023-10-13 14:22:39 +08:00
cjin
dc8e00e22f feat(ble): added modem reset on c2 2023-10-13 11:44:18 +08:00
Cao Sen Miao
dc6fd94048 fix(usb_serial_jtag): Clean-up usb_serial_jtag lose byte fix, Closes https://github.com/espressif/esp-idf/pull/11344 2023-10-12 15:13:41 +08:00
Chip Weinberger
8037563c53 [Usb Serial JTAG] printing to console could sometimes skip bytes 2023-10-12 15:13:30 +08:00
Cao Sen Miao
3a04291f8e fix(usb_serial_jtag): Fix usb_serial_jtag wrong return value, vfs lose data randomly,
Closes https://github.com/espressif/esp-idf/issues/12119,
Closes https://github.com/espressif/esp-idf/pull/11344,
Closes https://github.com/espressif/esp-idf/issues/9318
Closes https://github.com/espressif/esp-idf/issues/11192
2023-10-12 15:13:21 +08:00
Cao Sen Miao
5c692796e8 fix(temperature_snesor): Put clock gate enable/disable in to sar_periph_ctrl together 2023-10-12 14:21:24 +08:00
Jiang Jiang Jian
f1efc6223e Merge branch 'bugfix/authmode_log_192_bit_v5.0' into 'release/v5.0'
WPA3 enterprise 192 bit fix and config modification (Backport v5.0)

See merge request espressif/esp-idf!26163
2023-10-12 10:36:10 +08:00
luomanruo
26fbfe7d94 ble: update tx power level index of ESP32-C2 2023-10-11 21:05:21 +08:00
luomanruo
b7f17f7531 ble:update c2 libble to 6a8d1f3d 2023-10-11 20:55:26 +08:00
Island
6a33321693 Merge branch 'bugfix/deepfree_v50' into 'release/v5.0'
fix(ble_mesh): fix compilation failure on using scene model. (v5.0)

See merge request espressif/esp-idf!26358
2023-10-11 19:28:53 +08:00
Wu Meng Shi
d9af38524b fix(ble_mesh): fix compilation failure on using scene model. (v5.0) 2023-10-11 19:28:53 +08:00
xuxiao
d2b82b47c7 feat(wifi): optimize iperf performance (Backport V5.0) 2023-10-11 17:14:52 +08:00
David Čermák
82ccd61c06 Merge branch 'bugfix/napt_updatesV5.0' into 'release/v5.0'
feat(lwip): Fixes and Improvements for NAPT and SBOM Support (v5.0)

See merge request espressif/esp-idf!26336
2023-10-11 15:28:16 +08:00
David Čermák
fd10813b41 Merge branch 'bugfix/ksz8041_model_number_0x13_v5.0' into 'release/v5.0'
fix(esp_eth): Add model number 0x13 to list of suported models (v5.0)

See merge request espressif/esp-idf!26381
2023-10-11 15:22:06 +08:00
Roland Dobai
b9a15e601b Merge branch 'feat/monitor_port_detection' into 'release/v5.0'
feat(tools/monitor): add simple port detection [backport v5.0]

See merge request espressif/esp-idf!26329
2023-10-10 20:31:19 +08:00
Roland Dobai
c08f099361 Merge branch 'fix/bp_wp_in_panic_v5.0' into 'release/v5.0'
fix(breakpoint): fix bp/wp logic when debugger is connected (v5.0)

See merge request espressif/esp-idf!25634
2023-10-10 17:57:51 +08:00
Aditya Patwardhan
bcd5292435 Merge branch 'bugfix/security_check_order_in_startup_v5.0' into 'release/v5.0'
fix(startup): flip the security configuration check order (v5.0)

See merge request espressif/esp-idf!26362
2023-10-10 17:10:28 +08:00
Island
3df12b0c7d Merge branch 'bugfix/BLEQABR23-414_v50' into 'release/v5.0'
bugfix(mesh): Fix PB-GATT adv is reported to the app layer too frequently(v5.0)

See merge request espressif/esp-idf!25896
2023-10-10 12:01:42 +08:00
Wu Meng Shi
f3f0917166 bugfix(mesh): Fix PB-GATT adv is reported to the app layer too frequently(v5.0) 2023-10-10 12:01:41 +08:00
zwx
7d6b70c48e feat(openthread): update upstream manually. 2023-10-10 11:37:53 +08:00
Shyamal Khachane
437fbbc518 fix(esp_wifi): WPA3 enterprise 192 bit fix and config modification
1. Added SOC caps dependency for enabling 192 bit security in wifi enterprise example
2. Fixed authmode in log and connected event for WPA3 enterprise 192 bit security
2023-10-09 16:34:14 +05:30
Bogdan Kolendovskyy
2cb11f7698 fix(esp_eth): Add model number 0x13 to list of suported models
Add model number 0x13 to KSZ80xx driver's list of supported models
corresonding to KSZ8041RLNI.
2023-10-09 12:47:38 +02:00
Mahavir Jain
ae5cbbf656 Merge branch 'feat/add_support_to_add_auth_data_v5.0' into 'release/v5.0'
fix(esp_http_client): Call event_handler after header value is received (v5.0)

See merge request espressif/esp-idf!26322
2023-10-09 16:24:26 +08:00
Mahavir Jain
67a1fe6373 fix(startup): flip the security configuration check order
For cases where the bootloader is not enabled with the security features
ends up receiving an incorrect application with flash encryption enabled
should not really program any security efuses.

In the startup sequence, we first used to program the ROM DL mode
configuration but now we check for the flash encryption related checks
first. If the flash encryption related checks finds that flash
encryption is not enabled on the device then it aborts the boot process.
This is the case with `CONFIG_SECURE_FLASH_CHECK_ENC_EN_IN_APP` enabled.

This would at-least ensure that accidental program of security enabled
application does not really program any ROM DL mode efuses and there is
chance to recover the device.
2023-10-09 03:30:11 +00:00
Jiang Jiang Jian
0f3eb4f5a6 Merge branch 'bugfix/pbc_overlap_in_wps_pin_method_v5.0' into 'release/v5.0'
wpa_supplicant: Fix for issue of wps-pbc overlap in wps-pin method(v5.0)

See merge request espressif/esp-idf!25738
2023-10-08 14:09:22 +08:00
morris
8093ef885e Merge branch 'fix/spi_polling_api_buslock_logic_v5.0' into 'release/v5.0'
fix(spi_master): polling_transmit forgot release bus lock when alloc DMA buffer failed (v5.0)

See merge request espressif/esp-idf!25577
2023-10-08 11:41:50 +08:00
morris
52342cda83 Merge branch 'change/remove_s3_120_sdr_warning_v5.0' into 'release/v5.0'
mspi: remove s3 120mhz sdr warning (v5.0)

See merge request espressif/esp-idf!26255
2023-10-08 10:52:41 +08:00
Jiang Jiang Jian
1b5a9a9420 Merge branch 'bugfix/check_mapping_target_conflict_v5.0' into 'release/v5.0'
fix(ldgen): check target conflict for entries with section aliases (v5.0)

See merge request espressif/esp-idf!26124
2023-10-07 14:38:01 +08:00
Jiang Jiang Jian
1f870c8102 Merge branch 'feature/rename_wpa2_ent_to_eap_client_v5.0' into 'release/v5.0'
WiFi: Rename WPA2 enterprise APIs to EAP Client. (v5.0)

See merge request espressif/esp-idf!26098
2023-10-07 14:33:17 +08:00
Jiang Jiang Jian
f2dbd880ee Merge branch 'bugfix/set_eir_when_no_eir_data_v5.0' into 'release/v5.0'
change(bt/bluedroid): Send a name tag with zero length when there is no EIR data

See merge request espressif/esp-idf!25950
2023-10-07 14:31:11 +08:00
Jiang Jiang Jian
32dcb1abd9 Merge branch 'bugfix/BLEQABR23-632v50' into 'release/v5.0'
fix(ble_mesh): avoid executing bt_mesh_host_init() more than once when using nimble (v5.0)

See merge request espressif/esp-idf!26242
2023-10-07 14:29:17 +08:00
Wu Meng Shi
9dc12cb8c2 fix(ble_mesh): avoid executing bt_mesh_host_init() more than once when using nimble (v5.0) 2023-10-07 14:29:16 +08:00
Jiang Jiang Jian
ffae14ac1d Merge branch 'bugfix/suppress_compiler_warning_silent_reboot_is_enabled_v5.0' into 'release/v5.0'
fix(esp_system): suppress compiler warning if ESP_SYSTEM_PANIC_SILENT_REBOOT is enabled (backport v5.0)

See merge request espressif/esp-idf!26037
2023-10-07 14:28:52 +08:00
Jiang Jiang Jian
64639bb296 Merge branch 'test/bqb_test_bt_classic_hfp_v5.0' into 'release/v5.0'
feat(bt/hfp): Add support for HFP BQB auto test (backport v5.0)

See merge request espressif/esp-idf!26223
2023-10-07 14:28:28 +08:00
Jiang Jiang Jian
d4b9cb7e63 Merge branch 'test/bqb_test_bt_classic_l2cap_v5.0' into 'release/v5.0'
feat(bt/bluedroid): Add flags for BQB auto test of L2CAP (backport v5.0)

See merge request espressif/esp-idf!26219
2023-10-07 14:27:06 +08:00
Jiang Jiang Jian
ef2a051313 Merge branch 'bugfix/hfp_api_pkt_stat_nums_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Fix the judgment condition for packet transmission status statistics (backport v5.0)

See merge request espressif/esp-idf!26170
2023-10-07 14:25:13 +08:00
Jiang Jiang Jian
7b786f7716 Merge branch 'bugfix/reduce_bss_logging_v5.0' into 'release/v5.0'
wifi: Reduce BSS logging in wpa_supplicant

See merge request espressif/esp-idf!25824
2023-10-07 14:22:58 +08:00
Jiang Jiang Jian
acfe0474dd Merge branch 'ci/connect_at_different_phase_v5.0' into 'release/v5.0'
ci(wifi): Test connect api at different phase (backport v5.0)

See merge request espressif/esp-idf!25673
2023-10-07 14:21:54 +08:00
Abhik Roy
08a83bbea5 feat(lwip): Fixes and Improvements for NAPT and SBOM Support
- napt: restore to the initial state in deinit (espressif/esp-lwip@5c4f899f)
- napt: Fix ip_portmap_add() to keep only one port mapping (espressif/esp-lwip@d65ad241)
- napt: Fix clean compilation (espressif/esp-lwip@7033e26f)
- napt: Fix IP forwarding when forward netif enable NAPT (espressif/esp-lwip@bc78df87)
- napt/stats: Move some napt counters to stats module (espressif/esp-lwip@b55e64ae)
- ip_napt_maint: Fix timestamp overflow handling (2.1.3) (espressif/esp-lwip@a7e0a50c)
- napt: Fixes and improvements (2.1.3) (espressif/esp-lwip@fadb9109)
- Add sbom descripton file for Software BOM (espressif/esp-lwip@f07097d7)
2023-10-06 19:46:18 +11:00
Peter Dragun
570f5880be feat(tools/monitor): add simple port detection
Closes https://github.com/espressif/esp-idf/issues/8114
2023-10-05 16:29:43 +02:00
Harshit Malpani
1f93358d4e fix(esp_http_client): Call event_handler after header value is received 2023-10-05 10:24:18 +05:30
Fu Hanxi
5dba99409e Merge branch 'test/idf-build-apps-1.0.0_v5.0' into 'release/v5.0'
CI: make master pipeline compatible with idf-build-apps 1.0.0 release (v5.0)

See merge request espressif/esp-idf!26248
2023-10-02 21:02:08 +08:00
Fu Hanxi
5e2c3e23ae ci: fix breaking change in idf-build-apps 1.0.0
x
2023-09-29 14:16:14 +02:00
Rahul Tank
3f55377ab4 Merge branch 'bugfix/post_reattempt_cnt_event_v5.0' into 'release/v5.0'
fix(nimble): Add event for reattempt connection count information(v5.0)

See merge request espressif/esp-idf!26113
2023-09-29 16:30:55 +08:00
harshal.patil
6fdbd027c5 feat(esp_hw_support): Add locking layer for the ECC peripheral 2023-09-29 11:24:34 +05:30
Rahul Tank
782a60a11d fix(nimble): Add event for reattempt connection count information 2023-09-28 20:05:46 +05:30
Rahul Tank
2007f2f4cc Merge branch 'bugfix/remove_unused_coex_header_v5.0' into 'release/v5.0'
remove(nimble): Removed unused coex header inclusion (v5.0)

See merge request espressif/esp-idf!26180
2023-09-28 22:30:55 +08:00
Mahavir Jain
817f8ef669 Merge branch 'bugfix/http_client_tcp_config_v5.0' into 'release/v5.0'
http_client: Set common tcp config to both TCP and SSL transport (v5.0)

See merge request espressif/esp-idf!26206
2023-09-28 17:36:24 +08:00
morris
b07b08d9eb Merge branch 'bugfix/shared_intr_memory_location_v5.0' into 'release/v5.0'
fix(intr): always allocate memory from internal ram (v5.0)

See merge request espressif/esp-idf!26188
2023-09-28 16:44:14 +08:00
morris
821f6f117a Merge branch 'bugfix/rmt_pm_lock_type_v5.0' into 'release/v5.0'
fix(rmt): use ESP_PM_CPU_FREQ_MAX for RMT for non-dma channel (v5.0)

See merge request espressif/esp-idf!26259
2023-09-28 16:43:34 +08:00
Wang Meng Yang
284d6d235b Merge branch 'bugfix/add_params_check_for_hci_v5.0' into 'release/v5.0'
Fixed some HCI commands parameter (backport v5.0)

See merge request espressif/esp-idf!26150
2023-09-28 16:18:00 +08:00
hongshuqing
6ae027eb8b s2s3 cpu sw freq 2023-09-28 15:02:30 +08:00
Rahul Tank
f4e6510852 remove(nimble): Removed unused coex header inclusion 2023-09-28 10:47:06 +05:30
Rahul Tank
6d7c58516b Merge branch 'bugfix/ext_adv_log_v5.0' into 'release/v5.0'
fix(nimble): added log for extended advertisement (v5.0)

See merge request espressif/esp-idf!25940
2023-09-28 13:08:34 +08:00
wuzhenghui
49bd0ca8fd fix(esp_system): suppress compiler warning if ESP_SYSTEM_PANIC_SILENT_REBOOT is enabled 2023-09-28 02:53:07 +00:00
Mahavir Jain
012f13366a Merge branch 'feature/add_support_for_ds_peripheral_on_ota_v5.0' into 'release/v5.0'
feat(esp_http_client): Added support for OTA using ds peripheral for TLS (v5.0)

See merge request espressif/esp-idf!26092
2023-09-28 02:35:37 +08:00
David Čermák
d801c78081 Merge branch 'feature/eth_iram_optimization_v5.0' into 'release/v5.0'
feat(esp_eth): added IRAM optimization option for internal EMAC (v5.0)

See merge request espressif/esp-idf!25843
2023-09-27 20:58:06 +08:00
Mahavir Jain
f2077b13fb Merge branch 'bugfix/fix_condition_to_verify_when_no_SB_v5.0' into 'release/v5.0'
fix(bootloader_support): Fix condition for checking signature in the application (v5.0)

See merge request espressif/esp-idf!26226
2023-09-27 18:14:46 +08:00
morris
36392368f4 fix(rmt): fixed unstable transfer during DFS
Closes https://github.com/espressif/esp-idf/issues/12292
2023-09-27 17:33:18 +08:00
Wang Meng Yang
6c9b6207b2 Merge branch 'bugfix/fix_hid_congestion_v5.0' into 'release/v5.0'
Fix(bt/bluedroid): Fix the issue for HID congestion checking[backport 5.0]

See merge request espressif/esp-idf!26232
2023-09-27 16:26:38 +08:00
Armando
30fda7f5c2 change(mspi): remove s3 120mhz sdr warning 2023-09-27 15:00:26 +08:00
gongyantao
1b6cfd828d fix(bt/bluedroid): ble fails to load bonded device info after reboot
1: add a quantity check in bt when writing paired device info into nvs.
2: delete the exceeded device info from NVS when get bonded list during
bluedroid initialization.
3: unify the process of bt and ble to load bonded list during bluedroid
initialization.
2023-09-27 10:44:19 +08:00
morris
fcfb16050f fix(intr): always allocate memory from internal ram
Closes https://github.com/espressif/esp-idf/issues/12271
2023-09-27 02:36:01 +00:00
Ondrej Kosta
acf5b6eccb docs(esp_eth): added Ethernet to Improving Network Speed section 2023-09-26 13:29:37 +00:00
Ondrej Kosta
8d4ae2014b feat(esp_eth): added IRAM optimization option for internal EMAC 2023-09-26 13:29:37 +00:00
Mahavir Jain
b089f6e038 Merge branch 'update/micro-ecc_submodule_v5.0' into 'release/v5.0'
feat(bootloader): Update micro-ecc version to v1.1 (v5.0)

See merge request espressif/esp-idf!26140
2023-09-26 18:34:27 +08:00
Harshit Malpani
c71801f9fa fix(bootloader): Update kconfig option 2023-09-26 13:31:58 +05:30
Harshit Malpani
3ea86d53b1 fix(bootloader_support): Fix condition for SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
Fix the condition to verify the image when SECURE_SIGNED_APPS_ECDSA_V2_SCHEME and
SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT are selected.
2023-09-26 13:31:58 +05:30
wanglai@espressif.com
025a669983 fix(bt/bluedroid): Modify the operator name to English in hfp_ag example 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
261a2618b9 fix(bt/bluedroid): Revise the description for index in esp_hf_ag_clcc_response and correct the error return in btc_hf_indchange_notification
1: modify the description of param index in function
esp_hf_ag_clcc_response.
2: fix the error code return of function btc_hf_indchange_notification.
2023-09-26 15:10:15 +08:00
wanglai@espressif.com
f4170d127e feat(bt/bluedroid): Add flag to control whether to send AT+CLIP cmd for BQB test 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
7e1af63bfc feat(bt/bluedroid): Add flag to change HFP client features for BQB test 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
9897df3647 feat(bt/bluedroid): Add eSCO S1 support for hfp client BQB test 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
23e3279a84 feat(bt/bluedroid): Add flag to send BRSF features for hfp ag BQB test 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
4f332026e6 feat(bt/bluedroid): Modify the btc hf features for AT+NREC cmd in BQB test 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
ce41d2c0a8 fix(bt/bluedroid): Fix the process of sending OK in ATD and COPS cmds 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
9a11ce19ea feat(bt/bluedroid): Add supprot for specific indicator sending from AG to Client 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
2a747a3058 feat(bt/bluedroid): Modify AT+CNUM response api and HFP AG example 2023-09-26 15:10:15 +08:00
wanglai@espressif.com
0687fad3d6 feat(bt/bluedroid): Add HFP config for BQB test 2023-09-26 15:10:14 +08:00
liqigan
833d3226c5 fix(bt/bluedroid): Fix the issue for HID congestion checking 2023-09-26 14:15:44 +08:00
wanglai@espressif.com
6c1d11ad7e feat(bt/bluedroid): Add flags for BQB auto test of L2CAP
1: add sdp_bqb_disable_flag to avoid running sdpu_build_n_send_error.
2: add sdp_bqb_inact_timeout_flag to set the SDP inactivity timeout to 90 seconds.
3: add l2cap_bqb_bad_cmd_len_rej_flag to reject the C-Frame with invalid PDU length
4: add l2cap_bqb_ertm_mode_included_flag to set L2CAP_FCR_ERTM_MODE for most L2CAP cases
2023-09-26 14:06:24 +08:00
David Cermak
0c379e6663 fix(http_client): Set common tcp config to both TCP and SSL transport
Foundation transport contained TCP properties for both TCP and SSL
transport, so it was enough to set the TCP connection properties
(keepalive, interface binding) to one transport only. After merging
5778a7c7 we have separate TCP properties for these transports and need
to set the same for both.
This commit also fixes unnecessary allocation of 1 more byte for if_name

Closes https://github.com/espressif/esp-protocols/issues/322
2023-09-25 14:57:25 +02:00
darshan
0ae59943e2 fix(nimble): added log for extended advertisement (v5.0) 2023-09-25 17:41:33 +05:30
Rahul Tank
840d8a2aee Merge branch 'feature/adv_queue_congestion_v5.0' into 'release/v5.0'
feat(nimble): Added adv queue congestion check (v5.0)

See merge request espressif/esp-idf!25731
2023-09-25 19:18:39 +08:00
baohongde
7620ff11b5 change(bt/bluedroid): Send a name tag with zero length when there is no EIR data 2023-09-25 06:28:42 +00:00
Kapil Gupta
32c6d13001 change(wifi): Rename ESP_WIFI_MBEDTLS_CRYPTO to WPA_MBEDTLS_CRYPTO 2023-09-25 10:58:06 +05:30
Kapil Gupta
9562935813 change(wifi): Add dependency of group 19 for MbedTLS crypto 2023-09-25 10:57:57 +05:30
Kapil Gupta
3f0800ef66 change(wifi): Add supplicant's public API header files to doc 2023-09-25 10:57:11 +05:30
shangke
5d3d6bf7c0 fix(bt/controller): Fixed some HCI commands parameter
1: add param check for HCI_Recevie_Synchronization_Train.
2: add param check for HCI_Set_Connectionless_Peripheral_Broadcast.
3: fix slave cannot take a secure authentication.
2023-09-25 11:42:36 +08:00
chenqingqing
af72846e92 fix(bt/bluedroid): Fix the judgment condition for packet transmission status statistics 2023-09-25 10:50:52 +08:00
zhanghaipeng
a921a2dfd7 fix(bt/bluedroid): Fix set periodic advertising data error 2023-09-23 20:23:49 +08:00
harshal.patil
9bf94cb7e1 feat(bootloader): Update micro-ecc version to v1.1
This fix ensures that https://nvd.nist.gov/vuln/detail/CVE-2020-27209 is not
reported by the ESP-IDF SBOM tool. Please note that, this CVE was anyways not
applicable for ESP32 platform, as the bootloader (user of micro-ecc library)
do not perform signing on the device, its only verification that happens in
secure-boot-v1 case.
2023-09-22 10:50:00 +05:30
Krzysztof Budzynski
ce6d37fe35 Merge branch 'docs/add_Chinese_translation_for_api-reference/peripherals/spi_slave_hd.rst_backport_v5.0' into 'release/v5.0'
docs: provide CN translation for api-reference/peripherals/spi_slave_hd.rst (Backport v5.0)

See merge request espressif/esp-idf!26103
2023-09-22 10:51:48 +08:00
Cai Xin Ying
202d1f11e9 docs: provide CN translation for api-reference/peripherals/spi_slave_hd.rst (Backport v5.0) 2023-09-22 10:51:47 +08:00
You Wei
39cc5e0fcc fix(ldgen): duplicate entries in the generated .ld file 2023-09-21 19:41:24 +08:00
You Wei
82f26d48a3 fix(ldgen): check target conflict for entries with section alias 2023-09-21 19:41:24 +08:00
Sudeep Mohanty
e53e0c553f fix(freertos): Updated IDLE task names for each core to have the coreID as a suffix
This commit updates the IDLE task names for each core by concatenating
the respective coreIDs to the names.

Closes https://github.com/espressif/esp-idf/issues/12204
2023-09-21 13:11:36 +02:00
Jiang Jiang Jian
5b2404af4b Merge branch 'feat/add_internal_pull_up_or_pull_down_option_for_deepsleep_wakeup_prepare_v5.0' into 'release/v5.0'
feat(pm): add internal pull-up/downs option for gpio used for deepsleep wakeup (backport v5.0)

See merge request espressif/esp-idf!26041
2023-09-21 15:36:50 +08:00
Kapil Gupta
a03df471ae change(example): Update eap-fast example 2023-09-21 11:54:36 +05:30
Kapil Gupta
30cfd31ea5 change(example): Update wifi enterprise example 2023-09-21 11:54:36 +05:30
Kapil Gupta
5cc7d3741d change(esp_wifi): Rename WiFi enterprise connection APIs 2023-09-21 11:54:32 +05:30
Aditya Patwardhan
1e95e18576 feat(esp_http_client): Added support for OTA using ds peripheral for TLS 2023-09-21 10:22:41 +05:30
Jiang Jiang Jian
11091e654a Merge branch 'bugfix/pthread_cond_var_link_hook_v5.0' into 'release/v5.0'
bugfix(pthread): fixed pthread_condvar linker hook (v5.0)

See merge request espressif/esp-idf!26005
2023-09-21 10:56:50 +08:00
Kapil Gupta
c853492e1c change(wifi): Reduce BSS logging in wpa_supplicant 2023-09-21 02:55:35 +00:00
Jiang Jiang Jian
c4d7be43ed Merge branch 'bugfix/wps_wpa3_passphrase_v5.0' into 'release/v5.0'
WiFi: get passphrase in WPS if AP support SAE (v5.0)

See merge request espressif/esp-idf!25886
2023-09-21 10:54:06 +08:00
Jiang Jiang Jian
aedd7fe002 Merge branch 'docs/update_multi_antenna_switch_docs_v5.0' into 'release/v5.0'
Docs/update multi antenna switch docs v5.0(Backport v5.0)

See merge request espressif/esp-idf!25819
2023-09-21 10:53:14 +08:00
aditi_lonkar
9f0d0e27ef wpa_supplicant: Fix for issue of wps-pbc overlap in wps-pin method 2023-09-21 02:52:49 +00:00
Jiang Jiang Jian
92b4e5c15b Merge branch 'bugfix/skip_using_cache_in_wrong_passwd_cfg_v5.0' into 'release/v5.0'
Skip PMK cache usage if configured password is incorrect (Backport v5.0)

See merge request espressif/esp-idf!25707
2023-09-21 10:52:10 +08:00
Jiang Jiang Jian
be49757cbf Merge branch 'contrib/github_pr_9694_v5.0' into 'release/v5.0'
add low power doc and picture (GitHub PR)(backport v5.0)

See merge request espressif/esp-idf!25591
2023-09-21 10:37:38 +08:00
Jiang Jiang Jian
0b4adebda5 Merge branch 'feature/configurable_wpa2_ent_v5.0' into 'release/v5.0'
Make enterprise support configurable to save binary size.(v5.0)

See merge request espressif/esp-idf!25557
2023-09-21 10:37:20 +08:00
Wang Meng Yang
3ab19cc298 Merge branch 'origin/test/bqb_test_bt_classic_avdtp_v5.0' into 'release/v5.0'
feat(bt/bluedroid): Add avdt abort function for BQB test(backport v5.0)

See merge request espressif/esp-idf!26046
2023-09-21 09:47:36 +08:00
Lou Tianhao
0c09543d65 feat(pm): add internal pull-up/downs option for gpio used for deepsleep wakeup 2023-09-20 17:30:18 +08:00
Wang Meng Yang
a48a845cfa Merge branch 'change/optimize_sniff_request_v5.0' into 'release/v5.0'
Change(bt/bluedroid): Limit sniff request when pending mode change event[backport 5.0]

See merge request espressif/esp-idf!26054
2023-09-20 16:50:50 +08:00
Rahul Tank
35bc5c3beb Merge branch 'bugfix/update_ble_phy_example_v5.0' into 'release/v5.0'
fix(nimble): Updated BLE Phy example (v5.0)

See merge request espressif/esp-idf!26016
2023-09-20 16:34:55 +08:00
Aditya Patwardhan
d2109f0527 Merge branch 'bugfix/aes_dma_descriptor_setup_issue_v5.0' into 'release/v5.0'
fix(aes): correct the linking of the DMA descriptors (v5.0)

See merge request espressif/esp-idf!25785
2023-09-20 13:52:03 +08:00
liqigan
0016eb028c change(bt/bluedroid): Limit sniff request when pending mode change event 2023-09-19 20:10:37 +08:00
LiPeng
a431bb4579 fix(vfs): Fix event_write may not exit critical section
This commit fixes the event_write() function where the critical section
was unbalanced.

Merges https://github.com/espressif/esp-idf/pull/12258
2023-09-19 08:52:51 +02:00
Island
caf6660080 Merge branch 'bugfix/fix_some_ble_bug_v5.0' into 'release/v5.0'
Fixed some BLE bugs (backport v5.0)

See merge request espressif/esp-idf!26031
2023-09-19 14:51:03 +08:00
morris
69b0a57777 Merge branch 'contrib/github_pr_12179_v5.0' into 'release/v5.0'
fix(uart): Fix uart_ll_set_baudrate div-by-zero crash due to uint32_t overflow (backport v5.0)

See merge request espressif/esp-idf!26017
2023-09-19 13:15:17 +08:00
Wang Meng Yang
185ed100fd Merge branch 'bugfix/error_param_in_BTA_AG_WBS_EVT_v5.0' into 'release/v5.0'
Bugfix/error param in bta ag wbs evt (v5.0)

See merge request espressif/esp-idf!26002
2023-09-19 12:01:01 +08:00
wanglai@espressif.com
40b99b513c feat(bt/bluedroid): Add avdt abort function for BQB test
1: add new AVDTP abort function for BQB test
2023-09-19 11:55:58 +08:00
morris
711477d354 Merge branch 'feature/specify_rmt_intr_priority_v5.0' into 'release/v5.0'
feat(rmt): specify interrupt priority (v5.0)

See merge request espressif/esp-idf!25719
2023-09-19 11:49:18 +08:00
morris
2bec2de36e Merge branch 'feature/mcpwm_interrupt_priority_v5.0' into 'release/v5.0'
feat(MCPWM): Support set interrupt priority(v5.0)

See merge request espressif/esp-idf!25522
2023-09-19 10:41:58 +08:00
morris
d86397aca4 Merge branch 'feature/pcnt_interrupt_priority_v5.0' into 'release/v5.0'
feat(pcnt): support set interrupt priority(v5.0)

See merge request espressif/esp-idf!25520
2023-09-19 10:27:28 +08:00
morris
d6df3b7758 Merge branch 'feature/add_mcpwm_carrier_clk_source_v5.0' into 'release/v5.0'
feat(MCPWM): Add mcpwm carrier clk source(v5.0)

See merge request espressif/esp-idf!25523
2023-09-19 10:24:25 +08:00
chenjianhua
9af8a1e7a7 Update bt lib for ESP32-C3 and ESP32-S3(59725b5)
- Support BLE RX error packet count record
- Fixed adv random delay when adv interval is less than 20ms
- Fixed adv random address setting when owner address type is public
2023-09-18 19:39:41 +08:00
chenjianhua
9fce08c5d2 Update bt lib for ESP32-C3 and ESP32-S3(ff6efe7)
- fix(bt/controller): Fixed PHY enable and disable
- feat(bt/controller): Support DAA and LBT mode for BLE CCA
2023-09-18 19:39:27 +08:00
chenjianhua
19a07ffb96 update esp32 bt-lib (7b24543)
- Support BLE RX error packet count record
- Fixed instant setting for LLC procedures with instants
- Fixed adv random delay when adv interval is less than 20ms
2023-09-18 19:38:38 +08:00
zhanghaipeng
c85c755ec6 fix(bt): Fix bugs about updating connect param 2023-09-18 19:38:20 +08:00
zhanghaipeng
4e6a831d57 fix(bt): Fix bug while calculating block cipher using aes-128 2023-09-18 19:38:13 +08:00
zhanghaipeng
ed1a83a93f docs(bt): Update comment in ble 2023-09-18 19:38:04 +08:00
zhanghaipeng
debcf93282 feat(bt/bluedroid): Support periodic adv adi feature 2023-09-18 19:37:55 +08:00
chenjianhua
559368ba77 fix(bt/bluedroid): Fixed BLE disconnect event report when disconnecting 2023-09-18 19:37:45 +08:00
chenjianhua
c75ffd7de1 fix(bt/bluedroid): Fixed GATTC cache address save when list is full 2023-09-18 19:37:38 +08:00
chenjianhua
fc57ae154d feat(bt/bluedroid): Support high duty adv interval setting 2023-09-18 19:37:28 +08:00
chenjianhua
3115bd17b5 fix(bt/bluedroid): Fix address check when using NRPA as random device address 2023-09-18 19:37:18 +08:00
Wang Meng Yang
ae3029cad8 Merge branch 'bugfix/fix_some_hci_cmd_param_check_v5.0' into 'release/v5.0'
fix(bt/controller): Fixed some HCI commands parameter check  (Backport v5.0)

See merge request espressif/esp-idf!25714
2023-09-18 19:07:35 +08:00
Song Ruo Jing
b75ccbde65 fix(docs): Improve the DFS and Peripheral Drivers section in power_management.rst 2023-09-18 16:34:18 +08:00
Song Ruo Jing
6fd9a50c17 fix(uart): Add 8/16-bit register field access workaround to ESP32C2 2023-09-18 16:34:18 +08:00
Eduardo Lacerda Campos
5a1d9da84f fix(uart): Fix uart_ll_set_baudrate div-by-zero crash due to uint32_t overflow
Merges https://github.com/espressif/esp-idf/pull/12179
2023-09-18 16:34:05 +08:00
Rahul Tank
751380762c fix(nimble): Updated BLE Phy example
The existing example has some issues which are now fixed.

1. Original example had legacy_pdu set which was not causing
   the PHY to actually change. Fixed this
2. Added a way to initiate connection directly on 2M or Coded Phy.
2023-09-18 13:25:41 +05:30
morris
2fd9ca6554 Merge branch 'feature/esp_lcd_st7789_rgb_data_endian_config_v5.0' into 'release/v5.0'
feat(st7789): add data endian config (v5.0)

See merge request espressif/esp-idf!25803
2023-09-18 15:50:23 +08:00
Island
87aeb49cff Merge branch 'feature/support_ble_53_host_feat_v5.0' into 'release/v5.0'
Support BLE host feature for PTS (backport v5.0)

See merge request espressif/esp-idf!25646
2023-09-18 15:23:06 +08:00
Wang Meng Yang
5a98ae1a52 Merge branch 'bugfix/fix_hidd_send_rpt_without_connection_v5.0' into 'release/v5.0'
Change(bt/bluedroid): Optimize HIDD sending interrupt report behavior[backport 5.0]

See merge request espressif/esp-idf!25919
2023-09-18 14:07:20 +08:00
Jakob Hasse
83b9a7e2a5 fix(pthread): fixed pthread_condvar linker hook 2023-09-18 12:31:34 +08:00
darshan
4c118e23ca feat(nimble): Added adv queue congestion check 2023-09-18 09:15:51 +05:30
Island
d1d4519f96 Merge branch 'feature/esp32c2_add_trace_function_v5.0' into 'release/v5.0'
ble: supported trace function and adv report flow control on esp32c2

See merge request espressif/esp-idf!25641
2023-09-18 11:44:27 +08:00
Rahul Tank
e3f05d0972 Merge branch 'feat/add_high_duty_adv_interval_v5.0' into 'release/v5.0'
feat(nimble): Added support for high duty adv interval (v5.0)

See merge request espressif/esp-idf!25554
2023-09-18 11:40:24 +08:00
morris
42a703f287 Merge branch 'feature/esp_lcd_spi_support_quad_mode_v5.0' into 'release/v5.0'
esp_lcd: spi support quad mode (v5.0)

See merge request espressif/esp-idf!25562
2023-09-18 11:28:59 +08:00
Wang Meng Yang
a6abcfb990 Merge branch 'test/bqb_test_bt_classic_sdp_v5.0' into 'release/v5.0'
feat(bt/bluedroid): Add language base attr list to SDP record for BQB test (backport v5.0)

See merge request espressif/esp-idf!25930
2023-09-18 11:06:52 +08:00
Wang Meng Yang
b212ab6176 Merge branch 'test/bqb_test_bt_classic_hid_v5.0' into 'release/v5.0'
feat(bt/bqb): Add setting local di record function for specific hid case of bqb auto test (backport v5.0)

See merge request espressif/esp-idf!25834
2023-09-18 11:05:35 +08:00
Jin Cheng
11ecd9e5cf fix(bt/bluedroid): Fixed incorrect arrangement in type esp_hf_dial_type_t 2023-09-18 11:04:19 +08:00
Jin Cheng
89bfe3e352 change(bt/bluedroid): Added line information printing when error occurs CHECK_HF_IDX 2023-09-18 11:04:19 +08:00
Jin Cheng
03d9d39ec7 fix(bt/bluedroid): Fixed the issue of uninitialized parameters in event BTA_AG_WBS_EVT 2023-09-18 11:04:19 +08:00
morris
8276854072 Merge branch 'feature/esp_lcd_panel_add_data_and_type_v5.0' into 'release/v5.0'
feat(esp_lcd): add user data and init cmd (v5.0)

See merge request espressif/esp-idf!25722
2023-09-18 11:03:35 +08:00
Wang Meng Yang
1b4464a6be Merge branch 'test/bqb_test_bt_classic_a2dp_v5.0' into 'release/v5.0'
feat(bt/bqb): Add setting SBC encoder and reject invalid codec type support for a2dp BQB test (backport v5.0)

See merge request espressif/esp-idf!25685
2023-09-18 11:02:56 +08:00
Planck (Lu Zeyu)
f089f0d83b feat(rmt): specify interrupt priority 2023-09-18 03:02:49 +00:00
Wang Meng Yang
6314d3540b Merge branch 'bugfix/hf_ag_report_event_with_null_bdaddr_v5.0' into 'release/v5.0'
Bugfix/fixed bugs of HFP in BlueDroid (v5.0)

See merge request espressif/esp-idf!25828
2023-09-18 10:52:01 +08:00
Jiang Jiang Jian
21a6d5b4cd Merge branch 'docs/update_wakeup_gpio_esp32s2_esp32s3_esp32c6_esp32h2_v5.0' into 'release/v5.0'
docs: Updated wakeup GPIOs for ESP32-S2, ESP32-S3, ESP32-C6 and ESP32-H2

See merge request espressif/esp-idf!25617
2023-09-18 10:46:14 +08:00
Marius Vikhammer
6447807e4e Merge branch 'doc/fix_xts_key_length_256_desc_v5.0' into 'release/v5.0'
fix(doc): Fix incorrect description for xts_key_length_256 efuse (v5.0)

See merge request espressif/esp-idf!25932
2023-09-18 10:21:31 +08:00
Marius Vikhammer
1bdc5dedc1 Merge branch 'bugfix/freertos_vTaskSuspendAll_test_flakiness_v5.0' into 'release/v5.0'
FreeRTOS: Fix vTaskSuspendAll unit test flakiness (v5.0)

See merge request espressif/esp-idf!25609
2023-09-18 10:20:39 +08:00
Mahavir Jain
833970b783 Merge branch 'feature/freertos_add_sbom_file_v5.0' into 'release/v5.0'
feat(freertos): Added SBOM manifest file for SPDX file generation (v5.0)

See merge request espressif/esp-idf!25892
2023-09-16 21:35:15 +08:00
Roland Dobai
0b86f34cb4 Merge branch 'bugfix/failed_module_import_v5.0' into 'release/v5.0'
fix(tools): extend error message for failed python module import (v5.0)

See merge request espressif/esp-idf!25869
2023-09-16 00:01:40 +08:00
Roland Dobai
58392ec5d5 Merge branch 'fix/click-port-compl_v5.0' into 'release/v5.0'
fix(tools): fix autocomplete for --port option (v5.0)

See merge request espressif/esp-idf!25875
2023-09-16 00:00:38 +08:00
Roland Dobai
eb7a99040d Merge branch 'dependency_check_fix_v5.0' into 'release/v5.0'
bug(tools): dependency check catch exception when package not installed (v5.0)

See merge request espressif/esp-idf!25657
2023-09-16 00:00:12 +08:00
Roland Dobai
7ce55ea9fe Merge branch 'feature/configurable_gcov_task_size_v5.0' into 'release/v5.0'
feat(gcov): make gcov dump task size configurable (v5.0)

See merge request espressif/esp-idf!25601
2023-09-15 23:59:55 +08:00
Kapil Gupta
a869c484d0 fix(wifi): Get passphrase in WPS if AP support SAE
Also add changes to send NACK if WPS message received twice.
2023-09-15 10:28:48 +00:00
Island
3da1684b4a Merge branch 'backport_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Fix memory no free issue when disconneting for mesh(backport v5.0)

See merge request espressif/esp-idf!25957
2023-09-15 14:21:25 +08:00
Aditya Patwardhan
e0a3a3d64c Merge branch 'bugfix/usb/host/urb_check_revert_v5.0' into 'release/v5.0'
[USB Host] Fix transfer determination during argument checking for regular EP transfer (backport v5.0)

See merge request espressif/esp-idf!25964
2023-09-14 23:52:20 +08:00
Roman Leonov
8fbf4ba605 bugfix(usb/host): Fix transfer direction determination during argument checking for regular EP transfer 2023-09-13 21:53:28 +02:00
zhanghaipeng
b0d4fb3b35 fix(bt/bluedroid): Fix memory no free issue when disconneting for mesh 2023-09-13 18:17:56 +08:00
luomanruo
79b2773102 change(ble): update controller log print interface 2023-09-12 17:40:50 +08:00
Aditya Patwardhan
47da0967ac Merge branch 'update/version_5_0_4' into 'release/v5.0'
versions: Update version to 5.0.4

See merge request espressif/esp-idf!25906
2023-09-12 15:54:55 +08:00
KonstantinKondrashov
f3876b60f5 fix(doc): Fix incorrect description for xts_key_length_256 efuse 2023-09-12 14:53:10 +08:00
wanglai@espressif.com
a02cb1ebc0 feat(bt/bluedroid): Add language base attr list to SDP record for BQB test 2023-09-12 13:04:33 +08:00
Linda
9fb3f19e3a docs: Updated wakeup GPIOs for ESP32-S2, ESP32-S3, ESP32-C6 and ESP32-H2 2023-09-12 11:17:07 +08:00
liqigan
4b7f77a769 change(bt/bluedroid): Optimize HIDD sending interrupt report behavior
HID device is allowed to trigger reconnection by sending an interrupt
report. When reconnection is in progress, no more interrupt report can
be sent until the procedure is accomplished.
2023-09-11 20:14:25 +08:00
Aditya Patwardhan
a4223c75a6 versions: Update version to 5.0.4 2023-09-11 10:38:15 +05:50
Sudeep Mohanty
9fe0fa3455 feat(freertos): Added SBOM manifest file for SPDX file generation
This commit adds the SBOM manifest file for the FreeRTOS-Kernel to aid
SPDX file generation.
2023-09-08 12:56:04 +02:00
cjin
e741807b5a ble: support esp32c2 wakeup overhead 2023-09-08 17:03:06 +08:00
cjin
a29eaf058e feat: Support esp32c2 BLE power save example 2023-09-08 17:03:03 +08:00
Peter Dragun
f06d3ff5bb fix(tools): fix autocomplete for --port option
Closes https://github.com/espressif/esp-idf/issues/7970
2023-09-08 09:29:20 +02:00
Frantisek Hrbata
ca31d75cc3 fix(tools): extend error message for failed python module import
Currently idf.py reports just "Please use idf.py only in an ESP-IDF shell environment".
Sometimes it may be useful to know for which module the import failed.
Also the problem does not have to be related to shell environment only, but the
python venv can be corrupted. This adds a little bit more verbose error
message.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-09-08 07:29:56 +02:00
zwl
dc417eeab9 feat(ble): enable adv report flow control on esp32c2 2023-09-07 16:38:03 +08:00
zwl
99197d4a02 feat(ble): supported trace function and adv report flow control on esp32c2 2023-09-07 16:30:20 +08:00
muhaidong
d04b4e836b esp_wifi: update multi antenna switch docs 2023-09-07 14:43:29 +08:00
wanglai@espressif.com
60b4e1f998 feat(bt/bluedroid): Add setting local di record function for bt classic hid device bqb test 2023-09-07 14:20:56 +08:00
wanglai@espressif.com
5f243e9b95 fix(bt/bluedroid): Changed HID related copyright automatically 2023-09-07 14:20:36 +08:00
Wang Mengyang
50a854ce10 ci(bt/bluedroid): Add CI build test for HFP examples with voice over HCI enabled 2023-09-07 11:37:18 +08:00
chenqingqing
fbf196a7f9 feat(bt/api): Add new apis for hfp to get the numbers of packet status received and sent 2023-09-07 11:37:09 +08:00
Jin Cheng
54fecc5561 fix(bt/bluedroid): Deleted the redundant 'memset' in btc_hf_cb_handler 2023-09-07 10:59:06 +08:00
Jin Cheng
5dc39ebf5a docs(bt/bluedroid): Changed the description of esp_hf_client_reject_call 2023-09-07 10:56:11 +08:00
Jin Cheng
963f5a40db fix(bt/bluedroid): Fixed invalid access to freed semaphore 2023-09-07 10:56:11 +08:00
Jin Cheng
fbf2d5d5d9 fix(bt/bluedroid): Fixed wrong indexes of HF-AG indicators 2023-09-07 10:56:11 +08:00
Jin Cheng
774056bf62 fix(bt/bluedroid): Added peer Bluetooth device address into HF callback parameters 2023-09-07 10:56:11 +08:00
Jin Cheng
e1864ca1e8 fix(bt/bluedroid): Changed log level from WARNING to DEBUG in bta_ag_sco_read_cback 2023-09-07 10:56:11 +08:00
Jin Cheng
e36e0f5233 fix(bt/bluedroid): Fixed wrong code logic in 'AT+CIND?' of HFP 2023-09-07 10:56:11 +08:00
Jin Cheng
f0ed003d91 fix(bt/bluedroid): Fixed errors in parsing ATD command in HFP AG 2023-09-07 10:56:11 +08:00
Jin Cheng
fb14ef7c24 fix(bt/bluedroid): Fixed NULL Bluetooth device address in HF-AG events was reported to application layer 2023-09-07 10:56:11 +08:00
muhaidong
2c3ae21591 esp_wifi: the antenna parameter of example is not correct 2023-09-07 10:56:06 +08:00
muhaidong
c4dffd57c3 esp_wifi: fix pre commit issue 2023-09-07 10:56:06 +08:00
xiehanxin
9c71aad75b add enum type for antenna number 2023-09-07 10:56:06 +08:00
xiehanxin
7bf89d83d5 add multiple antenna test example 2023-09-07 10:56:06 +08:00
Planck (Lu Zeyu)
9ab9e05639 feat(st7789): add data endian config
Closes https://github.com/espressif/esp-idf/issues/11416
2023-09-06 17:04:34 +08:00
Mahavir Jain
aba35cd526 fix(aes): correct the linking of the DMA descriptors
For certain data lengths, the last input descriptor was not getting appended
correctly and hence the EOF flag in the DMA descriptor link list was
set at incorrect location. This was resulting in the peripheral being
stalled expecting more data and eventually the code used to timeout
waiting for the AES completion interrupt.

Required configs for this issue:

CONFIG_MBEDTLS_HARDWARE_AES
CONFIG_SOC_AES_SUPPORT_DMA

This observation is similar to the issue reported in:
https://github.com/espressif/esp-idf/issues/10647

To recreate this issue, start the AES-GCM DMA operation with data length
12280 bytes and this should stall the operation forever.

In this fix, we are tracing the entire descriptor list and then appending the
extra bytes descriptor at correct position (as the last node).
2023-09-06 08:30:00 +05:30
Mahavir Jain
29be69d797 fix(aes-gcm): correct the DMA completion wait condition for hardware GCM case
DMA operation completion must wait until the last DMA descriptor
ownership has been changed to hardware, that is hardware is completed
the write operation for entire data. Earlier for the hardware GCM case,
the first DMA descriptor was checked and it could have resulted in some
race condition for non interrupt (MBEDTLS_AES_USE_INTERRUPT disabled) case.
2023-09-06 08:29:57 +05:30
wanglai@espressif.com
c95c3ba38e feat(bt/bluedroid): Set SBC encoder as PTS required for BQB test.
1: set SBC encoder as PTS required. The encoder is effective first.
But it changes to default after media start.
2023-09-05 01:55:37 +00:00
wanglai@espressif.com
14b1290a20 fix(bt/bluedroid): Reject SET CONFIGURATION command with error code INVALID_CODEC_TYPE.
1: reset p_scb->avdt_handle in cleanup function.
2: cancel comparing p_scb->codec_type and p_scb->seps[xx].codec_type to
   send the error INVALID_CODEC_TYPE.
2023-09-05 01:55:37 +00:00
Liu Zhong Wei
8668c55512 feat(esp_lcd): add user data and init cmd 2023-09-04 13:26:18 +08:00
linruihao
7e4a64a9ab fix(bt/controller): Fixed some HCI commands parameter check
Fixed HCI_Change_Connection_Packet_Type Command parameter check
Fixed HCI_Accpet_Synchronous_Connection_Request Command parameter check
Fixed HCI_Set_Connectionless_Peripheral_Broadcast_Data Command parameter check
2023-09-04 11:36:29 +08:00
ding huan
1eae9ce61c ci(wifi): Test connect api at different phase 2023-09-02 21:48:59 +08:00
Shyamal Khachane
7a3d12316a fix(esp_wifi): Skip PMK cache usage if configured password is incorrect 2023-09-01 18:48:11 +05:30
wanlei
bf1a67362e fix(spi_master): polling_transmit forgot release bus lock when alloc DMA buffer failed
Close https://github.com/espressif/esp-idf/issues/11845
2023-09-01 17:30:26 +08:00
Peter Dragun
6c37f49d16 bug(tools): dependency check catch exception when package not installed 2023-08-30 17:14:10 +02:00
chenjianhua
11e8970a45 bluedroid: add GATT read multi variable API and evt 2023-08-30 15:17:56 +08:00
chenjianhua
0315b24514 bluedroid: add periodic adv sync transfer API and EVT 2023-08-30 15:17:47 +08:00
chenjianhua
630154ed2d bluedroid: support gatts show local database 2023-08-30 15:17:38 +08:00
chenjianhua
3100841f64 bluedroid: fixed GATT multi notify and robust caching 2023-08-30 15:17:30 +08:00
chenjianhua
285e86ad04 bluedroid: add config for GAP service and periodic adv sync transfer 2023-08-30 15:17:14 +08:00
chenjianhua
0b76c3615e bluedroid: add internal GATT API for PTS 2023-08-30 15:15:23 +08:00
chenjianhua
69b8b587c9 bluedroid: add config for robust caching and RPA timeout 2023-08-30 15:15:09 +08:00
chenjianhua
42a1d94830 bluedroid: support GATT robust caching feature 2023-08-30 15:13:03 +08:00
chenjianhua
1ce00f01ca bluedroid: support GATT services database hash calculate 2023-08-30 15:12:52 +08:00
chenjianhua
ed34a2b500 bluedroid: support periodic advertising sync transfer cmd 2023-08-30 15:12:41 +08:00
chenjianhua
52e3e684e0 bluedroid: support LE L2CAP credit based connection 2023-08-30 15:12:12 +08:00
chenjianhua
4145099bdc bluedroid: support oob pairing for smp secure connection 2023-08-30 15:11:34 +08:00
Erhan Kurubas
5577f709b0 fix(breakpoint): fix bp/wp logic when debugger is connected 2023-08-29 12:37:33 +02:00
Chen Jichang
03ec7a0c5d feat(pcnt): support set interrupt priority(v5.0) 2023-08-29 07:48:30 +00:00
wangtao
eb25e92584 backport for v5.0 delete esp32c6 info 2023-08-29 11:48:52 +08:00
Island
7065c87963 Merge branch 'bugfix/ble_hci_issues_chain_mbuf_v5.0' into 'release/v5.0'
fix hci issues when chain mbuf exists

See merge request espressif/esp-idf!25533
2023-08-29 10:27:40 +08:00
Darian Leung
715ff1e432 freertos: Fix vTaskSuspendAll unit test falkiness
This commit fixes falkey unit tests (due to memory leaks) by adding a short
delay at the end of the test to allow the idle task to free task memory.
2023-08-28 19:09:53 +08:00
Erhan Kurubas
a9f039e56f feat(gcov): make gcov dump task size configurable 2023-08-28 12:02:58 +02:00
chenjianxing
760ce1ebd8 docs: update power save part 2023-08-28 14:23:19 +08:00
wang tao
86310135f6 add low power doc and picture
Merges https://github.com/espressif/esp-idf/pull/9694
2023-08-28 14:23:09 +08:00
Jiang Jiang Jian
a78ad034f5 Merge branch 'bugfix/fix_mem_map_issue_v5.0' into 'release/v5.0'
flash_mmap: fix range issue (v5.0)

See merge request espressif/esp-idf!24529
2023-08-26 10:28:44 +08:00
Jiang Jiang Jian
45e1b89efe Merge branch 'feature/default_clock_source_can_leave_empty_v5.0' into 'release/v5.0'
feat(mcpwm): default clock source setting can leave empty (v5.0)

See merge request espressif/esp-idf!25549
2023-08-26 10:15:28 +08:00
Jiang Jiang Jian
62e6999279 Merge branch 'bugfix/fix_adc_continuous_driver_isr_flag_issue_v5.0' into 'release/v5.0'
adc: fix continuous hal func not in iram when gdma isr iram (v5.0)

See merge request espressif/esp-idf!25506
2023-08-26 09:59:54 +08:00
Jiang Jiang Jian
3d99ce2d1a Merge branch 'bugfix/supplicant_osi_violation_v5.0' into 'release/v5.0'
Fix abstraction violation in wpa_supplicant (Backport v5.0)

See merge request espressif/esp-idf!25566
2023-08-26 07:24:11 +08:00
Jiang Jiang Jian
8797a92844 Merge branch 'bugfix/fixed_esp32_psram_2t_mode_cannot_detect_issue_v5.0' into 'release/v5.0'
psram: fixed esp32 2t mode fail issue (v5.0)

See merge request espressif/esp-idf!23028
2023-08-25 15:07:35 +08:00
Nachiket Kukade
304d6164ae fix(supplicant): Fix abstraction violation in wpa_supplicant 2023-08-25 12:33:29 +05:30
Rahul Tank
4095399436 feat(nimble): Added support for high duty adv interval 2023-08-25 12:06:50 +05:30
Roland Dobai
8f3085c1bb Merge branch 'docs/uninstall_idf_v5.0' into 'release/v5.0'
docs(idf-tools): Add uninstallation instructions (backport v5.0)

See merge request espressif/esp-idf!25495
2023-08-25 14:33:29 +08:00
Liu Zhongwei
a6958aa142 feat(esp_lcd): spi add support for quad mode 2023-08-25 14:18:41 +08:00
Liu Zhongwei
c6992fa8b8 feat(esp_lcd): rgb add callback when bounce buffer finish 2023-08-25 14:18:41 +08:00
aditi_lonkar
ff523686b5 esp_wifi: Make enterprise support configurable to save binary size. 2023-08-25 11:14:49 +05:30
Jiang Jiang Jian
f7618e10da Merge branch 'fix/esp_prov_recent_changes_v5.0' into 'release/v5.0'
fix(esp_prov): update devices tuple usage due to API deprecations (v5.0)

See merge request espressif/esp-idf!25537
2023-08-25 13:36:07 +08:00
luomanruo
eb8a741be2 ble: Assert when getting memory fail 2023-08-25 12:27:05 +08:00
Jiang Jiang Jian
1baf1055bd Merge branch 'feature/config_device_name_in_eir_v5.0' into 'release/v5.0'
feat(bt/bluedroid): Add option whether to include device name in extended inquiry response

See merge request espressif/esp-idf!25542
2023-08-25 12:27:03 +08:00
luomanruo
0861bf4c55 ble: Fix hci issues when chain mbuf exists 2023-08-25 12:26:50 +08:00
Jiang Jiang Jian
f218fa50d4 Merge branch 'ci/fix_example_test_advanced_ota_v5.0' into 'release/v5.0'
ci(fix): example test advanced_https_ota_example_bluedroid_gatts (v5.0)

See merge request espressif/esp-idf!25525
2023-08-25 12:14:10 +08:00
Jiang Jiang Jian
e8507d1380 Merge branch 'contrib/github_pr_11923_v5.0' into 'release/v5.0'
fix(esp-tls): fix pointer cast and condition for CONFIG_ATECC608A_TCUSTOM (GitHub PR) (v5.0)

See merge request espressif/esp-idf!25501
2023-08-25 12:11:12 +08:00
Jiang Jiang Jian
8e3b112c74 Merge branch 'bugfix/fix_legacy_adc_continuous_driver_dma_descriptor_not_internal_issue_v5.0' into 'release/v5.0'
adc: fixed legacy adc continuous driver dma descriptor not in internal ram issue (v5.0)

See merge request espressif/esp-idf!25509
2023-08-25 12:08:15 +08:00
Jiang Jiang Jian
328f592e9d Merge branch 'bugfix/esp_timer_prevents_delay_for_isr_dispatch_callbacks_v5.0' into 'release/v5.0'
fix(esp_timer): Fix delay in ISR dispatch callbacks (v5.0)

See merge request espressif/esp-idf!25473
2023-08-25 12:08:02 +08:00
Jiang Jiang Jian
1b580186f2 Merge branch 'bugfix/sdmmc_host_cclk_lp_v5.0' into 'release/v5.0'
sdmmc: keep clock enabled for the duration of ACMD41 (v5.0)

See merge request espressif/esp-idf!24334
2023-08-25 12:07:24 +08:00
Jiang Jiang Jian
787a6c9408 Merge branch 'bugfix/fix_no_mac_retention_at_wifi_start_v5.0' into 'release/v5.0'
fix(esp_wifi): fix no mac retention at wifi start

See merge request espressif/esp-idf!25517
2023-08-25 11:32:12 +08:00
Armando
d90cb866f1 test(adc): continuous driver iram test with gdma iram safe option only 2023-08-25 10:56:20 +08:00
Armando
53b1c2a2e6 test(flash_mmap): test flash mmap pages 2023-08-25 10:37:48 +08:00
Armando
6183b555aa fix(flash_mmap): fixed limited free I/D pages on ESP32S3, C2, C3 2023-08-25 10:37:48 +08:00
morris
358b408753 feat(mcpwm): default clock source setting can leave empty 2023-08-25 10:26:36 +08:00
morris
676553f432 fix(adc): invalid assertion on the adc_unit 2023-08-25 10:21:46 +08:00
Chen Jichang
615222f1c2 feat(MCPWM): Support set interrupt priority(v5.0) 2023-08-24 19:56:42 +08:00
baohongde
d82a2e2eec feat(bt/bluedroid): Add option whether to include device name in extended inquiry response 2023-08-24 19:36:26 +08:00
harshal.patil
771f6b2b7e fix(esp_prov): update devices tuple usage due to API deprecations
- a recent commit fixed the API deprecations,
and the BLEDevice object now needs to be accessed through a tuple.
- thus the changes were made in the code wherein the object was used,
but updating the usage in the condition when de
vname is not None got skipped.
2023-08-24 14:48:39 +05:30
Armando
9d6809bc99 psram: fixed esp32 2t mode fail issue 2023-08-24 15:30:07 +08:00
liuning
484f4cce31 fix(esp_wifi): fix no mac retention at wifi start 2023-08-24 06:36:34 +00:00
Jiang Jiang Jian
61ef154a60 Merge branch 'bugfix/v5.0_ble_issues_bugfix_c2' into 'release/v5.0'
Bugfix/v5.0 ble issues bugfix c2

See merge request espressif/esp-idf!25437
2023-08-24 14:13:26 +08:00
Chen Yudong
a84f601493 ci(fix): example test advanced_https_ota_example_bluedroid_gatts 2023-08-24 12:25:02 +08:00
Alex
97bdb74766 fix(esp-tls): fix pointer cast and condition for CONFIG_ATECC608A_TCUSTOM
Closes https://github.com/espressif/esp-idf/pull/11923
2023-08-24 04:17:56 +00:00
Chen Jichang
2a88fb9e81 feat(MCPWM): Add mcpwm carrier clk source
The MCPWM carrier is part of the operator and can work independently
without the MCPWM timer being enabled. This commit add the MCPWM
carrier clk source.
2023-08-24 11:45:28 +08:00
Armando
d2fb10008e fix(adc): fix adc continuous hal func not in iram when gdma isr iram 2023-08-24 10:50:33 +08:00
Jiang Jiang Jian
056de3bfb5 Merge branch 'contrib/github_pr_12039_v5.0' into 'release/v5.0'
docs(iperf): Update documentation with console interface details(v5.0)

See merge request espressif/esp-idf!25510
2023-08-24 10:18:41 +08:00
Ivan Grokhotkov
f82d97216a sdmmc: keep clock enabled for the duration of ACMD41
SD specification requires that card clock is not disabled until the
card is idle, following ACMD41 command.
2023-08-24 02:16:37 +00:00
Steven Macías
a1920067a2 docs(iperf): Update documentation with console interface details
Closes https://github.com/espressif/esp-idf/pull/12039
2023-08-23 19:46:46 +08:00
Armando
5a90dfb776 adc: fixed legacy adc continuous driver dma descriptor not in internal ram issue 2023-08-23 19:45:56 +08:00
Marius Vikhammer
6bb1e32782 Merge branch 'bugfix/usb/host/urb_compliance_verification_add_v5.0' into 'release/v5.0'
[USB Host] added URB check args and transfer check compliance for regular EP transfer submit (v5.0)

See merge request espressif/esp-idf!25469
2023-08-23 19:09:17 +08:00
Shang Zhou
024c311475 docs: Update CN translation for get-started/index.rst 2023-08-23 11:21:23 +02:00
radim.karnis
4cafb6bfa8 docs(idf-tools): Add uninstallation instructions 2023-08-23 11:21:23 +02:00
KonstantinKondrashov
453e0c784d refactor(esp_timer): Remove duplicate code and move it to a common file 2023-08-23 17:12:45 +08:00
Alan Fisher
41dc26f5bd fix(esp_timer): Fix delay in ISR dispatch callbacks
Set the following alarm before calling the alarm handler.

Closes https://github.com/espressif/esp-idf/pull/11637
Closes https://github.com/espressif/esp-idf/issues/11636
2023-08-23 17:10:45 +08:00
Jiang Jiang Jian
46f5638847 Merge branch 'bugfix/incorrect_time_after_ota_v5.0' into 'release/v5.0'
esp_hw_support: Fix invalid system time if s_esp_rtc_time_us & s_rtc_last_ticks were moved around (v5.0)

See merge request espressif/esp-idf!24410
2023-08-23 16:34:43 +08:00
Jiang Jiang Jian
29cd791cd9 Merge branch 'bugfix/fix_pmf_set_race_v5.0' into 'release/v5.0'
fix(wifi): Prevent PMF config overwritten by tx_cb(v5.0)

See merge request espressif/esp-idf!25416
2023-08-23 14:57:34 +08:00
Marius Vikhammer
b01f0fee50 Merge branch 'bugfix/usb_hcd_interrupt_alloc_error_return_v5.0' into 'release/v5.0'
USB Host: Fix coverity issues with hcd_install() (v5.0)

See merge request espressif/esp-idf!25464
2023-08-23 14:03:58 +08:00
Marius Vikhammer
6c6a55ef91 Merge branch 'bugfix/intr_flags_to_level_v5.0' into 'release/v5.0'
fix(intr_flags_to_level): fix value returned one more than correct value (v5.0)

See merge request espressif/esp-idf!25425
2023-08-23 13:55:30 +08:00
Shreyas Sheth
711279c36f fix(wifi): Prevent PMF config overwritten by tx_cb 2023-08-23 03:44:47 +00:00
Jiang Jiang Jian
186b5b4d55 Merge branch 'bugfix/ignore_eapol_nonkey_v5.0' into 'release/v5.0'
Ignore EAPOL non-key frames in EAPOL txdone callback (Backport v5.0)

See merge request espressif/esp-idf!25455
2023-08-23 10:37:44 +08:00
luomanruo
ee1c3119a7 ble: update btlib to f9db7b90, some esp32c2 issues bugfixed 2023-08-23 10:23:02 +08:00
Roman Leonov
af45a6d40d usb_host: added URB check args and transfer check compliance for regular EP transfer submit 2023-08-22 16:31:37 +08:00
Darian Leung
a4fa0019ec usb_host: Fix coverity issues with hcd_install()
- Use single "err_ret" variable for returning errors
- Simplify bail out procedure by using more labels
2023-08-22 15:31:40 +08:00
Mahavir Jain
8b692dd0ca Merge branch 'contrib/github_pr_11869_v5.0' into 'release/v5.0'
bugfix: avoid warning in espcoredump when log disabled (GitHub PR) (v5.0)

See merge request espressif/esp-idf!25144
2023-08-22 14:51:41 +08:00
Jiang Jiang Jian
d52c033574 Merge branch 'fix/wifi_wps_pbc_overlap_v5.0' into 'release/v5.0'
fix(wpa_supplicant): Add support to detect PBC overlap in wps registrar mode (Backport v5.0)

See merge request espressif/esp-idf!25441
2023-08-22 10:41:01 +08:00
Jiang Jiang Jian
85b69db02d Merge branch 'bugfix/fix_dhcp_server_address_pool_issue_5.0' into 'release/v5.0'
fix(dhcp server): Fix dhcp server address pool issue 5.0

See merge request espressif/esp-idf!25435
2023-08-22 10:38:55 +08:00
Jiang Jiang Jian
80231a8c58 Merge branch 'bugfix/optimize_beacon_rx_v5.0' into 'release/v5.0'
fix(phy): fix some phy issue(v5.0)

See merge request espressif/esp-idf!25436
2023-08-22 10:25:20 +08:00
Nachiket Kukade
9489c588bc fix(supplicant): Ignore EAPOL non-key frames in EAPOL txdone callback 2023-08-21 19:01:45 +05:30
Jiang Jiang Jian
87d429fb57 Merge branch 'bugfix/incr_sdp_max_conns_v5.0' into 'release/v5.0'
fix(bt): Increased SDP maximum connections to avoid connection exhausted (v5.0)

See merge request espressif/esp-idf!25430
2023-08-21 20:20:12 +08:00
Jiang Jiang Jian
478022104a Merge branch 'bugfix/fix_espnow_set_lr_rate_fail_v5.0' into 'release/v5.0'
fix(wifi/vendor): fix some bugs in LR and ESP-NOW (backport v5.0)

See merge request espressif/esp-idf!25414
2023-08-21 15:48:37 +08:00
Sarvesh Bodakhe
8c22b81949 fix(wpa_supplicant): Add support to detect PBC overlap in wps registrar mode 2023-08-21 12:34:17 +05:30
morris
9aefeb6dcb Merge branch 'bugfix/twai_install_returns_error_on_intr_alloc_fail_v5.0' into 'release/v5.0'
TWAI: twai_driver_install() returns error on interrupt allocation failure (GitHub PR) (v5.0)

See merge request espressif/esp-idf!24824
2023-08-21 13:26:43 +08:00
Jiang Jiang Jian
98c2bc85bb Merge branch 'bugfix/neighbour_report_crash_v50' into 'release/v5.0'
Fix crash in RRM neighbour report requests.(v5.0)

See merge request espressif/esp-idf!25408
2023-08-21 12:30:22 +08:00
alanmaxwell
cf4c628ef3 fix(phy): fix some phy issue
1. WIFI RX multipath optimization
2. BLE TX sideband optimization for C3/S3
3. Optimize ht40 tx side band issue
2023-08-21 12:00:38 +08:00
xueyunfei
bc003fc6d4 fix(dhcp server): Fix dhcp server address pool issue 2023-08-21 11:54:30 +08:00
luomanruo
9806a1e7e2 update btlib to f9db7b90, some esp32c2 issues bugfixed 2023-08-21 11:52:56 +08:00
Jin Cheng
849ab66f5f fix(bt): Increased SDP maximum connections to avoid connection exhausted 2023-08-21 11:20:48 +08:00
Jiang Jiang Jian
d811f7c1f0 Merge branch 'docs/fatfs_add_api_reference_v5.0' into 'release/v5.0'
docs(fatfs): Move mentioned APIs to a separate API reference section (v5.0)

See merge request espressif/esp-idf!25350
2023-08-21 10:42:51 +08:00
Jiang Jiang Jian
f9816801a9 Merge branch 'bugfix/secure_ota_without_padding_v5.0' into 'release/v5.0'
fix(secure_ota): secure app verification issue without padding bytes (v5.0)

See merge request espressif/esp-idf!25213
2023-08-21 10:42:05 +08:00
Jiang Jiang Jian
095f1f259b Merge branch 'bugfix/sha_dma_mode_incorrect_result_v5.0' into 'release/v5.0'
fix(sha): DMA mode iteration calculation issue for certain data lengths (v5.0)

See merge request espressif/esp-idf!25128
2023-08-21 10:40:15 +08:00
Jiang Jiang Jian
52e2f9b0ad Merge branch 'refactor/usb_host_usbh_interface_v5.0' into 'release/v5.0'
USB Host: Refactor USBH interface (v5.0)

See merge request espressif/esp-idf!24212
2023-08-21 10:39:28 +08:00
Jiang Jiang Jian
38bd8d3044 Merge branch 'bugfix/esp32s3_usb_otg_console_v5.0' into 'release/v5.0'
system: support USB_OTG CDC console on ESP32-S3 (v5.0)

See merge request espressif/esp-idf!24338
2023-08-21 10:37:29 +08:00
Jiang Jiang Jian
7c91c8f78d Merge branch 'feature/freertos_iram_optimization_5.0' into 'release/v5.0'
freertos: Update linker fragment files to optimise IRAM utilisation (v5.0)

See merge request espressif/esp-idf!24222
2023-08-21 10:33:23 +08:00
Planck (Lu Zeyu)
5a5fae5f1e fix(intr_flags_to_level): fix value returned one more than correct value 2023-08-21 10:09:00 +08:00
Jiang Jiang Jian
4efb3d7a7a Merge branch 'lwip/dhcp_client_fix_forwardportV5.0' into 'release/v5.0'
Fix: Added check to ensure safe restart of dhcp fine timer (v5.0)

See merge request espressif/esp-idf!24707
2023-08-18 17:22:54 +08:00
Jiang Jiang Jian
80d3e7a0b2 Merge branch 'bugfix/temperature_get_value_negative_v5.0' into 'release/v5.0'
bugfix(temperature_sensor): Fix issue that get the value is negative (backport v5.0)

See merge request espressif/esp-idf!25252
2023-08-18 17:21:32 +08:00
zhangyanjiao
8157b2606b fix(wifi/vendor): fix some bugs in LR and ESP-NOW
1. Fix the LR rate set fail for espnow and 80211 tx
2. Fixed the RX error when softAP/station and ESP-NOW both encrypted,
   and the ESP-NOW peer address is equal to the connection peer address
2023-08-18 17:13:47 +08:00
Jiang Jiang Jian
273928f14d Merge branch 'bugfix/netif_default_sta_init_v5.0' into 'release/v5.0'
wifi: Fix default wifi-netif creation to assert if no event loop (v5.0)

See merge request espressif/esp-idf!25345
2023-08-18 16:22:23 +08:00
jgujarathi
673a3b9b80 fix(rrm) : Fix crash in RRM neighbour report requests.
Fix crash in sending new RRM neighbour report requests by removing
the call to neighbour report request timeout callback in case of
already ongoing neighbour report request timer.
2023-08-18 12:53:07 +05:30
Mahavir Jain
958dae0c21 Merge branch 'feature/update_mbedtls_v5.0' into 'release/v5.0'
feat(mbedtls): Update to release/v3.4.1 (v5.0)

See merge request espressif/esp-idf!25395
2023-08-18 15:04:23 +08:00
Jiang Jiang Jian
bb4b3a36bc Merge branch 'bugfix/action_tx_sleep_fix' into 'release/v5.0'
Trigger null data frame TX before going offchannel.(v5.0)

See merge request espressif/esp-idf!25111
2023-08-18 15:02:12 +08:00
Nebojsa Cvetkovic
222190f08d twai: twai_driver_install() returns error on interrupt allocation failure
This commit updates twai_driver_install() so that an error is returned when
esp_intr_alloc() fails, instead of aborting.

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

[darian@espressif.com: Refactored object allocation and free procedures]
[darian@espressif.com: Updated commit message]
Signed-off-by: Darian Leung <darian@espressif.com>
2023-08-18 11:20:13 +08:00
jgujarathi
7e45bf4573 fix(esp_wifi) : Trigger null data frame TX before offchan channel switch
1. Triggers null data frame TX to before channel switch during
   offchannel action frame TX req.
2. revert send wake up and sleep null between scaning
2023-08-17 17:35:10 +05:30
Harshit Malpani
53408df990 feat(mbedtls): Update to release/v3.4.1 2023-08-17 17:31:10 +05:30
Abhik Roy
73d238cdfb fix: Added check to ensure safe restart of dhcp fine timer 2023-08-17 19:04:33 +10:00
Jiang Jiang Jian
92bc2c74fc Merge branch 'bugfix/eapol_txdone_cb_issue_v5.0' into 'release/v5.0'
Fix EAPOL Key TxDone callback implementation (Backport v5.0)

See merge request espressif/esp-idf!25380
2023-08-17 16:37:42 +08:00
Nachiket Kukade
b7a28abd2c fix(wifi): Fix EAPOL Key TxDone callback implementation
Fix issues arising due to not distinguishing between M2 and M4
TxDone during 4-way handshake. Also fix EAPOL frame rate to lowest
possible rate.
2023-08-17 13:58:08 +08:00
Jiang Jiang Jian
58f24412db Merge branch 'bugfix/fix_ftm_error_propagation_v5.0' into 'release/v5.0'
Fix error propagation while initiating FTM (Backport v5.0)

See merge request espressif/esp-idf!25221
2023-08-17 00:42:39 +08:00
Nachiket Kukade
de2df68585 fix(wifi): Fix error propagation while initiating FTM 2023-08-16 12:36:14 +05:30
Roland Dobai
098a0293b1 Merge branch 'fix/v5.0_noload_included_in_flash_size' into 'release/v5.0'
fix: noload being included in ram and flash sizes

See merge request espressif/esp-idf!25339
2023-08-15 21:53:40 +08:00
Jiang Jiang Jian
7a0e39d5f0 Merge branch 'feature/improve_pd_vddsido_help_doc_v5.0' into 'release/v5.0'
docs(esp_hw_support): improve ESP_SLEEP_PSRAM/FLASH_LEAKAGE_WORKAROUND help doc in Kconfig (backport v5.0)

See merge request espressif/esp-idf!25235
2023-08-15 21:04:23 +08:00
David Cermak
fdbb885964 fix(wifi): Fix default wifi-netif creation to assert if no event loop
- Added ESP_ERROR_CHECK() checks to `esp_wifi_set_default_wifi_..._handlers()` calls
- Added ESP_ERROR_CHECH() to `esp_netif_attach_wifi_...()` calls
- Updated documentation to reflect the changes

Closes https://github.com/espressif/esp-idf/issues/11580
2023-08-15 11:06:38 +02:00
Jiang Jiang Jian
cce8fa3781 Merge branch 'bugfix/allow_owe_traffic_after_eapol_v5.0' into 'release/v5.0'
Fix some OWE issues (Backport v5.0)

See merge request espressif/esp-idf!25238
2023-08-15 13:59:42 +08:00
Jiang Jiang Jian
0508821a68 Merge branch 'bugfix/minor_enterprise_fixes_v5.0' into 'release/v5.0'
Drop Eapol msg if EAP success is not processed (Backport v5.0)

See merge request espressif/esp-idf!25067
2023-08-15 13:59:30 +08:00
Jiang Jiang Jian
01871aa91b Merge branch 'backport_v5.0' into 'release/v5.0'
fix(bt): Fix ble periodic advertising data length 0 error(backport v5.0)

See merge request espressif/esp-idf!25007
2023-08-15 11:04:47 +08:00
Jiang Jiang Jian
402a8f90d7 Merge branch 'bugfix/ccmp_decrypt_log_v5.0' into 'release/v5.0'
esp_wifi: Move ccmp mgmt enc/decrypt logs to verbose (v5.0)

See merge request espressif/esp-idf!25169
2023-08-15 11:04:05 +08:00
Shang Zhou
2a1e6f73ee docs: Provide CN translation for wear-levelling.rst 2023-08-14 12:59:10 +02:00
Adam Múdry
556816423c docs(fatfs): Move mentioned APIs to a separate API reference section 2023-08-14 12:59:08 +02:00
Wang Meng Yang
16aef4bbee Merge branch 'bugfix/remove_deprecated_err_code_v5.0' into 'release/v5.0'
fix(bt): Removed an incorrectly defined HCI error code (5.0)

See merge request espressif/esp-idf!25289
2023-08-14 14:56:10 +08:00
Island
9523b57c8d Merge branch 'bugfix/fix_current_issue_after_ble_init_5.0' into 'release/v5.0'
ble: move phy enabled/disable to controller enable/disable

See merge request espressif/esp-idf!25082
2023-08-14 13:11:36 +08:00
Wang Meng Yang
018f493cb3 Merge branch 'bugfix/fix_variable_type_v5.0' into 'release/v5.0'
fix(bt): Fix argument type of ESP_LOGI for spp examples about format error (backport v5.0)

See merge request espressif/esp-idf!25326
2023-08-14 10:32:38 +08:00
Djordje Nedic
3b047f7572 fix: noload being included in ram and flash sizes
This fixes noload sections being included in the total flash and ram
size calculations. These sections represent things that already exist in
the rom or flash in different partitions and are not a part of the app.
2023-08-11 22:32:11 +02:00
chenqingqing
342ae32a23 fix(bt): Fix argument type of ESP_LOGI for spp examples about format error
Closes https://github.com/espressif/esp-idf/pull/11819
2023-08-11 15:01:18 +08:00
Island
1812fdc58a Merge branch 'bluedroid/memory_full_v5.0' into 'release/v5.0'
fix (Bluedroid) : Fix the memory corruption issue (v5.0)

See merge request espressif/esp-idf!25182
2023-08-11 14:49:12 +08:00
satish.solanke
c7cda1c489 Fix the mem corruption 2023-08-10 14:30:32 +00:00
Mahavir Jain
baa90a6177 Merge branch 'feature/support_mbedtls_ecp_fixed_point_configurable_v5.0' into 'release/v5.0'
feat(mbedtls): support ecp fixed-point multiplication configurable (backport v5.0)

See merge request espressif/esp-idf!25287
2023-08-10 11:44:14 +08:00
Rahul Tank
52890aeb22 Merge branch 'bugix/nimble_port_run_crash_v5.0' into 'release/v5.0'
fix(nimble): Added checks before accessing event pointers (v5.0)

See merge request espressif/esp-idf!25267
2023-08-09 22:57:20 +08:00
Wang Meng Yang
e6c1c5cf6d Merge branch 'bugfix/role_switch_enc_mode_lmp_timeout_v5.0' into 'release/v5.0'
fix(bt/controller): Fix disconnection due to lmp messages not being processed by both sides(v5.0)

See merge request espressif/esp-idf!25203
2023-08-09 19:20:02 +08:00
Roland Dobai
5983040644 Merge branch 'fix/bin_names_with_dots_v5.0' into 'release/v5.0'
fix(build_system): Allow dots in the name of an app binary (backport v5.0)

See merge request espressif/esp-idf!25275
2023-08-09 18:35:19 +08:00
Jin Cheng
48a31a8a51 fix(bt): Removed an incorrectly defined HCI error code 2023-08-09 17:32:41 +08:00
Jiang Guang Ming
498d012510 docs: add new mbedtls configuration option in optimize size 2023-08-09 16:54:43 +08:00
Jiang Guang Ming
b554ee475c feat(mbedtls): support ecp fixed-point multiplication configurable 2023-08-09 16:54:28 +08:00
morris
78324fc655 Merge branch 'docs/add_cn_trans_for_contribute/index.rst_backport_v5.0' into 'release/v5.0'
docs: Provide CN translation for contribute/index.rst_backport v5.0

See merge request espressif/esp-idf!25271
2023-08-09 10:53:18 +08:00
Roland Dobai
cf90dc98f5 Merge branch 'bugfix/link_gcov_rtio_v5.0' into 'release/v5.0'
gcov: Fix not linked gcov rtio functions

See merge request espressif/esp-idf!24502
2023-08-09 00:13:13 +08:00
Roland Dobai
2ab2d8dce7 Merge branch 'fix/esp32s3_sysview_trace_corrupt_v5.0' into 'release/v5.0'
fix(app_trace): Fix apptrace data corruption on ESP32-S3 (v5.0)

See merge request espressif/esp-idf!24681
2023-08-09 00:05:20 +08:00
radim.karnis
8abc88dab0 fix(build_system): Allow dots in the name of an app binary 2023-08-08 15:14:35 +02:00
renpeiying
78491181ff docs:Provide CN translation for contribute/index.rst 2023-08-08 19:40:47 +08:00
isha.pardikar@espressif.com
b412b1f2c9 fix(nimble): Added checks before accessing event pointers 2023-08-08 15:47:40 +05:30
Roland Dobai
3c07dc26ed Merge branch 'version_check_fix_dev_5.0' into 'release/v5.0'
fix(tools): check_python_version accept dev releases as requirement (v5.0)

See merge request espressif/esp-idf!25187
2023-08-08 15:20:45 +08:00
cjin
42677134dc ble: move phy enabled/disable to controller enable/disable 2023-08-08 14:10:10 +08:00
Rahul Tank
60acb3239d Merge branch 'feature/add_duplicate_excep_list_vsc_v5.0' into 'release/v5.0'
feat(mesh): Add support for Duplicate Exception list update VSC for Nimble (v5.0)

See merge request espressif/esp-idf!25133
2023-08-08 13:56:35 +08:00
morris
c7a5b3c948 Merge branch 'bugfix/i80_lcd_reset_gpio_config_v5.0' into 'release/v5.0'
fix(i80_lcd): reset cs gpio on exit (v5.0)

See merge request espressif/esp-idf!25244
2023-08-08 10:16:19 +08:00
morris
a55ab7cb5d Merge branch 'feature/usb_host_restrict_ahb_errata_workaround_to_esp32s2_eco0_v5.0' into 'release/v5.0'
USB Host: Restrict ESP32-S2 AHB errata workaround to only ECO0 chips (v5.0)

See merge request espressif/esp-idf!25053
2023-08-08 10:12:42 +08:00
Rahul Tank
b9c34e83f8 feat(mesh): Add support for Duplicate Exception list update VSC for
Nimble
2023-08-07 20:00:14 +05:30
Cao Sen Miao
4f67fe7d3f bugfix(temperature_sensor): Fix issue that get the value is negative 2023-08-07 19:05:59 +08:00
Peter Dragun
5369eea710 fix(tools): check_python_version accept dev releases as requirement 2023-08-07 10:27:04 +02:00
morris
38c8db565f fix(i80_lcd): reset cs gpio on exit 2023-08-07 15:54:21 +08:00
Roland Dobai
6e5bcdfe4c Merge branch 'bugfix/sbom_hash_check_v5.0' into 'release/v5.0'
fix(test_submodules.py): don't rely on submodule init (v5.0)

See merge request espressif/esp-idf!25058
2023-08-07 14:04:04 +08:00
Shyamal Khachane
63b32f4dda fix(esp_wifi): Fix some OWE issues
1. Allow flow of traffic after 4 way handshake is completed
2. Fix beacon timeout issue in transition mode
2023-08-07 11:11:00 +05:30
wuzhenghui
cb139b4386 change(esp_hw_support): improve ESP_SLEEP_PSRAM/FLASH_LEAKAGE_WORKAROUND help doc in Kconfig 2023-08-07 11:35:49 +08:00
Wang Meng Yang
bd23db594b Merge branch 'test/bqb_test_bt_classic_spp_rfcomm_v5.0' into 'release/v5.0'
feat(bt/bqb): Add BQB enabling and rfcomm msc command sending support (backport v5.0)

See merge request espressif/esp-idf!25098
2023-08-07 11:35:28 +08:00
morris
5e933a8fc5 Merge branch 'feature/gptimer_interrupt_priority_v5.0' into 'release/v5.0'
feat(gptimer): support set interrupt priority (v5.0)

See merge request espressif/esp-idf!25200
2023-08-07 11:14:30 +08:00
Michael (XIAO Xufeng)
116f343115 Merge branch 'feat/psram_support_d2wd_single_clk_u4wdh_v5.0' into 'release/v5.0'
spiram: Add support for U4WDH, and fixed D0WD/D2WD cannot share CLK pins (v5.0)

See merge request espressif/esp-idf!25172
2023-08-05 03:28:31 +08:00
Rahul Tank
2f7ccb7e3f Merge branch 'bugfix/handle_NULL_data_periodic_adv_v5.0' into 'release/v5.0'
fix(nimble): Add check to set length only if data is valid in periodic adv (v5.0)

See merge request espressif/esp-idf!25179
2023-08-04 21:16:09 +08:00
morris
2f88ec6824 Merge branch 'docs/add_Chinese_translation_for_api-guides_hardware-abstraction.rst_backport_v5.0' into 'release/v5.0'
docs: provide CN tranlsation for api-guides/hardware-abstraction.rst (backport v5.0)

See merge request espressif/esp-idf!25044
2023-08-04 16:44:32 +08:00
Mahavir Jain
52c9c342bd fix(secure_ota): secure app verification issue without padding bytes
For the following configuration case:

 - CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME
 - CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
 - CONFIG_SECURE_BOOT_ALLOW_SHORT_APP_PARTITION

verification of the application was failing because the externally
padded bytes were not considered in the hash (checksum) process.

This commit fixes the problem by enabling relevant code for secure OTA
without secure boot case.

Closes https://github.com/espressif/esp-idf/issues/11995
2023-08-04 12:25:20 +05:30
morris
f5154364ac feat(gptimer): support set interrupt priority
Related forum post: https://esp32.com/viewtopic.php?f=13&t=34959
2023-08-04 12:55:16 +08:00
xiongweichao
4fd3eb28d6 fix(bt/controller): Fix disconnection due to lmp messages not being processed by both sides
The master sent lmp_enc_mode_req, and the slave sent lmp_switch_req.
However, both sides failed to handle the LMP message, resulting in LMP timeout.
2023-08-04 11:04:46 +08:00
Rahul Tank
f34f4272a0 fix (nimble): Add check to set length only if data is valid in periodic adv 2023-08-03 14:45:47 +05:30
Jiang Jiang Jian
5eddb9e016 Merge branch 'bugfix/esp_netif_ppp_backport_regression' into 'release/v5.0'
esp_netif: Fix regression from 12d09e0b when PPP enabled (v5.0)

See merge request espressif/esp-idf!24920
2023-08-03 16:35:43 +08:00
Michael (XIAO Xufeng)
f168e9f174 spiram: Support configure CLK onto the same pin as flash for ESP32-D0WD
When using PSRAM of rev0, the Flash and PSRAM should use different clock pins. But if using newer PSRAM, this is not necesary. This MR fixed the issue that allocating CLK of PSRAM to the same pin as Flash may crash.
2023-08-03 15:44:59 +08:00
Kapil Gupta
4b29d8340b esp_wifi: Move ccmp mgmt enc/decrypt logs to verbose 2023-08-03 10:58:53 +05:30
Mahavir Jain
ca087a174d Merge branch 'feat/update_cjson_submodule_v5.0' into 'release/v5.0'
feat: Update cJSON version to v1.7.16 (v5.0)

See merge request espressif/esp-idf!25138
2023-08-03 13:10:05 +08:00
Mahavir Jain
6fa9586fd8 Merge branch 'esp_prov/update_deprecation_warnings_v5.0' into 'release/v5.0'
fix(esp_prov): Fixed the deprecation APIs warnings (v5.0)

See merge request espressif/esp-idf!25151
2023-08-03 12:48:57 +08:00
Jiang Jiang Jian
7744f7888c Merge branch 'docs/rewrite_all_low_to_any_low_when_not_esp32_v5.0' into 'release/v5.0'
Docs: rewrite_all_low_to_any_low_when_not_esp32(backport v5.0)

See merge request espressif/esp-idf!24998
2023-08-03 11:39:58 +08:00
Jiang Jiang Jian
cbb4126f71 Merge branch 'bugfix/fix_cache_data_mem_corrupt_after_sleep_v5.0' into 'release/v5.0'
fix(lightsleep): Suspend cache before goto sleep to avoid cache load wrong data (backport v5.0)

See merge request espressif/esp-idf!25089
2023-08-03 11:39:05 +08:00
Roland Dobai
6daffb32b3 Merge branch 'bugfix/ps_export_extra_paths_v5.0' into 'release/v5.0'
tools: export.ps1: define functions for helper python tools (v5.0)

See merge request espressif/esp-idf!25140
2023-08-02 21:17:30 +08:00
Island
6531a415f2 Merge branch 'ble_mesh/esp32c6_BLEQABR23-266v5.0' into 'release/v5.0'
ble mesh: stack: return error when scanning failed to be enabled(v5.0)

See merge request espressif/esp-idf!24774
2023-08-02 21:07:21 +08:00
Wu Meng Shi
e81d8f8329 ble mesh: stack: return error when scanning failed to be enabled(v5.0) 2023-08-02 21:07:20 +08:00
harshal.patil
01a870bd8a fix(esp_prov): Fixed the deprecation APIs warnings
- Updated the extraction of service_uuids using AdvertisementData
- Replaced the `get_services()` API with the `services` property
2023-08-02 17:22:18 +05:30
Christoph Baechler
34efd5af6f bugfix: avoid warning in espcoredump when log disabled 2023-08-02 15:04:34 +05:30
Ivan Grokhotkov
c5d3f350a0 feat(tools): add espsecure.py to the Windows export scripts
This is not needed on Linux/macOS where the path to esptool directory
is added to PATH.
2023-08-02 10:44:15 +02:00
Ivan Grokhotkov
4153351bb8 change(tools): export.ps1: define functions for helper python tools
Follows the approach used in Initialise-Idf.ps1 created by the tools
installer. This is the closes equivalent of "alias" used in export.bat

Closes https://github.com/espressif/esp-idf/issues/9849
2023-08-02 10:44:15 +02:00
Harshit Malpani
c6caa80d4c feat: Update cJSON version to v1.7.16
Changelog: https://github.com/DaveGamble/cJSON/releases/tag/v1.7.16
2023-08-02 13:54:33 +05:30
Lou Tianhao
6a7646e5f4 docs(pm/sleep): rewrite_all_low_to_any_low_when_not_esp32 2023-08-02 15:23:03 +08:00
Mahavir Jain
080214b31a ci(test): add SHA DMA mode test for large data in PSRAM
Covers a test scenario described in following issue:
https://github.com/espressif/esp-idf/issues/11915
2023-08-02 04:48:48 +00:00
Mahavir Jain
66b718ac82 fix(sha): DMA mode iteration calculation issue for certain data lengths
SHA hardware DMA mode calculation had off-by-one error for specific
input lengths. This was causing last chunk of the input data not being
fed to the hardware accelerator and hence resulting in an incorrect
final result.

Closes: https://github.com/espressif/esp-idf/issues/11915
2023-08-02 04:48:48 +00:00
Island
6db7b11d7e Merge branch 'doc/c2_5.0' into 'release/v5.0'
c2 5.0 doc, header files re-organized

See merge request espressif/esp-idf!25112
2023-08-01 23:11:33 +08:00
Rahul Tank
339dff07f3 Merge branch 'bugfix/remove_52_feature_macro' into 'release/v5.0'
fix(nimble): Update Menuconfig option to remove separate 5.2 feature option

See merge request espressif/esp-idf!24954
2023-08-01 21:42:47 +08:00
luomanruo
3fd6493ade c2 5.0 doc, header files re-organized 2023-08-01 14:43:11 +08:00
Rahul Tank
9ec33f6a68 Merge branch 'bugfix/l2cap_coc_more_one_pkt_v5.0' into 'release/v5.0'
NimBLE: Fixed crash when L2CAP COC sends large amount of data. (v5.0)

See merge request espressif/esp-idf!25060
2023-08-01 14:01:21 +08:00
Krzysztof Budzynski
8beb1a2f8d Merge branch 'docs/add_Chinese_translation_for_api-guides/openthread.rst_backport_v5.0' into 'release/v5.0'
provide CN translation for api-guides/openthread.rst (backport v5.0)

See merge request espressif/esp-idf!25047
2023-08-01 13:15:18 +08:00
Cai Xin Ying
8a187da064 provide CN translation for api-guides/openthread.rst (backport v5.0) 2023-08-01 13:15:17 +08:00
wuzhenghui
652bc76354 fix(lightsleep): fix access pu_cfg after sleep wakeup which is linked to flash 2023-07-31 21:36:27 +08:00
wanglai@espressif.com
f5ad81e04a fix(bt/bqb): Modify BQB related configurations 2023-07-31 18:18:29 +08:00
wanglai@espressif.com
543a0aaa25 feat(bt): Add BQB enabling and rfcomm msc command sending support
1: add the CONFIG_BT_BQB_ENABLED for some functions of bqb test.
2: add bqb_rfc_send_msc_cmd function to send rfcomm msc command with
   only address arg input.
2023-07-31 17:58:01 +08:00
Alexey Gerenkov
ea3f68824f fix(app_trace): Fix apptrace data corruption on ESP32-S3
Close https://github.com/espressif/esp-idf/issues/10604
diff --git a/components/soc/esp32s3/include/soc/tracemem_config.h b/components/soc/esp32s3/include/soc/tracemem_config.h
index 55c9b907dd..75fd87419b 100644
--- a/components/soc/esp32s3/include/soc/tracemem_config.h
+++ b/components/soc/esp32s3/include/soc/tracemem_config.h
@@ -10,7 +10,7 @@ extern "C" {
 #endif

 #define TRACEMEM_MUX_BLK0_NUM                   22
-#define TRACEMEM_MUX_BLK1_NUM                   23
+#define TRACEMEM_MUX_BLK1_NUM                   26

 #if (TRACEMEM_MUX_BLK0_NUM < 6) || (TRACEMEM_MUX_BLK0_NUM > 29)
 #error Invalid TRAX block 0 num!
2023-07-31 11:20:44 +03:00
wuzhenghui
2236c2fd34 fix(lightsleep): suspend cache before goto sleep to avoid cache load wrong data after spi io isolation 2023-07-31 15:35:00 +08:00
wanlei
1283619767 cache: refactor cache_utils into cache_hal instade 2023-07-31 15:34:56 +08:00
wanlei
68e07d90ba cache: fix cache suspended/resumed twice on S3 2023-07-31 15:08:18 +08:00
Aditya Patwardhan
049c219c8c Merge branch 'docs/add_protocomm_trans_v5.0' into 'release/v5.0'
Docs: add CN translation for api-reference/provisioning/protocomm.rst (backport v5.0)

See merge request espressif/esp-idf!25035
2023-07-31 15:05:49 +08:00
Cai Xin Ying
082a2972cd Docs: add CN translation for api-reference/provisioning/protocomm.rst (backport v5.0) 2023-07-31 15:05:48 +08:00
isha.pardikar@espressif.com
3fc8422fe6 NimBLE: Fixed crash when L2CAP COC sends large amount of data. 2023-07-28 15:58:48 +05:30
Frantisek Hrbata
951510489d fix(test_submodules.py): don't rely on submodule init
Current version of the test is using "git-submodule foreach", which
requires submodules to be initialized. Non-initialized submodules are
ignored. Our CI is not performing submodule initialization, but instead
it only downloads the submodule content in tools/ci/ci_fetch_submodule.py
from cache and copies it into the submodule path.

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-07-28 12:14:41 +02:00
Shyamal Khachane
29777aaa51 fix(esp_wifi): Drop Eapol msg if EAP success is not processed 2023-07-28 15:26:20 +05:30
Darian Leung
70dde52e91 soc: Move revision MAX/MIN static assert to esp_hw_support
Previously, "soc/chip_revision.h" contained a static assert to check that the
CONFIG_ESP_REV_MIN_FULL <= CONFIG_ESP_REV_MAX_FULL. There are two issues with
this assert:

- Contained in a header file, so it is only compiled if the "chip_revision.h"
is included somewhere
- CONFIG_ESP_REV_MIN_FULL and CONFIG_ESP_REV_MAX_FULL are defined in
"esp_hw_support", which is a G0 component. This creates a reverse dependency
of G0 on G1.

This commit moves the static assert "revision.c" in "esp_hw_support".
2023-07-28 11:36:20 +02:00
Darian Leung
9935a17b1d usb_host: Restrict ESP32-S2 AHB errata workaround to only ECO0 chips 2023-07-28 11:34:54 +02:00
Jiang Jiang Jian
f572b91024 Merge branch 'bugfix/fix_wifi_espnow_coexist_API_doc_v5.0' into 'release/v5.0'
bugfix: fix wifi espnow coexist api doc v5.0

See merge request espressif/esp-idf!25023
2023-07-28 17:19:27 +08:00
Darian Leung
aeef81cde7 usb_host: Run formatting script 2023-07-28 10:39:37 +02:00
Darian Leung
3c7776cd58 usb_host: Fix spelling errors 2023-07-28 10:36:41 +02:00
Darian Leung
f5f3196c01 usb_host: Refactor USBH and USB Host Library calls to HCD
This commit refactors the USBH and the USB Host Library in the following ways:

- USBH now presents an abstraction of an endpoint (via usbh_ep_handle_t)
    - Added separate functions to enqueue/dequeue URBs to a particular endpoint
    - USB Host Library no longer calls HCD API directly. Calls USBH endpoint API
      instead.
- Renamed "notif_cb" to "proc_req_cb" (Processing Request Callback)
    - This is to avoid confusion with FreerTOS task notifications and Host
      Library client event notifications.
    - The processing functions of each layer (i.e., "xxx_process()") request
      calls via the "proc_req_cb"
    - The main handling function (i.e., usb_host_lib_handle_events()) is
      responsible for calling the required "xxx_process()" of each layer
2023-07-28 10:36:41 +02:00
caixinying-git
832f1f9f0b docs: provide CN tranlsation for api-guides/hardware-abstraction.rst 2023-07-28 14:38:20 +08:00
morris
62b7ed25f3 Merge branch 'feature/usb/update_cdc_examples_backport_v5.0' into 'release/v5.0'
usb: Update host CDC examples (backport v5.0)

See merge request espressif/esp-idf!23073
2023-07-28 10:33:59 +08:00
morris
8e5718fd0c Merge branch 'bugfix/bod_intr_v5.0' into 'release/v5.0'
brownout: Disable the hardware BOD when BOD interrupt is enabled(backport v5.0)

See merge request espressif/esp-idf!24693
2023-07-28 10:32:19 +08:00
liuning
57335c9051 fix(esp_wifi): fix ret when setting channel at wifi not started 2023-07-27 19:09:07 +08:00
darshan.dobariya
9fa4ff5300 fix(nimble): Update Menuconfig option to remove separate 5.2 feature option 2023-07-27 14:38:53 +05:30
liuning
332a4d3bef feat(esp_wifi): add ESPNOW power-save example 2023-07-27 14:23:58 +08:00
Jiang Jiang Jian
c920123629 Merge branch 'bugfix/fix_some_wifi_bugs_230726_v5.0' into 'release/v5.0'
fix(wifi): fix some wifi bugs 230726(Backport v5.0)

See merge request espressif/esp-idf!25000
2023-07-27 13:51:21 +08:00
Roland Dobai
35c484324f Merge branch 'bugfix/debug_ext_ctrl_c_v5.0' into 'release/v5.0'
tools: fix waiting on gdb process when interrupted with CTRL+C (v5.0)

See merge request espressif/esp-idf!24934
2023-07-26 21:09:52 +08:00
muhaidong
8b59c17ef0 fix(wifi): fix some wifi bugs 230726
1. process association request verify ssid
2. fix ftm timer macro issue
3. lower the dhcp discover and request retry backoff time
2023-07-26 16:52:13 +08:00
zhanghaipeng
cb85b7b7a7 fix(bt): Fix bug with address resolution enabling during non-connected activities 2023-07-26 16:39:06 +08:00
zhanghaipeng
aff7ff1a9f docs(bt): Organize header files for esp32c3 and esp32s3 2023-07-26 16:39:06 +08:00
zhanghaipeng
0e9974a918 fix(bt): Fix ble periodic advertising data length 0 error
- Fixed issues about data length 0 when set ext adv data,ext scan rsp data and periodic adv data
2023-07-26 16:39:06 +08:00
muhaidong
210ffa0475 fix(wifi): missed annotate ld function from txop fix 2023-07-26 11:54:10 +08:00
Jiang Jiang Jian
b4b4306677 Merge branch 'bugfix/sae_and_nvs_fixes_v5.0' into 'release/v5.0'
Fix SAE and SAE related NVS issues (Backport v5.0)

See merge request espressif/esp-idf!24956
2023-07-26 11:06:29 +08:00
Jiang Jiang Jian
ba0ab6687d Merge branch 'change/rewrite_all_low_to_any_low_when_not_esp32' into 'release/v5.0'
Change: rewrite EXT1 triggle mode all_low to any_low when not esp32(backport v5.0)

See merge request espressif/esp-idf!24988
2023-07-26 10:17:43 +08:00
Lou Tianhao
3727d56c82 Change: rewrite EXT1 triggle mode all_low to any_low when not esp32 2023-07-25 17:53:33 +08:00
Shyamal Khachane
585cbec17b fix(wifi): Fix SAE and SAE related NVS issues
1. Discard commit frame received at confirmed state in SAE STA
2. Bugfix NVS get values for sae pwe
3. Bugfix memory leak caused by assoc retry timer and assoc IE
4. Bugfix store nvs authmode security values
2023-07-25 13:53:42 +05:30
morris
c36f5fb77a Merge branch 'contrib/github_pr_11810_v5.0' into 'release/v5.0'
ledc.c: Fix frequency calculation. (GitHub PR) (v5.0)

See merge request espressif/esp-idf!24698
2023-07-25 16:15:05 +08:00
morris
3fba3425f1 Merge branch 'bugfix/fix_spi_flash_api_concurrency_issue_v5.0' into 'release/v5.0'
spi_flash: fix concurrency issue when concurrently calling esp_flash apis (v5.0)

See merge request espressif/esp-idf!24512
2023-07-25 11:04:57 +08:00
morris
598c1fa7e2 Merge branch 'bugfix/fix_gpio_driver_calloc_v5.0' into 'release/v5.0'
fix(gpio): fix potential crash when processing gpio isr (v5.0)

See merge request espressif/esp-idf!24902
2023-07-25 11:03:09 +08:00
Roland Dobai
5b440d1bd1 Merge branch 'ci/update_pre_commit_copyright_checker_v5.0' into 'release/v5.0'
ci(pre-commit): Use the newest copyright checker (v5.0)

See merge request espressif/esp-idf!24908
2023-07-24 21:08:25 +08:00
Mahavir Jain
22d34feac4 Merge branch 'ci/fix_failures_in_esp_http_client_example_v5.0' into 'release/v5.0'
CI: fix esp_http_client example failures in CI. Timeout was observed in the... (v5.0)

See merge request espressif/esp-idf!24950
2023-07-24 17:17:23 +08:00
Jiang Jiang Jian
000450504d Merge branch 'bugfix/cache_writeback_bug_v5.0' into 'release/v5.0'
esp_rom: patch Cache_WriteBack_Addr (backport v5.0)

See merge request espressif/esp-idf!24940
2023-07-24 15:41:32 +08:00
Fu Hanxi
b4ee8b573a ci: requires serial processing for check-all-apps-readmes 2023-07-24 15:28:18 +08:00
Armando
38de42bd26 feat(spi_flash): add common test_flash_utils component 2023-07-24 15:28:18 +08:00
Armando
403cdb03ec spi_flash: rename spi_flash_os_func_app: spi_start, spi_end
spi_start -> s_acquire_spi_bus_lock
spi_end -> s_release_spi_bus_lock
2023-07-24 15:28:18 +08:00
Armando
c56ff93007 spiflash: added esp_flash API concurrency pressure test 2023-07-24 15:28:18 +08:00
Armando
5a59c50951 spi_flash: fix concurrency issue when calling esp_flash apis under xip_psram or auto_suspen 2023-07-24 15:28:18 +08:00
Armando
0c2cd2dfa6 spiflash: fix not calling on_spi_acquired when CONFIG_SPI_FLASH_SHARE_SPI1_BUS issue 2023-07-24 15:28:18 +08:00
Rahul Tank
5fb0d557a4 Merge branch 'bugfix/handle_conn_type_and_array_reset_v5.0' into 'release/v5.0'
fix(nimble): Update connection type in reattempt connection code (v5.0)

See merge request espressif/esp-idf!24916
2023-07-24 12:21:45 +08:00
Rahul Tank
6211d5a461 Merge branch 'doc/update_kconfig_example_ext_adv_usage_v5.0' into 'release/v5.0'
doc(nimble): Update Kconfig help section for Example Ext Adv (v5.0)

See merge request espressif/esp-idf!24914
2023-07-24 12:08:32 +08:00
gaoxiaojie
805f3bc557 fix(cache): add lock to protect cache sync operation 2023-07-24 10:51:23 +08:00
Jiang Jiang Jian
d8f9786beb Merge branch 'bugfix/fix_ftm_dist_est_v5.0' into 'release/v5.0'
Enable FTM for ESP32C2, fix other FTM issues (Backport v5.0)

See merge request espressif/esp-idf!24921
2023-07-24 10:37:31 +08:00
Harshit Malpani
88a815c84e fix(ci): update HTTP client example tests runner assignment
HTTP client example tests now connect with locally hosted httpbin service
for more stable results across multiple runs
2023-07-21 17:15:35 +05:30
Nachiket Kukade
0148546df3 fix(esp_wifi): Enable FTM for ESP32C2, fix other FTM issues
Enable FTM for ESP32C2 and update wifi libs with below fixes -

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

Co-authored-by: Sarvesh Bodakhe <sarvesh.bodakhe@espressif.com>
2023-07-21 16:30:47 +05:30
Jiang Jiang Jian
264c807f3a Merge branch 'bugfix/fix_some_wifi_bugs_230720_v5.0' into 'release/v5.0'
fix(wifi): fix some wifi bugs 230720 (backport v5.0)

See merge request espressif/esp-idf!24912
2023-07-21 18:59:42 +08:00
Harshit Malpani
8c6dcfa376 CI: fix esp_http_client example failures in CI. Timeout was observed in the logs while performing HTTP requests. Changing the endpoint when testing in CI 2023-07-21 15:24:22 +05:30
gaoxiaojie
4a2f38930b fix(esp32s3): patch Cache_WriteBack_Addr api
Need to ensure that the cacheline being written back will not be
accessed during the write back process.
2023-07-21 11:46:45 +08:00
Mahavir Jain
bb2e88b27f Merge branch 'ci/fix_build_examples_v5.0' into 'release/v5.0'
ci(esp_prov): remove import future usage

See merge request espressif/esp-idf!24924
2023-07-20 23:23:31 +08:00
Frantisek Hrbata
6f8c62b205 fix(debug_ext): CTRL+C handling while waiting on gdb process
idf.py spawns gdb process within a thread and uses Thread.join() to wait
for the gdb process to finish. As CTRL+C(SIGINT) is used by gdb to interrupt the
running program, we catch the SIGINT while waiting on the gdb to finish,
and try Thread.join() again.

With cpython's commit

	commit a22be4943c119fecf5433d999227ff78fc2e5741
	Author: Victor Stinner <vstinner@python.org>
	Date:   Mon Sep 27 14:20:31 2021 +0200

	    bpo-45274: Fix Thread._wait_for_tstate_lock() race condition (GH-28532)

this logic doesn't work anymore, because cpython internally marks the
thread as stopped when join() is interrupted with an exception. IMHO
this is broken in cpython and there is a bug report about this
https://github.com/python/cpython/issues/90882. Problem is that
waiting on a thread to finish is based on acquiring a lock. Meaning
join() is waiting on _tstate_lock. If this wait is interrupted, the
above referenced commit adds a logic that checks if the lock is help,
meaning the thread is done and marks the thread as stopped. But there is
no way to tell if the lock was acquired by us running join() or if it's
held by someone else e.g. still by the thread bootstrap code. Meaning
the thread is still running.

I may be missing something, but I don't see any reason why to spawn gdb
process within a thread. This change removes the thread and spawns gdb
directly. Instead waiting on a thread, we wait on the process to finish,
replacing join() with wait() and avoiding this problem.

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-07-20 17:12:32 +02:00
Chen Yudong
d1da86465b ci(esp_prov): remove import future usage 2023-07-20 16:00:21 +08:00
David Cermak
cc5d5c8d79 esp_netif: Fix regression from 12d09e0b when PPP enabled 2023-07-20 07:18:13 +02:00
Rahul Tank
4d301ef3a2 fix(nimble): Update connection type in reattempt connection code
Added change to set connection type correctly and clear array when it is
    full in reattempt connection flow
2023-07-20 09:37:34 +05:30
Rahul Tank
8e06eb490b docs(nimble): Update Kconfig help section for Example Ext Adv 2023-07-20 09:31:51 +05:30
zhangyanjiao
368dca0d84 fix(wifi): Add bugfixes and improvements
1. Update wifi security mode
2. Fix association refused temporarily comeback time set to zero issue
3. Vnd ie callback can be set to null
2023-07-20 11:39:41 +08:00
Li Shuai
0b42747d0a Wi-Fi/power save: fix the some mac issues of wifi power save
Some APs are configured to hide the SSID, the length field of the SSID element
in the Beacon frame is set to 0. This can cause incorrect parsing of the Beacon
by the Wi-Fi MAC hardware.

Some APs send two beacon frames with different BSSID in a TBTT cycle. After
correctly parsing the beacon of the associated AP, it continue to receive the
other beacon frame, which will cause the MAC to remain in a wait RX/TXING
state, blocking the Wi-Fi go to sleep.
2023-07-20 11:39:41 +08:00
Rotzbua
881f3fc54d doc: remove WEP as security mode
Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/10015
2023-07-20 11:22:23 +08:00
david zuhn
b2134caf0d spelling correction in documentation
Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/9721
2023-07-20 11:22:09 +08:00
zhangyanjiao
7dddb468f4 feat(wifi): Add API to get RSSI info after station connects to AP
- Add esp_wifi_sta_get_rssi() function to retrieve RSSI info after station connects to AP
2023-07-20 11:21:38 +08:00
morris
acec0ef0ce Merge branch 'contrib/github_pr_11878_v5.0' into 'release/v5.0'
feat(mcpwm): Allow for pull up/down to be configurable on generators (GitHub PR) (v5.0)

See merge request espressif/esp-idf!24894
2023-07-20 11:19:30 +08:00
Roland Dobai
3838862709 ci(pre-commit): Use the newest copyright checker 2023-07-19 15:04:02 +02:00
Song Ruo Jing
1da5dbf899 fix(gpio): fix potential crash when processing gpio isr
If CONFIG_SPIRAM_USE_MALLOC is enabled, and cache is disabled when GPIO ISR is triggered,
it would lead to Guru Meditation Error due to "Cache disabled but cached memory region accessed".

Closes https://github.com/espressif/esp-idf/issues/11876
2023-07-19 20:01:18 +08:00
Jiang Jiang Jian
55976a5bd7 Merge branch 'bugfix/fix_some_bluedroid_bugs_v5.0' into 'release/v5.0'
Fixed some bluedroid bugs (backport v5.0)

See merge request espressif/esp-idf!24861
2023-07-19 17:07:33 +08:00
morris
a87a04992e feat(mcpwm): support open drain output for generator IO
Closes https://github.com/espressif/esp-idf/issues/11877
2023-07-19 16:13:12 +08:00
Anne Brondijk
bf5c09aacd feat(mcpwm): Allow for pull up/down to be configurable on generators 2023-07-19 16:13:11 +08:00
Rahul Tank
baecf8d44f Merge branch 'feature/services_health_therm_v5.0' into 'release/v5.0'
NimBLE: Added health thermometer profile (v5.0)

See merge request espressif/esp-idf!24834
2023-07-19 15:13:20 +08:00
Ivan Grokhotkov
70faa798e7 ci: add build test for CONFIG_ESP_CONSOLE_USB_CDC_SUPPORT_ETS_PRINTF 2023-07-18 18:15:37 +02:00
Ivan Grokhotkov
3fca37dbcf examples: re-enable system/console/advanced_usb_cdc for ESP32-S3
Closes https://github.com/espressif/esp-idf/issues/9364
2023-07-18 18:15:37 +02:00
Ivan Grokhotkov
28e6b3565f esp_system: usb_console support for ESP32-S3
Closes https://github.com/espressif/esp-idf/issues/8879
Closes https://github.com/espressif/esp-idf/issues/8738
2023-07-18 18:15:37 +02:00
Ivan Grokhotkov
ce8f2dc894 esp_rom: convert USB related headers to SPDX, update COPYRIGHTS.rst 2023-07-18 18:15:37 +02:00
Ivan Grokhotkov
568e5537b0 esp_rom: implement usb deinit functions added in S3 ROM for S2
This cleans up usb_console.c and prepares it for S3 support.
2023-07-18 18:15:37 +02:00
Ivan Grokhotkov
82e8d78b3b esp_rom: add USB_OTG "port" number for S2 and S3 2023-07-18 18:15:37 +02:00
Ivan Grokhotkov
36bc9ab30c esp_rom: sync changes for ESP32-S3 USB related files, minor fix for S2
Used esp-rom tag esp32s3-20210327 and did manual cleanup.
Rename s_usb_osglue to rom_usb_osglue like it was done for esp32s2.
Some comments in esp32s2 headers are synced from esp32s3.
2023-07-18 18:15:03 +02:00
Ivan Grokhotkov
6f14f5218d console: minor fixes
- wrong comment
- duplicated setvbuf
2023-07-18 18:15:03 +02:00
Jiang Jiang Jian
f2973dc4c6 Merge branch 'bugfix/offchan_action_frame_tx_v50' into 'release/v5.0'
Add check to ensure memory allocation for action frame.

See merge request espressif/esp-idf!24611
2023-07-18 21:12:31 +08:00
chenjianhua
902c6973f1 fix(bt/bluedroid): Fix memory leak of gattc cache upon disconnection 2023-07-18 11:44:43 +08:00
chenjianhua
7ca9ca6f90 bluedroid: fixed compile warning when optimize for performance 2023-07-18 11:41:44 +08:00
Jiang Jiang Jian
621589aeb6 Merge branch 'docs/update_bluetooth_power_save_readme_v5.0' into 'release/v5.0'
Docs: update bluetooth power save readme(v5.0)

See merge request espressif/esp-idf!24845
2023-07-18 11:01:22 +08:00
Jiang Jiang Jian
1853b46a37 Merge branch 'backport_v5.0' into 'release/v5.0'
fix(bt): Fix the issue of not printing the Bluetooth MAC address for ESP32(backport v5.0)

See merge request espressif/esp-idf!24779
2023-07-18 10:52:39 +08:00
Mahavir Jain
f1d060a511 Merge branch 'bugfix/mbedtls_sha_test_fail_when_run_twice_v5.0' into 'release/v5.0'
fix(mbedtls): sha test will fail when run twice (backport v5.0)

See merge request espressif/esp-idf!24828
2023-07-17 20:07:34 +08:00
xiongweichao
09854f0e89 docs(bt/example): Updated bluetooth power save readme 2023-07-17 17:06:00 +08:00
xiongweichao
b013faa84b docs(sleep_modes): Updated Wi-Fi/Bluetooth and Sleep Modes in docs 2023-07-17 17:04:53 +08:00
Mahavir Jain
1315845d75 Merge branch 'fix/mbedtls_internal_shaX_process_api_port_v5.0' into 'release/v5.0'
fix(mbedtls): Fix the port for mbedtls_internal_shaX_process api (v5.0)

See merge request espressif/esp-idf!24810
2023-07-17 17:00:44 +08:00
isha.pardikar@espressif.com
642aba7c03 feat (Nimble): Added Health Thermometer as a service 2023-07-17 14:20:05 +05:30
isha.pardikar@espressif.com
71f5dc4973 NimBLE: Added health thermometer profile 2023-07-17 11:24:04 +05:30
jgujarathi
5037c2ec02 fix(action_tx) : Add check to ensure memory allocation for action frame.
Add check to ensure memory allocation in tx buffers for off channel action frame.
Prints error message in case of allocation failure in esp_wifi_action_tx_req().
2023-07-17 10:57:03 +05:30
Mahavir Jain
3fc6eb9000 Merge branch 'fix/esp_aes_return_values_v5.0' into 'release/v5.0'
fix(mbedtls): fix return values of esp-aes APIs (v5.0)

See merge request espressif/esp-idf!24805
2023-07-17 12:35:24 +08:00
Mahavir Jain
befe69d152 Merge branch 'fix/esp_ptr_check_sign_compare_v5.0' into 'release/v5.0'
fix(esp_hw_support): Fix different signed comparison in `esp_ptr_in_drom` (v5.0)

See merge request espressif/esp-idf!24799
2023-07-17 12:34:22 +08:00
Jiang Jiang Jian
7f2c879d71 Merge branch 'bugfix/split_scan_tx_v50' into 'release/v5.0'
fix(esp_wifi) : Fix collection of issues in sta roam and scan.

See merge request espressif/esp-idf!24576
2023-07-17 11:17:57 +08:00
Jiang Guang Ming
f418a998a9 fix(mbedtls): sha test will fail when run twice 2023-07-17 10:54:32 +08:00
Jiang Jiang Jian
05d05f3c51 Merge branch 'bugfix/btm_scan_done_crash_v5.0' into 'release/v5.0'
wpa_supplicant : Fix race condition during BTM Request.

See merge request espressif/esp-idf!24398
2023-07-17 10:35:32 +08:00
Jiang Jiang Jian
bb89a5769b Merge branch 'bugfix/multiple_btm_rrm_task_v50' into 'release/v5.0'
Fix race conditions in btm task deletion(v5.0)

See merge request espressif/esp-idf!24766
2023-07-17 10:30:15 +08:00
Jiang Jiang Jian
3d015a44d2 Merge branch 'bugfix/sae_crypto_optimization_esp32_v5.0' into 'release/v5.0'
esp_wifi: Optimize sae crypto operations for esp32 (v5.0)

See merge request espressif/esp-idf!24761
2023-07-17 10:29:49 +08:00
Jiang Jiang Jian
086412cb56 Merge branch 'backport/eth-start-spi-initialize-failure-v5.0' into 'release/v5.0'
Fix eth_start initializes spi bus with SPI_DMA_CH_AUTO (backport v5.0)

See merge request espressif/esp-idf!23816
2023-07-17 10:29:27 +08:00
Jiang Jiang Jian
87f2e7e415 Merge branch 'bugfix/concurrency_while_eloop_register_v5.0' into 'release/v5.0'
esp_wifi: Bugfix concurrency observed while doing eloop register (v5.0)

See merge request espressif/esp-idf!24571
2023-07-17 10:28:36 +08:00
Jiang Jiang Jian
b0b3e0dc70 Merge branch 'bugfix/esp_netif_recieve_returns_v5.0' into 'release/v5.0'
esp_netif: Report error if esp_netif_receive() fails (v5.0)

See merge request espressif/esp-idf!24656
2023-07-17 10:28:06 +08:00
Jiang Jiang Jian
4c7e65238f Merge branch 'bugfix/lwip_dhcps_hook_types_v5.0' into 'release/v5.0'
lwip: Fix incorrect invocation of the hook `LWIP_HOOK_DHCPS_POST_APPEND_OPTS` (v5.0)

See merge request espressif/esp-idf!24659
2023-07-17 10:27:06 +08:00
Marius Vikhammer
cf83b324d3 Merge branch 'bugfix/ringbuf_static_object_size_v5.0' into 'release/v5.0'
Ringbuf: Fix ordering of StaticRingbuffer_t (v5.0)

See merge request espressif/esp-idf!24594
2023-07-17 10:12:02 +08:00
harshal.patil
f1ee3e41aa refactor(mbedtls): refactored the return values check in some esp-aes APIs 2023-07-14 21:00:16 +05:30
Roland Dobai
8df440175a Merge branch 'pkg_res_deprecation_5.0' into 'release/v5.0'
fix(tools/python_dep_check): replace deprecated pkg_resources with importlib (backport v5.0)

See merge request espressif/esp-idf!24819
2023-07-14 23:13:52 +08:00
Rahul Tank
c68e7eab06 Merge branch 'bugfix/fix_config_option_v5.0' into 'release/v5.0'
Nimble: Fixed setting macro values based on selected configuration (v5.0)

See merge request espressif/esp-idf!24138
2023-07-14 21:23:51 +08:00
Peter Dragun
0055426b3f fix(tools/python_dep_check): replace deprecated pkg_resources with importlib
Closes https://github.com/espressif/esp-idf/issues/11712
2023-07-14 14:56:30 +02:00
Island
168f2adc28 Merge branch 'update/ble_mesh_debug_log_level_update_v5.0' into 'release/v5.0'
update(ble_mesh: stack): Update provisioning bearer check debug log to INFO level (v5.0)

See merge request espressif/esp-idf!24770
2023-07-14 16:56:11 +08:00
harshal.patil
3a73b1bf9b fix(mbedtls): Fix the port for the mbedtls_internal_shaX_process API
- Also added the fix to update intermediate SHA state in the mbedtls_shaX_update API
2023-07-14 14:18:10 +05:30
harshal.patil
400e220f06 fix(mbedtls): Fixed the transmission of return values of the esp-aes APIs
- Earlier, some intermediate return values were not stored and returned,
thus incorrect return values used to get transmitted to the upper layer of APIs.

- Also, zeroised the output buffer in case of error condition.
2023-07-14 13:41:13 +05:30
Rahul Tank
bc2772819d fix (nimble): Fixed setting macro values based on selected configuration 2023-07-14 11:51:14 +05:30
Rahul Tank
b541a23499 Merge branch 'bugfix/fix_pcl_enh_rsp_v5.0' into 'release/v5.0'
Nimble: Removed the extra status field in the enh read transmit power level (v5.0)

See merge request espressif/esp-idf!23884
2023-07-14 13:34:36 +08:00
Laukik Hase
38c0475616 fix(esp_hw_support): Fix different signed comparison in esp_ptr_in_drom
- Closes https://github.com/espressif/esp-idf/issues/11653
- Closes https://github.com/espressif/esp-idf/issues/11865
2023-07-14 10:52:32 +05:30
Aditya Patwardhan
18df8caaa9 Merge branch 'fix/mpi_incorrect_assert_v5.0' into 'release/v5.0'
fix(mbedtls): Fix incorrect assert for H/W MPI operations (v5.0)

See merge request espressif/esp-idf!24785
2023-07-14 12:43:10 +08:00
Marius Vikhammer
d503e1740f Merge branch 'contrib/github_pr_11652_v5.0' into 'release/v5.0'
Fix ULP FSM register macros with addr[9:0] > 0xFF (GitHub PR) (v5.0)

See merge request espressif/esp-idf!24269
2023-07-14 10:06:30 +08:00
morris
9f2fe912e4 Merge branch 'bugfix/fix_s3_adc1_wrong_clk_div_v5.0' into 'release/v5.0'
adc: fix adc oneshot mode clk div issue on esp32, esp32s2 and esp32s3 (v5.0)

See merge request espressif/esp-idf!24744
2023-07-13 21:41:16 +08:00
Laukik Hase
4da3e20855 fix(mbedtls): Fix incorrect assert for H/W MPI operations
- Closes https://github.com/espressif/esp-idf/issues/11850
2023-07-13 16:24:57 +05:30
Krzysztof Budzynski
0fbddcb991 Merge branch 'docs/add_provisioning_CN_trans_backport_v5.0' into 'release/v5.0'
Docs: add CN translation for api-reference/provisioning/provisioning.rst (backport v5.0)

See merge request espressif/esp-idf!24485
2023-07-13 18:33:38 +08:00
Cai Xin Ying
0e986431bc Docs: add CN translation for api-reference/provisioning/provisioning.rst (backport v5.0) 2023-07-13 18:33:38 +08:00
KonstantinKondrashov
031af815da esp_hw_support: Fix invalid system time if s_esp_rtc_time_us & s_rtc_last_ticks were moved around
The commit fixes the case:
If variables in RTC RAM have been moved around by the linker,
they will be filled with garbage data. Any reset other than OTA would work fine
because the variables would still be initialized from the initial bootup.

So now system time will be valid even after OTA.

Closes https://github.com/espressif/esp-idf/issues/9448
2023-07-13 18:30:26 +08:00
zhanghaipeng
e8810e86fc fix(bt): Fix the issue of not printing the Bluetooth MAC address for ESP32
- Add a log statement to print the Bluetooth MAC address
2023-07-13 16:42:48 +08:00
zhanghaipeng
cddca1adf4 fix(bt): Fix ble advertising data length 0 error
- Fixed an issue where the BLE advertisement length of 0 was causing an error
2023-07-13 16:42:48 +08:00
Liu Linyan
c6d190e568 update(ble_mesh: stack): Update provisioning bearer check debug log to INFO level 2023-07-13 14:39:01 +08:00
Rahul Tank
aa4635e52f Nimble: Removed the extra status field in the enh read transmit power level 2023-07-13 10:48:31 +05:30
Rahul Tank
e71bab242e Merge branch 'bugfix/handle_correct_return_value_v5.0' into 'release/v5.0'
Nimble: Corrected conditional check during connection to handle failure case (v5.0)

See merge request espressif/esp-idf!24645
2023-07-13 13:12:04 +08:00
Rahul Tank
ff9b9583ab Merge branch 'bugfix/fix_exception_in_wifi_prov_v5.0' into 'release/v5.0'
Nimble: Increase the number of semaphore count for allocation (v5.0)

See merge request espressif/esp-idf!24470
2023-07-13 13:00:35 +08:00
Kapil Gupta
d2f2b952bc Fix(esp_wifi): Fix race conditions in btm task deletion 2023-07-13 10:27:25 +05:30
Rahul Tank
35b6a541de Merge branch 'docs/walkthrough_for_multi_adv_examples_v5.0' into 'release/v5.0'
Nimble: Added Example Walkthrough tutorial for Multi Adv example (v5.0)

See merge request espressif/esp-idf!24510
2023-07-13 12:51:13 +08:00
Rahul Tank
f833ea4c2e Merge branch 'feature/walkthrough_for_htp_examples_v5.0' into 'release/v5.0'
Nimble: Added Example Walkthrough tutorial for HTP example in nimble (v5.0)

See merge request espressif/esp-idf!24535
2023-07-13 12:50:48 +08:00
Kapil Gupta
4ff52a94f9 esp_wifi: Optimize sae crypto operations for esp32 2023-07-13 09:47:22 +05:30
Marius Vikhammer
03a4137fd4 Merge branch 'ci/fix_efuse_tests' into 'release/v5.0'
efuse: Do not load real efuses before some test (some chips have burned efuse blocks)

See merge request espressif/esp-idf!24149
2023-07-13 10:11:32 +08:00
Jiang Jiang Jian
7c149c9fcc Merge branch 'feature/update_avrcp_v1.5_v5.0' into 'release/v5.0'
change(bt/Bluedroid): Update AVRCP version to 1.5(v5.0)

See merge request espressif/esp-idf!24583
2023-07-13 09:48:16 +08:00
Jiang Jiang Jian
1a0dc04ae1 Merge branch 'bugfix/wps_deauth_sent_before_eap_failure_v5.0' into 'release/v5.0'
Fix for sending deauth before Eap-Failure in WPS (v5.0)

See merge request espressif/esp-idf!24367
2023-07-13 07:54:24 +08:00
Jiang Jiang Jian
9b82d9731a Merge branch 'bugfix/systick_loop_v5.0' into 'release/v5.0'
freertos: Fix Systick stuck when systimer was not reset (v5.0)

See merge request espressif/esp-idf!24323
2023-07-13 07:53:16 +08:00
Jiang Jiang Jian
a08413f3a8 Merge branch 'bugfix/btm_scan_done_crash_v50' into 'release/v5.0'
wpa_supplicant : Fix occasional crash during btm roam.

See merge request espressif/esp-idf!24732
2023-07-13 07:52:31 +08:00
Jiang Jiang Jian
d3031ddddc Merge branch 'bugfix/fix_some_bt_controller_bug_v5.0' into 'release/v5.0'
component_bt:Fixed some bluetooth bugs(v5.0)

See merge request espressif/esp-idf!24711
2023-07-13 07:52:21 +08:00
Rahul Tank
ae1de35817 Nimble: Corrected conditional check during connection to handle failure case 2023-07-12 19:04:34 +05:30
Rahul Tank
fdfe75a1fd Nimble: Increase the number of semaphore count to allow more semaphore
allocation

       Also updated the return value check for sem / mutex init to catch
allocation failure
2023-07-12 15:30:21 +05:30
Armando
abd0fca51a fix(adc): fixed esp32, esp32s2,esp32s3 adc oneshot mode clk div issue 2023-07-12 17:19:00 +08:00
Zim Kalinowski
ba6e04dff6 Merge branch 'bugfix/fix-esp-even-compile-error-v5.0' into 'release/v5.0'
esp_event: fix build error related to format (v5.0)

See merge request espressif/esp-idf!24667
2023-07-12 16:48:16 +08:00
Zim Kalinowski
ed93de6efa Merge branch 'bugfix/saving-esp-idf-env-as-utf8-v5.0' into 'release/v5.0'
build system: fix init.bat crash in windows when folder contains unicode characters (v5.0)

See merge request espressif/esp-idf!24669
2023-07-12 16:47:27 +08:00
xieqinan
575b540b8b comm_components: eth_start initializes spi bus with SPI_DMA_CH_AUTO
Close https://github.com/espressif/esp-idf/issues/11083
2023-07-12 14:26:25 +08:00
aditi_lonkar
16d7ce0843 Fix for sending deauth before Eap-Failure in WPS 2023-07-12 05:34:46 +00:00
jgujarathi
57b365377f fix(wpa_supplicant) : Fix occasional crash during btm roam.
Fix crash due to premature deallocation of neighbour report elements
by scan_done. Post event to btm_rrm_t task to handle scan_done serially
rather than when btm_rrm_t task is processing btm request rx frame.
2023-07-12 10:37:42 +05:30
Marius Vikhammer
1f1b10aa26 Merge branch 'bugfix/esp_event_err_docs_v5.0' into 'release/v5.0'
fix(core-system/esp event): Fixed missing error return  documentation for... (v5.0)

See merge request espressif/esp-idf!24574
2023-07-12 11:21:22 +08:00
Jiang Jiang Jian
2173ff9cc0 Merge branch 'bugfix/resume_ext_scan_pti_in_time_v5.0' into 'release/v5.0'
bt: fix the issue that BLE scan uses high priority incorrectly and causes Wi-Fi unable to work normally on ESP32-C3 and ESP32-S3(backport v5.0)

See merge request espressif/esp-idf!24404
2023-07-12 10:51:54 +08:00
morris
f7b97b53c6 Merge branch 'bugfix/fix_i2s_ll_cpp_compilation_failure_v5.0' into 'release/v5.0'
i2s: fixed i2s_ll compiling failure under C++ environment (v5.0)

See merge request espressif/esp-idf!24402
2023-07-12 10:08:23 +08:00
morris
9ea1265987 Merge branch 'doc/updata_adc_migration_guide_v5.0' into 'release/v5.0'
migration_guide: update adc calibration api part (v5.0)

See merge request espressif/esp-idf!24258
2023-07-12 10:08:04 +08:00
morris
1f919ca454 Merge branch 'docs/add_a_note_about_RMT_preipheral_in_the_programming_guide_v5.0' into 'release/v5.0'
docs(rmt): add a note about binding channels to the same GPIO (v5.0)

See merge request espressif/esp-idf!24717
2023-07-12 09:59:59 +08:00
Rahul Tank
82ce7dc165 Merge branch 'feature/expose_addr_resolv_out_stack_v5.0' into 'release/v5.0'
Nimble:Added change to expose addr resolution API outside stack_v5.0

See merge request espressif/esp-idf!23247
2023-07-12 04:21:32 +08:00
Roland Dobai
7296cc6451 Merge branch 'asyncio_error_v5.0' into 'release/v5.0'
fix(tools/hints): add guide to fix error with unsupported asyncio (v5.0)

See merge request espressif/esp-idf!24702
2023-07-12 01:09:06 +08:00
Chen Jichang
d2dcef277c docs(rmt): add a note about binding channels to the same GPIO
Added a note about RX Channel and TX Channel initialization order when
bound RX and TX to the same gpio.

Closes https://github.com/espressif/esp-idf/issues/11768
2023-07-11 22:17:17 +08:00
wangmengyang
9b96d5bd96 bt-coexist: fix the issue for BLE scan in using whitelist that scan PTI keeps high and not resumes after reception of ADV_EXT_IND but no AUX_ADV_IND followed on ESP32-C3 and ESP32-S3, which causes Wi-Fi unable to work normally 2023-07-11 22:11:04 +08:00
morris
8b1efb68fd Merge branch 'bugfix/add_len_check_per_spi_master_transaction_v5.0' into 'release/v5.0'
spi master: added transaction length check to refuse longer than hardware supported length (v5.0)

See merge request espressif/esp-idf!23748
2023-07-11 22:09:14 +08:00
Island
10c1004629 Merge branch 'feature/update_ble_libs_5.0' into 'release/v5.0'
ble: Updated the libbt for ESP32-C2

See merge request espressif/esp-idf!24652
2023-07-11 21:40:05 +08:00
xiongweichao
d666536a21 change(bt/Bluedroid): Update AVRCP version to 1.5 2023-07-11 11:43:59 +00:00
xiongweichao
1c5619b738 bt: Fixed some bluetooth bugs
1. Fixed LC_AFH_UPDATE_IND  has not benn processed causing memory exhaustion
2. Fixed no free elt in prog push
3. Fixed disconnect due to sniff with error Dsniff
4. Fixed the problem that the host continued to send ACL data to the controller after disconnection, which caused the connection to fail again
2023-07-11 19:37:21 +08:00
chenjianhua
5d7b60ec5c Update bt-lib for esp32
- Fixed memory leak when setting adv data
2023-07-11 19:37:17 +08:00
xiongweichao
2cf7834db5 components/bt: Fix crash due to NULL point 2023-07-11 19:37:12 +08:00
morris
73551a70cc Merge branch 'bugfix/fix_mmap_reserved_irom_drom_size_5.0' into 'release/v5.0'
fix(mm): correct mmap reserved irom and drom size (v5.0)

See merge request espressif/esp-idf!24603
2023-07-11 18:11:00 +08:00
morris
a6d8a331d9 Merge branch 'bugfix/vfs_uart_outof_bounds_read_v5.0' into 'release/v5.0'
vfs_uart: fix out-of-bounds read (v5.0)

See merge request espressif/esp-idf!24313
2023-07-11 18:02:57 +08:00
morris
43fa7e2e4a Merge branch 'bugfix/mcpwm_legacy_typo_v5.0' into 'release/v5.0'
mcpwm: fix typo in backward compatible macro name (v5.0)

See merge request espressif/esp-idf!24228
2023-07-11 18:02:33 +08:00
morris
74e032eb49 Merge branch 'bugfix/rgb_pixel_copy_bpp8_v5.0' into 'release/v5.0'
rgb_lcd: Support LCD rotation for LCD whose pixel size is one byte (v5.0)

See merge request espressif/esp-idf!24209
2023-07-11 18:02:13 +08:00
Zim Kalinowski
36de1ba9c8 Merge branch 'bugfix/improve-git-describe-handling-v5.0' into 'release/v5.0'
build system: more accurate error information for git_describe (v5.0)

See merge request espressif/esp-idf!24668
2023-07-11 17:06:44 +08:00
Peter Dragun
002efdf88b fix(tools/hints): add guide to fix error with unsupported asyncio
Closes https://github.com/espressif/esp-idf/issues/11732
2023-07-11 10:55:06 +02:00
Roland Dobai
8fa72ec3b7 Merge branch 'monitor_multibyte_decode' into 'release/v5.0'
Tools(monitor): decode multibyte characters on Windows (backport v5.0)

See merge request espressif/esp-idf!24373
2023-07-11 16:40:40 +08:00
Roland Dobai
bd824a04d6 Merge branch 'fix/pyparsing_3.1.0_compatibility_v5.0' into 'release/v5.0'
fix: Compatibility with pyparsing>=3.1.0 (backport v5.0)

See merge request espressif/esp-idf!24370
2023-07-11 16:40:15 +08:00
Roland Dobai
7bd6e8f707 Merge branch 'bugfix/bump_check_copyright_v5.0' into 'release/v5.0'
tools: bump check-copyright in .pre-commit-config.yaml (v5.0)

See merge request espressif/esp-idf!24342
2023-07-11 16:39:46 +08:00
Roland Dobai
8b01e23558 Merge branch 'fix/ci_coredump_test' into 'release/v5.0'
Tools: remove failing IDF Monitor host tests with coredump and fix print filter without ELF file specified

See merge request espressif/esp-idf!24272
2023-07-11 16:39:06 +08:00
Roland Dobai
f0f859f964 Merge branch 'feature/submodules_sbom_v5.0' into 'release/v5.0'
tools: add sbom information for submodules (v5.0)

See merge request espressif/esp-idf!24241
2023-07-11 16:38:18 +08:00
Roland Dobai
b04c2f6f9b Merge branch 'docs/add_Chinese_translation_for_api-guides/tools/idf-py_backport_v5.0' into 'release/v5.0'
docs: add CN translation for api-guides/tools/idf-py.rst (backport v5.0)

See merge request espressif/esp-idf!24187
2023-07-11 16:36:38 +08:00
Cai Xin Ying
6fa3982408 docs: add CN translation for api-guides/tools/idf-py.rst (backport v5.0) 2023-07-11 16:36:36 +08:00
morris
c227759a4d Merge branch 'docs/add_Chinese_translation_for_api-reference/peripherals/rmt.rst_backport_v5.0' into 'release/v5.0'
docs: provide CN translation for api-reference/peripherals/rmt.rst (backport v5.0)

See merge request espressif/esp-idf!24539
2023-07-11 16:15:15 +08:00
Krzysztof Budzynski
3a7e3fbbf6 Merge branch 'contrib/github_pr_11743_v5.0' into 'release/v5.0'
docs(jtag): Update chip revisions to follow ESP32-C3 errata (GitHub PR) (v5.0)

See merge request espressif/esp-idf!24590
2023-07-11 16:10:33 +08:00
IhorNehrutsa
fb81668aab fix(ledc): fix frequency calculation
ledc.c: Fix frequency calculation.
Round int instead of truncate.

Merges https://github.com/espressif/esp-idf/pull/11810
2023-07-11 15:28:19 +08:00
Mahavir Jain
c5f2db8b11 Merge branch 'docs/trans_wifi_provisioning_backport_v5.0' into 'release/v5.0'
Docs: add CN translation for api-reference/provisioning/wifi_provisioning.rst (backport v5.0)

See merge request espressif/esp-idf!24478
2023-07-11 15:25:45 +08:00
Cai Xin Ying
a71a6e4a30 Docs: add CN translation for api-reference/provisioning/wifi_provisioning.rst (backport v5.0) 2023-07-11 15:25:45 +08:00
Krzysztof Budzynski
9f0be63126 Merge branch 'docs/add_Chinese_translation_for_linux-host-requirements.rst_and_external-ram-esp32-notes.rst_backport_v5.0' into 'release/v5.0'
docs: provide CN translation for linux-host-requirements.rst and external-ram-esp32-notes.rst (backport v5.0)

See merge request espressif/esp-idf!24490
2023-07-11 15:21:33 +08:00
Cai Xin Ying
80db9fb3c6 docs: provide CN translation for linux-host-requirements.rst and external-ram-esp32-notes.rst (backport v5.0) 2023-07-11 15:21:33 +08:00
Marius Vikhammer
2ea42539a6 Merge branch 'docs/update_code_how_to_configure_multiple_antennas_of_wifi_v5.0' into 'release/v5.0'
docs: update code of how to configure multiple antennas of wifi (v5.0)

See merge request espressif/esp-idf!24457
2023-07-11 15:08:06 +08:00
Marius Vikhammer
c9129ba2d5 Merge branch 'docs/update_installation_prerequisites_for_ubuntu_debian_v5.0' into 'release/v5.0'
docs: update installation prerequisites for Ubuntu and Debian system (v5.0)

See merge request espressif/esp-idf!24452
2023-07-11 15:07:20 +08:00
Marius Vikhammer
1655084c90 Merge branch 'docs/fix_typo_in_api-reference_system_ota_v5.0' into 'release/v5.0'
fix a typo in api-reference/system/ota (v5.0)

See merge request espressif/esp-idf!24445
2023-07-11 15:07:07 +08:00
Marius Vikhammer
378f493851 Merge branch 'docs/fix_typo_in_api_guides_usb_otg_console_v5.0' into 'release/v5.0'
docs: fix a typo in api-guides/usb-otg-console (v5.0)

See merge request espressif/esp-idf!24454
2023-07-11 15:06:56 +08:00
Cao Sen Miao
e2925cde68 brownout: Disable the hardware BOD when BOD interrupt is enabled 2023-07-11 14:46:30 +08:00
Rahul Tank
a3722b4cc4 Nimble: Added Example Walkthrough tutorial for Multi Adv example 2023-07-11 11:49:06 +05:30
Rahul Tank
ab7df868cb Nimble: Added Example Walkthrough tutorial for HTP example in nimble 2023-07-11 11:47:18 +05:30
Rahul Tank
55559c3b5b Nimble:Added change to expose addr resolution API outside stack 2023-07-11 11:36:06 +05:30
David Cermak
12d09e0b3b esp_netif: Make esp_netif_receive() return value configurable 2023-07-11 06:51:49 +02:00
Rahul Tank
67f6b668bd Merge branch 'bufix/fix_assert_while_stack_deinit_v5.0' into 'release/v5.0'
fix(nimble): Fix assert due to controller event while stack deinit (v5.0)

See merge request espressif/esp-idf!24621
2023-07-11 12:50:48 +08:00
Jiang Jiang Jian
08c6c90ed9 Merge branch 'doc/add_timing_diagram_for_bt_l2cap_server_and_client_v5.0' into 'release/v5.0'
docs(examples/bluetooth): Add the sequence diagram for L2CAP connection and the discription for the diagram (backport v5.0)

See merge request espressif/esp-idf!24662
2023-07-11 12:25:14 +08:00
Jiang Jiang Jian
7a126fa266 Merge branch 'bugfix/fix_deepsleep_wakestub_example_ci_failure_v5.0' into 'release/v5.0'
ci: fix deepsleep wakestub example ci failure (backort v5.0)

See merge request espressif/esp-idf!24464
2023-07-11 12:24:45 +08:00
Rahul Tank
007ae93913 Merge branch 'bugfix/expose_clear_all_wl_api_v5.0' into 'release/v5.0'
fix(Nimble): Expose API to clear all addresses in whitelist out of stack (v5.0)

See merge request espressif/esp-idf!24308
2023-07-11 12:24:35 +08:00
Jiang Jiang Jian
afe026f318 Merge branch 'bugfix/increase_pm_dump_time_field_length_v5.0' into 'release/v5.0'
Power Management: increase pm_dump time field width (backport v5.0)

See merge request espressif/esp-idf!24449
2023-07-11 12:24:23 +08:00
Jiang Jiang Jian
095bb9f015 Merge branch 'bugfix/sdp_32_and_128_bit_UUID_v5.0' into 'release/v5.0'
bt:Fixed SDP not being able to configure 32-bit and 128-bit UUID(v5.0)

See merge request espressif/esp-idf!24443
2023-07-11 12:24:07 +08:00
Jiang Jiang Jian
12d9bafc37 Merge branch 'docs/update_esp_hid_host_v5.0' into 'release/v5.0'
[docs] fix documents for Bluetooth HID Host API reference (backport v5.0)

See merge request espressif/esp-idf!24390
2023-07-11 12:23:54 +08:00
Jiang Jiang Jian
5cb2736de6 Merge branch 'bugfix/alarm_not_free_when_a2dp_deinit_v5.0' into 'release/v5.0'
bugfix/Fixed the issue of alarm leak (v5.0)

See merge request espressif/esp-idf!24352
2023-07-11 12:23:33 +08:00
Jiang Jiang Jian
10ee73839f Merge branch 'bugfix/hfp_packet_type_err_v5.0' into 'release/v5.0'
Revised (e)SCO configuration parameter sets (v5.0)

See merge request espressif/esp-idf!24347
2023-07-11 12:23:16 +08:00
Jiang Jiang Jian
e99b7835fa Merge branch 'bugfix/update_esp_rom_layout_v5.0' into 'release/v5.0'
esp_rom: fix rom layout issues (backport v5.0)

See merge request espressif/esp-idf!24640
2023-07-11 12:22:40 +08:00
Jiang Jiang Jian
40aac8601b Merge branch 'bugfix/fix_some_ble_bugs_v5.0' into 'release/v5.0'
Fixed some BLE bugs (backport v5.0)

See merge request espressif/esp-idf!24276
2023-07-11 12:21:07 +08:00
Jiang Jiang Jian
44cdf1d6e7 Merge branch 'bugfix/fix_Cache_Count_Flash_bug_v5.0' into 'release/v5.0'
cache: patch some rom cache api, rename those apis in ld (backport v5.0)

See merge request espressif/esp-idf!24292
2023-07-11 12:20:04 +08:00
Jiang Jiang Jian
c10505f939 Merge branch 'bugfix/fix_esp32s3_psram_access_failed_in_dfs_v5.0' into 'release/v5.0'
esp_pm: fix esp32s3 psram access failed when dfs is enabled (backport v5.0)

See merge request espressif/esp-idf!24199
2023-07-11 12:19:43 +08:00
Mahavir Jain
f0de10e43c Merge branch 'support/esp_coredump_logs_config_v5.0' into 'release/v5.0'
Optionally disable logs in espcoredump component (v5.0)

See merge request espressif/esp-idf!24483
2023-07-11 12:08:12 +08:00
Mahavir Jain
1c0887b363 Merge branch 'fix/mbedtls_ecdsa_veriy_restartable_v5.0' into 'release/v5.0'
mbedtls: update submodule (v5.0)

See merge request espressif/esp-idf!24637
2023-07-11 12:07:41 +08:00
Mahavir Jain
8f7d8fb3f5 Merge branch 'protobuf-c/update_submodule_to_v5.0' into 'release/v5.0'
protobuf-c: Update submodule to v1.4.1 (v5.0)

See merge request espressif/esp-idf!24421
2023-07-11 12:06:57 +08:00
Shen Weilong
9e0bd6f7aa ble: Update the libbt for ESP32-C2 2023-07-11 11:41:48 +08:00
Island
0f44414ce0 Merge branch 'bugfix/added_chip_based_cca_config_v5.0' into 'release/v5.0'
ble: fix cca for esp32c2

See merge request espressif/esp-idf!24256
2023-07-11 11:36:03 +08:00
Marius Vikhammer
29b1115485 fix(core-system/esp event): Fixed missing error return documentation for esp_event_loop_create_default
ESP_ERR_INVALID_STATE was not listed as a possible return error code.

Closes https://github.com/espressif/esp-idf/issues/11745
2023-07-11 03:17:05 +00:00
caixinying-git
dfd7102212 docs: provide CN translation for api-reference/peripherals/rmt.rst 2023-07-11 11:13:20 +08:00
Jiang Jiang Jian
a0f14a8f14 Merge branch 'update/version_5_0_3' into 'release/v5.0'
Update version to 5.0.3

See merge request espressif/esp-idf!24677
2023-07-11 08:17:54 +08:00
Armando
a3ed59744b spi: added an API to get max transaction length and use in spi lcd driver 2023-07-10 07:17:00 +00:00
Armando
2bc999db7b spi: added transaction length check to refuse longer than hardware supported length 2023-07-10 07:17:00 +00:00
Jin Cheng
f0a53601e0 Fixed the issue of alarm leak in hf-ag 2023-07-10 06:08:22 +00:00
Jin Cheng
3061770e7b Fixed the issue of alarm leak in A2DP 2023-07-10 06:08:22 +00:00
Jin Cheng
1b7e47d3d3 Revised (e)SCO configuration parameter sets 2023-07-10 06:07:55 +00:00
Zim Kalinowski
e1b37bfa66 esp_event: fix build error related to format
Closes https://github.com/espressif/esp-idf/issues/11428

See merge request !23833
2023-07-10 11:39:17 +08:00
Zim Kalinowski
56994aeb0b build system: more accurate error information for git_describe
Closes https://github.com/espressif/esp-idf/issues/9071

See merge request espressif/esp-idf!23891
2023-07-10 11:36:04 +08:00
Zim Kalinowski
a205213cc8 build system: fix init.bat crash in windows when folder contains unicode characters 2023-07-10 11:34:56 +08:00
gongyantao
b4a62fb339 docs(examples/bluetooth): Add the sequence diagram of L2CAP connection and the discription for the sequence diagram
1: add the sequence diagram for the bluetooth example projects,bt_l2cap_server and bt_l2cap_client, which implenment the L2CAP connection.
2: add the discription for the sequence diagram.
2023-07-08 12:39:35 +08:00
wuyuanyi135
5689db1ddf Fix incorrect invocation of the hook LWIP_HOOK_DHCPS_POST_APPEND_OPTS
Fix https://github.com/espressif/esp-idf/issues/11373
2023-07-07 14:14:15 +02:00
David Cermak
8ce037e99f esp_netif: Report error if esp_netif_receive() fails
Closes https://github.com/espressif/esp-idf/issues/10770
2023-07-07 13:56:25 +02:00
Armando
757f58c3ba fix(mm): correct mmap reserved irom and drom size
Prior to this commit, we don't consider the offset of the irom vaddr
start.

If the offset + size is bigger than the MMU page size, for example:
MMU page size: 0x10000
irom vaddr: 0x4200_0800, so offset = 0x800
irom size: 0xF900
offset + size = 0x10100

Under this condition, the 0x4200_0000 ~ 0x4202_0000, two MMU pages are
used.

With this commit, when reserving the irom and drom, we take the offset
into consideration as well.

Closes https://github.com/espressif/esp-idf/issues/2561
2023-07-07 10:45:26 +00:00
Jiang Guang Ming
ce1042a267 esp_rom: fix rom layout issues 2023-07-07 01:25:17 -07:00
harshal.patil
e858c2c1e0 mbedtls: update submodule to include:
fix: mbedtls_ecdsa_can_do was not being defined when ECDSA_SIGN_ALT is defined but ECDSA_VERIFY_ALT is not defined causing mbedtls_ecdsa_verify_restartable to always fail.
feature: initial version of the sbom.yml file
2023-07-07 10:30:33 +05:30
Roshan Bangar
b4c8d92d94 fix(nimble): Fix assert due to controller event while stack deinit 2023-07-06 11:49:09 +05:30
Darian Leung
52589aca08 ringbuf: Fix ordering of StaticRingbuffer_t
When building on linux/host compilers (e.g., GCC), the compiler may add padding
depending on the size and order of the member types.

This commit fixes the ordering or the StaticRingbuffer_t such that it matches
the internal Ringbuffer_t. The "_Static_assert" is always enabled for all
compilers.

Note: Removed all usage configSUPPORT_STATIC_ALLOCATION preprocessor conditions
as the macro is always set to 1.

Closes https://github.com/espressif/esp-idf/issues/11726
2023-07-04 21:42:12 +01:00
Krzysztof
7114092451 docs(jtag): Update CN translation of 'api-guides/jtag-debugging/index.rst' 2023-07-04 19:29:52 +08:00
Xabi Crespo
bfddc02963 docs(jtag): Update chip revisions to follow ESP32-C3 errata (GitHub PR) 2023-07-04 19:29:52 +08:00
jgujarathi
181666c4a7 fix(esp_wifi) : Fix collection of issues in sta roam and scan.
1) Fix issue during split scan to allow for data tx.
2) Fix issue when parsing wpa_ie to set correct authmode when AP
   supports both WPA_EAP and WPA_EAP_SHA256 authmode.
   Closes https://github.com/espressif/esp-idf/issues/11202
3) Fix an occasional crash during sta roam.
4) Add home_channel_dwell_time to wifi_scan_config_t. This allows
   configuration of the time spent between scanning consecutive
   channels for tx.
5) Adds a obss scan timer disarm when a sta disconnects from an AP
2023-07-04 11:59:26 +05:30
Shreyas Sheth
5714d6d324 esp_wifi: Bugfix concurrency observed while doing eloop register 2023-07-04 09:42:39 +05:30
Alexey Gerenkov
c076c24a11 gcov: Fix not linked gcov rtio functions 2023-07-03 13:10:01 +03:00
cjin
75bd131a54 ble: fix cca for esp32c2 2023-06-29 20:02:34 +08:00
Vikram
8390818e7e Added description to disable coredump logs to ram_usage.rst
Signed-off-by: Vikram <vikram.dattu@espressif.com>
2023-06-29 11:51:03 +05:30
Vikram
7c766af407 Optionally disable logs in espcoredump component
Early log strings used by this component are placed in DRAM.
Disabling these logs saves ~5KB of internal memory

Signed-off-by: Vikram <vikram.dattu@espressif.com>
2023-06-29 11:51:03 +05:30
wuzhenghui
e0370d89c3 ci: increase timeout threshold to solve deepsleep wakestub example ci failure 2023-06-28 18:12:33 +08:00
Linda
1dbca70b62 docs: update code of how to configure multiple antennas of wifi 2023-06-28 14:43:45 +08:00
Linda
a42b4da02d docs: fix a typo in api-guides/usb-otg-console 2023-06-28 14:40:53 +08:00
Linda
94294610e9 docs: update installation prerequisites for Ubuntu and Debian system 2023-06-28 14:38:50 +08:00
wuzhenghui
3eae74e966 bugfix: increase pm_dump time field width
Closes https://github.com/espressif/esp-idf/issues/11704
2023-06-28 14:35:20 +08:00
Linda
684e15f729 fix a typo in api-reference/system/ota 2023-06-28 14:28:32 +08:00
Ilia Lutchenko
837a46b5a7 btc_sdp: add_raw_sdp: fix 32 and 128-bit uuid configuration
Added proper conversion of 4 and 16-byte UUIDs values to binary streams.
UUIDs now set with SDP_AddAttribute() instead of
SDP_AddServiceClassIdList().
2023-06-28 14:18:20 +08:00
Frantisek Hrbata
b947cab073 tools: add sbom information for submodules
This adds SBOM information for submodules, which are not managed
by Espressif. Meaning there is no fork for them in the espressif
namespace. Other submodules should add sbom.yml manifest file to
the root of their git repository.

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

sbom-version:
   submodule version

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

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

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

sbom-description:
   Project description.

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

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-27 10:05:29 +02:00
harshal.patil
ff28efe5be protobuf-c: Update submodule to v1.4.1 2023-06-27 11:17:43 +05:30
laokaiyao
a2cf3ae4df i2s: fixed i2s_ll compiling failure under C++ evironment
Closes: https://github.com/espressif/esp-idf/issues/11625
2023-06-27 10:39:43 +08:00
morris
e43622d1df touch_element: fix unintended integer division 2023-06-26 07:08:04 +00:00
morris
92ca847730 usbh: fix invalid assert on desc_status 2023-06-26 07:08:04 +00:00
morris
93ce0714fd vfs_uart: fix out-of-bounds read
when open uart device "/2" on chips only have 2 UART peripherals
2023-06-26 07:08:04 +00:00
jgujarathi
6c14120c7f wpa_supplicant : Fix occasional crash during btm roam.
Fix crash due to premature deallocation of neighbour report elements
by scan_done. Post event to btm_rrm_t task to handle scan_done serially
rather than when btm_rrm_t task is processing btm request rx frame.
2023-06-26 10:34:33 +05:30
wangmengyang
49bb1e85b7 component/docs: enable generation of API-reference documents for Bluetooth HID host 2023-06-25 15:37:54 +08:00
gongyantao
df68489f15 resolve the conflicts 2023-06-25 15:37:54 +08:00
Darian Leung
02ee20ff3a pytest: Expect "Calling app_main()" to indicate start of application
This commit updates variousf pytest scripts to expect
"main_task: Calling app_main()" instead of "cpu_start: Starting scheduler" as
indicator of the start of an application.
2023-06-23 10:35:56 +02:00
Peter Dragun
57e188c2e3 fix(monitor/ansi_converter): decode multibyte characters 2023-06-23 09:32:13 +02:00
Darian Leung
9c3a13515c freertos(IDF): Update IDF FreeRTOS linker fragment file
This commit updates the linker fragment file for IDF FreeRTOS.

- Linker fragment file's formatting was updated
- Placement rules of functions is now clearly specified inside the linker
  fragment file.
- Some extra functions are now placed in flash in accordance to the new
  placement rules.
2023-06-23 09:20:18 +02:00
Darian Leung
4ac68a97d9 freertos(SMP): Update SMP FreeRTOS linker fragment file
This commit updates the linker fragment file for Amazon SMP FreeRTOS.

- Linker fragment file's formatting was updated
- Placement rules of functions is now clearly specified inside the linker
  fragment file.
- Some extra functions are now placed in flash in accordance to the new
  placement rules.
2023-06-23 07:16:58 +02:00
Darian Leung
55644575db freertos: Add linker fragments for common functions
This commit adds a separate linker fragment file "linker_common.lf" for the
functions in "port_common.c". The placement rules are now clearly specified
inside the linker fragment file.
2023-06-22 17:20:48 +02:00
Darian Leung
68646e23ae freertos: Refactor port common functions
This commit refactors port_common.c so that it only contains implementation of
FreeRTOS port functions that are common to all FreeRTOS ports (i.e., on all
architectures and on all FreeRTOS implementations).
2023-06-22 17:20:35 +02:00
Darian Leung
feee3a3059 freertos: Refactor OS startup functions
This commit refactors the OS startup functions as follows:

- Moved the OS/app startup functions listed below to "app_startup.c". Their
    implementations are now common to all ports (RISC-V and Xtensa) of all
    FreeRTOS implementations (IDF and Amazon SMP).
    - esp_startup_start_app()
    - esp_startup_start_app_other_cores()
- Removed esp_startup_start_app_common() as app startup functions are now
    already common to all ports.
- Added extra logs to "main_task" to help with user debugging

Note: Increased startup delay on "unity_task". The "unity_run_menu()" is non
blocking, thus if the main task or other startup tasks have not been freed
by the time "unity_run_menu()" is run, those tasks will be freed the next time
"unity_task" blocks. This could cause some tests to have a memory leak, thus
the "unity_task" startup delay has increased.
2023-06-22 17:17:18 +02:00
radim.karnis
7b98762ff5 fix: Compatibility with pyparsing>=3.1.0 2023-06-22 11:29:14 +02:00
KonstantinKondrashov
2bdbcf12a9 freertos: Fix Systick stuck when systimer was not reset
Relates to OTA update for S3/C3 chips from IDF version 4.3 to v5.0 and above
2023-06-21 14:42:34 +00:00
Rahul Tank
da223dd790 Nimble: Expose API to clear all addresses in whitelist out of stack 2023-06-21 15:55:58 +05:30
Frantisek Hrbata
4068c1d7b4 tools: bump check-copyright in .pre-commit-config.yaml
Newer check-copyright version 1.0.2 contains fixes for copyrights
with single year and also the proposed date update is applied only
if number of changed lines is greater or equal to a limit. The default
limit is 5 and can be changed with the --lines-changed option if needed.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-21 07:06:15 +02:00
Roland Dobai
169d7dc3c9 tools: Fix IDF Monitor print filter when no ELF file is supplemented
A different serial handler class is used when there was no ELF file
passed do esp-idf-monitor. This fix will ensure that print filter check
is respected in this case as well.
2023-06-19 16:56:20 +02:00
Roland Dobai
6212ce9d94 tools: Remove ELF-file-based IDF Monitor tests 2023-06-19 16:56:20 +02:00
wanglei
861e6a4ef8 cache: patch some rom cache api, rename those apis in ld
1. Cache_Count_Flash_Pages, fix this api return enexpected + 1
2. Cache_Suspend_I/DCache, add wait cache idle after suspend cache
3. Cache_Freeze_I/DCache_Enable, add wait cache idle after freeze
2023-06-19 15:15:32 +08:00
chenjianhua
da7cbbfb7f Update bt-lib for esp32
1 Fixed disconnection delay on peripheral when slave latency is not zero
2 Fixed LLCP info init for central and peripheral
3 Fixed sent cmd status evt twice when process disconnect cmd
2023-06-16 11:41:24 +08:00
chenjianhua
2be8e6e086 Update bt lib for ESP32-C3 and ESP32-S3
- Fixed crash when controller initialization fails due to insufficient memory
2023-06-16 11:41:19 +08:00
chenjianhua
2dea457d9a bluedroid: fixed default extended connection params 2023-06-16 11:41:06 +08:00
chenjianhua
21cc277c3d esp_hid: fixed ble hid battery level setting 2023-06-16 11:40:59 +08:00
boarchuz
8600761adf fix ULP FSM reg ops with addr > 0xFF 2023-06-15 14:00:57 +02:00
wuzhenghui
d202fc5993 ci: sync master flash_psram test and add access psram with DFS unity test 2023-06-15 14:14:25 +08:00
wuzhenghui
3ee8a59d59 bugfix: use avaliable gpio for esp32s3 pm_trace 2023-06-15 14:14:25 +08:00
wuzhenghui
65e8cb55eb bugfix: fix esp32s3 psram access failed when dfs is enabled 2023-06-15 14:14:21 +08:00
laokaiyao
f5c5c539a6 migration_guide: update adc calibration api part 2023-06-15 11:46:40 +08:00
morris
9795444f6c mcpwm: fix typo in backward compatible macro name 2023-06-15 10:58:50 +08:00
morris
8704ff0b55 rgb_lcd: support pixel copy for 8bpp
Closes https://github.com/espressif/esp-idf/issues/11581
2023-06-13 18:21:32 +08:00
KonstantinKondrashov
4ceae4654b efuse: Do not load real efuses before some test (some chips have burned efuse blocks) 2023-06-09 19:10:47 +08:00
Tomas Rezucha
842e8a9889 usb: Update host CDC examples 2023-04-05 07:54:29 +02:00
1078 changed files with 140723 additions and 13806 deletions

View File

@@ -13,7 +13,7 @@ stages:
workflow:
rules:
# Disable those non-protected push triggered pipelines
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_PIPELINE_SOURCE == "push"'
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && $CI_PIPELINE_SOURCE == "push"'
when: never
# when running merged result pipelines, it would create a temp commit id. use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA instead of $CI_COMMIT_SHA.
# Please use PIPELINE_COMMIT_SHA at all places that require a commit sha
@@ -73,9 +73,6 @@ variables:
PRE_COMMIT_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-pre-commit:1"
# target test config file, used by assign test job
CI_TARGET_TEST_CONFIG_FILE: "$CI_PROJECT_DIR/.gitlab/ci/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"
@@ -228,6 +225,7 @@ include:
- '.gitlab/ci/pre_check.yml'
- '.gitlab/ci/build.yml'
- '.gitlab/ci/assign-test.yml'
- '.gitlab/ci/integration_test.yml'
- '.gitlab/ci/host-test.yml'
- '.gitlab/ci/target-test.yml'
- '.gitlab/ci/deploy.yml'

View File

@@ -21,11 +21,6 @@
- [Shell Script Related](#shell-script-related)
- [Manifest File to Control the Build/Test apps](#manifest-file-to-control-the-buildtest-apps)
- [Grammar](#grammar)
- [Operands](#operands)
- [Operators](#operators)
- [Limitation:](#limitation)
- [How does it work?](#how-does-it-work)
- [Example](#example)
## General Workflow
@@ -56,7 +51,7 @@
- `example_test[_esp32/esp32s2/...]`
- `fuzzer_test`
- `host_test`
- `integration_test[_wifi/ble]`
- `integration_test`
- `iperf_stress_test`
- `macos`
- `macos_test`
@@ -144,10 +139,11 @@ check if there's a suitable `.if-<if-anchor-you-need>` anchor
1. if there is, create a rule following [`rules` Template Naming Rules](#rules-template-naming-rules).For detail information, please refer to [GitLab Documentation `rules-if`](https://docs.gitlab.com/ee/ci/yaml/README.html#rulesif). Here's an example.
```yaml
.rules:dev:
.rules:patterns:python-files:
rules:
- <<: *if-trigger
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-python-files
```
2. if there isn't

View File

@@ -5,6 +5,7 @@
- assign_test
variables:
SUBMODULES_TO_FETCH: "none"
CI_TARGET_TEST_CONFIG_FILE: "$CI_PROJECT_DIR/.gitlab/ci/target-test.yml"
artifacts:
paths:
- ${TEST_DIR}/test_configs/
@@ -80,34 +81,3 @@ assign_unit_test:
variables:
TEST_TYPE: unit_test
TEST_DIR: components/idf_test/unit_test
assign_integration_test:
extends:
- .assign_test_template
- .rules:test:integration_test
- .before_script_minimal
image: ${CI_INTEGRATION_TEST_ENV_IMAGE}
needs:
- build_ssc_esp32
- build_ssc_esp32c3
- build_ssc_esp32c2
artifacts:
paths:
- $TEST_DIR/test_configs
expire_in: 1 week
variables:
TEST_DIR: ${CI_PROJECT_DIR}/tools/ci/integration_test
BUILD_DIR: ${CI_PROJECT_DIR}/SSC/ssc_bin
INTEGRATION_TEST_CASE_PATH: "${CI_PROJECT_DIR}/auto_test_script/TestCaseFiles"
ASSIGN_TEST_CASE_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIAssignTestCases.py"
PYTHONPATH: ${CI_PROJECT_DIR}/auto_test_script/packages
GIT_LFS_SKIP_SMUDGE: 1
script:
- add_gitlab_ssh_keys
# clone test script to assign tests
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} auto_test_script
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
- cd auto_test_script
- ./tools/ci/setup_idfci.sh
# assign integration test cases
- python ${ASSIGN_TEST_CASE_SCRIPT} -t ${INTEGRATION_TEST_CASE_PATH} -c $CI_TARGET_TEST_CONFIG_FILE -b ${BUILD_DIR} -o $TEST_DIR/test_configs

View File

@@ -99,6 +99,7 @@
- "**/build*/bootloader/*.bin"
- "**/build*/bootloader/*.elf"
- "**/build*/partition_table/*.bin"
- "**/build*/project_description.json"
- list_job_*.json
- size_info.txt
when: always
@@ -314,50 +315,6 @@ fast_template_app:
BUILD_COMMAND_ARGS: "-p"
#------------------------------------------------------------------------------
.build_ssc_template:
extends:
- .build_template
- .rules:build:integration_test
artifacts:
paths:
- SSC/ssc_bin
expire_in: 1 week
script:
- retry_failed git clone $SSC_REPOSITORY
- python $CHECKOUT_REF_SCRIPT SSC SSC
- cd SSC
- MAKEFLAGS= ./ci_build_ssc.sh $TARGET_NAME
build_ssc_esp32:
extends: .build_ssc_template
parallel: 3
variables:
TARGET_NAME: "ESP32"
build_ssc_esp32s2:
extends: .build_ssc_template
parallel: 2
variables:
TARGET_NAME: "ESP32S2"
build_ssc_esp32c2:
extends: .build_ssc_template
parallel: 2
variables:
TARGET_NAME: "ESP32C2"
build_ssc_esp32c3:
extends: .build_ssc_template
parallel: 3
variables:
TARGET_NAME: "ESP32C3"
build_ssc_esp32s3:
extends: .build_ssc_template
parallel: 3
variables:
TARGET_NAME: "ESP32S3"
.build_esp_idf_tests_cmake_template:
extends:
- .build_cmake_template

View File

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

View File

@@ -32,50 +32,11 @@ push_to_github:
extends:
- .deploy_job_template
- .before_script_minimal
- .rules:protected-no_label
dependencies: []
- .rules:push_to_github
needs:
- check_submodule_sync
script:
- add_github_ssh_keys
- git remote remove github &>/dev/null || true
- git remote add github git@github.com:espressif/esp-idf.git
- tools/ci/push_to_github.sh
deploy_test_result:
extends:
- .deploy_job_template
- .before_script_minimal
- .rules:ref:master-always
image: $CI_DOCKER_REGISTRY/bot-env:1
dependencies: []
tags:
- deploy_test
artifacts:
when: always
paths:
- ${CI_PROJECT_DIR}/test-management/*.log
expire_in: 1 week
variables:
BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
TEST_RESULTS_PATH: "${CI_PROJECT_DIR}/TEST_RESULTS"
script:
- add_gitlab_ssh_keys
- export GIT_SHA=$(echo ${CI_COMMIT_SHA} | cut -c 1-8)
- export REV_COUNT=$(git rev-list --count ${GIT_SHA} --)
- export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})"
# Download test result
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
- python3 ${IDF_PATH}/tools/ci/get_all_test_results.py --path ${TEST_RESULTS_PATH} --include_retried
- if [[ -z $(find ${TEST_RESULTS_PATH} -name "*.xml") ]]; then exit 0; fi
# Clone test-management repo
- retry_failed git clone $TEST_MANAGEMENT_REPO
- python3 $CHECKOUT_REF_SCRIPT test-management test-management
- cd test-management
- echo $BOT_JIRA_ACCOUNT > ${BOT_ACCOUNT_CONFIG_FILE}
# Make sure all requirements are installed
- pip3 install -r requirements.txt
# Update test cases
- python3 ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT from_xml -d ${TEST_RESULTS_PATH} -r $GIT_SHA -l IDFCI
# update test results
- python3 ImportTestResult.py -r "$GIT_SHA (r${REV_COUNT})" -j $JIRA_TEST_MANAGEMENT_PROJECT -s "$SUMMARY" -l IDFCI -p ${TEST_RESULTS_PATH} --pipeline_url ${CI_PIPELINE_URL}
# May need a long time to upload all test results.
timeout: 4 hours

View File

@@ -17,6 +17,9 @@
.if-protected-no_label: &if-protected-no_label
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) && $BOT_TRIGGER_WITH_LABEL == null'
.if-qa-test-tag: &if-qa-test-tag
if: '$CI_COMMIT_TAG =~ /^qa-test/'
.if-label-build_docs: &if-label-build_docs
if: '$BOT_LABEL_BUILD_DOCS || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build_docs(?:,[^,\n\r]+)*$/i'
@@ -27,10 +30,12 @@
if: '$BOT_LABEL_DOCS_FAST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*docs_fast(?:,[^,\n\r]+)*$/i'
.if-dev-push: &if-dev-push
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
.doc-rules:build:docs:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-protected
- <<: *if-label-build_docs
- <<: *if-label-docs

View File

@@ -303,6 +303,14 @@ test_mkuf2:
- cd ${IDF_PATH}/tools/test_mkuf2
- ./test_mkuf2.py
test_sbom:
extends:
- .host_test_template
- .rules:patterns:sbom
script:
- cd ${IDF_PATH}/tools/test_sbom
- pytest
test_autocomplete:
extends:
- .host_test_template

View File

@@ -0,0 +1,69 @@
# generate dynamic integration pipeline by `idf-integration-ci` project
.patterns-integration_test: &patterns-integration_test
# add all possible patterns to make sure `gen_integration_pipeline` can be triggered.
# fine-grained control will be done while generating the pipeline
# find `patterns` in `idf-integration-ci` project
- "components/**/*"
- "tools/**/*"
- ".gitlab-ci.yml"
- ".gitlab/ci/common.yml"
- ".gitlab/ci/integration_test.yml"
- ".gitmodules"
- "CMakeLists.txt"
- "install.sh"
- "export.sh"
- "Kconfig"
- "sdkconfig.rename"
# Simplify the rules
.integration_test_rules:
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: *patterns-integration_test
# support trigger by ci labels
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*target_test(?:,[^,\n\r]+)*$/i'
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build(?:,[^,\n\r]+)*$/i'
gen_integration_pipeline:
extends:
- .before_script_minimal
- .integration_test_rules
image: ${CI_INTEGRATION_ASSIGN_ENV}
stage: assign_test
cache: []
tags:
- assign_test
variables:
SUBMODULES_TO_FETCH: "none"
GIT_LFS_SKIP_SMUDGE: 1
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
paths:
- idf-integration-ci/child_pipeline/
expire_in: 2 weeks
script:
- add_gitlab_ssh_keys
- retry_failed git clone ${CI_GEN_INTEGRATION_PIPELINE_REPO} idf-integration-ci
- python $CHECKOUT_REF_SCRIPT idf-integration-ci idf-integration-ci
- cd idf-integration-ci
- python tools/generate_child_pipeline.py -o child_pipeline/
child_integration_test_pipeline:
extends:
- .integration_test_rules
stage: assign_test
needs:
- gen_integration_pipeline
trigger:
include:
- artifact: idf-integration-ci/child_pipeline/pipeline.yml
job: gen_integration_pipeline
forward:
yaml_variables: false
strategy: depend

View File

@@ -21,7 +21,7 @@ check_pre_commit_master_release:
check_pre_commit_MR:
extends:
- .check_pre_commit_template
- .rules:dev
- .rules:mr
script:
- python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs pre-commit run --files

View File

@@ -50,6 +50,9 @@
- "tools/ci/test_build_system*.py"
- "tools/ci/ci_build_apps.py"
.patterns-sbom: &patterns-sbom
- "tools/test_sbom/*"
.patterns-custom_test: &patterns-custom_test
- "tools/ci/python_packages/gitlab_api.py"
- "tools/ci/python_packages/tiny_test_fw/**/*"
@@ -83,19 +86,6 @@
- "components/esp_phy/**/*"
- "components/wpa_supplicant/**/*"
.patterns-integration_test-ble: &patterns-integration_test-ble
- "tools/ci/python_packages/gitlab_api.py"
- "tools/ci/integration_test/**/*"
- "components/bt/controller/lib_esp32"
- "components/bt/controller/lib_esp32c3_family"
- "components/bt/controller/lib_esp32h2/esp32h2-bt-lib"
- "components/bt/host/nimble/nimble"
- "components/esp_phy/lib"
.patterns-integration_test-wifi: &patterns-integration_test-wifi
- "tools/ci/python_packages/gitlab_api.py"
- "tools/ci/integration_test/**/*"
.patterns-host_test: &patterns-host_test
- ".gitlab/ci/host-test.yml"
@@ -256,13 +246,19 @@
if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/'
.if-protected: &if-protected
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/)'
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) || $CI_COMMIT_TAG =~ /^qa-test/'
.if-protected-no_label: &if-protected-no_label
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) && $BOT_TRIGGER_WITH_LABEL == null'
.if-qa-test-tag: &if-qa-test-tag
if: '$CI_COMMIT_TAG =~ /^qa-test/'
.if-dev-push: &if-dev-push
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
.if-merge_request: &if-merge_request
if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
.if-schedule: &if-schedule
if: '$CI_PIPELINE_SOURCE == "schedule"'
@@ -292,10 +288,17 @@
rules:
- <<: *if-protected
.rules:protected-no_label:
.rules:push_to_github:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-protected-no_label
.rules:mr:
rules:
- <<: *if-merge_request
### Patterns ###
.rules:patterns:python-cache:
rules:
- <<: *if-dev-push
@@ -346,6 +349,14 @@
- <<: *if-dev-push
changes: *patterns-sonarqube-files
.rules:patterns:sbom:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-sbom
- <<: *if-dev-push
changes: *patterns-submodule
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# DO NOT place comments or maintain any code from this line
#
@@ -433,15 +444,6 @@
.if-label-host_test: &if-label-host_test
if: '$BOT_LABEL_HOST_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*host_test(?:,[^,\n\r]+)*$/i'
.if-label-integration_test: &if-label-integration_test
if: '$BOT_LABEL_INTEGRATION_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
.if-label-integration_test_ble: &if-label-integration_test_ble
if: '$BOT_LABEL_INTEGRATION_TEST_BLE || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test_ble(?:,[^,\n\r]+)*$/i'
.if-label-integration_test_wifi: &if-label-integration_test_wifi
if: '$BOT_LABEL_INTEGRATION_TEST_WIFI || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test_wifi(?:,[^,\n\r]+)*$/i'
.if-label-iperf_stress_test: &if-label-iperf_stress_test
if: '$BOT_LABEL_IPERF_STRESS_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*iperf_stress_test(?:,[^,\n\r]+)*$/i'
@@ -1058,27 +1060,6 @@
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:build:integration_test:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build
- <<: *if-label-integration_test
- <<: *if-label-integration_test_ble
- <<: *if-label-integration_test_wifi
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-build_components
- <<: *if-dev-push
changes: *patterns-build_system
- <<: *if-dev-push
changes: *patterns-integration_test-ble
- <<: *if-dev-push
changes: *patterns-integration_test-wifi
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:build:macos:
rules:
- <<: *if-revert-branch
@@ -1118,9 +1099,6 @@
- <<: *if-label-example_test_esp32h2
- <<: *if-label-example_test_esp32s2
- <<: *if-label-example_test_esp32s3
- <<: *if-label-integration_test
- <<: *if-label-integration_test_ble
- <<: *if-label-integration_test_wifi
- <<: *if-label-iperf_stress_test
- <<: *if-label-lan8720
- <<: *if-label-target_test
@@ -1154,10 +1132,6 @@
changes: *patterns-example_test-usb
- <<: *if-dev-push
changes: *patterns-example_test-wifi
- <<: *if-dev-push
changes: *patterns-integration_test-ble
- <<: *if-dev-push
changes: *patterns-integration_test-wifi
- <<: *if-dev-push
changes: *patterns-target_test-adc
- <<: *if-dev-push
@@ -2979,52 +2953,6 @@
- <<: *if-dev-push
changes: *patterns-host_test
.rules:test:integration_test:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-integration_test
- <<: *if-label-integration_test_ble
- <<: *if-label-integration_test_wifi
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-integration_test-ble
- <<: *if-dev-push
changes: *patterns-integration_test-wifi
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:test:integration_test_ble:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-integration_test
- <<: *if-label-integration_test_ble
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-integration_test-ble
.rules:test:integration_test_wifi:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-integration_test
- <<: *if-label-integration_test_wifi
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-integration_test-wifi
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:test:submodule:
rules:
- <<: *if-revert-branch

View File

@@ -135,6 +135,14 @@ example_test_pytest_esp32_ethernet:
- build_pytest_examples_esp32
tags: [ esp32, ethernet]
pytest_examples_esp32_ethernet_httpbin:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- build_pytest_examples_esp32
tags: [ esp32, httpbin]
example_test_pytest_esp32_8mb_flash:
extends:
- .pytest_examples_dir_template
@@ -1088,301 +1096,3 @@ UT_S3_FLASH:
tags:
- ESP32S3_IDF
- UT_T1_ESP_FLASH
.integration_test_template:
extends:
- .target_test_job_template
- .rules:test:integration_test
- .before_script_minimal
image: ${CI_INTEGRATION_TEST_ENV_IMAGE}
cache: []
needs: # the assign already needs all the build jobs
- assign_integration_test
variables:
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32_IDF"
LOG_PATH: "${CI_PROJECT_DIR}/TEST_LOGS"
TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/auto_test_script/TestCaseFiles"
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/tools/ci/integration_test/test_configs"
KNOWN_ISSUE_FILE: "${CI_PROJECT_DIR}/tools/ci/integration_test/KnownIssues"
CI_RUNNER_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIRunner.py"
PREPARE_TEST_BIN_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/tools/ci/idf_prepare_test_bins.py"
PYTHONPATH: "${CI_PROJECT_DIR}/auto_test_script/packages:${CI_PROJECT_DIR}/tools/ci/python_packages:${PYTHONPATH}"
INITIAL_CONDITION_RETRY_COUNT: "1"
GIT_LFS_SKIP_SMUDGE: 1
script:
- *define_config_file_name
# first test if config file exists, if not exist, exit 0
- test -e $CONFIG_FILE || exit 0
# clone local test env configs
- add_gitlab_ssh_keys
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# clone test bench
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} auto_test_script
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
- cd auto_test_script
- ./tools/ci/setup_idfci.sh
# Merge known issues
- cat ${KNOWN_ISSUE_FILE} >> ${TEST_CASE_FILE_PATH}/KnownIssues
# run test
- python ${PREPARE_TEST_BIN_SCRIPT} $CONFIG_FILE
- python ${CI_RUNNER_SCRIPT} -l "$LOG_PATH/$JOB_FULL_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH
.integration_test_esp32c3_template:
extends:
- .integration_test_template
variables:
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32C3_IDF"
.integration_test_esp32c2_template:
extends:
- .integration_test_template
variables:
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32C2_IDF"
nvs_compatible_test:
extends:
- .integration_test_template
- .rules:test:integration_test
artifacts:
when: always
paths:
- $LOG_PATH
- nvs_wifi.bin
expire_in: 1 mos
tags:
- ESP32_IDF
- NVS_Compatible
script:
- *define_config_file_name
# first test if config file exists, if not exist, exit 0
- test -e $CONFIG_FILE || exit 0
# clone local test env configs
- add_gitlab_ssh_keys
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# clone test bench
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} auto_test_script
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
- cd auto_test_script
- ./tools/ci/setup_idfci.sh
# prepare nvs bins
- ./tools/prepare_nvs_bin.sh
# run test
- python ${PREPARE_TEST_BIN_SCRIPT} $CONFIG_FILE
- python ${CI_RUNNER_SCRIPT} -l "$LOG_PATH/$JOB_FULL_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH
IT_T1_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 2
tags:
- ESP32_IDF
- SSC_T1_Simple
IT_T1_WAP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_WAP
IT_T2_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 9
tags:
- ESP32_IDF
- SSC_T2_Simple
IT_T5_BT_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_ble
parallel: 3
tags:
- ESP32_IDF
- SSC_T5_BT_Simple
IT_T2_BT_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_ble
parallel: 6
tags:
- ESP32_IDF
- SSC_T2_BT_Simple
IT_T1_BT_Dongle:
extends:
- .integration_test_template
- .rules:test:integration_test_ble
parallel: 2
tags:
- ESP32_IDF
- SSC_T1_BT_Dongle
IT_T1_AP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_AP
IT_T1_AP_E:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 5
tags:
- ESP32_IDF
- SSC_T1_AP_E
IT_T1_WNIC_AP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_WNIC_AP
IT_T1_WNIC_AP_E:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_WNIC_AP_E
IT_T1_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_MESH1
IT_T2_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 2
tags:
- ESP32_IDF
- SSC_T2_MESH1
IT_T3_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T3_MESH1
IT_T6_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T6_MESH1
IT_T12_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T12_MESH1
IT_T50_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
allow_failure: true
tags:
- ESP32_IDF
- SSC_T50_MESH1
IT_T1_MESH2:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_MESH2
IT_T2_WNIC:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T2_WNIC
IT_T2_AP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T2_AP
IT_T3_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T3_Simple
IT_C3_T2_BT_Simple:
extends:
- .integration_test_esp32c3_template
- .rules:test:integration_test_ble
parallel: 11
tags:
- ESP32C3_IDF
- SSC_T2_BT_Simple
IT_C3_T5_BT_Simple:
extends:
- .integration_test_esp32c3_template
- .rules:test:integration_test_ble
parallel: 5
tags:
- ESP32C3_IDF
- SSC_T5_BT_Simple
IT_C3_T1_BT_Dongle:
extends:
- .integration_test_esp32c3_template
- .rules:test:integration_test_ble
image: gitlab.espressif.cn:5050/qa/dockerfiles/integration-test-env-dbg:1
parallel: 2
tags:
- ESP32C3_IDF
- SSC_T1_BT_Dongle
IT_C2_T2_BT_Simple:
extends:
- .integration_test_esp32c2_template
- .rules:test:integration_test_ble
parallel: 9
tags:
- ESP32C2_IDF
- SSC_T2_BT_Simple
IT_C2_T1_BT_Dongle:
extends:
- .integration_test_esp32c2_template
- .rules:test:integration_test_ble
image: gitlab.espressif.cn:5050/qa/dockerfiles/integration-test-env-dbg:1
parallel: 2
tags:
- ESP32C2_IDF
- SSC_T1_BT_Dongle

53
.gitmodules vendored
View File

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

View File

@@ -141,6 +141,7 @@ repos:
name: Check if all apps readme files match given .build-test-rules.yml files. Modify the supported target tables
entry: tools/ci/check_build_test_rules.py check-readmes
language: python
require_serial: true
files: 'tools/test_apps/.+|examples/.+|components/.+'
additional_dependencies:
- idf_build_apps
@@ -157,7 +158,7 @@ repos:
- id: file-contents-sorter
files: 'tools\/ci\/(executable-list\.txt|mypy_ignore_list\.txt|check_copyright_ignore\.txt)'
- repo: https://github.com/espressif/check-copyright/
rev: v1.0.1
rev: v1.0.3
hooks:
- id: check-copyright
args: ['--ignore', 'tools/ci/check_copyright_ignore.txt', '--config', 'tools/ci/check_copyright_config.yaml']

View File

@@ -54,13 +54,15 @@ idf_component_register(SRCS "${srcs}"
REQUIRES esp_timer
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()
# This function adds a dependency on the given component if the component is included into the build.
function(maybe_add_component component_name)

View File

@@ -389,4 +389,11 @@ menu "Application Level Tracing"
help
Enables support for GCOV data transfer to host.
config APPTRACE_GCOV_DUMP_TASK_STACK_SIZE
int "Gcov dump task stack size"
depends on APPTRACE_GCOV_ENABLE
default 2048
help
Configures stack size of Gcov dump task
endmenu

View File

@@ -76,7 +76,8 @@ gcov_exit:
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);
xTaskCreatePinnedToCore(&gcov_dump_task, "gcov_dump_task", CONFIG_APPTRACE_GCOV_DUMP_TASK_STACK_SIZE,
(void *)&s_gcov_task_running, configMAX_PRIORITIES - 1, NULL, 0);
}
void gcov_create_task_tick_hook(void)

View File

@@ -691,14 +691,12 @@ menu "Security features"
config SECURE_BOOT_VERIFICATION_KEY
string "Secure boot public signature verification key"
depends on SECURE_SIGNED_APPS && !SECURE_BOOT_BUILD_SIGNED_BINARIES && !SECURE_SIGNED_APPS_RSA_SCHEME
depends on SECURE_SIGNED_APPS && SECURE_SIGNED_APPS_ECDSA_SCHEME && !SECURE_BOOT_BUILD_SIGNED_BINARIES
default "signature_verification_key.bin"
help
Path to a public key file used to verify signed images.
Secure Boot V1: This ECDSA public key is compiled into the bootloader and/or
app, to verify app images.
Secure Boot V2: This RSA public key is compiled into the signature block at
the end of the bootloader/app.
Key file is in raw binary format, and can be extracted from a
PEM formatted private key using the espsecure.py

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -109,6 +109,17 @@ extern const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_sup
*/
esp_err_t __attribute__((weak)) bootloader_flash_unlock(void);
#if CONFIG_SPI_FLASH_OCTAL_32BIT_ADDR_ENABLE
/**
* @brief Enable 32bits address flash(larger than 16MB) can map to cache.
*
* @param flash_mode SPI flash working mode.
*
* @note This can be overridden because it's attribute weak.
*/
void __attribute__((weak)) bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t flash_mode);
#endif
#ifdef __cplusplus
}
#endif

View File

@@ -53,6 +53,8 @@ extern "C" {
#define CMD_RESUME 0x7A /* Resume command to clear flash suspend bit */
#define CMD_RESETEN 0x66
#define CMD_RESET 0x99
#define CMD_FASTRD_4B 0x0C
#define CMD_SLOWRD_4B 0x13
/* Provide a Flash API for bootloader_support code,

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -412,6 +412,33 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
return spi_to_esp_err(rc);
}
#if CONFIG_SPI_FLASH_OCTAL_32BIT_ADDR_ENABLE
void bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t flash_mode)
{
esp_rom_opiflash_spi0rd_t cache_rd = {};
switch (flash_mode) {
case ESP_ROM_SPIFLASH_FASTRD_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_SLOWRD_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = 0;
cache_rd.cmd = CMD_SLOWRD_4B;
cache_rd.cmd_bit_len = 8;
break;
default:
assert(false);
break;
}
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
esp_rom_opiflash_cache_mode_config(flash_mode, &cache_rd);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
}
#endif
#endif // BOOTLOADER_BUILD

View File

@@ -121,22 +121,6 @@ int bootloader_common_select_otadata(const esp_ota_select_entry_t *two_otadata,
#if defined( CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP ) || defined( CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC )
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t))
_Static_assert(RTC_RETAIN_MEM_ADDR >= SOC_RTC_DRAM_LOW, "rtc_retain_mem_t structure size is bigger than the RTC memory size. Consider reducing RTC reserved memory size.");
rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR;
#ifndef BOOTLOADER_BUILD
#include "heap_memory_layout.h"
/* 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 uint32_t rtc_retain_mem_size(void) {
#ifdef CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC
/* A custom memory has been reserved by the user, do not consider this memory into CRC calculation as it may change without
@@ -144,17 +128,19 @@ static uint32_t rtc_retain_mem_size(void) {
* minus the size of everything after (including) `custom` */
return offsetof(rtc_retain_mem_t, custom);
#else
return sizeof(rtc_retain_mem_t) - sizeof(rtc_retain_mem->crc);
return sizeof(rtc_retain_mem_t) - sizeof(bootloader_common_get_rtc_retain_mem()->crc);
#endif
}
static bool check_rtc_retain_mem(void)
{
rtc_retain_mem_t* rtc_retain_mem = bootloader_common_get_rtc_retain_mem();
return esp_rom_crc32_le(UINT32_MAX, (uint8_t*)rtc_retain_mem, rtc_retain_mem_size()) == rtc_retain_mem->crc && rtc_retain_mem->crc != UINT32_MAX;
}
static void update_rtc_retain_mem_crc(void)
{
rtc_retain_mem_t* rtc_retain_mem = bootloader_common_get_rtc_retain_mem();
rtc_retain_mem->crc = esp_rom_crc32_le(UINT32_MAX, (uint8_t*)rtc_retain_mem, rtc_retain_mem_size());
}
@@ -163,14 +149,14 @@ NOINLINE_ATTR void bootloader_common_reset_rtc_retain_mem(void)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
#pragma GCC diagnostic ignored "-Warray-bounds"
memset(rtc_retain_mem, 0, sizeof(rtc_retain_mem_t));
memset(bootloader_common_get_rtc_retain_mem(), 0, sizeof(rtc_retain_mem_t));
#pragma GCC diagnostic pop
}
uint16_t bootloader_common_get_rtc_retain_mem_reboot_counter(void)
{
if (check_rtc_retain_mem()) {
return rtc_retain_mem->reboot_counter;
return bootloader_common_get_rtc_retain_mem()->reboot_counter;
}
return 0;
}
@@ -178,13 +164,14 @@ uint16_t bootloader_common_get_rtc_retain_mem_reboot_counter(void)
esp_partition_pos_t* bootloader_common_get_rtc_retain_mem_partition(void)
{
if (check_rtc_retain_mem()) {
return &rtc_retain_mem->partition;
return &bootloader_common_get_rtc_retain_mem()->partition;
}
return NULL;
}
void bootloader_common_update_rtc_retain_mem(esp_partition_pos_t* partition, bool reboot_counter)
{
rtc_retain_mem_t* rtc_retain_mem = bootloader_common_get_rtc_retain_mem();
if (reboot_counter) {
if (!check_rtc_retain_mem()) {
bootloader_common_reset_rtc_retain_mem();
@@ -206,6 +193,13 @@ void bootloader_common_update_rtc_retain_mem(esp_partition_pos_t* partition, boo
rtc_retain_mem_t* bootloader_common_get_rtc_retain_mem(void)
{
return rtc_retain_mem;
#ifdef BOOTLOADER_BUILD
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t))
static rtc_retain_mem_t *const s_bootloader_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR;
return s_bootloader_retain_mem;
#else
static __attribute__((section(".bootloader_data_rtc_mem"))) rtc_retain_mem_t s_bootloader_retain_mem;
return &s_bootloader_retain_mem;
#endif // !BOOTLOADER_BUILD
}
#endif // defined( CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP ) || defined( CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC )

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -29,6 +29,9 @@
#include "esp32c2/rom/ets_sys.h"
#include "esp32c2/rom/uart.h"
#endif
#if SOC_USB_SERIAL_JTAG_SUPPORTED
#include "hal/usb_phy_ll.h"
#endif
#include "esp_rom_gpio.h"
#include "esp_rom_uart.h"
#include "esp_rom_sys.h"
@@ -105,8 +108,12 @@ void bootloader_console_init(void)
#endif
esp_rom_uart_usb_acm_init(s_usb_cdc_buf, sizeof(s_usb_cdc_buf));
esp_rom_uart_set_as_console(ESP_ROM_UART_USB);
esp_rom_uart_set_as_console(ESP_ROM_USB_OTG_NUM);
esp_rom_install_channel_putc(1, bootloader_console_write_char_usb);
#if SOC_USB_SERIAL_JTAG_SUPPORTED
usb_phy_ll_usb_wrap_pad_enable(&USB_WRAP, true);
usb_phy_ll_int_otg_enable(&USB_WRAP);
#endif
}
#endif //CONFIG_ESP_CONSOLE_USB_CDC

View File

@@ -26,9 +26,11 @@ void abort(void)
#if !CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT
esp_rom_printf("abort() was called at PC 0x%08x\r\n", (intptr_t)__builtin_return_address(0) - 3);
#endif
#if CONFIG_ESP_DEBUG_OCDAWARE
if (esp_cpu_dbgr_is_attached()) {
esp_cpu_dbgr_break();
}
#endif
while (1) {
}
}

View File

@@ -220,7 +220,9 @@ static esp_err_t bootloader_init_spi_flash(void)
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
#if CONFIG_SPI_FLASH_OCTAL_32BIT_ADDR_ENABLE
bootloader_flash_32bits_address_map_enable(bootloader_flash_get_spi_mode());
#endif
print_flash_info(&bootloader_image_hdr);
update_flash_config(&bootloader_image_hdr);
//ensure the flash is write-protected

View File

@@ -860,7 +860,7 @@ static esp_err_t verify_secure_boot_signature(bootloader_sha256_handle_t sha_han
bootloader_munmap(simple_hash);
}
#if CONFIG_SECURE_BOOT_V2_ENABLED
#if CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME
// End of the image needs to be padded all the way to a 4KB boundary, after the simple hash
// (for apps they are usually already padded due to --secure-pad-v2, only a problem if this option was not used.)
uint32_t padded_end = ALIGN_UP(end, FLASH_SECTOR_SIZE);
@@ -870,7 +870,7 @@ static esp_err_t verify_secure_boot_signature(bootloader_sha256_handle_t sha_han
bootloader_munmap(padding);
end = padded_end;
}
#endif
#endif // CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME
bootloader_sha256_finish(sha_handle, image_digest);

View File

@@ -144,9 +144,9 @@ static esp_err_t secure_boot_v2_check(bool *need_fix)
#endif
#endif // CONFIG_SECURE_BOOT
#if CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
#if (CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME) && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
static void rsa_check_signature_on_update_check(void)
static void check_signature_on_update_check(void)
{
// We rely on the keys used to sign this app to verify the next app on OTA, so make sure there is at
// least one to avoid a stuck firmware
@@ -164,7 +164,7 @@ static void rsa_check_signature_on_update_check(void)
}
#endif
}
#endif // CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
#endif // (CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME) && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
void esp_secure_boot_init_checks(void)
{
@@ -184,9 +184,9 @@ void esp_secure_boot_init_checks(void)
#endif // CONFIG_SECURE_BOOT
#if CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
rsa_check_signature_on_update_check();
#endif // CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
#if (CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME) && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
check_signature_on_update_check();
#endif // (CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME || CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME) && CONFIG_SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
}

View File

@@ -2,6 +2,7 @@ if(CONFIG_BT_ENABLED)
set(srcs "")
set(include_dirs "")
set(ldfragments "linker.lf")
if(CONFIG_IDF_TARGET_ESP32)
list(APPEND srcs "controller/esp32/bt.c"
@@ -22,6 +23,7 @@ if(CONFIG_BT_ENABLED)
list(APPEND include_dirs include/esp32h2/include)
elseif(CONFIG_IDF_TARGET_ESP32C2)
set(ldfragments "linker.lf.esp32c2")
list(APPEND srcs "controller/esp32c2/bt.c")
list(APPEND include_dirs include/esp32c2/include)
endif()
@@ -321,6 +323,7 @@ if(CONFIG_BT_ENABLED)
"host/bluedroid/stack/gatt/gatt_db.c"
"host/bluedroid/stack/gatt/gatt_main.c"
"host/bluedroid/stack/gatt/gatt_sr.c"
"host/bluedroid/stack/gatt/gatt_sr_hash.c"
"host/bluedroid/stack/gatt/gatt_utils.c"
"host/bluedroid/stack/hcic/hciblecmds.c"
"host/bluedroid/stack/hcic/hcicmds.c"
@@ -522,6 +525,7 @@ if(CONFIG_BT_ENABLED)
host/nimble/nimble/nimble/host/services/dis/include
host/nimble/nimble/nimble/host/services/gap/include
host/nimble/nimble/nimble/host/services/gatt/include
host/nimble/nimble/nimble/host/services/htp/include
host/nimble/nimble/nimble/host/services/ias/include
host/nimble/nimble/nimble/host/services/ipss/include
host/nimble/nimble/nimble/host/services/lls/include
@@ -537,6 +541,7 @@ if(CONFIG_BT_ENABLED)
"host/nimble/nimble/nimble/host/services/ias/src/ble_svc_ias.c"
"host/nimble/nimble/nimble/host/services/ipss/src/ble_svc_ipss.c"
"host/nimble/nimble/nimble/host/services/ans/src/ble_svc_ans.c"
"host/nimble/nimble/nimble/host/services/htp/src/ble_svc_htp.c"
"host/nimble/nimble/nimble/host/services/gap/src/ble_svc_gap.c"
"host/nimble/nimble/nimble/host/services/bas/src/ble_svc_bas.c"
"host/nimble/nimble/nimble/host/services/dis/src/ble_svc_dis.c"
@@ -676,13 +681,12 @@ if(CONFIG_BT_ENABLED)
endif()
# requirements can't depend on config
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
REQUIRES esp_timer esp_wifi
PRIV_REQUIRES nvs_flash soc esp_pm esp_phy mbedtls driver vfs
LDFRAGMENTS "linker.lf")
LDFRAGMENTS "${ldfragments}")
if(CONFIG_BT_ENABLED)
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable)

View File

@@ -68,6 +68,17 @@ menu "Bluetooth"
source "$IDF_PATH/components/bt/controller/$IDF_TARGET/Kconfig.in"
endmenu
config BT_RELEASE_IRAM
depends on BT_ENABLED && BT_LE_RELEASE_IRAM_SUPPORTED
bool "Release Bluetooth text (READ DOCS FIRST)"
default n
help
This option release Bluetooth text section and merge Bluetooth data, bss & text into
a large free heap region when esp_bt_mem_release is called, total saving ~21kB or more of IRAM.
ESP32-C2 only 3 configurable PMP entries available, rest of them are hard-coded.
We cannot split the memory into 3 different regions (IRAM, BLE-IRAM, DRAM).
So this option will disable the PMP (ESP_SYSTEM_PMP_IDRAM_SPLIT)
endmenu
menuconfig BLE_MESH

View File

@@ -254,6 +254,32 @@ bool config_remove_section(config_t *config, const char *section)
return list_remove(config->sections, sec);
}
bool config_update_newest_section(config_t *config, const char *section)
{
assert(config != NULL);
assert(section != NULL);
list_node_t *first_node = list_begin(config->sections);
if (first_node == NULL) {
return false;
}
section_t *first_sec = list_node(first_node);
if (strcmp(first_sec->name, section) == 0) {
return true;
}
for (const list_node_t *node = list_begin(config->sections); node != list_end(config->sections); node = list_next(node)) {
section_t *sec = list_node(node);
if (strcmp(sec->name, section) == 0) {
list_delete(config->sections, sec);
list_prepend(config->sections, sec);
return true;
}
}
return false;
}
bool config_remove_key(config_t *config, const char *section, const char *key)
{
assert(config != NULL);

View File

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

View File

@@ -205,6 +205,11 @@ menu "HCI UART(H4) Options"
help
UART Baudrate for HCI. Please use standard baudrate.
config BTDM_CTRL_HCI_UART_FLOW_CTRL_EN
bool "Enable UART flow control"
depends on BTDM_CTRL_HCI_MODE_UART_H4
default y
endmenu
menu "MODEM SLEEP Options"

View File

@@ -235,6 +235,8 @@ extern int coex_wifi_channel_get(uint8_t *primary, uint8_t *secondary);
extern int coex_register_wifi_channel_change_callback(void *cb);
/* Shutdown */
extern void esp_bt_controller_shutdown(void);
extern void sdk_config_set_bt_pll_track_enable(bool enable);
extern void sdk_config_set_uart_flow_ctrl_enable(bool enable);
extern char _bss_start_btdm;
extern char _bss_end_btdm;
@@ -909,7 +911,11 @@ static void *malloc_internal_wrapper(size_t size)
static int32_t IRAM_ATTR read_mac_wrapper(uint8_t mac[6])
{
return esp_read_mac(mac, ESP_MAC_BT);
int ret = esp_read_mac(mac, ESP_MAC_BT);
ESP_LOGI(BTDM_LOG_TAG, "Bluetooth MAC: %02x:%02x:%02x:%02x:%02x:%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return ret;
}
static void IRAM_ATTR srand_wrapper(unsigned int seed)
@@ -1567,6 +1573,12 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
btdm_controller_set_sleep_mode(BTDM_MODEM_SLEEP_MODE_NONE);
#endif
#if CONFIG_BTDM_CTRL_HCI_UART_FLOW_CTRL_EN
sdk_config_set_uart_flow_ctrl_enable(true);
#else
sdk_config_set_uart_flow_ctrl_enable(false);
#endif
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
if ((err = esp_pm_lock_create(ESP_PM_NO_LIGHT_SLEEP, 0, "btLS", &s_light_sleep_pm_lock)) != ESP_OK) {
@@ -1718,6 +1730,8 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
btdm_controller_enable_sleep(true);
}
sdk_config_set_bt_pll_track_enable(true);
// inititalize bluetooth baseband
btdm_check_and_init_bb();

View File

@@ -253,6 +253,33 @@ config BT_LE_CONTROLLER_TASK_STACK_SIZE
help
This configures stack size of NimBLE controller task
config BT_LE_CONTROLLER_LOG_ENABLED
bool "Controller log enable"
default n
help
Enable controller log
config BT_LE_CONTROLLER_LOG_CTRL_ENABLED
bool "enable controller log module"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable controller log module
config BT_LE_CONTROLLER_LOG_HCI_ENABLED
bool "enable HCI log module"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Enable hci log module
config BT_LE_CONTROLLER_LOG_DUMP_ONLY
bool "Controller log dump mode only"
depends on BT_LE_CONTROLLER_LOG_ENABLED
default y
help
Only operate in dump mode
config BT_LE_LL_RESOLV_LIST_SIZE
int "BLE LL Resolving list size"
range 1 5
@@ -345,7 +372,7 @@ config BT_LE_MAX_CONNECTIONS
choice BT_LE_COEX_PHY_CODED_TX_RX_TLIM
prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection"
default BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
depends on !BT_NIMBLE_ENABLED
depends on ESP32_WIFI_SW_COEXIST_ENABLE
help
When using PHY-Coded in BLE connection, limitation on max tx/rx time can be applied to
better avoid dramatic performance deterioration of Wi-Fi.
@@ -363,7 +390,7 @@ endchoice
config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
int
depends on !BT_NIMBLE_ENABLED
default 0 if !ESP32_WIFI_SW_COEXIST_ENABLE
default 1 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN
default 0 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
@@ -373,24 +400,45 @@ config BT_LE_SLEEP_ENABLE
help
Enable BLE sleep
choice BT_LE_WAKEUP_SOURCE
prompt "BLE light sleep wakeup source"
depends on BT_LE_SLEEP_ENABLE
default BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
config BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
bool "Use ESP timer to wakeup CPU"
help
Use esp timer to wakeup CPU
config BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
bool "Use BLE rtc timer to wakeup CPU"
help
Use BLE rtc timer to wakeup CPU
endchoice
config BT_LE_USE_ESP_TIMER
bool "Use Esp Timer for callout"
depends on !BT_NIMBLE_ENABLED
default y
help
Set this option to use Esp Timer which has higher priority timer instead of FreeRTOS timer
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
bool "BLE adv report flow control supported"
default y
help
The function is mainly used to enable flow control for advertising reports. When it is enabled,
advertising reports will be discarded by the controller if the number of unprocessed advertising
reports exceeds the size of BLE adv report flow control.
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM
int "BLE adv report flow control number"
depends on BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
range 50 1000
default 100
help
The number of unprocessed advertising report that bluetooth host can save.If you set
`BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a small value, this may cause adv packets lost.
If you set `BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a large value, bluetooth host may cache a
lot of adv packets and this may cause system memory run out. For example, if you set
it to 50, the maximum memory consumed by host is 35 * 50 bytes. Please set
`BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` according to your system free memory and handle adv
packets as fast as possible, otherwise it will cause adv packets lost.
config BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD
int "BLE adv lost event threshold value"
depends on BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
range 1 1000
default 20
help
When adv report flow control is enabled, The ADV lost event will be generated when the number
of ADV packets lost in the controller reaches this threshold. It is better to set a larger value.
If you set `BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more.
config BT_LE_RELEASE_IRAM_SUPPORTED
bool
default y

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -46,6 +46,10 @@
#include "hci/hci_hal.h"
#endif
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
#include "esp_private/pm_impl.h"
#endif // CONFIG_FREERTOS_USE_TICKLESS_IDLE
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
@@ -54,6 +58,8 @@
#include "soc/syscon_reg.h"
#include "soc/dport_access.h"
#include "hal/efuse_ll.h"
/* Macro definition
************************************************************************
*/
@@ -70,12 +76,12 @@
#ifdef CONFIG_BT_BLUEDROID_ENABLED
/* ACL_DATA_MBUF_LEADINGSPCAE: The leadingspace in user info header for ACL data */
#define ACL_DATA_MBUF_LEADINGSPCAE 4
#endif
#endif // CONFIG_BT_BLUEDROID_ENABLED
/* Types definition
************************************************************************
*/
struct osi_coex_funcs_t {
uint32_t _magic;
uint32_t _version;
@@ -108,14 +114,21 @@ struct ext_funcs_t {
uint32_t magic;
};
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
typedef void (*interface_func_t) (uint32_t len, const uint8_t*addr, bool end);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* External functions or variables
************************************************************************
*/
extern int ble_osi_coex_funcs_register(struct osi_coex_funcs_t *coex_funcs);
extern int coex_core_ble_conn_dyn_prio_get(bool *low, bool *high);
extern int ble_controller_init(esp_bt_controller_config_t *cfg);
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_log_init_async(interface_func_t bt_controller_log_interface, bool task_create, uint8_t buffers, uint32_t *bufs_size);
extern int ble_log_deinit_async(void);
extern void ble_log_async_output_dump_all(bool output);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
extern int ble_controller_deinit(void);
extern int ble_controller_enable(uint8_t mode);
extern int ble_controller_disable(void);
@@ -131,6 +144,9 @@ extern uint32_t r_os_cputime_get32(void);
extern uint32_t r_os_cputime_ticks_to_usecs(uint32_t ticks);
extern void r_ble_lll_rfmgmt_set_sleep_cb(void *s_cb, void *w_cb, void *s_arg, void *w_arg, uint32_t us_to_enabled);
extern void r_ble_rtc_wake_up_state_clr(void);
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
extern void esp_ble_set_wakeup_overhead(uint32_t overhead);
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
extern int os_msys_init(void);
extern void os_msys_buf_free(void);
extern int ble_sm_alg_gen_dhkey(const uint8_t *peer_pub_key_x,
@@ -141,14 +157,14 @@ extern int ble_txpwr_set(esp_ble_enhanced_power_type_t power_type, uint16_t hand
extern int ble_txpwr_get(esp_ble_enhanced_power_type_t power_type, uint16_t handle);
extern int ble_get_npl_element_info(esp_bt_controller_config_t *cfg, ble_npl_count_info_t * npl_info);
extern void bt_track_pll_cap(void);
extern uint32_t _bt_bss_start;
#if CONFIG_BT_RELEASE_IRAM
extern uint32_t _iram_bt_text_start;
extern uint32_t _bss_bt_end;
#else
extern uint32_t _bt_bss_end;
extern uint32_t _nimble_bss_start;
extern uint32_t _nimble_bss_end;
extern uint32_t _nimble_data_start;
extern uint32_t _nimble_data_end;
extern uint32_t _bt_data_start;
extern uint32_t _bt_data_end;
extern uint32_t _bt_controller_data_start;
#endif
/* Local Function Declaration
*********************************************************************
@@ -166,8 +182,9 @@ static int hci_uart_config_wrapper(int uart_no, int32_t speed, uint8_t databits,
static int hci_uart_close_wrapper(int uart_no);
static void hci_uart_blocking_tx_wrapper(int port, uint8_t data);
static int hci_uart_init_wrapper(int uart_no, void *cfg);
#endif
static int esp_intr_alloc_wrapper(int source, int flags, intr_handler_t handler, void *arg, void **ret_handle_in);
#endif // CONFIG_BT_LE_HCI_INTERFACE_USE_UART
static int esp_intr_alloc_wrapper(int source, int flags, intr_handler_t handler,
void *arg, void **ret_handle_in);
static int esp_intr_free_wrapper(void **ret_handle);
static void osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2);
static uint32_t osi_random_wrapper(void);
@@ -175,29 +192,27 @@ static void esp_reset_rpa_moudle(void);
static int esp_ecc_gen_key_pair(uint8_t *pub, uint8_t *priv);
static int esp_ecc_gen_dh_key(const uint8_t *peer_pub_key_x, const uint8_t *peer_pub_key_y,
const uint8_t *our_priv_key, uint8_t *out_dhkey);
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, bool end);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* Local variable definition
***************************************************************************
*/
/* Static variable declare */
static DRAM_ATTR esp_bt_controller_status_t ble_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
const static uint32_t log_bufs_size[] = {2048, 1024, 1024};
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* This variable tells if BLE is running */
static bool s_ble_active = false;
#ifdef CONFIG_PM_ENABLE
static DRAM_ATTR esp_pm_lock_handle_t s_pm_lock = NULL;
#define BTDM_MIN_TIMER_UNCERTAINTY_US (200)
#endif /* #ifdef CONFIG_PM_ENABLE */
#endif // CONFIG_PM_ENABLE
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
#define BLE_RTC_DELAY_US (1800)
#endif
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
#define BLE_RTC_DELAY_US (0)
static void ble_sleep_timer_callback(void *arg);
static DRAM_ATTR esp_timer_handle_t s_ble_sleep_timer = NULL;
#endif
static const struct osi_coex_funcs_t s_osi_coex_funcs_ro = {
@@ -240,8 +255,12 @@ static void IRAM_ATTR esp_reset_rpa_moudle(void)
DPORT_CLEAR_PERI_REG_MASK(SYSTEM_CORE_RST_EN_REG, BLE_RPA_REST_BIT);
}
static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn, uint32_t param1, uint32_t param2)
static void IRAM_ATTR osi_assert_wrapper(const uint32_t ln, const char *fn,
uint32_t param1, uint32_t param2)
{
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
esp_ble_controller_log_dump_all(true);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
BT_ASSERT_PRINT("BLE assert: line %d in function %s, param: 0x%x, 0x%x", ln, fn, param1, param2);
assert(0);
}
@@ -255,17 +274,17 @@ static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status)
{
#if CONFIG_SW_COEXIST_ENABLE
coex_schm_status_bit_set(type, status);
#endif
#endif // CONFIG_SW_COEXIST_ENABLE
}
static void coex_schm_status_bit_clear_wrapper(uint32_t type, uint32_t status)
{
#if CONFIG_SW_COEXIST_ENABLE
coex_schm_status_bit_clear(type, status);
#endif
#endif // CONFIG_SW_COEXIST_ENABLE
}
#ifdef CONFIG_BT_BLUEDROID_ENABLED
#ifdef CONFIG_BT_BLUEDROID_ENABLED
bool esp_vhci_host_check_send_available(void)
{
if (ble_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
@@ -318,6 +337,7 @@ void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
if (*(data) == DATA_TYPE_COMMAND) {
struct ble_hci_cmd *cmd = NULL;
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
assert(cmd);
memcpy((uint8_t *)cmd, data + 1, len - 1);
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
}
@@ -328,7 +348,6 @@ void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
assert(os_mbuf_append(om, &data[1], len - 1) == 0);
ble_hci_trans_hs_acl_tx(om);
}
}
esp_err_t esp_vhci_host_register_callback(const esp_vhci_host_callback_t *callback)
@@ -341,8 +360,7 @@ esp_err_t esp_vhci_host_register_callback(const esp_vhci_host_callback_t *callba
return ESP_OK;
}
#endif
#endif // CONFIG_BT_BLUEDROID_ENABLED
static int 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)
{
return (uint32_t)xTaskCreatePinnedToCore(task_func, name, stack_depth, param, prio, task_handle, (core_id < portNUM_PROCESSORS ? core_id : tskNO_AFFINITY));
@@ -387,8 +405,9 @@ static int hci_uart_init_cbs_wrapper(int uart_no, hci_uart_tx_char tx_func,
}
static int hci_uart_config_wrapper(int port_num, int32_t baud_rate, uint8_t data_bits, uint8_t stop_bits,
uart_parity_t parity, uart_hw_flowcontrol_t flow_ctl)
static int hci_uart_config_wrapper(int port_num, int32_t baud_rate, uint8_t data_bits,
uint8_t stop_bits,uart_parity_t parity,
uart_hw_flowcontrol_t flow_ctl)
{
int rc = -1;
rc = hci_uart_config(port_num, baud_rate, data_bits, stop_bits, parity, flow_ctl);
@@ -435,41 +454,22 @@ static int esp_intr_free_wrapper(void **ret_handle)
return rc;
}
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
void sleep_modem_light_sleep_overhead_set(uint32_t overhead)
{
esp_ble_set_wakeup_overhead(overhead);
}
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
IRAM_ATTR void controller_sleep_cb(uint32_t enable_tick, void *arg)
{
if (!s_ble_active) {
return;
}
#ifdef CONFIG_PM_ENABLE
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
uint32_t delta_tick;
uint32_t us_to_sleep;
uint32_t sleep_tick;
uint32_t tick_invalid = *(uint32_t*)(arg);
assert(arg != NULL);
if (!tick_invalid) {
sleep_tick = r_os_cputime_get32();
// start a timer to wake up and acquire the pm_lock before modem_sleep awakes
delta_tick = enable_tick - sleep_tick;
if (delta_tick & 0x80000000) {
return;
}
us_to_sleep = r_os_cputime_ticks_to_usecs(delta_tick);
if (us_to_sleep <= BTDM_MIN_TIMER_UNCERTAINTY_US) {
return;
}
esp_err_t err = esp_timer_start_once(s_ble_sleep_timer, us_to_sleep - BTDM_MIN_TIMER_UNCERTAINTY_US);
if (err != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ESP timer start failed\n");
return;
}
}
#endif // CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
r_ble_rtc_wake_up_state_clr();
#endif
esp_pm_lock_release(s_pm_lock);
r_ble_rtc_wake_up_state_clr();
#endif // CONFIG_PM_ENABLE
esp_phy_disable();
s_ble_active = false;
@@ -488,16 +488,6 @@ IRAM_ATTR void controller_wakeup_cb(void *arg)
s_ble_active = true;
}
#ifdef CONFIG_PM_ENABLE
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
static void ble_sleep_timer_callback(void * arg)
{
}
#endif // CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
#endif // CONFIG_PM_ENABLE
esp_err_t controller_sleep_init(void)
{
esp_err_t rc = 0;
@@ -517,73 +507,43 @@ esp_err_t controller_sleep_init(void)
if (rc != ESP_OK) {
goto error;
}
esp_pm_lock_acquire(s_pm_lock);
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
esp_timer_create_args_t create_args = {
.callback = ble_sleep_timer_callback,
.arg = NULL,
.name = "btSlp"
};
rc = esp_timer_create(&create_args, &s_ble_sleep_timer);
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
esp_sleep_enable_bt_wakeup();
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "Enable light sleep, the wake up source is BLE timer");
rc = esp_pm_register_inform_out_light_sleep_overhead_callback(sleep_modem_light_sleep_overhead_set);
if (rc != ESP_OK) {
goto error;
}
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "Enable light sleep, the wake up source is ESP timer");
#endif //CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
esp_sleep_enable_bt_wakeup();
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "Enable light sleep, the wake up source is BLE timer");
#endif // CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
#endif // CONFIG_FREERTOS_USE_TICKLESS_IDLE
return rc;
error:
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
esp_sleep_disable_bt_wakeup();
esp_pm_unregister_inform_out_light_sleep_overhead_callback(sleep_modem_light_sleep_overhead_set);
#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
/*lock should release first and then delete*/
if (s_pm_lock != NULL) {
esp_pm_lock_release(s_pm_lock);
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
}
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
if (s_ble_sleep_timer != NULL) {
esp_timer_stop(s_ble_sleep_timer);
esp_timer_delete(s_ble_sleep_timer);
s_ble_sleep_timer = NULL;
}
#endif // CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
esp_sleep_disable_bt_wakeup();
#endif // CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
#endif //CONFIG_PM_ENABLE
return rc;
}
void controller_sleep_deinit(void)
{
#ifdef CONFIG_PM_ENABLE
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
#ifdef CONFIG_FREERTOS_USE_TICKLESS_IDLE
r_ble_rtc_wake_up_state_clr();
esp_sleep_disable_bt_wakeup();
#endif //CONFIG_BT_LE_WAKEUP_SOURCE_BLE_RTC_TIMER
esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_AUTO);
esp_pm_unregister_inform_out_light_sleep_overhead_callback(sleep_modem_light_sleep_overhead_set);
#endif // CONFIG_FREERTOS_USE_TICKLESS_IDLE
#ifdef CONFIG_PM_ENABLE
/*lock should release first and then delete*/
if (s_ble_active) {
esp_pm_lock_release(s_pm_lock);
}
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
#ifdef CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
if (s_ble_sleep_timer != NULL) {
esp_timer_stop(s_ble_sleep_timer);
esp_timer_delete(s_ble_sleep_timer);
s_ble_sleep_timer = NULL;
}
#endif //CONFIG_BT_LE_WAKEUP_SOURCE_CPU_RTC_TIMER
#endif //CONFIG_PM_ENABLE
}
@@ -674,29 +634,45 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
#endif
esp_phy_modem_init();
periph_module_enable(PERIPH_BT_MODULE);
// init phy
esp_phy_enable();
s_ble_active = true;
// init bb
bt_bb_v2_init_cmplx(1);
periph_module_reset(PERIPH_BT_MODULE);
if (ble_osi_coex_funcs_register((struct osi_coex_funcs_t *)&s_osi_coex_funcs_ro) != 0) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "osi coex funcs reg failed");
ret = ESP_ERR_INVALID_ARG;
goto free_controller;
goto modem_deint;
}
#if CONFIG_SW_COEXIST_ENABLE
coex_init();
#endif
ret = ble_controller_init(cfg);
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_init failed %d", ret);
goto free_controller;
goto modem_deint;
}
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
interface_func_t bt_controller_log_interface;
bt_controller_log_interface = esp_bt_controller_log_interface;
uint8_t buffers = 0;
#if CONFIG_BT_LE_CONTROLLER_LOG_CTRL_ENABLED
buffers |= ESP_BLE_LOG_BUF_CONTROLLER;
#endif // CONFIG_BT_LE_CONTROLLER_LOG_CTRL_ENABLED
#if CONFIG_BT_LE_CONTROLLER_LOG_HCI_ENABLED
buffers |= ESP_BLE_LOG_BUF_HCI;
#endif // CONFIG_BT_LE_CONTROLLER_LOG_HCI_ENABLED
#if CONFIG_BT_LE_CONTROLLER_LOG_DUMP_ONLY
ret = ble_log_init_async(bt_controller_log_interface, false, buffers, (uint32_t *)log_bufs_size);
#else
ret = ble_log_init_async(bt_controller_log_interface, true, buffers, (uint32_t *)log_bufs_size);
#endif // CONFIG_BT_CONTROLLER_LOG_DUMP
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "ble_controller_log_init failed %d", ret);
goto controller_init_err;
}
#endif // CONFIG_BT_CONTROLLER_LOG_ENABLED
ret = controller_sleep_init();
if (ret != ESP_OK) {
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "controller_sleep_init failed %d", ret);
@@ -717,9 +693,14 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_OK;
free_controller:
controller_sleep_deinit();
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
controller_init_err:
ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_controller_deinit();
esp_phy_disable();
modem_deint:
esp_phy_modem_deinit();
periph_module_disable(PERIPH_BT_MODULE);
#if CONFIG_BT_NIMBLE_ENABLED
ble_npl_eventq_deinit(nimble_port_get_dflt_eventq());
#endif // CONFIG_BT_NIMBLE_ENABLED
@@ -741,13 +722,13 @@ esp_err_t esp_bt_controller_deinit(void)
controller_sleep_deinit();
if (s_ble_active) {
esp_phy_disable();
s_ble_active = false;
}
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_log_deinit_async();
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
ble_controller_deinit();
periph_module_disable(PERIPH_BT_MODULE);
#if CONFIG_BT_NIMBLE_ENABLED
/* De-initialize default event queue */
ble_npl_eventq_deinit(nimble_port_get_dflt_eventq());
@@ -782,6 +763,17 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state");
return ESP_FAIL;
}
if (!s_ble_active) {
#if CONFIG_PM_ENABLE
esp_pm_lock_acquire(s_pm_lock);
#endif // CONFIG_PM_ENABLE
// init phy
esp_phy_enable();
s_ble_active = true;
}
// init bb
bt_bb_v2_init_cmplx(1);
#if CONFIG_SW_COEXIST_ENABLE
coex_enable();
#endif
@@ -797,6 +789,13 @@ error:
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
if (s_ble_active) {
esp_phy_disable();
#if CONFIG_PM_ENABLE
esp_pm_lock_release(s_pm_lock);
#endif // CONFIG_PM_ENABLE
s_ble_active = false;
}
return ret;
}
@@ -809,6 +808,14 @@ esp_err_t esp_bt_controller_disable(void)
if (ble_controller_disable() != 0) {
return ESP_FAIL;
}
if (s_ble_active) {
esp_phy_disable();
#if CONFIG_PM_ENABLE
esp_pm_lock_release(s_pm_lock);
#endif // CONFIG_PM_ENABLE
s_ble_active = false;
}
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
@@ -839,32 +846,28 @@ esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
intptr_t mem_start, mem_end;
#if CONFIG_BT_RELEASE_IRAM && CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT
/* Release Bluetooth text section and merge Bluetooth data, bss & text into a large free heap
* region when esp_bt_mem_release is called, total saving ~21kB or more of IRAM. ESP32-C2 has
* only 3 configurable PMP entries available, rest of them are hard-coded. We cannot split the
* memory into 3 different regions (IRAM, BLE-IRAM, DRAM). So `ESP_SYSTEM_PMP_IDRAM_SPLIT` needs
* to be disabled.
*/
ESP_LOGE(NIMBLE_PORT_LOG_TAG, "`ESP_SYSTEM_PMP_IDRAM_SPLIT` should be disabled!");
assert(0);
#endif // CONFIG_BT_RELEASE_IRAM && CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT
if (mode & ESP_BT_MODE_BLE) {
mem_start = (intptr_t)&_bt_bss_start;
#if CONFIG_BT_RELEASE_IRAM
mem_start = (intptr_t)MAP_IRAM_TO_DRAM((intptr_t)&_iram_bt_text_start);
mem_end = (intptr_t)&_bss_bt_end;
#else
mem_start = (intptr_t)&_bt_controller_data_start;
mem_end = (intptr_t)&_bt_bss_end;
#endif // CONFIG_BT_RELEASE_IRAM
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release BT Data [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_nimble_bss_start;
mem_end = (intptr_t)&_nimble_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release NimBLE BSS [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_nimble_data_start;
mem_end = (intptr_t)&_nimble_data_end;
if (mem_start != mem_end) {
ESP_LOGD(NIMBLE_PORT_LOG_TAG, "Release NimBLE Data [0x%08x] - [0x%08x]", mem_start, mem_end);
ESP_LOGI(NIMBLE_PORT_LOG_TAG, "Release BLE [0x%08x] - [0x%08x], len %d", mem_start,
mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
@@ -994,6 +997,33 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
return (esp_power_level_t)tx_level;
}
uint8_t esp_ble_get_chip_rev_version(void)
{
return efuse_ll_get_chip_wafer_version_minor();
}
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, bool end)
{
for (int i = 0; i < len; i++) {
esp_rom_printf("%02x ", addr[i]);
}
if (end) {
esp_rom_printf("\n");
}
}
void esp_ble_controller_log_dump_all(bool output)
{
portMUX_TYPE spinlock;
portENTER_CRITICAL_SAFE(&spinlock);
BT_ASSERT_PRINT("\r\n[DUMP_START:");
ble_log_async_output_dump_all(output);
BT_ASSERT_PRINT("]\r\n");
portEXIT_CRITICAL_SAFE(&spinlock);
}
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
#if (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED == true)

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -40,7 +40,6 @@ extern "C" {
#define DEFAULT_BT_NIMBLE_WHITELIST_SIZE MYNEWT_VAL(BLE_LL_WHITELIST_SIZE)
#define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_HCI_EVT_HI_BUF_COUNT)
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_HCI_EVT_LO_BUF_COUNT)
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF
#else
@@ -116,11 +115,9 @@ extern "C" {
#define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT (8)
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
#endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
#ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART
#define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART

View File

@@ -78,15 +78,29 @@ config BT_CTRL_ADV_DUP_FILT_MAX
help
The maxinum number of suplicate scan filter
config BT_CTRL_HW_CCA
bool "HW CCA check enable"
default n
choice BT_BLE_CCA_MODE
prompt "BLE CCA mode"
default BT_BLE_CCA_MODE_NONE
help
It enables HW CCA feature in controller
Define BT BLE CCA mode
config BT_BLE_CCA_MODE_NONE
bool "NONE"
config BT_BLE_CCA_MODE_HW
bool "Hardware"
config BT_BLE_CCA_MODE_SW
bool "Software"
endchoice
config BT_BLE_CCA_MODE
int
default 0 if BT_BLE_CCA_MODE_NONE
default 1 if BT_BLE_CCA_MODE_HW
default 2 if BT_BLE_CCA_MODE_SW
config BT_CTRL_HW_CCA_VAL
int "CCA threshold value"
range 20 60
range 20 100
default 20
help
It is the threshold value of HW CCA, if the value is 30, it means CCA threshold is -30 dBm.
@@ -265,20 +279,19 @@ choice BT_CTRL_SCAN_DUPL_TYPE
config BT_CTRL_SCAN_DUPL_TYPE_DEVICE
bool "Scan Duplicate By Device Address"
help
This way is to use advertiser address filtering. The adv packet of the same address is only
allowed to be reported once
Advertising packets with the same address, address type, and advertising type are reported once.
config BT_CTRL_SCAN_DUPL_TYPE_DATA
bool "Scan Duplicate By Advertising Data"
help
This way is to use advertising data filtering. All same advertising data only allow to be reported
once even though they are from different devices.
Advertising packets with identical advertising data, address type, and advertising type
are reported only once, even if they originate from different devices.
config BT_CTRL_SCAN_DUPL_TYPE_DATA_DEVICE
bool "Scan Duplicate By Device Address And Advertising Data"
help
This way is to use advertising data and device address filtering. All different adv packets with
the same address are allowed to be reported.
Advertising packets with the same address, advertising data, address type,
and advertising type are reported only once.
endchoice
config BT_CTRL_SCAN_DUPL_TYPE
@@ -351,7 +364,7 @@ endchoice
config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF
int
default 0 if (!ESP32_WIFI_SW_COEXIST_ENABLE)
default 0 if !ESP32_WIFI_SW_COEXIST_ENABLE
default 1 if BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EN
default 0 if BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -111,7 +111,7 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010006
#define OSI_VERSION 0x00010007
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* Types definition
@@ -193,6 +193,8 @@ struct osi_funcs_t {
void (* _esp_hw_power_down)(void);
void (* _esp_hw_power_up)(void);
void (* _ets_backup_dma_copy)(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_rem);
void (* _ets_delay_us)(uint32_t us);
void (* _btdm_rom_table_ready)(void);
};
@@ -252,6 +254,8 @@ extern void esp_mac_bb_power_up(void);
extern void ets_backup_dma_copy(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem);
#endif
extern void btdm_cca_feature_enable(void);
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _btdm_bss_start;
@@ -311,6 +315,7 @@ static void interrupt_off_wrapper(int intr_num);
static void btdm_hw_mac_power_up_wrapper(void);
static void btdm_hw_mac_power_down_wrapper(void);
static void btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem);
static void btdm_funcs_table_ready_wrapper(void);
static void btdm_slp_tmr_callback(void *arg);
@@ -375,6 +380,8 @@ static const struct osi_funcs_t osi_funcs_ro = {
._esp_hw_power_down = btdm_hw_mac_power_down_wrapper,
._esp_hw_power_up = btdm_hw_mac_power_up_wrapper,
._ets_backup_dma_copy = btdm_backup_dma_copy_wrapper,
._ets_delay_us = esp_rom_delay_us,
._btdm_rom_table_ready = btdm_funcs_table_ready_wrapper,
};
static DRAM_ATTR struct osi_funcs_t *osi_funcs_p;
@@ -899,6 +906,13 @@ static void async_wakeup_request_end(int event)
return;
}
static void btdm_funcs_table_ready_wrapper(void)
{
#if BT_BLE_CCA_MODE == 2
btdm_cca_feature_enable();
#endif
}
static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status)
{
#if CONFIG_SW_COEXIST_ENABLE
@@ -1327,14 +1341,10 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
periph_module_enable(PERIPH_BT_MODULE);
periph_module_reset(PERIPH_BT_MODULE);
esp_phy_enable();
s_lp_stat.phy_enabled = 1;
if (btdm_controller_init(cfg) != 0) {
err = ESP_ERR_NO_MEM;
goto error;
}
coex_pti_v2();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
@@ -1364,11 +1374,6 @@ static void bt_controller_deinit_internal(void)
{
periph_module_disable(PERIPH_BT_MODULE);
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
}
// deinit low power control resources
do {
@@ -1462,6 +1467,12 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
return ESP_ERR_INVALID_ARG;
}
/* Enable PHY when enabling controller to reduce power dissipation after controller init
* Notice the init order: esp_phy_enable() -> bt_bb_v2_init_cmplx() -> coex_pti_v2()
*/
esp_phy_enable();
s_lp_stat.phy_enabled = 1;
#if CONFIG_SW_COEXIST_ENABLE
coex_enable();
#endif
@@ -1486,6 +1497,8 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
goto error;
}
coex_pti_v2();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED;
return ret;
@@ -1508,6 +1521,10 @@ error:
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
}
return ret;
}
@@ -1526,6 +1543,10 @@ esp_err_t esp_bt_controller_disable(void)
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;

View File

@@ -345,7 +345,7 @@ config BT_LE_MAX_CONNECTIONS
choice BT_LE_COEX_PHY_CODED_TX_RX_TLIM
prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection"
default BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
depends on !BT_NIMBLE_ENABLED
depends on ESP32_WIFI_SW_COEXIST_ENABLE
help
When using PHY-Coded in BLE connection, limitation on max tx/rx time can be applied to
better avoid dramatic performance deterioration of Wi-Fi.
@@ -363,7 +363,7 @@ endchoice
config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
int
depends on !BT_NIMBLE_ENABLED
default 0 if !ESP32_WIFI_SW_COEXIST_ENABLE
default 1 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN
default 0 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS

View File

@@ -8,7 +8,6 @@ if BLE_MESH
config BLE_MESH_USE_DUPLICATE_SCAN
bool "Support Duplicate Scan in BLE Mesh"
depends on BT_BLUEDROID_ENABLED
select BTDM_BLE_SCAN_DUPL if IDF_TARGET_ESP32
select BTDM_BLE_MESH_SCAN_DUPL_EN if IDF_TARGET_ESP32
select BT_CTRL_BLE_SCAN_DUPL if IDF_TARGET_ESP32C3

View File

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

View File

@@ -1615,6 +1615,7 @@ static void bt_mesh_bta_gattc_cb(tBTA_GATTC_EVT event, tBTA_GATTC *p_data)
}
break;
case BTA_GATTC_CLOSE_EVT:
bta_gattc_clcb_dealloc_by_conn_id(p_data->close.conn_id);
BT_DBG("BTA_GATTC_CLOSE_EVT");
break;
case BTA_GATTC_CONNECT_EVT: {

View File

@@ -197,6 +197,8 @@ static bool prov_bearers_valid(bt_mesh_prov_bearer_t bearers)
int bt_mesh_prov_enable(bt_mesh_prov_bearer_t bearers)
{
int err = 0;
if (bt_mesh_is_provisioned()) {
BT_WARN("%s, Already", __func__);
return -EALREADY;
@@ -232,7 +234,11 @@ int bt_mesh_prov_enable(bt_mesh_prov_bearer_t bearers)
if (IS_ENABLED(CONFIG_BLE_MESH_PB_ADV) &&
(bearers & BLE_MESH_PROV_ADV)) {
/* Make sure we're scanning for provisioning invitations */
bt_mesh_scan_enable();
err = bt_mesh_scan_enable();
if (err) {
return err;
}
/* Enable unprovisioned beacon sending */
bt_mesh_beacon_enable();
}
@@ -637,7 +643,10 @@ int bt_mesh_provisioner_enable(bt_mesh_prov_bearer_t bearers)
bt_mesh_beacon_enable();
}
bt_mesh_scan_enable();
err = bt_mesh_scan_enable();
if (err) {
return err;
}
return 0;
}

View File

@@ -1,7 +1,7 @@
/*
* SPDX-FileCopyrightText: 2017 Nordic Semiconductor ASA
* SPDX-FileCopyrightText: 2015-2016 Intel Corporation
* SPDX-FileContributor: 2018-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2018-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -88,7 +88,8 @@ int bt_mesh_host_init(void)
int rc;
if (init == true) {
return -EALREADY;
BT_WARN("Already initialized host for mesh!");
return 0;
}
rc = btc_init();
@@ -1943,9 +1944,43 @@ 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)
{
BT_ERR("Unsupported for NimBLE host");
return 0;
uint8_t value[6] = {0};
int rc = 0;
#if MYNEWT_VAL(BLE_HCI_VS)
struct ble_hci_vs_duplicate_exception_list_cp cmd;
#endif
if ((sub_code > BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN) ||
(sub_code < BLE_MESH_EXCEP_LIST_SUB_CODE_CLEAN &&
type > BLE_MESH_EXCEP_LIST_TYPE_MESH_PROXY_ADV) ||
(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_LIST_TYPE_MESH_LINK_ID) {
if (!info) {
BT_ERR("Invalid Provisioning Link ID");
return -EINVAL;
}
sys_memcpy_swap(value, info, sizeof(uint32_t));
}
BT_DBG("%s exceptional list, type 0x%08x", sub_code ? "Remove" : "Add", type);
#if MYNEWT_VAL(BLE_HCI_VS)
cmd.operation = sub_code;
cmd.type = htole32(type);
memcpy(&cmd.device_info, value, 6);
rc = ble_hs_hci_send_vs_cmd(BLE_HCI_OCF_VS_DUPLICATE_EXCEPTION_LIST,
&cmd, sizeof(cmd), NULL, 0);
#endif
return rc;
}
#endif

View File

@@ -19,6 +19,8 @@
#include "provisioner_prov.h"
#include "provisioner_main.h"
#define PROV_SVC_ADV_RX_CHECK(pre, cur) ((cur) < (pre) ? ((cur) + (UINT32_MAX - (pre)) >= 200) : ((cur) - (pre) >= 200))
#if CONFIG_BLE_MESH_PROVISIONER
_Static_assert(BLE_MESH_MAX_CONN >= CONFIG_BLE_MESH_PBG_SAME_TIME,
@@ -3426,6 +3428,21 @@ int bt_mesh_provisioner_prov_deinit(bool erase)
}
#endif /* CONFIG_BLE_MESH_DEINIT */
static bool bt_mesh_prov_svc_adv_filter(void)
{
static uint32_t timestamp = 0;
static uint32_t pre_timestamp = 0;
timestamp = k_uptime_get_32();
if (PROV_SVC_ADV_RX_CHECK(pre_timestamp, timestamp)) {
pre_timestamp = timestamp;
return false;
}
return true;
}
static bool is_unprov_dev_info_callback_to_app(bt_mesh_prov_bearer_t bearer, const uint8_t uuid[16],
const bt_mesh_addr_t *addr, uint16_t oob_info, int8_t rssi)
{
@@ -3443,6 +3460,11 @@ static bool is_unprov_dev_info_callback_to_app(bt_mesh_prov_bearer_t bearer, con
if (i == ARRAY_SIZE(unprov_dev)) {
BT_DBG("Device not in queue, notify to app layer");
if (adv_type == BLE_MESH_ADV_IND && bt_mesh_prov_svc_adv_filter()) {
return true;
}
if (notify_unprov_adv_pkt_cb) {
notify_unprov_adv_pkt_cb(addr->val, addr->type, adv_type, uuid, oob_info, bearer, rssi);
}
@@ -3470,7 +3492,7 @@ void bt_mesh_provisioner_unprov_beacon_recv(struct net_buf_simple *buf, int8_t r
uint16_t oob_info = 0U;
if (!(prov_ctx.bearers & BLE_MESH_PROV_ADV)) {
BT_WARN("Not support PB-ADV bearer");
BT_INFO("Not support PB-ADV bearer");
return;
}
@@ -3506,7 +3528,7 @@ void bt_mesh_provisioner_prov_adv_recv(struct net_buf_simple *buf,
uint16_t oob_info = 0U;
if (!(prov_ctx.bearers & BLE_MESH_PROV_GATT)) {
BT_WARN("Not support PB-GATT bearer");
BT_INFO("Not support PB-GATT bearer");
return;
}

View File

@@ -47,6 +47,13 @@ config BT_CLASSIC_ENABLED
help
For now this option needs "SMP_ENABLE" to be set to yes
config BT_CLASSIC_BQB_ENABLED
bool "Host Qualitifcation support for Classic Bluetooth"
depends on BT_CLASSIC_ENABLED
default n
help
This enables functionalities of Host qualification for Classic Bluetooth.
config BT_A2DP_ENABLE
bool "A2DP"
depends on BT_CLASSIC_ENABLED
@@ -69,21 +76,23 @@ config BT_L2CAP_ENABLED
This enables the Logical Link Control and Adaptation Layer Protocol.
Only supported classic bluetooth.
config BT_HFP_ENABLE
menuconfig BT_HFP_ENABLE
bool "Hands Free/Handset Profile"
depends on BT_CLASSIC_ENABLED
default n
help
Hands Free Unit and Audio Gateway can be included simultaneously
but they cannot run simultaneously due to internal limitations.
choice BT_HFP_ROLE
prompt "Hands-free Profile Role configuration"
config BT_HFP_CLIENT_ENABLE
bool "Hands Free Unit"
depends on BT_HFP_ENABLE
default y
config BT_HFP_CLIENT_ENABLE
bool "Hands Free Unit"
config BT_HFP_AG_ENABLE
bool "Audio Gateway"
endchoice
config BT_HFP_AG_ENABLE
bool "Audio Gateway"
depends on BT_HFP_ENABLE
default y
choice BT_HFP_AUDIO_DATA_PATH
prompt "audio(SCO) data path"
@@ -107,26 +116,26 @@ config BT_HFP_WBS_ENABLE
This enables Wide Band Speech. Should disable it when SCO data path is PCM.
Otherwise there will be no data transmited via GPIOs.
config BT_HID_ENABLED
menuconfig BT_HID_ENABLED
bool "Classic BT HID"
depends on BT_CLASSIC_ENABLED
default n
help
This enables the BT HID Host
choice BT_HID_ROLE
prompt "Profile Role configuration"
config BT_HID_HOST_ENABLED
bool "Classic BT HID Host"
depends on BT_HID_ENABLED
config BT_HID_HOST_ENABLED
bool "Classic BT HID Host"
help
This enables the BT HID Host
default n
help
This enables the BT HID Host
config BT_HID_DEVICE_ENABLED
bool "Classic BT HID Device"
help
This enables the BT HID Device
endchoice
config BT_HID_DEVICE_ENABLED
bool "Classic BT HID Device"
depends on BT_HID_ENABLED
help
This enables the BT HID Device
config BT_SSP_ENABLED
bool "Secure Simple Pairing"
@@ -208,6 +217,27 @@ config BT_GATTS_SEND_SERVICE_CHANGE_MODE
default 1 if BT_GATTS_SEND_SERVICE_CHANGE_MANUAL
default 0
config BT_GATTS_ROBUST_CACHING_ENABLED
bool "Enable Robust Caching on Server Side"
depends on BT_GATTS_ENABLE
default n
help
This option enable gatt robust caching feature on server
config BT_GATTS_DEVICE_NAME_WRITABLE
bool "Allow to write device name by GATT clients"
depends on BT_GATTS_ENABLE
default n
help
Enabling this option allows remote GATT clients to write device name
config BT_GATTS_APPEARANCE_WRITABLE
bool "Allow to write appearance by GATT clients"
depends on BT_GATTS_ENABLE
default n
help
Enabling this option allows remote GATT clients to write appearance
config BT_GATTC_ENABLE
bool "Include GATT client module(GATTC)"
depends on BT_BLE_ENABLED
@@ -223,6 +253,14 @@ config BT_GATTC_MAX_CACHE_CHAR
help
Maximum GATTC cache characteristic count
config BT_GATTC_NOTIF_REG_MAX
int "Max gattc notify(indication) register number"
depends on BT_GATTC_ENABLE
range 1 64
default 5
help
Maximum GATTC notify(indication) register number
config BT_GATTC_CACHE_NVS_FLASH
bool "Save gattc cache data to nvs flash"
depends on BT_GATTC_ENABLE
@@ -1093,6 +1131,15 @@ config BT_BLE_RPA_SUPPORTED
For other BLE chips, devices support network privacy mode and device privacy mode,
users can switch the two modes according to their own needs. So this option is enabled by default.
config BT_BLE_RPA_TIMEOUT
int "Timeout of resolvable private address"
depends on BT_BLUEDROID_ENABLED
range 1 3600
default 900
help
This set RPA timeout of Controller and Host.
Default is 900 s (15 minutes). Range is 1 s to 1 hour (3600 s).
config BT_BLE_50_FEATURES_SUPPORTED
bool "Enable BLE 5.0 features"
depends on (BT_BLUEDROID_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || SOC_ESP_NIMBLE_CONTROLLER))
@@ -1106,3 +1153,24 @@ config BT_BLE_42_FEATURES_SUPPORTED
default n
help
This enables BLE 4.2 features.
config BT_BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER
bool "Enable BLE periodic advertising sync transfer feature"
depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_FEATURES_SUPPORTED && SOC_ESP_NIMBLE_CONTROLLER)
default n
help
This enables BLE periodic advertising sync transfer feature
config BT_BLE_FEAT_PERIODIC_ADV_ENH
bool "Enable periodic adv enhancements(adi support)"
depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_FEATURES_SUPPORTED && SOC_ESP_NIMBLE_CONTROLLER)
default n
help
Enable the periodic advertising enhancements
config BT_BLE_HIGH_DUTY_ADV_INTERVAL
bool "Enable BLE high duty advertising interval feature"
depends on BT_BLUEDROID_ENABLED
default n
help
This enable BLE high duty advertising interval feature

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -122,6 +122,19 @@ esp_err_t esp_ble_gap_stop_advertising(void)
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_gap_clear_advertising(void)
{
btc_msg_t msg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_ACT_CLEAR_ADV;
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif // #if (BLE_42_FEATURE_SUPPORT == TRUE)
esp_err_t esp_ble_gap_update_conn_params(esp_ble_conn_update_params_t *params)
@@ -138,7 +151,7 @@ esp_err_t esp_ble_gap_update_conn_params(esp_ble_conn_update_params_t *params)
if (ESP_BLE_IS_VALID_PARAM(params->min_int, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(params->max_int, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(params->timeout, ESP_BLE_CONN_SUP_TOUT_MIN, ESP_BLE_CONN_SUP_TOUT_MAX) &&
(params->latency <= ESP_BLE_CONN_LATENCY_MAX || params->latency == ESP_BLE_CONN_PARAM_UNDEF) &&
(params->latency <= ESP_BLE_CONN_LATENCY_MAX) &&
((params->timeout * 10) >= ((1 + params->latency) * ((params->max_int * 5) >> 1))) && params->min_int <= params->max_int) {
msg.sig = BTC_SIG_API_CALL;
@@ -354,7 +367,7 @@ esp_err_t esp_ble_gap_set_prefer_conn_params(esp_bd_addr_t bd_addr,
if (ESP_BLE_IS_VALID_PARAM(min_conn_int, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(max_conn_int, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(supervision_tout, ESP_BLE_CONN_SUP_TOUT_MIN, ESP_BLE_CONN_SUP_TOUT_MAX) &&
(slave_latency <= ESP_BLE_CONN_LATENCY_MAX || slave_latency == ESP_BLE_CONN_PARAM_UNDEF) &&
(slave_latency <= ESP_BLE_CONN_LATENCY_MAX) &&
((supervision_tout * 10) >= ((1 + slave_latency) * ((max_conn_int * 5) >> 1))) && min_conn_int <= max_conn_int) {
msg.sig = BTC_SIG_API_CALL;
@@ -431,8 +444,7 @@ esp_err_t esp_ble_gap_config_adv_data_raw(uint8_t *raw_data, uint32_t raw_data_l
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
if (raw_data == NULL
|| (raw_data_len <= 0 || raw_data_len > ESP_BLE_ADV_DATA_LEN_MAX)) {
if ((raw_data_len != 0 && raw_data == NULL) || raw_data_len > ESP_BLE_ADV_DATA_LEN_MAX) {
return ESP_ERR_INVALID_ARG;
}
@@ -471,8 +483,7 @@ esp_err_t esp_ble_gap_config_scan_rsp_data_raw(uint8_t *raw_data, uint32_t raw_d
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
if (raw_data == NULL
|| (raw_data_len <= 0 || raw_data_len > ESP_BLE_SCAN_RSP_DATA_LEN_MAX)) {
if ((raw_data_len != 0 && raw_data == NULL) || raw_data_len > ESP_BLE_ADV_DATA_LEN_MAX) {
return ESP_ERR_INVALID_ARG;
}
@@ -578,7 +589,11 @@ esp_err_t esp_ble_gap_set_security_param(esp_ble_sm_param_t param_type,
LOG_ERROR("ESP_BLE_APP_ENC_KEY_SIZE is deprecated, use ESP_GATT_PERM_ENCRYPT_KEY_SIZE in characteristic definition");
return ESP_ERR_NOT_SUPPORTED;
}
if (param_type == ESP_BLE_SM_MAX_KEY_SIZE || param_type == ESP_BLE_SM_MIN_KEY_SIZE) {
if (((uint8_t *)value)[0] > 16 || ((uint8_t *)value)[0] < 7) {
return ESP_ERR_INVALID_ARG;
}
}
btc_msg_t msg = {0};
btc_ble_gap_args_t arg;
@@ -730,6 +745,38 @@ esp_err_t esp_ble_oob_req_reply(esp_bd_addr_t bd_addr, uint8_t *TK, uint8_t len)
btc_gap_ble_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_sc_oob_req_reply(esp_bd_addr_t bd_addr, uint8_t p_c[16], uint8_t p_r[16])
{
if (!p_c || !p_r) {
return ESP_ERR_INVALID_ARG;
}
btc_msg_t msg = {0};
btc_ble_gap_args_t arg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_SC_OOB_REQ_REPLY_EVT;
memcpy(arg.sc_oob_req_reply.bd_addr, bd_addr, ESP_BD_ADDR_LEN);
arg.sc_oob_req_reply.p_c = p_c;
arg.sc_oob_req_reply.p_r = p_r;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gap_args_t), btc_gap_ble_arg_deep_copy,
btc_gap_ble_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_create_sc_oob_data(void)
{
btc_msg_t msg = {0};
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_SC_CR_OOB_DATA_EVT;
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* #if (SMP_INCLUDED == TRUE) */
esp_err_t esp_ble_gap_disconnect(esp_bd_addr_t remote_device)
@@ -1021,8 +1068,13 @@ esp_err_t esp_ble_gap_periodic_adv_set_params(uint8_t instance, const esp_ble_ga
}
#if (CONFIG_BT_BLE_FEAT_PERIODIC_ADV_ENH)
esp_err_t esp_ble_gap_config_periodic_adv_data_raw(uint8_t instance, uint16_t length,
const uint8_t *data, bool only_update_did)
#else
esp_err_t esp_ble_gap_config_periodic_adv_data_raw(uint8_t instance, uint16_t length,
const uint8_t *data)
#endif
{
btc_msg_t msg;
btc_ble_5_gap_args_t arg;
@@ -1036,13 +1088,22 @@ esp_err_t esp_ble_gap_config_periodic_adv_data_raw(uint8_t instance, uint16_t le
arg.periodic_adv_cfg_data.instance = instance;
arg.periodic_adv_cfg_data.len = length;
arg.periodic_adv_cfg_data.data = (uint8_t *)data;
#if (CONFIG_BT_BLE_FEAT_PERIODIC_ADV_ENH)
arg.periodic_adv_cfg_data.only_update_did = only_update_did;
#else
arg.periodic_adv_cfg_data.only_update_did = false;
#endif
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_5_gap_args_t), btc_gap_ble_arg_deep_copy,
btc_gap_ble_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#if (CONFIG_BT_BLE_FEAT_PERIODIC_ADV_ENH)
esp_err_t esp_ble_gap_periodic_adv_start(uint8_t instance,bool include_adi)
#else
esp_err_t esp_ble_gap_periodic_adv_start(uint8_t instance)
#endif
{
btc_msg_t msg;
btc_ble_5_gap_args_t arg;
@@ -1053,6 +1114,11 @@ esp_err_t esp_ble_gap_periodic_adv_start(uint8_t instance)
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_PERIODIC_ADV_START;
#if (CONFIG_BT_BLE_FEAT_PERIODIC_ADV_ENH)
arg.periodic_adv_start.include_adi = include_adi;
#else
arg.periodic_adv_start.include_adi = false;
#endif
arg.periodic_adv_start.instance = instance;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_5_gap_args_t), NULL, NULL)
@@ -1267,7 +1333,7 @@ esp_err_t esp_ble_gap_prefer_ext_connect_params_set(esp_bd_addr_t addr,
if (ESP_BLE_IS_VALID_PARAM(phy_1m_conn_params->interval_min, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(phy_1m_conn_params->interval_max, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(phy_1m_conn_params->supervision_timeout, ESP_BLE_CONN_SUP_TOUT_MIN, ESP_BLE_CONN_SUP_TOUT_MAX) &&
(phy_1m_conn_params->latency <= ESP_BLE_CONN_LATENCY_MAX || phy_1m_conn_params->latency == ESP_BLE_CONN_PARAM_UNDEF) &&
(phy_1m_conn_params->latency <= ESP_BLE_CONN_LATENCY_MAX) &&
((phy_1m_conn_params->supervision_timeout * 10) >= ((1 + phy_1m_conn_params->latency) * ((phy_1m_conn_params->interval_max * 5) >> 1))) &&
(phy_1m_conn_params->interval_min <= phy_1m_conn_params->interval_max)) {
@@ -1291,7 +1357,7 @@ esp_err_t esp_ble_gap_prefer_ext_connect_params_set(esp_bd_addr_t addr,
if (ESP_BLE_IS_VALID_PARAM(phy_2m_conn_params->interval_min, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(phy_2m_conn_params->interval_max, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(phy_2m_conn_params->supervision_timeout, ESP_BLE_CONN_SUP_TOUT_MIN, ESP_BLE_CONN_SUP_TOUT_MAX) &&
(phy_2m_conn_params->latency <= ESP_BLE_CONN_LATENCY_MAX || phy_2m_conn_params->latency == ESP_BLE_CONN_PARAM_UNDEF) &&
(phy_2m_conn_params->latency <= ESP_BLE_CONN_LATENCY_MAX) &&
((phy_2m_conn_params->supervision_timeout * 10) >= ((1 + phy_2m_conn_params->latency) * ((phy_2m_conn_params->interval_max * 5) >> 1))) &&
(phy_2m_conn_params->interval_min <= phy_2m_conn_params->interval_max)) {
@@ -1315,7 +1381,7 @@ esp_err_t esp_ble_gap_prefer_ext_connect_params_set(esp_bd_addr_t addr,
if (ESP_BLE_IS_VALID_PARAM(phy_coded_conn_params->interval_min, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(phy_coded_conn_params->interval_max, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
ESP_BLE_IS_VALID_PARAM(phy_coded_conn_params->supervision_timeout, ESP_BLE_CONN_SUP_TOUT_MIN, ESP_BLE_CONN_SUP_TOUT_MAX) &&
(phy_coded_conn_params->latency <= ESP_BLE_CONN_LATENCY_MAX || phy_coded_conn_params->latency == ESP_BLE_CONN_PARAM_UNDEF) &&
(phy_coded_conn_params->latency <= ESP_BLE_CONN_LATENCY_MAX) &&
((phy_coded_conn_params->supervision_timeout * 10) >= ((1 + phy_coded_conn_params->latency) * ((phy_coded_conn_params->interval_max * 5) >> 1))) &&
(phy_coded_conn_params->interval_min <= phy_coded_conn_params->interval_max)) {
@@ -1339,3 +1405,95 @@ esp_err_t esp_ble_gap_prefer_ext_connect_params_set(esp_bd_addr_t addr,
}
#endif //#if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
esp_err_t esp_ble_gap_periodic_adv_recv_enable(uint16_t sync_handle, uint8_t enable)
{
btc_msg_t msg;
btc_ble_5_gap_args_t arg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_PERIODIC_ADV_RECV_ENABLE;
arg.periodic_adv_recv_en.sync_handle = sync_handle;
arg.periodic_adv_recv_en.enable = enable;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_5_gap_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_gap_periodic_adv_sync_trans(esp_bd_addr_t addr, uint16_t service_data, uint16_t sync_handle)
{
btc_msg_t msg;
btc_ble_5_gap_args_t arg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
if (addr == NULL) {
return ESP_ERR_INVALID_ARG;
}
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_PERIODIC_ADV_SYNC_TRANS;
memcpy(arg.periodic_adv_sync_trans.addr, addr, sizeof(esp_bd_addr_t));
arg.periodic_adv_sync_trans.service_data = service_data;
arg.periodic_adv_sync_trans.sync_handle = sync_handle;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_5_gap_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_gap_periodic_adv_set_info_trans(esp_bd_addr_t addr, uint16_t service_data, uint8_t adv_handle)
{
btc_msg_t msg;
btc_ble_5_gap_args_t arg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
if (addr == NULL) {
return ESP_ERR_INVALID_ARG;
}
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_PERIODIC_ADV_SET_INFO_TRANS;
memcpy(arg.periodic_adv_set_info_trans.addr, addr, sizeof(esp_bd_addr_t));
arg.periodic_adv_set_info_trans.service_data = service_data;
arg.periodic_adv_set_info_trans.adv_handle = adv_handle;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_5_gap_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_gap_set_periodic_adv_sync_trans_params(esp_bd_addr_t addr, const esp_ble_gap_past_params_t *params)
{
btc_msg_t msg;
btc_ble_5_gap_args_t arg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
if (params == NULL) {
return ESP_ERR_INVALID_ARG;
}
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BLE;
msg.act = BTC_GAP_BLE_SET_PERIODIC_ADV_SYNC_TRANS_PARAMS;
if (addr) {
memcpy(arg.set_periodic_adv_sync_trans_params.addr, addr, sizeof(esp_bd_addr_t));
} else {
memset(arg.set_periodic_adv_sync_trans_params.addr, 0, sizeof(esp_bd_addr_t));
}
memcpy(&arg.set_periodic_adv_sync_trans_params.params, params, sizeof(esp_ble_gap_past_params_t));
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_5_gap_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif //#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)

View File

@@ -412,6 +412,10 @@ esp_err_t esp_bt_gap_set_qos(esp_bd_addr_t remote_bda, uint32_t t_poll)
return ESP_ERR_INVALID_STATE;
}
if (t_poll < ESP_BT_GAP_TPOLL_MIN || t_poll > ESP_BT_GAP_TPOLL_MAX) {
return ESP_ERR_INVALID_ARG;
}
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GAP_BT;
msg.act = BTC_GAP_BT_ACT_SET_QOS;

View File

@@ -447,6 +447,41 @@ esp_err_t esp_ble_gattc_read_multiple(esp_gatt_if_t gattc_if,
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gattc_args_t), NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_gattc_read_multiple_variable(esp_gatt_if_t gattc_if,
uint16_t conn_id, esp_gattc_multi_t *read_multi,
esp_gatt_auth_req_t auth_req)
{
btc_msg_t msg = {0};
btc_ble_gattc_args_t arg;
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
tGATT_TCB *p_tcb = gatt_get_tcb_by_idx(conn_id);
if (!gatt_check_connection_state_by_tcb(p_tcb)) {
LOG_WARN("%s, The connection not created.", __func__);
return ESP_ERR_INVALID_STATE;
}
if (L2CA_CheckIsCongest(L2CAP_ATT_CID, p_tcb->peer_bda)) {
LOG_DEBUG("%s, the l2cap chanel is congest.", __func__);
return ESP_FAIL;
}
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GATTC;
msg.act = BTC_GATTC_ACT_READ_MULTIPLE_VARIABLE_CHAR;
arg.read_multiple.conn_id = BTC_GATT_CREATE_CONN_ID(gattc_if, conn_id);
arg.read_multiple.num_attr = read_multi->num_attr;
arg.read_multiple.auth_req = auth_req;
if (read_multi->num_attr > 0) {
memcpy(arg.read_multiple.handles, read_multi->handles, sizeof(uint16_t)*read_multi->num_attr);
} else {
LOG_ERROR("%s(), the num_attr should not be 0.", __func__);
return ESP_FAIL;
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gattc_args_t), NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_gattc_read_char_descr (esp_gatt_if_t gattc_if,
uint16_t conn_id, uint16_t handle,

View File

@@ -421,4 +421,17 @@ static esp_err_t esp_ble_gatts_add_char_desc_param_check(esp_attr_value_t *char_
return ESP_OK;
}
esp_err_t esp_ble_gatts_show_local_database(void)
{
btc_msg_t msg = {0};
ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_GATTS;
msg.act = BTC_GATTS_ACT_SHOW_LOCAL_DATABASE;
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif ///GATTS_INCLUDED

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -171,6 +171,9 @@ esp_err_t esp_hf_ag_volume_control(esp_bd_addr_t remote_addr, esp_hf_volume_cont
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (volume < 0 || volume > 15) {
return ESP_ERR_INVALID_ARG;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF;
@@ -237,6 +240,9 @@ esp_err_t esp_hf_ag_devices_status_indchange(esp_bd_addr_t remote_addr,
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (signal < 0 || signal > 5) {
return ESP_ERR_INVALID_ARG;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF;
@@ -255,6 +261,27 @@ esp_err_t esp_hf_ag_devices_status_indchange(esp_bd_addr_t remote_addr,
return (state == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL;
}
esp_err_t esp_hf_ag_ciev_report(esp_bd_addr_t remote_addr, esp_hf_ciev_report_type_t ind_type, int value)
{
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF;
msg.act = BTC_HF_CIEV_REPORT_EVT;
btc_hf_args_t arg;
memset(&arg, 0, sizeof(btc_hf_args_t));
memcpy(&(arg.ciev_rep.remote_addr), remote_addr, sizeof(esp_bd_addr_t));
arg.ciev_rep.ind.type = ind_type;
arg.ciev_rep.ind.value = value;
/* Switch to BTC context */
bt_status_t state = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL, NULL);
return (state == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL;
}
esp_err_t esp_hf_ag_cind_response(esp_bd_addr_t remote_addr,
esp_hf_call_status_t call_state,
esp_hf_call_setup_status_t call_setup_state,
@@ -264,6 +291,10 @@ esp_err_t esp_hf_ag_cind_response(esp_bd_addr_t remote_addr,
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (signal < 0 || signal > 5 || batt_lev < 0 || batt_lev > 5) {
return ESP_ERR_INVALID_ARG;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF;
@@ -337,11 +368,14 @@ esp_err_t esp_hf_ag_clcc_response(esp_bd_addr_t remote_addr, int index, esp_hf_c
return (stat == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL;
}
esp_err_t esp_hf_ag_cnum_response(esp_bd_addr_t remote_addr, char *number, esp_hf_subscriber_service_type_t type)
esp_err_t esp_hf_ag_cnum_response(esp_bd_addr_t remote_addr, char *number, int number_type, esp_hf_subscriber_service_type_t service_type)
{
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (number == NULL || number_type < 128 || number_type > 175) {
return ESP_ERR_INVALID_ARG;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF;
@@ -351,7 +385,8 @@ esp_err_t esp_hf_ag_cnum_response(esp_bd_addr_t remote_addr, char *number, esp_h
memset(&arg, 0, sizeof(btc_hf_args_t));
memcpy(&(arg.cnum_rep), remote_addr, sizeof(esp_bd_addr_t));
arg.cnum_rep.number = number; //deep_copy
arg.cnum_rep.type = type;
arg.cnum_rep.number_type = number_type;
arg.cnum_rep.service_type = service_type;
/* Switch to BTC context */
bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t),
@@ -512,10 +547,30 @@ esp_err_t esp_hf_ag_register_data_callback(esp_hf_incoming_data_cb_t recv, esp_h
}
#if (BTM_SCO_HCI_INCLUDED == TRUE)
esp_err_t esp_hf_ag_pkt_stat_nums_get(uint16_t sync_conn_handle)
{
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF;
msg.act = BTC_HF_REQUEST_PKT_STAT_EVT;
btc_hf_args_t arg;
memset(&arg, 0, sizeof(btc_hf_args_t));
arg.pkt_sync_hd.sync_conn_handle = sync_conn_handle;
/* Switch to BTC context */
bt_status_t status = btc_transfer_context(&msg, &arg, sizeof(btc_hf_args_t), NULL, NULL);
return (status == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL;
}
void esp_hf_ag_outgoing_data_ready(void)
{
btc_hf_ci_sco_data();
}
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) */
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE) */
#endif // BTC_HF_INCLUDED

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -515,8 +515,27 @@ esp_err_t esp_hf_client_register_data_callback(esp_hf_client_incoming_data_cb_t
return (stat == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL;
}
#if (BTM_SCO_HCI_INCLUDED == TRUE)
esp_err_t esp_hf_client_pkt_stat_nums_get(uint16_t sync_conn_handle)
{
if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
btc_msg_t msg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_HF_CLIENT;
msg.act = BTC_HF_CLIENT_REQUEST_PKT_STAT_EVT;
btc_hf_client_args_t arg;
memset(&arg, 0, sizeof(btc_hf_client_args_t));
arg.pkt_sync_hd.sync_conn_handle = sync_conn_handle;
/* Switch to BTC context */
bt_status_t stat = btc_transfer_context(&msg, &arg, sizeof(btc_hf_client_args_t), NULL, NULL);
return (stat == BT_STATUS_SUCCESS) ? ESP_OK : ESP_FAIL;
}
#if (BTM_SCO_HCI_INCLUDED == TRUE )
void esp_hf_client_outgoing_data_ready(void)
{
BTA_HfClientCiData();
@@ -537,6 +556,6 @@ int32_t esp_hf_client_pcm_resample(void *src, uint32_t in_bytes, void *dst)
return BTA_DmPcmResample(src, in_bytes, dst);
}
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) */
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE) */
#endif /* BTC_HF_CLIENT_INCLUDED */

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -241,7 +241,7 @@ typedef int32_t (* esp_a2d_source_data_cb_t)(uint8_t *buf, int32_t len);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
@@ -258,7 +258,7 @@ esp_err_t esp_a2d_register_callback(esp_a2d_cb_t callback);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
@@ -275,7 +275,7 @@ esp_err_t esp_a2d_sink_register_data_callback(esp_a2d_sink_data_cb_t callback);
*
* @return
* - ESP_OK: if the initialization request is sent successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -290,7 +290,7 @@ esp_err_t esp_a2d_sink_init(void);
*
* @return
* - ESP_OK: if the deinitialization request is sent successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -306,7 +306,7 @@ esp_err_t esp_a2d_sink_deinit(void);
*
* @return
* - ESP_OK: connect request is sent to lower layer successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -322,7 +322,7 @@ esp_err_t esp_a2d_sink_connect(esp_bd_addr_t remote_bda);
*
* @return
* - ESP_OK: disconnect request is sent to lower layer successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -339,7 +339,7 @@ esp_err_t esp_a2d_sink_disconnect(esp_bd_addr_t remote_bda);
*
* @return
* - ESP_OK: delay value is sent to lower layer successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -352,7 +352,7 @@ esp_err_t esp_a2d_sink_set_delay_value(uint16_t delay_value);
*
* @return
* - ESP_OK: if the request is sent successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -368,7 +368,7 @@ esp_err_t esp_a2d_sink_get_delay_value(void);
*
* @return
* - ESP_OK: control command is sent to lower layer successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -385,7 +385,7 @@ esp_err_t esp_a2d_media_ctrl(esp_a2d_media_ctrl_t ctrl);
*
* @return
* - ESP_OK: if the initialization request is sent to lower layer successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -400,7 +400,7 @@ esp_err_t esp_a2d_source_init(void);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -417,7 +417,7 @@ esp_err_t esp_a2d_source_deinit(void);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
@@ -433,7 +433,7 @@ esp_err_t esp_a2d_source_register_data_callback(esp_a2d_source_data_cb_t callbac
*
* @return
* - ESP_OK: connect request is sent to lower layer successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -448,7 +448,7 @@ esp_err_t esp_a2d_source_connect(esp_bd_addr_t remote_bda);
* @param[in] remote_bda: remote bluetooth device address
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/

View File

@@ -47,7 +47,6 @@ typedef enum {
ESP_BT_STATUS_MEMORY_FULL = 20, /* relate to BT_STATUS_MEMORY_FULL in bt_def.h */
ESP_BT_STATUS_EIR_TOO_LARGE, /* relate to BT_STATUS_EIR_TOO_LARGE in bt_def.h */
ESP_BT_STATUS_HCI_SUCCESS = ESP_BT_STATUS_BASE_FOR_HCI_ERR,
ESP_BT_STATUS_HCI_PENDING,
ESP_BT_STATUS_HCI_ILLEGAL_COMMAND,
ESP_BT_STATUS_HCI_NO_CONNECTION,
ESP_BT_STATUS_HCI_HW_FAILURE,
@@ -126,18 +125,20 @@ typedef uint8_t esp_link_key[ESP_BT_OCTET16_LEN]; /* Link Key */
/// Default GATT interface id
#define ESP_DEFAULT_GATT_IF 0xff
#if BLE_HIGH_DUTY_ADV_INTERVAL
#define ESP_BLE_PRIM_ADV_INT_MIN 0x000008 /*!< Minimum advertising interval for undirected and low duty cycle directed advertising */
#else
#define ESP_BLE_PRIM_ADV_INT_MIN 0x000020 /*!< Minimum advertising interval for undirected and low duty cycle directed advertising */
#endif
#define ESP_BLE_PRIM_ADV_INT_MAX 0xFFFFFF /*!< Maximum advertising interval for undirected and low duty cycle directed advertising */
#define ESP_BLE_CONN_INT_MIN 0x0006 /*!< relate to BTM_BLE_CONN_INT_MIN in stack/btm_ble_api.h */
#define ESP_BLE_CONN_INT_MAX 0x0C80 /*!< relate to BTM_BLE_CONN_INT_MAX in stack/btm_ble_api.h */
#define ESP_BLE_CONN_LATENCY_MAX 499 /*!< relate to ESP_BLE_CONN_LATENCY_MAX in stack/btm_ble_api.h */
#define ESP_BLE_CONN_SUP_TOUT_MIN 0x000A /*!< relate to BTM_BLE_CONN_SUP_TOUT_MIN in stack/btm_ble_api.h */
#define ESP_BLE_CONN_SUP_TOUT_MAX 0x0C80 /*!< relate to ESP_BLE_CONN_SUP_TOUT_MAX in stack/btm_ble_api.h */
#define ESP_BLE_CONN_PARAM_UNDEF 0xffff /* use this value when a specific value not to be overwritten */ /* relate to ESP_BLE_CONN_PARAM_UNDEF in stack/btm_ble_api.h */
#define ESP_BLE_SCAN_PARAM_UNDEF 0xffffffff /* relate to ESP_BLE_SCAN_PARAM_UNDEF in stack/btm_ble_api.h */
/// Check the param is valid or not
#define ESP_BLE_IS_VALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == ESP_BLE_CONN_PARAM_UNDEF))
#define ESP_BLE_IS_VALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) )
/// UUID type
typedef struct {
@@ -167,10 +168,10 @@ typedef uint8_t esp_bd_addr_t[ESP_BD_ADDR_LEN];
/// BLE device address type
typedef enum {
BLE_ADDR_TYPE_PUBLIC = 0x00,
BLE_ADDR_TYPE_RANDOM = 0x01,
BLE_ADDR_TYPE_RPA_PUBLIC = 0x02,
BLE_ADDR_TYPE_RPA_RANDOM = 0x03,
BLE_ADDR_TYPE_PUBLIC = 0x00, /*!< Public Device Address */
BLE_ADDR_TYPE_RANDOM = 0x01, /*!< Random Device Address. To set this address, use the function esp_ble_gap_set_rand_addr(esp_bd_addr_t rand_addr) */
BLE_ADDR_TYPE_RPA_PUBLIC = 0x02, /*!< Resolvable Private Address (RPA) with public identity address */
BLE_ADDR_TYPE_RPA_RANDOM = 0x03, /*!< Resolvable Private Address (RPA) with random identity address. To set this address, use the function esp_ble_gap_set_rand_addr(esp_bd_addr_t rand_addr) */
} esp_ble_addr_type_t;
/// white list address type

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -133,7 +133,7 @@ typedef enum {
ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT, /*!< When scan parameters set complete, the event comes */
ESP_GAP_BLE_SCAN_RESULT_EVT, /*!< When one scan result ready, the event comes each time */
ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT, /*!< When raw advertising data set complete, the event comes */
ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT, /*!< When raw advertising data set complete, the event comes */
ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT, /*!< When raw scan response data set complete, the event comes */
ESP_GAP_BLE_ADV_START_COMPLETE_EVT, /*!< When start advertising complete, the event comes */
ESP_GAP_BLE_SCAN_START_COMPLETE_EVT, /*!< When start scan complete, the event comes */
//BLE_INCLUDED
@@ -202,6 +202,14 @@ typedef enum {
ESP_GAP_BLE_SC_OOB_REQ_EVT, /*!< Secure Connection OOB request event */
ESP_GAP_BLE_SC_CR_LOC_OOB_EVT, /*!< Secure Connection create OOB data complete event */
ESP_GAP_BLE_GET_DEV_NAME_COMPLETE_EVT, /*!< When getting BT device name complete, the event comes */
//BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER
ESP_GAP_BLE_PERIODIC_ADV_RECV_ENABLE_COMPLETE_EVT, /*!< when set periodic advertising receive enable complete, the event comes */
ESP_GAP_BLE_PERIODIC_ADV_SYNC_TRANS_COMPLETE_EVT, /*!< when periodic advertising sync transfer complete, the event comes */
ESP_GAP_BLE_PERIODIC_ADV_SET_INFO_TRANS_COMPLETE_EVT, /*!< when periodic advertising set info transfer complete, the event comes */
ESP_GAP_BLE_SET_PAST_PARAMS_COMPLETE_EVT, /*!< when set periodic advertising sync transfer params complete, the event comes */
ESP_GAP_BLE_PERIODIC_ADV_SYNC_TRANS_RECV_EVT, /*!< when periodic advertising sync transfer received, the event comes */
// BLE_INCLUDED
ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT, /*!< When clear advertising complete, the event comes */
ESP_GAP_BLE_EVT_MAX, /*!< when maximum advertising event complete, the event comes */
} esp_gap_ble_cb_event_t;
@@ -586,6 +594,13 @@ typedef struct {
esp_bt_octet16_t dhk; /*!< the 16 bits of the dh key value */
} esp_ble_local_id_keys_t; /*!< the structure of the ble local id keys value type*/
/**
* @brief structure type of the ble local oob data value
*/
typedef struct {
esp_bt_octet16_t oob_c; /*!< the 128 bits of confirmation value */
esp_bt_octet16_t oob_r; /*!< the 128 bits of randomizer value */
} esp_ble_local_oob_data_t;
/**
* @brief Structure associated with ESP_AUTH_CMPL_EVT
@@ -612,6 +627,7 @@ typedef union
esp_ble_sec_req_t ble_req; /*!< BLE SMP related request */
esp_ble_key_t ble_key; /*!< BLE SMP keys used when pairing */
esp_ble_local_id_keys_t ble_id_keys; /*!< BLE IR event */
esp_ble_local_oob_data_t oob_data; /*!< BLE SMP secure connection OOB data */
esp_ble_auth_cmpl_t auth_cmpl; /*!< Authentication complete indication. */
} esp_ble_sec_t; /*!< BLE security type */
#if (BLE_42_FEATURE_SUPPORT == TRUE)
@@ -660,6 +676,8 @@ typedef enum {
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_BEACON_TYPE, /*!< BLE mesh beacon AD type, the format is | Len | 0x2B | Beacon Type | Beacon Data | */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROV_SRV_ADV, /*!< BLE mesh provisioning service uuid, the format is | 0x02 | 0x01 | flags | 0x03 | 0x03 | 0x1827 | .... |` */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROXY_SRV_ADV, /*!< BLE mesh adv with proxy service uuid, the format is | 0x02 | 0x01 | flags | 0x03 | 0x03 | 0x1828 | .... |` */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROXY_SOLIC_ADV, /*!< BLE mesh adv with proxy service uuid, the format is | 0x02 | 0x01 | flags | 0x03 | 0x03 | 0x1859 | .... |` */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_URI_ADV, /*!< BLE mesh URI adv, the format is ...| Len | 0x24 | data |... */
} esp_ble_duplicate_exceptional_info_type_t;
typedef enum {
@@ -667,7 +685,9 @@ typedef enum {
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_LINK_ID_LIST = BLE_BIT(1), /*!< duplicate scan exceptional mesh link ID list */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_BEACON_TYPE_LIST = BLE_BIT(2), /*!< duplicate scan exceptional mesh beacon type list */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_PROV_SRV_ADV_LIST = BLE_BIT(3), /*!< duplicate scan exceptional mesh adv with provisioning service uuid */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_PROXY_SRV_ADV_LIST = BLE_BIT(4), /*!< duplicate scan exceptional mesh adv with provisioning service uuid */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_PROXY_SRV_ADV_LIST = BLE_BIT(4), /*!< duplicate scan exceptional mesh adv with proxy service uuid */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_PROXY_SOLIC_ADV_LIST = BLE_BIT(5), /*!< duplicate scan exceptional mesh adv with proxy solicitation PDU uuid */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_MESH_URI_ADV_LIST = BLE_BIT(6), /*!< duplicate scan exceptional URI list */
ESP_BLE_DUPLICATE_SCAN_EXCEPTIONAL_ALL_LIST = 0xFFFF, /*!< duplicate scan exceptional all list */
} esp_duplicate_scan_exceptional_list_type_t;
@@ -902,6 +922,25 @@ typedef struct {
#endif //#if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/// Periodic advertising sync trans mode
#define ESP_BLE_GAP_PAST_MODE_NO_SYNC_EVT (0x00) /*!< No attempt is made to sync and no periodic adv sync transfer received event */
#define ESP_BLE_GAP_PAST_MODE_NO_REPORT_EVT (0x01) /*!< An periodic adv sync transfer received event and no periodic adv report events */
#define ESP_BLE_GAP_PAST_MODE_DUP_FILTER_DISABLED (0x02) /*!< Periodic adv report events will be enabled with duplicate filtering disabled */
#define ESP_BLE_GAP_PAST_MODE_DUP_FILTER_ENABLED (0x03) /*!< Periodic adv report events will be enabled with duplicate filtering enabled */
typedef uint8_t esp_ble_gap_past_mode_t;
/**
* @brief periodic adv sync transfer parameters
*/
typedef struct {
esp_ble_gap_past_mode_t mode; /*!< periodic advertising sync transfer mode */
uint16_t skip; /*!< the number of periodic advertising packets that can be skipped */
uint16_t sync_timeout; /*!< synchronization timeout for the periodic advertising train */
uint8_t cte_type; /*!< periodic advertising sync transfer CET type */
} esp_ble_gap_past_params_t;
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/**
* @brief Gap callback parameters union
*/
@@ -988,6 +1027,12 @@ typedef union {
struct ble_adv_stop_cmpl_evt_param {
esp_bt_status_t status; /*!< Indicate adv stop operation success status */
} adv_stop_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT */
/**
* @brief ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT
*/
struct ble_adv_clear_cmpl_evt_param {
esp_bt_status_t status; /*!< Indicate adv clear operation success status */
} adv_clear_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT */
#endif // #if (BLE_42_FEATURE_SUPPORT == TRUE)
/**
* @brief ESP_GAP_BLE_SET_STATIC_RAND_ADDR_EVT
@@ -1300,6 +1345,50 @@ typedef union {
esp_ble_gap_periodic_adv_report_t params; /*!< periodic advertising report parameters */
} period_adv_report; /*!< Event parameter of ESP_GAP_BLE_PERIODIC_ADV_REPORT_EVT */
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/**
* @brief ESP_GAP_BLE_PERIODIC_ADV_RECV_ENABLE_COMPLETE_EVT
*/
struct ble_periodic_adv_recv_enable_cmpl_param {
esp_bt_status_t status; /*!< Set periodic advertising receive enable status */
} period_adv_recv_enable; /*!< Event parameter of ESP_GAP_BLE_PERIODIC_ADV_RECV_ENABLE_COMPLETE_EVT */
/**
* @brief ESP_GAP_BLE_PERIODIC_ADV_SYNC_TRANS_COMPLETE_EVT
*/
struct ble_periodic_adv_sync_trans_cmpl_param {
esp_bt_status_t status; /*!< Periodic advertising sync transfer status */
esp_bd_addr_t bda; /*!< The remote device address */
} period_adv_sync_trans; /*!< Event parameter of ESP_GAP_BLE_PERIODIC_ADV_SYNC_TRANS_COMPLETE_EVT */
/**
* @brief ESP_GAP_BLE_PERIODIC_ADV_SET_INFO_TRANS_COMPLETE_EVT
*/
struct ble_periodic_adv_set_info_trans_cmpl_param {
esp_bt_status_t status; /*!< Periodic advertising set info transfer status */
esp_bd_addr_t bda; /*!< The remote device address */
} period_adv_set_info_trans; /*!< Event parameter of ESP_GAP_BLE_PERIODIC_ADV_SET_INFO_TRANS_COMPLETE_EVT */
/**
* @brief ESP_GAP_BLE_SET_PAST_PARAMS_COMPLETE_EVT
*/
struct ble_set_past_params_cmpl_param {
esp_bt_status_t status; /*!< Set periodic advertising sync transfer params status */
esp_bd_addr_t bda; /*!< The remote device address */
} set_past_params; /*!< Event parameter of ESP_GAP_BLE_SET_PAST_PARAMS_COMPLETE_EVT */
/**
* @brief ESP_GAP_BLE_PERIODIC_ADV_SYNC_TRANS_RECV_EVT
*/
struct ble_periodic_adv_sync_trans_recv_param {
esp_bt_status_t status; /*!< Periodic advertising sync transfer received status */
esp_bd_addr_t bda; /*!< The remote device address */
uint16_t service_data; /*!< The value provided by the peer device */
uint16_t sync_handle; /*!< Periodic advertising sync handle */
uint8_t adv_sid; /*!< Periodic advertising set id */
uint8_t adv_addr_type; /*!< Periodic advertiser address type */
esp_bd_addr_t adv_addr; /*!< Periodic advertiser address */
esp_ble_gap_phy_t adv_phy; /*!< Periodic advertising PHY */
uint16_t adv_interval; /*!< Periodic advertising interval */
uint8_t adv_clk_accuracy; /*!< Periodic advertising clock accuracy */
} past_received; /*!< Event parameter of ESP_GAP_BLE_PERIODIC_ADV_SYNC_TRANS_RECV_EVT */
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
} esp_ble_gap_cb_param_t;
/**
@@ -1424,9 +1513,17 @@ esp_err_t esp_ble_gap_update_conn_params(esp_ble_conn_update_params_t *params);
esp_err_t esp_ble_gap_set_pkt_data_len(esp_bd_addr_t remote_device, uint16_t tx_data_length);
/**
* @brief This function sets the static Random Address and Non-Resolvable Private Address for the application
* @brief This function allows configuring either a Non-Resolvable Private Address or a Static Random Address
*
* @param[in] rand_addr: the random address which should be setting
* @param[in] rand_addr: The address to be configured. Refer to the table below for possible address subtypes:
*
* | address [47:46] | Address Type |
* |-----------------|--------------------------|
* | 0b00 | Non-Resolvable Private |
* | | Address |
* |-----------------|--------------------------|
* | 0b11 | Static Random Address |
* |-----------------|--------------------------|
*
* @return
* - ESP_OK : success
@@ -1448,7 +1545,7 @@ esp_err_t esp_ble_gap_clear_rand_addr(void);
/**
* @brief Enable/disable privacy on the local device
* @brief Enable/disable privacy (including address resolution) on the local device
*
* @param[in] privacy_enable - enable/disable privacy on remote device.
*
@@ -1529,6 +1626,7 @@ esp_err_t esp_ble_gap_set_prefer_conn_params(esp_bd_addr_t bd_addr,
#endif // #if (BLE_42_FEATURE_SUPPORT == TRUE)
/**
* @brief Set device name to the local device
* Note: This API don't affect the advertising data
*
* @param[in] name - device name.
*
@@ -1577,7 +1675,7 @@ uint8_t *esp_ble_resolve_adv_data(uint8_t *adv_data, uint8_t type, uint8_t *leng
* @brief This function is called to set raw advertising data. User need to fill
* ADV data by self.
*
* @param[in] raw_data : raw advertising data
* @param[in] raw_data : raw advertising data with the format: [Length 1][Data Type 1][Data 1][Length 2][Data Type 2][Data 2] ...
* @param[in] raw_data_len : raw advertising data length , less than 31 bytes
*
* @return
@@ -1790,6 +1888,29 @@ esp_err_t esp_ble_get_bond_device_list(int *dev_num, esp_ble_bond_dev_t *dev_lis
*/
esp_err_t esp_ble_oob_req_reply(esp_bd_addr_t bd_addr, uint8_t *TK, uint8_t len);
/**
* @brief This function is called to provide the OOB data for
* SMP in response to ESP_GAP_BLE_SC_OOB_REQ_EVT
*
* @param[in] bd_addr: BD address of the peer device.
* @param[in] p_c: Confirmation value, it shall be a 128-bit random number
* @param[in] p_r: Randomizer value, it should be a 128-bit random number
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_sc_oob_req_reply(esp_bd_addr_t bd_addr, uint8_t p_c[16], uint8_t p_r[16]);
/**
* @brief This function is called to create the OOB data for
* SMP when secure connection
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_create_sc_oob_data(void);
#endif /* #if (SMP_INCLUDED == TRUE) */
/**
@@ -2007,6 +2128,22 @@ esp_err_t esp_ble_gap_ext_adv_set_clear(void);
*/
esp_err_t esp_ble_gap_periodic_adv_set_params(uint8_t instance, const esp_ble_gap_periodic_adv_params_t *params);
#if (CONFIG_BT_BLE_FEAT_PERIODIC_ADV_ENH)
/**
* @brief This function is used to set the data used in periodic advertising PDUs.
*
* @param[in] instance : identifies the advertising set whose periodic advertising parameters are being configured.
* @param[in] length : the length of periodic data
* @param[in] data : periodic data information
* @param[in] only_update_did : If true, only the Advertising DID of the periodic advertising will be updated, and the length and data parameters will be ignored.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_config_periodic_adv_data_raw(uint8_t instance, uint16_t length,
const uint8_t *data, bool only_update_did);
#else
/**
* @brief This function is used to set the data used in periodic advertising PDUs.
*
@@ -2020,6 +2157,21 @@ esp_err_t esp_ble_gap_periodic_adv_set_params(uint8_t instance, const esp_ble_ga
*/
esp_err_t esp_ble_gap_config_periodic_adv_data_raw(uint8_t instance, uint16_t length,
const uint8_t *data);
#endif
#if (CONFIG_BT_BLE_FEAT_PERIODIC_ADV_ENH)
/**
* @brief This function is used to request the Controller to enable the periodic advertising for the advertising set specified
*
* @param[in] instance : Used to identify an advertising set
* @param[in] include_adi : If true, the ADI (Advertising Data Info) field will be included in AUX_SYNC_IND PDUs
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_periodic_adv_start(uint8_t instance,bool include_adi);
#else
/**
* @brief This function is used to request the Controller to enable the periodic advertising for the advertising set specified
*
@@ -2030,6 +2182,7 @@ esp_err_t esp_ble_gap_config_periodic_adv_data_raw(uint8_t instance, uint16_t le
*
*/
esp_err_t esp_ble_gap_periodic_adv_start(uint8_t instance);
#endif
/**
* @brief This function is used to request the Controller to disable the periodic advertising for the advertising set specified
@@ -2166,6 +2319,71 @@ esp_err_t esp_ble_gap_prefer_ext_connect_params_set(esp_bd_addr_t addr,
#endif //#if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/**
* @brief This function is used to set periodic advertising receive enable
*
* @param[in] sync_handle : Handle of periodic advertising sync
* @param[in] enable : Determines whether reporting and duplicate filtering are enabled or disabled
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_periodic_adv_recv_enable(uint16_t sync_handle, uint8_t enable);
/**
* @brief This function is used to transfer periodic advertising sync
*
* @param[in] addr : Peer device address
* @param[in] service_data : Service data used by Host
* @param[in] sync_handle : Handle of periodic advertising sync
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_periodic_adv_sync_trans(esp_bd_addr_t addr,
uint16_t service_data, uint16_t sync_handle);
/**
* @brief This function is used to transfer periodic advertising set info
*
* @param[in] addr : Peer device address
* @param[in] service_data : Service data used by Host
* @param[in] adv_handle : Handle of advertising set
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_periodic_adv_set_info_trans(esp_bd_addr_t addr,
uint16_t service_data, uint8_t adv_handle);
/**
* @brief This function is used to set periodic advertising sync transfer params
*
* @param[in] addr : Peer device address
* @param[in] params : Params of periodic advertising sync transfer
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_set_periodic_adv_sync_trans_params(esp_bd_addr_t addr,
const esp_ble_gap_past_params_t *params);
#endif //#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/**
* @brief This function is used to clear legacy advertising
*
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_clear_advertising(void);
#ifdef __cplusplus
}
#endif

View File

@@ -106,6 +106,7 @@ typedef struct {
bool fec_required; /*!< FEC is required or not, true by default */
bool include_txpower; /*!< EIR data include TX power, false by default */
bool include_uuid; /*!< EIR data include UUID, false by default */
bool include_name; /*!< EIR data include device name, true by default */
uint8_t flag; /*!< EIR flags, see ESP_BT_EIR_FLAG for details, EIR will not include flag if it is 0, 0 by default */
uint16_t manufacturer_len; /*!< Manufacturer data length, 0 by default */
uint8_t *p_manufacturer_data; /*!< Manufacturer data point */
@@ -230,6 +231,11 @@ typedef enum {
#define ESP_BT_GAP_MIN_INQ_LEN (0x01) /*!< Minimum inquiry duration, unit is 1.28s */
#define ESP_BT_GAP_MAX_INQ_LEN (0x30) /*!< Maximum inquiry duration, unit is 1.28s */
/** Minimum, Default and Maximum poll interval **/
#define ESP_BT_GAP_TPOLL_MIN (0x0006) /*!< Minimum poll interval, unit is 625 microseconds */
#define ESP_BT_GAP_TPOLL_DFT (0x0028) /*!< Default poll interval, unit is 625 microseconds */
#define ESP_BT_GAP_TPOLL_MAX (0x1000) /*!< Maximum poll interval, unit is 625 microseconds */
/// GAP state callback parameters
typedef union {
/**

View File

@@ -60,6 +60,7 @@ typedef enum {
ESP_GATTC_SET_ASSOC_EVT = 44, /*!< When the ble gattc set the associated address complete, the event comes */
ESP_GATTC_GET_ADDR_LIST_EVT = 45, /*!< When the ble get gattc address list in cache finish, the event comes */
ESP_GATTC_DIS_SRVC_CMPL_EVT = 46, /*!< When the ble discover service complete, the event comes */
ESP_GATTC_READ_MULTI_VAR_EVT = 47, /*!< When read multiple variable characteristic complete, the event comes */
} esp_gattc_cb_event_t;
@@ -125,7 +126,7 @@ typedef union {
} search_res; /*!< Gatt client callback param of ESP_GATTC_SEARCH_RES_EVT */
/**
* @brief ESP_GATTC_READ_CHAR_EVT, ESP_GATTC_READ_DESCR_EVT
* @brief ESP_GATTC_READ_CHAR_EVT, ESP_GATTC_READ_DESCR_EVT, ESP_GATTC_READ_MULTIPLE_EVT, ESP_GATTC_READ_MULTI_VAR_EVT
*/
struct gattc_read_char_evt_param {
@@ -358,6 +359,7 @@ esp_err_t esp_ble_gattc_send_mtu_req (esp_gatt_if_t gattc_if, uint16_t conn_id);
* @brief This function is called to get service from local cache.
* This function report service search result by a callback
* event, and followed by a service search complete event.
* Note: 128-bit base UUID will automatically be converted to a 16-bit UUID in the search results. Other types of UUID remain unchanged.
*
* @param[in] gattc_if: Gatt client access interface.
* @param[in] conn_id: connection ID.
@@ -651,6 +653,23 @@ esp_err_t esp_ble_gattc_read_multiple(esp_gatt_if_t gattc_if,
uint16_t conn_id, esp_gattc_multi_t *read_multi,
esp_gatt_auth_req_t auth_req);
/**
* @brief This function is called to read multiple variable length characteristic or
* characteristic descriptors.
*
* @param[in] gattc_if: Gatt client access interface.
* @param[in] conn_id : connection ID.
* @param[in] read_multi : pointer to the read multiple parameter.
* @param[in] auth_req : authenticate request type
*
* @return
* - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_read_multiple_variable(esp_gatt_if_t gattc_if,
uint16_t conn_id, esp_gattc_multi_t *read_multi,
esp_gatt_auth_req_t auth_req);
/**
* @brief This function is called to read a characteristics descriptor.

View File

@@ -464,6 +464,7 @@ esp_err_t esp_ble_gatts_stop_service(uint16_t service_handle);
/**
* @brief Send indicate or notify to GATT client.
* Set param need_confirm as false will send notification, otherwise indication.
* Note: the size of indicate or notify data need less than MTU size,see "esp_ble_gattc_send_mtu_req".
*
* @param[in] gatts_if: GATT server access interface
* @param[in] conn_id - connection id to indicate.
@@ -572,6 +573,16 @@ esp_err_t esp_ble_gatts_close(esp_gatt_if_t gatts_if, uint16_t conn_id);
*/
esp_err_t esp_ble_gatts_send_service_change_indication(esp_gatt_if_t gatts_if, esp_bd_addr_t remote_bda);
/**
* @brief Print local database (GATT service table)
*
* @return
* - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_show_local_database(void);
#ifdef __cplusplus
}
#endif

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -62,13 +62,22 @@ typedef enum
ESP_HF_DIAL_EVT, /*!< Origin an outgoing call with specific number or the dial the last number */
ESP_HF_WBS_RESPONSE_EVT, /*!< Codec Status */
ESP_HF_BCS_RESPONSE_EVT, /*!< Final Codec Choice */
ESP_HF_PKT_STAT_NUMS_GET_EVT, /*!< Request number of packet different status */
} esp_hf_cb_event_t;
/// Dial type of ESP_HF_DIAL_EVT
typedef enum
{
ESP_HF_DIAL_NUM = 0, /*!< Dial with a phone number */
ESP_HF_DIAL_VOIP, /*!< Dial with VoIP */
ESP_HF_DIAL_MEM, /*!< Dial with a memory position */
} esp_hf_dial_type_t;
/// HFP AG callback parameters
typedef union
{
/**
* @brief ESP_HS_CONNECTION_STATE_EVT
* @brief ESP_HF_CONNECTION_STATE_EVT
*/
struct hf_conn_stat_param {
esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */
@@ -83,6 +92,7 @@ typedef union
struct hf_audio_stat_param {
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
esp_hf_audio_state_t state; /*!< Audio connection state */
uint16_t sync_conn_handle; /*!< (e)SCO connection handle */
} audio_stat; /*!< AG callback param of ESP_HF_AUDIO_STATE_EVT */
/**
@@ -97,6 +107,7 @@ typedef union
* @brief ESP_HF_VOLUME_CONTROL_EVT
*/
struct hf_volume_control_param {
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
esp_hf_volume_type_t type; /*!< Volume control target, speaker or microphone */
int volume; /*!< Gain, ranges from 0 to 15 */
} volume_control; /*!< AG callback param of ESP_HF_VOLUME_CONTROL_EVT */
@@ -105,48 +116,89 @@ typedef union
* @brief ESP_HF_UNAT_RESPONSE_EVT
*/
struct hf_unat_rep_param {
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
char *unat; /*!< Unknown AT command string */
}unat_rep; /*!< AG callback param of ESP_HF_UNAT_RESPONSE_EVT */
/**
* @brief ESP_HF_CIND_RESPONSE_EVT
*/
struct hf_cind_param {
esp_hf_call_status_t call_status; /*!< call status indicator */
esp_hf_call_setup_status_t call_setup_status; /*!< call setup status indicator */
esp_hf_network_state_t svc; /*!< bluetooth proprietary call hold status indicator */
int signal_strength; /*!< bluetooth proprietary call hold status indicator */
esp_hf_roaming_status_t roam; /*!< bluetooth proprietary call hold status indicator */
int battery_level; /*!< battery charge value, ranges from 0 to 5 */
esp_hf_call_held_status_t call_held_status; /*!< bluetooth proprietary call hold status indicator */
} cind; /*!< AG callback param of ESP_HF_CIND_RESPONSE_EVT */
} unat_rep; /*!< AG callback param of ESP_HF_UNAT_RESPONSE_EVT */
/**
* @brief ESP_HF_DIAL_EVT
*/
struct hf_out_call_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
esp_hf_dial_type_t type; /*!< dial type */
char *num_or_loc; /*!< location in phone memory */
} out_call; /*!< AG callback param of ESP_HF_DIAL_EVT */
/**
* @brief ESP_HF_IND_UPDATE_EVT
*/
struct hf_ind_upd_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} ind_upd; /*!< AG callback param of ESP_HF_IND_UPDATE_EVT */
/**
* @brief ESP_HF_CIND_RESPONSE_EVT
*/
struct hf_cind_rep_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} cind_rep; /*!< AG callback param of ESP_HF_CIND_RESPONSE_EVT */
/**
* @brief ESP_HF_COPS_RESPONSE_EVT
*/
struct hf_cops_rep_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} cops_rep; /*!< AG callback param of ESP_HF_COPS_RESPONSE_EVT */
/**
* @brief ESP_HF_CLCC_RESPONSE_EVT
*/
struct hf_clcc_rep_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} clcc_rep; /*!< AG callback param of ESP_HF_CLCC_RESPONSE_EVT */
/**
* @brief ESP_HF_CNUM_RESPONSE_EVT
*/
struct hf_cnum_rep_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} cnum_rep; /*!< AG callback param of ESP_HF_CNUM_RESPONSE_EVT */
/**
* @brief ESP_HF_VTS_RESPONSE_EVT
*/
struct hf_vts_rep_param {
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
char *code; /*!< MTF code from HF Client */
}vts_rep; /*!< AG callback param of ESP_HF_VTS_RESPONSE_EVT */
} vts_rep; /*!< AG callback param of ESP_HF_VTS_RESPONSE_EVT */
/**
* @brief ESP_HF_NREC_RESPONSE_EVT
*/
struct hf_nrec_param {
esp_hf_nrec_t state; /*!< NREC enabled or disabled */
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
esp_hf_nrec_t state; /*!< NREC enabled or disabled */
} nrec; /*!< AG callback param of ESP_HF_NREC_RESPONSE_EVT */
/**
* @brief ESP_HF_ATA_RESPONSE_EVT
*/
struct hf_ata_rep_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} ata_rep; /*!< AG callback param of ESP_HF_ATA_RESPONSE_EVT */
/**
* @brief ESP_HF_CHUP_RESPONSE_EVT
*/
struct hf_chup_rep_param {
esp_bd_addr_t remote_addr; /*!< remote bluetooth device address */
} chup_rep; /*!< AG callback param of ESP_HF_CHUP_RESPONSE_EVT */
/**
* @brief ESP_HF_WBS_RESPONSE_EVT
*/
struct hf_wbs_rep_param {
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
esp_hf_wbs_config_t codec; /*!< codec mode CVSD or mSBC */
} wbs_rep; /*!< AG callback param of ESP_HF_WBS_RESPONSE_EVT */
@@ -154,9 +206,23 @@ typedef union
* @brief ESP_HF_BCS_RESPONSE_EVT
*/
struct hf_bcs_rep_param {
esp_bd_addr_t remote_addr; /*!< Remote bluetooth device address */
esp_hf_wbs_config_t mode; /*!< codec mode CVSD or mSBC */
} bcs_rep; /*!< AG callback param of ESP_HF_BCS_RESPONSE_EVT */
/**
* @brief ESP_HF_PKT_STAT_NUMS_GET_EVT
*/
struct ag_pkt_status_nums {
uint32_t rx_total; /*!< the total number of packets received */
uint32_t rx_correct; /*!< the total number of packets data correctly received */
uint32_t rx_err; /*!< the total number of packets data with possible invalid */
uint32_t rx_none; /*!< the total number of packets data no received */
uint32_t rx_lost; /*!< the total number of packets data partially lost */
uint32_t tx_total; /*!< the total number of packets send */
uint32_t tx_discarded; /*!< the total number of packets send lost */
} pkt_nums; /*!< AG callback param of ESP_HF_PKT_STAT_NUMS_GET_EVT */
} esp_hf_cb_param_t; /*!< HFP AG callback param compound*/
/**
@@ -208,7 +274,7 @@ typedef void (* esp_hf_cb_t) (esp_hf_cb_event_t event, esp_hf_cb_param_t *param)
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
@@ -221,7 +287,7 @@ esp_err_t esp_hf_ag_register_callback(esp_hf_cb_t callback);
*
* @return
* - ESP_OK: if the initialization request is sent successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -234,7 +300,7 @@ esp_err_t esp_hf_ag_init(void);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -249,7 +315,7 @@ esp_err_t esp_hf_ag_deinit(void);
*
* @return
* - ESP_OK: connect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -264,7 +330,7 @@ esp_err_t esp_hf_ag_slc_connect(esp_bd_addr_t remote_bda);
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -278,8 +344,8 @@ esp_err_t esp_hf_ag_slc_disconnect(esp_bd_addr_t remote_bda);
* @param[in] remote_bda: remote bluetooth device address
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: audio connect request is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -293,8 +359,8 @@ esp_err_t esp_hf_ag_audio_connect(esp_bd_addr_t remote_bda);
* @param[in] remote_bda: remote bluetooth device address
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: audio disconnect request is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -310,8 +376,8 @@ esp_err_t esp_hf_ag_audio_disconnect(esp_bd_addr_t remote_bda);
* @param[in] value: 0 - voice recognition disabled, 1- voice recognition enabled
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: response of volume recognition is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -329,14 +395,15 @@ esp_err_t esp_hf_ag_vra_control(esp_bd_addr_t remote_bda, esp_hf_vr_state_t valu
* @param[in] volume: gain of the speaker of microphone, ranges 0 to 15
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: volume synchronization control is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_ARG: if arguments are invalid
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_volume_control(esp_bd_addr_t remote_bda, esp_hf_volume_control_target_t type, int volume);
/**
/**
*
* @brief Handle Unknown AT command from HFP Client.
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
@@ -346,14 +413,14 @@ esp_err_t esp_hf_ag_volume_control(esp_bd_addr_t remote_bda, esp_hf_volume_contr
* @param[in] unat: User AT command response to HF Client.
* It will response "ERROR" by default if unat is NULL.
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: response of unknown AT command is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_unknown_at_send(esp_bd_addr_t remote_addr, char *unat);
/**
/**
*
* @brief Unsolicited send extend AT error code to HFP Client.
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
@@ -362,14 +429,14 @@ esp_err_t esp_hf_ag_unknown_at_send(esp_bd_addr_t remote_addr, char *unat);
* @param[in] response_code: AT command response code
* @param[in] error_code: CME error code
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: extend error code is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_cmee_send(esp_bd_addr_t remote_bda, esp_hf_at_response_code_t response_code, esp_hf_cme_err_t error_code);
/**
/**
*
* @brief Unsolicited send device status notification to HFP Client.
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
@@ -380,16 +447,36 @@ esp_err_t esp_hf_ag_cmee_send(esp_bd_addr_t remote_bda, esp_hf_at_response_code_
* @param[in] ntk_state: network service state
* @param[in] signal: signal strength from 0 to 5
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: device status notification is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_ARG: if arguments are invalid
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_devices_status_indchange(esp_bd_addr_t remote_addr, esp_hf_call_status_t call_state,
esp_hf_call_setup_status_t call_setup_state,
esp_hf_network_state_t ntk_state, int signal);
esp_hf_call_setup_status_t call_setup_state,
esp_hf_network_state_t ntk_state, int signal) __attribute__((
deprecated("Please use esp_hf_ag_ciev_report")
));
/**
/**
*
* @brief Send indicator report "+CIEV: <ind> <value>" to HFP Client. "CIEV" means “indicator events reporting",
* and all indicator types can be sent one type at a time.
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
*
* @param[in] remote_addr: remote bluetooth device address
* @param[in] ind_type: indicator type
* @param[in] value: indicator value
* @return
* - ESP_OK: indicator report is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_ciev_report(esp_bd_addr_t remote_addr, esp_hf_ciev_report_type_t ind_type, int value);
/**
*
* @brief Response to device individual indicators to HFP Client.
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
@@ -403,8 +490,9 @@ esp_err_t esp_hf_ag_devices_status_indchange(esp_bd_addr_t remote_addr, esp_hf_c
* @param[in] batt_lev: battery level from 0 to 5
* @param[in] call_held_status: call held status
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: response to device individual indicators is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_ARG: if the arguments are invalid
* - ESP_FAIL: others
*
*/
@@ -422,8 +510,8 @@ esp_err_t esp_hf_ag_cind_response(esp_bd_addr_t remote_addr,
* @param[in] remote_addr: remote bluetooth device address
* @param[in] name: current operator name
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: reponse for AT+COPS command is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -435,7 +523,7 @@ esp_err_t esp_hf_ag_cops_response(esp_bd_addr_t remote_addr, char *name);
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
*
* @param[in] remote_addr: remote bluetooth device address
* @param[in] index: the index of current call
* @param[in] index: the index of current call, starting with 1, finishing response with 0 (send OK)
* @param[in] dir: call direction (incoming/outgoing)
* @param[in] current_call_state: current call state
* @param[in] mode: current call mode (voice/data/fax)
@@ -443,8 +531,8 @@ esp_err_t esp_hf_ag_cops_response(esp_bd_addr_t remote_addr, char *name);
* @param[in] number: current call number
* @param[in] type: international type or unknow
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: response to AT+CLCC command is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -459,14 +547,18 @@ esp_err_t esp_hf_ag_clcc_response(esp_bd_addr_t remote_addr, int index, esp_hf_c
*
* @param[in] remote_addr: remote bluetooth device address
* @param[in] number: registration number
* @param[in] type: service type (unknown/voice/fax)
* @param[in] number_type: value of number type from
* 128-143: national or international, may contain prefix and/or escape digits
* 144-159: international, includes country code prefix, add "+" if needed
* 160-175: national, but no prefix nor escape digits
* @param[in] service_type: service type (unknown/voice/fax)
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: response for AT+CNUM command is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_cnum_response(esp_bd_addr_t remote_addr, char *number, esp_hf_subscriber_service_type_t type);
esp_err_t esp_hf_ag_cnum_response(esp_bd_addr_t remote_addr, char *number, int number_type, esp_hf_subscriber_service_type_t service_type);
/**
*
@@ -476,8 +568,9 @@ esp_err_t esp_hf_ag_cnum_response(esp_bd_addr_t remote_addr, char *number, esp_h
* @param[in] remote_addr: remote bluetooth device address
* @param[in] state: in-band ring tone state
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: information of in-band ring tone is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_ARG: if arguments are invalid
* - ESP_FAIL: others
*
*/
@@ -496,8 +589,8 @@ esp_err_t esp_hf_ag_bsir(esp_bd_addr_t remote_addr, esp_hf_in_band_ring_state_t
* @param[in] number: number of the incoming call
* @param[in] call_addr_type: call address type
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: answer incoming call is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -518,8 +611,8 @@ esp_err_t esp_hf_ag_answer_call(esp_bd_addr_t remote_addr, int num_active, int n
* @param[in] number: number of the incoming call
* @param[in] call_addr_type: call address type
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: reject incoming call is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -531,6 +624,9 @@ esp_err_t esp_hf_ag_reject_call(esp_bd_addr_t remote_addr, int num_active, int n
*
* @brief Initiate a call from AG.
* As a precondition to use this API, Service Level Connection shall exist with HFP client.
* If the AG is driven by the HF to call esp_hf_ag_out_call, it needs to response an OK or ERROR
* to HF. But if the AG is actively calling esp_hf_ag_out_call, it does not need to take a response
* to HF.
*
* @param[in] remote_addr: remote bluetooth device address
* @param[in] num_active: the number of active call
@@ -540,8 +636,8 @@ esp_err_t esp_hf_ag_reject_call(esp_bd_addr_t remote_addr, int num_active, int n
* @param[in] number: number of the outgoing call
* @param[in] call_addr_type: call address type
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: a call initiation is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -562,8 +658,8 @@ esp_err_t esp_hf_ag_out_call(esp_bd_addr_t remote_addr, int num_active, int num_
* @param[in] number: number of the call
* @param[in] call_addr_type: call address type
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: end an ongoing call is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -580,12 +676,28 @@ esp_err_t esp_hf_ag_end_call(esp_bd_addr_t remote_addr, int num_active, int num_
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
esp_err_t esp_hf_ag_register_data_callback(esp_hf_incoming_data_cb_t recv, esp_hf_outgoing_data_cb_t send);
/**
*
* @brief Get the number of packets received and sent
*
* This function is only used in the case that Voice Over HCI is enabled and the audio state is connected.
* When the operation is completed, the callback function will be called with ESP_HF_PKT_STAT_NUMS_GET_EVT.
*
* @param[in] sync_conn_handle: the (e)SCO connection handle
*
* @return
* - ESP_OK: if the request is sent successfully
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_ag_pkt_stat_nums_get(uint16_t sync_conn_handle);
/**
* @brief Trigger the lower-layer to fetch and send audio data.

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -96,6 +96,7 @@ typedef enum {
ESP_HF_CLIENT_BSIR_EVT, /*!< setting of in-band ring tone */
ESP_HF_CLIENT_BINP_EVT, /*!< requested number of last voice tag from AG */
ESP_HF_CLIENT_RING_IND_EVT, /*!< ring indication event */
ESP_HF_CLIENT_PKT_STAT_NUMS_GET_EVT, /*!< requested number of packet different status */
} esp_hf_client_cb_event_t;
/// HFP client callback parameters
@@ -116,6 +117,7 @@ typedef union {
struct hf_client_audio_stat_param {
esp_hf_client_audio_state_t state; /*!< audio connection state */
esp_bd_addr_t remote_bda; /*!< remote bluetooth device address */
uint16_t sync_conn_handle; /*!< (e)SCO connection handle */
} audio_stat; /*!< HF callback param of ESP_HF_CLIENT_AUDIO_STATE_EVT */
/**
@@ -251,6 +253,19 @@ typedef union {
const char *number; /*!< phone number corresponding to the last voice tag in the HF */
} binp; /*!< HF callback param of ESP_HF_CLIENT_BINP_EVT */
/**
* @brief ESP_HF_CLIENT_PKT_STAT_NUMS_GET_EVT
*/
struct hf_client_pkt_status_nums {
uint32_t rx_total; /*!< the total number of packets received */
uint32_t rx_correct; /*!< the total number of packets data correctly received */
uint32_t rx_err; /*!< the total number of packets data with possible invalid */
uint32_t rx_none; /*!< the total number of packets data no received */
uint32_t rx_lost; /*!< the total number of packets data partially lost */
uint32_t tx_total; /*!< the total number of packets send */
uint32_t tx_discarded; /*!< the total number of packets send lost */
} pkt_nums; /*!< HF callback param of ESP_HF_CLIENT_PKT_STAT_NUMS_GET_EVT */
} esp_hf_client_cb_param_t; /*!< HFP client callback parameters */
/**
@@ -298,7 +313,7 @@ typedef void (* esp_hf_client_cb_t)(esp_hf_client_cb_event_t event, esp_hf_clien
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
@@ -311,7 +326,7 @@ esp_err_t esp_hf_client_register_callback(esp_hf_client_cb_t callback);
*
* @return
* - ESP_OK: if the initialization request is sent successfully
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -324,7 +339,7 @@ esp_err_t esp_hf_client_init(void);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -339,7 +354,7 @@ esp_err_t esp_hf_client_deinit(void);
*
* @return
* - ESP_OK: connect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -354,7 +369,7 @@ esp_err_t esp_hf_client_connect(esp_bd_addr_t remote_bda);
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -367,8 +382,8 @@ esp_err_t esp_hf_client_disconnect(esp_bd_addr_t remote_bda);
*
* @param[in] remote_bda: remote bluetooth device address
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: connect audio request is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -381,8 +396,8 @@ esp_err_t esp_hf_client_connect_audio(esp_bd_addr_t remote_bda);
*
* @param[in] remote_bda: remote bluetooth device address
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: disconnect audio request is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -394,8 +409,8 @@ esp_err_t esp_hf_client_disconnect_audio(esp_bd_addr_t remote_bda);
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: starting voice recognition is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -407,8 +422,8 @@ esp_err_t esp_hf_client_start_voice_recognition(void);
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: stoping voice recognition is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -423,8 +438,8 @@ esp_err_t esp_hf_client_stop_voice_recognition(void);
* @param[in] volume: gain of the speaker of microphone, ranges 0 to 15
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: volume update is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -438,8 +453,8 @@ esp_err_t esp_hf_client_volume_update(esp_hf_volume_control_target_t type, int v
* @param[in] number: number string of the call. If NULL, the last number is called(aka re-dial)
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: a call placing is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -453,8 +468,8 @@ esp_err_t esp_hf_client_dial(const char *number);
* @param[in] location: location of the number in the memory
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: a memory call placing is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -471,8 +486,8 @@ esp_err_t esp_hf_client_dial_memory(int location);
* ESP_HF_CHLD_TYPE_REL_X or ESP_HF_CHLD_TYPE_PRIV_X
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: command AT+CHLD is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -486,8 +501,8 @@ esp_err_t esp_hf_client_send_chld_cmd(esp_hf_chld_type_t chld, int idx);
* @param[in] btrh: response and hold action to send
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: command AT+BTRH is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -499,8 +514,8 @@ esp_err_t esp_hf_client_send_btrh_cmd(esp_hf_btrh_cmd_t btrh);
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: a call answering is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -508,12 +523,12 @@ esp_err_t esp_hf_client_answer_call(void);
/**
*
* @brief Reject an incoming call(send AT+CHUP command).
* @brief Reject an incoming call or terminate an ongoing call(send AT+CHUP command).
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: the call rejecting is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -525,8 +540,8 @@ esp_err_t esp_hf_client_reject_call(void);
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: query of current calls is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -538,8 +553,8 @@ esp_err_t esp_hf_client_query_current_calls(void);
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: query of current operator name is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -551,8 +566,8 @@ esp_err_t esp_hf_client_query_current_operator_name(void);
* As a precondition to use this API, Service Level Connection shall exist with AG
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: the retrieving of subscriber information is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -566,8 +581,8 @@ esp_err_t esp_hf_client_retrieve_subscriber_info(void);
* @param[in] code: dtmf code, single ascii character in the set 0-9, #, *, A-D
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: the DTMF codes are sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -587,7 +602,7 @@ esp_err_t esp_hf_client_send_dtmf(char code);
*
* @return
* - ESP_OK: Feature enable request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -605,7 +620,7 @@ esp_err_t esp_hf_client_send_xapl(char *information, uint32_t features);
*
* @return
* - ESP_OK: battery level is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -617,8 +632,8 @@ esp_err_t esp_hf_client_send_iphoneaccev(uint32_t bat_level, bool docked);
* As a precondition to use this API, Service Level Connection shall exist with AG.
*
* @return
* - ESP_OK: disconnect request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_OK: the phone number request corresponding to last voice tag recorded is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -631,7 +646,7 @@ esp_err_t esp_hf_client_request_last_voice_tag_number(void);
*
* @return
* - ESP_OK: NREC=0 request is sent to lower layer
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -648,13 +663,29 @@ esp_err_t esp_hf_client_send_nrec(void);
*
* @return
* - ESP_OK: success
* - ESP_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: if callback is a NULL function pointer
*
*/
esp_err_t esp_hf_client_register_data_callback(esp_hf_client_incoming_data_cb_t recv,
esp_hf_client_outgoing_data_cb_t send);
/**
*
* @brief Get the number of packets received and sent
* This function is only used in the case that Voice Over HCI is enabled and the audio state is connected.
* When the operation is completed, the callback function will be called with ESP_HF_CLIENT_PKT_STAT_NUMS_GET_EVT.
*
* @param[in] sync_conn_handle: the (e)SCO connection handle
*
* @return
* - ESP_OK: if the request is sent successfully
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
esp_err_t esp_hf_client_pkt_stat_nums_get(uint16_t sync_conn_handle);
/**
* @brief Trigger the lower-layer to fetch and send audio data.
* This function is only only used in the case that Voice Over HCI is enabled. After this

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -51,6 +51,17 @@ typedef enum
ESP_HF_NETWORK_STATE_AVAILABLE
} esp_hf_network_state_t;
/// +CIEV report type
typedef enum {
ESP_HF_IND_TYPE_CALL = 1, /*!< position of call indicator */
ESP_HF_IND_TYPE_CALLSETUP, /*!< position of callsetup indicator */
ESP_HF_IND_TYPE_SERVICE, /*!< position of service indicator */
ESP_HF_IND_TYPE_SIGNAL, /*!< position of signal strength indicator, range: 0-5 */
ESP_HF_IND_TYPE_ROAM, /*!< position of roaming indicator */
ESP_HF_IND_TYPE_BATTCHG, /*!< position of battery charge indicator, range: 0-5 */
ESP_HF_IND_TYPE_CALLHELD /*!< position of callheld indicator */
} esp_hf_ciev_report_type_t;
/** +CIEV Service type */
typedef enum
{
@@ -60,7 +71,7 @@ typedef enum
/// +CIND call status indicator values
typedef enum {
ESP_HF_CALL_STATUS_NO_CALLS = 0, /*!< no call in progress */
ESP_HF_CALL_STATUS_NO_CALLS = 0, /*!< no call in progress */
ESP_HF_CALL_STATUS_CALL_IN_PROGRESS = 1, /*!< call is present(active or held) */
} esp_hf_call_status_t;
@@ -124,7 +135,7 @@ typedef enum {
/// +CNUM service type of the phone number
typedef enum {
ESP_HF_SUBSCRIBER_SERVICE_TYPE_UNKNOWN = 0, /*!< unknown */
ESP_HF_SUBSCRIBER_SERVICE_TYPE_VOICE, /*!< voice service */
ESP_HF_SUBSCRIBER_SERVICE_TYPE_VOICE = 4, /*!< voice service */
ESP_HF_SUBSCRIBER_SERVICE_TYPE_FAX, /*!< fax service */
} esp_hf_subscriber_service_type_t;

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -16,6 +16,7 @@
extern "C" {
#endif
/// maximum size of HID Device report descriptor
#define BTHH_MAX_DSC_LEN 884
/**
@@ -26,34 +27,33 @@ typedef enum {
ESP_HIDH_CONN_STATE_CONNECTING, /*!< connecting state */
ESP_HIDH_CONN_STATE_DISCONNECTED, /*!< disconnected state */
ESP_HIDH_CONN_STATE_DISCONNECTING, /*!< disconnecting state */
ESP_HIDH_CONN_STATE_UNKNOWN /*!< unknown state(initial state) */
ESP_HIDH_CONN_STATE_UNKNOWN /*!< unknown state (initial state) */
} esp_hidh_connection_state_t;
/**
* @brief HID handshake error code and vendor-defined result code
*/
typedef enum {
ESP_HIDH_OK,
ESP_HIDH_HS_HID_NOT_READY, /*!< handshake error : device not ready */
ESP_HIDH_HS_INVALID_RPT_ID, /*!< handshake error : invalid report ID */
ESP_HIDH_HS_TRANS_NOT_SPT, /*!< handshake error : transaction not spt */
ESP_HIDH_HS_INVALID_PARAM, /*!< handshake error : invalid paremeter */
ESP_HIDH_HS_ERROR, /*!< handshake error : unspecified HS error */
ESP_HIDH_ERR, /*!< general ESP HH error */
ESP_HIDH_OK, /*!< successful */
ESP_HIDH_HS_HID_NOT_READY, /*!< handshake error: device not ready */
ESP_HIDH_HS_INVALID_RPT_ID, /*!< handshake error: invalid report ID */
ESP_HIDH_HS_TRANS_NOT_SPT, /*!< handshake error: HID device does not support the request */
ESP_HIDH_HS_INVALID_PARAM, /*!< handshake error: parameter value does not meet the expected criteria of called function or API */
ESP_HIDH_HS_ERROR, /*!< handshake error: HID device could not identify the error condition */
ESP_HIDH_ERR, /*!< general ESP HID Host error */
ESP_HIDH_ERR_SDP, /*!< SDP error */
ESP_HIDH_ERR_PROTO, /*!< SET_Protocol error,
only used in ESP_HIDH_OPEN_EVT callback */
ESP_HIDH_ERR_DB_FULL, /*!< device database full error, used in
ESP_HIDH_OPEN_EVT/ESP_HIDH_ADD_DEV_EVT */
ESP_HIDH_ERR_PROTO, /*!< SET_PROTOCOL error, only used in ESP_HIDH_OPEN_EVT callback */
ESP_HIDH_ERR_DB_FULL, /*!< device database full, used in ESP_HIDH_OPEN_EVT/ESP_HIDH_ADD_DEV_EVT */
ESP_HIDH_ERR_TOD_UNSPT, /*!< type of device not supported */
ESP_HIDH_ERR_NO_RES, /*!< out of system resources */
ESP_HIDH_ERR_AUTH_FAILED, /*!< authentication fail */
ESP_HIDH_ERR_HDL, /*!< connection handle error */
ESP_HIDH_ERR_SEC, /*!< encryption error */
// self_defined
ESP_HIDH_BUSY, /*!< Temporarily can not handle this request. */
ESP_HIDH_NO_DATA, /*!< No data. */
ESP_HIDH_NEED_INIT, /*!< HIDH module shall init first */
ESP_HIDH_NEED_DEINIT, /*!< HIDH module shall deinit first */
ESP_HIDH_NO_CONNECTION, /*!< connection may have been closed */
ESP_HIDH_BUSY, /*!< vendor-defined: temporarily can not handle this request */
ESP_HIDH_NO_DATA, /*!< vendor-defined: no data. */
ESP_HIDH_NEED_INIT, /*!< vendor-defined: HIDH module shall initialize first */
ESP_HIDH_NEED_DEINIT, /*!< vendor-defined: HIDH module shall de-deinitialize first */
ESP_HIDH_NO_CONNECTION, /*!< vendor-defined: connection may have been closed */
} esp_hidh_status_t;
/**
@@ -79,35 +79,58 @@ typedef enum {
* @brief HID host callback function events
*/
typedef enum {
ESP_HIDH_INIT_EVT = 0, /*!< When HID host is initialized, the event comes */
ESP_HIDH_DEINIT_EVT, /*!< When HID host is deinitialized, the event comes */
ESP_HIDH_OPEN_EVT, /*!< When HID host connection opened, the event comes */
ESP_HIDH_CLOSE_EVT, /*!< When HID host connection closed, the event comes */
ESP_HIDH_GET_RPT_EVT, /*!< When Get_Report command is called, the event comes */
ESP_HIDH_SET_RPT_EVT, /*!< When Set_Report command is called, the event comes */
ESP_HIDH_GET_PROTO_EVT, /*!< When Get_Protocol command is called, the event comes */
ESP_HIDH_SET_PROTO_EVT, /*!< When Set_Protocol command is called, the event comes */
ESP_HIDH_GET_IDLE_EVT, /*!< When Get_Idle command is called, the event comes */
ESP_HIDH_SET_IDLE_EVT, /*!< When Set_Idle command is called, the event comes */
ESP_HIDH_GET_DSCP_EVT, /*!< When HIDH is initialized, the event comes */
ESP_HIDH_ADD_DEV_EVT, /*!< When a device is added, the event comes */
ESP_HIDH_RMV_DEV_EVT, /*!< When a device is removed, the event comes */
ESP_HIDH_VC_UNPLUG_EVT, /*!< When virtually unplugged, the event comes */
ESP_HIDH_DATA_EVT, /*!< When send data on interrupt channel, the event comes */
ESP_HIDH_DATA_IND_EVT, /*!< When receive data on interrupt channel, the event comes */
ESP_HIDH_SET_INFO_EVT /*!< When set the HID device descriptor, the event comes */
ESP_HIDH_INIT_EVT = 0, /*!< when HID host is initialized, the event comes */
ESP_HIDH_DEINIT_EVT, /*!< when HID host is deinitialized, the event comes */
ESP_HIDH_OPEN_EVT, /*!< when HID host connection opened, the event comes */
ESP_HIDH_CLOSE_EVT, /*!< when HID host connection closed, the event comes */
ESP_HIDH_GET_RPT_EVT, /*!< when Get_Report command is called, the event comes */
ESP_HIDH_SET_RPT_EVT, /*!< when Set_Report command is called, the event comes */
ESP_HIDH_GET_PROTO_EVT, /*!< when Get_Protocol command is called, the event comes */
ESP_HIDH_SET_PROTO_EVT, /*!< when Set_Protocol command is called, the event comes */
ESP_HIDH_GET_IDLE_EVT, /*!< when Get_Idle command is called, the event comes */
ESP_HIDH_SET_IDLE_EVT, /*!< when Set_Idle command is called, the event comes */
ESP_HIDH_GET_DSCP_EVT, /*!< when HIDH is initialized, the event comes */
ESP_HIDH_ADD_DEV_EVT, /*!< when a device is added, the event comes */
ESP_HIDH_RMV_DEV_EVT, /*!< when a device is removed, the event comes */
ESP_HIDH_VC_UNPLUG_EVT, /*!< when virtually unplugged, the event comes */
ESP_HIDH_DATA_EVT, /*!< when send data on interrupt channel, the event comes */
ESP_HIDH_DATA_IND_EVT, /*!< when receive data on interrupt channel, the event comes */
ESP_HIDH_SET_INFO_EVT /*!< when set the HID device descriptor, the event comes */
} esp_hidh_cb_event_t;
/**
* @brief HID device information from HID Device Service Record and Device ID Service Record
*/
typedef enum {
ESP_HIDH_DEV_ATTR_VIRTUAL_CABLE = 0x0001, /*!< whether Virtual Cables is supported */
ESP_HIDH_DEV_ATTR_NORMALLY_CONNECTABLE = 0x0002, /*!< whether device is in Page Scan mode when there is no active connection */
ESP_HIDH_DEV_ATTR_RECONNECT_INITIATE = 0x0004, /*!< whether the HID device inititates the reconnection process */
} esp_hidh_dev_attr_t;
/**
* @brief application ID(non-zero) for each type of device
*/
typedef enum {
ESP_HIDH_APP_ID_MOUSE = 1, /*!< pointing device */
ESP_HIDH_APP_ID_KEYBOARD = 2, /*!< keyboard */
ESP_HIDH_APP_ID_REMOTE_CONTROL = 3, /*!< remote control */
ESP_HIDH_APP_ID_JOYSTICK = 5, /*!< joystick */
ESP_HIDH_APP_ID_GAMEPAD = 6, /*!< gamepad*/
} esp_hidh_dev_app_id_t;
/**
* @brief HID device information from HID Device Service Record and Device ID Service Record
*/
typedef struct {
int attr_mask;
uint8_t sub_class;
uint8_t app_id;
int vendor_id;
int product_id;
int version;
uint8_t ctry_code;
int dl_len;
uint8_t dsc_list[BTHH_MAX_DSC_LEN];
int attr_mask; /*!< device attribute bit mask, refer to esp_hidh_dev_attr_t */
uint8_t sub_class; /*!< HID device subclass */
uint8_t app_id; /*!< application ID, refer to esp_hidh_dev_app_id_t */
int vendor_id; /*!< Device ID information: vendor ID */
int product_id; /*!< Device ID information: product ID */
int version; /*!< Device ID information: version */
uint8_t ctry_code; /*!< SDP attrbutes of HID devices: HID country code (https://www.usb.org/sites/default/files/hid1_11.pdf) */
int dl_len; /*!< SDP attrbutes of HID devices: HID device descriptor length */
uint8_t dsc_list[BTHH_MAX_DSC_LEN]; /*!< SDP attrbutes of HID devices: HID device descriptor definition */
} esp_hidh_hid_info_t;
/**
@@ -258,8 +281,8 @@ typedef union {
uint16_t vendor_id; /*!< Vendor ID */
uint16_t product_id; /*!< Product ID */
uint16_t version; /*!< Version */
uint16_t ssr_max_latency; /*!< SSR max latency */
uint16_t ssr_min_tout; /*!< SSR min timeout */
uint16_t ssr_max_latency; /*!< SSR max latency in slots */
uint16_t ssr_min_tout; /*!< SSR min timeout in slots */
uint8_t ctry_code; /*!< Country Code */
uint16_t dl_len; /*!< Device descriptor length */
uint8_t *dsc_list; /*!< Device descriptor pointer */
@@ -315,7 +338,7 @@ esp_err_t esp_bt_hid_host_init(void);
esp_err_t esp_bt_hid_host_deinit(void);
/**
* @brief Connect to hid device. When the operation is complete the callback
* @brief Connect to HID device. When the operation is complete the callback
* function will be called with ESP_HIDH_OPEN_EVT.
*
* @param[in] bd_addr: Remote device bluetooth device address.
@@ -326,7 +349,7 @@ esp_err_t esp_bt_hid_host_deinit(void);
esp_err_t esp_bt_hid_host_connect(esp_bd_addr_t bd_addr);
/**
* @brief Disconnect from hid device. When the operation is complete the callback
* @brief Disconnect from HID device. When the operation is complete the callback
* function will be called with ESP_HIDH_CLOSE_EVT.
*
* @param[in] bd_addr: Remote device bluetooth device address.

View File

@@ -232,7 +232,7 @@ void bta_ar_dereg_avct(tBTA_SYS_ID sys_id)
**
******************************************************************************/
void bta_ar_reg_avrc(UINT16 service_uuid, char *service_name, char *provider_name,
UINT16 categories, tBTA_SYS_ID sys_id)
UINT16 categories, tBTA_SYS_ID sys_id, BOOLEAN browsing_en)
{
UINT8 mask = bta_ar_id (sys_id);
UINT8 temp[8], *p;
@@ -245,7 +245,7 @@ void bta_ar_reg_avrc(UINT16 service_uuid, char *service_name, char *provider_nam
if (bta_ar_cb.sdp_tg_handle == 0) {
bta_ar_cb.tg_registered = mask;
bta_ar_cb.sdp_tg_handle = SDP_CreateRecord();
AVRC_AddRecord(service_uuid, service_name, provider_name, categories, bta_ar_cb.sdp_tg_handle);
AVRC_AddRecord(service_uuid, service_name, provider_name, categories, bta_ar_cb.sdp_tg_handle, browsing_en);
bta_sys_add_uuid(service_uuid);
}
/* only one TG is allowed (first-come, first-served).
@@ -255,7 +255,7 @@ void bta_ar_reg_avrc(UINT16 service_uuid, char *service_name, char *provider_nam
categories = bta_ar_cb.ct_categories[0] | bta_ar_cb.ct_categories[1];
if (bta_ar_cb.sdp_ct_handle == 0) {
bta_ar_cb.sdp_ct_handle = SDP_CreateRecord();
AVRC_AddRecord(service_uuid, service_name, provider_name, categories, bta_ar_cb.sdp_ct_handle);
AVRC_AddRecord(service_uuid, service_name, provider_name, categories, bta_ar_cb.sdp_ct_handle, browsing_en);
bta_sys_add_uuid(service_uuid);
} else {
/* multiple CTs are allowed.

View File

@@ -62,6 +62,11 @@
#define BTA_AV_RECONFIG_RETRY 6
#endif
/* avdt_handle to send abort command for AVDTP BQB test */
#if A2D_SRC_BQB_INCLUDED
static uint8_t s_avdt_bqb_handle;
#endif /* CONFIG_BT_BQB_ENABLED */
static void bta_av_st_rc_timer(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data);
/* state machine states */
@@ -733,8 +738,7 @@ static void bta_av_adjust_seps_idx(tBTA_AV_SCB *p_scb, UINT8 avdt_handle)
for (xx = 0; xx < BTA_AV_MAX_SEPS; xx++) {
APPL_TRACE_DEBUG("av_handle: %d codec_type: %d",
p_scb->seps[xx].av_handle, p_scb->seps[xx].codec_type);
if ((p_scb->seps[xx].av_handle && p_scb->codec_type == p_scb->seps[xx].codec_type)
&& (p_scb->seps[xx].av_handle == avdt_handle)) {
if ((p_scb->seps[xx].av_handle) && (p_scb->seps[xx].av_handle == avdt_handle)) {
p_scb->sep_idx = xx;
p_scb->avdt_handle = p_scb->seps[xx].av_handle;
break;
@@ -1027,6 +1031,7 @@ void bta_av_cleanup(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
p_scb->wait = 0;
p_scb->num_disc_snks = 0;
p_scb->disc_rsn = 0;
p_scb->avdt_handle = 0;
bta_sys_stop_timer(&p_scb->timer);
if (p_scb->deregistring) {
/* remove stream */
@@ -1415,6 +1420,10 @@ void bta_av_str_opened (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
}
}
#if A2D_SRC_BQB_INCLUDED
s_avdt_bqb_handle = p_scb->avdt_handle;
#endif /* A2D_SRC_BQB_INCLUDED */
#if 0 /* TODO: implement the property enable/disable */
// This code is used to pass PTS TC for AVDTP ABORT
char value[PROPERTY_VALUE_MAX] = {0};
@@ -1426,6 +1435,22 @@ void bta_av_str_opened (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
#endif /* #if 0*/
}
/*******************************************************************************
**
** Function avdt_bqb_abort
**
** Description Send AVDT abort request for BQB test
**
** Returns void
**
*******************************************************************************/
#if A2D_SRC_BQB_INCLUDED
void avdt_bqb_abort(void)
{
AVDT_AbortReq(s_avdt_bqb_handle);
}
#endif /* A2D_SRC_BQB_INCLUDED */
/*******************************************************************************
**
** Function bta_av_security_ind

View File

@@ -1861,8 +1861,8 @@ void bta_av_dereg_comp(tBTA_AV_DATA *p_data)
bta_sys_remove_uuid(UUID_SERVCLASS_VIDEO_SOURCE);
}
/* make sure that the timer is not active */
bta_sys_stop_timer(&p_scb->timer);
/* free the delay timer for AVRC CT */
bta_sys_free_timer(&p_scb->timer);
list_free(p_scb->a2d_list);
p_scb->a2d_list = NULL;
utl_freebuf((void **)&p_cb->p_scb[p_scb->hdi]);

View File

@@ -94,7 +94,8 @@ const tBTA_AV_CFG bta_av_cfg = {
6, /* AVDTP audio channel max data queue size */
BTA_AV_MAX_VDP_MTU, /* AVDTP video transport channel MTU at L2CAP */
600, /* AVDTP video transport channel flush timeout */
FALSE, /* TRUE, to accept AVRC 1.3 group nevigation command */
FALSE, /* TRUE, to accept AVRC 1.3 group nevigation command */
FALSE, /* FALSE, does not support browsing channel */
2, /* company id count in p_meta_co_ids */
BTA_AV_RC_PASS_RSP_CODE,/* the default response code for pass through commands */
bta_av_meta_caps_co_ids,/* the metadata Get Capabilities response for company id */

View File

@@ -585,10 +585,10 @@ static void bta_av_api_register(tBTA_AV_DATA *p_data)
(UINT8)(bta_av_cb.sec_mask & (~BTA_SEC_AUTHORIZE)), BTA_ID_AV);
if (p_data->api_reg.tsep == AVDT_TSEP_SRC) {
bta_ar_reg_avrc(UUID_SERVCLASS_AV_REM_CTRL_TARGET, "AV Remote Control Target\n", NULL,
p_bta_av_cfg->avrc_src_tg_cat, BTA_ID_AV);
p_bta_av_cfg->avrc_src_tg_cat, BTA_ID_AV, p_bta_av_cfg->avrc_br);
} else {
bta_ar_reg_avrc(UUID_SERVCLASS_AV_REM_CTRL_TARGET, "AV Remote Control Target\n", NULL,
p_bta_av_cfg->avrc_snk_tg_cat, BTA_ID_AV);
p_bta_av_cfg->avrc_snk_tg_cat, BTA_ID_AV, p_bta_av_cfg->avrc_br);
}
#endif
}
@@ -721,10 +721,10 @@ static void bta_av_api_register(tBTA_AV_DATA *p_data)
/* create an SDP record as AVRC CT. */
if (p_data->api_reg.tsep == AVDT_TSEP_SRC) {
bta_ar_reg_avrc(UUID_SERVCLASS_AV_REMOTE_CONTROL, "AV Remote Control Controller\n", NULL,
p_bta_av_cfg->avrc_src_ct_cat, BTA_ID_AV);
p_bta_av_cfg->avrc_src_ct_cat, BTA_ID_AV, p_bta_av_cfg->avrc_br);
} else {
bta_ar_reg_avrc(UUID_SERVCLASS_AV_REMOTE_CONTROL, "AV Remote Control Controller\n", NULL,
p_bta_av_cfg->avrc_snk_ct_cat, BTA_ID_AV);
p_bta_av_cfg->avrc_snk_ct_cat, BTA_ID_AV, p_bta_av_cfg->avrc_br);
}
#endif
}
@@ -1251,9 +1251,11 @@ BOOLEAN bta_av_hdl_event(BT_HDR *p_msg)
} else {
APPL_TRACE_VERBOSE("handle=0x%x\n", p_msg->layer_specific);
tBTA_AV_SCB *p_scb = bta_av_hndl_to_scb(p_msg->layer_specific);
p_scb->disc_rsn = p_msg->offset;
/* stream state machine events */
bta_av_ssm_execute(p_scb, p_msg->event, (tBTA_AV_DATA *) p_msg);
if (p_scb) {
p_scb->disc_rsn = p_msg->offset;
/* stream state machine events */
bta_av_ssm_execute(p_scb, p_msg->event, (tBTA_AV_DATA *) p_msg);
}
}
return TRUE;
}

View File

@@ -788,6 +788,7 @@ void bta_dm_config_eir (tBTA_DM_MSG *p_data)
tBTA_DM_API_CONFIG_EIR *config_eir = &p_data->config_eir;
p_bta_dm_eir_cfg->bta_dm_eir_fec_required = config_eir->eir_fec_required;
p_bta_dm_eir_cfg->bta_dm_eir_included_name = config_eir->eir_included_name;
p_bta_dm_eir_cfg->bta_dm_eir_included_uuid = config_eir->eir_included_uuid;
p_bta_dm_eir_cfg->bta_dm_eir_included_tx_power = config_eir->eir_included_tx_power;
p_bta_dm_eir_cfg->bta_dm_eir_flags = config_eir->eir_flags;
@@ -982,10 +983,6 @@ static void bta_dm_process_remove_device(BD_ADDR bd_addr, tBT_TRANSPORT transpor
BTM_SecDeleteDevice(bd_addr, transport);
#if (BLE_INCLUDED == TRUE && GATTC_INCLUDED == TRUE)
/* remove all cached GATT information */
BTA_GATTC_Refresh(bd_addr, false);
#endif
if (bta_dm_cb.p_sec_cback) {
tBTA_DM_SEC sec_event;
bdcpy(sec_event.link_down.bd_addr, bd_addr);
@@ -1140,8 +1137,6 @@ void bta_dm_close_acl(tBTA_DM_MSG *p_data)
#if (BLE_INCLUDED == TRUE && GATTC_INCLUDED == TRUE)
/* need to remove all pending background connection if any */
BTA_GATTC_CancelOpen(0, p_remove_acl->bd_addr, FALSE);
/* remove all cached GATT information */
BTA_GATTC_Refresh(p_remove_acl->bd_addr, false);
#endif
}
/* otherwise, no action needed */
@@ -1448,6 +1443,40 @@ void bta_dm_oob_reply(tBTA_DM_MSG *p_data)
#endif
}
/*******************************************************************************
**
** Function bta_dm_sc_oob_reply
**
** Description This function is called to provide the OOB data for
** SMP in response to BLE secure connection OOB request.
**
** Returns void
**
*******************************************************************************/
void bta_dm_sc_oob_reply(tBTA_DM_MSG *p_data)
{
#if (BLE_INCLUDED)
BTM_BleSecureConnectionOobDataReply(p_data->sc_oob_reply.bd_addr, p_data->sc_oob_reply.c, p_data->sc_oob_reply.r);
#endif
}
/*******************************************************************************
**
** Function bta_dm_sc_create_oob_data
**
** Description This function is called to create the OOB data for
** SMP when secure connection.
**
** Returns void
**
*******************************************************************************/
void bta_dm_sc_create_oob_data(tBTA_DM_MSG *p_data)
{
#if (BLE_INCLUDED)
BTM_BleSecureConnectionCreateOobData();
#endif
}
/*******************************************************************************
**
** Function bta_dm_ci_io_req_act
@@ -3636,8 +3665,6 @@ void bta_dm_acl_change(tBTA_DM_MSG *p_data)
#if (BLE_INCLUDED == TRUE && GATTC_INCLUDED == TRUE)
/* need to remove all pending background connection */
BTA_GATTC_CancelOpen(0, p_bda, FALSE);
/* remove all cached GATT information */
BTA_GATTC_Refresh(p_bda, false);
#endif
}
@@ -3815,8 +3842,6 @@ static BOOLEAN bta_dm_remove_sec_dev_entry(BD_ADDR remote_bd_addr)
#if (BLE_INCLUDED == TRUE && GATTC_INCLUDED == TRUE)
/* need to remove all pending background connection */
BTA_GATTC_CancelOpen(0, remote_bd_addr, FALSE);
/* remove all cached GATT information */
BTA_GATTC_Refresh(remote_bd_addr, false);
#endif
}
return is_device_deleted;
@@ -4015,15 +4040,20 @@ static void bta_dm_set_eir (char *local_name)
}
return;
}
/* if local name is not provided, get it from controller */
if ( local_name == NULL ) {
if ( BTM_ReadLocalDeviceName( &local_name ) != BTM_SUCCESS ) {
APPL_TRACE_ERROR("Fail to read local device name for EIR");
}
}
#endif // BTA_EIR_CANNED_UUID_LIST
if (p_bta_dm_eir_cfg->bta_dm_eir_included_name) {
/* if local name is not provided, get it from controller */
if ( local_name == NULL ) {
if ( BTM_ReadLocalDeviceName( &local_name ) != BTM_SUCCESS ) {
APPL_TRACE_ERROR("Fail to read local device name for EIR");
}
}
} else {
local_name = NULL;
}
/* Allocate a buffer to hold HCI command */
if ((p_buf = (BT_HDR *)osi_malloc(BTM_CMD_BUF_SIZE)) == NULL) {
APPL_TRACE_ERROR("bta_dm_set_eir couldn't allocate buffer");
@@ -4068,15 +4098,16 @@ static void bta_dm_set_eir (char *local_name)
}
}
UINT8_TO_STREAM(p, local_name_len + 1);
UINT8_TO_STREAM(p, data_type);
eir_type[eir_type_num++] = data_type;
if (local_name != NULL) {
UINT8_TO_STREAM(p, local_name_len + 1);
UINT8_TO_STREAM(p, data_type);
eir_type[eir_type_num++] = data_type;
memcpy(p, local_name, local_name_len);
p += local_name_len;
free_eir_length -= local_name_len + 2;
}
free_eir_length -= local_name_len + 2;
/* if UUIDs are provided in configuration */
if (p_bta_dm_eir_cfg->bta_dm_eir_included_uuid) {
@@ -4187,7 +4218,7 @@ static void bta_dm_set_eir (char *local_name)
for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) {
if (bta_dm_cb.custom_uuid[custom_uuid_idx].len == LEN_UUID_128) {
if ( num_uuid < max_num_uuid ) {
ARRAY16_TO_STREAM(p, bta_dm_cb.custom_uuid[custom_uuid_idx].uu.uuid128);
ARRAY_TO_STREAM(p, bta_dm_cb.custom_uuid[custom_uuid_idx].uu.uuid128, LEN_UUID_128);
num_uuid++;
} else {
data_type = BTM_EIR_MORE_128BITS_UUID_TYPE;
@@ -4275,13 +4306,24 @@ static void bta_dm_set_eir (char *local_name)
}
}
if ( free_eir_length ) {
/* If there is no other data to be sent in the EIR packet, the Host shall
* send a name tag with zero length and the type field set to indicate
* that this is the complete name (i.e., total of 2 octets with length =
* 1).
*/
if (eir_type_num == 0) {
UINT8_TO_STREAM(p, 1);
UINT8_TO_STREAM(p, BTM_EIR_COMPLETE_LOCAL_NAME_TYPE);
free_eir_length -= 2;
}
if (free_eir_length) {
UINT8_TO_STREAM(p, 0); /* terminator of significant part */
}
tBTM_STATUS btm_status = BTM_WriteEIR( p_buf, p_bta_dm_eir_cfg->bta_dm_eir_fec_required );
if ( btm_status == BTM_MODE_UNSUPPORTED) {
if (btm_status == BTM_MODE_UNSUPPORTED) {
status = BTA_WRONG_MODE;
} else if (btm_status != BTM_SUCCESS) {
status = BTA_FAILURE;
@@ -4373,21 +4415,38 @@ static void bta_dm_eir_search_services( tBTM_INQ_RESULTS *p_result,
** Returns None
**
*******************************************************************************/
void bta_dm_eir_update_uuid(UINT16 uuid16, BOOLEAN adding)
void bta_dm_eir_update_uuid(tBT_UUID uuid, BOOLEAN adding)
{
/* if this UUID is not advertised in EIR */
if ( !BTM_HasEirService( p_bta_dm_eir_cfg->uuid_mask, uuid16 )) {
return;
}
/* 32 and 128-bit UUIDs go to the bta_dm_cb.custom_uuid array */
if ((uuid.len == LEN_UUID_32) || (uuid.len == LEN_UUID_128)) {
if (adding) {
if (BTM_HasCustomEirService(bta_dm_cb.custom_uuid, uuid)) {
APPL_TRACE_EVENT("UUID is already added for EIR");
return;
}
APPL_TRACE_EVENT("Adding %d-bit UUID into EIR", uuid.len * 8);
if ( adding ) {
APPL_TRACE_EVENT("Adding UUID=0x%04X into EIR", uuid16);
BTM_AddCustomEirService(bta_dm_cb.custom_uuid, uuid);
} else {
APPL_TRACE_EVENT("Removing %d-bit UUID from EIR", uuid.len * 8);
BTM_AddEirService( bta_dm_cb.eir_uuid, uuid16 );
BTM_RemoveCustomEirService(bta_dm_cb.custom_uuid, uuid);
}
} else {
APPL_TRACE_EVENT("Removing UUID=0x%04X from EIR", uuid16);
/* if this UUID is not advertised in EIR */
if (!BTM_HasEirService(p_bta_dm_eir_cfg->uuid_mask, uuid.uu.uuid16)) {
return;
}
BTM_RemoveEirService( bta_dm_cb.eir_uuid, uuid16 );
if (adding) {
APPL_TRACE_EVENT("Adding UUID=0x%04X into EIR", uuid.uu.uuid16);
BTM_AddEirService(bta_dm_cb.eir_uuid, uuid.uu.uuid16);
} else {
APPL_TRACE_EVENT("Removing UUID=0x%04X from EIR", uuid.uu.uuid16);
BTM_RemoveEirService(bta_dm_cb.eir_uuid, uuid.uu.uuid16);
}
}
#if CLASSIC_BT_INCLUDED
bta_dm_set_eir (NULL);
@@ -4732,6 +4791,17 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D
bta_dm_cb.p_sec_cback(BTA_DM_BLE_OOB_REQ_EVT, &sec_event);
break;
case BTM_LE_SC_OOB_REQ_EVT:
bdcpy(sec_event.ble_req.bd_addr, bda);
bta_dm_cb.p_sec_cback(BTA_DM_BLE_SC_OOB_REQ_EVT, &sec_event);
break;
case BTM_LE_SC_LOC_OOB_EVT:
memcpy(sec_event.local_oob_data.local_oob_c, p_data->local_oob_data.commitment, BT_OCTET16_LEN);
memcpy(sec_event.local_oob_data.local_oob_r, p_data->local_oob_data.randomizer, BT_OCTET16_LEN);
bta_dm_cb.p_sec_cback(BTA_DM_BLE_SC_CR_LOC_OOB_EVT, &sec_event);
break;
case BTM_LE_NC_REQ_EVT:
bdcpy(sec_event.key_notif.bd_addr, bda);
BCM_STRNCPY_S((char *)sec_event.key_notif.bd_name,bta_dm_get_remname(), BD_NAME_LEN);
@@ -5057,7 +5127,7 @@ void bta_dm_ble_update_conn_params (tBTA_DM_MSG *p_data)
*******************************************************************************/
void bta_dm_ble_disconnect (tBTA_DM_MSG *p_data)
{
L2CA_RemoveFixedChnl(L2CAP_ATT_CID, p_data->ble_disconnect.remote_bda);
L2CA_BleDisconnect(p_data->ble_disconnect.remote_bda);
}
/*******************************************************************************
@@ -5598,6 +5668,16 @@ void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data)
p_data->ble_multi_adv_disable.inst_id, p_ref, BTA_FAILURE);
}
}
void bta_dm_ble_gap_clear_adv(tBTA_DM_MSG *p_data)
{
if (BTM_BleClearAdv(p_data->ble_clear_adv.p_clear_adv_cback) == FALSE) {
if (p_data->ble_clear_adv.p_clear_adv_cback) {
(*p_data->ble_clear_adv.p_clear_adv_cback)(BTA_FAILURE);
}
}
}
#if (BLE_50_FEATURE_SUPPORT == TRUE)
void bta_dm_ble_gap_read_phy(tBTA_DM_MSG *p_data)
{
@@ -5679,7 +5759,8 @@ void bta_dm_ble_gap_periodic_adv_cfg_data_raw(tBTA_DM_MSG *p_data)
BTM_BlePeriodicAdvCfgDataRaw(p_data->ble_cfg_periodic_adv_data.instance,
p_data->ble_cfg_periodic_adv_data.length,
p_data->ble_cfg_periodic_adv_data.data);
p_data->ble_cfg_periodic_adv_data.data,
p_data->ble_cfg_periodic_adv_data.only_update_did);
}
void bta_dm_ble_gap_periodic_adv_enable(tBTA_DM_MSG *p_data)
@@ -5778,6 +5859,37 @@ void bta_dm_ble_gap_set_prefer_ext_conn_params(tBTA_DM_MSG *p_data)
}
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
void bta_dm_ble_gap_periodic_adv_recv_enable(tBTA_DM_MSG *p_data)
{
BTM_BlePeriodicAdvRecvEnable(p_data->ble_periodic_adv_recv_enable.sync_handle,
p_data->ble_periodic_adv_recv_enable.enable);
}
void bta_dm_ble_gap_periodic_adv_sync_trans(tBTA_DM_MSG *p_data)
{
BTM_BlePeriodicAdvSyncTrans(p_data->ble_periodic_adv_sync_trans.addr,
p_data->ble_periodic_adv_sync_trans.service_data,
p_data->ble_periodic_adv_sync_trans.sync_handle);
}
void bta_dm_ble_gap_periodic_adv_set_info_trans(tBTA_DM_MSG *p_data)
{
BTM_BlePeriodicAdvSetInfoTrans(p_data->ble_periodic_adv_set_info_trans.addr,
p_data->ble_periodic_adv_set_info_trans.service_data,
p_data->ble_periodic_adv_set_info_trans.adv_hanlde);
}
void bta_dm_ble_gap_set_periodic_adv_sync_trans_params(tBTA_DM_MSG *p_data)
{
BTM_BleSetPeriodicAdvSyncTransParams(p_data->ble_set_past_params.addr,
p_data->ble_set_past_params.params.mode,
p_data->ble_set_past_params.params.skip,
p_data->ble_set_past_params.params.sync_timeout,
p_data->ble_set_past_params.params.cte_type);
}
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/*******************************************************************************
**
** Function bta_dm_ble_setup_storage

View File

@@ -226,6 +226,7 @@ void BTA_DmConfigEir(tBTA_DM_EIR_CONF *eir_config)
p_msg->hdr.event = BTA_DM_API_CONFIG_EIR_EVT;
p_msg->eir_fec_required = eir_config->bta_dm_eir_fec_required;
p_msg->eir_included_name = eir_config->bta_dm_eir_included_name;
p_msg->eir_included_tx_power = eir_config->bta_dm_eir_included_tx_power;
p_msg->eir_included_uuid = eir_config->bta_dm_eir_included_uuid;
p_msg->eir_flags = eir_config->bta_dm_eir_flags;
@@ -671,7 +672,7 @@ void BTA_DmLocalOob(void)
** Function BTA_DmOobReply
**
** This function is called to provide the OOB data for
** SMP in response to BTM_LE_OOB_REQ_EVT
** SMP in response to BTA_LE_OOB_REQ_EVT
**
** Parameters: bd_addr - Address of the peer device
** len - length of simple pairing Randomizer C
@@ -696,6 +697,55 @@ void BTA_DmOobReply(BD_ADDR bd_addr, UINT8 len, UINT8 *p_value)
bta_sys_sendmsg(p_msg);
}
}
/*******************************************************************************
**
** Function BTA_DmSecureConnectionOobReply
**
** This function is called to provide the OOB data for
** SMP in response to BTA_LE_OOB_REQ_EVT
**
** Parameters: bd_addr - Address of the peer device
** p_c - Pointer to Confirmation
** p_r - Pointer to Randomizer
**
** Returns void
**
*******************************************************************************/
void BTA_DmSecureConnectionOobReply(BD_ADDR bd_addr, UINT8 *p_c, UINT8 *p_r)
{
tBTA_DM_API_SC_OOB_REPLY *p_msg;
if ((p_msg = (tBTA_DM_API_SC_OOB_REPLY *) osi_malloc(sizeof(tBTA_DM_API_OOB_REPLY))) != NULL) {
p_msg->hdr.event = BTA_DM_API_SC_OOB_REPLY_EVT;
if((p_c == NULL) || (p_r == NULL)) {
return;
}
memcpy(p_msg->bd_addr, bd_addr, BD_ADDR_LEN);
memcpy(p_msg->c, p_c, BT_OCTET16_LEN);
memcpy(p_msg->r, p_r, BT_OCTET16_LEN);
bta_sys_sendmsg(p_msg);
}
}
/*******************************************************************************
**
** Function BTA_DmSecureConnectionCreateOobData
**
** This function is called to create the OOB data for
** SMP when secure connection
**
** Returns void
**
*******************************************************************************/
void BTA_DmSecureConnectionCreateOobData(void)
{
tBTA_DM_API_SC_CR_OOB_DATA *p_msg;
if ((p_msg = (tBTA_DM_API_SC_CR_OOB_DATA *) osi_malloc(sizeof(tBTA_DM_API_SC_CR_OOB_DATA))) != NULL) {
p_msg->hdr.event = BTA_DM_API_SC_CR_OOB_DATA_EVT;
bta_sys_sendmsg(p_msg);
}
}
#endif /* BTM_OOB_INCLUDED */
/*******************************************************************************
**
@@ -1695,6 +1745,29 @@ extern void BTA_DmBleBroadcast (BOOLEAN start, tBTA_START_STOP_ADV_CMPL_CBACK *p
}
}
/*******************************************************************************
**
** Function BTA_DmBleClearAdv
**
** Description This function is called to clear Advertising
**
** Parameters p_adv_data_cback : clear adv complete callback.
**
** Returns None
**
*******************************************************************************/
void BTA_DmBleClearAdv (tBTA_CLEAR_ADV_CMPL_CBACK *p_clear_adv_cback)
{
tBTA_DM_API_CLEAR_ADV *p_msg;
if ((p_msg = (tBTA_DM_API_CLEAR_ADV *)
osi_malloc(sizeof(tBTA_DM_API_CLEAR_ADV))) != NULL) {
p_msg->hdr.event = BTA_DM_API_BLE_CLEAR_ADV_EVT;
p_msg->p_clear_adv_cback = p_clear_adv_cback;
bta_sys_sendmsg(p_msg);
}
}
#endif
/*******************************************************************************
**
@@ -2804,7 +2877,7 @@ void BTA_DmBleGapConfigExtAdvDataRaw(BOOLEAN is_scan_rsp, UINT8 instance, UINT16
p_msg->is_scan_rsp = is_scan_rsp;
p_msg->instance = instance;
p_msg->length = length;
p_msg->data = (UINT8 *)(p_msg + 1);
p_msg->data = length != 0 ? (UINT8 *)(p_msg + 1) : NULL;
if (data) {
memcpy(p_msg->data, data, length);
}
@@ -2883,7 +2956,7 @@ void BTA_DmBleGapPeriodicAdvSetParams(UINT8 instance,
}
void BTA_DmBleGapPeriodicAdvCfgDataRaw(UINT8 instance, UINT16 length,
const UINT8 *data)
const UINT8 *data,bool only_update_did)
{
tBTA_DM_API_CFG_PERIODIC_ADV_DATA *p_msg;
APPL_TRACE_API("%s, Periodic ADV config data raw.", __func__);
@@ -2894,6 +2967,8 @@ void BTA_DmBleGapPeriodicAdvCfgDataRaw(UINT8 instance, UINT16 length,
p_msg->length = length;
p_msg->data = (UINT8 *)(p_msg + 1);
memcpy(p_msg->data, data, length);
p_msg->data = length != 0 ? (UINT8 *)(p_msg + 1) : NULL;
p_msg->only_update_did = only_update_did;
//start sent the msg to the bta system control moudle
bta_sys_sendmsg(p_msg);
} else {
@@ -2902,7 +2977,7 @@ void BTA_DmBleGapPeriodicAdvCfgDataRaw(UINT8 instance, UINT16 length,
}
void BTA_DmBleGapPeriodicAdvEnable(BOOLEAN enable, UINT8 instance)
void BTA_DmBleGapPeriodicAdvEnable(UINT8 enable, UINT8 instance)
{
tBTA_DM_API_ENABLE_PERIODIC_ADV *p_msg;
APPL_TRACE_API("%s, Periodic ADV %s.", __func__, enable ? "start" : "stop");
@@ -3110,4 +3185,72 @@ void BTA_DmBleGapExtConnect(tBLE_ADDR_TYPE own_addr_type, const BD_ADDR peer_add
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
void BTA_DmBleGapPeriodicAdvRecvEnable(UINT16 sync_handle, UINT8 enable)
{
tBTA_DM_API_PERIODIC_ADV_RECV_ENABLE *p_msg;
p_msg = (tBTA_DM_API_PERIODIC_ADV_RECV_ENABLE *) osi_malloc(sizeof(tBTA_DM_API_PERIODIC_ADV_RECV_ENABLE));
if (p_msg != NULL) {
memset(p_msg, 0, sizeof(tBTA_DM_API_PERIODIC_ADV_RECV_ENABLE));
p_msg->hdr.event = BTA_DM_API_PERIODIC_ADV_RECV_ENABLE_EVT;
p_msg->sync_handle = sync_handle;
p_msg->enable = enable;
//start sent the msg to the bta system control moudle
bta_sys_sendmsg(p_msg);
} else {
APPL_TRACE_ERROR("%s malloc failed", __func__);
}
}
void BTA_DmBleGapPeriodicAdvSyncTrans(BD_ADDR peer_addr, UINT16 service_data, UINT16 sync_handle)
{
tBTA_DM_API_PERIODIC_ADV_SYNC_TRANS *p_msg;
p_msg = (tBTA_DM_API_PERIODIC_ADV_SYNC_TRANS *) osi_malloc(sizeof(tBTA_DM_API_PERIODIC_ADV_SYNC_TRANS));
if (p_msg != NULL) {
memset(p_msg, 0, sizeof(tBTA_DM_API_PERIODIC_ADV_SYNC_TRANS));
p_msg->hdr.event = BTA_DM_API_PERIODIC_ADV_SYNC_TRANS_EVT;
memcpy(p_msg->addr, peer_addr, sizeof(BD_ADDR));
p_msg->service_data = service_data;
p_msg->sync_handle = sync_handle;
//start sent the msg to the bta system control moudle
bta_sys_sendmsg(p_msg);
} else {
APPL_TRACE_ERROR("%s malloc failed", __func__);
}
}
void BTA_DmBleGapPeriodicAdvSetInfoTrans(BD_ADDR peer_addr, UINT16 service_data, UINT8 adv_handle)
{
tBTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS *p_msg;
p_msg = (tBTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS *) osi_malloc(sizeof(tBTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS));
if (p_msg != NULL) {
memset(p_msg, 0, sizeof(tBTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS));
p_msg->hdr.event = BTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS_EVT;
memcpy(p_msg->addr, peer_addr, sizeof(BD_ADDR));
p_msg->service_data = service_data;
p_msg->adv_hanlde = adv_handle;
//start sent the msg to the bta system control moudle
bta_sys_sendmsg(p_msg);
} else {
APPL_TRACE_ERROR("%s malloc failed", __func__);
}
}
void BTA_DmBleGapSetPeriodicAdvSyncTransParams(BD_ADDR peer_addr, tBTA_DM_BLE_PAST_PARAMS *params)
{
tBTA_DM_API_SET_PAST_PARAMS *p_msg;
p_msg = (tBTA_DM_API_SET_PAST_PARAMS *) osi_malloc(sizeof(tBTA_DM_API_SET_PAST_PARAMS));
if (p_msg != NULL) {
memset(p_msg, 0, sizeof(tBTA_DM_API_SET_PAST_PARAMS));
p_msg->hdr.event = BTA_DM_API_SET_PERIODIC_ADV_SYNC_TRANS_PARAMS_EVT;
memcpy(p_msg->addr, peer_addr, sizeof(BD_ADDR));
memcpy(&p_msg->params, params, sizeof(tBTA_DM_BLE_PAST_PARAMS));
//start sent the msg to the bta system control moudle
bta_sys_sendmsg(p_msg);
} else {
APPL_TRACE_ERROR("%s malloc failed", __func__);
}
}
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
#endif

View File

@@ -454,6 +454,7 @@ const UINT8 bta_dm_eir_uuid16_list[] = { 0x08, 0x11, /* Headset */
/* Extended Inquiry Response */
tBTA_DM_EIR_CONF bta_dm_eir_cfg = {
BTM_EIR_DEFAULT_FEC_REQUIRED, /* FEC required */
TRUE, /* Included local name */
50, /* minimum length of local name when it is shortened */
/* if length of local name is longer than this and EIR has not enough */
/* room for all UUID list then local name is shortened to this length */

View File

@@ -349,10 +349,6 @@ void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap,
*p_auth_req = bte_appl_cfg.ble_auth_req | (bte_appl_cfg.ble_auth_req & BTA_LE_AUTH_REQ_MITM) | ((*p_auth_req) & BTA_LE_AUTH_REQ_MITM);
if (*p_oob_data == BTM_BLE_OOB_ENABLE) {
*p_auth_req = (*p_auth_req)&(~BTA_LE_AUTH_REQ_SC_ONLY);
}
if (bte_appl_cfg.ble_io_cap <= 4) {
*p_io_cap = bte_appl_cfg.ble_io_cap;
}
@@ -365,7 +361,7 @@ void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap,
*p_resp_key = bte_appl_cfg.ble_resp_key;
}
if (bte_appl_cfg.ble_max_key_size > 7 && bte_appl_cfg.ble_max_key_size <= 16) {
if (bte_appl_cfg.ble_max_key_size >= 7 && bte_appl_cfg.ble_max_key_size <= 16) {
*p_max_key_size = bte_appl_cfg.ble_max_key_size;
}
#endif ///SMP_INCLUDED == TRUE

View File

@@ -97,6 +97,8 @@ const tBTA_DM_ACTION bta_dm_action[BTA_DM_MAX_EVT] = {
#if (BTM_OOB_INCLUDED == TRUE && SMP_INCLUDED == TRUE)
bta_dm_loc_oob, /* BTA_DM_API_LOC_OOB_EVT */
bta_dm_oob_reply, /* BTA_DM_API_OOB_REPLY_EVT */
bta_dm_sc_oob_reply, /* BTA_DM_API_SC_OOB_REPLY_EVT */
bta_dm_sc_create_oob_data, /* BTA_DM_API_SC_CR_OOB_DATA_EVT */
bta_dm_ci_io_req_act, /* BTA_DM_CI_IO_REQ_EVT */
bta_dm_ci_rmt_oob_act, /* BTA_DM_CI_RMT_OOB_EVT */
#endif /* BTM_OOB_INCLUDED */
@@ -200,7 +202,17 @@ const tBTA_DM_ACTION bta_dm_action[BTA_DM_MAX_EVT] = {
bta_dm_ble_gap_set_ext_scan_params, /* BTA_DM_API_SET_EXT_SCAN_PARAMS_EVT */
bta_dm_ble_gap_ext_scan, /* BTA_DM_API_START_EXT_SCAN_EVT */
bta_dm_ble_gap_set_prefer_ext_conn_params, /* BTA_DM_API_SET_PERF_EXT_CONN_PARAMS_EVT */
NULL, /* BTA_DM_API_EXT_CONN_EVT */
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
bta_dm_ble_gap_periodic_adv_recv_enable, /* BTA_DM_API_PERIODIC_ADV_RECV_ENABLE_EVT */
bta_dm_ble_gap_periodic_adv_sync_trans, /* BTA_DM_API_PERIODIC_ADV_SYNC_TRANS_EVT */
bta_dm_ble_gap_periodic_adv_set_info_trans, /* BTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS_EVT */
bta_dm_ble_gap_set_periodic_adv_sync_trans_params, /* BTA_DM_API_SET_PERIODIC_ADV_SYNC_TRANS_PARAMS_EVT */
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
#if BLE_INCLUDED == TRUE
bta_dm_ble_gap_clear_adv, /* BTA_DM_API_BLE_CLEAR_ADV_EVT */
#endif
};

View File

@@ -34,13 +34,13 @@
void bta_dm_set_qos(tBTA_DM_MSG *p_data)
{
FLOW_SPEC p_flow = {
.qos_flags = 0, /* TBD */
.service_type = GUARANTEED, /* see below */
.token_rate = 0, /* bytes/second */
.token_bucket_size = 0, /* bytes */
.peak_bandwidth = 0, /* bytes/second */
.latency = 625 * p_data->qos_set.t_poll, /* microseconds */
.delay_variation = 0xFFFFFFFF /* microseconds */
.qos_flags = 0, /* TBD */
.service_type = NO_TRAFFIC, /* service_type */
.token_rate = 0, /* bytes/second */
.token_bucket_size = 0, /* bytes */
.peak_bandwidth = 0, /* bytes/second */
.latency = 625 * p_data->qos_set.t_poll, /* microseconds */
.delay_variation = 0xFFFFFFFF /* microseconds */
};
tBTM_STATUS status = BTM_SetQoS (p_data->qos_set.bd_addr, &p_flow, p_data->qos_set.p_cb);

View File

@@ -93,6 +93,8 @@ enum {
#if (BTM_OOB_INCLUDED == TRUE && SMP_INCLUDED == TRUE)
BTA_DM_API_LOC_OOB_EVT,
BTA_DM_API_OOB_REPLY_EVT,
BTA_DM_API_SC_OOB_REPLY_EVT,
BTA_DM_API_SC_CR_OOB_DATA_EVT,
BTA_DM_CI_IO_REQ_EVT,
BTA_DM_CI_RMT_OOB_EVT,
#endif /* BTM_OOB_INCLUDED */
@@ -198,6 +200,15 @@ enum {
BTA_DM_API_SET_PERF_EXT_CONN_PARAMS_EVT,
BTA_DM_API_EXT_CONN_EVT,
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
BTA_DM_API_PERIODIC_ADV_RECV_ENABLE_EVT,
BTA_DM_API_PERIODIC_ADV_SYNC_TRANS_EVT,
BTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS_EVT,
BTA_DM_API_SET_PERIODIC_ADV_SYNC_TRANS_PARAMS_EVT,
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
#if BLE_INCLUDED == TRUE
BTA_DM_API_BLE_CLEAR_ADV_EVT,
#endif
BTA_DM_MAX_EVT
};
@@ -238,6 +249,7 @@ typedef struct {
typedef struct {
BT_HDR hdr;
BOOLEAN eir_fec_required;
BOOLEAN eir_included_name;
BOOLEAN eir_included_tx_power;
BOOLEAN eir_included_uuid;
UINT8 eir_flags;
@@ -400,8 +412,23 @@ typedef struct {
BD_ADDR bd_addr;
UINT8 len;
UINT8 value[BT_OCTET16_LEN];
UINT8 c[BT_OCTET16_LEN];
UINT8 r[BT_OCTET16_LEN];
} tBTA_DM_API_OOB_REPLY;
/* data type for BTA_DM_API_SC_OOB_REPLY_EVT */
typedef struct {
BT_HDR hdr;
BD_ADDR bd_addr;
UINT8 c[BT_OCTET16_LEN];
UINT8 r[BT_OCTET16_LEN];
} tBTA_DM_API_SC_OOB_REPLY;
/* data type for BTA_DM_API_SC_CR_OOB_DATA_EVT */
typedef struct {
BT_HDR hdr;
} tBTA_DM_API_SC_CR_OOB_DATA;
/* data type for BTA_DM_API_CONFIRM_EVT */
typedef struct {
BT_HDR hdr;
@@ -819,6 +846,11 @@ typedef struct {
BD_ADDR remote_bda;
} tBTA_DM_API_BLE_DISCONNECT;
typedef struct {
BT_HDR hdr;
tBTA_CLEAR_ADV_CMPL_CBACK *p_clear_adv_cback;
} tBTA_DM_API_CLEAR_ADV;
#endif /* BLE_INCLUDED */
/* data type for BTA_DM_API_REMOVE_ACL_EVT */
@@ -945,12 +977,13 @@ typedef struct {
UINT8 instance;
UINT16 length;
UINT8 *data;
BOOLEAN only_update_did;
} tBTA_DM_API_CFG_PERIODIC_ADV_DATA;
typedef struct {
BT_HDR hdr;
UINT8 instance;
BOOLEAN enable;
UINT8 enable;
} tBTA_DM_API_ENABLE_PERIODIC_ADV;
typedef struct {
@@ -1013,6 +1046,35 @@ typedef struct {
BD_ADDR peer_addr;
} tBTA_DM_API_EXT_CONN;
#endif //#if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
typedef struct {
BT_HDR hdr;
UINT16 sync_handle;
UINT8 enable;
} tBTA_DM_API_PERIODIC_ADV_RECV_ENABLE;
typedef struct {
BT_HDR hdr;
BD_ADDR addr;
UINT16 service_data;
UINT16 sync_handle;
} tBTA_DM_API_PERIODIC_ADV_SYNC_TRANS;
typedef struct {
BT_HDR hdr;
BD_ADDR addr;
UINT16 service_data;
UINT8 adv_hanlde;
} tBTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS;
typedef struct {
BT_HDR hdr;
BD_ADDR addr;
tBTA_DM_BLE_PAST_PARAMS params;
} tBTA_DM_API_SET_PAST_PARAMS;
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
/* union of all data types */
typedef union {
/* event buffer header */
@@ -1054,6 +1116,7 @@ typedef union {
tBTA_DM_API_LOC_OOB loc_oob;
tBTA_DM_API_OOB_REPLY oob_reply;
tBTA_DM_API_SC_OOB_REPLY sc_oob_reply;
tBTA_DM_API_CONFIRM confirm;
tBTA_DM_API_KEY_REQ key_req;
tBTA_DM_CI_IO_REQ ci_io_req;
@@ -1152,6 +1215,13 @@ typedef union {
tBTA_DM_API_EXT_SCAN ble_ext_scan;
tBTA_DM_API_SET_PER_EXT_CONN_PARAMS ble_set_per_ext_conn_params;
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
tBTA_DM_API_PERIODIC_ADV_RECV_ENABLE ble_periodic_adv_recv_enable;
tBTA_DM_API_PERIODIC_ADV_SYNC_TRANS ble_periodic_adv_sync_trans;
tBTA_DM_API_PERIODIC_ADV_SET_INFO_TRANS ble_periodic_adv_set_info_trans;
tBTA_DM_API_SET_PAST_PARAMS ble_set_past_params;
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
tBTA_DM_API_CLEAR_ADV ble_clear_adv;
#endif
tBTA_DM_API_REMOVE_ACL remove_acl;
@@ -1583,6 +1653,8 @@ extern void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_multi_adv_upd_param(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_multi_adv_enb(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_gap_clear_adv(tBTA_DM_MSG *p_data);
#if (BLE_50_FEATURE_SUPPORT == TRUE)
extern void bta_dm_ble_gap_read_phy(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_gap_set_prefer_default_phy(tBTA_DM_MSG *p_data);
@@ -1613,6 +1685,8 @@ extern BOOLEAN bta_dm_check_if_only_hd_connected(BD_ADDR peer_addr);
#if (BTM_OOB_INCLUDED == TRUE)
extern void bta_dm_loc_oob(tBTA_DM_MSG *p_data);
extern void bta_dm_oob_reply(tBTA_DM_MSG *p_data);
extern void bta_dm_sc_oob_reply(tBTA_DM_MSG *p_data);
extern void bta_dm_sc_create_oob_data(tBTA_DM_MSG *p_data);
extern void bta_dm_ci_io_req_act(tBTA_DM_MSG *p_data);
extern void bta_dm_ci_rmt_oob_act(tBTA_DM_MSG *p_data);
#endif /* BTM_OOB_INCLUDED */
@@ -1654,7 +1728,7 @@ extern void bta_dm_search_cancel_notify (tBTA_DM_MSG *p_data);
extern void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG *p_data);
extern void bta_dm_disc_rmt_name (tBTA_DM_MSG *p_data);
extern tBTA_DM_PEER_DEVICE *bta_dm_find_peer_device(BD_ADDR peer_addr);
void bta_dm_eir_update_uuid(UINT16 uuid16, BOOLEAN adding);
void bta_dm_eir_update_uuid(tBT_UUID uuid, BOOLEAN adding);
extern void bta_dm_enable_test_mode(tBTA_DM_MSG *p_data);
extern void bta_dm_disable_test_mode(tBTA_DM_MSG *p_data);
@@ -1706,4 +1780,14 @@ extern void bta_dm_ble_gap_ext_scan(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_gap_set_prefer_ext_conn_params(tBTA_DM_MSG *p_data);
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
extern void bta_dm_ble_gap_periodic_adv_recv_enable(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_gap_periodic_adv_sync_trans(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_gap_periodic_adv_set_info_trans(tBTA_DM_MSG *p_data);
extern void bta_dm_ble_gap_set_periodic_adv_sync_trans_params(tBTA_DM_MSG *p_data);
#endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
#endif /* BTA_DM_INT_H */

View File

@@ -126,6 +126,7 @@ static void bta_gattc_enable(tBTA_GATTC_CB *p_cb)
if (p_cb->state == BTA_GATTC_STATE_DISABLED) {
/* initialize control block */
memset(&bta_gattc_cb, 0, sizeof(tBTA_GATTC_CB));
bta_gattc_cb.auto_disc = true;
p_cb->state = BTA_GATTC_STATE_ENABLED;
} else {
APPL_TRACE_DEBUG("GATTC is already enabled");
@@ -692,9 +693,11 @@ void bta_gattc_conn(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
} else
#endif
{ /* cache is building */
p_clcb->p_srcb->state = BTA_GATTC_SERV_DISC;
/* cache load failure, start discovery */
bta_gattc_start_discover(p_clcb, NULL);
if (bta_gattc_cb.auto_disc) {
p_clcb->p_srcb->state = BTA_GATTC_SERV_DISC;
/* cache load failure, start discovery */
bta_gattc_start_discover(p_clcb, NULL);
}
}
} else { /* cache is building */
p_clcb->state = BTA_GATTC_DISCOVER_ST;
@@ -820,8 +823,6 @@ void bta_gattc_close(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
bta_sys_conn_close( BTA_ID_GATTC , BTA_ALL_APP_ID, p_clcb->bda);
}
bta_gattc_clcb_dealloc(p_clcb);
if (p_data->hdr.event == BTA_GATTC_API_CLOSE_EVT) {
cb_data.close.status = GATT_Disconnect(p_data->hdr.layer_specific);
} else if (p_data->hdr.event == BTA_GATTC_INT_DISCONN_EVT) {
@@ -1173,6 +1174,37 @@ void bta_gattc_read_multi(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
}
/*******************************************************************************
**
** Function bta_gattc_read_multi_var
**
** Description read multiple variable
**
** Returns None.
*********************************************************************************/
void bta_gattc_read_multi_var(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
{
tBTA_GATT_STATUS status = BTA_GATT_OK;
tGATT_READ_PARAM read_param;
if (bta_gattc_enqueue(p_clcb, p_data)) {
memset(&read_param, 0, sizeof(tGATT_READ_PARAM));
if (status == BTA_GATT_OK) {
read_param.read_multiple.num_handles = p_data->api_read_multi.num_attr;
read_param.read_multiple.auth_req = p_data->api_read_multi.auth_req;
memcpy(&read_param.read_multiple.handles, p_data->api_read_multi.handles,
sizeof(UINT16) * p_data->api_read_multi.num_attr);
status = GATTC_Read(p_clcb->bta_conn_id, GATT_READ_MULTIPLE_VAR, &read_param);
}
/* read fail */
if (status != BTA_GATT_OK) {
bta_gattc_cmpl_sendmsg(p_clcb->bta_conn_id, GATTC_OPTYPE_READ, status, NULL);
}
}
}
/*******************************************************************************
**
** Function bta_gattc_write
**
** Description Write an attribute
@@ -1288,7 +1320,8 @@ void bta_gattc_read_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_OP_CMPL *p_data)
cb_data.read.handle = p_clcb->p_q_cmd->api_read.handle;
}
if (p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_MULTI_EVT) {
if (p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_MULTI_EVT &&
p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_MULTI_VAR_EVT) {
event = p_clcb->p_q_cmd->api_read.cmpl_evt;
} else {
event = p_clcb->p_q_cmd->api_read_multi.cmpl_evt;
@@ -1425,7 +1458,9 @@ void bta_gattc_op_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
return;
}
if (p_clcb->p_q_cmd->hdr.event != bta_gattc_opcode_to_int_evt[op - GATTC_OPTYPE_READ]) {
if ((p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_MULTI_EVT)&&(p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_BY_TYPE_EVT)) {
if ((p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_MULTI_EVT) &&
(p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_BY_TYPE_EVT) &&
(p_clcb->p_q_cmd->hdr.event != BTA_GATTC_API_READ_MULTI_VAR_EVT)) {
mapped_op = p_clcb->p_q_cmd->hdr.event - BTA_GATTC_API_READ_EVT + GATTC_OPTYPE_READ;
if ( mapped_op > GATTC_OPTYPE_INDICATION) {
mapped_op = 0;

View File

@@ -563,6 +563,42 @@ void BTA_GATTC_ReadMultiple(UINT16 conn_id, tBTA_GATTC_MULTI *p_read_multi,
return;
}
/*******************************************************************************
**
** Function BTA_GATTC_ReadMultipleVariable
**
** Description This function is called to read multiple variable length characteristic or
** characteristic descriptors.
**
** Parameters conn_id - connection ID.
** p_read_multi - pointer to the read multiple parameter.
**
** Returns None
**
*******************************************************************************/
void BTA_GATTC_ReadMultipleVariable(UINT16 conn_id, tBTA_GATTC_MULTI *p_read_multi,
tBTA_GATT_AUTH_REQ auth_req)
{
tBTA_GATTC_API_READ_MULTI *p_buf;
UINT16 len = (UINT16)(sizeof(tBTA_GATTC_API_READ_MULTI));
if ((p_buf = (tBTA_GATTC_API_READ_MULTI *) osi_malloc(len)) != NULL) {
memset(p_buf, 0, len);
p_buf->hdr.event = BTA_GATTC_API_READ_MULTI_VAR_EVT;
p_buf->hdr.layer_specific = conn_id;
p_buf->auth_req = auth_req;
p_buf->num_attr = p_read_multi->num_attr;
p_buf->cmpl_evt = BTA_GATTC_READ_MULTI_VAR_EVT;
if (p_buf->num_attr > 0) {
memcpy(p_buf->handles, p_read_multi->handles, sizeof(UINT16) * p_read_multi->num_attr);
}
bta_sys_sendmsg(p_buf);
}
return;
}
/*******************************************************************************
**
** Function BTA_GATTC_Read_by_type
@@ -896,7 +932,7 @@ tBTA_GATT_STATUS BTA_GATTC_RegisterForNotifications (tBTA_GATTC_IF client_if,
}
if (i == BTA_GATTC_NOTIF_REG_MAX) {
status = BTA_GATT_NO_RESOURCES;
APPL_TRACE_ERROR("Max Notification Reached, registration failed.");
APPL_TRACE_ERROR("Max Notification Reached, registration failed,see CONFIG_BT_GATTC_NOTIF_REG_MAX in menuconfig");
}
}
} else {
@@ -1103,4 +1139,83 @@ void BTA_GATTC_Broadcast(tBTA_GATTC_IF client_if, BOOLEAN start)
return;
}
/* Add For BLE PTS */
uint8_t BTA_GATTC_AutoDiscoverEnable(uint8_t enable)
{
APPL_TRACE_DEBUG("%s enable %d", __func__, enable);
bta_gattc_cb.auto_disc = ((enable > 0) ? true : false);
GATTC_AutoDiscoverEnable(enable);
return 0;
}
typedef struct {
UINT16 len;
union {
UINT16 uuid16;
UINT32 uuid32;
UINT8 uuid128[LEN_UUID_128];
} uuid;
} __attribute__((packed)) tAPP_UUID;
uint8_t BTA_GATTC_Discover(uint8_t gatt_if, uint16_t conn_id, void *uuid, uint8_t disc_type, uint16_t s_handle, uint16_t e_handle)
{
tGATT_STATUS status;
tGATT_DISC_PARAM param;
tAPP_UUID *app_uuid = (tAPP_UUID *)uuid;
conn_id = (UINT16)((((UINT8)conn_id) << 8) | gatt_if);
memset(&param, 0, sizeof(tGATT_DISC_PARAM));
if (disc_type == GATT_DISC_SRVC_ALL || disc_type == GATT_DISC_SRVC_BY_UUID) {
param.s_handle = 1;
param.e_handle = 0xFFFF;
} else {
param.s_handle = s_handle;
param.e_handle = e_handle;
}
if (app_uuid) {
param.service.len = app_uuid->len;
if (app_uuid->len == LEN_UUID_16) {
param.service.uu.uuid16 = app_uuid->uuid.uuid16;
} else if (app_uuid->len == LEN_UUID_32) {
param.service.uu.uuid32 = app_uuid->uuid.uuid32;
} else if (app_uuid->len == LEN_UUID_128) {
memcpy(param.service.uu.uuid128, app_uuid->uuid.uuid128, LEN_UUID_128);
} else {
APPL_TRACE_ERROR("%s invalid uuid len %u", __func__, app_uuid->len);
}
}
status = GATTC_Discover (conn_id, disc_type, &param);
if (status != GATT_SUCCESS) {
APPL_TRACE_ERROR("%s status %x", __func__, status);
return -1;
}
return 0;
}
uint8_t BTA_GATTC_ReadLongChar(uint8_t gatt_if, uint16_t conn_id, uint16_t handle, uint16_t offset, uint8_t auth_req)
{
tGATT_STATUS status;
tGATT_READ_PARAM read_param;
conn_id = (UINT16)((((UINT8)conn_id) << 8) | gatt_if);
memset (&read_param, 0, sizeof(tGATT_READ_PARAM));
read_param.partial.handle = handle;
read_param.partial.offset = offset;
read_param.partial.auth_req = auth_req;
status = GATTC_Read(conn_id, GATT_READ_PARTIAL, &read_param);
if (status != GATT_SUCCESS) {
APPL_TRACE_ERROR("%s status %x", __func__, status);
return -1;
}
return 0;
}
/* End BLE PTS */
#endif /* defined(GATTC_INCLUDED) && (GATTC_INCLUDED == TRUE) */

View File

@@ -969,6 +969,10 @@ void bta_gattc_disc_res_cback (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_
BOOLEAN pri_srvc;
tBTA_GATTC_CLCB *p_clcb = bta_gattc_find_clcb_by_conn_id(conn_id);
if (bta_gattc_cb.auto_disc == FALSE) {
return;
}
p_srvc_cb = bta_gattc_find_scb_by_cid(conn_id);
if (p_srvc_cb != NULL && p_clcb != NULL && p_clcb->state == BTA_GATTC_DISCOVER_ST) {
@@ -1042,6 +1046,10 @@ void bta_gattc_disc_cmpl_cback (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT
tBTA_GATTC_SERV *p_srvc_cb;
tBTA_GATTC_CLCB *p_clcb = bta_gattc_find_clcb_by_conn_id(conn_id);
if (bta_gattc_cb.auto_disc == FALSE) {
return;
}
if ( p_clcb && (status != GATT_SUCCESS || p_clcb->status != GATT_SUCCESS) ) {
if (status == GATT_SUCCESS) {
p_clcb->status = status;

View File

@@ -139,7 +139,7 @@ static bool cacheOpen(BD_ADDR bda, bool to_save, UINT8 *index)
return ((status == ESP_OK) ? true : false);
}
static void cacheReset(BD_ADDR bda)
static void cacheReset(BD_ADDR bda, BOOLEAN update)
{
char fname[255] = {0};
getFilename(fname, bda);
@@ -177,9 +177,16 @@ static void cacheReset(BD_ADDR bda)
for(UINT8 i = index; i < (num - 1); i++) {
memcpy(&cache_env->cache_addr[i], &cache_env->cache_addr[i+1], sizeof(cache_addr_info_t));
}
//clear the last cache when delete a addr
memset(&cache_env->cache_addr[num-1], 0, sizeof(cache_addr_info_t));
//reduced the number address counter also
cache_env->num_addr--;
//don't need to update addr list to nvs flash
if (!update) {
return;
}
//update addr list to nvs flash
if(cache_env->num_addr > 0) {
//update
@@ -376,7 +383,7 @@ void bta_gattc_co_cache_close(BD_ADDR server_bda, UINT16 conn_id)
*******************************************************************************/
void bta_gattc_co_cache_reset(BD_ADDR server_bda)
{
cacheReset(server_bda);
cacheReset(server_bda, TRUE);
}
void bta_gattc_co_cache_addr_init(void)
@@ -520,26 +527,29 @@ void bta_gattc_co_cache_addr_save(BD_ADDR bd_addr, hash_key_t hash_key)
UINT8 index = 0;
UINT8 new_index = cache_env->num_addr;
UINT8 *p_buf = osi_malloc(MAX_ADDR_LIST_CACHE_BUF);
// check the address list has the same hash key or not
if (bta_gattc_co_find_hash_in_cache(hash_key) != INVALID_ADDR_NUM) {
APPL_TRACE_DEBUG("%s(), the hash key already in the cache list.", __func__);
if ((index = bta_gattc_co_find_addr_in_cache(bd_addr)) != INVALID_ADDR_NUM) {
APPL_TRACE_DEBUG("%s(), the hash bd_addr already in the cache list, index = %x", __func__, index);
//if the bd_addr already in the address list, update the hash key in it.
memcpy(cache_env->cache_addr[index].addr, bd_addr, sizeof(BD_ADDR));
memcpy(cache_env->cache_addr[index].hash_key, hash_key, sizeof(hash_key_t));
} else {
//if the bd_addr didn't in the address list, added the bd_addr to the last of the address list.
memcpy(cache_env->cache_addr[new_index].hash_key, hash_key, sizeof(hash_key_t));
memcpy(cache_env->cache_addr[new_index].addr, bd_addr, sizeof(BD_ADDR));
cache_env->num_addr++;
}
if (p_buf == NULL) {
APPL_TRACE_ERROR("%s malloc failed!", __func__);
return;
}
// check the address list has the same address or not
// for the same address, it's hash key may be change due to service change
if ((index = bta_gattc_co_find_addr_in_cache(bd_addr)) != INVALID_ADDR_NUM) {
APPL_TRACE_DEBUG("%s the bd_addr already in the cache list, index = %x", __func__, index);
//if the bd_addr already in the address list, update the hash key in it.
memcpy(cache_env->cache_addr[index].addr, bd_addr, sizeof(BD_ADDR));
memcpy(cache_env->cache_addr[index].hash_key, hash_key, sizeof(hash_key_t));
} else {
APPL_TRACE_DEBUG("%s(), num = %d", __func__, new_index + 1);
if (cache_env->num_addr >= MAX_DEVICE_IN_CACHE) {
APPL_TRACE_WARNING("%s cache list full and remove the oldest addr info", __func__);
cacheReset(cache_env->cache_addr[0].addr, FALSE);
}
new_index = cache_env->num_addr;
assert(new_index < MAX_DEVICE_IN_CACHE);
memcpy(cache_env->cache_addr[new_index].addr, bd_addr, sizeof(BD_ADDR));
memcpy(cache_env->cache_addr[new_index].hash_key, hash_key, sizeof(hash_key_t));
cache_env->num_addr++;
APPL_TRACE_DEBUG("%s(), num = %d", __func__, cache_env->num_addr);
}
nvs_handle_t *fp = &cache_env->addr_fp;
@@ -567,10 +577,10 @@ void bta_gattc_co_cache_addr_save(BD_ADDR bd_addr, hash_key_t hash_key)
APPL_TRACE_ERROR("%s, Line = %d, nvs flash open fail, err_code = %x", __func__, __LINE__, err_code);
}
}
//free the buffer after used.
osi_free(p_buf);
return;
}
BOOLEAN bta_gattc_co_cache_new_assoc_list(BD_ADDR src_addr, UINT8 index)

View File

@@ -66,6 +66,7 @@ enum {
BTA_GATTC_RESTART_DISCOVER,
BTA_GATTC_CFG_MTU,
BTA_GATTC_READ_BY_TYPE,
BTA_GATTC_READ_MULTI_VAR,
BTA_GATTC_IGNORE
};
@@ -100,7 +101,8 @@ const tBTA_GATTC_ACTION bta_gattc_action[] = {
bta_gattc_disc_close,
bta_gattc_restart_discover,
bta_gattc_cfg_mtu,
bta_gattc_read_by_type
bta_gattc_read_by_type,
bta_gattc_read_multi_var,
};
@@ -137,6 +139,7 @@ static const UINT8 bta_gattc_st_idle[][BTA_GATTC_NUM_COLS] = {
/* BTA_GATTC_INT_DISCONN_EVT */ {BTA_GATTC_IGNORE, BTA_GATTC_IDLE_ST},
/* BTA_GATTC_API_READ_BY_TYPE_EVT */ {BTA_GATTC_FAIL, BTA_GATTC_IDLE_ST},
/* BTA_GATTC_API_READ_MULTI_VAR_EVT */ {BTA_GATTC_FAIL, BTA_GATTC_IDLE_ST},
};
/* state table for wait for open state */
@@ -167,6 +170,7 @@ static const UINT8 bta_gattc_st_w4_conn[][BTA_GATTC_NUM_COLS] = {
/* BTA_GATTC_INT_DISCONN_EVT */ {BTA_GATTC_OPEN_FAIL, BTA_GATTC_IDLE_ST},
/* BTA_GATTC_API_READ_BY_TYPE_EVT */ {BTA_GATTC_FAIL, BTA_GATTC_W4_CONN_ST},
/* BTA_GATTC_API_READ_MULTI_VAR_EVT */ {BTA_GATTC_FAIL, BTA_GATTC_W4_CONN_ST},
};
/* state table for open state */
@@ -198,6 +202,7 @@ static const UINT8 bta_gattc_st_connected[][BTA_GATTC_NUM_COLS] = {
/* BTA_GATTC_INT_DISCONN_EVT */ {BTA_GATTC_CLOSE, BTA_GATTC_IDLE_ST},
/* BTA_GATTC_API_READ_BY_TYPE_EVT */ {BTA_GATTC_READ_BY_TYPE, BTA_GATTC_CONN_ST},
/* BTA_GATTC_API_READ_MULTI_VAR_EVT */ {BTA_GATTC_READ_MULTI_VAR, BTA_GATTC_CONN_ST},
};
/* state table for discover state */
@@ -228,6 +233,7 @@ static const UINT8 bta_gattc_st_discover[][BTA_GATTC_NUM_COLS] = {
/* BTA_GATTC_INT_DISCONN_EVT */ {BTA_GATTC_CLOSE, BTA_GATTC_IDLE_ST},
/* BTA_GATTC_API_READ_BY_TYPE_EVT */ {BTA_GATTC_Q_CMD, BTA_GATTC_DISCOVER_ST},
/* BTA_GATTC_API_READ_MULTI_VAR_EVT */ {BTA_GATTC_Q_CMD, BTA_GATTC_DISCOVER_ST},
};
/* type for state table */
@@ -487,6 +493,8 @@ static char *gattc_evt_code(tBTA_GATTC_INT_EVT evt_code)
return "BTA_GATTC_API_CFG_MTU_EVT";
case BTA_GATTC_API_READ_BY_TYPE_EVT:
return "BTA_GATTC_API_READ_BY_TYPE_EVT";
case BTA_GATTC_API_READ_MULTI_VAR_EVT:
return "BTA_GATTC_API_READ_MULTI_VAR_EVT";
default:
return "unknown GATTC event code";
}

View File

@@ -322,6 +322,15 @@ void bta_gattc_clcb_dealloc(tBTA_GATTC_CLCB *p_clcb)
}
}
void bta_gattc_clcb_dealloc_by_conn_id(UINT16 conn_id)
{
tBTA_GATTC_CLCB *p_clcb = bta_gattc_find_clcb_by_conn_id(conn_id);
if (p_clcb) {
bta_gattc_clcb_dealloc(p_clcb);
}
}
/*******************************************************************************
**
** Function bta_gattc_find_srcb
@@ -421,6 +430,7 @@ tBTA_GATTC_SERV *bta_gattc_srcb_alloc(BD_ADDR bda)
{
if (p_tcb->p_srvc_cache != NULL) {
list_free(p_tcb->p_srvc_cache);
p_tcb->p_srvc_cache = NULL;
}
osi_free(p_tcb->p_srvc_list);
p_tcb->p_srvc_list = NULL;

View File

@@ -495,11 +495,11 @@ void bta_gatts_add_char_descr(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_
/*******************************************************************************
**
** Function bta_gatts_add_char_descr
** Function bta_gatts_set_attr_value
**
** Description action function to add characteristic descriptor.
** Description This function is used to set the attribute value.
**
** Returns none.
** Returns None.
**
*******************************************************************************/
void bta_gatts_set_attr_value(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg)
@@ -526,8 +526,23 @@ void bta_gatts_set_attr_value(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_
}
}
/*******************************************************************************
**
** Function bta_gatts_get_attr_value
**
** Description This function retrieves the attribute value associated with
** the given attribute handle.
**
** Returns tGATT_STATUS - GATT status indicating success or failure in
** retrieving the attribute value.
**
*******************************************************************************/
tGATT_STATUS bta_gatts_get_attr_value(UINT16 attr_handle, UINT16 *length, UINT8 **value)
{
if (GATTS_GetAttributeValueInternal(attr_handle, length, value) == 0) {
return 0;
}
return GATTS_GetAttributeValue(attr_handle, length, value);
}
@@ -906,6 +921,22 @@ void bta_gatts_listen(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg)
}
}
/*******************************************************************************
**
** Function bta_gatts_show_local_database
**
** Description print loacl service database
**
** Returns none.
**
*******************************************************************************/
void bta_gatts_show_local_database (void)
{
if (GATTS_ShowLocalDatabase()) {
APPL_TRACE_ERROR("%s failed", __func__);
}
}
/*******************************************************************************
**
** Function bta_gatts_request_cback

View File

@@ -640,4 +640,41 @@ void BTA_GATTS_Listen(tBTA_GATTS_IF server_if, BOOLEAN start, BD_ADDR_PTR target
return;
}
uint8_t BTA_GATTS_SetServiceChangeMode(uint8_t mode)
{
tGATT_STATUS status;
APPL_TRACE_DEBUG("%s mode %u", __func__, mode);
status = GATTS_SetServiceChangeMode(mode);
if (status != GATT_SUCCESS) {
APPL_TRACE_ERROR("%s status %x", __func__, status);
return -1;
}
return 0;
}
uint8_t BTA_GATTS_SendMultiNotification(uint8_t gatt_if, uint16_t conn_id, void *tuples, uint16_t num_tuples)
{
tGATT_STATUS status;
conn_id = (UINT16)((((UINT8)conn_id) << 8) | gatt_if);
status = GATTS_HandleMultiValueNotification(conn_id, (tGATT_HLV *)tuples, num_tuples);
if (status != GATT_SUCCESS) {
APPL_TRACE_ERROR("%s status %x", __func__, status);
return -1;
}
return 0;
}
void BTA_GATTS_ShowLocalDatabase(void)
{
BT_HDR *p_buf;
if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL) {
p_buf->event = BTA_GATTS_API_SHOW_LOCAL_DATABASE_EVT;
bta_sys_sendmsg(p_buf);
}
}
#endif /* BTA_GATT_INCLUDED */

View File

@@ -24,6 +24,8 @@
#include <stdlib.h>
#include <string.h>
#include "bta/bta_gatts_co.h"
#include "btc/btc_storage.h"
#include "btc/btc_ble_storage.h"
// #include "btif_util.h"
#if (defined(BTIF_INCLUDED) && BTIF_INCLUDED == TRUE)
@@ -159,5 +161,91 @@ BOOLEAN bta_gatts_co_load_handle_range(UINT8 index,
return FALSE;
}
#endif
#endif
#if (SMP_INCLUDED == TRUE)
/*******************************************************************************
**
** Function bta_gatts_co_cl_feat_save
**
** Description This callout function is executed by GATTS when GATT server
** client support feature is requested to write to NV.
**
** Parameter remote_addr - remote device address
** feature - pointer of client support feature
**
** Returns void.
**
*******************************************************************************/
void bta_gatts_co_cl_feat_save(BD_ADDR remote_addr, UINT8 *feature)
{
bt_bdaddr_t bd_addr;
memcpy(bd_addr.address, remote_addr, BD_ADDR_LEN);
btc_storage_set_gatt_cl_supp_feat(&bd_addr, feature, 1);
}
/*******************************************************************************
**
** Function bta_gatts_co_db_hash_save
**
** Description This callout function is executed by GATTS when GATT server
** client status is requested to write to NV.
**
** Parameter remote_addr - remote device address
** db_hash - pointer of GATT service datebase hash
**
** Returns void.
**
*******************************************************************************/
void bta_gatts_co_db_hash_save(BD_ADDR remote_addr, BT_OCTET16 db_hash)
{
bt_bdaddr_t bd_addr;
memcpy(bd_addr.address, remote_addr, BD_ADDR_LEN);
btc_storage_set_gatt_db_hash(&bd_addr, db_hash, BT_OCTET16_LEN);
}
/*******************************************************************************
**
** Function bta_gatts_co_cl_feat_load
**
** Description This callout function is executed by GATTS when GATT server
** client status is requested to load from NV.
**
** Parameter remote_addr - remote device address
** feature - pointer of GATT service datebase hash
**
** Returns void.
**
*******************************************************************************/
void bta_gatts_co_cl_feat_load(BD_ADDR remote_addr, UINT8 *feature)
{
bt_bdaddr_t bd_addr;
memcpy(bd_addr.address, remote_addr, BD_ADDR_LEN);
btc_storage_get_gatt_cl_supp_feat(&bd_addr, feature, 1);
}
/*******************************************************************************
**
** Function bta_gatts_co_db_hash_load
**
** Description This callout function is executed by GATTS when GATT server
** client status is requested to load from NV.
**
** Parameter remote_addr - remote device address
** db_hash - pointer of GATT service datebase hash
**
** Returns void.
**
*******************************************************************************/
void bta_gatts_co_db_hash_load(BD_ADDR remote_addr, BT_OCTET16 db_hash)
{
bt_bdaddr_t bd_addr;
memcpy(bd_addr.address, remote_addr, BD_ADDR_LEN);
btc_storage_get_gatt_db_hash(&bd_addr, db_hash, BT_OCTET16_LEN);
}
#endif // #if (SMP_INCLUDED == TRUE)
#endif // #if (GATTS_INCLUDED == TRUE)
#endif // #if (BLE_INCLUDED == TRUE)

View File

@@ -133,6 +133,9 @@ BOOLEAN bta_gatts_hdl_event(BT_HDR *p_msg)
case BTA_GATTS_API_SEND_SERVICE_CHANGE_EVT:
bta_gatts_send_service_change_indication((tBTA_GATTS_DATA *) p_msg);
break;
case BTA_GATTS_API_SHOW_LOCAL_DATABASE_EVT:
bta_gatts_show_local_database();
break;
default:
break;
}

View File

@@ -61,6 +61,7 @@ enum {
BTA_GATTC_INT_DISCONN_EVT,
BTA_GATTC_API_READ_BY_TYPE_EVT,
BTA_GATTC_API_READ_MULTI_VAR_EVT,
BTA_GATTC_INT_START_IF_EVT,
BTA_GATTC_API_REG_EVT,
@@ -318,10 +319,6 @@ typedef struct {
bool update_incl_srvc;
} tBTA_GATTC_SERV;
#ifndef BTA_GATTC_NOTIF_REG_MAX
#define BTA_GATTC_NOTIF_REG_MAX BTA_GATTC_CONN_MAX
#endif
typedef struct {
BOOLEAN in_use;
BD_ADDR remote_bda;
@@ -394,6 +391,7 @@ enum {
typedef struct {
UINT8 state;
BOOLEAN auto_disc; /* internal use: true for auto discovering after connected */
tBTA_GATTC_CONN conn_track[BTA_GATTC_CONN_MAX];
tBTA_GATTC_BG_TCK bg_track[BTA_GATTC_KNOWN_SR_MAX];
tBTA_GATTC_RCB cl_rcb[BTA_GATTC_CL_MAX];
@@ -468,6 +466,7 @@ extern void bta_gattc_fail(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_confirm(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_execute(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_read_multi(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_read_multi_var(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_ci_open(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_ci_close(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);
extern void bta_gattc_ignore_op_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data);

View File

@@ -53,7 +53,8 @@ enum {
BTA_GATTS_API_CLOSE_EVT,
BTA_GATTS_API_LISTEN_EVT,
BTA_GATTS_API_DISABLE_EVT,
BTA_GATTS_API_SEND_SERVICE_CHANGE_EVT
BTA_GATTS_API_SEND_SERVICE_CHANGE_EVT,
BTA_GATTS_API_SHOW_LOCAL_DATABASE_EVT
};
typedef UINT16 tBTA_GATTS_INT_EVT;
@@ -251,6 +252,7 @@ extern void bta_gatts_cancel_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg);
extern void bta_gatts_close (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg);
extern void bta_gatts_listen(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg);
extern void bta_gatts_send_service_change_indication (tBTA_GATTS_DATA *p_msg);
extern void bta_gatts_show_local_database (void);
extern BOOLEAN bta_gatts_uuid_compare(tBT_UUID tar, tBT_UUID src);
extern tBTA_GATTS_RCB *bta_gatts_find_app_rcb_by_app_if(tBTA_GATTS_IF server_if);

View File

@@ -317,4 +317,21 @@ static const char *bta_hd_state_code(tBTA_HD_STATE state_code)
return "<unknown>";
}
}
#if BT_HID_DEVICE_BQB_INCLUDED
tBTA_STATUS bta_hd_bqb_set_local_di_record(void)
{
tBTA_STATUS status = BTA_FAILURE;
tBTA_DI_RECORD bqb_device_info;
bqb_device_info.vendor = 0;
bqb_device_info.vendor_id_source = 0xff; // BTA_HH_VENDOR_ID_INVALID
bqb_device_info.product = 1;
bqb_device_info.version = 0;
bqb_device_info.primary_record = TRUE;
return BTA_DmSetLocalDiRecord(&bqb_device_info, &bta_hd_cb.sdp_handle);
}
#endif /* BT_HID_DEVICE_BQB_INCLUDED */
#endif /* BTA_HD_INCLUDED */

View File

@@ -785,14 +785,17 @@ void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
void bta_ag_setcodec(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
{
#if (BTM_WBS_INCLUDED == TRUE)
UINT16 handle = p_data->api_setcodec.hdr.layer_specific;
tBTA_AG_PEER_CODEC codec_type = p_data->api_setcodec.codec;
tBTA_AG_VAL val;
val.hdr.handle = handle;
val.num = codec_type;
/* Check if the requested codec type is valid */
if((codec_type != BTA_AG_CODEC_NONE) &&
(codec_type != BTA_AG_CODEC_CVSD) &&
(codec_type != BTA_AG_CODEC_MSBC)) {
val.num = codec_type;
val.hdr.status = BTA_AG_FAIL_RESOURCES;
APPL_TRACE_ERROR("%s error: unsupported codec type %d", __func__, codec_type);
(*bta_ag_cb.p_cback)(BTA_AG_WBS_EVT, (tBTA_AG *) &val);
@@ -804,11 +807,9 @@ void bta_ag_setcodec(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
(codec_type == BTA_AG_CODEC_CVSD)) {
p_scb->sco_codec = codec_type;
p_scb->codec_updated = TRUE;
val.num = codec_type;
val.hdr.status = BTA_AG_SUCCESS;
APPL_TRACE_DEBUG("%s: Updated codec type %d", __func__, codec_type);
} else {
val.num = codec_type;
val.hdr.status = BTA_AG_FAIL_RESOURCES;
APPL_TRACE_ERROR("%s error: unsupported codec type %d",__func__, codec_type);
}

View File

@@ -245,7 +245,6 @@ void BTA_AgAudioClose(UINT16 handle)
}
}
/*******************************************************************************
**
** Function BTA_AgResult
@@ -297,7 +296,30 @@ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec)
}
}
#if (BTM_SCO_HCI_INCLUDED == TRUE )
#if (BTM_SCO_HCI_INCLUDED == TRUE)
/*******************************************************************************
**
** Function BTA_AgPktStatsNumsGet
**
** Description Specify the sync_conn_handle to be used for the packet numbers
** received or send.
**
**
** Returns void
**
*******************************************************************************/
void BTA_AgPktStatsNumsGet(UINT16 handle, UINT16 sync_conn_handle)
{
tBTA_AG_PKT_STAT_GET *p_buf;
if ((p_buf = (tBTA_AG_PKT_STAT_GET *) osi_malloc(sizeof(tBTA_AG_PKT_STAT_GET))) != NULL) {
p_buf->hdr.event = BTA_AG_PKT_STAT_NUMS_GET_EVT;
p_buf->hdr.layer_specific = handle;
p_buf->sync_conn_handle = sync_conn_handle;
bta_sys_sendmsg(p_buf);
}
}
/************************************************************************************************
* Function BTA_AgCiData
*
@@ -317,6 +339,6 @@ void BTA_AgCiData(UINT16 handle)
bta_sys_sendmsg(p_buf);
}
}
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) */
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE) */
#endif /* #if (BTA_AG_INCLUDED == TRUE)*/

View File

@@ -36,6 +36,9 @@
#include "stack/port_api.h"
#include "bta/utl.h"
#if BT_HF_AG_BQB_INCLUDED
static BOOLEAN s_bta_hf_ag_bqb_brsf_flag = false;
#endif /* BT_HF_AG_BQB_INCLUDED */
#if (BTA_AG_INCLUDED == TRUE)
/*****************************************************************************
@@ -146,6 +149,14 @@ enum
BTA_AG_HF_CMD_BAC
};
/* dialing type of BTA_AG_HF_CMD_D */
enum
{
BTA_AG_HF_DIAL_NUM = 0,
BTA_AG_HF_DIAL_VOIP,
BTA_AG_HF_DIAL_MEM,
};
/* HFP AT command interpreter table */
const tBTA_AG_AT_CMD bta_ag_hfp_cmd[] =
{
@@ -330,6 +341,22 @@ const UINT8 bta_ag_callsetup_ind_tbl[] =
#define COLON_IDX_4_VGSVGM 4
#endif
/*******************************************************************************
**
** Function bta_hf_ag_bqb_brsf_ctrl
**
** Description Control the usage of BTA_AG_BQB_BRSF_FEAT_SPEC for BQB test
**
** Returns void
**
*******************************************************************************/
#if BT_HF_AG_BQB_INCLUDED
void bta_hf_ag_bqb_brsf_ctrl(BOOLEAN enable)
{
s_bta_hf_ag_bqb_brsf_flag = enable;
}
#endif /* BT_HF_AG_BQB_INCLUDED */
/*******************************************
* Funcitons Result
********************************************/
@@ -856,6 +883,8 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
case BTA_AG_HF_CMD_D:
{
UINT16 src = 0;
UINT16 dst = 0;
/* Do not send OK for Dial cmds Let application decide whether to send OK or ERROR*/
/* if mem dial cmd, make sure string contains only digits */
if(p_arg[0] == '>') {
@@ -863,6 +892,8 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
event = 0;
bta_ag_send_error(p_scb, BTA_AG_ERR_INV_CHAR_IN_DSTR);
}
val.value = BTA_AG_HF_DIAL_MEM;
src = 1;
} else if (p_arg[0] == 'V') {
/* ATDV : Dial VoIP Call */
/* We do not check string. Code will be added later if needed. */
@@ -870,6 +901,7 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
event = 0;
bta_ag_send_error(p_scb, BTA_AG_ERR_OP_NOT_SUPPORTED);
}
val.value = BTA_AG_HF_DIAL_VOIP;
} else {
/* If dial cmd, make sure string contains only dial digits
** Dial digits are 0-9, A-C, *, #, + */
@@ -877,6 +909,17 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
event = 0;
bta_ag_send_error(p_scb, BTA_AG_ERR_INV_CHAR_IN_DSTR);
}
val.value = BTA_AG_HF_DIAL_NUM;
}
if (event != 0) {
while ((val.str[dst] = p_arg[src]) != '\0') {
if (val.str[dst] == ';') {
val.str[dst] = '\0';
break;
}
src++;
dst++;
}
}
break;
}
@@ -1001,7 +1044,15 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
/* store peer features */
p_scb->peer_features = (UINT16) int_arg;
/* send BRSF, send OK */
bta_ag_send_result(p_scb, BTA_AG_RES_BRSF, NULL, (INT16) (p_scb->features & BTA_AG_BSRF_FEAT_SPEC));
#if BT_HF_AG_BQB_INCLUDED
if (s_bta_hf_ag_bqb_brsf_flag == true) {
bta_ag_send_result(p_scb, BTA_AG_RES_BRSF, NULL, (INT16) (p_scb->features & BTA_AG_BQB_BRSF_FEAT_SPEC));
} else {
bta_ag_send_result(p_scb, BTA_AG_RES_BRSF, NULL, (INT16) (p_scb->features & BTA_AG_BRSF_FEAT_SPEC));
}
#else
bta_ag_send_result(p_scb, BTA_AG_RES_BRSF, NULL, (INT16) (p_scb->features & BTA_AG_BRSF_FEAT_SPEC));
#endif /* BT_HF_AG_BQB_INCLUDED */
bta_ag_send_ok(p_scb);
break;
}
@@ -1498,7 +1549,6 @@ void bta_ag_hfp_result(tBTA_AG_SCB *p_scb, tBTA_AG_API_RESULT *p_result)
if (p_result->data.ok_flag != BTA_AG_OK_ERROR) {
if (p_result->data.str[0] != 0) {
bta_ag_send_result(p_scb, code, p_result->data.str, 0);
bta_ag_send_ok(p_scb);
}
if (p_result->data.ok_flag == BTA_AG_OK_DONE) {
bta_ag_send_ok(p_scb);

View File

@@ -91,6 +91,7 @@ enum
BTA_AG_CI_SCO_DATA,
BTA_AG_CI_RX_DATA,
BTA_AG_RCVD_SLC_READY,
BTA_AG_PKT_STAT_NUMS,
BTA_AG_NUM_ACTIONS
};
@@ -133,7 +134,8 @@ const tBTA_AG_ACTION bta_ag_action[] =
bta_ag_send_ring,
bta_ag_ci_sco_data,
bta_ag_ci_rx_data,
bta_ag_rcvd_slc_ready
bta_ag_rcvd_slc_ready,
bta_ag_pkt_stat_nums
};
/* state table information */
@@ -167,7 +169,8 @@ const UINT8 bta_ag_st_init[][BTA_AG_NUM_COLS] =
/* RING_TOUT_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_INIT_ST},
/* SVC_TOUT_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_INIT_ST},
/* CI_SCO_DATA_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_INIT_ST},
/* CI_SLC_READY_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_INIT_ST}
/* CI_SLC_READY_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_INIT_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_AG_PKT_STAT_NUMS, BTA_AG_IGNORE, BTA_AG_INIT_ST}
};
/* state table for opening state */
@@ -196,7 +199,8 @@ const UINT8 bta_ag_st_opening[][BTA_AG_NUM_COLS] =
/* RING_TOUT_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_OPENING_ST},
/* SVC_TOUT_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_OPENING_ST},
/* CI_SCO_DATA_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_OPENING_ST},
/* CI_SLC_READY_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_OPENING_ST}
/* CI_SLC_READY_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_OPENING_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_AG_PKT_STAT_NUMS, BTA_AG_IGNORE, BTA_AG_OPENING_ST}
};
/* state table for open state */
@@ -225,7 +229,8 @@ const UINT8 bta_ag_st_open[][BTA_AG_NUM_COLS] =
/* RING_TOUT_EVT */ {BTA_AG_SEND_RING, BTA_AG_IGNORE, BTA_AG_OPEN_ST},
/* SVC_TOUT_EVT */ {BTA_AG_START_CLOSE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST},
/* CI_SCO_DATA_EVT */ {BTA_AG_CI_SCO_DATA, BTA_AG_IGNORE, BTA_AG_OPEN_ST},
/* CI_SLC_READY_EVT */ {BTA_AG_RCVD_SLC_READY, BTA_AG_IGNORE, BTA_AG_OPEN_ST}
/* CI_SLC_READY_EVT */ {BTA_AG_RCVD_SLC_READY, BTA_AG_IGNORE, BTA_AG_OPEN_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_AG_PKT_STAT_NUMS, BTA_AG_IGNORE, BTA_AG_OPEN_ST}
};
/* state table for closing state */
@@ -254,7 +259,8 @@ const UINT8 bta_ag_st_closing[][BTA_AG_NUM_COLS] =
/* RING_TOUT_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST},
/* SVC_TOUT_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST},
/* CI_SCO_DATA_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST},
/* CI_SLC_READY_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST}
/* CI_SLC_READY_EVT */ {BTA_AG_IGNORE, BTA_AG_IGNORE, BTA_AG_CLOSING_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_AG_PKT_STAT_NUMS, BTA_AG_IGNORE, BTA_AG_CLOSING_ST}
};
/* type for state table */
@@ -357,6 +363,8 @@ static char *bta_ag_evt_str(UINT16 event, tBTA_AG_RES result)
return "SCO data Callin";
case BTA_AG_CI_SLC_READY_EVT:
return "SLC Ready Callin";
case BTA_AG_PKT_STAT_NUMS_GET_EVT:
return "Get Packet Nums";
default:
return "Unknown AG Event";
}
@@ -461,11 +469,11 @@ void bta_ag_scb_dealloc(tBTA_AG_SCB *p_scb)
APPL_TRACE_DEBUG("bta_ag_scb_dealloc %d", bta_ag_scb_to_idx(p_scb));
/* stop timers */
bta_sys_stop_timer(&p_scb->act_timer);
bta_sys_free_timer(&p_scb->act_timer);
#if (BTM_WBS_INCLUDED == TRUE)
bta_sys_stop_timer(&p_scb->cn_timer);
bta_sys_free_timer(&p_scb->cn_timer);
#endif
bta_sys_stop_timer(&p_scb->colli_timer);
bta_sys_free_timer(&p_scb->colli_timer);
/* initialize control block */
memset(p_scb, 0, sizeof(tBTA_AG_SCB));

View File

@@ -82,15 +82,13 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params[BTA_AG_NUM_CODECS] =
{
BTM_64KBITS_RATE, /* TX Bandwidth (64 kbits/sec) */
BTM_64KBITS_RATE, /* RX Bandwidth (64 kbits/sec) */
10, /* 10 ms (HS/HF can use EV3, 2-EV3, 3-EV3) */
10, /* 10 ms (HS/HF can use EV3, 2-EV3) */
BTM_VOICE_SETTING_CVSD, /* Inp Linear, Air CVSD, 2s Comp, 16bit */
(BTM_SCO_PKT_TYPES_MASK_HV1 + /* Packet Types */
BTM_SCO_PKT_TYPES_MASK_HV2 +
BTM_SCO_PKT_TYPES_MASK_HV3 +
BTM_SCO_PKT_TYPES_MASK_EV3 +
BTM_SCO_PKT_TYPES_MASK_EV4 +
BTM_SCO_PKT_TYPES_MASK_EV5 +
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 +
(BTM_SCO_PKT_TYPES_MASK_HV1 | /* Packet Types */
BTM_SCO_PKT_TYPES_MASK_HV3 |
BTM_SCO_PKT_TYPES_MASK_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
BTM_ESCO_RETRANS_POWER /* Retransmission effort */
},
@@ -100,7 +98,7 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params[BTA_AG_NUM_CODECS] =
BTM_64KBITS_RATE, /* RX Bandwidth (64 kbits/sec), 8000 */
8, /* 8 ms */
BTM_VOICE_SETTING_TRANS, /* Inp Linear, Transparent, 2s Comp, 16bit */
(BTM_SCO_PKT_TYPES_MASK_EV3 | /* Packet Types : EV3 + NO_2_EV3 */
(BTM_SCO_PKT_TYPES_MASK_EV3 | /* Packet Types : EV3 */
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5 |
@@ -113,8 +111,7 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params[BTA_AG_NUM_CODECS] =
BTM_64KBITS_RATE, /* RX Bandwidth (64 kbits/sec), 8000 */
13, /* 13 ms */
BTM_VOICE_SETTING_TRANS, /* Inp Linear, Transparent, 2s Comp, 16bit */
(BTM_SCO_PKT_TYPES_MASK_EV3 | /* Packet Types : EV3 + 2-EV3 */
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
(BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | /* Packet Types : 2-EV3 */
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
BTM_ESCO_RETRANS_QUALITY /* Retransmission effort */
@@ -124,11 +121,11 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params[BTA_AG_NUM_CODECS] =
{
BTM_64KBITS_RATE, /* TX Bandwidth (64 kbits/sec) */
BTM_64KBITS_RATE, /* RX Bandwidth (64 kbits/sec) */
12, /* 12 ms (HS/HF can use EV3, 2-EV3) */
12, /* 12 ms (HS/HF can use 2-EV3) */
BTM_VOICE_SETTING_CVSD, /* Inp Linear, Air CVSD, 2s Comp, 16bit */
(BTM_SCO_LINK_ALL_PKT_MASK |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
(BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 | /* Packet Types : 2-EV3 */
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
BTM_ESCO_RETRANS_QUALITY /* Retransmission effort */
}
};
@@ -143,15 +140,13 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params[] =
{
BTM_64KBITS_RATE, /* TX Bandwidth (64 kbits/sec) */
BTM_64KBITS_RATE, /* RX Bandwidth (64 kbits/sec) */
10, /* 10 ms (HS/HF can use EV3, 2-EV3, 3-EV3) */
10, /* 10 ms (HS/HF can use EV3, 2-EV3) */
BTM_VOICE_SETTING_CVSD, /* Inp Linear, Air CVSD, 2s Comp, 16bit */
(BTM_SCO_PKT_TYPES_MASK_HV1 + /* Packet Types */
BTM_SCO_PKT_TYPES_MASK_HV2 +
BTM_SCO_PKT_TYPES_MASK_HV3 +
BTM_SCO_PKT_TYPES_MASK_EV3 +
BTM_SCO_PKT_TYPES_MASK_EV4 +
BTM_SCO_PKT_TYPES_MASK_EV5 +
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 +
(BTM_SCO_PKT_TYPES_MASK_HV1 | /* Packet Types */
BTM_SCO_PKT_TYPES_MASK_HV3 |
BTM_SCO_PKT_TYPES_MASK_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
BTM_ESCO_RETRANS_POWER /* Retransmission effort */
},
@@ -160,11 +155,11 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params[] =
{
BTM_64KBITS_RATE, /* TX Bandwidth (64 kbits/sec) */
BTM_64KBITS_RATE, /* RX Bandwidth (64 kbits/sec) */
12, /* 12 ms (HS/HF can use EV3, 2-EV3) */
12, /* 12 ms (HS/HF can use 2-EV3) */
BTM_VOICE_SETTING_CVSD, /* Inp Linear, Air CVSD, 2s Comp, 16bit */
(BTM_SCO_LINK_ALL_PKT_MASK |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
(BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
BTM_ESCO_RETRANS_QUALITY /* Retransmission effort */
}
};
@@ -347,7 +342,7 @@ static void bta_ag_sco_read_cback(UINT16 sco_inx, BT_HDR *p_data, tBTM_SCO_DATA_
{
if (status != BTM_SCO_DATA_CORRECT)
{
APPL_TRACE_WARNING("bta_ag_sco_read_cback: status(%d)", status);
APPL_TRACE_DEBUG("bta_ag_sco_read_cback: status(%d)", status);
}
/* Callout function must free the data. */
@@ -480,6 +475,7 @@ static void bta_ag_cback_sco(tBTA_AG_SCB *p_scb, UINT8 event)
sco.handle = bta_ag_scb_to_idx(p_scb);
sco.app_id = p_scb->app_id;
sco.sync_conn_handle = BTM_ReadScoHandle(p_scb->sco_idx);
/* call close cback */
(*bta_ag_cb.p_cback)(event, (tBTA_AG *) &sco);
@@ -1482,6 +1478,32 @@ void bta_ag_sco_codec_nego(tBTA_AG_SCB *p_scb, BOOLEAN result)
}
#endif
/*******************************************************************************
**
** Function bta_ag_pkt_stat_nums
**
** Description Get the number of packet states
**
**
** Returns void
**
*******************************************************************************/
void bta_ag_pkt_stat_nums(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
{
UNUSED(p_scb);
#if (BTM_SCO_HCI_INCLUDED == TRUE)
tBTA_AG_PKT_STAT_NUMS pkt_stat_nums;
uint16_t sync_conn_handle = p_data->pkt_stat.sync_conn_handle;
BTM_PktStatNumsGet(sync_conn_handle, (tBTM_SCO_PKT_STAT_NUMS *) &pkt_stat_nums);
/* call app cback */
if (bta_ag_cb.p_cback) {
(*bta_ag_cb.p_cback)(BTA_AG_PKT_NUMS_GET_EVT, (tBTA_AG*) &pkt_stat_nums);
}
#endif
}
/*******************************************************************************
**
** Function bta_ag_sco_shutdown
@@ -1659,7 +1681,8 @@ void bta_ag_sco_conn_rsp(tBTA_AG_SCB *p_scb, tBTM_ESCO_CONN_REQ_EVT_DATA *p_data
if (p_data->link_type == BTM_LINK_TYPE_SCO)
{
resp.retrans_effort = BTM_ESCO_RETRANS_OFF;
resp.packet_types = (BTM_SCO_LINK_ONLY_MASK |
resp.packet_types = (BTM_SCO_PKT_TYPES_MASK_HV1 |
BTM_SCO_PKT_TYPES_MASK_HV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
@@ -1674,8 +1697,9 @@ void bta_ag_sco_conn_rsp(tBTA_AG_SCB *p_scb, tBTM_ESCO_CONN_REQ_EVT_DATA *p_data
resp.retrans_effort = BTM_ESCO_RETRANS_QUALITY;
}
resp.packet_types = (BTM_SCO_LINK_ALL_PKT_MASK |
resp.packet_types = (BTM_SCO_PKT_TYPES_MASK_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5);
}
}

View File

@@ -76,16 +76,24 @@
#define BTA_AG_ACP 0 /* accepted connection */
#define BTA_AG_INT 1 /* initiating connection */
/* feature mask that matches spec */
#define BTA_AG_BSRF_FEAT_SPEC (BTA_AG_FEAT_3WAY | BTA_AG_FEAT_ECNR | \
BTA_AG_FEAT_VREC | BTA_AG_FEAT_INBAND | \
BTA_AG_FEAT_VTAG | BTA_AG_FEAT_REJECT | \
BTA_AG_FEAT_ECS | BTA_AG_FEAT_ECC | \
BTA_AG_FEAT_EXTERR | BTA_AG_FEAT_CODEC | \
BTA_AG_FEAT_ESCO_S4| BTA_AG_FEAT_VOIP)
#if BT_HF_AG_BQB_INCLUDED
/* feature mask that matches spec for BQB test */
#define BTA_AG_BQB_BRSF_FEAT_SPEC (BTA_AG_FEAT_VOIP | \
BTA_AG_FEAT_VTAG | BTA_AG_FEAT_CODEC | \
BTA_AG_FEAT_ECS | BTA_AG_FEAT_ECC | \
BTA_AG_FEAT_ESCO_S4 | BTA_AG_FEAT_EXTERR)
#endif /* BT_HF_AG_BQB_INCLUDED */
#define BTA_AG_SDP_FEAT_SPEC (BTA_AG_FEAT_3WAY | BTA_AG_FEAT_ECNR | \
BTA_AG_FEAT_VREC | BTA_AG_FEAT_INBAND | \
/* feature mask that matches spec */
#define BTA_AG_BRSF_FEAT_SPEC (BTA_AG_FEAT_3WAY | BTA_AG_FEAT_ECNR | \
BTA_AG_FEAT_VREC | BTA_AG_FEAT_INBAND | \
BTA_AG_FEAT_VTAG | BTA_AG_FEAT_REJECT | \
BTA_AG_FEAT_ECS | BTA_AG_FEAT_ECC | \
BTA_AG_FEAT_EXTERR | BTA_AG_FEAT_CODEC | \
BTA_AG_FEAT_ESCO_S4 | BTA_AG_FEAT_VOIP)
#define BTA_AG_SDP_FEAT_SPEC (BTA_AG_FEAT_3WAY | BTA_AG_FEAT_ECNR | \
BTA_AG_FEAT_VREC | BTA_AG_FEAT_INBAND | \
BTA_AG_FEAT_VTAG)
enum
@@ -114,6 +122,7 @@ enum
BTA_AG_SVC_TOUT_EVT,
BTA_AG_CI_SCO_DATA_EVT,
BTA_AG_CI_SLC_READY_EVT,
BTA_AG_PKT_STAT_NUMS_GET_EVT,
BTA_AG_MAX_EVT,
/* these events are handled outside of the state machine */
@@ -219,6 +228,13 @@ typedef struct
char p_data[BTA_AG_MTU+1];
} tBTA_AG_CI_RX_WRITE;
/* data type for BTA_AG_PKT_STAT_NUMS_GET_EVT */
typedef struct
{
BT_HDR hdr;
UINT16 sync_conn_handle;
} tBTA_AG_PKT_STAT_GET;
/* union of all event datatypes */
typedef union
{
@@ -233,6 +249,7 @@ typedef union
tBTA_AG_DISC_RESULT disc_result;
tBTA_AG_RFC rfc;
tBTA_AG_CI_RX_WRITE ci_rx_write;
tBTA_AG_PKT_STAT_GET pkt_stat;
} tBTA_AG_DATA;
/* type for each profile */
@@ -277,7 +294,7 @@ typedef struct
tBTA_AG_SCO_MSBC_SETTINGS codec_msbc_settings; /* settings to be used for the impending eSCO */
TIMER_LIST_ENT cn_timer; /* codec negotiation timer */
#endif
UINT16 sco_idx; /* SCO handle */
UINT16 sco_idx; /* SCO connection index */
BOOLEAN in_use; /* scb in use */
BOOLEAN dealloc; /* TRUE if service shutting down */
BOOLEAN clip_enabled; /* set to TRUE if HF enables CLIP reporting */
@@ -438,6 +455,7 @@ extern void bta_ag_ci_sco_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data);
extern void bta_ag_set_esco_param(BOOLEAN set_reset, tBTM_ESCO_PARAMS *param);
extern void bta_ag_ci_rx_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data);
extern void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data);
extern void bta_ag_pkt_stat_nums(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data);
#endif /* #if (BTA_AG_INCLUDED == TRUE) */

View File

@@ -299,7 +299,28 @@ void BTA_HfClientSendAT(UINT16 handle, tBTA_HF_CLIENT_AT_CMD_TYPE at, UINT32 val
bta_sys_sendmsg(p_buf);
}
}
#if (BTM_SCO_HCI_INCLUDED == TRUE )
#if (BTM_SCO_HCI_INCLUDED == TRUE)
/*******************************************************************************
**
** Function BTA_HfClientPktStatsNumsGet
**
** Description Get the packet ststus numbers received and send for a specific (e)SCO connection handle.
**
**
** Returns void
**
*******************************************************************************/
void BTA_HfClientPktStatsNumsGet(UINT16 sync_conn_handle)
{
tBTA_HF_CLIENT_PKT_STAT_GET *p_buf;
if ((p_buf = (tBTA_HF_CLIENT_PKT_STAT_GET *) osi_malloc(sizeof(tBTA_HF_CLIENT_PKT_STAT_GET))) != NULL) {
p_buf->hdr.event = BTA_HF_CLIENT_PKT_NUMS_GET_EVT;
p_buf->sync_conn_handle = sync_conn_handle;
bta_sys_sendmsg(p_buf);
}
}
void BTA_HfClientCiData(void)
{
BT_HDR *p_buf;

View File

@@ -25,6 +25,10 @@
#include "bta/bta_hf_client_api.h"
#include "bta_hf_client_int.h"
#if BT_HF_CLIENT_BQB_INCLUDED
static BOOLEAN s_bta_hf_client_bqb_clip_flag = TRUE;
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
#if (BTA_HF_INCLUDED == TRUE)
/* uncomment to enable extra debug */
/* #define BTA_HF_CLIENT_DEBUG TRUE */
@@ -75,6 +79,7 @@ enum {
BTA_HF_CLIENT_SEND_AT_CMD,
#if (BTM_SCO_HCI_INCLUDED == TRUE)
BTA_HF_CLIENT_CI_SCO_DATA,
BTA_HF_CLIENT_PKT_STAT_NUMS,
#endif
BTA_HF_CLIENT_NUM_ACTIONS,
};
@@ -111,8 +116,9 @@ const tBTA_HF_CLIENT_ACTION bta_hf_client_action[] = {
/* BTA_HF_CLIENT_DISC_ACP_RES */ bta_hf_client_disc_acp_res,
/* BTA_HF_CLIENT_SVC_CONN_OPEN */ bta_hf_client_svc_conn_open,
/* BTA_HF_CLIENT_SEND_AT_CMD */ bta_hf_client_send_at_cmd,
#if (BTM_SCO_HCI_INCLUDED == TRUE )
#if (BTM_SCO_HCI_INCLUDED == TRUE)
/* BTA_HF_CLIENT_CI_SCO_DATA */ bta_hf_client_ci_sco_data,
/* BTA_HF_CLIENT_PKT_STAT_NUMS */ bta_hf_client_pkt_stat_nums,
#endif /* (BTM_SCO_HCI_INCLUDED == TRUE ) */
};
@@ -143,6 +149,7 @@ const UINT8 bta_hf_client_st_init[][BTA_HF_CLIENT_NUM_COLS] = {
/* SEND_AT_CMD_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_INIT_ST},
#if (BTM_SCO_HCI_INCLUDED == TRUE )
/* CI_SCO_DATA_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_INIT_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_HF_CLIENT_PKT_STAT_NUMS, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_INIT_ST},
#endif /* (BTM_SCO_HCI_INCLUDED == TRUE ) */
};
@@ -166,8 +173,9 @@ const UINT8 bta_hf_client_st_opening[][BTA_HF_CLIENT_NUM_COLS] = {
/* SCO_OPEN_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPENING_ST},
/* SCO_CLOSE_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPENING_ST},
/* SEND_AT_CMD_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPENING_ST},
#if (BTM_SCO_HCI_INCLUDED == TRUE )
#if (BTM_SCO_HCI_INCLUDED == TRUE)
/* CI_SCO_DATA_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPENING_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_HF_CLIENT_PKT_STAT_NUMS, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPENING_ST},
#endif /* (BTM_SCO_HCI_INCLUDED == TRUE ) */
};
@@ -193,6 +201,7 @@ const UINT8 bta_hf_client_st_open[][BTA_HF_CLIENT_NUM_COLS] = {
/* SEND_AT_CMD_EVT */ {BTA_HF_CLIENT_SEND_AT_CMD, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPEN_ST},
#if (BTM_SCO_HCI_INCLUDED == TRUE )
/* CI_SCO_DATA_EVT */ {BTA_HF_CLIENT_CI_SCO_DATA, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPEN_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_HF_CLIENT_PKT_STAT_NUMS, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_OPEN_ST},
#endif /* (BTM_SCO_HCI_INCLUDED == TRUE ) */
};
@@ -218,6 +227,7 @@ const UINT8 bta_hf_client_st_closing[][BTA_HF_CLIENT_NUM_COLS] = {
/* SEND_AT_CMD_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_CLOSING_ST},
#if (BTM_SCO_HCI_INCLUDED == TRUE )
/* CI_SCO_DATA_EVT */ {BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_CLOSING_ST},
/* PKT_STAT_NUMS_GET_EVT */ {BTA_HF_CLIENT_PKT_STAT_NUMS, BTA_HF_CLIENT_IGNORE, BTA_HF_CLIENT_CLOSING_ST},
#endif /* (BTM_SCO_HCI_INCLUDED == TRUE ) */
};
@@ -241,6 +251,21 @@ tBTA_HF_CLIENT_CB bta_hf_client_cb;
tBTA_HF_CLIENT_CB *bta_hf_client_cb_ptr;
#endif
/*******************************************************************************
**
** Function bta_hf_client_bqb_clip_ctrl
**
** Description Control if send the command AT+CLIP for BQB test
**
** Returns void
**
*******************************************************************************/
#if BT_HF_CLIENT_BQB_INCLUDED
void bta_hf_client_bqb_clip_ctrl(BOOLEAN enable)
{
s_bta_hf_client_bqb_clip_flag = enable;
}
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
/*******************************************************************************
**
@@ -532,7 +557,14 @@ static void send_post_slc_cmd(void)
bta_hf_client_send_at_cmee(TRUE);
bta_hf_client_send_at_cops(FALSE);
bta_hf_client_send_at_btrh(TRUE, 0);
#if BT_HF_CLIENT_BQB_INCLUDED
if (s_bta_hf_client_bqb_clip_flag == TRUE) {
bta_hf_client_send_at_clip(TRUE);
}
#else
bta_hf_client_send_at_clip(TRUE);
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
}
/*******************************************************************************
@@ -640,6 +672,7 @@ static char *bta_hf_client_evt_str(UINT16 event)
CASE_RETURN_STR(BTA_HF_CLIENT_SCO_OPEN_EVT)
CASE_RETURN_STR(BTA_HF_CLIENT_SCO_CLOSE_EVT)
CASE_RETURN_STR(BTA_HF_CLIENT_SEND_AT_CMD_EVT)
CASE_RETURN_STR(BTA_HF_CLIENT_PKT_NUMS_GET_EVT)
default:
return "Unknown HF Client Event";
}

View File

@@ -29,6 +29,10 @@
#include "hci/hci_audio.h"
#endif
#if BT_HF_CLIENT_BQB_INCLUDED
static BOOLEAN s_bta_hf_client_bqb_esco_s1_flag = false;
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
#if (BTA_HF_INCLUDED == TRUE)
#define BTA_HF_CLIENT_NO_EDR_ESCO (BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 | \
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | \
@@ -39,6 +43,7 @@
#define BTA_HF_CLIENT_ESCO_PARAM_IDX_CVSD_S3 1 /* eSCO setting for CVSD S3 */
#define BTA_HF_CLIENT_ESCO_PARAM_IDX_MSBC_T2 2 /* eSCO setting for mSBC T2 */
#define BTA_HF_CLIENT_ESCO_PARAM_IDX_CVSD_S4 3 /* eSCO setting for CVSD S4 */
#define BTA_HF_CLIENT_ESCO_PARAM_IDX_CVSD_S1 4 /* eSCO setting for CVSD S1 */
static const tBTM_ESCO_PARAMS bta_hf_client_esco_params[] = {
/* SCO CVSD */
@@ -47,7 +52,8 @@ static const tBTM_ESCO_PARAMS bta_hf_client_esco_params[] = {
.tx_bw = BTM_64KBITS_RATE,
.max_latency = 10,
.voice_contfmt = BTM_VOICE_SETTING_CVSD,
.packet_types = (BTM_SCO_LINK_ONLY_MASK |
.packet_types = (BTM_SCO_PKT_TYPES_MASK_HV1 |
BTM_SCO_PKT_TYPES_MASK_HV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
@@ -60,9 +66,9 @@ static const tBTM_ESCO_PARAMS bta_hf_client_esco_params[] = {
.tx_bw = BTM_64KBITS_RATE,
.max_latency = 10,
.voice_contfmt = BTM_VOICE_SETTING_CVSD,
/* Allow controller to use all types available except 5-slot EDR */
.packet_types = (BTM_SCO_LINK_ALL_PKT_MASK |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
/* Packet Types : 2-EV3 */
.packet_types = (BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
.retrans_effort = BTM_ESCO_RETRANS_POWER,
},
@@ -72,10 +78,9 @@ static const tBTM_ESCO_PARAMS bta_hf_client_esco_params[] = {
.tx_bw = BTM_64KBITS_RATE,
.max_latency = 13,
.voice_contfmt = BTM_VOICE_SETTING_TRANS,
/* Packet Types : EV3 + 2-EV3 */
.packet_types = (BTM_SCO_PKT_TYPES_MASK_EV3 |
/* Packet Types : 2-EV3 */
.packet_types = (BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
.retrans_effort = BTM_ESCO_RETRANS_QUALITY,
},
@@ -86,12 +91,28 @@ static const tBTM_ESCO_PARAMS bta_hf_client_esco_params[] = {
.tx_bw = BTM_64KBITS_RATE,
.max_latency = 12,
.voice_contfmt = BTM_VOICE_SETTING_CVSD,
/* Allow controller to use all types available except 5-slot EDR */
.packet_types = (BTM_SCO_LINK_ALL_PKT_MASK |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
/* Packet Types : 2-EV3 */
.packet_types = (BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
.retrans_effort = BTM_ESCO_RETRANS_QUALITY,
},
/* ESCO CVSD S1 */
#if BT_HF_CLIENT_BQB_INCLUDED
{
.rx_bw = BTM_64KBITS_RATE,
.tx_bw = BTM_64KBITS_RATE,
.max_latency = 7,
.voice_contfmt = BTM_VOICE_SETTING_CVSD,
/* Packet Types : EV3 */
.packet_types = (HCI_ESCO_PKT_TYPES_MASK_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5),
.retrans_effort = BTM_ESCO_RETRANS_POWER,
}
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
};
enum {
@@ -106,6 +127,22 @@ enum {
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) */
};
/*******************************************************************************
**
** Function bta_hf_client_bqb_esco_s1_ctrl
**
** Description Control the usage of CVSD eSCO S1 parameter for BQB test
**
** Returns void
**
*******************************************************************************/
#if BT_HF_CLIENT_BQB_INCLUDED
void bta_hf_client_bqb_esco_s1_ctrl(BOOLEAN enable)
{
s_bta_hf_client_bqb_esco_s1_flag = enable;
}
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
static void bta_hf_client_sco_event(UINT8 event);
/*******************************************************************************
**
@@ -155,6 +192,7 @@ void bta_hf_client_cback_sco(UINT8 event)
tBTA_HF_CLIENT_HDR evt;
memset(&evt, 0, sizeof(evt));
evt.sync_conn_handle = BTM_ReadScoHandle(bta_hf_client_cb.scb.sco_idx);
/* call app cback */
(*bta_hf_client_cb.p_cback)(event, (tBTA_HF_CLIENT_HDR *) &evt);
@@ -213,6 +251,11 @@ static void bta_hf_client_sco_conn_rsp(tBTM_ESCO_CONN_REQ_EVT_DATA *p_data)
(bta_hf_client_cb.scb.features && BTA_HF_CLIENT_FEAT_ESCO_S4) &&
(bta_hf_client_cb.scb.peer_features && BTA_HF_CLIENT_PEER_ESCO_S4)) {
index = BTA_HF_CLIENT_ESCO_PARAM_IDX_CVSD_S4;
#if BT_HF_CLIENT_BQB_INCLUDED
if (s_bta_hf_client_bqb_esco_s1_flag == true) {
index = BTA_HF_CLIENT_ESCO_PARAM_IDX_CVSD_S1;
}
#endif /* BT_HF_CLIENT_BQB_INCLUDED */
} else if (bta_hf_client_cb.scb.negotiated_codec == BTM_SCO_CODEC_MSBC) {
index = BTA_HF_CLIENT_ESCO_PARAM_IDX_MSBC_T2;
}
@@ -237,7 +280,29 @@ static void bta_hf_client_sco_conn_rsp(tBTM_ESCO_CONN_REQ_EVT_DATA *p_data)
BTM_EScoConnRsp(p_data->sco_inx, hci_status, &resp);
}
#if (BTM_SCO_HCI_INCLUDED == TRUE )
#if (BTM_SCO_HCI_INCLUDED == TRUE)
/*******************************************************************************
**
** Function bta_hf_client_pkt_stat_nums
**
** Description Get the packet status number
**
**
** Returns void
**
*******************************************************************************/
void bta_hf_client_pkt_stat_nums(tBTA_HF_CLIENT_DATA *p_data)
{
tBTA_SCO_PKT_STAT_NUMS pkt_stat_nums;
uint16_t sync_conn_handle = p_data->pkt_stat.sync_conn_handle;
BTM_PktStatNumsGet(sync_conn_handle, (tBTM_SCO_PKT_STAT_NUMS *) &pkt_stat_nums);
/* call app cback */
if (bta_hf_client_cb.p_cback) {
(*bta_hf_client_cb.p_cback)(BTA_HF_CLIENT_PKT_STAT_NUMS_GET_EVT, (void*) &pkt_stat_nums);
}
}
/*******************************************************************************
**
** Function bta_hf_client_ci_sco_data
@@ -254,6 +319,7 @@ void bta_hf_client_ci_sco_data(tBTA_HF_CLIENT_DATA *p_data)
bta_hf_client_sco_event(BTA_HF_CLIENT_SCO_CI_DATA_E);
}
#endif
/*******************************************************************************
**
** Function bta_hf_client_sco_connreq_cback

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