Compare commits

...

917 Commits

Author SHA1 Message Date
Roland Dobai 38eeba213a change(version): Update version to 4.4.7 2024-02-27 09:07:40 +01:00
David Čermák 1db39dfea9 Merge branch 'bugfix/w5500_copy_len_v4.4' into 'release/v4.4'
fix(esp_eth): W5500 receive function to return copy_len (v4.4)

See merge request espressif/esp-idf!29022
2024-02-23 15:06:57 +08:00
Mahavir Jain f327ddf6ad Merge branch 'bugfix/ota_anti_rollback_checks_2_v4.4' into 'release/v4.4'
feat(bootloader_support): Read secure_version under sha256 protection (v4.4)

See merge request espressif/esp-idf!29062
2024-02-21 11:45:51 +08:00
Mahavir Jain 40fe00a65c fix(bootloader_support): check the secure version only for app image
Secure version in the image header is only available for the application
image. However, for certain security workflows, bootloader verifies
itself (own image) and hence the secure version check during that must be
avoided.

Regression introduced in recent commit-id: 3305cb4d

Tested that both secure boot and flash-enc workflows work correctly
with the anti-rollback scenario.
2024-02-20 11:20:03 +02:00
Mahavir Jain 1cf1f4ef9a Merge branch 'fix/build_failure_when_hardware_gcm_is_disabled_v4.4' into 'release/v4.4'
fix(mbedtls/gcm): Fix build failure when config `MBEDTLS_HARDWARE_GCM` is disabled (v4.4)

See merge request espressif/esp-idf!29070
2024-02-20 12:10:11 +08:00
harshal.patil 7f20e696b6 fix(mbedtls/gcm): Avoid using GCM hardware when config MBEDTLS_HARDWARE_GCM is disabled 2024-02-16 11:55:41 +05:30
harshal.patil 3bffba71c0 fix(mbedtls/gcm): Fix build failure when config MBEDTLS_HARDWARE_GCM is disabled 2024-02-16 11:55:41 +05:30
Mahavir Jain 6d2153d703 fix(ota): additional checks for secure version in anti-rollback case
Some additional checks related to secure version of the application in
anti-rollback case have been added to avoid any attempts to boot lower
security version but valid application (e.g., passive partition image).

- Read secure_version under sha256 protection

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

- Second check has been added in the application startup code to ensure
  that currently booting app has higher security version than the one
  programmed in the eFuse for anti-rollback scenario. This will ensure
  that only the legit application boots-up on the device for
  anti-rollback case.
2024-02-15 15:23:19 +02:00
Mahavir Jain 6897e4e0fa Merge branch 'feature/update_mbedtls_to_v_2.28.7' into 'release/v4.4'
feat(mbedtls): Update mbedtls to 2.28.7

See merge request espressif/esp-idf!28942
2024-02-13 23:54:03 +08:00
Ondrej Kosta e2e03ced38 fix(esp_eth): W5500 receive function to return copy_len 2024-02-12 10:36:29 +01:00
nilesh.kale 6fa8029146 feat(mbedtls): Update mbedtls to 2.28.7
This MR updates MbedlTLS version from 2.28.5 to 2.28.7
2024-02-09 11:38:23 +05:30
Jiang Jiang Jian b2146b8aa3 Merge branch 'bugfix/fix_dangling_pointer_in_remove_bond_list_section_v4.4' into 'release/v4.4'
fix(bt/bluedroid): fix dangling pointer issue when logging removed section (backport v4.4)

See merge request espressif/esp-idf!28964
2024-02-07 22:02:09 +08:00
Jiang Jiang Jian 27bc69a6df Merge branch 'bugfix/fix_coex_wifi_restart_issue_v4.4' into 'release/v4.4'
Bugfix/fix coex wifi restart issue v4.4

See merge request espressif/esp-idf!28935
2024-02-07 19:32:22 +08:00
gongyantao de32c62e90 fix(bt/bluedroid): fix dangling pointer issue when logging remove section 2024-02-07 15:10:30 +08:00
Rahul Tank 02312e6a31 Merge branch 'bugfix/fix_out_of_order_messages_causing_dos_v4.4' into 'release/v4.4'
fix(nimble): Out of order messages during SMP causing DOS vulnerability (v4.4)

See merge request espressif/esp-idf!28940
2024-02-07 11:59:44 +08:00
Jiang Jiang Jian 49961221ed Merge branch 'bugfix/ble_mesh_deinit_reinit_v4.4' into 'release/v4.4'
feat: ble mesh: improve ble mesh deinit when nimble enable(backport v4.4)

See merge request espressif/esp-idf!28923
2024-02-07 11:06:26 +08:00
Jiang Jiang Jian 21b041fe75 Merge branch 'bugfix/ble_mesh_ble_advtype_v4.4' into 'release/v4.4'
ble_mesh: update ble mesh ble adv type(backport v4.4)

See merge request espressif/esp-idf!28914
2024-02-07 10:55:27 +08:00
Sumeet Singh abd29905ae fix(nimble): Out of order messages during SMP causing DOS vulerability (v4.4) 2024-02-06 16:46:27 +05:30
liuning 37bf723057 fix(wifi): fix wifi stop cost too much time 2024-02-06 16:10:14 +08:00
liuning a43e575bb0 fix(clk): clear all lpclk source at clk init 2024-02-06 16:07:40 +08:00
InfiniteYuan 674f322b87 feat: ble mesh: improve ble mesh deinit when nimble enable 2024-02-06 14:45:31 +08:00
InfiniteYuan 16a6523220 ble_mesh: update ble mesh ble adv type 2024-02-06 14:17:02 +08:00
Jiang Jiang Jian a8e38106d7 Merge branch 'bugfix/fix_esp_wifi_scan_start_memory_leakage_issue_v4.4' into 'release/v4.4'
fix(wifi): fix esp_wifi_scan_start memory leakage issue(Backport v4.4)

See merge request espressif/esp-idf!28904
2024-02-06 11:56:23 +08:00
muhaidong 0bfa176435 fix(wifi): fix esp_wifi_scan_start memory leakage issue
Closes https://github.com/espressif/esp-idf/issues/10693
2024-02-05 19:33:47 +08:00
Jiang Jiang Jian 2d60e58888 Merge branch 'docs/usb_host_stack_config_v4.4' into 'release/v4.4'
USB host: host stack configiuration docs backport to v4.4

See merge request espressif/esp-idf!28775
2024-02-05 19:30:55 +08:00
Jiang Jiang Jian 247cb8b72f Merge branch 'bugfix/fix_key_revocation_v4.4' into 'release/v4.4'
fix(app_update): Fix reading secure boot digest from register

See merge request espressif/esp-idf!28830
2024-02-05 19:29:43 +08:00
Island 839719a287 Merge branch 'bugfix/fix_dtm_tx_count_v4.4' into 'release/v4.4'
Update bt lib for ESP32-C3 and ESP32-S3(30b57c45)(backport v4.4)

See merge request espressif/esp-idf!28874
2024-02-05 14:45:12 +08:00
Jiang Jiang Jian 8ef5dcee5d Merge branch 'feature/add_api_to_get_controller_status_on_esp32_v4.4' into 'release/v4.4'
feat(ble/controller): Add API to get BLE controller status on ESP32 (backport v4.4)

See merge request espressif/esp-idf!28877
2024-02-05 11:07:32 +08:00
Jiang Jiang Jian 5adad46929 Merge branch 'feat/support_get_bluedroid_status_v4.4' into 'release/v4.4'
Support get status of bluedroid host (backport v4.4)

See merge request espressif/esp-idf!28884
2024-02-05 11:06:12 +08:00
Jiang Jiang Jian 2b490aeb2d Merge branch 'bugfix/fix_xQueueSemaphoreTask_assert_when_deinit_host_v4.4' into 'release/v4.4'
Fixed xQueueSemaphoreTask assert when deinit host during scan (backport v4.4)

See merge request espressif/esp-idf!28886
2024-02-05 11:03:33 +08:00
zhiweijian d9a9c0cc9d Fixed xQueueSemaphoreTask assert when deinit host during scan 2024-02-04 19:15:52 +08:00
Jiang Jiang Jian c2c7f53b94 Merge branch 'ci/new-known_failure_cases_workflow(v4.4)' into 'release/v4.4'
ci: change known_failure_cases workflow(v4.4)

See merge request espressif/esp-idf!27968
2024-02-04 17:42:47 +08:00
chenjianhua 30dbf89909 feat(bt/bluedroid): Support get status of bluedroid host 2024-02-04 17:02:27 +08:00
chenjianhua 730537b50c fix(bt/example): Fixed UART HCI when flow control is off on ESP32C3 2024-02-04 16:55:58 +08:00
chenjianhua 4ddb8587d9 feat(bt/bluedroid): Make the max number of bond device to be configurable 2024-02-04 16:55:51 +08:00
zhiweijian 52f7624853 feat(ble/controller): Add API to get BLE controller status on ESP32 2024-02-04 15:13:55 +08:00
zhanghaipeng 6b57f04cc8 fix(ble/controller): Fixed tx count in direct test mode on ESP32-C3 and ESP32-S3
- Fixed tx count in direct test mode on ESP32-C3 and ESP32-S3
- fixed modem sleep enter failed sometimes
2024-02-04 14:26:33 +08:00
chenjianhua 875317f9eb fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(91980c2)
- Fixed scheduling when modem sleep wakeup delayed
- Fixed IRQ FIFO overflow when enter critical
- Fixed clock sync timeout for modem sleep
- Fixed directed adv with RPA when privacy disabled
- Fixed instant passed for connection update and PHY update
2024-02-04 14:26:15 +08:00
Rahul Tank bae43759c8 Merge branch 'bugfix/nimble_host_clean_up_api_v4.4' into 'release/v4.4'
fix(nimble): Added API to get current stack operation status (v4.4)

See merge request espressif/esp-idf!28859
2024-02-03 19:08:42 +08:00
Rahul Tank b6c46fa270 fix(nimble): Added API to get current stack operation status (v4.4) 2024-02-03 09:04:15 +05:30
Rahul Tank 0456f9746a Merge branch 'bugfix/add_adv_itvl_range_check_v4.4' into 'release/v4.4'
fix(nimble): Add adv interval min/max range check (v4.4)

See merge request espressif/esp-idf!28854
2024-02-03 01:56:01 +08:00
Harshit Malpani 650c64a840 fix(app_update): Fix reading secure boot digest from register
While reading the key from the register, the register are read by
8 bit access which results in reading wrong data. Reading from the
peripheral should be 32 bit aligned. The commit updates the code
to read the secure boot key from the register using 32 bit access.

Closes https://github.com/espressif/esp-idf/issues/12851
2024-02-02 16:23:49 +05:30
morris acfc9130c0 Merge branch 'bugfix/fix_adc_oneshot_do_not_spilt_clk_v4.4' into 'release/v4.4'
fix(adc): fix ADC oneshot mod don't divide clk (v4.4)

See merge request espressif/esp-idf!26705
2024-02-02 17:58:57 +08:00
Michael (XIAO Xufeng) 5684098285 Merge branch 'bugfix/hpm_dc_default_disabled_v4.4' into 'release/v4.4'
spi_flash: fixed issue that enabling HPM-DC by default may cause app unable to restart (v4.4)

See merge request espressif/esp-idf!28159
2024-02-02 17:40:17 +08:00
Rahul Tank 8efc66495b fix(nimble): Add adv interval min/max range check (v4.4) 2024-02-02 11:40:33 +05:30
morris 2a6797d016 kconfig: support plain comment in the menu 2024-02-02 10:33:59 +08:00
Xiao Xufeng 87182c9c76 doc(spi_flash): hide unsupported optional features 2024-02-02 10:33:59 +08:00
Xiao Xufeng 7bfc2b0418 spi_flash: fixed issue that enabling HPM-DC by default may cause app unable to restart 2024-02-02 10:33:59 +08:00
Rahul Tank 2ded73b2f4 Merge branch 'bugfix/fix_sm_inject_io_return_val_v4.4' into 'release/v4.4'
fix(nimble): Added change to ensure that API execution returns success (v4.4)

See merge request espressif/esp-idf!28652
2024-02-01 14:39:53 +08:00
morris 23173d3d72 Merge branch 'bugfix/fix_wrong_dcache_0_size_issue_on_s2_v4.4' into 'release/v4.4'
fix(cache): fix wrong dcache size 0 configuration issue on s2 (v4.4)

See merge request espressif/esp-idf!28292
2024-02-01 13:02:54 +08:00
Roland Dobai 205173d241 Merge branch 'feature/python-reorder-imports-instead-isort_v4.4' into 'release/v4.4'
feat: Use python-reorder-imports instead of isort (v4.4)

See merge request espressif/esp-idf!28735
2024-01-31 19:38:20 +08:00
Darshan Dobariya 93ae438d59 fix(nimble): Added change to ensure that API execution returns success (v4.4) 2024-01-31 14:45:55 +05:30
Jan Beran 577a076bff feat: Use python-reorder-imports instead of isort 2024-01-31 09:13:42 +01:00
Rahul Tank 94853f775b Merge branch 'bugfix/add_minor_fixes_debug_v4.4' into 'release/v4.4'
fix(nimble): Add minor debug fixes (v4.4)

See merge request espressif/esp-idf!28535
2024-01-31 16:03:42 +08:00
Jiang Jiang Jian 61e7464645 Merge branch 'bugfix/no_wakeup_sleep_v4.4' into 'release/v4.4'
fix(ble): Fixed Bluetooth not waking up due to clock drift(v4.4)

See merge request espressif/esp-idf!28725
2024-01-31 14:02:32 +08:00
igor.udot 80b7b6caf1 ci: change known_failure_cases workflow 2024-01-31 12:17:48 +08:00
Jiang Jiang Jian 3afb4b5446 Merge branch 'feature/add_fall_back_dns_config_in_menuconfig_v4.4' into 'release/v4.4'
feat(lwip): add fall back dns config in menuconfig (v4.4)

See merge request espressif/esp-idf!28689
2024-01-31 10:39:50 +08:00
David Čermák 7e8f62cfb4 Merge branch 'bugfix/eth_ci_runners_v4.4' into 'release/v4.4'
Moved CI ETH runners to Brno v4.4

See merge request espressif/esp-idf!28604
2024-01-30 17:56:05 +08:00
xiongweichao 8e41d56dbe fix(ble): Fixed macro definition error for 136K clock drift 2024-01-30 16:06:34 +08:00
xiongweichao 2a7e9fc485 fix(ble): Fixed Bluetooth not waking up due to clock drift 2024-01-30 15:30:09 +08:00
Jiang Jiang Jian fe0da0eef3 Merge branch 'bugfix/fix_ble_tx_2m_problem_causing_by_phy_wifi_enable_set_v4.4' into 'release/v4.4'
fix(esp_phy): Fixed BLE TX 2M problem causing by phy_wifi_enable_set() (backport v4.4)

See merge request espressif/esp-idf!28769
2024-01-30 14:42:36 +08:00
morris 8f53bdb834 Merge branch 'bugfix/fix_incorrect_regbase_name_of_i2s_v4.4' into 'release/v4.4'
fix(i2s): fixed incorrect reg base name on C3 (v4.4)

See merge request espressif/esp-idf!28633
2024-01-30 10:32:00 +08:00
mofeifei 6391316f30 docs: update cn trans usb_host.rst 2024-01-29 10:51:26 +01:00
Roman Leonov d2a4247f8d feat(docs): added USB Host Stack Configuration description 2024-01-29 10:44:53 +01:00
zhiweijian 28ac68224d fix(esp_phy): Fixed BLE TX 2M problem causing by phy_wifi_enable_set()
1. Fixed BLE 2M phy TX problem causing by phy_wifi_enable_set() on ESP32-C3 and ESP32-S3
2. Fixed BLE and WIFI could not receive packets after entering light sleep for a long time on ESP32-C3 and ESP32-S3
2024-01-29 16:39:36 +08:00
Ondrej Kosta b244b6e86b ci(esp_eth): enabled Ethernet IP101 runner back
Moved LAN8720 test to different runner
2024-01-29 08:26:28 +01:00
Jiang Jiang Jian 27ec26d2d3 Merge branch 'bugfix/fix_pmk_invalid_wpa_or_wpa2_connect_fail_issue_v4.4' into 'release/v4.4'
fix(wifi): fix pmk invalid lead same ssid wpa and wpa2 connect fail issue(Backport v4.4)

See merge request espressif/esp-idf!28670
2024-01-29 10:49:46 +08:00
Jiang Jiang Jian 7c8aabda7d Merge branch 'feature/supplicant_bss_extmem_v4.4' into 'release/v4.4'
WiFi: Add support to move supplicant BSS to external memory (v4.4)

See merge request espressif/esp-idf!28746
2024-01-29 10:35:05 +08:00
Kapil Gupta 944862de25 fix(wifi): Add support to move supplicant BSS to external memory 2024-01-27 11:13:09 +05:30
laokaiyao 6340b958fe fix(i2s): fixed incorrect reg base name on C3
Closes https://github.com/espressif/esp-idf/issues/12643
2024-01-26 18:45:19 +08:00
Wang Meng Yang 3f0f8f3ed6 Merge branch 'bugfix/spp_disc_connect_btqabr2023_156_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fixed SPP connection failure(v4.4)

See merge request espressif/esp-idf!28559
2024-01-26 11:49:12 +08:00
xiongweichao 449ab48101 fix(bt/bluedroid): Fixed SPP connection failure
The connection failure is caused by the BTU and application layer status being out of sync.
2024-01-25 19:55:00 +08:00
Island b9124d3ab3 Merge branch 'bugfix/fix_some_ble_issue_v4.4' into 'release/v4.4'
Bugfix/fix some ble issue v4.4(backport v4.4)

See merge request espressif/esp-idf!28614
2024-01-25 12:00:11 +08:00
zhangyanjiao 75b4fb5a66 feat(lwip): add fall back dns config in menuconfig
Closes https://github.com/espressif/esp-idf/issues/12530
2024-01-25 11:21:28 +08:00
Jiang Jiang Jian a589ecdca8 Merge branch 'bugfix/fix_systick_lost_in_esp32_dfs_v4.4' into 'release/v4.4'
fix(esp_pm): safely check ccompare validity in DFS update_ccompare (v4.4)

See merge request espressif/esp-idf!28564
2024-01-24 19:11:11 +08:00
muhaidong dd0e27ad74 fix(wifi): fix pmk invalid lead same ssid wpa and wpa2 connect fail issue 2024-01-24 19:07:40 +08:00
Rahul Tank 2746916f21 fix(nimble): Add minor debug fixes 2024-01-24 18:32:38 +08:00
zhanghaipeng 6627b4edd7 feat(bt/bluedroid): Support ext adv aux option 2024-01-24 18:29:38 +08:00
zhanghaipeng b13dfdceed fix(bt/bluedroid): Fix BLE malloc internal wrapper fail 2024-01-24 18:29:38 +08:00
Zeke Gustafson 3811384d6e feat(ble/bluedroid): Add getter for BLE GAP callback 2024-01-24 18:29:38 +08:00
Zeke Gustafson ff14780dfd feat(ble/bluedroid): Add getter for BLE GATTS callback 2024-01-24 18:29:38 +08:00
zhanghaipeng b4148534f6 feat(ble/bluedroid): Add getter for BLE GATTC calllback 2024-01-24 18:29:38 +08:00
zhanghaipeng 2d244b521d docs(ble/bluedroid): Optimize documentation for BLE duplicate scan 2024-01-24 18:29:38 +08:00
zhanghaipeng b11b9dabb3 fix(ble/bluedroid): Fix dangling pointer issue in deletion of bonded devices 2024-01-24 18:29:38 +08:00
zhanghaipeng eef6f5f392 fix(ble/bluedroid): Fix BLE background connection log level 2024-01-24 18:29:38 +08:00
Jiang Jiang Jian a1c2e7161b Merge branch 'bugfix/fix_scan_request_ifs_error_v4.4' into 'release/v4.4'
Fixed BLE scan request ifs time error in coexistence scenarios(backport v4.4)

See merge request espressif/esp-idf!28577
2024-01-24 17:55:15 +08:00
liuning cb0287f01c fix(esp_coex): Fixed potential BLE scan request ifs timer error bug 2024-01-24 11:27:12 +08:00
zhiweijian 6c5268da38 Fixed BLE scan request ifs timer error in coexistence scenarios 2024-01-24 11:27:12 +08:00
wuzhenghui 8847d25638 fix(esp_pm): safely check ccompare validity in DFS update_ccompare 2024-01-24 11:26:32 +08:00
Jiang Jiang Jian e61e19b64e Merge branch 'ci/disable_ip101_tests' into 'release/v4.4'
ci: comment ip101 test case (v4.4)

See merge request espressif/esp-idf!28636
2024-01-24 11:25:42 +08:00
Fu Hanxi d225370c31 ci: comment ip101 test case
otherwise assign test will fail
2024-01-23 08:13:17 +01:00
Island 9186e0e22d Merge branch 'bugfix/ble_check_adv_data_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fix ble adv data check to avoid memory overflow(backport v4.4)

See merge request espressif/esp-idf!28408
2024-01-22 10:42:37 +08:00
Island 753bed36c4 Merge branch 'bugfix/fix_ble_memory_leak_v4.4' into 'release/v4.4'
fix(ble/bluedroid): Fix ble memory leak when gattc config off(backport v4.4)

See merge request espressif/esp-idf!28498
2024-01-22 10:42:22 +08:00
Marius Vikhammer fd06a6e74c Merge branch 'bugfix/linenoise_calculates_negative_prompt_len_v4.4' into 'release/v4.4'
fix(console): Fixed linenoise prompt length calculation (v4.4)

See merge request espressif/esp-idf!28529
2024-01-19 09:58:56 +08:00
Wang Meng Yang 53dd2baa6b Merge branch 'bugfix/fix_mac_bb_pd_iwdt_timeout_v4.4' into 'release/v4.4'
fix(ble): fixed interrupt timeout in MAC_BB_PD callback (v4.4)

See merge request espressif/esp-idf!28467
2024-01-18 17:57:31 +08:00
Rahul Tank f765235123 Merge branch 'bugfix/address_resolution_v4.4' into 'release/v4.4'
fix(nimble): Added support for address resolution during inquiry (v4.4)

See merge request espressif/esp-idf!28522
2024-01-18 13:29:32 +08:00
Jiang Jiang Jian 9a9533d5a4 Merge branch 'bugfix/fix_crash_issue_when_mesh_deinit_v4.4' into 'release/v4.4'
fix(wifi): fix the crash and malloc fail issue (v4.4)

See merge request espressif/esp-idf!28540
2024-01-18 11:58:40 +08:00
Jiang Jiang Jian 0bce68089c Merge branch 'ci/temp_disable_jobs_v4.4' into 'release/v4.4'
ci: remove ip101 jobs and twai_std jobs (v4.4)

See merge request espressif/esp-idf!28380
2024-01-18 11:11:52 +08:00
Jiang Jiang Jian 2acfd88a47 Merge branch 'bugfix/change_default_value_for_ip_ttl_4.4' into 'release/v4.4'
Fix(lwip):bugfix for change default value for ip ttl 4.4

See merge request espressif/esp-idf!28398
2024-01-18 11:11:02 +08:00
Michael (XIAO Xufeng) 90f913734b Merge branch 'bugfix/recalib_bbpll_before_tuning_v4.4' into 'release/v4.4'
fix(bbpll): fix bbpll may not lock or not stable bug for stop early (ESP32C2/S3/C6/H2) (v4.4)

See merge request espressif/esp-idf!28287
2024-01-18 11:00:21 +08:00
zhangyanjiao bcc7ea3137 fix(wifi): fix the crash and malloc fail issue
1. fix(wifi/mesh): fix the crash issue when mesh deinit
2. fix(wifi):fix when ap recv auth in sa query porcess will memset psq issue
2024-01-17 19:58:15 +08:00
Sudeep Mohanty bc11b9183b fix(console): Fixed linenoise prompt length calculation
This commit fixes a potential issue where in the prompt length used
for the linenoise based console could be calculated as a negative
integer, leading to a console hang.

Closes https://github.com/espressif/esp-idf/issues/4924
2024-01-17 09:43:01 +01:00
Mahavir Jain bb46e6529c Merge branch 'bugfix/update_jtag_disabling_api_v4.4' into 'release/v4.4'
fix(esp_hw_support): fix API esp_hmac_disable_jtag() to disable JTAG (v4.4)

See merge request espressif/esp-idf!28508
2024-01-17 16:09:20 +08:00
Darshan Dobariya 97934f52ea fix(nimble): Added support for address resolution during inquiry (v4.4) 2024-01-17 11:51:05 +05:30
nilesh.kale 3afa52bb88 fix(esp_hw_support): fix API esp_hmac_disable_jtag() to disable JTAG
After ets_hmac_disable(), invalidating JTAG register process is ineffective.
So, added call to enable hmac begore invalidating JTAG REG.
And similarly disabled it after invalidation.
2024-01-16 15:42:13 +05:30
Xiao Xufeng 9c6ccec971 fix(rtc): fixed bbpll not calibrated from bootloader issue 2024-01-16 18:09:48 +08:00
chaijie@espressif.com 8f581352e0 fix(bbpll): fix bbpll calibration may stop early bug (S3) 2024-01-16 18:08:36 +08:00
zhanghaipeng 8b66455e5c fix(ble/bluedroid): Fix ble memory leak when gattc config off 2024-01-16 15:45:41 +08:00
Roland Dobai 2a6cbd0d3d Merge branch 'fix/kconcheck_checks_v4.4' into 'release/v4.4'
fix(kconfcheck): Fixed false-positive indent errors and extended limits (backport v4.4)

See merge request espressif/esp-idf!28475
2024-01-16 00:34:05 +08:00
Jakub Kocka 474d150477 fix(kconfcheck): Fixed false-positive indent errors and extended limits 2024-01-15 13:02:21 +01:00
linruihao b9cf89ac23 fix(ble): fixed interrupt timeout in MAC_BB_PD callback 2024-01-15 16:17:19 +08:00
Rahul Tank 8a97a02001 Merge branch 'bugfix/handle_task_lock_v4.4' into 'release/v4.4'
fix(nimble): Remove unwanted task lock check when HS_DEBUG is enabled (v4.4)

See merge request espressif/esp-idf!28420
2024-01-15 15:04:30 +08:00
morris f6a76d8e09 Merge branch 'bugfix/i2s_tx_mono_issue_v4.4' into 'release/v4.4'
fix(i2s): fixed i2s incorrect tx mono slot (v4.4)

See merge request espressif/esp-idf!28450
2024-01-15 14:44:41 +08:00
laokaiyao f0dc5aecf6 fix(i2s): fixed i2s incorrect tx mono slot (v4.4) 2024-01-15 10:53:50 +08:00
Mahavir Jain 256f03471e Merge branch 'ci/fix_test_http_server_file_serving' into 'release/v4.4'
ci: optimize test protocol_http_server_file_serving

See merge request espressif/esp-idf!28373
2024-01-12 11:48:51 +08:00
Island 56c4d34fca Merge branch 'feat/ble_mesh_miscellaneous_update_v4.4' into 'release/v4.4'
feat(ble_mesh): Miscellaneous updates for mesh kconfig, relay related(v4.4)

See merge request espressif/esp-idf!28035
2024-01-12 10:34:51 +08:00
Rahul Tank 5b644edfd4 fix(nimble): Remove unwanted task lock check when HS_DEBUG is enabled 2024-01-11 17:32:17 +05:30
zhanghaipeng 6d55e5e7bf fix(bt/bluedroid): Fix ble adv data check to avoid memory overflow 2024-01-11 16:36:01 +08:00
Xue yun fei d54c947628 Fix(lwip):bugfix for change default value for ip ttl 2024-01-11 14:35:36 +08:00
Chen Yudong fafab20b3f ci: optimize test protocol_http_server_file_serving 2024-01-10 19:48:35 +08:00
Fu Hanxi 19c9202768 ci: remove ip101 jobs and twai_std jobs 2024-01-10 10:34:56 +01:00
Mahavir Jain 2a1133c1cc Merge branch 'feat/update_cjson_v1_7_17_v4.4' into 'release/v4.4'
feat(cJSON): update submodule to v1.7.17 (v4.4)

See merge request espressif/esp-idf!28351
2024-01-10 11:55:31 +08:00
Jiang Jiang Jian af2ce6de13 Merge branch 'bugfix/reset_connectionless_pm_status_v4.4' into 'release/v4.4'
fix(coex): fix esp32 ble scan interrupted by Wi-Fi, reset Wi-Fi connectionless pm status

See merge request espressif/esp-idf!28082
2024-01-10 11:31:28 +08:00
luoxu edf80c574e feat(ble_mesh): Miscellaneous updates for mesh kconfig, relay related 2024-01-10 10:18:40 +08:00
Island 7af69b9ddb Merge branch 'bugfix/increase_btu_task_stack_size_v4.4' into 'release/v4.4'
fix(bt/bludroid): Increase BTU task stack size(backport v4.4)

See merge request espressif/esp-idf!28320
2024-01-09 15:25:18 +08:00
Harshit Malpani cd7cef5ceb feat(cjson): update submodule to v1.7.17
Changelog: https://github.com/DaveGamble/cJSON/releases/tag/v1.7.17
2024-01-09 12:16:07 +05:30
Rahul Tank efe283f16f Merge branch 'bugfix/reattempt_conn_feat_extended_v4.4' into 'release/v4.4'
fix(nimble): Support for reattempt connection in ext connect (v4.4)

See merge request espressif/esp-idf!28309
2024-01-08 20:44:00 +08:00
linruihao 73152761f6 fix(bt/bludroid): Increase BTU task stack size 2024-01-08 11:37:28 +08:00
Rahul Tank 517a2c5132 fix(nimble): Support for reattempt connection in ext connect 2024-01-05 16:45:58 +05:30
Island ca7cc8e903 Merge branch 'bugfix/fix_ble_robost_cashing_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fix BLE robost cashing config(backport v4.4)

See merge request espressif/esp-idf!28198
2024-01-05 12:45:05 +08:00
Armando 61ac7f8a91 fix(cache): fix wrong dcache size 0 configuration issue on s2
Closes https://github.com/espressif/esp-idf/issues/12711
2024-01-05 10:41:56 +08:00
Roland Dobai bb8dd9d35b Merge branch 'ci/pre_commit_sbom_validation_v4.4' into 'release/v4.4'
ci: add sbom validation using pre-commit's post-commit stage (v4.4)

See merge request espressif/esp-idf!28231
2024-01-03 18:37:52 +08:00
morris 88aae9e8d6 Merge branch 'refactor/uart_read_bytes_from_ringbuf_v4.4' into 'release/v4.4'
change(uart): improved the internal logic of uart_read_bytes (v4.4)

See merge request espressif/esp-idf!28223
2024-01-03 14:13:53 +08:00
morris c272210e74 Merge branch 'contrib/github_pr_12559_v4.4' into 'release/v4.4'
fix(spi): Correct REG_SPI_BASE(i) macro for all targets (GitHub PR) (v4.4)

See merge request espressif/esp-idf!27717
2024-01-03 11:37:16 +08:00
Frantisek Hrbata 471c3263b5 ci: add sbom validation using pre-commit's post-commit stage
With 09ba070b7e ("fix: allow to use older pre-commit hook version")
and b93cc581a5 ("fix: set default pre-commit hook stages to pre-commit..")
we set the default pre-commit hook stage to commit/pre-commit, which avoids
running the pre-commit plugins/hooks multiple times for different stages.
Unfortunately this also affects "pre-commit run" used in CI and
now it runs only plugins which are by default using the
commit/pre-commit stage. Meaning the sbom validation, which uses
post-commit, is not run at all. This adds an explicit pre-commit command
for validate-sbom-manifest plugin, which needs to be started in
post-commit stage.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-01-02 16:30:50 +01:00
Song Ruo Jing 520fb6ab09 change(uart): improved the internal logic of uart_read_bytes
Ringbuffer usage becomes more efficient with the use of xRingbufferReceiveUpTo

Closes https://github.com/espressif/esp-idf/issues/12386
2024-01-02 20:17:28 +08:00
zhanghaipeng 0406d64dd2 fix(bt/bluedroid): Update ble gattc gatts coex example 2024-01-02 12:10:55 +08:00
zhanghaipeng a2e2bfdbd4 fix(bt/bluedroid): Optimize ble remove all bonded devices function 2024-01-02 12:10:18 +08:00
zhanghaipeng 1ddeab56a9 fix(bt/bluedroid): Update ble ibeacon example document 2024-01-02 12:10:18 +08:00
Jiang Jiang Jian 8262c19a51 Merge branch 'bugfix/boot_flash_build_v4.4' into 'release/v4.4'
bugfix(spi_flash): Fix build error when octal flash is enabled (backport v4.4)

See merge request espressif/esp-idf!28091
2024-01-02 10:14:34 +08:00
Jiang Jiang Jian ece1bf242e Merge branch 'bugfix/fix_ble_app_unregister_no_event_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fix ble app unregister no event(backport v4.4)

See merge request espressif/esp-idf!28173
2023-12-31 14:22:22 +08:00
zhanghaipeng 4404659605 fix(bt/bluedroid): Fix BLE robost cashing config 2023-12-30 20:16:28 +08:00
zhanghaipeng 8ddc31a001 fix(bt/bluedroid): Fix ble app unregister no event 2023-12-28 19:16:35 +08:00
Michael (XIAO Xufeng) c1c69210de Merge branch 'bugfix/idf_ci_build_is_not_set_v4.4' into 'release/v4.4'
ci: Fix environment variable IDF_CI_BUILD is not set (v4.4)

See merge request espressif/esp-idf!27681
2023-12-28 18:50:21 +08:00
Jiang Jiang Jian 54c529a21b Merge branch 'bugfix/crash_in_btc_hf_init_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Avoided crash of LoadProhibited during HFP AG deinitialization (v4.4)

See merge request espressif/esp-idf!28119
2023-12-27 19:40:44 +08:00
Jiang Jiang Jian 6d853f0525 Merge branch 'bugfix/fix_establish_two_sco_fail_v4.4' into 'release/v4.4'
fix(bt/controller): Fixed establish two sco connections failed (Backport v4.4)

See merge request espressif/esp-idf!28102
2023-12-27 19:40:23 +08:00
Jin Cheng 4cdd3bcc4e fix(bt/bluedroid): Disabled Sniff Subrating temporarily as it did not work well 2023-12-26 11:53:07 +08:00
Jin Cheng 48594fc6e7 fix(bt/bluedroid): Changed the default air mode to invalid value 2023-12-26 11:53:07 +08:00
Jin Cheng 7142dbafe3 fix(bt/bluedroid): Removed redundant operation of SCO clean up 2023-12-26 11:53:06 +08:00
Jin Cheng 3aecd14840 fix(bt/bluedroid): Corrected the definitions of HF Client callback events 2023-12-26 11:53:06 +08:00
Jin Cheng 9490f87838 fix(bt/bluedroid): Avoided crash of LoadProhibited during HFP AG deinitialization
Move the release of the control blocks from the start
of deinitialization to the profile disabled event.
2023-12-26 11:53:06 +08:00
Jin Cheng 72ab07a68d fix(bt/bluedroid): Added dynamic memory allocation for HFP control blocks 2023-12-26 11:53:06 +08:00
Cao Sen Miao ebb65b27db bugfix(spi_flash): Fix build error when octal flash is enabled,
Closes https://github.com/espressif/esp-idf/issues/12850
2023-12-25 14:54:04 +08:00
linruihao 06f28ca17b fix(bt/controller): Fixed establish two sco connections failed 2023-12-25 10:50:30 +08:00
Michael (XIAO Xufeng) f810eb7a39 ci: Fix environment variable IDF_CI_BUILD is not set 2023-12-23 18:47:36 +08:00
Jiang Jiang Jian 70d6d09d60 Merge branch 'bugfix/fix_ble_phy_tx_ifs_v4.4' into 'release/v4.4'
Bugfix/fix ble phy tx ifs v4.4(backport v4.4)

See merge request espressif/esp-idf!28064
2023-12-23 00:49:22 +08:00
Jiang Jiang Jian 40f42289a0 Merge branch 'fix/btc_config_lock_error_v4.4' into 'release/v4.4'
fix(bt/bluedroid): fixed btc_config_lock error (backport v4.4)

See merge request espressif/esp-idf!28072
2023-12-22 15:16:19 +08:00
wanlei a0e8f75336 fix(spi): correct some signals and dummy bits docs 2023-12-22 15:08:45 +08:00
TD-er 41b8238cf3 fix(spi): Correct REG_SPI_BASE(i) macro for all targets
The existing formula can never match these registers.

Closes https://github.com/espressif/esp-idf/pull/12559
Closes https://github.com/espressif/esp-idf/pull/12562
2023-12-22 15:08:45 +08:00
zhanghaipeng 54ba0f88e9 fix(phy): Fix ble tx ifs time for ESP32 2023-12-22 14:35:17 +08:00
liuning 0662ac672e fix(coex): fix esp32 ble scan interrupted by Wi-Fi, reset Wi-Fi connectionless pm status 2023-12-22 13:29:58 +08:00
gongyantao 265b54a015 fix(bt/bluedroid): fixed btc_config_lock error 2023-12-22 11:31:18 +08:00
Jiang Jiang Jian 73da4fe25d Merge branch 'bugfix/dpp_deinit_memleak_v44' into 'release/v4.4'
Ensure beacon timeout gets trigerred for AP config change(v4.4)

See merge request espressif/esp-idf!27848
2023-12-21 13:49:25 +08:00
Jiang Jiang Jian 69bb72a5c1 Merge branch 'bugfix/fix_ble_recorrect_enable_bug_v4.4' into 'release/v4.4'
fix(ble/controller): Fixed BLE recorrect enable bug and fixed BLE bb isr enable by default (backport v4.4)

See merge request espressif/esp-idf!28043
2023-12-21 13:48:46 +08:00
morris 3fb1a627ac Merge branch 'fix/twai_tag_not_defined_in_configure_gpio_v4.4' into 'release/v4.4'
fix(twai): fix build error TWAI_TAG used but not defined (v4.4)

See merge request espressif/esp-idf!27833
2023-12-21 11:47:47 +08:00
Jiang Jiang Jian 05ab87ca27 Merge branch 'fix/freertos_scheduler_suspension_test_v4.4' into 'release/v4.4'
fix(freertos): Fixed a failing scheduler suspension unit test (v4.4)

See merge request espressif/esp-idf!28042
2023-12-21 10:58:56 +08:00
morris 53a1bb853c Merge branch 'bugfix/bod_intr_v4.4' into 'release/v4.4'
brownout: Disable the hardware BOD when BOD interrupt is enabled(backport v4.4)

See merge request espressif/esp-idf!27437
2023-12-21 10:35:09 +08:00
morris 8430331e6b Merge branch 'bugfix/fix_adc_continuous_do_not_rst_apb_clk_v4.4' into 'release/v4.4'
fix(adc): fix adc continuous get less results beacuse do not reset apb clk (v4.4)

See merge request espressif/esp-idf!27612
2023-12-21 10:32:48 +08:00
zhiweijian 493a161875 fix(ble/controller): Fixed BLE recorrect enable bug and fixed BLE bb isr enable by default 2023-12-20 21:51:52 +08:00
Island 11f9081a0e Merge branch 'backport/fix_ble_prepare_write_v4.4' into 'release/v4.4'
Backport/fix ble prepare write v4.4

See merge request espressif/esp-idf!27907
2023-12-20 21:46:07 +08:00
Sudeep Mohanty 0dc2f2410d fix(freertos): Fixed a failing scheduler suspension unit test
This test fixes the flaky unit test which suspends the scheduler and prompts
a pending context switch.
2023-12-20 14:44:42 +01:00
Roland Dobai cdc3baac87 Merge branch 'fix/sbom_validation_post_commit_v4.4' into 'release/v4.4'
fix: do sbom manifest validation in post-commit (v4.4)

See merge request espressif/esp-idf!28013
2023-12-20 00:11:30 +08:00
Frantisek Hrbata 1ba5757fed fix: do sbom manifest validation in post-commit
Following commit c3afbebf23 ("fix: bump esp-idf-sbom to v0.13.0 in pre-commit"),
the validation of submodule hash now relies solely on the information recorded
in the git-tree. Previously, the hash verification used submodule's
working tree hash if available. Since the new submodule hash is recorded
in git-tree only after the commit is created, we need to move the check
into post-commit, otherwise the hash validation checks the old value.

For example:

1. in .gitmodules

	[submodule "components/json/cJSON"]
	   sbom-hash = cb8693b058ba302f4829ec6d03f609ac6f848546

2. update the cJSON

	$ git -C components/json/cJSON checkout b45f48e600671feade0b6bd65d1c69de7899f2be

3. update cJSON hash in .gitmodules

	[submodule "components/json/cJSON"]
	   sbom-hash = b45f48e600671feade0b6bd65d1c69de7899f2be

4. commit the changes

	$ git commit -a -s

Step 4. will fail, because the validation is currently started in pre-commit stage,
where the hash for cJSON recorded in git-tree is still
cb8693b058ba302f4829ec6d03f609ac6f848546. The new hash b45f48e600671feade0b6bd65d1c69de7899f2be
will be stored in git-tree after the new commit is created.

Note that this means we cannot prevent the commit creation, but only
notify user about the hash inconsistency. If he/she still decides to
push it, it will fail in pre-commit checks in CI.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-19 12:34:36 +01:00
zhanghaipeng 36169e6beb fix(bt/bluedroid): Fix prepare write for BLE example 2023-12-19 17:00:37 +08:00
Island ad44330e8e Merge branch 'bugfix/ble_stack_disable_v4.4' into 'release/v4.4'
Bugfix/ble stack disable v4.4(backport v4.4)

See merge request espressif/esp-idf!27648
2023-12-19 12:02:50 +08:00
zhanghaipeng 3263b4e75f fix(bt/bluedroid): Fix ble adv and scan status when deinit bluedroid 2023-12-18 18:55:26 +08:00
zhanghaipeng 7364d276f7 fix(bt/bluedroid): Fix ble gattc deregister 2023-12-18 18:55:26 +08:00
wanlei 7f9636f6ea fix(twai): fix build error TWAI_TAG used but not defined
bug introduced from efef8401
closes https://github.com/espressif/esp-idf/issues/12760
2023-12-18 16:18:22 +08:00
Jiang Jiang Jian 979a56386d Merge branch 'optimize/When_psram_is_enable_the_number_of_ooseq_is_not_limited_4.4' into 'release/v4.4'
optimize(lwip):when psram is enable the number of ooseq is not limited 4.4

See merge request espressif/esp-idf!27946
2023-12-18 13:46:12 +08:00
zhanghaipeng 4c4e95cae9 fix(bt/bluedroid): Fix BLE prepare write 2023-12-18 11:29:35 +08:00
Jiang Jiang Jian ef543e8e56 Merge branch 'bugfix/miss_rm_s3_ld_v4.4' into 'release/v4.4'
fix(WiFi): update esp32s3 rom ld(v4.4)

See merge request espressif/esp-idf!27958
2023-12-18 11:15:42 +08:00
morris a362b87809 Merge branch 'fix/spi_lcd_example_fix_border_pixel_display_v4.4' into 'release/v4.4'
fix(spi_master): fixed lcd example block border pixel issue (v4.4)

See merge request espressif/esp-idf!27922
2023-12-18 11:10:47 +08:00
Mahavir Jain f19f6e0561 Merge branch 'feature/update_nghttp2_lib_v4.4' into 'release/v4.4'
feat(nghttp2): Update nghttp2 lib to v1.58.0

See merge request espressif/esp-idf!27707
2023-12-17 16:39:02 +08:00
alanmaxwell 6007eb82fa fix(WiFi): update esp32s3 rom ld 2023-12-16 13:33:26 +08:00
jgujarathi d82f42a464 fix(wpa_supplicant): Move concurrent wps and dpp check to before creating task
- Move the check for checking concurrent wps and dpp check to before creating
  task rather than after.
2023-12-15 18:46:17 +05:30
jgujarathi b167df155f fix(wpa_supplicant): Fix a crash in esp_wifi_wps_disable
- Fixes a crash observed in esp_wifi_wps_disable when wps process
  is ongoing, caused due to concurrency issues in cancelling timers.
2023-12-15 18:46:17 +05:30
jgujarathi 8103512379 fix(wpa_supplicant): Restructuring DPP init method to ensure cleanup
- Restructuring DPP init function to ensure cleanup of variables in case of
  init failure
2023-12-15 18:46:15 +05:30
jgujarathi 45caba87f1 fix(wpa_supplicant): Fix location of clearing up dpp global variables
- Fix location of cleaing up dpp global variables to ensure that there are
  no concurrency issues.
2023-12-15 18:28:48 +05:30
jgujarathi 8f928f77e8 fix(wpa_supplicant): Fix a memory leak in dpp deinit path
- Ensures that the auth information of dpp gets freed when there is
  dpp gets deinited.
2023-12-15 18:28:48 +05:30
aditi_lonkar aad82378bb fix(esp_wifi):Fix WDT when esp_supp_dpp_start_listen called multiple times 2023-12-15 18:28:45 +05:30
Aditya Patwardhan b92c24a9ba Merge branch 'fix/aes_mpi_interrupt_allocation_workflow_v4.4' into 'release/v4.4'
fix(mbedtls): move interrupt allocation during initialization phase (v4.4)

See merge request espressif/esp-idf!27443
2023-12-15 17:12:42 +08:00
Xue yun fei c392dad1dc optimize(lwip):when psram is enable the number of ooseq is not limited 2023-12-15 15:54:31 +08:00
Jiang Jiang Jian 3192aca478 Merge branch 'bugfix/mem_leak_fastpbkdf2_test' into 'release/v4.4'
fix(wpa_supplicant): Resolve memory leak for test case of fast pbkdf2

See merge request espressif/esp-idf!27889
2023-12-15 11:18:29 +08:00
Jiang Jiang Jian 0bb983f9d5 Merge branch 'bugfix/fix_issuse_in_scan_and_mesh_v4.4' into 'release/v4.4'
fix(wifi): fix issues in scan and wifi mesh (v4.4)

See merge request espressif/esp-idf!27861
2023-12-15 10:38:46 +08:00
Roland Dobai dbb71c010f Merge branch 'fix/py12_req' into 'release/v4.4'
Fix(tools): Use a construct dependency compatible with Python 3.12

See merge request espressif/esp-idf!27925
2023-12-14 22:05:04 +08:00
Roland Dobai 91ca4a74aa Fix(tools): Use a construct dependency compatible with Python 3.12 2023-12-14 12:25:54 +01:00
wanlei aa264cab8f fix(spi_master): fixed lcd example block border pixel issue 2023-12-14 17:18:10 +08:00
Rahul Tank 3f117c79d9 Merge branch 'bugfix/authcomplete_failure_v4.4' into 'release/v4.4'
fix(nimble): Fixed authcomplete failure caused by a mismatch in the c1 value (v4.4)

See merge request espressif/esp-idf!27637
2023-12-14 13:15:17 +08:00
Shreyas Sheth aa8822bbf1 fix(wpa_supplicant): Resolve memory leak for unit test of fast pbkdf2 2023-12-13 16:12:00 +05:30
Roland Dobai 95873f4c33 Merge branch 'fix/bump_precommit_esp_idf_sbom_v4.4' into 'release/v4.4'
fix: bump esp-idf-sbom to v0.13.0 in pre-commit (v4.4)

See merge request espressif/esp-idf!27880
2023-12-13 17:03:24 +08:00
Jiang Jiang Jian e47fe5df8e Merge branch 'fix/build_error_in_compiler_performance_mode_v4.4' into 'release/v4.4'
fix(bt/bluedroid): fixed build error when compiler in performace mode (backport v4.4)

See merge request espressif/esp-idf!27866
2023-12-13 15:01:46 +08:00
Frantisek Hrbata ab3ed9ee44 fix: bump esp-idf-sbom to v0.13.0 in pre-commit
v0.13.0 contains fix for the submodule hash validation. Let's
bump its version in pre-commit, so the fix is used.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-13 07:31:37 +01:00
gongyantao ba81334bf5 fix(bt/bluedroid): fixed build error when compiler in performace mode
Closes https://github.com/espressif/esp-idf/issues/12751
2023-12-12 19:04:49 +08:00
zhangyanjiao 1a0f4524da fix(wifi): fix issues in scan and wifi mesh
1. fix(wifi): fix the crash issue when clear scan ap list
3. fix wifi mode error when mesh start after station has connected to router
2023-12-12 17:21:04 +08:00
Ivan Grokhotkov a2b4ddc113 Merge branch 'revert-3f015297' into 'release/v4.4'
Revert "Merge branch 'bugfix/nvs_read_out_of_bounds' into 'release/v4.4'"

See merge request espressif/esp-idf!27856
2023-12-12 15:26:25 +08:00
Jiang Jiang Jian c452233a6e Merge branch 'fix/lwip_dns_fallback_ipv4only' into 'release/v4.4'
lwip: Fix DNS int with FALLBACK_DNS() in IPv4 only (v4.4)

See merge request espressif/esp-idf!27544
2023-12-12 14:38:48 +08:00
Martin Vychodil 0ae5b6c0b2 Revert "Merge branch 'bugfix/nvs_read_out_of_bounds' into 'release/v4.4'"
This reverts merge request !27852
2023-12-12 13:30:50 +08:00
Martin Vychodil 3f0152978d Merge branch 'bugfix/nvs_read_out_of_bounds' into 'release/v4.4'
fix(nvs): prevent out-of-bounds write on inconsistent blob length

See merge request espressif/esp-idf!27852
2023-12-12 12:56:30 +08:00
Jiang Jiang Jian 7a0a868603 Merge branch 'contrib/github_pr_12460_v4.4' into 'release/v4.4'
fixing OTA write up to SPI_FLASH_SEC_SIZE margins (GitHub PR) (v4.4)

See merge request espressif/esp-idf!27646
2023-12-12 10:05:22 +08:00
Jiang Jiang Jian 8812baf39f Merge branch 'fix/esp32s3_soc_drom_high_addr_v4.4' into 'release/v4.4'
fix(soc): esp32s3/Fix the DROM_HIGH_ADDR (v4.4)

See merge request espressif/esp-idf!27824
2023-12-12 10:04:57 +08:00
Ivan Grokhotkov a24f51431d fix(nvs): prevent out of bounds write if blob data is inconsistent 2023-12-11 23:04:35 +08:00
Ivan Grokhotkov e6db7ddf2a Merge branch 'feature/add_fatfs_sbom_v4.4' into 'release/v4.4'
feat(storage/fatfs): add sbom file manifest for FatFs (v4.4)

See merge request espressif/esp-idf!27482
2023-12-11 18:14:25 +08:00
Tomas Rohlinek cff118820f feat(storage/fatfs): add sbom file manifest for FatFs (v4.4) 2023-12-11 18:14:25 +08:00
Mahavir Jain 09089c3fdf Merge branch 'fix/esp_ptr_check_sign_compare_v4.4' into 'release/v4.4'
fix(esp_hw_support): Fix different signed comparison in `esp_ptr_in_drom`

See merge request espressif/esp-idf!27817
2023-12-11 16:07:46 +08:00
Aditya Patwardhan 2e973e28dc fix(soc): esp32s3/Fix the DROM_DROM_HIGH limit
Previously the DROM_HIGH_ADDR for esp32s3 was 0x3D000000, which
    convers only 16 MB of address range. But esp32s3 supports 32 MB
    external memory. So this address should be 0x3E000000
2023-12-11 13:22:55 +05:30
Jiang Jiang Jian 69f63b2a16 Merge branch 'bugfix/install_key_issue_v4.4' into 'release/v4.4'
fix(wifi): Fix key install issue in PTK renew(v4.4)

See merge request espressif/esp-idf!27318
2023-12-11 15:24:41 +08:00
Jiang Jiang Jian 597a4d4926 Merge branch 'bugfix/fix_some_ble_bugs_v4.4' into 'release/v4.4'
Fixed some BLE bugs (backport v4.4)

See merge request espressif/esp-idf!27698
2023-12-11 15:07:54 +08:00
Laukik Hase 77a7eb217a fix(esp_hw_support): Fix different signed comparison in esp_ptr_in_drom
- Closes https://github.com/espressif/esp-idf/pull/12720
2023-12-11 10:21:27 +05:30
xueyunfei 083eb06028 Fix(lwip):bugfix for add config for tcp ooseq bufs 2023-12-08 19:13:11 +01:00
Jiang Jiang Jian 2026c783ed Merge branch 'feat/max_ver_c3_199_v4.4' into 'release/v4.4'
feat(soc): Increase max supported version of C3 to 1.99 (v4.4)

See merge request espressif/esp-idf!26825
2023-12-08 20:56:05 +08:00
chenjianhua 2f850519ef fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(65db61f)
- Fixed remove and clear white list
2023-12-08 19:42:16 +08:00
chenjianhua 4e518185c5 fix(bt): Update bt lib for ESP32(fa43201)
- Fixed assert for instant passed workaround
- Fixed scan evt timeout
- Fixed random address setting when scanning
2023-12-08 19:41:15 +08:00
shangke 8eec988290 fix(bt/controller): Fixed some HCI commands parameter 2023-12-08 19:41:15 +08:00
chenjianhua 72315ed011 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(b8f0db9)
- Fixed assert when llcp instant passed
2023-12-08 19:41:15 +08:00
chenjianhua c908325d3d 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-08 19:41:15 +08:00
chenjianhua 148ee05b87 fix(bt/bluedroid): Fixed add RPA to white list 2023-12-08 19:41:15 +08:00
Kapil Gupta ad3891b94b fix(wifi): Fix key install issue in PTK renew 2023-12-08 15:23:36 +05:30
Roland Dobai 2c9fa2702e Merge branch 'feat/manifest_check_v4.4' into 'release/v4.4'
feat: use esp-idf-sbom pre-commit plugin (v4.4)

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-07 14:53:18 +01:00
Darshan Dobariya 78f44f115d fix(nimble): Fixed authcomplete failure caused by a mismatch in the c1 value (v4.4) 2023-12-07 14:06:12 +05:30
Jiang Jiang Jian ce2102eed4 Merge branch 'bugfix/timer_index_out_of_bound_v4.4' into 'release/v4.4'
Fix timer index out of bound issue (Backport v4.4)

See merge request espressif/esp-idf!27607
2023-12-07 11:55:21 +08:00
Michael (XIAO Xufeng) bbd1bb2025 feat(soc): Increase max supported version of C3 to 1.99 2023-12-06 17:05:24 +08:00
Harshit Malpani e6330d9cdc feat(nghttp2): Update nghttp2 lib to v1.58.0 2023-12-06 11:52:01 +05:30
Island b57653b21c Merge branch 'bugfix/BLEQABR23-35_v4.4' into 'release/v4.4'
fix(ble_mesh): avoid ble_mesh packet collision by using random adv interval(v4.4)

See merge request espressif/esp-idf!27491
2023-12-06 11:06:57 +08:00
Jiang Jiang Jian 68915490b0 Merge branch 'fix/xtensa-register-corrupted-after-context-switch_v4.4' into 'release/v4.4'
fix(xtensa): fix registers curruption on context switch (v4.4)

See merge request espressif/esp-idf!26212
2023-12-06 10:47:55 +08:00
Jiang Jiang Jian 8e41f7b9d8 Merge branch 'feature/pbkdf2_fast_implementation_v4.4' into 'release/v4.4'
Feature/pbkdf2 fast implementation v4.4

See merge request espressif/esp-idf!25515
2023-12-06 10:45:57 +08:00
Shreyas Sheth f157786e2d fix(ci): Increment number of runner for test UT_T1_1 for esp32s2 2023-12-06 00:09:11 +05:30
Shreyas Sheth d6f65b1472 fix(wpa_supplicant): Remove deprecated mbedtls functions used in fast pbkdf2 and fix ci error 2023-12-05 23:59:58 +05:30
Shyamal Khachane a1e8a7be4e fix(esp_wifi): Fix timer index out of bound issue causing execution of timer function to fail 2023-12-05 17:33:25 +05:30
Kapil Gupta a1b3ef5cef fix(wpa_supplicant): implement sha1_finish for fastpbkdf2 2023-12-05 16:54:31 +05:30
Shreyas Sheth e9f29de687 ci(wifi): Add test case for fast pbkdf2 verification 2023-12-05 16:54:31 +05:30
Kapil Gupta 3e4f49606b 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-12-05 16:54:31 +05:30
Kapil Gupta e8fcdc3ebf change(esp_wifi): Copy fastpbkdf2 implementation
Copy pbkdf2 implementation from https://github.com/ctz/fastpbkdf2(3c56895)
2023-12-05 16:54:31 +05:30
harshal.patil 9e61344890 ci(mbedtls): added a test for the mbedtls_internal_shaX_process API 2023-12-05 16:54:31 +05:30
harshal.patil edef8d5fae 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-12-05 16:54:31 +05:30
Jiang Jiang Jian 7147f84f64 Merge branch 'feat/support_esp32c3_v1.1_wifi_v4.4' into 'release/v4.4'
fix(wifi): backport some wifi bugfix(v4.4)

See merge request espressif/esp-idf!27584
2023-12-05 19:10:12 +08:00
Jiang Jiang Jian 26fb320beb Merge branch 'bugfix/alarm_args_double_free_v4.4' into 'release/v4.4'
Bugfix/alarm args double free v4.4

See merge request espressif/esp-idf!27540
2023-12-05 13:45:33 +08:00
Jiang Jiang Jian 2fa6dabbb1 Merge branch 'bugfix/remove_bond_v4.4' into 'release/v4.4'
fix(nimble): Handled IRK/LTK deletion based on key availability(v4.4)

See merge request espressif/esp-idf!26605
2023-12-05 11:57:55 +08:00
alanmaxwell ca25bf834f feat(wifi): support esp32c3 v1.1 wifi 2023-12-05 11:42:16 +08:00
Jiang Jiang Jian 4c0245d9e7 Merge branch 'bufix/Backport_some_lwip_bugs_for_4.4_1204' into 'release/v4.4'
Bufix/backport some lwip bugs for 4.4 1204

See merge request espressif/esp-idf!27610
2023-12-05 11:13:06 +08:00
Jiang Jiang Jian f886d0f1ba Merge branch 'bugfix/fix_wifi_init_reentrant_issue_v4.4' into 'release/v4.4'
Bugfix/fix wifi init reentrant issue v4.4

See merge request espressif/esp-idf!27628
2023-12-05 11:10:37 +08:00
Jiang Jiang Jian 50511114e1 Merge branch 'bugfix/pbc_overlap_in_wps_pin_method_v4.4' into 'release/v4.4'
wpa_supplicant: Fix for issue of wps-pbc overlap in wps-pin method(4.4)

See merge request espressif/esp-idf!25737
2023-12-05 10:39:27 +08:00
Jiang Jiang Jian e62727886e Merge branch 'bugfix/backport_wifi_fix_1130_v4.4' into 'release/v4.4'
fix(wifi): backport some wifi bugfix(v4.4)

See merge request espressif/esp-idf!27507
2023-12-05 02:03:32 +08:00
kohait00 153f4b8f4f fix(app_update): avoid erasing an extra sector than the actual required size
OTA update used to fail if `firmware_size == partition_size`, because the code was trying to
erase one additional sector beyond the space reserved for the firmware partition.

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

Closes https://github.com/espressif/esp-idf/pull/12460
2023-12-04 18:48:55 +05:30
aditi_lonkar 58f51147cf wpa_supplicant: Fix for issue of wps-pbc overlap in wps-pin method 2023-12-04 15:23:53 +05:30
Island 2be3fa2e27 Merge branch 'backport/fix_ble_menuconfig_v4.4' into 'release/v4.4'
Backport/fix ble menuconfig v4.4(backport v4.4)

See merge request espressif/esp-idf!27495
2023-12-04 16:30:21 +08:00
liuning 9be22d2d18 fix(wifi): fix wifi deinit s_wifi_modem_sleep_lock 2023-12-04 16:10:47 +08:00
liuning 260920a18a fix(wifi): fix wifi init reentrant issue 2023-12-04 16:10:47 +08:00
gaoxu f2f2de1a66 fix(adc): fix adc continuous get less results beacuse do not reset apb clk(v4.4) 2023-12-04 15:02:18 +08:00
xueyunfei 1ac20fb4ac Fix(dhcps):fix dhcp subnet option api dos not work issue 2023-12-04 14:54:18 +08:00
xueyunfei 0a1282bd24 fix(dhcp server):fix set dhcp server poll fail issue 2023-12-04 14:22:35 +08:00
Jiang Jiang Jian 43dbb702c4 Merge branch 'fix/esp_netif_lock_v4.4' into 'release/v4.4'
fix(esp_netif): Lock netif list with TCPIP context (v4.4)

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

See merge request espressif/esp-idf!27517
2023-12-04 11:59:49 +08:00
Jiang Jiang Jian e08f93de6d Merge branch 'fix/twai_crash_on_s3_gpio_19and20_v4.4' into 'release/v4.4'
fix(twai): example crash using usb-serial-jtag pins (v4.4)

See merge request espressif/esp-idf!26665
2023-12-04 11:39:18 +08:00
Abhinav Kudnar 254cf65464 fix(nimble): Handled IRK/LTK deletion based on key availability 2023-12-02 03:18:01 +05:30
harshal.patil 00919c3967 fix(mbedtls/aes): fix AES interrupt allocation for AES-GCM operations 2023-12-01 18:25:11 +05:30
harshal.patil bffe5d2864 fix(mbedtls): move interrupt allocation during initialization phase 2023-12-01 18:25:10 +05:30
zhanghaipeng 09076b53eb fix(bt/bluedroid): Fix BLE SMP register log level 2023-12-01 16:58:00 +08:00
zhanghaipeng 4f57ec7c26 fix(bt/bluedroid): Fix bluedroid menuconfig 2023-12-01 16:57:44 +08:00
Island 23e7fa801b Merge branch 'fix/ble_mesh_example_relay_enable_v4.4' into 'release/v4.4'
fix(ble_mesh): Enable relay by default for the specific dev role (v4.4)

See merge request espressif/esp-idf!27510
2023-12-01 15:17:39 +08:00
alanmaxwell 629c3b4d9c fix(wifi): backport some wifi bugfix
1. fix ccmp pn became large issue
2. sta not pmf capable when requires should reject profile
3. fix softap set config issue
4. fix enable psram wapi dhcp fail issue
5. Fix multi antenna issue
6. Fix typo in wifi api docs
7. Optimize BB filter timer to pass some corner case
8. Change fragment threshold to 256
9. Support fragment for LR mode
10. Fix rx fragment fail in Open mode.
11. Drop fragmented AMPDUs
12. Fix ampdu duration issue
2023-12-01 14:02:07 +08:00
xueyunfei e31f8581a2 feat(esp_wifi):static buf for management,control,qos null,null data rx packet 2023-12-01 14:02:07 +08:00
muhaidong 24e208eca1 fix(wifi): allow some special igtk keyindx to workaround faulty APs 2023-12-01 14:02:07 +08:00
muhaidong 8b473bee24 fix(wifi): update scan example for scan get ap records 2023-12-01 14:02:07 +08:00
Chen Jian Xing ca78fb58bc Merge branch 'bugfix/authmode_log_192_bit_v4.4' into 'release/v4.4'
WPA3 enterprise 192 bit fix and config modification  (Backport v4.4)

See merge request espressif/esp-idf!27325
2023-12-01 13:57:58 +08:00
David Čermák 403d656698 Merge branch 'bugfix/emac_ex_buffer_v4.4' into 'release/v4.4'
esp_eth: receive buffer allocation optimization - v4.4

See merge request espressif/esp-idf!27274
2023-11-30 23:18:39 +08:00
David Cermak ffddf278f5 lwip: Fix DNS int with FALLBACK_DNS() in IPv4 only
* Update submodule: git log --oneline 90c1e93e40bdfe6718b97e2d95aabc2f0f609ce8..1de11efadd0083469f26c8782be3d55073829767

Detailed description of the changes:
  - dns: fix init with only ipv4 enabled (espressif/esp-lwip@1de11efa)
  - optimize add TCP ooseq buf timeout configuration (espressif/esp-lwip@d3c89e93)
  - bugfix for optimize tcp connection (espressif/esp-lwip@d5093349)
2023-11-30 14:28:10 +01:00
Jin Cheng bb22c4323d fix(bt/bluedroid): Set the alarm_arg to NULL after releasing to avoid double free in BTC layer 2023-11-30 20:06:21 +08:00
wuzhenghui ef202b3ecd fix(riscv): supports 1 byte and larger than 64byte range watchpoint setting 2023-11-30 15:47:22 +08:00
Rahul Tank 79954fe559 Merge branch 'bugfix/ble_gap_unpair_oldest_peer_v4.4' into 'release/v4.4'
fix(nimble): Fixed incorrect handling of bonded devices (v4.4)

See merge request espressif/esp-idf!26945
2023-11-30 12:56:03 +08:00
Liu Linyan dfc4b7b6b7 fix(ble_mesh): Enable relay by default for the specific dev role 2023-11-30 12:26:57 +08:00
zhanghaipeng 72e87fc035 docs(bt/bluedroid): Update ble example document 2023-11-30 10:34:42 +08:00
luoxu af166180f2 bugfix(ble_mesh): Supplementary configuration options that should be enabled. 2023-11-29 19:44:55 +08:00
Liu Linyan 560e1f899d fix(ble_mesh): Support using random adv interval for mesh packets 2023-11-29 19:44:55 +08:00
Shyamal Khachane 7eef2771fe fix(esp_wifi): Fixed authmode in log and connected event for WPA3 enterprise 192 bit security 2023-11-29 09:04:57 +00:00
Michael (XIAO Xufeng) a61fd4bf70 Merge branch 'bugfix/spi_master_fifo_use_dma_v4.4' into 'release/v4.4'
fix(spi): fixed undesired touching to DMA (v4.4)

See merge request espressif/esp-idf!26772
2023-11-29 11:12:53 +08:00
Cao Sen Miao 1fb6de14e6 brownout: Disable the hardware BOD when BOD interrupt is enabled 2023-11-28 17:01:19 +08:00
darshan b34d4825d3 fix(nimble): Fixed incorrect handling of bonded devices (v4.4) 2023-11-28 10:29:38 +05:30
David Cermak 3329d64278 fix(esp_netif): Fix races in netif object locking 2023-11-27 08:21:35 +01:00
Jiang Jiang Jian 7e5f4df8e2 Merge branch 'feature/support_ble_esp32c3_eco7_v4.4' into 'release/v4.4'
Feature/support ble esp32c3 eco7 (backport v4.4)

See merge request espressif/esp-idf!27340
2023-11-24 11:44:01 +08:00
Jiang Jiang Jian d3cf0d04ae Merge branch 'bugfix/add_par_check_in_ag_cind_res_v4.4' into 'release/v4.4'
Bugfix/add par check in ag cind res v4.4

See merge request espressif/esp-idf!27259
2023-11-24 10:20:12 +08:00
Jiang Jiang Jian c0d6131e83 Merge branch 'bugfix/spp_deinit_crash_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fix the crash of invalid access to released resources (v4.4)

See merge request espressif/esp-idf!27253
2023-11-24 10:19:56 +08:00
Ondrej Kosta 891edc0f0d bugfix(esp_eth): improved error handling of _recv_buf
fixed W5500 flush_recv_frame function
2023-11-23 17:22:42 +01:00
Mahavir Jain e1e191638a Merge branch 'bugfix/return_code_of_ota_finish_api_v4.4' into 'release/v4.4'
fix(esp_https_ota): fix return code of esp_https_ota_finish API (v4.4)

See merge request espressif/esp-idf!27337
2023-11-23 16:31:42 +08:00
zhiweijian d11c83c9a0 feat: support ble esp32c3 eco7 2023-11-23 14:07:55 +08:00
Jiang Guang Ming 8eb33e1b36 feat(esp32c3): Update esp32c3 chip revision 2023-11-23 14:07:55 +08:00
Jiang Guang Ming 0e8f4c9b3d feat(esp32c3): Add rom ld with ROM tag esp32c3-eco7-20230720 2023-11-23 14:07:51 +08:00
Harshit Malpani fa017871f2 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:15:19 +05:30
Jiang Jiang Jian fe4eb82500 Merge branch 'bugfix/connect_issue_for_zero_rssi_v4.4' into 'release/v4.4'
fix(esp_wifi): Fix issue of station disconnecting immediately after scanning (Backport v4.4)

See merge request espressif/esp-idf!26746
2023-11-22 16:34:13 +08:00
Kapil Gupta 93b64fd6d6 Merge branch 'bugfix/dpp_config_memset_v4.4' into 'release/v4.4'
Wi-Fi: Fixed some DPP issues (v4.4)

See merge request espressif/esp-idf!27194
2023-11-22 11:33:11 +08:00
Kapil Gupta 9a1e54d485 fix(wpa_supplicant): memzero wifi config before sending config event 2023-11-21 11:36:59 +05:30
Kapil Gupta d5e628229f fix(wifi): Disallow DPP and WPS concurrency 2023-11-21 11:36:38 +05:30
Sarvesh Bodakhe de59abad0a fix(esp_wifi): Fix issue of station disconnecting immediately when AP RSSI is zero 2023-11-21 10:29:43 +05:30
Alexey Lapshin 2923fd5265 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-21 03:19:31 +00:00
Jiang Jiang Jian 5c2142eedb Merge branch 'bugfix/fix_psram_access_faild_after_pd_cpu_wakeup_v4.4' into 'release/v4.4'
fix(esp_pm): fix psram access failed after pd_cpu wakeup if uart driver driven console is used (backport v4.4)

See merge request espressif/esp-idf!27056
2023-11-21 10:57:03 +08:00
Jiang Jiang Jian d6b9fab066 Merge branch 'bugfix/s3_irom_addr_v4.4' into 'release/v4.4'
soc: fix SOC_IROM_MASK_HIGH for esp32s3 (v4.4)

See merge request espressif/esp-idf!27138
2023-11-21 10:54:24 +08:00
Jiang Jiang Jian bf5b36954a Merge branch 'bugfix/clear_ulp_wake_intr_in_wake_source_enable_v4.4' into 'release/v4.4'
fix(esp_hw_support): clear all type ULP wakeup intr status at ulp wakeup source enable (backport v4.4)

See merge request espressif/esp-idf!27190
2023-11-21 10:52:23 +08:00
Jiang Jiang Jian 0d08c81ae0 Merge branch 'bugfix/fix_lightsleep_current_leakage_on_usj_pad_v4.4' into 'release/v4.4'
fix(esp_hw_support): fix lightsleep current leakage on usb pad (backport v4.4)

See merge request espressif/esp-idf!27209
2023-11-21 10:51:40 +08:00
Jiang Jiang Jian 0f679c740f Merge branch 'bugfix/add_ht2040_ex_caps_v44' into 'release/v4.4'
Add HT20_40 capability in assoc requests(v4.4)

See merge request espressif/esp-idf!27247
2023-11-21 10:46:26 +08:00
Ondrej 409c7e5610 Improved emac rx task code to suppress Coverity false positive memory leak indication 2023-11-20 12:50:49 +01:00
Ondrej 9374a2d9ac esp_eth: receive buffer allocation optimization
Receive buffers are allocated with a size equal to actual received frame size
2023-11-20 12:32:03 +01:00
Jiang Jiang Jian b3370564f8 Merge branch 'feat/dynamic_integration_pipeline_v4.4' into 'release/v4.4'
CI: dynamic integration pipeline v4.4

See merge request espressif/esp-idf!27013
2023-11-20 16:29:50 +08:00
morris 42904820c9 Merge branch 'bugfix/ledc_max_duty_cycle_v4.4' into 'release/v4.4'
fix(ledc): fix ledc driver 100% duty cycle configuration (backport v4.4)

See merge request espressif/esp-idf!27235
2023-11-20 15:27:45 +08:00
jgujarathi cf828f1c8d fix(esp_wifi): Ensure beacon timeout gets trigerred for AP config change
- Ensure that beacon timeout gets trigerred for AP config changes when we are in
  powersave.
2023-11-20 11:10:02 +05:30
jgujarathi 86fe60ad5a fix(wpa_supplicant): Add HT20_40 capability in assoc requests
- Add the HT2040 capability indication in the extended caps IE of
  assoc requests.
2023-11-20 11:10:00 +05:30
Jin Cheng 5fc7faf47e fix(bt/bluedroid): corrected the API documents of profile HFP and A2DP 2023-11-20 12:06:13 +08:00
Jin Cheng 2a90241d7d fix(bt/bluedroid): Added some argument check in APIs of HFP AG 2023-11-20 12:03:30 +08:00
wuzhenghui 236883728d fix(esp_hw_support): fix lightsleep current leakage on usb-phy controlled pad 2023-11-20 11:25:28 +08:00
Island 27cf25e42c Merge branch 'bugfix/fix_some_ble_bugs_v4.4' into 'release/v4.4'
Fixed some BLE bugs (backport v4.4)

See merge request espressif/esp-idf!27197
2023-11-17 20:22:02 +08:00
wuzhenghui 7c68678ddc fix(esp_hw_support): clear all type ULP wakeup intr status at ulp wakeup source enable 2023-11-17 18:18:58 +08:00
Song Ruo Jing fd3576eca6 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-17 15:24:17 +08:00
Jin Cheng 6b44b42904 fix(bt/bluedroid): Fix the crash of invalid access to released resources
It is caused by the delayed timer is alarmed after esp_spp_deinit.
2023-11-17 10:56:06 +08:00
Ivan Grokhotkov bc2ea111fb 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-16 20:11:38 +08:00
chenjianhua 03040db7c1 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(2758518)
- Fixed power state setting when entering modem sleep
2023-11-16 17:02:27 +08:00
chenjianhua 0ae141c197 Update bt lib for ESP32-C3 and ESP32-S3(f817304)
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
2023-11-16 17:02:13 +08:00
zhanghaipeng 7ba6903f4b fix(ble/controller): Fix bugs in setting adv data and scan response data 2023-11-16 17:01:55 +08:00
chenjianhua 9ba36e8c55 update esp32 bt-lib (6458728)
- Modify mesh proxy solic uuid to 0x18590303
- Support get the range of TX power level
- Support clear legacy adv using vendor hci
2023-11-16 17:01:14 +08:00
chenjianhua 716e78f3a6 feat(bt/bluedroid): support clear legacy advertising 2023-11-16 17:01:04 +08:00
aditi_lonkar 44b7e8ed10 fix(wpa_supplicant): Fix few dpp bugs
1) Fix crash in dpp Listen without bootstrap
  2) Fix crash on receiving dpp auth_req from hostapd with dpp akm
  3) Ensures that the mode is set to station before dpp init
  4) Ensures that dpp follows the path of init->bootstrap->listen
2023-11-16 12:42:18 +05:30
Ivan Grokhotkov 6bb6de5b35 fix(soc): update SOC_IROM_MASK_HIGH for esp32 for consistency 2023-11-14 14:30:04 +01:00
Ivan Grokhotkov 47c455c177 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-14 14:30:04 +01:00
Roland Dobai 4ef8121157 Merge branch 'coredump-info-offset_v4.4' into 'release/v4.4'
Tools: coredump-info - fix non-default partition table offset issues (v4.4)

See merge request espressif/esp-idf!26925
2023-11-14 17:21:45 +08:00
Jiang Jiang Jian 25cd984ad9 Merge branch 'bugfix/fix_deinit_init_wifi_scan_fail_issue_v4.4' into 'release/v4.4'
Bugfix/fix deinit init wifi scan fail issue v4.4(Backport v4.4)

See merge request espressif/esp-idf!27049
2023-11-14 15:25:11 +08:00
Jiang Jiang Jian 5576a60b4f Merge branch 'bugfix/build_error_when_enable_ag_and_hf_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fix build error when both of the HFP roles are enabled (v4.4)

See merge request espressif/esp-idf!27079
2023-11-14 15:24:51 +08:00
Jiang Jiang Jian 4bc424258f Merge branch 'bugfix/check_mapping_target_conflict_v4.4' into 'release/v4.4'
fix(ldgen): check target conflict for entries with section aliases (v4.4)

See merge request espressif/esp-idf!26125
2023-11-14 14:56:10 +08:00
Chen Yudong 6df29acf39 ci: add label rules for integration test 2023-11-14 14:38:57 +08:00
Chen Yudong 60efb8a3ba ci: add qa-test-tag rules 2023-11-14 14:38:57 +08:00
Chen Yudong 3dc07f49f3 ci: dynamic integration test child pipeline 2023-11-14 14:38:51 +08:00
Roland Dobai 8ddb3d6812 Merge branch 'fix/ci_autocomplete_v4.4' into 'release/v4.4'
Tools, CI: Improve autocomplete tests (v4.4)

See merge request espressif/esp-idf!27039
2023-11-14 02:44:26 +08:00
wuzhenghui 93d44d1e08 fix(esp_pm): fix psram access faild after pd_cpu wakeup 2023-11-13 16:39:31 +08:00
Wang Mengyang 03bdeb46a5 fix(bt/bluedroid): Fix build error for HFP when enabling AG and HF_Client in case that CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is enabled 2023-11-10 20:12:04 +08:00
muhaidong df801011bd change(hal): remove useless code from periph_ll_wifi_bt_module_enable_clk 2023-11-10 14:05:09 +08:00
muhaidong e8c4156fc2 fix(wifi): fix deinit init wifi scan fail issue 2023-11-10 11:53:25 +08:00
Roland Dobai 2e4f63e62f ci(fix): Improve the stability of the autocomplete tests 2023-11-09 14:14:32 +01:00
Peter Dragun 9d4d612b56 fix(tools/coredump-info): pass non-default partition table offset to esp-coredump 2023-11-09 10:35:24 +01:00
Island dea8532e2d Merge branch 'backport/fix_ble_scan_rsp_v4.4' into 'release/v4.4'
Backport/fix ble scan rsp v4.4(backport v4.4)

See merge request espressif/esp-idf!27004
2023-11-09 16:56:55 +08:00
Mahavir Jain 1bca827217 Merge branch 'fix/check_integrity_on_used_blocks_v4.4' into 'release/v4.4'
heap: fix integrity check on used blocks by the tlsf component (backport v4.4)

See merge request espressif/esp-idf!26565
2023-11-09 14:14:10 +08:00
wanlei a4388a3321 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:51:04 +00:00
Wang Meng Yang 6f38dfe22b Merge branch 'test/bqb_test_bt_classic_hfp_v4.4' into 'release/v4.4'
feat(bt/hfp): Add support for HFP BQB auto test(backport v4.4)

See merge request espressif/esp-idf!26989
2023-11-09 10:44:35 +08:00
morris 9b2661c91c Merge branch 'bugfix/fix_wrong_adc_attenuation_name_v4.4' into 'release/v4.4'
fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12 (v4.4)

See merge request espressif/esp-idf!26969
2023-11-09 10:32:16 +08:00
zhanghaipeng 1edb6668ba fix(bt/bluedroid): Fix ble keysize check 2023-11-08 19:48:27 +08:00
zhanghaipeng c90faf5d03 fix(bt/bluedroid): Fix ble adv report evt type 2023-11-08 19:48:18 +08:00
Xiao Xufeng 94a8591586 fix(spi): fixed undesired touching to DMA
Closes https://github.com/espressif/esp-idf/issues/12241
2023-11-08 10:12:03 +00:00
wanglai@espressif.com 1ee2c4db75 fix(bt/bluedroid): Fix the process of sending OK in ATD and COPS cmds 2023-11-08 17:10:26 +08:00
Guillaume Souchere 3b9450b59d 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-08 04:18:21 +00:00
Armando 46e71e43ba 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-08 03:44:43 +00:00
morris 2bab3b36bc Merge branch 'bugfix/fix_mem_map_issue_v4.4' into 'release/v4.4'
fix(mmap): fix esp32s3 mmap test wrong assertion (v4.4)

See merge request espressif/esp-idf!26964
2023-11-08 11:00:05 +08:00
wanglai@espressif.com e5996b3e86 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-11-07 20:07:26 +08:00
wanglai@espressif.com 60c5dbad59 feat(bt/bluedroid): Modify AT+CNUM response api and HFP AG example 2023-11-07 20:03:46 +08:00
Armando 9a428c4019 fix(mmap): fix esp32s3 mmap test wrong assertion 2023-11-07 10:35:29 +08:00
Jiang Jiang Jian 13b649ab95 Merge branch 'bugfix/update_phy_lib_same_to_master_v4.4' into 'release/v4.4'
fix(phy): update phy lib (v4.4)

See merge request espressif/esp-idf!26867
2023-11-07 10:29:48 +08:00
Michael (XIAO Xufeng) 7a83052809 Merge branch 'bugfix/ota_fail_on_octal_flash_v4.4' into 'release/v4.4'
fix(ota): Fixed OTA fail on octal flash with 32MB memory (backport v4.4)

See merge request espressif/esp-idf!26813
2023-11-06 00:29:02 +08:00
Wang Meng Yang 4c0bc4b7f5 Merge branch 'feature/include_hf_and_ag_in_single_build_v4.4' into 'release/v4.4'
Feature/include hf and ag in single build v4.4

See merge request espressif/esp-idf!26843
2023-11-03 14:09:30 +08:00
Wang Meng Yang 6475f7f119 Merge branch 'bugfix/fix_ble_bond_error_after_reboot_4.4' into 'release/v4.4'
fix(ble/bluedroid): fixed BLE bond error after reboot (backport v4.4)

See merge request espressif/esp-idf!26720
2023-11-03 10:27:36 +08:00
Island ae5470910e Merge branch 'backport/fix_ble_bugs_v4.4' into 'release/v4.4'
Backport/fix ble bugs v4.4(backport v4.4)

See merge request espressif/esp-idf!26765
2023-11-03 09:12:54 +08:00
zhangyanjiao 4b2972c7c3 fix(phy): update phy lib to master
esp32: phy_version 4780,16b31a7,Sep 22 2023,20:42:16
esp32s2: phy_version 2401,2a6dc26,Sep 26 2023,11:22:15
esp32c3: phy_version 1130,b4e4b80,Sep  5 2023,11:09:30
esp32s3: phy_version 620,ec7ec30,Sep  5 2023,13:49:13
2023-11-02 15:32:53 +08:00
Jin Cheng a70d469e49 feat(bt/bluedroid): Support to build HID Host and HID Device in single binary 2023-11-01 20:03:39 +08:00
Wang Mengyang 0cdc3284ce feat(bt/bluedroid): Support to build HFP Audio Gateway and Hands Free Unit in single binary 2023-11-01 20:03:23 +08:00
Ivan Grokhotkov 8b63bba2e8 Merge branch 'bugfix/fix_espcoredump_compilation_warning_v4.4' into 'release/v4.4'
fix(espcoredump): fixed compilation warning (v4.4)

See merge request espressif/esp-idf!26593
2023-11-01 18:57:12 +08:00
zhanghaipeng 87466a55bf fix(bt/bluedroid): Fix BLE remove bond list status 2023-11-01 17:22:04 +08:00
zhiweijian 335db4c5aa fix(ble/bluedroid): fixed BLE bond error after reboot 2023-11-01 17:22:04 +08:00
Cao Sen Miao 643b0abca2 fix(ota): Fixed OTA fail on octal flash with 32MB memory,
Closes https://github.com/espressif/esp-idf/issues/11903
2023-11-01 12:28:21 +08:00
Jiang Jiang Jian d665b47ae1 Merge branch 'bugfix/fix_wifi_no_response_after_m_f_null_v4.4' into 'release/v4.4'
fix(wifi): fix wifi station no response after m f null

See merge request espressif/esp-idf!26719
2023-11-01 10:54:02 +08:00
David Čermák d845742038 Merge branch 'feat/lwip_sbom_v4.4' into 'release/v4.4'
feat(lwip): Add sbom descripton file for Software BOM (v4.4)

See merge request espressif/esp-idf!26426
2023-11-01 01:29:03 +08:00
zhanghaipeng 980a15a9cd feat(bt/bluedroid): Display BLE permission check handle in error trace 2023-10-31 14:43:18 +08:00
zhanghaipeng bca0de4fe5 fix(bt/bluedroid): Fix max BLE gattc notify number to improve compatibility 2023-10-31 14:43:08 +08:00
zhanghaipeng c841f802cf feat(bt/bluedroid): Support BLE gattc notify registration number 2023-10-31 14:42:55 +08:00
zhanghaipeng b7e3eb101d fix(bt/bluedroid): Fix key size check in BLE smp 2023-10-31 14:42:45 +08:00
zhanghaipeng 07ba91f926 fix(bt/bluedroid): Optimize compatibility with Android 10 and later devices 2023-10-31 14:42:33 +08:00
zhanghaipeng 2559757c30 feat(bt/bluedroid): Support hid device control point 2023-10-31 14:42:22 +08:00
zhanghaipeng d6d14d0caa fix(bt/bluedroid): Optimize compatibility with IOS and MACOS devices 2023-10-31 14:41:52 +08:00
David Cermak c9de8b1cef feat(lwip): Add sbom descripton file for Software BOM (v4.4)
* Update submodule: git log --oneline 0f2d472722aaa0cab6e8a72896699541e65bd45b..90c1e93e40bdfe6718b97e2d95aabc2f0f609ce8

Detailed description of the changes:
  - Add sbom descripton file for Software BOM (espressif/esp-lwip@90c1e93e4)
2023-10-31 06:49:00 +01:00
Michael (XIAO Xufeng) 64c3bf6e20 Merge branch 'bugfix/fix_mem_map_issue_v4.4' into 'release/v4.4'
flash_mmap: fix range issue (v4.4)

See merge request espressif/esp-idf!24558
2023-10-30 15:20:05 +08:00
liuning 62832d6901 fix(wifi): fix wifi station no response after m f null 2023-10-27 16:00:51 +08:00
Wang Meng Yang b2a1097d4c Merge branch 'bugfix/backport_some_ble_bugs_20231020_v4.4' into 'release/v4.4'
Fixed some BLE bugs 20231020 (backport v4.4)

See merge request espressif/esp-idf!26607
2023-10-27 11:08:51 +08:00
gaoxu a80fb72f77 fix(adc): fix adc oneshot mod do not split clk 2023-10-27 10:55:01 +08:00
Wang Meng Yang 5690b2fa0a Merge branch 'bugfix/unable_to_load_bonded_ble_devices_from_nvs_v4.4' into 'release/v4.4'
fix(bt/bluedroid): ble fails to load bonded device info after reboot(backport v4.4)

See merge request espressif/esp-idf!26471
2023-10-27 10:27:18 +08:00
gongyantao 439d6440ea 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:41:02 +08:00
Mahavir Jain aee6e63337 Merge branch 'feature/gcm_operation_using_ctr_based_calculation_v4.4' into 'release/v4.4'
GCM operation optimisation (v4.4)

See merge request espressif/esp-idf!26523
2023-10-26 17:23:07 +08:00
Jiang Jiang Jian f265656a37 Merge branch 'bugfix/spurious_beacon_timeout_v4.4' into 'release/v4.4'
Fixed some WiFi Issues (Backport v4.4)

See merge request espressif/esp-idf!26602
2023-10-26 14:24:57 +08:00
zhiweijian 8ff419aaf4 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-26 02:32:48 +00:00
zhiweijian 0a8340ddc2 feat: add config to disable ble hci uart flow control 2023-10-26 02:32:48 +00:00
zhiweijian a8a9ee9c23 change: enable pll track by default on ESP32 2023-10-26 02:32:48 +00:00
zhiweijian 25a2ff985e Add mesh adv type for exception list 2023-10-26 02:32:48 +00:00
chenjianhua 6ce00445b8 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-26 02:32:48 +00:00
chenjianhua 7952b1cbe9 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-26 02:32:48 +00:00
zhiweijian cb80773b88 Add new mesh types for exception list on ESP32-C3 and ESP32-S3 2023-10-26 02:32:48 +00:00
zhiweijian 08e5cae591 Fixed bluedroid host build warning when log is disabled 2023-10-26 02:32:48 +00:00
LiPeng 72e67e3cf7 mbedtls: GCM implementation is replaced with CTR-based calculation
- GCM operation in mbedtls used ECB, which calculated only 16 bytes of data each time.
	- Therefore, when processing a large amount of data, it is necessary to frequently set hardware acceleration calculations,
	- which could not make good use of the AES DMA function to improve efficiency.
	- Hence, GCM implementation is replaced with CTR-based calculation which utilizes AES DMA to improve efficiency.
2023-10-25 18:02:47 +05:30
Jiang Jiang Jian 467225c795 Merge branch 'ci/fix_integration_test_download_bin_4.4' into 'release/v4.4'
ci(fix): integration test download test bin (4.4)

See merge request espressif/esp-idf!26647
2023-10-25 16:19:21 +08:00
Armando 69563f06c9 fix(memory): no enough memory for rodata 2023-10-25 08:02:02 +00:00
Armando 45877f3176 test(flash_mmap): test flash mmap pages 2023-10-25 08:02:02 +00:00
Armando 7911e997ff fix(flash_mmap): fixed limited free I/D pages on ESP32S3, C3 2023-10-25 08:02:02 +00:00
Jiang Jiang Jian 3f81b1a387 Merge branch 'bugfix/fix_cpu_switches_freq_bug_s2s3_to_v4.4' into 'release/v4.4'
EspS2/S3: fixed the bug of insufficient voltage when the CPU switches frequency(V4.4)

See merge request espressif/esp-idf!26282
2023-10-25 10:24:32 +08:00
Chen Yudong d0a79c9cc9 ci(fix): integration test download test bin 2023-10-24 16:52:47 +08:00
morris fa5c3bcd09 Merge branch 'docs/rmt_not_support_customized_isr_hander' into 'release/v4.4'
docs(rmt): correct the reason about not allowing customized ISR handler

See merge request espressif/esp-idf!26622
2023-10-23 17:28:51 +08:00
morris 101c6abf04 docs(rmt): correct the reason about not allowing customized ISR handler
Closes https://github.com/espressif/esp-idf/issues/11478
2023-10-23 14:18:45 +08:00
morris 5f257494c5 Merge branch 'contrib/github_pr_12179_v4.4' into 'release/v4.4'
fix(uart): Fix uart_ll_set_baudrate div-by-zero crash due to uint32_t overflow (backport v4.4)

See merge request espressif/esp-idf!26018
2023-10-20 22:19:34 +08:00
jgujarathi 9494b58b32 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 14:05:39 +05:30
Mahavir Jain 7a60a294c5 Merge branch 'feature/update_mbedtls_v2.28.5' into 'release/v4.4'
feat(mbedtls): update to release v2.28.5

See merge request espressif/esp-idf!26482
2023-10-20 14:53:00 +08:00
Rahul Tank b080931067 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:26:23 +05:30
Anton Maklakov 01796f3386 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20230921_v4.4' into 'release/v4.4'
feat(tools): Update OpenOCD version to v0.12.0-esp32-20230921 (v4.4)

See merge request espressif/esp-idf!26551
2023-10-19 20:01:40 +08:00
Marius Vikhammer 9f48c5eaf5 Merge branch 'bugfix/wdt_deinit_timeout_v4.4' into 'release/v4.4'
fix(wdt): fixed potential WDT timeout when deinitializing task watchdog (v4.4)

See merge request espressif/esp-idf!25984
2023-10-19 13:39:52 +08:00
Jiang Jiang Jian 0b31c7ab79 Merge branch 'feat/imporve_iperf_performance_v4.4' into 'release/v4.4'
feat(wifi): optimize iperf performance (Backport V4.4)

See merge request espressif/esp-idf!26404
2023-10-19 10:31:40 +08:00
Jiang Jiang Jian 6087eb201f Merge branch 'docs/update_wifi_and_wpa_supplicant_documentation_v4.4' into 'release/v4.4'
docs(wifi): Update wifi and wifi security documentation and bugfixes

See merge request espressif/esp-idf!25831
2023-10-19 04:04:19 +08:00
Jiang Jiang Jian 006f0768e1 Merge branch 'bugfix/wps_wpa3_passphrase_v4.4' into 'release/v4.4'
WiFi: get passphrase in WPS if AP support SAE (v4.4)

See merge request espressif/esp-idf!25887
2023-10-18 20:40:08 +08:00
Alexey Gerenkov 4068ba14b2 feat(tools): Update OpenOCD version to v0.12.0-esp32-20230921 2023-10-18 10:59:52 +02:00
Marius Vikhammer 59f3da56bd Merge branch 'bugfix/fix_freertos_system_task_names_v4.4' into 'release/v4.4'
fix(freertos): Updated IDLE task names for each core to have the coreID as a suffix (v4.4)

See merge request espressif/esp-idf!26120
2023-10-18 16:10:25 +08:00
Marius Vikhammer 253660f812 Merge branch 'bugfix/pthread_cond_var_link_hook_v4.4' into 'release/v4.4'
bugfix(pthread): fixed pthread_condvar linker hook (v4.4)

See merge request espressif/esp-idf!26006
2023-10-18 15:55:28 +08:00
Marius Vikhammer fe50a75d0f Merge branch 'contrib/github_pr_12258_v4.4' into 'release/v4.4'
fix(vfs): Fix event_write may not exit critical section (GitHub PR) (v4.4)

See merge request espressif/esp-idf!26049
2023-10-18 15:51:56 +08:00
Marius Vikhammer edd4c861f2 Merge branch 'docs/fix_links_ble_mesh_index_v4.4' into 'release/v4.4'
docs: fix some links in ble-mesh-index.rst in v4.4

See merge request espressif/esp-idf!26473
2023-10-18 15:42:12 +08:00
Harshit Malpani 967cae5892 feat(mbedtls): Update to release v2.28.5 2023-10-17 15:09:36 +05:30
Shreyas Sheth a319ccb552 fix(wifi): Fix crash occuring when station SAE group is not set to SECP256R1 2023-10-17 13:45:27 +05:30
Mahavir Jain 9c4cf20ee1 Merge branch 'fix_esp32s3_irq_names_v4.4' into 'release/v4.4'
fix(interrupts): reorder esp32s3 irq names to align with the respective irq numbers (v4.4)

See merge request espressif/esp-idf!26505
2023-10-17 12:19:19 +08:00
Island 2fa1213528 Merge branch 'backport_v4.4' into 'release/v4.4'
Fix some BLE bugs in bluedroid host(backport 4.4)

See merge request espressif/esp-idf!26167
2023-10-17 09:31:28 +08:00
Erhan Kurubas c8b90970b4 fix(interrupts): reorder esp32s3 irq names to align with the respective irq numbers 2023-10-16 22:26:36 +02:00
zhanghaipeng 30f067faff fix(bt/bluedroid): Fix hid example stack overflow bugs when using esp32s3 2023-10-16 19:33:46 +08:00
zhanghaipeng 0b5aec08e0 fix(bt/bluedroid): Fix remove resolving list error for esp32 2023-10-16 19:33:35 +08:00
zhanghaipeng 038c935ed7 fix(bt/bluedroid): Fix bugs in ble service change characteristic 2023-10-16 19:33:24 +08:00
zhanghaipeng 5f3065d975 feat(bt/bluedroid): Support scan response data length zero in BLE 2023-10-16 19:33:13 +08:00
zhanghaipeng 79d7f33ff6 fix(bt/bluedroid): Optimize the description of Scan Duplicate in BLE 2023-10-16 19:33:03 +08:00
Shreyas Sheth 3d85e81be2 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-16 14:21:44 +05:30
morris 31ddcba269 Merge branch 'bugfix/usb_serial_jtag_write_return_val_v4.41' into 'release/v4.4'
bugfix(usb_serial_jtag): Fix usb_serial_jtag wrong return value, vfs lose data randomly (backport v4.4)

See merge request espressif/esp-idf!26440
2023-10-16 14:27:53 +08:00
Wang Meng Yang d990842ca1 Merge branch 'bugfix/error_param_in_BTA_AG_WBS_EVT_v4.4' into 'release/v4.4'
Bugfix/error param in bta ag wbs evt (v4.4)

See merge request espressif/esp-idf!26430
2023-10-16 11:01:11 +08:00
Wang Meng Yang f7054481ed Merge branch 'bugfix/config_tpoll_fail_v4.4' into 'release/v4.4'
Bugfix/config tpoll fail v4.4

See merge request espressif/esp-idf!26453
2023-10-16 10:59:38 +08:00
Linda d735ca0483 docs: fix some links in ble-mesh-index.rst in v4.4 2023-10-16 10:54:03 +08:00
gongyantao f5c113ed5c fix(bt/bluedroid): ble fails to load bonded device info after reboot
1: add a quantity check in bt when writing paired device info into nvs.
2: delete the exceeded device info from NVS when get bonded list during
bluedroid initialization.
3: unify the process of bt and ble to load bonded list during bluedroid
initialization.
2023-10-13 19:30:30 +08:00
baohongde 597d13f2d9 feat(bt/hci): Added Vendor-Specific HCI command to disable DM1 for ACL-U 2023-10-13 14:23:57 +08:00
baohongde 94a6e253e4 fix(bt/bluedroid): Triggering disconnect event of GAP correctly 2023-10-13 14:23:56 +08:00
baohongde 182c1f9c91 fix(bt/bluedroid): Fix issue of QoS configuration failure when t_poll is greater than 40 2023-10-13 14:23:56 +08:00
xuxiao b25e486cd6 feat(wifi): optimize iperf performance (Backport V4.4) 2023-10-13 11:36:03 +08:00
Chip Weinberger 6e6ea289b7 feat(usb_serial_jtag): printing to console could sometimes skip bytes 2023-10-12 15:21:53 +08:00
Jin Cheng b306d702c6 fix(bt/bluedroid): Fixed incorrect arrangement in type esp_hf_dial_type_t 2023-10-12 09:44:42 +08:00
Jin Cheng a62b41064b change(bt/bluedroid): Added line information printing when error occurs CHECK_HF_IDX 2023-10-12 09:44:34 +08:00
Jin Cheng 9be4decab7 fix(bt/bluedroid): Fixed the issue of uninitialized parameters in event BTA_AG_WBS_EVT 2023-10-12 09:44:27 +08:00
David Čermák 987a77505b Merge branch 'bugfix/napt_updatesV4.4' into 'release/v4.4'
napt: restore to the initial state in deinit

See merge request espressif/esp-idf!26337
2023-10-11 22:03:44 +08:00
Island 1c498307cf Merge branch 'bugfix/deepfree_v44' into 'release/v4.4'
fix(ble_mesh): fix compilation failure on using scene model. (v4.4)

See merge request espressif/esp-idf!26369
2023-10-11 19:28:37 +08:00
Wu Meng Shi c84896af7a fix(ble_mesh): fix compilation failure on using scene model. (v4.4) 2023-10-11 19:28:36 +08:00
Wang Meng Yang c1d9e6197c Merge branch 'bugfix/hf_ag_report_event_with_null_bdaddr_v4.4' into 'release/v4.4'
Bugfix/fixed bugs of HFP in BlueDroid (v4.4)

See merge request espressif/esp-idf!25829
2023-10-11 19:14:59 +08:00
Kapil Gupta 61e344a057 fix(wifi): Get passphrase in WPS if AP support SAE
Also add changes to send NACK if WPS message received twice.
2023-10-10 09:28:06 +00:00
Wang Meng Yang 6c9e406d67 Merge branch 'bugfix/add_params_check_for_hci_v4.4' into 'release/v4.4'
Fixed some HCI commands parameter (backport v4.4)

See merge request espressif/esp-idf!26152
2023-10-10 14:12:29 +08:00
Island 8cb1f37e50 Merge branch 'bugfix/BLEQABR23-414_v44' into 'release/v4.4'
Fix PB-GATT adv is reported to the app layer too frequently (v4.4)

See merge request espressif/esp-idf!26346
2023-10-10 12:01:56 +08:00
Wu Meng Shi 271083be3d Fix PB-GATT adv is reported to the app layer too frequently (v4.4) 2023-10-10 12:01:56 +08:00
Mahavir Jain cdd72ac1d4 Merge branch 'feat/add_support_to_add_auth_data_v4.4' into 'release/v4.4'
fix(esp_http_client): Call event_handler after header value is received (v4.4)

See merge request espressif/esp-idf!26323
2023-10-09 16:24:13 +08:00
shangke 8dde99b024 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-10-09 02:28:44 +00:00
Jiang Jiang Jian bcccf0c3d8 Merge branch 'bugfix/fix_hidd_send_rpt_without_connection_v4.4' into 'release/v4.4'
Change(bt/bluedroid): Optimize HIDD sending interrupt report behavior[backport 4.4]

See merge request espressif/esp-idf!25920
2023-10-08 13:51:30 +08:00
morris f94d517723 Merge branch 'change/remove_s3_120_sdr_warning_v4.4' into 'release/v4.4'
change(mspi): remove s3 120mhz sdr warning (v4.4)

See merge request espressif/esp-idf!26256
2023-10-08 10:53:09 +08:00
Island 182303a93c Merge branch 'bugfix/fix_some_ble_bug_v4.4' into 'release/v4.4'
Fixed some BLE bugs (backport v4.4)

See merge request espressif/esp-idf!26131
2023-10-08 10:52:31 +08:00
liqigan 939f55dd80 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-10-08 09:54:11 +08:00
Jiang Jiang Jian f65d665e9b Merge branch 'change/optimize_sniff_request_v4.4' into 'release/v4.4'
Change(bt/bluedroid): Limit sniff request when pending mode change event[backport 4.4]

See merge request espressif/esp-idf!26055
2023-10-07 14:18:28 +08:00
Jiang Jiang Jian 9e0a101b12 Merge branch 'bugfix/suppress_compiler_warning_silent_reboot_is_enabled_v4.4' into 'release/v4.4'
fix(esp_system): suppress compiler warning if ESP_SYSTEM_PANIC_SILENT_REBOOT is enabled (backport v4.4)

See merge request espressif/esp-idf!26038
2023-10-07 14:17:59 +08:00
Jiang Jiang Jian 6e44a7f589 Merge branch 'bugfix/BLEQABR23-632v44' into 'release/v4.4'
fix(ble_mesh): avoid executing bt_mesh_host_init() more than once when using nimble (v4.4)

See merge request espressif/esp-idf!26243
2023-10-07 14:13:27 +08:00
Wu Meng Shi 0e0beeb591 fix(ble_mesh): avoid executing bt_mesh_host_init() more than once when using nimble (v4.4) 2023-10-07 14:13:27 +08:00
Jiang Jiang Jian d52e0874c9 Merge branch 'bugfix/fix_hid_congestion_v4.4' into 'release/v4.4'
Fix(bt/bluedroid): Fix the issue for HID congestion checking[backport 4.4]

See merge request espressif/esp-idf!26233
2023-10-07 14:12:33 +08:00
Jiang Jiang Jian c82223b60e Merge branch 'feat/add_internal_pull_up_or_pull_down_option_for_deepsleep_wakeup_prepare_v4.4' into 'release/v4.4'
feat(pm): add internal pull-up/downs option for gpio used for deepsleep wakeup (backport v4.4)

See merge request espressif/esp-idf!26043
2023-10-07 14:09:43 +08:00
Jiang Jiang Jian 3f492c218d Merge branch 'bugfix/fix_espnow_send_error_when_sta_connected_v4.4' into 'release/v4.4'
fix(Wi-Fi/Vendor): fix ESPNOW send error when station connected to AP and modem sleep is enabled (v4.4)

See merge request espressif/esp-idf!25788
2023-10-07 14:05:13 +08:00
Abhik Roy ea3dd4c393 napt: restore to the initial state in deinit
This bug casue NAPT not work as normal after deinit then reinit
2023-10-06 20:13:20 +11:00
Roland Dobai fcc43ef8ed Merge branch 'fix/click-port-compl_v4.4' into 'release/v4.4'
fix(tools): fix autocomplete for --port option (v4.4)

See merge request espressif/esp-idf!25876
2023-10-05 12:59:17 +08:00
Harshit Malpani 95ed121192 fix(esp_http_client): Call event_handler after header value is received 2023-10-05 10:24:31 +05:30
Mahavir Jain fd07086a2a Merge branch 'bugfix/http_client_tcp_config_v4.4' into 'release/v4.4'
http_client: Set common tcp config to both TCP and SSL transport (v4.4)

See merge request espressif/esp-idf!26207
2023-10-04 21:22:05 +08:00
Rahul Tank d9a6dbe3a6 Merge branch 'bugfix/post_reattempt_cnt_event_v4.4' into 'release/v4.4'
fix(nimble): Add event for reattempt connection count information (v4.4)

See merge request espressif/esp-idf!26114
2023-09-29 15:56:03 +08:00
Mahavir Jain 919819e682 Merge branch 'feature/freertos_add_sbom_file_v4.4' into 'release/v4.4'
feat(freertos): Added SBOM manifest file for SPDX file generation (v4.4)

See merge request espressif/esp-idf!25893
2023-09-29 13:18:04 +08:00
Mahavir Jain 5f7d4aac6b Merge branch 'update/micro-ecc_submodule_v4.4' into 'release/v4.4'
feat(bootloader): Update micro-ecc version to v1.1 (v4.4)

See merge request espressif/esp-idf!26141
2023-09-29 13:17:37 +08:00
Rahul Tank 69f6838b4b fix(nimble): Add event for reattempt connection count information 2023-09-29 10:08:08 +05:30
Rahul Tank 68df9125f6 Merge branch 'bugfix/memmory_cleanup_optimizatoin_v4.4' into 'release/v4.4'
fix(nimble): Fix for memory leak/optimization (v4.4)

See merge request espressif/esp-idf!25982
2023-09-29 12:34:46 +08:00
hongshuqing fbdeff2108 s2s3 cpu sw freq 2023-09-28 10:53:34 +08:00
chenqingqing 6e47cc1059 fix(bt/bluedroid): Fix the judgment condition for packet transmission status statistics 2023-09-27 19:17:54 +08:00
Aditya Patwardhan b550086d0e Merge branch 'update/version_4_4_6' into 'release/v4.4'
versions: Update version to 4.4.6

See merge request espressif/esp-idf!26089
2023-09-27 16:27:59 +08:00
Armando cafc087cc5 change(mspi): remove s3 120mhz sdr warning 2023-09-27 15:03:07 +08:00
Aditya Patwardhan 3572900934 versions: Update version to 4.4.6 2023-09-26 07:11:21 +00:00
Jiang Jiang Jian 67a0939231 Merge branch 'bugfix/iperf_udp_tx_issue' into 'release/v4.4'
iperf: added sequential numberring of Tx'ed datagrams

See merge request espressif/esp-idf!26085
2023-09-26 15:10:14 +08:00
liqigan bdf8dd3d10 fix(bt/bluedroid): Fix the issue for HID congestion checking 2023-09-26 14:29:06 +08:00
David Cermak 05cde47281 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-26 06:29:36 +02:00
zhanghaipeng 0f66c73f67 fix(bt/bluedroid): Fix set periodic advertising data error 2023-09-23 20:18:42 +08:00
Nachiket Kukade 29c6b5478a fix(examples/iperf): Update and rename default TCP/UDP buffer sizes 2023-09-22 15:13:57 +05:30
Ondrej Kosta e7b171604a fix(examples/iperf): added sequential numberring of Tx'ed datagrams 2023-09-22 15:13:44 +05:30
harshal.patil 7e14e7f5bd 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:16 +05:30
chenjianhua b7e76d96fb bluedroid: fix ble ext adv rand addr setting for NRPA 2023-09-21 21:34:35 +08:00
chenjianhua 375be9e109 bluedroid: fix ble adv data construct for device name 2023-09-21 21:34:23 +08:00
chenjianhua b68fb2be7c bluedroid: fix ble smp key distribution setting 2023-09-21 21:33:54 +08:00
You Wei ea2f6455a0 fix(ldgen): duplicate entries in the generated .ld file 2023-09-21 19:41:32 +08:00
You Wei f9077cb073 fix(ldgen): check target conflict for entries with section alias 2023-09-21 19:41:32 +08:00
Sudeep Mohanty c30e238b16 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:16:51 +02:00
liqigan 146c8f24a6 change(bt/bluedroid): Limit sniff request when pending mode change event 2023-09-19 20:11:53 +08:00
LiPeng 7ca602e86b 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:53:58 +02:00
Lou Tianhao fa12d24f1c feat(pm): add internal pull-up/downs option for gpio used for deepsleep wakeup 2023-09-19 11:16:20 +08:00
wuzhenghui 0b02441fe7 fix(esp_system): suppress compiler warning if ESP_SYSTEM_PANIC_SILENT_REBOOT is enabled 2023-09-19 10:51:24 +08:00
Eduardo Lacerda Campos a2682d4ffb 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:22:01 +08:00
Jakob Hasse c266f260fb fix(pthread): fixed pthread_condvar linker hook 2023-09-18 12:31:43 +08:00
Rahul Tank bf78b03cdc fix(nimble): Fix for memory leak/optimization 2023-09-15 13:13:53 +05:30
Island e9d442d2b7 Merge branch 'backport_v4.4' into 'release/v4.4'
fix(bt/bluedroid): Fix memory no free issue when disconneting for mesh(backport v4.4)

See merge request espressif/esp-idf!25958
2023-09-15 14:20:51 +08:00
Marius Vikhammer e557ed94fb fix(wdt): fixed potential WDT timeout when deinitializing task watchdog
If task WDT deinit was called from core 1 it would cause an interrupt WDT timeout
2023-09-14 13:16:46 +08:00
zhanghaipeng 19ed554062 fix(bt/bluedroid): Fix memory no free issue when disconneting for mesh 2023-09-13 18:15:41 +08:00
Sudeep Mohanty 484c77bdc9 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:57:44 +02:00
Peter Dragun b266352f2f fix(tools): fix autocomplete for --port option
Closes https://github.com/espressif/esp-idf/issues/7970
2023-09-08 09:30:42 +02:00
Wang Mengyang edcb1b58b7 ci(bt/bluedroid): Add CI build test for HFP examples with voice over HCI enabled 2023-09-08 11:39:50 +08:00
chenqingqing 482532b7d7 feat(bt/api): Add new apis for hfp to get the numbers of packet status received and sent 2023-09-08 11:29:26 +08:00
Jiang Jiang Jian c57d30e1df Merge branch 'bugfix/reduce_bss_logging_v4.4' into 'release/v4.4'
WiFi: Reduce BSS logging in wpa_supplicant

See merge request espressif/esp-idf!25832
2023-09-07 22:36:57 +08:00
Michael (XIAO Xufeng) df5df38458 Merge branch 'bugfix/tempsensor_wifi_conflict_v4.4' into 'release/v4.4'
temperature_sensor: Fix issue that have conflict with phy / Fix phy pwdet and tsens power cannot be set twice issue (v4.4)

See merge request espressif/esp-idf!25253
2023-09-07 14:15:16 +08:00
Kapil Gupta 102e0170c2 change(wifi): Reduce BSS logging in wpa_supplicant 2023-09-07 10:59:47 +05:30
Jin Cheng 21dfae06e4 fix(bt/bluedroid): Deleted the redundant 'memset' in btc_hf_cb_handler 2023-09-07 11:25:21 +08:00
Jin Cheng 8a6298c98e docs(bt/bluedroid): Changed the description of esp_hf_client_reject_call 2023-09-07 11:25:21 +08:00
Jin Cheng 13842a9e68 fix(bt/bluedroid): Fixed invalid access to freed semaphore 2023-09-07 11:25:21 +08:00
Jin Cheng d1d736d471 fix(bt/bluedroid): Fixed wrong indexes of HF-AG indicators 2023-09-07 11:25:21 +08:00
Jin Cheng 87d4d95e59 fix(bt/bluedroid): Added peer Bluetooth device address into HF callback parameters 2023-09-07 11:25:19 +08:00
Jin Cheng 7723d1bada fix(bt/bluedroid): Changed log level from WARNING to DEBUG in bta_ag_sco_read_cback 2023-09-07 11:24:39 +08:00
Jin Cheng d8e806de63 fix(bt/bluedroid): Fixed wrong code logic in 'AT+CIND?' of HFP 2023-09-07 11:24:39 +08:00
Jin Cheng 68e469d55f fix(bt/bluedroid): Fixed errors in parsing ATD command in HFP AG 2023-09-07 11:24:34 +08:00
Jin Cheng 7db846e809 fix(bt/bluedroid): Fixed NULL Bluetooth device address in HF-AG events was reported to application layer 2023-09-07 11:06:57 +08:00
Jiang Jiang Jian da65a5c0db Merge branch 'bugfix/aes_dma_descriptor_setup_issue_v4.4' into 'release/v4.4'
fix(aes): correct the linking of the DMA descriptors (v4.4)

See merge request espressif/esp-idf!25786
2023-09-07 10:27:09 +08:00
zhangyanjiao 41c50a21ef fix(Wi-Fi/Vendor): fix ESPNOW send error when station connected to AP and modem sleep is enabled 2023-09-07 02:00:09 +00:00
Jiang Jiang Jian ec205a7964 Merge branch 'feature/support_ble_53_host_feat_v4.4' into 'release/v4.4'
Support BLE host feature for PTS (backport v4.4)

See merge request espressif/esp-idf!25648
2023-09-07 09:59:20 +08:00
chenjianhua 669438ad8b bluedroid: add GATT read multi variable API and evt 2023-09-06 20:43:31 +08:00
chenjianhua d0e6ca913e bluedroid: add periodic adv sync transfer API and EVT 2023-09-06 20:43:31 +08:00
chenjianhua 5ae83e59a3 bluedroid: support gatts show local database 2023-09-06 20:43:31 +08:00
chenjianhua ec08c167ff bluedroid: fixed GATT multi notify and robust caching 2023-09-06 20:43:31 +08:00
chenjianhua a57a8d8c32 bluedroid: add config for GAP service and periodic adv sync transfer 2023-09-06 20:43:31 +08:00
chenjianhua 8aafc35201 bluedroid: add internal GATT API for PTS 2023-09-06 20:43:31 +08:00
chenjianhua 53dd9f0a31 bluedroid: add config for robust caching and RPA timeout 2023-09-06 20:43:31 +08:00
chenjianhua 7e6b085c53 bluedroid: support GATT robust caching feature 2023-09-06 20:43:31 +08:00
chenjianhua 3565b74fa5 bluedroid: support GATT services database hash calculate 2023-09-06 20:43:31 +08:00
chenjianhua a1ffb2580d bluedroid: support periodic advertising sync transfer cmd 2023-09-06 20:43:31 +08:00
chenjianhua 33c8ffa69a bluedroid: support LE L2CAP credit based connection 2023-09-06 20:43:31 +08:00
chenjianhua 650380e717 bluedroid: support oob pairing for smp secure connection 2023-09-06 20:43:31 +08:00
Jiang Jiang Jian d152a5bb00 Merge branch 'bugfix/usb_serial_jtag_write_return_val_v4.4' into 'release/v4.4'
fix(usb_serial_jtag): Fix usb_serial_jtag wrong return value, vfs lose data randomly(backport v4.4)

See merge request espressif/esp-idf!25711
2023-09-06 16:39:47 +08:00
Jiang Jiang Jian 0fc94b1d9f Merge branch 'bugfix/backport_phy_v4.4' into 'release/v4.4'
fix(phy): backport some phy fix(v4.4)

See merge request espressif/esp-idf!25732
2023-09-06 16:36:05 +08:00
Marius Vikhammer 9f11e6fb1f Merge branch 'bugfix/intr_flags_to_level_v4.4' into 'release/v4.4'
fix(intr_flags_to_level): fix value returned one more than correct value (v4.4)

See merge request espressif/esp-idf!25426
2023-09-06 16:35:58 +08:00
Jiang Jiang Jian 1cb288ed8b Merge branch 'bugfix/fix_some_ble_bug_v4.4' into 'release/v4.4'
Fixed some BLE bugs (backport v4.4)

See merge request espressif/esp-idf!25728
2023-09-06 16:02:07 +08:00
morris 69fbe51d28 Merge branch 'bugfix/fix_adc_continuous_driver_conv_frame_issue_v4.4' into 'release/v4.4'
adc: fix adc continuous driver conv_frame_size not bigger than 4092 issue / pr 11500, use circular dma descriptors in adc continuous mode (v4.4)

See merge request espressif/esp-idf!24741
2023-09-06 14:19:24 +08:00
Mahavir Jain 4636443b49 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:37 +05:30
Mahavir Jain b64670b51e 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:30:37 +05:30
alanmaxwell ad3032c781 fix(ci): modify ble_prov example partition table 2023-09-06 10:49:58 +08:00
Rahul Tank 1f00708c84 Merge branch 'bugfix/add_nimble_50_feature_support_flag_v4.4' into 'release/v4.4'
fix(nimble): add flag to indicate 5.0 feature support(v4.4)

See merge request espressif/esp-idf!25765
2023-09-05 22:39:49 +08:00
chenjianhua 59825e3c9c 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-05 20:29:03 +08:00
chenjianhua 377501aaad 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-05 20:29:03 +08:00
chenjianhua 2792f318c3 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-05 20:29:03 +08:00
zhanghaipeng b06db3565a fix(bt): Fix bugs about updating connect param 2023-09-05 20:29:03 +08:00
zhanghaipeng eb449b401a fix(bt): Fix bug while calculating block cipher using aes-128 2023-09-05 20:29:03 +08:00
zhanghaipeng 76e4e6601d docs(bt): Update comment in ble 2023-09-05 20:29:03 +08:00
zhanghaipeng 571e6f0580 feat(bt/bluedroid): Support periodic adv adi feature 2023-09-05 20:29:03 +08:00
chenjianhua 4dd50e9f34 fix(bt/bluedroid): Fixed BLE disconnect event report when disconnecting 2023-09-05 20:29:03 +08:00
chenjianhua a5da0ebd0c fix(bt/bluedroid): Fixed GATTC cache address save when list is full 2023-09-05 20:29:03 +08:00
chenjianhua 0b3ea0fcde feat(bt/bluedroid): Support high duty adv interval setting 2023-09-05 20:29:03 +08:00
chenjianhua 30609ba7f0 fix(bt/bluedroid): Fix address check when using NRPA as random device address 2023-09-05 20:29:03 +08:00
alanmaxwell e2782777a7 fix(phy): backport some phy fix
1. Fix WiFi not working with Tsens on ESP32S2
2. WIFI RX multipath optimization for all chips
3. BLE TX sideband optimization for C3/S3
4. Optimize ht40 tx side band issue for esp32
2023-09-05 11:21:16 +00:00
Michael (XIAO Xufeng) 56bd34a980 Merge branch 'fix/spi_polling_api_buslock_logic_v4.4' into 'release/v4.4'
fix(spi_master): polling_transmit forgot release bus lock when alloc DMA buffer failed (v4.4)

See merge request espressif/esp-idf!25699
2023-09-05 17:19:04 +08:00
morris 4b46cc06ec Merge branch 'bugfix/fix_psram_size_doc_s3_v4.4' into 'release/v4.4'
doc: update s3 psram vaddr max range size (v4.4)

See merge request espressif/esp-idf!25504
2023-09-05 14:57:40 +08:00
Rahul Tank 183eab756b fix(nimble): add flag to indicate 5.0 feature support 2023-09-05 11:21:22 +05:30
Armando b282c244cb DMA EOF may happens per multiple dma descriptors, instead of only one.
Closes https://github.com/espressif/esp-idf/pull/11500
2023-09-05 11:18:56 +08:00
Armando 85ce6abdec Fix #10804 by running continuous ADC DMA in endless loop instead of restarting after each run (descriptor chain) to avoid losing samples. Use descriptor error callback for GDMA to check for DMA buffer overrun. 2023-09-05 11:18:56 +08:00
Armando 91da3bcdc1 adc: fix adc continuous driver conv_frame_size not bigger than 4092 issue 2023-09-05 11:18:52 +08:00
Jiang Jiang Jian 7588771b52 Merge branch 'bugfix/sdmmc_host_cclk_lp_v4.4' into 'release/v4.4'
sdmmc: keep clock enabled for the duration of ACMD41 (v4.4)

See merge request espressif/esp-idf!24335
2023-09-05 11:17:35 +08:00
Jiang Jiang Jian 4f0f7ba4b7 Merge branch 'bugfix/skip_using_cache_in_wrong_passwd_cfg_v4.4' into 'release/v4.4'
fix(esp_wifi): Skip PMK cache usage if configured password is incorrect (Backport v4.4)

See merge request espressif/esp-idf!25720
2023-09-05 10:15:01 +08:00
Shyamal Khachane de293fbab7 fix(esp_wifi): Skip PMK cache usage if configured password is incorrect 2023-09-04 10:43:28 +05:30
Cao Sen Miao e2eb773c30 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-09-04 11:56:00 +08:00
Cao Sen Miao 8ce60fa50a bugfix(temperature_sensor): Fix issue that get the value is negative 2023-09-04 10:42:34 +08:00
Jiang Jiang Jian 93cb3d626d Merge branch 'bugfix/fix_pmf_set_race_v4.4' into 'release/v4.4'
fix(wifi): Prevent PMF config overwritten by tx_cb

See merge request espressif/esp-idf!25666
2023-09-04 10:33:21 +08:00
wanlei b445b103c7 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:25:38 +08:00
Rahul Tank d89b1e45fa Merge branch 'feat/add_high_duty_adv_interval_v4.4' into 'release/v4.4'
feat(nimble): Added support for high duty adv interval (v4.4)

See merge request espressif/esp-idf!25555
2023-09-01 15:02:24 +08:00
Cao Sen Miao f0ca580c80 temperature_sensor: Apply new-shared interface in temperature sensor driver 2023-09-01 11:03:37 +08:00
Jiang Jiang Jian 2183fbc046 Merge branch 'feature/unicore_bootloader_can_run_multicore_app_v4.4' into 'release/v4.4'
esp_system: Fix case when multicore app can not be run if bootloader is unicore (v4.4)

See merge request espressif/esp-idf!23029
2023-09-01 10:18:49 +08:00
Jiang Jiang Jian c2ddb5b79c Merge branch 'test/bqb_test_bt_classic_a2dp_v4.4' into 'release/v4.4'
fix(bt/avdtp): Reject SET CONFIGURATION command with error code INVALID_CODEC_TYPE(backport v4.4)

See merge request espressif/esp-idf!25687
2023-09-01 10:16:26 +08:00
Cao Sen Miao 6bb129620f temperature_sensor: Add new interface and reference counts so that phy and driver can use together 2023-09-01 10:06:31 +08:00
wanglai@espressif.com 08be89bd3e fix(bt/avdtp): 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-08-31 19:49:38 +08:00
Shreyas Sheth 4a80dc0123 fix(wifi): Prevent PMF config overwritten by tx_cb 2023-08-31 10:34:03 +05:30
Jiang Jiang Jian c9c7322678 Merge branch 'contrib/github_pr_9694_v4.4' into 'release/v4.4'
add low power doc and picture (GitHub PR)(backport v4.4)

See merge request espressif/esp-idf!25592
2023-08-30 14:56:44 +08:00
Jiang Jiang Jian 77a8a3fd00 Merge branch 'bugfix/supplicant_osi_violation_v4.4' into 'release/v4.4'
Fix abstraction violation in wpa_supplicant (Backport v4.4)

See merge request espressif/esp-idf!25567
2023-08-30 11:53:24 +08:00
Jiang Jiang Jian 937b82e985 Merge branch 'contrib/github_pr_12039_v4.4' into 'release/v4.4'
docs(iperf): Update documentation with console interface details(v4.4)

See merge request espressif/esp-idf!25513
2023-08-30 10:58:19 +08:00
Jiang Jiang Jian 8ec3b606ca Merge branch 'bugfix/fix_no_mac_retention_at_wifi_start_v4.4' into 'release/v4.4'
fix(esp_wifi): fix no mac retention at wifi start

See merge request espressif/esp-idf!25519
2023-08-30 10:57:35 +08:00
wangtao 1e40e7074f backport for v4.4 delete esp32c2 and c6 info 2023-08-29 11:36:49 +08:00
chenjianxing e94ea3fa90 docs: update power save part 2023-08-28 14:34:15 +08:00
wang tao 41cfb55042 add low power doc and picture
Merges https://github.com/espressif/esp-idf/pull/9694
2023-08-28 14:33:58 +08:00
Nachiket Kukade 46a4a4694b fix(supplicant): Fix abstraction violation in wpa_supplicant 2023-08-25 12:36:00 +05:30
Rahul Tank 13afbeb7cb feat(nimble): Added support for high duty adv interval 2023-08-25 10:36:31 +05:30
Rahul Tank bd5f10b1fd Merge branch 'bugfix/remove_global_min_max_def_v4.4' into 'release/v4.4'
Nimble: Removes global min/max definition causing problems with other libraries(v4.4)

See merge request espressif/esp-idf!25472
2023-08-25 01:17:12 +08:00
liuning a844799d82 fix(esp_wifi): fix no mac retention at wifi start 2023-08-24 10:17:13 +08:00
Steven Macías 64c10df180 docs(iperf): Update documentation with console interface details
Closes https://github.com/espressif/esp-idf/pull/12039
2023-08-23 19:53:43 +08:00
Armando 6e465a16a7 doc: update s3 psram vaddr max range size 2023-08-23 19:25:47 +08:00
Jiang Jiang Jian b9e8e0ef4e Merge branch 'bugfix/ignore_eapol_nonkey_v4.4' into 'release/v4.4'
Ignore EAPOL non-key frames in EAPOL txdone callback (Backport v4.4)

See merge request espressif/esp-idf!25454
2023-08-23 16:38:53 +08:00
Rahul Tank 6d6a0eddc9 fix(nimble): Removed global min/max definition causing problems with other libraries 2023-08-23 11:15:50 +05:30
Jiang Jiang Jian 37cf841a12 Merge branch 'bugfix/incr_sdp_max_conns_v4.4' into 'release/v4.4'
fix(bt): Increased SDP maximum connections to avoid connection exhausted (v4.4)

See merge request espressif/esp-idf!25431
2023-08-23 12:15:37 +08:00
Jiang Jiang Jian 0f775fa566 Merge branch 'bugfix/action_tx_sleep_fix_v44' into 'release/v4.4'
Fix issues with action_frame tx and scan(v4.4)

See merge request espressif/esp-idf!25449
2023-08-23 12:15:28 +08:00
Marius Vikhammer 5f0ac58e1b Merge branch 'feature/usb_host_restrict_ahb_errata_workaround_to_esp32s2_eco0_v4.4' into 'release/v4.4'
USB Host: Restrict ESP32-S2 AHB errata workaround to only ECO0 chips (v4.4)

See merge request espressif/esp-idf!25051
2023-08-22 23:21:43 +08:00
Darian Leung 5cb212665a 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-08-22 16:07:09 +08:00
Darian Leung 60e42f30c4 usb_host: Restrict ESP32-S2 AHB errata workaround to only ECO0 chips 2023-08-22 15:43:39 +08:00
Mahavir Jain 08ae96d72f Merge branch 'contrib/github_pr_11869_v4.4' into 'release/v4.4'
bugfix: avoid warning in espcoredump when log disabled (GitHub PR) (v4.4)

See merge request espressif/esp-idf!25145
2023-08-22 13:33:10 +08:00
Nachiket Kukade 29d9e6f01a fix(supplicant): Ignore EAPOL non-key frames in EAPOL txdone callback 2023-08-21 18:46:27 +05:30
jgujarathi b53b835754 fix(esp_wifi) : Fix issues with action_frame tx and scan
1. Moves the location of null data frame TX to before channel switch during
   offchannel action frame TX req.
2. Reverts Send wake up and sleep null between scanning.
2023-08-21 16:43:14 +05:30
Jiang Jiang Jian 0cadcd1210 Merge branch 'bugfix/fix_espnow_set_lr_rate_fail_v4.4' into 'release/v4.4'
fix(wifi/vendor): fix some bugs in LR and ESP-NOW (backport v4.4)

See merge request espressif/esp-idf!25407
2023-08-21 15:21:33 +08:00
Aditya Patwardhan ab260561ab Merge branch 'bugfix/sha_dma_mode_incorrect_result_v4.4' into 'release/v4.4'
fix(sha): DMA mode iteration calculation issue for certain data lengths (v4.4)

See merge request espressif/esp-idf!25129
2023-08-21 14:33:44 +08:00
Jiang Jiang Jian 486c571ed7 Merge branch 'bugfix/place_esp_timer_in_internal_memory' into 'release/v4.4'
ci: Fix for `ETSTimers arm & disarm run from IRAM` UT

See merge request espressif/esp-idf!25366
2023-08-21 14:27:34 +08:00
Jin Cheng 83f6cc60bc fix(bt): Increased SDP maximum connections to avoid connection exhausted 2023-08-21 11:23:20 +08:00
Jiang Jiang Jian d8484f00db Merge branch 'bugfix/neighbour_report_crash_v44' into 'release/v4.4'
fix(rrm)  : Fix crash in RRM neighbour report requests.

See merge request espressif/esp-idf!25410
2023-08-21 11:15:31 +08:00
Planck (Lu Zeyu) 21c0223f74 fix(intr_flags_to_level): fix value returned one more than correct value 2023-08-21 10:09:11 +08:00
Mahavir Jain a49e0180ee Merge branch 'feature/update_mbedlts_v2.28.4' into 'release/v4.4'
feat(mbedtls): Update to release v2.28.4

See merge request espressif/esp-idf!25385
2023-08-18 15:33:19 +08:00
jgujarathi 8084fe563a 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:59:33 +05:30
zhangyanjiao fd4b3768d1 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 15:08:21 +08:00
Jiang Jiang Jian e6bd433488 Merge branch 'bugfix/eapol_txdone_cb_issue_v4.4' into 'release/v4.4'
Fix EAPOL Key TxDone callback implementation (Backport v4.4)

See merge request espressif/esp-idf!25382
2023-08-18 01:12:39 +08:00
Harshit Malpani c112914dac feat(mbedtls): Update to release v2.28.4 2023-08-17 10:37:19 +05:30
Nachiket Kukade debcbac7c1 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-16 21:15:04 +05:30
Laukik Hase 4800e9b3c4 ci: Fix for ETSTimers arm & disarm run from IRAM UT
- For ESP32 | SPIRAM_MALLOC_ALWAYSINTERNAL=0
- Forced `esp_timer_create` to allocate resource from the internal memory
- WiFi/BT coexistence will sometimes arm/disarm timers from an ISR
  where flash may be disabled. This can lead to a cache-based
  exception as the timer instance will be located in the PSRAM.
2023-08-16 11:13:39 +08:00
Jiang Jiang Jian 8c1e87e0c8 Merge branch 'backport_v4.4' into 'release/v4.4'
fix(bt): Fix ble periodic advertising data length 0 error(backport v4.4)

See merge request espressif/esp-idf!25008
2023-08-16 10:16:14 +08:00
Jiang Jiang Jian ba29708f3e Merge branch 'bugfix/fix_ftm_error_propagation_v4.4' into 'release/v4.4'
Fix error propagation while initiating FTM (Backport v4.4)

See merge request espressif/esp-idf!25219
2023-08-15 14:00:10 +08:00
Jiang Jiang Jian 9632511b8a Merge branch 'bugfix/minor_enterprise_fixes_v4.4' into 'release/v4.4'
Drop Eapol msg if EAP success is not processed (Backport v4.4)

See merge request espressif/esp-idf!25068
2023-08-15 11:06:20 +08:00
Wang Meng Yang d1f93778d4 Merge branch 'bugfix/remove_deprecated_err_code_v4.4' into 'release/v4.4'
fix(bt): Removed an incorrectly defined HCI error code (4.4)

See merge request espressif/esp-idf!25290
2023-08-14 15:09:42 +08:00
Rahul Tank 48e28cf3cf Merge branch 'bugix/nimble_port_run_crash_v4.4' into 'release/v4.4'
fix(nimble): Added checks before accessing event pointers (v4.4)

See merge request espressif/esp-idf!25268
2023-08-09 22:59:02 +08:00
Jin Cheng b48eb195b8 fix(bt): Removed an incorrectly defined HCI error code 2023-08-09 17:38:37 +08:00
Roland Dobai 41b695a991 Merge branch 'bugfix/link_gcov_rtio_v4.4' into 'release/v4.4'
gcov: Fix not linked gcov rtio functions

See merge request espressif/esp-idf!24503
2023-08-09 00:14:02 +08:00
Roland Dobai 8aa1395db5 Merge branch 'fix/esp32s3_sysview_trace_corrupt_v4.4' into 'release/v4.4'
fix(app_trace): Fix apptrace data corruption on ESP32-S3 (v4.4)

See merge request espressif/esp-idf!24682
2023-08-09 00:06:00 +08:00
Roland Dobai 550e7db1f1 Merge branch 'bugfix/fix_idrom_bus_mapping_overlap_issue_v4.4' into 'release/v4.4'
fix(esptool): fix potential text/rodata overlap mapping issue on I/DBUS shares mmu entry chips (backport v4.4)

See merge request espressif/esp-idf!25195
2023-08-08 22:08:36 +08:00
isha.pardikar@espressif.com 863fd0c9b7 fix(nimble): Added checks before accessing event pointers 2023-08-08 15:55:08 +05:30
Roland Dobai 013b6b3d4f Merge branch 'version_check_fix_dev_4.4' into 'release/v4.4'
fix(tools): check_python_version accept dev releases as requirement (v4.4)

See merge request espressif/esp-idf!25189
2023-08-08 15:22:13 +08:00
morris 1efa7866ec Merge branch 'bugfix/i80_lcd_reset_gpio_config_v4.4' into 'release/v4.4'
fix(i80_lcd): reset cs gpio on exit (v4.4)

See merge request espressif/esp-idf!25245
2023-08-08 10:16:23 +08:00
morris 6c1182facd fix(i80_lcd): reset cs gpio on exit 2023-08-07 15:54:31 +08:00
Roland Dobai 9ff0e96803 Merge branch 'bugfix/sbom_hash_check_v4.4' into 'release/v4.4'
fix(test_submodules.py): don't rely on submodule init (v4.4)

See merge request espressif/esp-idf!25061
2023-08-07 14:04:34 +08:00
Wang Meng Yang 9e987ea312 Merge branch 'bugfix/role_switch_enc_mode_lmp_timeout_v4.4' into 'release/v4.4'
fix(bt/controller): Fix disconnection due to lmp messages not being processed by both sides(v4.4)

See merge request espressif/esp-idf!25204
2023-08-07 10:50:16 +08:00
Peter Dragun 3d81080601 fix(tools): check_python_version accept dev releases as requirement 2023-08-04 14:19:29 +02:00
Rahul Tank 1282ae089d Merge branch 'bugfix/handle_NULL_data_periodic_adv_v4.4' into 'release/v4.4'
fix(nimble): Add check to set length only if data is valid in periodic adv (v4.4)

See merge request espressif/esp-idf!25180
2023-08-04 19:45:13 +08:00
Nachiket Kukade b2fa416db4 fix(wifi): Fix error propagation while initiating FTM 2023-08-04 15:34:20 +05:30
xiongweichao c372c48439 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:07:41 +08:00
wuzhenghui 96a014f31d fix(esptool): fix potential text/rodata mapping overlap issue on I/DBUS shares mmu entry chips 2023-08-03 22:18:52 +08:00
Rahul Tank 190e4dee28 fix (nimble): Add check to set length only if data is valid in periodic adv 2023-08-03 14:51:30 +05:30
Jiang Jiang Jian 6b27c05de0 Merge branch 'bugfix/fix_cache_data_mem_corrupt_after_sleep_v4.4' into 'release/v4.4'
fix(lightsleep): Suspend cache before goto sleep to avoid cache load wrong data (backport v4.4)

See merge request espressif/esp-idf!25104
2023-08-03 11:41:31 +08:00
Jiang Jiang Jian 8a38bc2fed Merge branch 'change/rewrite_all_low_to_any_low_when_not_esp32_4.4' into 'release/v4.4'
Change: rewrite EXT1 triggle mode all_low to any_low when not esp32(backport v4.4)

See merge request espressif/esp-idf!24989
2023-08-03 11:40:24 +08:00
Roland Dobai 681f55b386 Merge branch 'bugfix/ps_export_extra_paths_v4.4' into 'release/v4.4'
tools: export.ps1: define functions for helper python tools (v4.4)

See merge request espressif/esp-idf!25142
2023-08-02 22:08:18 +08:00
Christoph Baechler e74f83c099 bugfix: avoid warning in espcoredump when log disabled 2023-08-02 15:04:47 +05:30
Ivan Grokhotkov 2c79e039ba 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 11:30:21 +02:00
Ivan Grokhotkov 111984aad6 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 11:30:21 +02:00
Mahavir Jain 847722e21c 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 10:19:31 +05:30
Mahavir Jain 2aa5963bbd 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 10:18:12 +05:30
wuzhenghui 2df2c1cc46 fix(lightsleep): fix access pu_cfg after sleep wake wakeup which is linked to flash 2023-08-01 16:42:59 +08:00
wuzhenghui ae0824684c fix(lightsleep): suspend cache before goto sleep to avoid cache load wrong data after spi io isolation 2023-08-01 10:39:07 +08:00
Alexey Gerenkov 865f7d6289 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:23:42 +03:00
Frantisek Hrbata 3dd24c70fc 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:17:14 +02:00
Shyamal Khachane 78f230f1b0 fix(esp_wifi): Drop Eapol msg if EAP success is not processed 2023-07-28 15:19:31 +05:30
Jiang Jiang Jian 949739c9b7 Merge branch 'bugfix/fix_wifi_espnow_coexist_API_doc_v4.4' into 'release/v4.4'
fix(esp_wifi): fix ret when setting channel at wifi not started

See merge request espressif/esp-idf!25018
2023-07-28 16:39:39 +08:00
morris f1d3f04afd Merge branch 'bugfix/bod_glitch_reset_c6_v4.4' into 'release/v4.4'
bootloader: fix BOD and glitch reset on C6 and H2 (v4.4)

See merge request espressif/esp-idf!24936
2023-07-28 10:30:29 +08:00
Jiang Jiang Jian d3dcc50743 Merge branch 'bufix/Backport_some_lwip_bugs_for_4.4_0726' into 'release/v4.4'
Backport some lwip bugs for 4.4

See merge request espressif/esp-idf!24999
2023-07-27 13:33:46 +08:00
liuning a9559e17ac fix(esp_wifi): fix ret when setting channel at wifi not started 2023-07-27 10:43:11 +08:00
zhanghaipeng abd4778195 fix(bt): Fix bug with address resolution enabling during non-connected activities 2023-07-26 16:39:34 +08:00
zhanghaipeng 8e632e84a1 docs(bt): Organize header files for esp32c3 and esp32s3 2023-07-26 16:39:34 +08:00
zhanghaipeng f25afd6afe 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:34 +08:00
xueyunfei 6a1ded6302 fix(dhcp server): Fix dhcp server address pool issue 2023-07-26 12:48:20 +08:00
xueyunfei 9a942e6a1b Backport some lwip bugs for 4.4
* Update submodule: git log --oneline 8290c3b8f2adaf82aa45ec992b87f16205f2689b..4f24c9baf9101634b7c690802f424b197b3bb685

Detailed description of the changes:
- lower the dhcp discover and request retry backoff time (esp-lwip@4f24c9ba)
- netdb:fixed bug for getaddrinfo returns null when IPV4 mapped address (esp-lwip@a4d70c7e)
2023-07-26 12:42:57 +08:00
xueyunfei f4941be709 esp_phy:update comments in esp_phy_init.h 2023-07-26 11:58:11 +08:00
Lou Tianhao 40954d1eb6 docs(pm/sleep): rewrite_all_low_to_any_low_when_not_esp32 2023-07-26 11:49:30 +08:00
Jiang Jiang Jian cc71308e2f Merge branch 'bugfix/fix_some_wifi_bugs_230725_v4.4' into 'release/v4.4'
fix(wifi): fix some wifi bugs 20230725(Backport v4.4)

See merge request espressif/esp-idf!24982
2023-07-26 10:31:07 +08:00
Mahavir Jain 6069e3b992 Merge branch 'ci/fix_failures_in_esp_http_client_example_v4.4' into 'release/v4.4'
CI: fix esp_http_client example failures in CI. Timeout was observed in the... (v4.4)

See merge request espressif/esp-idf!24966
2023-07-25 19:23:03 +08:00
Lou Tianhao 7aa3079e2a Change: rewrite EXT1 triggle mode all_low to any_low when not esp32 2023-07-25 17:52:09 +08:00
muhaidong 911653fffb fix(wifi): fix some wifi bugs 230725
1. update pairwise cipher in softAP
2. overwrite pairwise cipher when softap auth mode is wpa2 wpa2_wpa3 wpa3
3. fix single tail queue conjunct issue
4. fix some txop issues
5. process association request verify ssid
6. fix sta rx csa issue
7. fix ftm timer macro issue
2023-07-25 13:01:48 +08:00
muhaidong f563e19e92 fix(wifi): missed annotate ld function from txop fix 2023-07-25 12:54:20 +08:00
muhaidong 91d4132f4c esp_wifi: fix some txop issues 2023-07-25 12:52:42 +08:00
muhaidong fe74683489 esp_supplicant: When the softAP authentication mode is set to WPA2_PSK, WPA2_WPA3_PSK, or WPA3_PSK, the pairwise cipher will be overwritten with WIFI_CIPHER_TYPE_CCMP 2023-07-25 12:48:46 +08:00
morris cc484c59c8 Merge branch 'bugfix/fix_gpio_driver_calloc_v4.4' into 'release/v4.4'
fix(gpio): fix potential crash when processing gpio isr (v4.4)

See merge request espressif/esp-idf!24903
2023-07-25 11:03:29 +08:00
Jiang Jiang Jian 3b570fd9cd Merge branch 'bugfix/sae_and_nvs_fixes_v4.4' into 'release/v4.4'
Fix SAE and SAE related NVS issues (Backport v4.4)

See merge request espressif/esp-idf!24926
2023-07-25 10:25:29 +08:00
Jiang Jiang Jian 2985657544 Merge branch 'bugfix/cache_writeback_bug_v4.4' into 'release/v4.4'
esp_rom: patch Cache_WriteBack_Addr (backport v4.4)

See merge request espressif/esp-idf!24939
2023-07-24 19:33:07 +08:00
Shyamal Khachane 5708e53f3e 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
2023-07-24 15:34:41 +05:30
Harshit Malpani fad1535a15 fix(ci): update HTTP client example tests runner assignment
HTTP client example tests now connect with locally hosted httpbin service
for more stable results across multiple runs
2023-07-24 11:38:11 +05:30
Harshit Malpani 4243dc465c CI: fix esp_http_client example failures in CI. Timeout was observed in the logs while performing HTTP requests. Changing the endpoint when testing in CI 2023-07-24 11:35:39 +05:30
Rahul Tank 8d35a4750c Merge branch 'bugfix/handle_conn_type_and_array_reset_v4.4' into 'release/v4.4'
fix(nimble): Update connection type in reattempt connection code (v4.4)

See merge request espressif/esp-idf!24917
2023-07-24 12:23:52 +08:00
gaoxiaojie f093dcc9cb fix(cache): add lock to protect cache sync operation 2023-07-24 10:45:00 +08:00
gaoxiaojie 25603522e8 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-24 10:45:00 +08:00
Jiang Jiang Jian ec07e2e1aa Merge branch 'bugfix/fix_ftm_dist_est_v4.4' into 'release/v4.4'
FTM calibration update and improvements in FTM (Backport v4.4)

See merge request espressif/esp-idf!24930
2023-07-21 19:28:23 +08:00
Mahavir Jain 25437efec2 Merge branch 'fix/esp_aes_return_values_v4.4' into 'release/v4.4'
fix(mbedtls): fix return values of esp-aes APIs (v4.4)

See merge request espressif/esp-idf!24807
2023-07-21 16:49:13 +08:00
Nachiket Kukade fb64c24785 fix(esp_wifi): Update FTM calibration and fix other FTM issues
Update wifi libs with below fixes -

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

Co-authored-by: Sarvesh Bodakhe <sarvesh.bodakhe@espressif.com>
2023-07-21 10:08:18 +05:30
Xiao Xufeng 39510e7488 bootloader: cleanup ana reset config code 2023-07-21 03:12:53 +08:00
Xiao Xufeng 2ed2e7e191 bootloader: fixed super watchdog not enabled issue on C3, S3, H4 2023-07-21 03:12:52 +08:00
Xiao Xufeng 2cdb3b87d6 bootloader: removed unavailable rtc features 2023-07-21 03:12:52 +08:00
harshal.patil ae3026a60b fix(mbedtls): Fixed the transmission of return values of the esp-aes APIs
- Earlier, some intermediate return values were not stored and returned,
thus incorrect return values used to get transmitted to the upper layer of APIs.

- Also, zeroised the output buffer in case of error condition.
2023-07-20 18:54:37 +05:30
Ivan Grokhotkov 53b0c359bb examples: wifi/ftm: make global variables static
Prevents conflict between g_ftm_report_num_entries defined in the
example and in the Wi-Fi library.
2023-07-20 18:50:52 +05:30
Jiang Jiang Jian c739cdf50d Merge branch 'bugfix/fix_some_wifi_bugs_230719_v4.4' into 'release/v4.4'
fix(wifi): fix some wifi bugs 230719 (backport v4.4)

See merge request espressif/esp-idf!24898
2023-07-20 16:17:17 +08:00
Rahul Tank dd0a5c0c26 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:40:24 +05:30
zhangyanjiao a803c50427 fix(wifi): Add bugfixes and improvements
1. Update wifi security mode
2. Add check for memory allocation in tx buffers
3. Fix association refused temporarily comeback time set to zero issue
4. Vnd ie callback can be set to null
2023-07-20 10:26:48 +08:00
Li Shuai 6900837cff 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 10:26:48 +08:00
Rotzbua d360cdbd15 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 10:26:48 +08:00
david zuhn c16095d7bb spelling correction in documentation
Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/9721
2023-07-20 10:26:48 +08:00
zhangyanjiao d829f2485e 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 10:26:43 +08:00
Jiang Jiang Jian 4fc8964ec3 Merge branch 'bugfix/split_scan_tx_v44' into 'release/v4.4'
Fix collection of issues in sta roam and scan.(v4.4)

See merge request espressif/esp-idf!24883
2023-07-19 23:25:06 +08:00
Song Ruo Jing 8e3f509cd2 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:02:13 +08:00
jgujarathi 9168b925d4 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-19 10:46:43 +05:30
Jiang Jiang Jian 208c0feea3 Merge branch 'bugfix/wifi_prov_deinit_github_v4.4' into 'release/v4.4'
wifi_prov_mgr: Fixed memory leak after bluetooth stack was stopping. (v4.4)

See merge request espressif/esp-idf!23438
2023-07-19 10:12:49 +08:00
Jiang Jiang Jian 2dd51c10a0 Merge branch 'bugfix/fix_some_bluedroid_bugs_v4.4' into 'release/v4.4'
Fixed some bluedroid bugs (backport v4.4)

See merge request espressif/esp-idf!24862
2023-07-19 10:09:05 +08:00
Ivan Grokhotkov e246071d6d 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-07-18 18:17:48 +02:00
chenjianhua b2325e50bb fix(bt/bluedroid): Fix memory leak of gattc cache upon disconnection 2023-07-18 11:53:24 +08:00
chenjianhua bddb13efb2 bluedroid: fixed gatt tcb free when disconnecting 2023-07-18 11:53:14 +08:00
chenjianhua 2101438df6 bluedroid: fixed compile warning when optimize for performance 2023-07-18 11:52:49 +08:00
Jiang Jiang Jian fc31da6cf3 Merge branch 'docs/update_bluetooth_power_save_readme_v4.4' into 'release/v4.4'
Docs: update bluetooth power save readme(v4.4)

See merge request espressif/esp-idf!24846
2023-07-18 10:48:44 +08:00
Jiang Jiang Jian 922af41ba0 Merge branch 'backport_v4.4' into 'release/v4.4'
fix(bt): Fix the issue of not printing the Bluetooth MAC address for ESP32(backport v4.4)

See merge request espressif/esp-idf!24778
2023-07-18 10:47:53 +08:00
Jiang Jiang Jian 558398f234 Merge branch 'bugfix/multiple_btm_rrm_task_v44' into 'release/v4.4'
Fix race conditions in btm task deletion.(v4.4)

See merge request espressif/esp-idf!24831
2023-07-18 10:47:11 +08:00
Jiang Jiang Jian 9983bc0144 Merge branch 'bugfix/resume_ext_scan_pti_in_time_v4.4' into 'release/v4.4'
bt: fix the issue that BLE scan uses high priority incorrectly and causes Wi-Fi unable to work normally on ESP32-C3 and ESP32-S3(backport v4.4)

See merge request espressif/esp-idf!24405
2023-07-18 10:46:27 +08:00
xiongweichao 098a378c86 docs(bt/example): Updated bluetooth power save readme 2023-07-17 17:14:00 +08:00
xiongweichao a709c402a6 docs(sleep_modes): Updated Wi-Fi/Bluetooth and Sleep Modes in docs 2023-07-17 17:13:22 +08:00
wangmengyang 1e1c46b2f7 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-17 06:17:18 +00:00
isha.pardikar@espressif.com 29ff30b4c7 wifi_prov_mgr: Fixed memory leak after bluetooth stack was stopping. 2023-07-17 06:05:36 +00:00
jgujarathi 9ea42c66d0 fix(esp_wifi): Fix race conditions in btm task deletion.
Fix possible cases of multiple btm_rrm_t tasks due to possible race
condition during btm task deletion.
2023-07-17 10:17:00 +05:30
Jiang Jiang Jian ed8033ca79 Merge branch 'bugfix/sae_crypto_optimization_esp32_v4.4' into 'release/v4.4'
esp_wifi: Optimize sae crypto operations for esp32 (v4.4)

See merge request espressif/esp-idf!24762
2023-07-17 10:31:36 +08:00
Roland Dobai 1718080340 Merge branch 'pkg_resources_deprecation-v4.4' into 'release/v4.4'
fix(tools/python_dep_check): replace deprecated pkg_resources with importlib (backport v4.4)

See merge request espressif/esp-idf!24716
2023-07-14 22:19:52 +08:00
Peter Dragun fd96dafc2b fix(tools/python_dep_check): replace deprecated pkg_resources with importlib 2023-07-14 14:38:15 +02:00
zhanghaipeng 05faa8f213 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:06 +08:00
zhanghaipeng 688c7b41ec 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:06 +08:00
morris 703e116225 Merge branch 'bugfix/fix_s3_adc1_wrong_clk_div_v4.4' into 'release/v4.4'
fix(adc): fixed esp32, esp32s2,esp32s3 adc oneshot mode clk div issue (v4.4)

See merge request espressif/esp-idf!24745
2023-07-13 15:48:39 +08:00
Kapil Gupta 9e7b55ac99 esp_wifi: Optimize sae crypto operations for esp32 2023-07-13 09:47:32 +05:30
Jiang Jiang Jian 330f8cbee8 Merge branch 'bugfix/btm_scan_done_crash_v44' into 'release/v4.4'
fix(wpa_supplicant) : Fix occasional crash during btm roam.

See merge request espressif/esp-idf!24733
2023-07-13 07:57:24 +08:00
Jiang Jiang Jian acf91e5635 Merge branch 'feature/esp_ipc_isr_fix_v4.4' into 'release/v4.4'
esp_system: Fix a race-condition in esp_ipc_isr (in QEMU env) (v4.4)

See merge request espressif/esp-idf!23993
2023-07-13 07:56:25 +08:00
Jiang Jiang Jian 53b02bdb6a Merge branch 'bugfix/systick_loop_v4.4' into 'release/v4.4'
freertos: Fix Systick stuck when systimer was not reset (v4.4)

See merge request espressif/esp-idf!24324
2023-07-13 07:55:57 +08:00
Michael (XIAO Xufeng) 48e848c6cf Merge branch 'bugfix/fix_spi_flash_api_concurrency_issue_v4.4' into 'release/v4.4'
spi_flash: fix concurrency issue when concurrently calling esp_flash apis (v4.4)

See merge request espressif/esp-idf!24514
2023-07-12 18:40:14 +08:00
Armando 8bf4cb3eee fix(adc): fixed esp32, esp32s2,esp32s3 adc oneshot mode clk div issue 2023-07-12 17:24:19 +08:00
Jiang Jiang Jian 62387d8efa Merge branch 'bugfix/fix_some_bt_controller_bug_v4.4' into 'release/v4.4'
component_bt:Fixed some bluetooth bugs(v4.4)

See merge request espressif/esp-idf!24580
2023-07-12 16:16:12 +08:00
jgujarathi 8ba3507fa4 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:41:58 +05:30
xiongweichao 2685472da0 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 07:23:45 +00:00
chenjianhua ac27406dcb Update bt-lib for esp32
- Fixed memory leak when setting adv data
2023-07-11 07:23:45 +00:00
xiongweichao 8148b5deb9 components/bt: Fix crash due to NULL point 2023-07-11 07:23:45 +00:00
Rahul Tank 99279e7a14 Merge branch 'bugfix/add_debug_print_for_event_v4.4' into 'release/v4.4'
fix(nimble): Add debug code to print HCI events information v4.4

See merge request espressif/esp-idf!23781
2023-07-11 14:03:28 +08:00
Armando da5acfdca6 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-11 02:11:20 +00:00
Armando 29ff838f5a spi_flash: fix concurrency issue when calling esp_flash apis under xip_psram or auto_suspen 2023-07-11 02:11:20 +00:00
Armando a9e5dac6cc spiflash: fix not calling on_spi_acquired when CONFIG_SPI_FLASH_SHARE_SPI1_BUS issue 2023-07-11 02:11:20 +00:00
Jiang Jiang Jian 6209a2c5e2 Merge branch 'bugfix/increase_pm_dump_time_field_length_v4.4' into 'release/v4.4'
Power Management: increase pm_dump time field width (backport v4.4)

See merge request espressif/esp-idf!24448
2023-07-11 06:19:09 +08:00
Jiang Jiang Jian 1536beec31 Merge branch 'bugfix/fix_deepsleep_wakestub_example_ci_failure_v4.4' into 'release/v4.4'
ci: fix deepsleep wakestub example ci failure (backort v4.4)

See merge request espressif/esp-idf!24463
2023-07-10 16:02:08 +08:00
wuzhenghui 525e344b7d bugfix: increase pm_dump time field width
Closes https://github.com/espressif/esp-idf/issues/11704
2023-07-10 06:37:35 +00:00
Jiang Jiang Jian 8756d9545f Merge branch 'mesh/bugfix_fix_layer2_node_scan_issue_when_fixed_root_v4.4' into 'release/v4.4'
fix(wifi mesh):  fix the layer2 node scan issue when fixed root (backport v4.4)

See merge request espressif/esp-idf!24628
2023-07-10 10:48:44 +08:00
Jiang Jiang Jian 0694319356 Merge branch 'docs/fix_typo_in_api_guides_usb_otg_console_v4.4' into 'release/v4.4'
docs: fix a typo in api-guides/usb-otg-console (v4.4)

See merge request espressif/esp-idf!24455
2023-07-10 10:37:23 +08:00
Jiang Jiang Jian 8bf7c74fbf Merge branch 'docs/fix_typo_in_api-reference_system_ota_v4.4' into 'release/v4.4'
fix a typo in api-reference/system/ota (v4.4)

See merge request espressif/esp-idf!24446
2023-07-10 10:37:01 +08:00
wuzhenghui 2ca1c1a617 example: inform ulp adc usage status to sleep process 2023-07-10 02:32:13 +00:00
wuzhenghui 8ee25ecfe2 ci: increase timeout threshold to solve deepsleep wakestub example ci failure 2023-07-10 02:32:13 +00:00
Chen Jian Xing 09011f2b20 Merge branch 'bugfix/fix_esp32s3_tsens_v4.4' into 'release/v4.4'
fix(esp_wifi): Fix crash caused by tx_pwctrl_background call in ESP32S3(v4.4)

See merge request espressif/esp-idf!24541
2023-07-10 10:26:48 +08:00
Jiang Jiang Jian 262bf5c3a1 Merge branch 'bugfix/update_esp_rom_layout_v4.4' into 'release/v4.4'
esp_rom: fix rom layout issues (backport v4.4)

See merge request espressif/esp-idf!24641
2023-07-08 00:58:45 +08:00
Rahul Tank 15466cf14a fix(Nimble): Add debug code to print HCI events information
Added debug prints to collect information about LE events and
subevents
2023-07-07 19:47:43 +05:30
Mahavir Jain f66b878ec7 Merge branch 'protobuf-c/update_submodule_to_v4.4' into 'release/v4.4'
protobuf-c: Update submodule to v1.4.1 (v4.4)

See merge request espressif/esp-idf!24422
2023-07-07 18:57:24 +08:00
Rahul Tank e57938af72 Merge branch 'bufix/fix_assert_while_stack_deinit_v4.4' into 'release/v4.4'
fix(nimble): Fix assert due to controller event while stack deinit (v4.4)

See merge request espressif/esp-idf!24622
2023-07-07 18:07:03 +08:00
chenjianxing 4a56de7a30 fix(esp_wifi): Fix crash caused by tx_pwctrl_background call in ESP32S3. 2023-07-07 09:47:34 +00:00
Mahavir Jain 962621e5d7 Merge branch 'support/esp_coredump_logs_config_v4.4' into 'release/v4.4'
Optionally disable logs in espcoredump component (v4.4)

See merge request espressif/esp-idf!24484
2023-07-07 16:43:15 +08:00
Jiang Guang Ming efae7d0d04 esp_rom: fix rom layout issues 2023-07-07 01:32:28 -07:00
Vikram 6516e34f9f Added description to disable coredump logs to ram_usage.rst
Signed-off-by: Vikram <vikram.dattu@espressif.com>
2023-07-07 04:50:50 +00:00
Vikram 2225bfda04 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-07-07 04:50:50 +00:00
harshal.patil 3831b83ba7 protobuf-c: Update submodule to v1.4.1 2023-07-07 04:49:27 +00:00
zhangyanjiao e6ddb8ebec fix(wifi):
1. mesh: layer2 node will scan all channels when fixed root leave
2. show warning info when setting max connection num for softAP
2023-07-06 19:03:05 +08:00
Roshan Bangar 4258c409b0 fix(nimble): Fix assert due to controller event while stack deinit 2023-07-06 12:10:16 +05:30
Fu Hanxi 5efdd24f24 Merge branch 'bugfix/test_idf_tools_timeout' into 'release/v4.4'
tools: bugfix test_idf_tools timeout

See merge request espressif/esp-idf!24563
2023-07-05 20:24:40 +08:00
Marek Fiala 373e1200bf tools: bugfix test_idf_tools timeout 2023-07-05 09:25:38 +02:00
Alexey Gerenkov 9fcb551b8e gcov: Fix not linked gcov rtio functions 2023-07-03 13:05:45 +03:00
Linda 29c87e28cf fix a typo in api-reference/system/ota 2023-06-29 09:42:36 +00:00
Linda 9608acabd1 docs: fix a typo in api-guides/usb-otg-console 2023-06-29 09:42:28 +00:00
Marius Vikhammer 4ce0a6adc5 Merge branch 'docs/usb_example_removed_v4.4' into 'release/v4.4'
usb: fixed docs linking to deleted examples (v4.4)

See merge request espressif/esp-idf!24461
2023-06-29 10:33:31 +08:00
Marius Vikhammer 75c4b1f0bc usb: fixed docs linking to deleted examples 2023-06-28 16:15:28 +08:00
Jiang Jiang Jian 4daecccbec Merge branch 'bugfix/fix_deepsleep_saradc_leakage_by_sar_v4.4' into 'release/v4.4'
bugfix: fix adc current leakage by sar_adc on v4.4

See merge request espressif/esp-idf!24349
2023-06-28 10:05:55 +08:00
Jiang Jiang Jian a7c461032b Merge branch 'bugfix/hfp_packet_type_err_v4.4' into 'release/v4.4'
Revised (e)SCO configuration parameter sets (v4.4)

See merge request espressif/esp-idf!24348
2023-06-28 10:04:44 +08:00
Jiang Jiang Jian ddae3618dd Merge branch 'bugfix/alarm_not_free_when_a2dp_deinit_v4.4' into 'release/v4.4'
bugfix/Fixed the issue of alarm leak (v4.4)

See merge request espressif/esp-idf!24353
2023-06-28 10:04:26 +08:00
morris 4aee26535d Merge branch 'bugfix/vfs_uart_outof_bounds_read_v4.4' into 'release/v4.4'
vfs_uart: fix out-of-bounds read (v4.4)

See merge request espressif/esp-idf!24314
2023-06-26 11:28:42 +08:00
Roland Dobai 76122fbcc4 Merge branch 'bugfix/espcoredump_elf_sha256_check_v4.4' into 'release/v4.4'
elf: Fix for mismatched app ELF file not detected (v4.4)

See merge request espressif/esp-idf!23209
2023-06-25 23:28:27 +08:00
morris b1480d985b Merge branch 'backport/eth-start-spi-initialize-failure-v4.4' into 'release/v4.4'
Fix eth_start initializes spi bus with SPI_DMA_CH_AUTO (backport v4.4)

See merge request espressif/esp-idf!23817
2023-06-25 15:55:52 +08:00
morris 0a3f7e81a3 Merge branch 'feature/usb/update_cdc_msc_examples_v4.4' into 'release/v4.4'
usb: Update CDC and MSC host examples to use drivers from ESP Registry (backport v4.4)

See merge request espressif/esp-idf!23074
2023-06-25 15:53:57 +08:00
Rahul Tank a4c0dd84a7 Merge branch 'bugfix/fix_example_debug_print_level' into 'release/v4.4'
Nimble: Corrected debug level in example print (v4.4)

See merge request espressif/esp-idf!23861
2023-06-25 14:10:15 +08:00
Roland Dobai e13e3bff7e espcoredump: Fix Python style 2023-06-21 12:56:00 +00:00
Angus Gratton e32cca2ad1 loader: Fix handling of APP_RETRIEVE_LEN_ELF_SHA
With the default APP_RETRIEVE_LEN_ELF_SHA setting, core dump files only have a
truncated ELF SHA256 in them. Account for this when comparing the core dump SHA
with the app ELF SHA.
2023-06-21 12:56:00 +00:00
Angus Gratton 76e1212c8f elf: Fix SHA256 calculation
The comment says it returns the "SHA256 hash of the input ELF file", but this is
not true - it was the SHA256 hash of the output ELF file. As the parser may
change some bytes around in minor ways, these were often not the same.
2023-06-21 12:56:00 +00:00
Angus Gratton 2d26ace5e5 elf: Fix for mismatched app ELF file not detected.
The check that the app ELF file SHA256 matches the one stored in the core dump
would never fail, leading to gdb loading the wrong ELF file and either crashing
or producing misleading debug information.

Specifics:

The note_sec.name field was incorrectly read back as b'ESP_CORE_DUMP_INFO\x00E',
because the namesz length includes the terminating NUL byte and possible junk
padding bytes:
https://github.com/espressif/esp-idf/blob/master/components/espcoredump/src/core_dump_elf.c#L212

In addition, as 'note_sec.name' is a bytes object Python 3 would have never
successfully compared it with a string.
2023-06-21 12:56:00 +00:00
Roland Dobai 0f977b68bc Merge branch 'fix/ci_coredump_test_v4.4' into 'release/v4.4'
Tools: Remove IDF Monitor coredump tests (v4.4)

See merge request espressif/esp-idf!24328
2023-06-21 20:55:04 +08:00
Rahul Tank 47cb43576e Nimble: Corrected debug level in example print 2023-06-21 17:24:04 +05:30
Island 1caaee9d84 Merge branch 'feature/add_ext_adv_support_blufi_nimble_v4.4' into 'release/v4.4'
Nimble:Added change to expose addr resolution API outside stack_v4.4

See merge request espressif/esp-idf!23248
2023-06-21 19:39:54 +08:00
Jin Cheng 28747f432f Fixed the issue of alarm leak in hf-ag 2023-06-21 15:35:25 +08:00
Jin Cheng 028d551101 Fixed the issue of alarm leak in A2DP 2023-06-21 15:35:14 +08:00
wuzhenghui 9600767d2a bugfix: fix adc current leakage by sar_adc on v4.4 2023-06-21 14:08:25 +08:00
Jin Cheng 7837fd484e Revised (e)SCO configuration parameter sets 2023-06-21 14:06:16 +08:00
Rahul Tank 6e8dd38cee Nimble:Added change to expose addr resolution API outside stack_v4.4 2023-06-20 19:58:16 +05:30
Roland Dobai 61f4e00b87 Tools: Remove IDF Monitor coredump tests 2023-06-20 15:27:19 +02:00
Jiang Jiang Jian efdd0859f6 Merge branch 'bugfix/fix_some_ble_bugs_v4.4' into 'release/v4.4'
Fixed some BLE bugs (backport v4.4)

See merge request espressif/esp-idf!24283
2023-06-20 19:12:41 +08:00
Jiang Jiang Jian ebcb29bcf3 Merge branch 'bugfix/fix_esp32s3_psram_access_failed_in_dfs_v4.4' into 'release/v4.4'
esp_pm: fix esp32s3 psram access failed when dfs is enabled (backport v4.4)

See merge request espressif/esp-idf!24200
2023-06-20 17:43:07 +08:00
Wang Meng Yang 58544cfbca Merge branch 'feature/add_ext_adv_instance_check_v4.4' into 'release/v4.4'
NimBLE: Added ble_gap_ext_adv_active() to check if extended advertising instance is active or not (v4.4)

See merge request espressif/esp-idf!23546
2023-06-20 17:36:02 +08:00
Jiang Jiang Jian e0550972c0 Merge branch 'bugfix/fix_chip_broken_bug_in_monitor_mode_c3s2s3_to_v4.4' into 'release/v4.4'
ESP32S2/C3/S3: fixed S2 dangerous power parameters in sleep modes and support S2/C3/S3 different sleep mode(v4.4)

See merge request espressif/esp-idf!23758
2023-06-20 16:46:12 +08:00
Jiang Jiang Jian 13a2e49818 Merge branch 'bugfix/fix_Cache_Count_Flash_bug_v4.4' into 'release/v4.4'
cache: patch some rom cache api, rename those apis in ld (backport v4.4)

See merge request espressif/esp-idf!24293
2023-06-20 16:08:36 +08:00
KonstantinKondrashov d479407339 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-20 15:56:53 +08:00
Jiang Jiang Jian 167557829e Merge branch 'bugfix/install_keys_after_successful_4_of_4_tx_v4.4' into 'release/v4.4'
esp_wifi: Install keys after successful transmission of EAPOL 4/4 Message(backport v4.4)

See merge request espressif/esp-idf!23620
2023-06-20 14:14:24 +08:00
morris 564e20dd6b Merge branch 'refactor/improve_adc_power_maintanance_v4.4' into 'release/v4.4'
adc: improve power logic (v4.4)

See merge request espressif/esp-idf!23275
2023-06-20 10:52:46 +08:00
morris a6b8788688 touch_element: fix unintended integer division 2023-06-20 10:47:06 +08:00
morris c4cb13cfe7 usbh: fix invalid assert on desc_status 2023-06-20 10:47:06 +08:00
morris be5fff2364 vfs_uart: fix out-of-bounds read
when open uart device "/2" on chips only have 2 UART peripherals
2023-06-20 10:47:06 +08:00
morris ea9d916f2a Merge branch 'fix/usb_wakeup_resume' into 'release/v4.4'
[USBD] Fix usb resume bug on esp32sx (v4.4)

See merge request espressif/esp-idf!23589
2023-06-19 17:39:18 +08:00
wanglei c7d8e50fdb 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:55:37 +08:00
Shreyas Sheth 128aba4892 esp_wifi: Install keys after eapol and NVS store security values
1. Bugfix store authmode security in NVS
2. Install keys after successful transmission of EAPOL 4/4 Message
2023-06-18 02:48:15 +05:30
chenjianhua b8e4f091f6 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 17:21:33 +08:00
chenjianhua 35a14bf383 bluedroid: fixed default extended connection params 2023-06-16 16:28:07 +08:00
chenjianhua 8bb9b95b54 esp_hid: fixed ble hid battery level setting 2023-06-16 16:28:00 +08:00
zhiweijian 6d59258519 Fixed BLE disconnection failure on ESP32 2023-06-16 16:26:52 +08:00
zwj 1728b49d7f Fixed disconnection due to consecutive CRC errors in first 6 intervals 2023-06-16 16:26:44 +08:00
Roland Dobai 8b94183c9c Merge branch 'feature/submodules_sbom_v4.4' into 'release/v4.4'
tools: add sbom information for submodules (v4.4)

See merge request espressif/esp-idf!24244
2023-06-15 21:07:58 +08:00
wuzhenghui bf3de2368b ci: sync master flash_psram test and add access psram with DFS unity test 2023-06-15 14:15:05 +08:00
wuzhenghui d04a723f9a bugfix: use avaliable gpio for esp32s3 pm_trace 2023-06-15 14:15:05 +08:00
wuzhenghui 82bcd4dc7f bugfix: fix esp32s3 psram access failed when dfs is enabled 2023-06-15 14:15:01 +08:00
Frantisek Hrbata 7f9a5a8b71 tools: add sbom information for submodules
Conflicts:
- protobuf-c submodule version and hash changed to v1.4.0
- removed pytest dependency

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

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

sbom-version:
   submodule version

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

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

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

sbom-description:
   Project description.

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

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-15 06:45:17 +02:00
morris 2dfabd02a9 Merge branch 'bugfix/mcpwm_legacy_typo_v4.4' into 'release/v4.4'
mcpwm: fix typo in backward compatible macro name (v4.4)

See merge request espressif/esp-idf!24229
2023-06-15 10:13:04 +08:00
Aditya Patwardhan 6afa8e4347 Merge branch 'bugfix/aes_dma_align_issue_v4.4' into 'release/v4.4'
aes: fix DMA descriptor calculation for the alignment case (v4.4)

See merge request espressif/esp-idf!24095
2023-06-14 16:55:42 +08:00
morris 5ef69e8a63 mcpwm: fix typo in backward compatible macro name 2023-06-14 11:40:40 +08:00
Roland Dobai e33a1808d6 Merge branch 'feature/tools_add_ulp_linux_i686_toolchain_v4.4' into 'release/v4.4'
tools: add ULP toolchain for linux-i686 platform (v4.4)

See merge request espressif/esp-idf!24196
2023-06-13 20:47:57 +08:00
David Čermák b96c98accf Merge branch 'bugfix/eth_lan8720_ci_v4.4' into 'release/v4.4'
esp_eth: start/stop and L2 test stability improvements (v4.4)

See merge request espressif/esp-idf!22322
2023-06-13 16:42:07 +08:00
Jiang Jiang Jian a843cdebea Merge branch 'bugfix/fix_wps_with_sae_enabled_ap_v4.4' into 'release/v4.4'
esp_wifi: Fix WPS issue for WPA3+WPA2 mode(v4.4)

See merge request espressif/esp-idf!24156
2023-06-13 16:06:49 +08:00
Anton Maklakov 44b8882458 tools: add ULP toolchain for linux-i686 platform
Closes https://github.com/espressif/esp-idf/issues/11561
2023-06-13 12:50:38 +07:00
Jiang Jiang Jian aca729aea6 Merge branch 'bugfix/fix_blufi_compilation_issue_v4.4' into 'release/v4.4'
Blufi: Fixed compilation issue in blufi for nimble(v4.4)

See merge request espressif/esp-idf!24021
2023-06-13 10:56:21 +08:00
Jiang Jiang Jian 3d743d525c Merge branch 'feature/efuse_settings_v4.4' into 'release/v4.4'
hal: Explicit setting of efuse time settings (v4.4)

See merge request espressif/esp-idf!23727
2023-06-13 10:53:35 +08:00
Jiang Jiang Jian 4c1705975a Merge branch 'bugfix/spp_notify_v4.4' into 'release/v4.4'
NimBLE: Removed indicate flag from gatt db and added subscription case in spp_server example (v4.4)

See merge request espressif/esp-idf!23536
2023-06-13 10:53:11 +08:00
morris abb204fa89 Merge branch 'feature/add_log_when_mspi_timing_tuning_is_enabled_v4.4' into 'release/v4.4'
mspi: added timing tuning start, and success log (v4.4)

See merge request espressif/esp-idf!24055
2023-06-13 10:30:04 +08:00
Aditya Patwardhan 5d38b0238c Merge branch 'contrib/github_pr_11402_v4.4' into 'release/v4.4'
esp_ds: ignore releasing mutex if not called from same task (GitHub PR) (v4.4)

See merge request espressif/esp-idf!23842
2023-06-13 01:21:13 +08:00
Ivan Grokhotkov 8bbe92ed90 Merge branch 'bugfix/usb_serial_jtag_select_poll_crash_v4.4' into 'release/v4.4'
vfs: select sanity NULL check (v4.4)

See merge request espressif/esp-idf!23948
2023-06-12 19:22:07 +08:00
Ivan Grokhotkov 4b05ffb03e Merge branch 'fix/sdio_sd_cards_not_detected_correctly_v4.4' into 'release/v4.4'
sdmmc: sdio combination cards correct setup (v4.4)

See merge request espressif/esp-idf!23480
2023-06-12 19:21:33 +08:00
Armando 00bd59dc68 mspi: added timing tuning start, and success log 2023-06-12 16:12:20 +08:00
Krzysztof Budzynski e14ebdcaa5 Merge branch 'docs/fix_error_in_esp32-s2-devkitc-1_pin_layout_diagram_v4.4' into 'release/v4.4'
Docs/Fix error in esp32-s2-devkitc-1 pin layout diagram (v4.4)

See merge request espressif/esp-idf!24118
2023-06-12 11:56:02 +08:00
morris f1ba6ced19 Merge branch 'bugfix/fix_mspi_octal_psram_timing_tuning_point_fallback_id_v4.4' into 'release/v4.4'
mspi: modified mspi 80mhz octal psram timing tuning point fallback id on s3 (v4.4)

See merge request espressif/esp-idf!23693
2023-06-12 10:50:12 +08:00
morris d9d5327dfa Merge branch 'bugfix/add_len_check_per_spi_master_transaction_v4.4' into 'release/v4.4'
spi master: added transaction length check to refuse longer than hardware supported length (v4.4)

See merge request espressif/esp-idf!23749
2023-06-12 10:47:59 +08:00
Kapil Gupta f46518e42e esp_wifi: Fix WPS issue for WPA3+WPA2 mode 2023-06-09 18:06:56 +05:30
Jiang Jiang Jian ad08d94ed3 Merge branch 'bugfix/nvs_softap_pmk_v4.4' into 'release/v4.4'
esp_wifi: fix softap nvs <ssid,password,pmk> not matching issue(v4.4)

See merge request espressif/esp-idf!23820
2023-06-09 19:45:28 +08:00
Rahul Tank b7e5be07de Blufi: Fixed compilation issue in blufi for nimble 2023-06-09 17:10:35 +05:30
Jiang Jiang Jian 7053e483ea Merge branch 'feature/add_bluetooth_nimble_lightsleep_example_v4.4' into 'release/v4.4'
bt: Added an example of Bluetooth using light sleep(v4.4)

See merge request espressif/esp-idf!23694
2023-06-09 19:20:31 +08:00
Jiang Jiang Jian b4c06edfd6 Merge branch 'bugfix/fix_bleqabr23_250_v4.4' into 'release/v4.4'
Fixed crash when controller initialization fails due to insufficient memory (backport 4.4)

See merge request espressif/esp-idf!24090
2023-06-09 19:19:28 +08:00
Jiang Jiang Jian 4a4fea5746 Merge branch 'bugfix/hfp_ag_idx_invalid_v4.4' into 'release/v4.4'
bt: Fixed out of bounds access due to variable length array(v4.4)

See merge request espressif/esp-idf!23667
2023-06-09 19:18:58 +08:00
Jiang Jiang Jian ff4ae8df34 Merge branch 'bugfix/hf_cind_ind_index_v4.4' into 'release/v4.4'
bt: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator(v4.4)

See merge request espressif/esp-idf!23562
2023-06-09 19:18:16 +08:00
Jiang Jiang Jian 01cc59c000 Merge branch 'bugfix/a2dp_source_app_state_error_v4.4' into 'release/v4.4'
bt: Fixed the issue that the a2dp source would not send the media start command due to the connection initiated by the peer device(v4.4)

See merge request espressif/esp-idf!23555
2023-06-09 19:17:39 +08:00
Jiang Jiang Jian 4462c00107 Merge branch 'bugfix/a2dp_source_crash_connect_to_Bose_speaker_v4.4' into 'release/v4.4'
Bugfix/a2dp source crash connect to bose speaker (v4.4)

See merge request espressif/esp-idf!23350
2023-06-09 19:17:10 +08:00
Jiang Jiang Jian c125f0a9f3 Merge branch 'bugfix/mbo_ie_absent_prob_req_v44' into 'release/v4.4'
wpa_supplicant : Add MBO ie in probe request.(backport v4.4)

See merge request espressif/esp-idf!24099
2023-06-09 19:16:46 +08:00
Jiang Jiang Jian bc05c74022 Merge branch 'bugfix/dpp_retry_start_listening_issue_v4.4' into 'release/v4.4'
esp_dpp: Fix retry with esp_supp_dpp_start_listen after failure (v4.4)

See merge request espressif/esp-idf!23596
2023-06-09 19:15:45 +08:00
Jiang Jiang Jian 5fb50f6848 Merge branch 'bugfix/fix_wakeup_failed_if_powerdown_flash_in_lightsleep_v4.4' into 'release/v4.4'
Power Management: fixed flash funcs called in sleep wakeup process (backport v4.4)

See merge request espressif/esp-idf!24007
2023-06-09 19:14:37 +08:00
Jiang Jiang Jian 2771f0cb0b Merge branch 'bugfix/close_phy_tsens_before_sleep_v4.4' into 'release/v4.4'
sleep: fix deepsleep current leakage caused by phy_tsens (backport v4.4)

See merge request espressif/esp-idf!23908
2023-06-09 19:13:50 +08:00
Jiang Jiang Jian 72007647cd Merge branch 'feature/example_deep_sleep_wake_stub_backport_v4.4' into 'release/v4.4'
example: add deepsleep_wake stub example (backport v4.4)

See merge request espressif/esp-idf!23360
2023-06-09 19:11:20 +08:00
Zim Kalinowski b04cd385f8 Merge branch 'bugfix/sync-contribution-guide_v4.4' into 'release/v4.4'
docs: updated contribution agreement (v4.4)

See merge request espressif/esp-idf!23837
2023-06-09 13:48:09 +08:00
Jiang Jiang Jian f583d58779 Merge branch 'bugfix/fix_reduce_phy_tx_power_when_brownout_reset_invisible_issue' into 'release/v4.4'
fix reduce phy tx power when brownout reset invisible issue

See merge request espressif/esp-idf!23359
2023-06-09 12:04:39 +08:00
Jiang Jiang Jian e6df66522a Merge branch 'feature/usb_host_interface_claim_debug_info_v4.4' into 'release/v4.4'
USB Host: better debugging information during usb_host_interface_claim() (backport v4.4)

See merge request espressif/esp-idf!23445
2023-06-09 12:02:59 +08:00
Jiang Jiang Jian 61a0c12c29 Merge branch 'lwip/dhcp_fine_tmr_bug_fix_backport' into 'release/v4.4'
lwip/dhcp: Fixed ondemand fine timers leakage bug (v4.4)

See merge request espressif/esp-idf!23315
2023-06-09 12:01:44 +08:00
Roland Dobai 06c08def3d Merge branch 'feature/extend_proj_desc_json_v4.4' into 'release/v4.4'
extend information in project_description.json (v4.4)

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

Added fields

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

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

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

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

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

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

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

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

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-08 15:32:36 +02:00
morris 3f0ccda84e Merge branch 'contrib/github_pr_11113_v4.4' into 'release/v4.4'
Fix usb enumeration stage error for some device (GitHub PR) (v4.4)

See merge request espressif/esp-idf!23334
2023-06-08 18:00:27 +08:00
Wang Ning d1eb933948 fix_error_in_esp32-s2-devkitc-1_pin_layout_diagram 2023-06-08 16:20:46 +08:00
Marius Vikhammer 3cba50e0a1 Merge branch 'contrib/github_pr_11215_v4.4' into 'release/v4.4'
improve thread safety in esp_timer (GitHub PR) (v4.4)

See merge request espressif/esp-idf!23541
2023-06-08 16:00:14 +08:00
Marius Vikhammer b0729b5d48 Merge branch 'bugfix/mktime_tzset_v4.4' into 'release/v4.4'
core-system/newlib: updated docs to reflect that tzset() needs to be called (v4.4)

See merge request espressif/esp-idf!23901
2023-06-08 15:59:53 +08:00
Marius Vikhammer 63dfda0446 Merge branch 'bugfix/esp32_pico_v3_2_chip_info_v4.4' into 'release/v4.4'
system: fix esp32 chip info not listing esp32 pico v3-02 as having embedded spiram (v4.4)

See merge request espressif/esp-idf!23395
2023-06-08 15:56:43 +08:00
Marius Vikhammer 92549f53a9 Merge branch 'bugfix/gdma_log_nano_v4.4' into 'release/v4.4'
gdma: fixed crash from logging when using newlib nano (v4.4)

See merge request espressif/esp-idf!23587
2023-06-08 15:55:08 +08:00
Roland Dobai d638b7c53d Merge branch 'monitor/new_kernel-4.4' into 'release/v4.4'
bug(monitor/console_reader): replace TIOCSTI with busy wait to suppport kernel > 6.2 (4.4)

See merge request espressif/esp-idf!23352
2023-06-08 15:54:25 +08:00
Roland Dobai ead4536d60 Merge branch 'feature/update-OpenOCD-to-v0.12.0-esp32-20230419_v4.4' into 'release/v4.4'
tools: update OpenOCD version to v0.12.0-esp32-20230419 (v4.4)

See merge request espressif/esp-idf!23679
2023-06-08 15:53:37 +08:00
Marius Vikhammer 1a7d855815 Merge branch 'contrib/github_pr_11394_v4.4' into 'release/v4.4'
docs: Fix typo in Linux/macOS getting started docs (GitHub PR) (v4.4)

See merge request espressif/esp-idf!23734
2023-06-08 15:53:08 +08:00
Roland Dobai 5313760492 Merge branch 'feature/remove_coredump_tests_v4.4' into 'release/v4.4'
coredump: remove tests (moved to esp-coredump repo) (v4.4)

See merge request espressif/esp-idf!23769
2023-06-08 15:52:15 +08:00
Roland Dobai 736b37295e Merge branch 'fix/idf_tools_certificate_v4.4' into 'release/v4.4'
Tools: Update the certificate of idf_tools.py (v4.4)

See merge request espressif/esp-idf!23930
2023-06-08 15:51:45 +08:00
Marius Vikhammer 51144589da Merge branch 'update/version_4_4_5' into 'release/v4.4'
Update version to 4.4.5

See merge request espressif/esp-idf!24110
2023-06-08 15:25:33 +08:00
jgujarathi 62b672158a wpa_supplicant : Fix scan results for GCMP and GCMP-256 cipher.
Add support for recognising GCMP and GCMP-256 ciphers if used by AP.
Update the scan example to show the correct cipher.
2023-06-07 10:22:03 +05:30
jgujarathi 2f630f5e91 wpa_supplicant : Add MBO ie in probe request.
Adds the MBO information element in the probe request frame by resetting
scan_ie after set_config is done.
2023-06-07 10:21:52 +05:30
Mahavir Jain 98c53234fc aes: fix DMA descriptor calculation for the alignment case
The number of the DMA descriptors allocated for certain length (e.g.,
8176) were not sufficient (off by 1 error). This used to result in the
dynamic memory corruption as the region was modified beyond the
allocated range.

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

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

Closes https://github.com/espressif/esp-idf/issues/11310
2023-06-07 09:20:20 +05:30
chenjianhua 3c606bf79c Update bt lib for ESP32-C3 and ESP32-S3
- Fixed crash when controller initialization fails due to insufficient memory
2023-06-07 11:19:38 +08:00
wuzhenghui 2566e78e03 bugfix: fix wakeup failed if powerdown flash in lightsleep 2023-05-31 19:23:16 +08:00
Paul Guyot bf8f867522 esp_system: Fix a race-condition in esp_ipc_isr (in QEMU env)
The race condition is very unlikely on real hardware but can be observed with
qemu under heavy load.
Also add missing `memw` instructions which are generated by the C compiler but
absent in the assembly code.

Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Signed-off-by: KonstantinKondrashov <konstantin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/11447
Closes https://github.com/espressif/esp-idf/issues/11433
2023-05-30 23:04:31 +08:00
xiehanxin 7312f3737d add wake up interval 2023-05-30 20:31:16 +08:00
xiongweichao ebfe2d8f49 bt: Added an example of Bluetooth using light sleep 2023-05-30 20:28:49 +08:00
xiongweichao 0ba101dfac ble: Fixed bluetooth can only use main XTAL as low power clock source due to configuration on ESP32S3 2023-05-30 20:27:06 +08:00
Adam Múdry da823eddf5 vfs: select sanity NULL check
https://github.com/espressif/esp-idf/issues/9964
2023-05-26 13:46:40 +02:00
Roland Dobai a9c63eb237 Tools: Update the certificate of idf_tools.py 2023-05-25 16:30:22 +02:00
wuzhenghui d33c693cfa bugfix: close phy_tsens before deepsleep 2023-05-25 12:05:54 +08:00
Marius Vikhammer aab35a2126 core-system/newlib: updated docs to reflect that tzset() needs to be called before localtime/mktime()
According to the posix standard localtime/mktime should use timezone information as though localtime/mktime() calls tzset(),
but this is not the case in older versions of Newlib.

Closes https://github.com/espressif/esp-idf/issues/11455
2023-05-24 16:37:29 +08:00
Armando d915304189 mspi: modified mspi 80mhz octal psram timing tuning point fallback id on s3 2023-05-19 09:30:37 +00:00
Armando 61ecbb44a5 spi: added an API to get max transaction length and use in spi lcd driver 2023-05-19 09:30:06 +00:00
Armando 4e67ea0fe3 spi: added transaction length check to refuse longer than hardware supported length 2023-05-19 09:30:06 +00:00
Christoph Baechler d007b0ebb2 esp_ds: ignore releasing mutex if not called from same task 2023-05-19 08:32:00 +05:30
Zim Kalinowski df84708f61 docs: updated contribution agreement 2023-05-18 16:46:08 +02:00
chenjianxing 28fa2f88a1 esp_wifi: fix softap nvs <ssid,password,pmk> not matching issue 2023-05-18 15:50:41 +08:00
xieqinan 38de96bb12 initialize eth_start() with SPI_DMA_CH_AUTO
Closes https://github.com/espressif/esp-idf/issues/11083
2023-05-18 15:20:34 +08:00
Alexey Lapshin c1445ff243 coredump: remove tests (moved to esp-coredump repo) 2023-05-16 13:04:27 +08:00
hongshuqing 066a1ac0ac fix chip broken bug in monitor mode c3s2s3 to v4.4 2023-05-15 19:36:25 +08:00
Nihal Gonsalves 514b88a8f0 Fix typo in Linux/macOS getting started docs
`hello_word` -> `hello_world`
2023-05-15 09:38:38 +08:00
KonstantinKondrashov daba1560a6 hal: Explicit setting of efuse time settings
EFUSE_PWR_ON_NUM in C3 has default value = 0x2880, now = 0x3000
2023-05-13 00:06:35 +08:00
KonstantinKondrashov 8c11859a2f test_apps: Fix unicore_bootloader test 2023-05-11 06:07:19 +00:00
KonstantinKondrashov 037b70c253 ci: Increase parallel count for Example_GENERIC and ESP32S3 2023-05-11 06:07:19 +00:00
KonstantinKondrashov 20740ce0da ttfw_idf: Extend bootloader_flash API 2023-05-11 06:07:19 +00:00
KonstantinKondrashov a2ffc9374c test_apps: Test multicore app can be run by unicore bootloader 2023-05-11 06:07:19 +00:00
KonstantinKondrashov 1b608a1c07 esp_system: Do not rely on bootloader cache settings, do cache settings unconditionally at startup app
It makes multicore app runnable by unicore bootloader

Closes https://github.com/espressif/esp-idf/issues/10714
2023-05-11 06:07:19 +00:00
KonstantinKondrashov 42a6b47aa8 hal: Adds cache hal 2023-05-11 06:07:19 +00:00
Alexey Gerenkov e80b3cace4 tools: update OpenOCD version to v0.12.0-esp32-20230419 2023-05-10 13:19:24 +03:00
xiongweichao f3b2e22d74 bt: Deleted some redundant variables in HFP_AG 2023-05-10 10:24:54 +08:00
xiongweichao 074f0ad41c bt: Fixed the problem of out-of-bounds access caused by the variable-length array introduced in 3268075231
Closes https://github.com/espressif/esp-idf/issues/11264
2023-05-10 10:24:50 +08:00
xiongweichao e3263ad608 bt: Fixed codec mode error in ESP_HF_WBS_RESPONSE_EVT 2023-05-10 10:24:45 +08:00
isha.pardikar@espressif.com a2eba934a6 NimBLE: Removed indicate flag from gatt db, added subscription case and corrected indentation
in spp_server example.
2023-05-09 11:00:54 +00:00
Marius Vikhammer e0e913839f gdma: fixed crash from logging when using newlib nano
Newlib nano printf formatting do not support %z, and will crash if such an identifier
is followed by a %s indentifier.

Closes https://github.com/espressif/esp-idf/issues/9631
2023-05-06 13:49:31 +08:00
jasta 4353014715 esp_dpp: Fix retry with esp_supp_dpp_start_listen after failure
This fixes a subtle bug in which ESP_ERR_DPP_TX_FAILURE errors would
call esp_supp_dpp_stop_listen which sets the s_dpp_stop_listening flag
to true.  Subsequent attempts to restart listening with
esp_supp_dpp_start_listen then only attempt to listen once more for
500ms before reading the s_dpp_stop_listening flag again and giving up.

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

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

Closes https://github.com/espressif/esp-idf/pull/10865
2023-05-05 14:21:20 +05:30
muhaidong 76540defc1 fix reduce phy tx power when brownout reset invisible issue
Closes https://github.com/espressif/esp-idf/issues/11252
2023-05-04 21:52:42 +08:00
xiongweichao 017517b804 bt: Fixed the inconsistency between the indicator event received by the HF application layer and the actually received indicator.
Closes https://github.com/espressif/esp-idf/issues/6486
2023-05-04 14:16:12 +08:00
xiongweichao 0a4082642e bt: Fixed the issue that the a2dp source would not send the media start command due to the connection initiated by the peer device
Closes https://github.com/espressif/esp-idf/issues/11170
2023-05-04 12:06:17 +08:00
isha.pardikar@espressif.com 04798f62ab NimBLE: Added ble_gap_ext_adv_active() to check if extended advertising instance is active or not. 2023-05-03 14:44:28 +05:30
Jens Gutermuth 9fa30d44f3 improve thread safety in esp_timer
Inadequate locking in the esp_timer component allowed corruption
of the s_timers linked list:

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

The last step results in a loop in the s_timers list, which causes
an infinite loop when iterated. This change always locks the
list before checking if the timer is already armed avoiding
the data race.
2023-05-02 20:22:51 +02:00
paul356 bb3c971e99 fix usb resume bug on esp32sx 2023-04-27 10:47:46 +08:00
Adam Múdry 2928cbf7ec sdmmc: sdio combination cards correct setup
Co-authored-by: Mau Abata <mauabata@gmail.com>
Closes https://github.com/espressif/esp-idf/issues/9822
Closes https://github.com/espressif/esp-idf/issues/10280
2023-04-26 13:28:20 +02:00
Roman Leonov 8a311cf8ad usb_host: better debugging information during hcd_pipe_alloc() when usb_host_interface_claim() is being fulfiled. 2023-04-25 12:52:45 +02:00
Armando 2a0a4fadd9 sar: init sar periph power state 2023-04-25 14:03:29 +08:00
Abhik Roy c781fda86f lwip/dhcp: Fixed ondemand fine timers leakage bug.
Fixed ondemand fine timers bug, that allowed
only one dhcp client to run at a time without issue.
2023-04-24 18:09:59 +10:00
Marius Vikhammer 67f7c2f96a system: fix esp32 chip info not listing esp32 pico v3-02 as having embedded spiram
Closes https://github.com/espressif/esp-idf/issues/11233
2023-04-24 13:53:42 +08:00
wuzhenghui ea02b6dfec doc: update deep_sleep_wake_stub readme 2023-04-24 11:37:46 +08:00
wuzhenghui c78fb1602e feature: add wake up time cost info to deep_sleep_wake_stub example 2023-04-24 11:37:46 +08:00
jiangguangming ede29b4812 docs: add wake stub example link to deep-sleep-stub.rst 2023-04-24 11:37:46 +08:00
jiangguangming fc30491ab0 ld: fix rtc.data rtc.bss section issues
1. rtc.data section: should include sbss srodata in rtc_wake_stub*.*
2. rtc.bss section: move rtc .bss .bss.* from rtc.data to rtc.bss
2023-04-24 11:37:46 +08:00
jiangguangming 85064f164f use LL function to get wakeup cause 2023-04-24 11:37:46 +08:00
jiangguangming 96f3c2bac6 rtc_time.c: simplify the rtc_time_get with LL function 2023-04-24 11:37:46 +08:00
jiangguangming 86905af90d deep sleep example: typo corrected in readme 2023-04-24 11:37:46 +08:00
jiangguangming 738b486b31 ci: add ci example test 2023-04-24 11:37:46 +08:00
jiangguangming b733eb0adb example: add example deep sleep wake stub 2023-04-24 11:37:42 +08:00
jiangguangming cafcb219de hal: add rtc_cntl LL function for wake stub 2023-04-23 14:29:25 +08:00
Peter Dragun 4826182e60 bug(monitor/console_reader): replace TIOCSTI with busy wait to suppport kernel > 6.2
Closes https://github.com/espressif/esp-idf/issues/11027
2023-04-21 15:52:13 +02:00
Jin Cheng 8704eb1713 fix a2dp source crash when connect to Bose speaker 2023-04-21 21:20:57 +08:00
Darian Leung fd2d4a83e2 usb_host: Update docs and comments regarding first configuration enumeration
This commit updates some comments and documentation regarding changes made in
PR https://github.com/espressif/esp-idf/pull/11113.
2023-04-21 12:53:27 +08:00
Jason 8bebfaa6ee Fix usb enumeration stage error for some device 2023-04-21 12:53:27 +08:00
wuzhenghui 941b6bf03d bugfix: fix deepsleep saradc leakage 2023-04-20 11:43:13 +08:00
Li Shuai 6356453f8d sleep: fix sleep current issue caused by sar adc 2023-04-20 11:43:13 +08:00
Armando 1b2a254d71 adc: improve power logic 2023-04-20 10:42:12 +08:00
Tomas Rezucha e09fc3e474 usb: Update CDC and MSC host examples to use drivers from ESP Registry 2023-04-06 08:12:43 +02:00
Ondrej Kosta a0c87d63e3 esp_eth: possible start/stop issue fixed
ESP32 EMAC could hang when stopped/started multiple times at 10Mbps speed mode
2023-02-10 16:23:20 +01:00
869 changed files with 21444 additions and 14558 deletions
+8 -2
View File
@@ -12,7 +12,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
@@ -62,12 +62,17 @@ variables:
CLANG_STATIC_ANALYSIS_IMAGE: "${CI_DOCKER_REGISTRY}/clang-static-analysis:v4.4-1-2"
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:3"
# target test config file, used by assign test job
# target test config file, used by scan test and 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"
# Set this variable to specify the file name for the known failure cases.
KNOWN_FAILURE_CASES_FILE_NAME: "4.4.txt"
IDF_CI_BUILD: 1
.setup_tools_unless_target_test: &setup_tools_unless_target_test |
if [[ -n "$IDF_DONT_USE_MIRRORS" ]]; then
export IDF_MIRROR_PREFIX_MAP=
@@ -140,6 +145,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'
+4 -3
View File
@@ -48,7 +48,7 @@
- `example_test[_esp32/esp32s2/...]`
- `fuzzer_test`
- `host_test`
- `integration_test[_wifi/ble]`
- `integration_test`
- `iperf_stress_test`
- `macos`
- `macos_test`
@@ -136,10 +136,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
-66
View File
@@ -103,69 +103,3 @@ assign_unit_test:
BUILD_DIR: ${CI_PROJECT_DIR}/tools/unit-test-app/builds
script:
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py $TEST_TYPE $TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_DIR/test_configs
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
artifacts:
paths:
- $TEST_DIR/test_configs
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
update_test_cases:
extends: .rules:ref:master-schedule
stage: assign_test
image: $CI_DOCKER_REGISTRY/ubuntu-test-env
tags:
- deploy_test
needs:
- build_esp_idf_tests_cmake_esp32
- build_esp_idf_tests_cmake_esp32s2
- build_esp_idf_tests_cmake_esp32s3
- build_esp_idf_tests_cmake_esp32c3
artifacts:
when: always
paths:
- ${CI_PROJECT_DIR}/test-management/*.log
expire_in: 1 week
variables:
SUBMODULES_TO_FETCH: "components/esptool_py/esptool"
UNIT_TEST_DIR: "${CI_PROJECT_DIR}/components/idf_test/unit_test"
BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
PYTHONPATH: ${CI_PROJECT_DIR}/auto_test_script/packages
PYTHON_VER: 3.7.7
script:
- export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8)
- retry_failed git clone $TEST_MANAGEMENT_REPO
- python $CHECKOUT_REF_SCRIPT test-management test-management
- cd test-management
- echo $BOT_JIRA_ACCOUNT > ${BOT_ACCOUNT_CONFIG_FILE}
# update unit test cases
- export UNIT_TEST_CASE_FILES=$(find $UNIT_TEST_DIR -maxdepth 1 -name "*.yml" | xargs)
- python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT unity -d $UNIT_TEST_CASE_FILES -r $GIT_SHA
# update example test cases
- python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT tiny_test_fw -d ${CI_PROJECT_DIR}/examples -r $GIT_SHA
- python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT tiny_test_fw -d ${CI_PROJECT_DIR}/tools/test_apps -r $GIT_SHA
# organize test cases
- python OrganizeTestCases.py $JIRA_TEST_MANAGEMENT_PROJECT
-38
View File
@@ -51,44 +51,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_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_template
dependencies: # set dependencies to null to avoid missing artifacts issue
-25
View File
@@ -65,15 +65,6 @@
- "build:{0}"
- build:target_test
build:integration_test:
labels:
- build
patterns:
- build_components
- build_system
included_in:
- build:target_test
####################
# Target Test Jobs #
####################
@@ -113,22 +104,6 @@ build:integration_test:
- "build:component_ut-{0}"
- build:target_test
"test:integration_test_{0}":
matrix:
- - wifi
- ble
labels:
- integration_test_{0}
- integration_test
- target_test
patterns:
- integration_test_{0}
# - maybe others
included_in:
- test:integration_test
- build:integration_test
- build:target_test
"test:host_test":
labels:
- host_test
+3 -37
View File
@@ -9,49 +9,15 @@ 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
tags:
- deploy_test
artifacts:
when: always
paths:
- ${CI_PROJECT_DIR}/test-management/*.log
# save all test logs as artifacts, make it easier to track errors
- ${CI_PROJECT_DIR}/TEST_LOGS
expire_in: 1 mos
variables:
UNIT_TEST_CASE_FILE: "${CI_PROJECT_DIR}/components/idf_test/unit_test/TestCaseAll.yml"
BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script"
script:
- add_gitlab_ssh_keys
- export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8)
- export REV_COUNT=$(git rev-list --count ${PIPELINE_COMMIT_SHA} --)
- export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})"
# artifacts of job update_test_cases creates test-management folder
# we need to remove it so we can clone test-management folder again
- rm -rf test-management
- 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}
# update test results
- python3 ImportTestResult.py -r "$GIT_SHA (r${REV_COUNT})" -j $JIRA_TEST_MANAGEMENT_PROJECT -s "$SUMMARY" -l CI -p ${CI_PROJECT_DIR}/TEST_LOGS --pipeline_url ${CI_PIPELINE_URL}
check_submodule_sync:
extends:
- .deploy_job_template
+6 -1
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_FULL || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*docs_full(?:,[^,\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
+8 -18
View File
@@ -192,9 +192,17 @@ test_idf_tools:
- export PATH=$(p=$(echo $PATH | tr ":" "\n" | grep -v "/root/.espressif/tools\|/opt/espressif" | tr "\n" ":"); echo ${p%:})
- cd ${IDF_PATH}/tools/test_idf_tools
- ./test_idf_tools.py
test_install_python_env:
extends: .host_test_template
script:
# Test for create virtualenv. It must be invoked from Python, not from virtualenv.
# Remove tools gdbgui, pygdbmi, python-socketio, jinja2, itsdangerous, pygdbmi for virtualenv test to reduce virtualenv setup time
# since they are not necessary for this test and are tested elsewhere
- sed -E -i '/(^gdbgui|^pygdbmi|^python-socketio|^jinja2|^itsdangerous|^pygdbmi)/d' $IDF_PATH/requirements.txt
- cd ${IDF_PATH}/tools
- python3 ./idf_tools.py install-python-env
timeout: 4 hours # this requires longer timeout
.test_efuse_table_on_host_template:
extends: .host_test_template
@@ -235,24 +243,6 @@ test_efuse_table_on_host_esp32h2:
variables:
IDF_TARGET: esp32h2
test_espcoredump:
extends: .host_test_template
artifacts:
when: always
paths:
- components/espcoredump/test/**/.coverage
- components/espcoredump/test/**/output
expire_in: 1 week
variables:
IDF_COREDUMP_ELF_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/idf/idf-coredump-elf.git"
IDF_COREDUMP_ELF_TAG: idf-20210915
# install CMake version specified in tools.json
SETUP_TOOLS_LIST: "all"
script:
- retry_failed git clone ${IDF_COREDUMP_ELF_REPO} -b $IDF_COREDUMP_ELF_TAG
- cd ${IDF_PATH}/components/espcoredump/test/
- ./test_espcoredump.sh ${CI_PROJECT_DIR}/idf-coredump-elf
test_logtrace_proc:
extends: .host_test_template
artifacts:
+69
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
+3 -1
View File
@@ -24,13 +24,15 @@ check_pre_commit_master_release:
- .rules:protected
script:
- git diff-tree --no-commit-id --name-only -r $PIPELINE_COMMIT_SHA | xargs pre-commit run --files
- pre-commit run --hook-stage post-commit validate-sbom-manifest
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
- pre-commit run --hook-stage post-commit validate-sbom-manifest
check_version:
# Don't run this for feature/bugfix branches, so that it is possible to modify
+15 -88
View File
@@ -49,8 +49,6 @@
- "tools/ci/test_build_system*.sh"
.patterns-custom_test: &patterns-custom_test
- "components/espcoredump/**/*"
- "tools/ci/python_packages/gitlab_api.py"
- "tools/ci/python_packages/tiny_test_fw/**/*"
- "tools/ci/python_packages/ttfw_idf/**/*"
@@ -87,20 +85,6 @@
- "components/**/test_apps/**/*"
.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/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/**/*"
- "components/esp_wifi/lib"
- "components/esp_phy/lib"
.patterns-host_test: &patterns-host_test
- ".gitlab/ci/host-test.yml"
@@ -190,13 +174,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"'
@@ -214,10 +204,16 @@
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
.rules:dev:
rules:
- <<: *if-trigger
@@ -327,15 +323,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'
@@ -638,23 +625,6 @@
- <<: *if-dev-push
changes: *patterns-example_test
.rules:build:integration_test:
rules:
- <<: *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
.rules:build:macos:
rules:
- <<: *if-protected
@@ -683,9 +653,6 @@
- <<: *if-label-example_test_esp32c3
- <<: *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-target_test
- <<: *if-label-unit_test
@@ -706,10 +673,6 @@
changes: *patterns-custom_test
- <<: *if-dev-push
changes: *patterns-example_test
- <<: *if-dev-push
changes: *patterns-integration_test_ble
- <<: *if-dev-push
changes: *patterns-integration_test_wifi
- <<: *if-dev-push
changes: *patterns-unit_test
@@ -970,42 +933,6 @@
- <<: *if-dev-push
changes: *patterns-host_test
.rules:test:integration_test:
rules:
- <<: *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
.rules:test:integration_test_ble:
rules:
- <<: *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-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
.rules:test:submodule:
rules:
- <<: *if-protected
+29 -292
View File
@@ -31,10 +31,11 @@
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# git clone the known failure cases repo, run test
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- pip install minio
- python tools/ci/get_known_failure_cases_file.py
# run test
- cd tools/ci/python_packages/tiny_test_fw/bin
- run_cmd python Runner.py $TEST_CASE_PATH -c $CONFIG_FILE -e $ENV_FILE --known_failure_cases_file $CI_PROJECT_DIR/known_failure_cases/known_failure_cases.txt
- run_cmd python Runner.py $TEST_CASE_PATH -c $CONFIG_FILE -e $ENV_FILE --known_failure_cases_file $CI_PROJECT_DIR/${KNOWN_FAILURE_CASES_FILE_NAME}
.example_test_template:
extends: .target_test_job_template
@@ -96,6 +97,12 @@ example_test_001B:
- ESP32
- Example_EthKitV1
example_test_httpbin:
extends: .example_test_esp32_template
tags:
- ESP32
- httpbin
example_test_001B_V3:
extends: .example_test_esp32_template
tags:
@@ -357,7 +364,6 @@ test_app_test_003:
test_app_test_004:
extends: .test_app_esp32s2_template
parallel: 2
tags:
- ESP32S2
- Example_GENERIC
@@ -368,6 +374,12 @@ test_app_test_005:
- ESP32C3
- Example_GENERIC
test_app_test_006:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- Example_GENERIC
test_app_test_esp32_generic:
extends: .test_app_esp32_template
parallel: 5
@@ -395,17 +407,11 @@ test_app_test_flash_psram_f8r8:
- ESP32S3
- MSPI_F8R8
test_app_test_xip_psram_esp32s2:
extends: .test_app_esp32s2_template
test_app_test_flash_psram_esp32:
extends: .test_app_esp32_template
tags:
- ESP32S2
- Example_GENERIC
test_app_test_xip_psram_esp32s3:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- MSPI_F4R8
- ESP32
- psram
.component_ut_template:
extends: .target_test_job_template
@@ -422,10 +428,11 @@ test_app_test_xip_psram_esp32s3:
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# git clone the known failure cases repo, run test
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- pip install minio
- python tools/ci/get_known_failure_cases_file.py
# run test
- cd tools/ci/python_packages/tiny_test_fw/bin
- run_cmd python Runner.py $COMPONENT_UT_DIRS -c $CONFIG_FILE -e $ENV_FILE --known_failure_cases_file $CI_PROJECT_DIR/known_failure_cases/known_failure_cases.txt
- run_cmd python Runner.py $COMPONENT_UT_DIRS -c $CONFIG_FILE -e $ENV_FILE --known_failure_cases_file $CI_PROJECT_DIR/${KNOWN_FAILURE_CASES_FILE_NAME}
.component_ut_esp32_template:
extends:
@@ -510,7 +517,7 @@ UT_001:
UT_002:
extends: .unit_test_esp32_template
parallel: 15
parallel: 16
tags:
- ESP32_IDF
- UT_T1_1
@@ -696,7 +703,7 @@ UT_046:
UT_047:
extends: .unit_test_esp32s2_template
parallel: 7
parallel: 8
tags:
- ESP32S2_IDF
- UT_T1_1
@@ -715,7 +722,7 @@ UT_S2_SDSPI:
UT_C3:
extends: .unit_test_esp32c3_template
parallel: 35
parallel: 36
tags:
- ESP32C3_IDF
- UT_T1_1
@@ -779,284 +786,14 @@ UT_S3_FLASH:
component_ut_test_ip101:
extends: .component_ut_esp32_template
image: $CI_DOCKER_REGISTRY/ubuntu-test-env
tags:
- ESP32
- COMPONENT_UT_IP101
- eth_ip101
component_ut_test_lan8720:
extends: .component_ut_esp32_template
image: $CI_DOCKER_REGISTRY/ubuntu-test-env
tags:
- ESP32
- COMPONENT_UT_LAN8720
.integration_test_template:
extends:
- .target_test_job_template
- .rules:test:integration_test
- .before_script_minimal
image: ${CI_INTEGRATION_TEST_ENV_IMAGE}
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}/tools/ci/integration_test/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
- add_gitlab_ssh_keys
# clone local test env configs
- 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"
nvs_compatible_test:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
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
- add_gitlab_ssh_keys
# clone local test env configs
- 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: 9
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
- eth_lan8720
+53
View File
@@ -2,6 +2,26 @@
# All the relative URL paths are intended to be GitHub ones
# For Espressif's public projects please use '../../espressif/proj', not a '../proj'
#
# Submodules SBOM information
# ---------------------------
# Submodules, which are used directly and not forked into espressif namespace should
# contain SBOM information here. Other submodules should have the SBOM manifest file
# included in the root of their project's repository.
#
# The sbom-hash entry records the submodule's checkout SHA as presented in git-tree
# commit object. For example spiffs submodule
#
# $ git ls-tree HEAD components/spiffs/spiffs
# 160000 commit 0dbb3f71c5f6fae3747a9d935372773762baf852 components/spiffs/spiffs
#
# The hash can be also obtained with git submodule command
#
# $ git submodule status components/spiffs/spiffs
# 0dbb3f71c5f6fae3747a9d935372773762baf852 components/spiffs/spiffs (0.2-255-g0dbb3f71c5f6)
#
# The submodule SHA recorded here has to match with SHA, which is presented in git-tree.
# This is checked by CI. Also please don't forget to update the submodule version
# if you are changing the sbom-hash. This is important for SBOM generation.
[submodule "components/esptool_py/esptool"]
path = components/esptool_py/esptool
@@ -14,6 +34,12 @@
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
url = ../../kmackay/micro-ecc.git
sbom-version = 1.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/coap/libcoap"]
path = components/coap/libcoap
@@ -30,10 +56,21 @@
[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = ../../pellepl/spiffs.git
sbom-version = 0.2-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.17
sbom-cpe = cpe:2.3:a:cjson_project:cjson:{}:*:*:*:*:*:*:*
sbom-supplier = Person: Dave Gamble
sbom-url = https://github.com/DaveGamble/cJSON
sbom-description = Ultralightweight JSON parser in ANSI C
sbom-hash = 87d8f0961a01bf09bef98ff89bae9fdec42181ee
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
@@ -58,10 +95,21 @@
[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = ../../protobuf-c/protobuf-c.git
sbom-version = 1.4.1
sbom-cpe = cpe:2.3:a:protobuf-c_project:protobuf-c:{}:*:*:*:*:*:*:*
sbom-supplier = Organization: protobuf-c community <https://groups.google.com/g/protobuf-c>
sbom-url = https://github.com/protobuf-c/protobuf-c
sbom-description = Protocol Buffers implementation in C
sbom-hash = abc67a11c6db271bedbb9f58be85d6f4e2ea8389
[submodule "components/unity/unity"]
path = components/unity/unity
url = ../../ThrowTheSwitch/Unity.git
sbom-version = v2.4.3-51-g7d2bf62b7e6a
sbom-supplier = Organization: ThrowTheSwitch community <http://www.throwtheswitch.org>
sbom-url = https://github.com/ThrowTheSwitch/Unity
sbom-description = Simple Unit Testing for C
sbom-hash = 7d2bf62b7e6afaf38153041a9d53c21aeeca9a25
[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
@@ -90,6 +138,11 @@
[submodule "components/cmock/CMock"]
path = components/cmock/CMock
url = ../../ThrowTheSwitch/CMock.git
sbom-version = v2.5.2-2-geeecc49ce8af
sbom-supplier = Organization: ThrowTheSwitch community <http://www.throwtheswitch.org>
sbom-url = https://github.com/ThrowTheSwitch/CMock
sbom-description = CMock - Mock/stub generator for C
sbom-hash = eeecc49ce8af123cf8ad40efdb9673e37b56230f
[submodule "components/openthread/openthread"]
path = components/openthread/openthread
+12 -4
View File
@@ -1,6 +1,8 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_stages: [commit]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
@@ -34,11 +36,12 @@ repos:
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/pycqa/isort
rev: 5.11.5 # python 3.7 compatible
- repo: https://github.com/asottile/reorder-python-imports
rev: v3.12.0
hooks:
- id: isort
name: isort (python)
- id: reorder-python-imports
name: Reorder Python imports
args: [--py36-plus]
exclude: >
(?x)^(
.*_pb2.py
@@ -123,3 +126,8 @@ repos:
hooks:
- id: file-contents-sorter
files: 'tools\/ci\/(executable-list\.txt|mypy_ignore_list\.txt)'
- repo: https://github.com/espressif/esp-idf-sbom.git
rev: v0.13.0
hooks:
- id: validate-sbom-manifest
stages: [post-commit]
+4
View File
@@ -13,6 +13,10 @@ mainmenu "Espressif IoT Development Framework Configuration"
bool
option env="IDF_ENV_FPGA"
config IDF_CI_BUILD
bool
default y if "$(IDF_CI_BUILD)" = "y" || "$(IDF_CI_BUILD)" = 1
config IDF_TARGET_ARCH_RISCV
bool
default "n"
+9 -7
View File
@@ -50,10 +50,12 @@ idf_component_register(SRCS "${srcs}"
PRIV_REQUIRES soc esp_ipc
LDFRAGMENTS linker.lf)
# disable --coverage for this component, as it is used as transport
# for gcov
target_compile_options(${COMPONENT_LIB} PRIVATE "-fno-profile-arcs" "-fno-test-coverage")
# Force app_trace to also appear later than gcov in link line
idf_component_get_property(app_trace app_trace COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${app_trace}> gcov $<TARGET_FILE:${app_trace}> c)
if(CONFIG_APPTRACE_GCOV_ENABLE)
# disable --coverage for this component, as it is used as transport
# for gcov
target_compile_options(${COMPONENT_LIB} PRIVATE "-fno-profile-arcs" "-fno-test-coverage")
# Force app_trace to 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()
+9 -4
View File
@@ -181,13 +181,18 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
return ESP_ERR_INVALID_ARG;
}
if (size == 0) {
ESP_LOGD(TAG, "write data size is 0");
return ESP_OK;
}
// find ota handle in linked list
for (it = LIST_FIRST(&s_ota_ops_entries_head); it != NULL; it = LIST_NEXT(it, entries)) {
if (it->handle == handle) {
if (it->need_erase) {
// must erase the partition before writing to it
uint32_t first_sector = it->wrote_size / SPI_FLASH_SEC_SIZE;
uint32_t last_sector = (it->wrote_size + size) / SPI_FLASH_SEC_SIZE;
uint32_t first_sector = it->wrote_size / SPI_FLASH_SEC_SIZE; // first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / SPI_FLASH_SEC_SIZE; // last affected sector
ret = ESP_OK;
if ((it->wrote_size % SPI_FLASH_SEC_SIZE) == 0) {
@@ -919,8 +924,8 @@ esp_err_t esp_ota_revoke_secure_boot_public_key(esp_ota_secure_boot_public_key_i
if (trusted_keys.key_digests[i] != NULL) {
bool all_zeroes = true;
for (unsigned j = 0; j < ESP_SECURE_BOOT_DIGEST_LEN; j++) {
all_zeroes = all_zeroes && (*(uint8_t *)(trusted_keys.key_digests[i] + j) == 0);
for (unsigned j = 0; j < ESP_SECURE_BOOT_DIGEST_LEN; j+=4) {
all_zeroes = all_zeroes && (*(uint32_t *)(trusted_keys.key_digests[i] + j) == 0);
}
if (!all_zeroes) {
memcpy(trusted_digests.key_digests[trusted_digests.num_digests++], (uint8_t *)trusted_keys.key_digests[i], ESP_SECURE_BOOT_DIGEST_LEN);
+2 -2
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
*/
@@ -103,7 +103,7 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp
* @param size Size of data buffer in bytes.
*
* @return
* - ESP_OK: Data was written to flash successfully.
* - ESP_OK: Data was written to flash successfully, or size = 0
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
+56 -32
View File
@@ -62,34 +62,66 @@ menu "Bootloader config"
default 4 if BOOTLOADER_LOG_LEVEL_DEBUG
default 5 if BOOTLOADER_LOG_LEVEL_VERBOSE
config BOOTLOADER_SPI_CUSTOM_WP_PIN
bool "Use custom SPI Flash WP Pin when flash pins set in eFuse (read help)"
depends on IDF_TARGET_ESP32 && (ESPTOOLPY_FLASHMODE_QIO || ESPTOOLPY_FLASHMODE_QOUT)
default y if BOOTLOADER_SPI_WP_PIN != 7 # backwards compatibility, can remove in IDF 5
default n
help
This setting is only used if the SPI flash pins have been overridden by setting the eFuses
SPI_PAD_CONFIG_xxx, and the SPI flash mode is QIO or QOUT.
menu "Serial Flash Configurations"
config BOOTLOADER_SPI_CUSTOM_WP_PIN
bool "Use custom SPI Flash WP Pin when flash pins set in eFuse (read help)"
depends on IDF_TARGET_ESP32 && (ESPTOOLPY_FLASHMODE_QIO || ESPTOOLPY_FLASHMODE_QOUT)
default y if BOOTLOADER_SPI_WP_PIN != 7 # backwards compatibility, can remove in IDF 5
default n
help
This setting is only used if the SPI flash pins have been overridden by setting the eFuses
SPI_PAD_CONFIG_xxx, and the SPI flash mode is QIO or QOUT.
When this is the case, the eFuse config only defines 3 of the 4 Quad I/O data pins. The WP pin (aka
ESP32 pin "SD_DATA_3" or SPI flash pin "IO2") is not specified in eFuse. The same pin is also used
for external SPIRAM if it is enabled.
When this is the case, the eFuse config only defines 3 of the 4 Quad I/O data pins. The WP pin (aka
ESP32 pin "SD_DATA_3" or SPI flash pin "IO2") is not specified in eFuse. The same pin is also used
for external SPIRAM if it is enabled.
If this config item is set to N (default), the correct WP pin will be automatically used for any
Espressif chip or module with integrated flash. If a custom setting is needed, set this config item to
Y and specify the GPIO number connected to the WP.
If this config item is set to N (default), the correct WP pin will be automatically used for any
Espressif chip or module with integrated flash. If a custom setting is needed, set this config item to
Y and specify the GPIO number connected to the WP.
config BOOTLOADER_SPI_WP_PIN
int "Custom SPI Flash WP Pin"
range 0 33
default 7
depends on IDF_TARGET_ESP32 && (ESPTOOLPY_FLASHMODE_QIO || ESPTOOLPY_FLASHMODE_QOUT)
#depends on BOOTLOADER_SPI_CUSTOM_WP_PIN # backwards compatibility, can uncomment in IDF 5
help
The option "Use custom SPI Flash WP Pin" must be set or this value is ignored
config BOOTLOADER_SPI_WP_PIN
int "Custom SPI Flash WP Pin"
range 0 33
default 7
depends on IDF_TARGET_ESP32 && (ESPTOOLPY_FLASHMODE_QIO || ESPTOOLPY_FLASHMODE_QOUT)
#depends on BOOTLOADER_SPI_CUSTOM_WP_PIN # backwards compatibility, can uncomment in IDF 5
help
The option "Use custom SPI Flash WP Pin" must be set or this value is ignored
If burning a customized set of SPI flash pins in eFuse and using QIO or QOUT mode for flash, set this
value to the GPIO number of the SPI flash WP pin.
If burning a customized set of SPI flash pins in eFuse and using QIO or QOUT mode for flash, set this
value to the GPIO number of the SPI flash WP pin.
config BOOTLOADER_FLASH_DC_AWARE
bool "Allow app adjust Dummy Cycle bits in SPI Flash for higher frequency (READ HELP FIRST)"
help
This will force 2nd bootloader to be loaded by DOUT mode, and will restore Dummy Cycle setting by
resetting the Flash
config BOOTLOADER_FLASH_XMC_SUPPORT
bool "Enable the support for flash chips of XMC (READ DOCS FIRST)"
default y
help
Perform the startup flow recommended by XMC. Please consult XMC for the details of this flow.
XMC chips will be forbidden to be used, when this option is disabled.
DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU ARE DOING.
comment "Features below require specific hardware (READ DOCS FIRST!)"
config BOOTLOADER_FLASH_32BIT_ADDR
bool
default y if ESPTOOLPY_FLASHSIZE_32MB || ESPTOOLPY_FLASHSIZE_64MB || ESPTOOLPY_FLASHSIZE_128MB
default n
help
This is a helper config for 32bits address flash. Invisible for users.
config BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
bool
default y if ESPTOOLPY_OCT_FLASH && BOOTLOADER_FLASH_32BIT_ADDR
default n
endmenu
choice BOOTLOADER_VDDSDIO_BOOST
bool "VDDSDIO LDO voltage"
@@ -393,14 +425,6 @@ menu "Bootloader config"
in this area of memory, you can increase it. It must be a multiple of 4 bytes.
This area (rtc_retain_mem_t) is reserved and has access from the bootloader and an application.
config BOOTLOADER_FLASH_XMC_SUPPORT
bool "Enable the support for flash chips of XMC (READ HELP FIRST)"
default y
help
Perform the startup flow recommended by XMC. Please consult XMC for the details of this flow.
XMC chips will be forbidden to be used, when this option is disabled.
DON'T DISABLE THIS UNLESS YOU KNOW WHAT YOU ARE DOING.
endmenu # Bootloader
+2
View File
@@ -23,3 +23,5 @@ CONFIG_FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE CONFIG_SECURE_FLASH_
# Secure Boot Scheme
CONFIG_SECURE_BOOT_ENABLED CONFIG_SECURE_BOOT_V1_ENABLED
CONFIG_SPI_FLASH_OCTAL_32BIT_ADDR_ENABLE CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
@@ -9,6 +9,17 @@
#include <esp_spi_flash.h> /* including in bootloader for error values */
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/spi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/spi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/spi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32C3
#include "esp32c3/rom/spi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32H2
#include "esp32h2/rom/spi_flash.h"
#endif
#include "bootloader_flash_override.h"
#ifdef __cplusplus
@@ -48,6 +59,12 @@ esp_err_t bootloader_flash_xmc_startup(void);
*/
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void);
/**
* @brief Get the spi flash working mode.
*
* @return The mode of flash working mode, see `esp_rom_spiflash_read_mode_t`
*/
esp_rom_spiflash_read_mode_t bootloader_flash_get_spi_mode(void);
#ifdef __cplusplus
}
@@ -96,6 +96,18 @@ extern const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_sup
*/
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void);
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
/**
* @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
@@ -130,4 +130,5 @@ typedef struct {
/** @cond */
_Static_assert(sizeof(esp_app_desc_t) == 256, "esp_app_desc_t should be 256 bytes");
_Static_assert(offsetof(esp_app_desc_t, secure_version) == 4, "secure_version field must be at 4 offset");
/** @endcond */
@@ -33,6 +33,7 @@ typedef struct {
uint32_t segment_data[ESP_IMAGE_MAX_SEGMENTS]; /* Data offsets for each segment */
uint32_t image_len; /* Length of image on flash, in bytes */
uint8_t image_digest[32]; /* appended SHA-256 digest */
uint32_t secure_version; /* secure version for anti-rollback, it is covered by sha256 (set if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK=y) */
} esp_image_metadata_t;
typedef enum {
@@ -35,6 +35,8 @@
#define CMD_RDSFDP 0x5A /* Read the SFDP of the flash */
#define CMD_WRAP 0x77 /* Set burst with wrap command */
#define CMD_RESUME 0x7A /* Resume command to clear flash suspend bit */
#define CMD_FASTRD_4B 0x0C
#define CMD_SLOWRD_4B 0x13
/* Provide a Flash API for bootloader_support code,
@@ -26,6 +26,9 @@
#include "esp32h2/rom/ets_sys.h"
#include "esp32h2/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"
@@ -104,6 +107,10 @@ void bootloader_console_init(void)
esp_rom_uart_usb_acm_init(s_usb_cdc_buf, sizeof(s_usb_cdc_buf));
esp_rom_uart_set_as_console(ESP_ROM_UART_USB);
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
@@ -145,6 +145,11 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
#include "esp32h2/rom/cache.h"
#include "soc/cache_memory.h"
#endif
#if CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/opi_flash.h"
#endif
static const char *TAG = "bootloader_flash";
#if CONFIG_IDF_TARGET_ESP32
@@ -482,6 +487,34 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
return spi_to_esp_err(rc);
}
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
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;
}
uint32_t autoload = Cache_Suspend_DCache();
esp_rom_opiflash_cache_mode_config(flash_mode, &cache_rd);
Cache_Resume_DCache(autoload);
}
#endif
#endif // BOOTLOADER_BUILD
@@ -816,3 +849,40 @@ esp_err_t IRAM_ATTR bootloader_flash_xmc_startup(void)
}
#endif //XMC_SUPPORT
esp_rom_spiflash_read_mode_t bootloader_flash_get_spi_mode(void)
{
esp_rom_spiflash_read_mode_t spi_mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
#if CONFIG_IDF_TARGET_ESP32
uint32_t spi_ctrl = REG_READ(SPI_CTRL_REG(0));
if (spi_ctrl & SPI_FREAD_QIO) {
spi_mode = ESP_ROM_SPIFLASH_QIO_MODE;
} else if (spi_ctrl & SPI_FREAD_QUAD) {
spi_mode = ESP_ROM_SPIFLASH_QOUT_MODE;
} else if (spi_ctrl & SPI_FREAD_DIO) {
spi_mode = ESP_ROM_SPIFLASH_DIO_MODE;
} else if (spi_ctrl & SPI_FREAD_DUAL) {
spi_mode = ESP_ROM_SPIFLASH_DOUT_MODE;
} else if (spi_ctrl & SPI_FASTRD_MODE) {
spi_mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
} else {
spi_mode = ESP_ROM_SPIFLASH_SLOWRD_MODE;
}
#else
uint32_t spi_ctrl = REG_READ(SPI_MEM_CTRL_REG(0));
if (spi_ctrl & SPI_MEM_FREAD_QIO) {
spi_mode = ESP_ROM_SPIFLASH_QIO_MODE;
} else if (spi_ctrl & SPI_MEM_FREAD_QUAD) {
spi_mode = ESP_ROM_SPIFLASH_QOUT_MODE;
} else if (spi_ctrl & SPI_MEM_FREAD_DIO) {
spi_mode = ESP_ROM_SPIFLASH_DIO_MODE;
} else if (spi_ctrl & SPI_MEM_FREAD_DUAL) {
spi_mode = ESP_ROM_SPIFLASH_DOUT_MODE;
} else if (spi_ctrl & SPI_MEM_FASTRD_MODE) {
spi_mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
} else {
spi_mode = ESP_ROM_SPIFLASH_SLOWRD_MODE;
}
#endif
return spi_mode;
}
@@ -94,4 +94,12 @@ void bootloader_print_banner(void)
{
ESP_LOGI(TAG, "ESP-IDF %s 2nd stage bootloader", IDF_VER);
ESP_LOGI(TAG, "compile time " __TIME__);
#if CONFIG_FREERTOS_UNICORE
#if (SOC_CPU_CORES_NUM > 1)
ESP_EARLY_LOGW(TAG, "Unicore bootloader");
#endif
#else
ESP_EARLY_LOGI(TAG, "Multicore bootloader");
#endif
}
@@ -3,18 +3,10 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
void bootloader_ana_super_wdt_reset_config(bool enable)
{
(void)enable;
}
void bootloader_ana_bod_reset_config(bool enable)
{
(void)enable;
}
//Not supported but common bootloader calls the function. Do nothing
void bootloader_ana_clock_glitch_reset_config(bool enable)
{
(void)enable;
@@ -268,29 +268,29 @@ static inline void bootloader_hardware_init(void)
static inline void bootloader_ana_reset_config(void)
{
//Enable super WDT reset.
bootloader_ana_super_wdt_reset_config(true);
/*
For origin chip & ECO1: only support swt reset;
For ECO2: fix brownout reset bug, support swt & brownout reset;
For ECO3: fix clock glitch reset bug, support all reset, include: swt & brownout & clock glitch reset.
For origin chip & ECO1: brownout & clock glitch reset not available
For ECO2: fix brownout reset bug
For ECO3: fix clock glitch reset bug
*/
switch (efuse_hal_chip_revision()) {
case 0:
case 1:
//Enable WDT reset. Disable BOR and GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
//Disable BOD and GLITCH reset
bootloader_ana_bod_reset_config(false);
bootloader_ana_clock_glitch_reset_config(false);
break;
case 2:
//Enable WDT and BOR reset. Disable GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
//Enable BOD reset. Disable GLITCH reset
bootloader_ana_bod_reset_config(true);
bootloader_ana_clock_glitch_reset_config(false);
break;
case 3:
default:
//Enable WDT, BOR, and GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
//Enable BOD, and GLITCH reset
bootloader_ana_bod_reset_config(true);
bootloader_ana_clock_glitch_reset_config(true);
break;
@@ -12,15 +12,15 @@ void bootloader_ana_super_wdt_reset_config(bool enable)
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_SUPER_WDT_RST);
if (enable) {
REG_SET_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
} else {
REG_CLR_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
} else {
REG_SET_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
}
}
void bootloader_ana_bod_reset_config(bool enable)
{
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_BOR_RST);
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_BOD_RST);
if (enable) {
REG_SET_BIT(RTC_CNTL_BROWN_OUT_REG, RTC_CNTL_BROWN_OUT_ANA_RST_EN);
@@ -3,18 +3,10 @@
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
void bootloader_ana_super_wdt_reset_config(bool enable)
{
(void)enable;
}
void bootloader_ana_bod_reset_config(bool enable)
{
(void)enable;
}
//Not supported but common bootloader calls the function. Do nothing
void bootloader_ana_clock_glitch_reset_config(bool enable)
{
(void)enable;
@@ -218,7 +218,7 @@ static esp_err_t bootloader_init_spi_flash(void)
}
#endif
#if CONFIG_SPI_FLASH_HPM_ENABLE
#if CONFIG_BOOTLOADER_FLASH_DC_AWARE
// Reset flash, clear volatile bits DC[0:1]. Make it work under default mode to boot.
bootloader_spi_flash_reset();
#endif
@@ -228,7 +228,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_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
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
@@ -322,7 +324,7 @@ static void bootloader_super_wdt_auto_feed(void)
static inline void bootloader_ana_reset_config(void)
{
//Enable WDT, BOR, and GLITCH reset
//Enable WDT, BOD, and GLITCH reset
bootloader_ana_super_wdt_reset_config(true);
bootloader_ana_bod_reset_config(true);
bootloader_ana_clock_glitch_reset_config(true);
@@ -12,15 +12,15 @@ void bootloader_ana_super_wdt_reset_config(bool enable)
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_SUPER_WDT_RST);
if (enable) {
REG_SET_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
} else {
REG_CLR_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
} else {
REG_SET_BIT(RTC_CNTL_SWD_CONF_REG, RTC_CNTL_SWD_BYPASS_RST);
}
}
void bootloader_ana_bod_reset_config(bool enable)
{
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_BOR_RST);
REG_CLR_BIT(RTC_CNTL_FIB_SEL_REG, RTC_CNTL_FIB_BOD_RST);
if (enable) {
REG_SET_BIT(RTC_CNTL_BROWN_OUT_REG, RTC_CNTL_BROWN_OUT_ANA_RST_EN);
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -17,6 +17,7 @@
#include <bootloader_sha.h>
#include "bootloader_util.h"
#include "bootloader_common.h"
#include "esp_efuse.h"
#include "esp_rom_sys.h"
#include "soc/soc_memory_types.h"
#if CONFIG_IDF_TARGET_ESP32
@@ -76,10 +77,10 @@ static bool should_map(uint32_t load_addr);
static esp_err_t process_segments(esp_image_metadata_t *data, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum);
/* Load or verify a segment */
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum);
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata);
/* split segment and verify if data_len is too long */
static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum);
static esp_err_t process_segment_data(int segment, intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata);
/* Verify the main image header */
static esp_err_t verify_image_header(uint32_t src_addr, const esp_image_header_t *image, bool silent);
@@ -222,6 +223,21 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
}
}
}
#if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
/* For anti-rollback case, reconfirm security version of the application to prevent FI attacks */
bool sec_ver = false;
if (do_load) {
sec_ver = esp_efuse_check_secure_version(data->secure_version);
if (!sec_ver) {
err = ESP_FAIL;
goto err;
}
}
/* Ensure that the security version check passes for image loading scenario */
ESP_FAULT_ASSERT(!do_load || sec_ver == true);
#endif // CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
#endif // BOOTLOADER_BUILD
// Success!
@@ -488,8 +504,8 @@ static esp_err_t process_segments(esp_image_metadata_t *data, bool silent, bool
uint32_t next_addr = start_segments;
for (int i = 0; i < data->image.segment_count; i++) {
esp_image_segment_header_t *header = &data->segments[i];
ESP_LOGV(TAG, "loading segment header %d at offset 0x%x", i, next_addr);
CHECK_ERR(process_segment(i, next_addr, header, silent, do_load, sha_handle, checksum));
ESP_LOGV(TAG, "loading segment header %d at offset 0x%"PRIx32, i, next_addr);
CHECK_ERR(process_segment(i, next_addr, header, silent, do_load, sha_handle, checksum, data));
next_addr += sizeof(esp_image_segment_header_t);
data->segment_data[i] = next_addr;
next_addr += header->data_len;
@@ -510,7 +526,7 @@ err:
return err;
}
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum)
static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segment_header_t *header, bool silent, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata)
{
esp_err_t err;
@@ -568,7 +584,7 @@ static esp_err_t process_segment(int index, uint32_t flash_addr, esp_image_segme
uint32_t offset_page = ((data_addr & MMAP_ALIGNED_MASK) != 0) ? 1 : 0;
/* Data we could map in case we are not aligned to PAGE boundary is one page size lesser. */
data_len = MIN(data_len_remain, ((free_page_count - offset_page) * SPI_FLASH_MMU_PAGE_SIZE));
CHECK_ERR(process_segment_data(load_addr, data_addr, data_len, do_load, sha_handle, checksum));
CHECK_ERR(process_segment_data(index, load_addr, data_addr, data_len, do_load, sha_handle, checksum, metadata));
data_addr += data_len;
data_len_remain -= data_len;
}
@@ -583,7 +599,42 @@ err:
return err;
}
static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum)
#if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
/* The __attribute__((optimize("O0"))) is used to disable optimizations for this function,
* preventing the compiler from potentially optimizing data_buffer and reading data directly from src.
* This is crucial as we want to read from Flash only once, ensuring the integrity of the data.
*/
__attribute__((optimize("O0")))
static size_t process_esp_app_desc_data(const uint32_t *src, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata)
{
/* Using data_buffer here helps to securely read secure_version
* (for anti-rollback) from esp_app_desc_t, preventing FI attack.
* We read data from Flash into this buffer, which is covered by sha256.
* Therefore, if the flash is under attackers control and contents are modified
* the sha256 comparison will fail.
*
* The esp_app_desc_t structure is located in DROM and is always in segment #0.
*
* esp_app_desc_t is always at #0 segment (index==0).
* secure_version field of esp_app_desc_t is located at #2 word (w_i==1).
*/
uint32_t data_buffer[2];
memcpy(data_buffer, src, sizeof(data_buffer));
assert(data_buffer[0] == ESP_APP_DESC_MAGIC_WORD);
metadata->secure_version = data_buffer[1];
if (checksum != NULL) {
*checksum ^= data_buffer[0] ^ data_buffer[1];
}
if (sha_handle != NULL) {
bootloader_sha256_data(sha_handle, data_buffer, sizeof(data_buffer));
}
ESP_FAULT_ASSERT(memcmp(data_buffer, src, sizeof(data_buffer)) == 0);
ESP_FAULT_ASSERT(memcmp(&metadata->secure_version, &src[1], sizeof(uint32_t)) == 0);
return sizeof(data_buffer);
}
#endif // CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
static esp_err_t process_segment_data(int segment, intptr_t load_addr, uint32_t data_addr, uint32_t data_len, bool do_load, bootloader_sha256_handle_t sha_handle, uint32_t *checksum, esp_image_metadata_t *metadata)
{
// If we are not loading, and the checksum is empty, skip processing this
// segment for data
@@ -616,10 +667,24 @@ static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, ui
#endif
}
uint32_t *dest = (uint32_t *)load_addr;
#endif
#endif // BOOTLOADER_BUILD
const uint32_t *src = data;
#if CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
// Case I: Bootloader verifying application
// Case II: Bootloader verifying bootloader
// Anti-rollback check should handle only Case I from above.
if (segment == 0 && metadata->start_addr != ESP_BOOTLOADER_OFFSET) {
ESP_LOGD(TAG, "additional anti-rollback check 0x%"PRIx32, data_addr);
// The esp_app_desc_t structure is located in DROM and is always in segment #0.
size_t len = process_esp_app_desc_data(src, sha_handle, checksum, metadata);
data_len -= len;
src += len / 4;
// In BOOTLOADER_BUILD, for DROM (segment #0) we do not load it into dest (only map it), do_load = false.
}
#endif // CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
for (size_t i = 0; i < data_len; i += 4) {
int w_i = i / 4; // Word index
uint32_t w = src[w_i];
+1
View File
@@ -299,6 +299,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"
@@ -432,7 +432,7 @@ void esp_blufi_send_notify(void *arg)
return;
}
int rc = 0;
rc = ble_gatts_notify_custom(blufi_env.conn_id, gatt_values[1].val_handle, om);
rc = ble_gattc_notify_custom(conn_handle, gatt_values[1].val_handle, om);
if (rc != 0) {
ESP_LOGE(TAG, "Error in sending notification");
}
+26
View File
@@ -262,6 +262,32 @@ bool config_remove_section(config_t *config, const char *section)
return list_remove(config->sections, sec);
}
bool config_update_newest_section(config_t *config, const char *section)
{
assert(config != NULL);
assert(section != NULL);
list_node_t *first_node = list_begin(config->sections);
if (first_node == NULL) {
return false;
}
section_t *first_sec = list_node(first_node);
if (strcmp(first_sec->name, section) == 0) {
return true;
}
for (const list_node_t *node = list_begin(config->sections); node != list_end(config->sections); node = list_next(node)) {
section_t *sec = list_node(node);
if (strcmp(sec->name, section) == 0) {
list_delete(config->sections, sec);
list_prepend(config->sections, sec);
return true;
}
}
return false;
}
bool config_remove_key(config_t *config, const char *section, const char *key)
{
assert(config != NULL);
@@ -107,6 +107,11 @@ void config_set_string(config_t *config, const char *section, const char *key, c
// Neither |config| nor |section| may be NULL.
bool config_remove_section(config_t *config, const char *section);
// Updates |section| to be the first section in |config|. Return true if |section| is in
// |config| and updated successfully, false otherwise.
// Neither |config| nor |section| may be NULL.
bool config_update_newest_section(config_t *config, const char *section);
// Removes one specific |key| residing in |section| of the |config|. Returns true
// if the section and key were found and the key was removed, false otherwise.
// None of |config|, |section|, or |key| may be NULL.
+6 -1
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"
@@ -351,7 +356,7 @@ config BTDM_SCAN_DUPL_CACHE_SIZE
default 100
help
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
When the maximum amount of device in the filter is reached, the oldest device will be refreshed.
config BTDM_SCAN_DUPL_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
+15 -1
View File
@@ -234,6 +234,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;
@@ -908,7 +910,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)
@@ -1566,6 +1572,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) {
@@ -1717,6 +1729,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();
+34 -13
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
@@ -390,7 +403,7 @@ menu "MODEM SLEEP Options"
than other bluetooth low power clock sources.
config BT_CTRL_LPCLK_SEL_EXT_32K_XTAL
bool "External 32kHz crystal"
depends on ESP32C3_RTC_CLK_SRC_EXT_CRYS
depends on (ESP32C3_RTC_CLK_SRC_EXT_CRYS || ESP32S3_RTC_CLK_SRC_EXT_CRYS)
help
External 32kHz crystal has a nominal frequency of 32.768kHz and provides good frequency
stability. If used as Bluetooth low power clock, External 32kHz can support Bluetooth
@@ -398,7 +411,7 @@ menu "MODEM SLEEP Options"
config BT_CTRL_LPCLK_SEL_RTC_SLOW
bool "Internal 150kHz RC oscillator"
depends on ESP32C3_RTC_CLK_SRC_INT_RC
depends on (ESP32C3_RTC_CLK_SRC_INT_RC || ESP32S3_RTC_CLK_SRC_INT_RC)
help
Internal 150kHz RC oscillator. The accuracy of this clock is a lot larger than 500ppm which is required
in Bluetooth communication, so don't select this option in scenarios such as BLE connection state.
@@ -454,3 +467,11 @@ config BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.
config BT_BLE_ADV_DATA_LENGTH_ZERO_AUX
bool "Enable aux packet when ext adv data length is zero"
default n
help
When this option is enabled, auxiliary packets will be present in the events of
'Non-Connectable and Non-Scannable' regardless of whether the advertising length is 0.
If this option is not enabled, auxiliary packets will only be present when the advertising length is not 0.
+65 -32
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -110,7 +110,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
@@ -192,6 +192,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);
};
@@ -251,6 +253,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;
@@ -310,6 +314,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);
@@ -374,6 +379,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;
@@ -687,7 +694,7 @@ static bool IRAM_ATTR is_in_isr_wrapper(void)
static void *malloc_internal_wrapper(size_t size)
{
void *p = heap_caps_malloc(size, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL|MALLOC_CAP_DMA);
void *p = heap_caps_malloc(size, MALLOC_CAP_INTERNAL|MALLOC_CAP_DMA);
if(p == NULL) {
ESP_LOGE(BT_LOG_TAG, "Malloc failed");
}
@@ -756,19 +763,26 @@ static void btdm_sleep_enter_phase1_wrapper(uint32_t lpcycles)
return;
}
// start a timer to wake up and acquire the pm_lock before modem_sleep awakes
uint32_t us_to_sleep = btdm_lpcycles_2_hus(lpcycles, NULL) >> 1;
#define BTDM_MIN_TIMER_UNCERTAINTY_US (1800)
#define BTDM_RTC_SLOW_CLK_RC_DRIFT_PERCENT 7
assert(us_to_sleep > BTDM_MIN_TIMER_UNCERTAINTY_US);
// allow a maximum time uncertainty to be about 488ppm(1/2048) at least as clock drift
// and set the timer in advance
uint32_t uncertainty = (us_to_sleep >> 11);
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
if (rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_RTC) {
uncertainty = us_to_sleep * BTDM_RTC_SLOW_CLK_RC_DRIFT_PERCENT / 100;
}
#endif
if (uncertainty < BTDM_MIN_TIMER_UNCERTAINTY_US) {
uncertainty = BTDM_MIN_TIMER_UNCERTAINTY_US;
}
assert (s_lp_stat.wakeup_timer_started == 0);
// start a timer to wake up and acquire the pm_lock before modem_sleep awakes
if (esp_timer_start_once(s_btdm_slp_tmr, us_to_sleep - uncertainty) == ESP_OK) {
s_lp_stat.wakeup_timer_started = 1;
} else {
@@ -787,12 +801,12 @@ static void btdm_sleep_enter_phase2_wrapper(void)
assert(0);
}
if (s_lp_stat.pm_lock_released == 0) {
#ifdef CONFIG_PM_ENABLE
if (s_lp_stat.pm_lock_released == 0) {
esp_pm_lock_release(s_pm_lock);
#endif
s_lp_stat.pm_lock_released = 1;
}
#endif
}
}
@@ -912,6 +926,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
@@ -1181,18 +1202,6 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
btdm_controller_mem_init();
#if CONFIG_MAC_BB_PD
if (esp_register_mac_bb_pd_callback(btdm_mac_bb_power_down_cb) != 0) {
err = ESP_ERR_INVALID_ARG;
goto error;
}
if (esp_register_mac_bb_pu_callback(btdm_mac_bb_power_up_cb) != 0) {
err = ESP_ERR_INVALID_ARG;
goto error;
}
#endif
osi_funcs_p = (struct osi_funcs_t *)malloc_internal_wrapper(sizeof(struct osi_funcs_t));
if (osi_funcs_p == NULL) {
return ESP_ERR_NO_MEM;
@@ -1340,14 +1349,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;
@@ -1377,11 +1382,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 {
@@ -1442,11 +1442,6 @@ static void bt_controller_deinit_internal(void)
btdm_lpcycle_us = 0;
} while (0);
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
esp_bt_power_domain_off();
#if CONFIG_MAC_BB_PD
esp_mac_bb_pd_mem_deinit();
@@ -1475,6 +1470,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
@@ -1489,6 +1490,18 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
s_lp_stat.pm_lock_released = 0;
#endif
#if CONFIG_MAC_BB_PD
if (esp_register_mac_bb_pd_callback(btdm_mac_bb_power_down_cb) != 0) {
ret = ESP_ERR_INVALID_ARG;
goto error;
}
if (esp_register_mac_bb_pu_callback(btdm_mac_bb_power_up_cb) != 0) {
ret = ESP_ERR_INVALID_ARG;
goto error;
}
#endif
if (s_lp_cntl.enable) {
btdm_controller_enable_sleep(true);
}
@@ -1499,6 +1512,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;
@@ -1506,6 +1521,11 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
error:
// disable low power mode
do {
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
btdm_controller_enable_sleep(false);
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
@@ -1521,6 +1541,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;
}
@@ -1539,11 +1563,20 @@ 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;
// disable low power mode
do {
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
esp_pm_lock_release(s_light_sleep_pm_lock);
+31
View File
@@ -6,6 +6,15 @@ if BLE_MESH
help
It is a temporary solution and needs further modifications.
config BLE_MESH_RANDOM_ADV_INTERVAL
bool "Support using random adv interval for mesh packets"
select BT_BLE_HIGH_DUTY_ADV_INTERVAL if BT_BLUEDROID_ENABLED
default n
help
Enable this option to allow using random advertising interval
for mesh packets. And this could help avoid collision of
advertising packets.
config BLE_MESH_USE_DUPLICATE_SCAN
bool "Support Duplicate Scan in BLE Mesh"
depends on BT_BLUEDROID_ENABLED
@@ -536,6 +545,20 @@ if BLE_MESH
Provisioner can provision up to 20 nodes and each node contains two elements,
then the replay protection list size of Provisioner should be at least 40.
config BLE_MESH_NOT_RELAY_REPLAY_MSG
bool "Not relay replayed messages in a mesh network"
depends on BLE_MESH_EXPERIMENTAL
default n
help
There may be many expired messages in a complex mesh network that would be
considered replayed messages.
Enable this option will refuse to relay such messages, which could help to
reduce invalid packets in the mesh network.
However, it should be noted that enabling this option may result in packet
loss in certain environments.
Therefore, users need to decide whether to enable this option according to
the actual usage situation.
config BLE_MESH_MSG_CACHE_SIZE
int "Network message cache size"
default 10
@@ -1239,4 +1262,12 @@ if BLE_MESH
endmenu
config BLE_MESH_EXPERIMENTAL
bool "Make BLE Mesh experimental features visible"
default n
help
Make BLE Mesh Experimental features visible.
Experimental features list:
- CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
endif # BLE_MESH
@@ -65,7 +65,9 @@ esp_err_t esp_ble_mesh_init(esp_ble_mesh_prov_t *prov, esp_ble_mesh_comp_t *comp
esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
{
btc_ble_mesh_prov_args_t arg = {0};
SemaphoreHandle_t semaphore = NULL;
btc_msg_t msg = {0};
esp_err_t ret = ESP_OK;
if (param == NULL) {
return ESP_ERR_INVALID_ARG;
@@ -73,13 +75,36 @@ esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
// Create a semaphore
if ((semaphore = xSemaphoreCreateCounting(1, 0)) == NULL) {
BT_ERR("Failed to create semaphore");
return ESP_ERR_NO_MEM;
}
arg.mesh_deinit.param.erase_flash = param->erase_flash;
/* Transport semaphore pointer to BTC layer, and will give the semaphore in the BTC task */
arg.mesh_deinit.semaphore = semaphore;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_DEINIT_MESH;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
if (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL) != BT_STATUS_SUCCESS) {
vSemaphoreDelete(semaphore);
BT_ERR("Failed to start mesh deinit");
return ESP_FAIL;
}
/* Take the Semaphore, wait BLE Mesh de-initialization to finish. */
xSemaphoreTake(semaphore, portMAX_DELAY);
/* Don't forget to delete the semaphore at the end. */
vSemaphoreDelete(semaphore);
ret = bt_mesh_host_deinit();
if (ret != ESP_OK) {
return ret;
}
return ESP_OK;
}
#endif /* CONFIG_BLE_MESH_DEINIT */
@@ -2268,6 +2268,8 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
case BTC_BLE_MESH_ACT_DEINIT_MESH:
act = ESP_BLE_MESH_DEINIT_MESH_COMP_EVT;
param.deinit_mesh_comp.err_code = bt_mesh_deinit((struct bt_mesh_deinit_param *)&arg->mesh_deinit.param);
/* Give the semaphore when BLE Mesh de-initialization is finished. */
xSemaphoreGive(arg->mesh_deinit.semaphore);
break;
#endif /* CONFIG_BLE_MESH_DEINIT */
default:
@@ -309,6 +309,7 @@ typedef union {
} model_unsub_group_addr;
struct ble_mesh_deinit_args {
esp_ble_mesh_deinit_param_t param;
SemaphoreHandle_t semaphore;
} mesh_deinit;
} btc_ble_mesh_prov_args_t;
@@ -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);
@@ -67,6 +67,8 @@ uint8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send);
int bt_mesh_rand(void *buf, size_t len);
uint32_t bt_mesh_get_rand(void);
#ifdef __cplusplus
}
#endif
@@ -104,3 +104,8 @@ int bt_mesh_rand(void *buf, size_t len)
return 0;
}
uint32_t bt_mesh_get_rand(void)
{
return esp_random();
}
@@ -99,6 +99,11 @@ int bt_mesh_host_init(void)
return 0;
}
int bt_mesh_host_deinit(void)
{
return 0;
}
void bt_mesh_hci_init(void)
{
const uint8_t *features = controller_get_interface()->get_features_ble()->as_array;
@@ -316,6 +321,7 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
tBLE_ADDR_TYPE addr_type_own = 0U;
tBLE_BD_ADDR p_dir_bda = {0};
tBTM_BLE_AFP adv_fil_pol = 0U;
uint16_t interval = 0U;
uint8_t adv_type = 0U;
int err = 0;
@@ -365,9 +371,24 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
adv_fil_pol = BLE_MESH_AP_SCAN_CONN_ALL;
p_start_adv_cb = start_adv_completed_cb;
interval = param->interval_min;
#if CONFIG_BLE_MESH_RANDOM_ADV_INTERVAL
/* If non-connectable mesh packets are transmitted with an adv interval
* not smaller than 10ms, then we will use a random adv interval between
* [interval / 2, interval] for them.
*/
if (adv_type == BLE_MESH_ADV_NONCONN_IND && interval >= 16) {
interval >>= 1;
interval += (bt_mesh_get_rand() % (interval + 1));
BT_INFO("%u->%u", param->interval_min, interval);
}
#endif
/* Check if we can start adv using BTM_BleSetAdvParamsStartAdvCheck */
BLE_MESH_BTM_CHECK_STATUS(
BTM_BleSetAdvParamsAll(param->interval_min, param->interval_max, adv_type,
BTM_BleSetAdvParamsAll(interval, interval, adv_type,
addr_type_own, &p_dir_bda,
channel_map, adv_fil_pol, p_start_adv_cb));
BLE_MESH_BTM_CHECK_STATUS(BTM_BleStartAdv());
@@ -1615,6 +1636,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: {
@@ -659,6 +659,7 @@ struct bt_mesh_gatt_attr {
}
int bt_mesh_host_init(void);
int bt_mesh_host_deinit(void);
int bt_le_adv_start(const struct bt_mesh_adv_param *param,
const struct bt_mesh_adv_data *ad, size_t ad_len,
+7 -3
View File
@@ -2,7 +2,7 @@
/*
* SPDX-FileCopyrightText: 2017 Intel Corporation
* SPDX-FileContributor: 2018-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2018-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -1265,7 +1265,7 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
#endif
if (!buf) {
BT_ERR("Out of relay buffers");
BT_INFO("Out of relay buffers");
return;
}
@@ -1509,7 +1509,11 @@ void bt_mesh_net_recv(struct net_buf_simple *data, int8_t rssi,
* was neither a local element nor an LPN we're Friends for.
*/
if (!BLE_MESH_ADDR_IS_UNICAST(rx.ctx.recv_dst) ||
(!rx.local_match && !rx.friend_match)) {
(!rx.local_match && !rx.friend_match
#if CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
&& !rx.replay_msg
#endif
)) {
net_buf_simple_restore(&buf, &state);
bt_mesh_net_relay(&buf, &rx);
}
@@ -294,6 +294,9 @@ struct bt_mesh_net_rx {
ctl:1, /* Network Control */
net_if:2, /* Network interface */
local_match:1, /* Matched a local element */
#if CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
replay_msg:1, /* Replayed messages */
#endif
friend_match:1; /* Matched an LPN we're friends for */
uint16_t msg_cache_idx; /* Index of entry in message cache */
};
@@ -82,12 +82,14 @@ static uint8_t bt_mesh_gatts_addr[6];
#endif /* defined(CONFIG_BLE_MESH_NODE) && CONFIG_BLE_MESH_NODE */
static bool g_host_init = false;
int bt_mesh_host_init(void)
{
static bool init = false;
int rc;
if (init == true) {
if (g_host_init == true) {
BT_WARN("Already initialized host for mesh!");
return -EALREADY;
}
@@ -102,7 +104,30 @@ int bt_mesh_host_init(void)
}
osi_alarm_init();
init = true;
g_host_init = true;
return 0;
}
int bt_mesh_host_deinit(void)
{
int rc;
if (g_host_init == false) {
return -EALREADY;
}
osi_alarm_deinit();
rc = osi_alarm_delete_mux();
if (rc != 0) {
return -1;
}
btc_deinit();
g_host_init = false;
return 0;
}
@@ -759,15 +784,17 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
const struct bt_mesh_adv_data *ad, size_t ad_len,
const struct bt_mesh_adv_data *sd, size_t sd_len)
{
struct ble_gap_adv_params adv_params;
uint8_t buf[BLE_HS_ADV_MAX_SZ];
uint16_t interval = 0;
uint8_t buf_len = 0;
int err;
#if BLE_MESH_DEV
if (bt_mesh_atomic_test_bit(bt_mesh_dev.flags, BLE_MESH_DEV_ADVERTISING)) {
return -EALREADY;
}
#endif
uint8_t buf[BLE_HS_ADV_MAX_SZ];
uint8_t buf_len = 0;
int err;
struct ble_gap_adv_params adv_params;
err = set_ad(ad, ad_len, buf, &buf_len);
if (err) {
@@ -798,8 +825,6 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
}
memset(&adv_params, 0, sizeof adv_params);
adv_params.itvl_min = param->interval_min;
adv_params.itvl_max = param->interval_max;
if (param->options & BLE_MESH_ADV_OPT_CONNECTABLE) {
adv_params.conn_mode = BLE_GAP_CONN_MODE_UND;
@@ -812,6 +837,25 @@ int bt_le_adv_start(const struct bt_mesh_adv_param *param,
adv_params.disc_mode = BLE_GAP_DISC_MODE_NON;
}
interval = param->interval_min;
#if CONFIG_BLE_MESH_RANDOM_ADV_INTERVAL
/* If non-connectable mesh packets are transmitted with an adv interval
* not smaller than 10ms, then we will use a random adv interval between
* [interval / 2, interval] for them.
*/
if (adv_params.conn_mode == BLE_GAP_CONN_MODE_NON &&
adv_params.disc_mode == BLE_GAP_DISC_MODE_NON && interval >= 16) {
interval >>= 1;
interval += (bt_mesh_get_rand() % (interval + 1));
BT_INFO("%u->%u", param->interval_min, interval);
}
#endif
adv_params.itvl_min = interval;
adv_params.itvl_max = interval;
again:
err = ble_gap_adv_start(BLE_OWN_ADDR_PUBLIC, NULL, BLE_HS_FOREVER, &adv_params,
gap_event_cb, NULL);
@@ -877,7 +921,7 @@ int bt_mesh_ble_adv_start(const struct bt_mesh_ble_adv_param *param,
break;
case BLE_MESH_ADV_NONCONN_IND:
adv_params.conn_mode = BLE_GAP_CONN_MODE_NON;
adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN;
adv_params.disc_mode = BLE_GAP_DISC_MODE_NON;
break;
case BLE_MESH_ADV_DIRECT_IND_LOW_DUTY:
adv_params.conn_mode = BLE_GAP_CONN_MODE_DIR;
@@ -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);
}
@@ -711,6 +711,9 @@ bool bt_mesh_rpl_check(struct bt_mesh_net_rx *rx, struct bt_mesh_rpl **match)
return false;
} else {
#if CONFIG_BLE_MESH_NOT_RELAY_REPLAY_MSG
rx->replay_msg = 1;
#endif
return true;
}
}
+99 -27
View File
@@ -29,7 +29,7 @@ config BT_BLUEDROID_PINNED_TO_CORE
config BT_BTU_TASK_STACK_SIZE
int "Bluetooth Bluedroid Host Stack task stack size"
depends on BT_BLUEDROID_ENABLED
default 4096
default 4352
help
This select btu task stack size
@@ -61,21 +61,23 @@ config BT_SPP_ENABLED
help
This enables the Serial Port Profile
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"
@@ -99,26 +101,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"
@@ -200,6 +202,30 @@ 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 enables the GATT robust caching feature on the server.
if turned on, the Client Supported Features characteristic, Database Hash characteristic,
and Server Supported Features characteristic will be included in the GAP SERVICE.
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
@@ -215,6 +241,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
@@ -1006,7 +1040,7 @@ config BT_ACL_CONNECTIONS
config BT_MULTI_CONNECTION_ENBALE
bool "Enable BLE multi-conections"
depends on BT_BLUEDROID_ENABLED
depends on BT_BLE_ENABLED
default y
help
Enable this option if there are multiple connections
@@ -1027,7 +1061,7 @@ config BT_BLE_DYNAMIC_ENV_MEMORY
config BT_BLE_HOST_QUEUE_CONG_CHECK
bool "BLE queue congestion check"
depends on BT_BLUEDROID_ENABLED
depends on BT_BLE_ENABLED
default n
help
When scanning and scan duplicate is not enabled, if there are a lot of adv packets around
@@ -1039,6 +1073,14 @@ config BT_SMP_ENABLE
depends on BT_BLUEDROID_ENABLED
default BT_CLASSIC_ENABLED || BT_BLE_SMP_ENABLE
config BT_SMP_MAX_BONDS
int "BT/BLE maximum bond device count"
depends on BT_SMP_ENABLE
range 1 32
default 15
help
The number of security records for peer devices.
config BT_BLE_ACT_SCAN_REP_ADV_SCAN
bool "Report adv data and scan response individually when BLE active scan"
depends on BT_BLUEDROID_ENABLED && BT_BLE_ENABLED
@@ -1052,7 +1094,7 @@ config BT_BLE_ACT_SCAN_REP_ADV_SCAN
config BT_BLE_ESTAB_LINK_CONN_TOUT
int "Timeout of BLE connection establishment"
depends on BT_BLUEDROID_ENABLED
depends on BT_BLE_ENABLED
range 1 60
default 30
help
@@ -1085,16 +1127,46 @@ config BT_BLE_RPA_SUPPORTED
For BLE other 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_BLE_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))
depends on (BT_BLE_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3))
default y
help
This enables BLE 5.0 features, this option only support esp32c3/esp32s3 chip
config BT_BLE_42_FEATURES_SUPPORTED
bool "Enable BLE 4.2 features"
depends on (BT_BLUEDROID_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3))
depends on (BT_BLE_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3))
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_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_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_BLE_ENABLED
default n
help
This enable BLE high duty advertising interval feature
@@ -1,16 +1,8 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <string.h>
#include "esp_bt_device.h"
@@ -30,6 +22,11 @@ esp_err_t esp_ble_gap_register_callback(esp_gap_ble_cb_t callback)
return (btc_profile_cb_set(BTC_PID_GAP_BLE, callback) == 0 ? ESP_OK : ESP_FAIL);
}
esp_gap_ble_cb_t esp_ble_gap_get_callback(void)
{
return (esp_gap_ble_cb_t) btc_profile_cb_get(BTC_PID_GAP_BLE);
}
#if (BLE_42_FEATURE_SUPPORT == TRUE)
esp_err_t esp_ble_gap_config_adv_data(esp_ble_adv_data_t *adv_data)
{
@@ -130,6 +127,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)
@@ -146,7 +156,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;
@@ -362,7 +372,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;
@@ -439,8 +449,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;
}
@@ -479,8 +488,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;
}
@@ -586,7 +594,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;
@@ -738,6 +750,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)
@@ -1029,8 +1073,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;
@@ -1044,13 +1093,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;
@@ -1061,6 +1119,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)
@@ -1275,7 +1338,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)) {
@@ -1299,7 +1362,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)) {
@@ -1323,7 +1386,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)) {
@@ -1347,3 +1410,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)
@@ -420,6 +420,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;
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -29,6 +29,11 @@ esp_err_t esp_ble_gattc_register_callback(esp_gattc_cb_t callback)
return ESP_OK;
}
esp_gattc_cb_t esp_ble_gattc_get_callback(void)
{
return (esp_gattc_cb_t) btc_profile_cb_get(BTC_PID_GATTC);
}
esp_err_t esp_ble_gattc_app_register(uint16_t app_id)
{
btc_msg_t msg = {0};
@@ -447,6 +452,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,
@@ -29,6 +29,11 @@ esp_err_t esp_ble_gatts_register_callback(esp_gatts_cb_t callback)
return (btc_profile_cb_set(BTC_PID_GATTS, callback) == 0 ? ESP_OK : ESP_FAIL);
}
esp_gatts_cb_t esp_ble_gatts_get_callback(void)
{
return (esp_gatts_cb_t) btc_profile_cb_get(BTC_PID_GATTS);
}
esp_err_t esp_ble_gatts_app_register(uint16_t app_id)
{
btc_msg_t msg = {0};
@@ -421,4 +426,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
@@ -1,16 +1,8 @@
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include <stdlib.h>
@@ -187,6 +179,9 @@ esp_err_t esp_bt_hf_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;
@@ -253,6 +248,9 @@ esp_err_t esp_bt_hf_indchange_notification(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;
@@ -280,6 +278,10 @@ esp_err_t esp_bt_hf_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;
@@ -353,11 +355,14 @@ esp_err_t esp_bt_hf_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_bt_hf_cnum_response(esp_bd_addr_t remote_addr, char *number, esp_hf_subscriber_service_type_t type)
esp_err_t esp_bt_hf_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;
@@ -367,7 +372,8 @@ esp_err_t esp_bt_hf_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),
@@ -528,10 +534,30 @@ esp_err_t esp_bt_hf_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_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
@@ -1,16 +1,8 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "common/bt_target.h"
#include <string.h>
@@ -470,8 +462,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();
@@ -492,6 +503,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 */
@@ -1,16 +1,8 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __ESP_A2DP_API_H__
#define __ESP_A2DP_API_H__
@@ -182,7 +174,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
*
*/
@@ -199,7 +191,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
*
*/
@@ -216,7 +208,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
*
*/
@@ -231,7 +223,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
*
*/
@@ -247,7 +239,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
*
*/
@@ -263,7 +255,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
*
*/
@@ -279,7 +271,7 @@ esp_err_t esp_a2d_sink_disconnect(esp_bd_addr_t remote_bda);
*
* @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
*
*/
@@ -296,7 +288,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
*
*/
@@ -311,7 +303,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
*
*/
@@ -328,7 +320,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
*
*/
@@ -344,7 +336,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
*
*/
@@ -359,7 +351,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
*
*/
@@ -55,7 +55,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,
@@ -134,18 +133,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 {
@@ -175,10 +176,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
@@ -1,16 +1,8 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __ESP_GAP_BLE_API_H__
#define __ESP_GAP_BLE_API_H__
@@ -141,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
@@ -210,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;
@@ -419,7 +419,10 @@ typedef enum {
typedef enum {
BLE_SCAN_DUPLICATE_DISABLE = 0x0, /*!< the Link Layer should generate advertising reports to the host for each packet received */
BLE_SCAN_DUPLICATE_ENABLE = 0x1, /*!< the Link Layer should filter out duplicate advertising reports to the Host */
BLE_SCAN_DUPLICATE_MAX = 0x2, /*!< 0x02 0xFF, Reserved for future use */
#if (BLE_50_FEATURE_SUPPORT == TRUE)
BLE_SCAN_DUPLICATE_ENABLE_RESET, /*!< Duplicate filtering enabled, reset for each scan period, only supported in BLE 5.0. */
#endif
BLE_SCAN_DUPLICATE_MAX /*!< Reserved for future use. */
} esp_ble_scan_duplicate_t;
#if (BLE_42_FEATURE_SUPPORT == TRUE)
/// Ble scan parameters
@@ -594,6 +597,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
@@ -620,6 +630,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)
@@ -669,6 +680,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 {
@@ -676,7 +689,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;
@@ -911,6 +926,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
*/
@@ -997,6 +1031,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
@@ -1309,6 +1349,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;
/**
@@ -1330,6 +1414,15 @@ typedef void (* esp_gap_ble_cb_t)(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_p
*/
esp_err_t esp_ble_gap_register_callback(esp_gap_ble_cb_t callback);
/**
* @brief This function is called to get the current gap callback
*
* @return
* - esp_gap_ble_cb_t : callback function
*
*/
esp_gap_ble_cb_t esp_ble_gap_get_callback(void);
#if (BLE_42_FEATURE_SUPPORT == TRUE)
/**
* @brief This function is called to override the BTA default ADV parameters.
@@ -1433,9 +1526,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
@@ -1457,7 +1558,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.
*
@@ -1538,6 +1639,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.
*
@@ -1586,7 +1688,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
@@ -1799,6 +1901,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) */
/**
@@ -2016,6 +2141,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.
*
@@ -2029,6 +2170,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
*
@@ -2039,6 +2195,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
@@ -2065,8 +2222,9 @@ esp_err_t esp_ble_gap_set_ext_scan_params(const esp_ble_ext_scan_params_t *param
/**
* @brief This function is used to enable scanning.
*
* @param[in] duration : Scan duration
* @param[in] period : Time interval from when the Controller started its last Scan Duration until it begins the subsequent Scan Duration.
* @param[in] duration Scan duration time, where Time = N * 10 ms. Range: 0x0001 to 0xFFFF.
* @param[in] period Time interval from when the Controller started its last Scan Duration until it begins the subsequent Scan Duration.
* Time = N * 1.28 sec. Range: 0x0001 to 0xFFFF.
*
* @return - ESP_OK : success
* - other : failed
@@ -2175,6 +2333,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
@@ -238,6 +238,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 {
/**
@@ -68,6 +68,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;
@@ -133,7 +134,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 {
@@ -281,6 +282,15 @@ typedef void (* esp_gattc_cb_t)(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_
*/
esp_err_t esp_ble_gattc_register_callback(esp_gattc_cb_t callback);
/**
* @brief This function is called to get the current application callbacks
* with BTA GATTC module.
*
* @return
* - esp_gattC_cb_t : current callback
*
*/
esp_gattc_cb_t esp_ble_gattc_get_callback(void);
/**
* @brief This function is called to register application callbacks
@@ -367,6 +377,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.
@@ -660,6 +671,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.
@@ -304,6 +304,16 @@ typedef void (* esp_gatts_cb_t)(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_
*/
esp_err_t esp_ble_gatts_register_callback(esp_gatts_cb_t callback);
/**
* @brief This function is called to get the current application callbacks
* with BTA GATTS module.
*
* @return
* - esp_gatts_cb_t : current callback
*
*/
esp_gatts_cb_t esp_ble_gatts_get_callback(void);
/**
* @brief This function is called to register application identifier
*
@@ -473,6 +483,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.
@@ -581,6 +592,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
@@ -1,16 +1,8 @@
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __ESP_HF_AG_API_H__
#define __ESP_HF_AG_API_H__
@@ -70,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 */
@@ -91,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 */
/**
@@ -105,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 */
@@ -113,48 +116,89 @@ typedef union
* @brief ESP_HF_UNAT_RESPOSNE_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_VTS_RESPOSNE_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_RESPOSNE_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 */
@@ -162,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*/
/**
@@ -216,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
*
*/
@@ -231,7 +289,7 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -246,7 +304,7 @@ esp_err_t esp_bt_hf_init(esp_bd_addr_t remote_addr);
*
* @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
*
*/
@@ -261,7 +319,7 @@ esp_err_t esp_bt_hf_deinit(esp_bd_addr_t remote_addr);
*
* @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
*
*/
@@ -276,7 +334,7 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -290,8 +348,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -305,8 +363,8 @@ esp_err_t esp_bt_hf_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: audio disconnect request is sent to lower layer
* - ESP_ERR_INVALID_STATE: if bluetooth stack is not yet enabled
* - ESP_FAIL: others
*
*/
@@ -322,8 +380,8 @@ esp_err_t esp_bt_hf_disconnect_audio(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
*
*/
@@ -341,8 +399,9 @@ esp_err_t esp_bt_hf_vra(esp_bd_addr_t remote_bda, esp_hf_vr_state_t value);
* @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
*
*/
@@ -358,8 +417,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -374,8 +433,8 @@ esp_err_t esp_hf_unat_response(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
*
*/
@@ -392,8 +451,9 @@ esp_err_t esp_bt_hf_cmee_response(esp_bd_addr_t remote_bda, esp_hf_at_response_c
* @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
*
*/
@@ -415,8 +475,9 @@ esp_err_t esp_bt_hf_indchange_notification(esp_bd_addr_t remote_addr, esp_hf_cal
* @param[in] batt_lev: batery 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
*
*/
@@ -434,8 +495,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -447,7 +508,7 @@ esp_err_t esp_bt_hf_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)
@@ -455,8 +516,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -471,14 +532,18 @@ esp_err_t esp_bt_hf_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_bt_hf_cnum_response(esp_bd_addr_t remote_addr, char *number, esp_hf_subscriber_service_type_t type);
esp_err_t esp_bt_hf_cnum_response(esp_bd_addr_t remote_addr, char *number, int number_type, esp_hf_subscriber_service_type_t service_type);
/**
*
@@ -488,8 +553,9 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -508,8 +574,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -530,8 +596,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -543,6 +609,9 @@ esp_err_t esp_bt_hf_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
@@ -552,8 +621,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -574,8 +643,8 @@ esp_err_t esp_bt_hf_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
*
*/
@@ -592,12 +661,28 @@ esp_err_t esp_bt_hf_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_bt_hf_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.
@@ -1,16 +1,8 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/*
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __ESP_HF_CLIENT_API_H__
#define __ESP_HF_CLIENT_API_H__
@@ -96,6 +88,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 +109,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 +245,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 +305,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 +318,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 +331,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 +346,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 +361,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 +374,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 +388,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 +401,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 +414,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 +430,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 +445,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 +460,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 +478,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 +493,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 +506,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 +515,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 +532,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 +545,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 +558,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 +573,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
*
*/
@@ -579,8 +586,8 @@ esp_err_t esp_hf_client_send_dtmf(char code);
* 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
*
*/
@@ -593,7 +600,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
*
*/
@@ -610,13 +617,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
@@ -159,7 +159,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;
@@ -727,8 +727,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;
@@ -1021,6 +1020,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 */
@@ -1285,11 +1285,11 @@ void bta_av_setconfig_rsp (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
if (p_scb->codec_type == BTA_AV_CODEC_SBC || num > 1) {
/* if SBC is used by the SNK as INT, discover req is not sent in bta_av_config_ind.
* call disc_res now */
* call cfg_res now */
/* this is called in A2DP SRC path only, In case of SINK we don't need it */
if (local_sep == AVDT_TSEP_SRC) {
p_scb->p_cos->disc_res(p_scb->hndl, num, num, 0, p_scb->peer_addr,
UUID_SERVCLASS_AUDIO_SOURCE);
p_scb->p_cos->cfg_res(p_scb->hndl, num, num, 0, p_scb->peer_addr,
UUID_SERVCLASS_AUDIO_SOURCE);
}
} else {
/* we do not know the peer device and it is using non-SBC codec
@@ -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]);
@@ -1224,9 +1224,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;
}
@@ -577,6 +577,14 @@ void bta_dm_disable (tBTA_DM_MSG *p_data)
bta_dm_disable_search_and_disc();
bta_dm_cb.disabling = TRUE;
#if BLE_INCLUDED == TRUE
/* reset scan activity status*/
btm_cb.ble_ctr_cb.scan_activity = 0;
/* reset advertising activity status*/
btm_cb.ble_ctr_cb.inq_var.state = 0;
#endif
#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE
BTM_BleClearBgConnDev();
#endif
@@ -982,10 +990,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 +1144,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 +1450,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 +3672,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 +3849,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;
@@ -4732,6 +4764,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 +5100,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 +5641,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 +5732,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 +5832,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
@@ -671,7 +671,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 +696,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 +1744,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 +2876,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 +2955,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 +2966,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 +2976,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 +3184,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
@@ -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
@@ -393,7 +389,7 @@ void bta_dm_co_ble_set_init_key_req(UINT8 init_key)
{
#if (SMP_INCLUDED == TRUE)
init_key &= 0x0f; // 4~7bit reservd, only used the 0~3bit
bte_appl_cfg.ble_init_key &= init_key;
bte_appl_cfg.ble_init_key = init_key;
#endif ///SMP_INCLUDED == TRUE
}
@@ -401,7 +397,7 @@ void bta_dm_co_ble_set_rsp_key_req(UINT8 rsp_key)
{
#if (SMP_INCLUDED == TRUE)
rsp_key &= 0x0f; // 4~7bit reservd, only used the 0~3bit
bte_appl_cfg.ble_resp_key &= rsp_key;
bte_appl_cfg.ble_resp_key = rsp_key;
#endif ///SMP_INCLUDED == TRUE
}
@@ -96,6 +96,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 */
@@ -199,7 +201,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
};
@@ -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);
@@ -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
};
@@ -400,8 +411,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 +845,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 +976,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 +1045,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 +1115,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 +1214,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 +1652,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 +1684,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 */
@@ -1706,4 +1779,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 */
@@ -122,10 +122,14 @@ void bta_gattc_reset_discover_st(tBTA_GATTC_SERV *p_srcb, tBTA_GATT_STATUS statu
static void bta_gattc_enable(tBTA_GATTC_CB *p_cb)
{
APPL_TRACE_DEBUG("bta_gattc_enable");
if (p_cb->state == BTA_GATTC_STATE_DISABLED) {
/* This is a workaround because the task priority of btc (BTA_GATTC_CLOSE_EVT
in that task) is lower than the priority of the btu task.
Consequently, the p_cb->state fails to be restored to BTA_GATTC_STATE_DISABLED
and remains in the BTA_GATTC_STATE_DISABLING state. */
if (p_cb->state == BTA_GATTC_STATE_DISABLED || p_cb->state == BTA_GATTC_STATE_DISABLING) {
/* 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");
@@ -199,7 +203,11 @@ void bta_gattc_register(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_data)
cb_data.reg_oper.status = BTA_GATT_NO_RESOURCES;
/* check if GATTC module is already enabled . Else enable */
if (p_cb->state == BTA_GATTC_STATE_DISABLED) {
/* This is a workaround because the task priority of btc (BTA_GATTC_CLOSE_EVT
in that task) is lower than the priority of the btu task.
Consequently, the p_cb->state fails to be restored to BTA_GATTC_STATE_DISABLED
and remains in the BTA_GATTC_STATE_DISABLING state. */
if (p_cb->state == BTA_GATTC_STATE_DISABLED || p_cb->state == BTA_GATTC_STATE_DISABLING) {
bta_gattc_enable (p_cb);
}
/* todo need to check duplicate uuid */
@@ -692,9 +700,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;
@@ -821,8 +831,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) {
@@ -1174,6 +1182,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
@@ -1289,7 +1328,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;
@@ -1426,7 +1466,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;
@@ -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) */
@@ -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;
@@ -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)
@@ -503,6 +510,10 @@ UINT8 bta_gattc_co_find_hash_in_cache(hash_key_t hash_key)
UINT8 bta_gattc_co_get_addr_num(void)
{
if (cache_env == NULL) {
return 0;
}
return cache_env->num_addr;
}
@@ -520,26 +531,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 +581,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)
@@ -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";
}
@@ -526,4 +534,17 @@ void bta_gattc_deinit(void)
FREE_AND_RESET(bta_gattc_cb_ptr);
#endif /* #if BTA_DYNAMIC_MEMORY */
}
uint8_t bta_gattc_cl_rcb_active_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < BTA_GATTC_CL_MAX; i ++) {
if (bta_gattc_cb.cl_rcb[i].in_use) {
count++;
}
}
return count;
}
#endif /* GATTC_INCLUDED == TRUE && BLE_INCLUDED == TRUE */
@@ -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;
@@ -669,7 +679,7 @@ BOOLEAN bta_gattc_mark_bg_conn (tBTA_GATTC_IF client_if, BD_ADDR_PTR remote_bda
#if (!CONFIG_BT_STACK_NO_LOG)
char bdstr[18] = {0};
#endif
APPL_TRACE_ERROR("%s unable to find the bg connection mask for: %s", __func__,
APPL_TRACE_WARNING("%s unable to find the bg connection mask for: %s", __func__,
bdaddr_to_string((bt_bdaddr_t *)remote_bda_ptr, bdstr, sizeof(bdstr)));
}
return FALSE;
@@ -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
@@ -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 */
@@ -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)
@@ -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;
}
@@ -149,4 +152,17 @@ void bta_gatts_deinit(void)
#endif /* #if BTA_DYNAMIC_MEMORY */
}
uint8_t bta_gatts_srvc_active_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < BTA_GATTS_MAX_SRVC_NUM; i ++) {
if (bta_gatts_cb.srvc_cb[i].in_use) {
count++;
}
}
return count;
}
#endif /* GATTS_INCLUDED */
@@ -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);
@@ -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);
@@ -94,7 +94,7 @@ static void bta_ag_cback_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data, tBTA_AG_
/* call app callback with open event */
open.hdr.handle = bta_ag_scb_to_idx(p_scb);
open.hdr.app_id = p_scb->app_id;
open.status = status;
open.hdr.status = status;
open.service_id = bta_ag_svc_id[p_scb->conn_service];
if (p_data) {
/* if p_data is provided then we need to pick the bd address from the open api structure */
@@ -131,7 +131,7 @@ void bta_ag_register(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
/* call app callback with register event */
reg.hdr.handle = bta_ag_scb_to_idx(p_scb);
reg.hdr.app_id = p_scb->app_id;
reg.status = BTA_AG_SUCCESS;
reg.hdr.status = BTA_AG_SUCCESS;
(*bta_ag_cb.p_cback)(BTA_AG_REGISTER_EVT, (tBTA_AG *) &reg);
}
@@ -397,10 +397,6 @@ void bta_ag_rfc_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
bta_sys_conn_close(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr);
/* call close call-out */
#if (BTM_SCO_HCI_INCLUDED == TRUE)
bta_ag_sco_co_close();
#endif
/* call close cback */
(*bta_ag_cb.p_cback)(BTA_AG_CLOSE_EVT, (tBTA_AG *) &close);
@@ -785,14 +781,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 +803,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);
}
@@ -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)*/
@@ -146,6 +146,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[] =
{
@@ -856,6 +864,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 +873,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 +882,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 +890,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;
}
@@ -1498,7 +1522,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);

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