Compare commits

..

807 Commits

Author SHA1 Message Date
Marius Vikhammer
ac5d805d0e versions: Update version to 4.4.5 2023-06-08 10:16:36 +08:00
Jiang Jiang Jian
fd5e03b221 Merge branch 'bugfix/fix_some_esp32c3_s3_ble_bugs_230422_4.4' into 'release/v4.4'
Fixed some ESP32C3/S3 BLE bugs 23-04-22(backport v4.4)

See merge request espressif/esp-idf!23354
2023-05-26 11:15:27 +08:00
zhiweijian
1c2e8f41f3 fix blufi doc error 2023-05-25 10:46:12 +00:00
zhiweijian
c76c6508a1 Fixed battery profile wrong condition 2023-05-25 10:46:12 +00:00
zwj
ecc2cc1be0 Fixed no error report when own address type is rpa_random and no random address setting 2023-05-25 10:46:12 +00:00
chenjianhua
31166e0884 Update bt lib for ESP32-C3 and ESP32-S3
- Fixed remote mic error during encryption procedure
2023-05-25 10:46:12 +00:00
chenjianhua
1ddc3a1d5c Update bt lib for ESP32-C3 and ESP32-S3
- Fixed ble hopping selection for connection when disabled 5.0 feature
2023-05-25 10:46:12 +00:00
zhiweijian
f886e3c057 Disable controller 5.0 feature bits if host 5.0 feature is not enabled 2023-05-25 10:46:12 +00:00
zwj
509fedeed0 improve scan performance when scan and sync coexist on ESP32-C3 and ESP32-S3 2023-05-25 10:46:12 +00:00
chenjianhua
bd77f3d436 Update bt lib for ESP32-C3 and ESP32-S3
- Fixed non-connectable and non-scannable directed adv can't be scanned
2023-05-25 10:46:12 +00:00
Jiang Jiang Jian
c25d92074e Merge branch 'bugfix/update_test_dl_esp_cert_v4.4' into 'release/v4.4'
tests: update Root certificate for the test endpoints (v4.4)

See merge request espressif/esp-idf!23799
2023-05-18 19:32:43 +08:00
Jiang Jiang Jian
1071b13c9e Merge branch 'bugfix/fix_iphone_disconnects_immediately_after_connecting_when_BLE_wifi_coexist_v4.4' into 'release/v4.4'
Fix the bug that the iPhone disconnects immediately after connecting when BLE and wifi coexist (backport v4.4)

See merge request espressif/esp-idf!23802
2023-05-18 15:18:09 +08:00
zhiweijian
239d74be65 Fix the bug that the iPhone disconnects immediately after connecting when BLE and wifi coexist 2023-05-17 18:05:49 +08:00
Mahavir Jain
1d61e300ac tests: update Root certificate for the test endpoints
Use Root certificate (`DigiCert Global Root G2`) for the
`dl.espressif.com` and `espressif.com` test endpoints.

This fixes the test failure introduced due to renewal of
the intermediate certificate.
2023-05-17 15:28:46 +05:30
Roland Dobai
7641c8ef4f Merge branch 'bugfix/constraint_urllib3_v44' into 'release/v4.4'
requirements: Pin urllib3 to <2

See merge request espressif/esp-idf!23608
2023-05-07 00:40:21 +08:00
Sergei Silnov
743d6a12c4 requirements: Pin urllib3 to <2 2023-05-05 13:17:12 +02:00
Jiang Jiang Jian
3cec3a0026 Merge branch 'bugfix/fix_some_wifi_bugs_230420_v4.4' into 'release/v4.4'
esp_wifi: fix some wifi bugs 230420(Backport v4.4)

See merge request espressif/esp-idf!23300
2023-04-21 11:53:42 +08:00
morris
9516e80f61 Merge branch 'bugfix/wakeup_io_hold_unhold_in_sleep_v4.4' into 'release/v4.4'
gpio: Fix deep sleep wakeup IOs unable to unhold after wakeup (v4.4)

See merge request espressif/esp-idf!22670
2023-04-21 10:51:05 +08:00
Jiang Jiang Jian
2951d6e2f7 Merge branch 'bugfix/mdns_no_task_notifiers' into 'release/v4.4'
mdns: use semaphore instead of task notification bits (v4.4)

See merge request espressif/esp-idf!22920
2023-04-21 09:32:10 +08:00
Jiang Jiang Jian
f31b5c3bd2 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!23301
2023-04-21 02:00:20 +08:00
Mahavir Jain
62a9966181 Merge branch 'bugfix/block9_can_not_be_used_for_fe_v4.4' into 'release/v4.4'
efuse: Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5) (v4.4)

See merge request espressif/esp-idf!23292
2023-04-20 23:03:51 +08:00
Zim Kalinowski
3f08fd4400 Merge branch 'contrib/github_pr_11163_v4.4' into 'release/v4.4'
Make custom bootloader message match actual output (GitHub PR) (v4.4)

See merge request espressif/esp-idf!23140
2023-04-20 19:45:06 +08:00
Zim Kalinowski
4232e24b0f Merge branch 'bugfix/adds_iram_attr_for_some_esp_timer_apis_v4.4' into 'release/v4.4'
esp_timer: Adds IRAM_ATTR for esp_timer_restart and esp_timer_is_active (v4.4)

See merge request espressif/esp-idf!23308
2023-04-20 19:41:39 +08:00
Zim Kalinowski
39afb1eb1f Merge branch 'contrib/github_pr_7754_v4.0' into 'release/v4.4'
Fix infinite recursion in FLAG_ATTR operator (GitHub PR) (backport v4.4)

See merge request espressif/esp-idf!23235
2023-04-20 19:37:13 +08:00
chenjianhua
8f3f635e8c bluedroid: report status after clearing the BLE white list 2023-04-20 15:59:07 +08:00
chenjianhua
908c5e1fd2 bluedroid: fix GATTC cache address save 2023-04-20 15:59:07 +08:00
chenjianhua
e2a307bd8f bluedroid: fix adv and scan state conflict 2023-04-20 15:59:07 +08:00
chenjianhua
814bcf4021 bluedroid: support get bluetooth device name 2023-04-20 15:59:07 +08:00
morris
e34f0638c8 Merge branch 'bugfix/fix_deep_sleep_crash_when_psram_high_freq_4.4' into 'release/v4.4'
mspi: turn down freq to fix crash when sleep (v4.4)

See merge request espressif/esp-idf!22750
2023-04-20 14:54:46 +08:00
KonstantinKondrashov
745cac7a04 esp_timer: Adds IRAM_ATTR for esp_timer_restart and esp_timer_is_active
Closes https://github.com/espressif/esp-idf/issues/10522
Closes https://github.com/espressif/esp-idf/issues/10859
2023-04-20 14:53:38 +08:00
KonstantinKondrashov
363c21891c esptool: Update esptool
Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5)
2023-04-20 13:58:51 +08:00
Mahavir Jain
9e6e5ba0ef docs: add a note regarding EFuse Block9 key purpose quirk for some chips 2023-04-20 13:58:51 +08:00
KonstantinKondrashov
89d11be4a9 efuse: Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5)
eFuse module has a hardware bug.
It is related to ESP32-C3, C6, S3, H2 chips:
    - BLOCK9 (BLOCK_KEY5) can not be used by XTS_AES keys.
For H2 chips, the BLOCK9 (BLOCK_KEY5) can not be used by ECDSA keys.
S2 does not have such a hardware bug.
2023-04-20 13:58:51 +08:00
morris
c49e8d3611 Merge branch 'bugfix/i2c_timing_wrong_v4.4' into 'release/v4.4'
i2c: fix a bug in sda sample timing (backport v4.4)

See merge request espressif/esp-idf!23227
2023-04-20 13:11:18 +08:00
muhaidong
bd9c48acdb esp_wifi: fix some wifi bugs 230420
1. fix softap qos null issue
2. fix set inactive time crash issue
2023-04-20 11:26:05 +08:00
morris
2dc6c95859 Merge branch 'bugfix/usb_serial_driver_block_v4.4' into 'release/v4.4'
usb_serial_jtag: Fix bug of blocking TX xfer when using driver (backport v4.4)

See merge request espressif/esp-idf!22831
2023-04-20 11:01:01 +08:00
morris
2b4797703f Merge branch 'bugfix/spi_lcd_max_trans_size_v4.4' into 'release/v4.4'
spi_lcd: maximum transfer size should respect bus configuration (v4.4)

See merge request espressif/esp-idf!23231
2023-04-20 10:28:21 +08:00
Jiang Jiang Jian
6f4799a49b Merge branch 'feature/support_ble_write_and_notify_throughput_test_at_the_same_time_v4.4' into 'release/v4.4'
support ble notify and write throughput test at the same time(backport v4.4)

See merge request espressif/esp-idf!23234
2023-04-19 21:10:53 +08:00
Jiang Jiang Jian
5999775329 Merge branch 'bugfix/softap_beacon_process_v4.4' into 'release/v4.4'
esp_wifi: validate softAP interface when sending beacon and add sta_connected callback (Backport v4.4)

See merge request espressif/esp-idf!23255
2023-04-19 20:19:52 +08:00
Ivan Grokhotkov
f87bdd4a9f Merge branch 'bugfix/fixed_sdmmc_high_speed_ddr_timing_issue_on_esp32s3_v4.4' into 'release/v4.4'
sdmmc: fixed incorrect clock phase settings on esp32s3 (v4.4)

See merge request espressif/esp-idf!23261
2023-04-19 17:42:45 +08:00
Jiang Jiang Jian
34475c13cb Merge branch 'feature/add_menuconfig_of_calibration_mode_v4.4' into 'release/v4.4'
Feature/add menuconfig of calibration mode v4.4(Backport v4.4)

See merge request espressif/esp-idf!23262
2023-04-19 17:02:56 +08:00
Mahavir Jain
749a07bdce Merge branch 'fix/esp32s3_ununsed_dcache_as_dram_v4.4' into 'release/v4.4'
esp_hw_support: Update the memory ptr location/property checks to include the unused DCACHE added to DRAM (v4.4)

See merge request espressif/esp-idf!23269
2023-04-19 16:38:13 +08:00
Sarvesh Bodakhe
9baec826ac esp_wifi: fix some wifi bugs
1. Move wpa_supplicant WIFI_EVENT_STA_CONNECTED and WIFI_EVENT_STA_DISCONNECTED event handlers into callbacks
2. Validate softAP interface when sending beacon frame
2023-04-19 12:13:52 +05:30
Laukik Hase
aac8bc9a71 soc/esp32s3: Fix the SOC_MEM_INTERNAL_HIGH value
- As per the memory block diagram for ESP32-S3, the
  internal memory address ranges as follows:
  DRAM: 0x3FC88000 (== SOC_MEM_INTERNAL_LOW) <-> 0x3FCF0000
  IRAM: 0x40378000 <-> 0x403E0000 (== SOC_MEM_INTERNAL_HIGH)
2023-04-19 10:35:58 +05:30
Laukik Hase
a2580b3f36 esp_hw_support: Update memory ptr location/property checks
- to acknowledge the unused DCACHE added to DRAM for ESP32-S3

- For ESP32-S3, when the DCACHE size is set to 16 kB, the unused 48 kB is added to
  the heap in 2 blocks of 32 kB (from 0x3FCF0000) and 16 kB (from 0x3C000000).
- But, if we try allocating memory from the 16 kB block and run an `esp_ptr_internal`
  check on that memory pointer, it fails as the address block from 0x3C000000
  corresponds to the external memory symbols SOC_DROM_LOW and SOC_EXTRAM_DATA_LOW.
  (E.g. freertos - If the IDLE task stack buffer gets allocated from this region,
  the firmware will abort due to this failure).
- Thus, the checks `esp_ptr_internal`, `esp_ptr_in_drom` and `esp_ptr_byte_accessible`
  have been updated to acknowledge this memory as a part of the DRAM.

Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2023-04-19 10:35:57 +05:30
muhaidong
0426873a43 esp_phy: add menuconfig of phy calibration mode 2023-04-18 20:18:42 +08:00
muhaidong
b91d25e575 disable reduce PHY TX power when brownout reset 2023-04-18 20:17:20 +08:00
Armando
fb6d9cd741 sdmmc: I/O phase adjustments
1. Fix incorrect meaning of SDMMC.clock bits, synchronize the names
   with the TRM.
2. Choose input and output phases to satisfy typical timing
   requirements.
3. Move use_hold_reg setting into the host driver, since it is related
   to timing.

Closes https://github.com/espressif/esp-idf/issues/8521
Related to https://github.com/espressif/esp-idf/issues/8257
2023-04-18 20:07:32 +08:00
morris
23f0e7385b spi_lcd: test spi lcd io can transfer color data to a fixed window region
also test the io tx_param and tx_color can skip the command phase
2023-04-18 13:38:56 +08:00
morris
7225068256 spi_lcd: maximum transfer size should respect bus configuration
Also this commit added the SPI_TRANS_CS_KEEP_ACTIVE flag for io_tx_color
2023-04-18 10:36:39 +08:00
Otto Winter
10f500ddfe bugfix (esp_common): remove infinite recursion in FLAG_ATTR operator
Closes https://github.com/espressif/esp-idf/pull/7754

Signed-off-by: Jakob Hasse <jakob.hasse@espressif.com>
2023-04-17 18:19:45 +08:00
zhiweijian
51602a7f10 support ble notify and write throughput test at the same time 2023-04-17 17:48:24 +08:00
Jiang Jiang Jian
7eba5f8002 Merge branch 'bugfix/bt_diable_enbale_crash_v4.4' into 'release/v4.4'
bt:Fixed esp32 controller bug(v4.4)

See merge request espressif/esp-idf!23151
2023-04-17 16:16:23 +08:00
Omar Chebib
6022afc980 i2c: fix a bug in sda sample timing
* Closes https://github.com/espressif/esp-idf/issues/9777

This bug prevented SCL line to work properly after a NACK was received in master mode.
2023-04-17 16:03:34 +08:00
Jiang Jiang Jian
0e9c393d1b Merge branch 'bugfix/fix_systimer_stall_issue_in_lightsleep_v4.4' into 'release/v4.4'
esp_wifi: allow connectionless ps with mesh, fix failed to sleep after scan;...

See merge request espressif/esp-idf!23200
2023-04-17 15:32:31 +08:00
Island
424ddb34af Merge branch 'bugfix/ble_mesh_fix_heartbeat_set_v4.4' into 'release/v4.4'
ble_mesh: stack: Update the heartbeat filter entry add/remove handling (v4.4)

See merge request espressif/esp-idf!23164
2023-04-14 19:14:47 +08:00
zwj
b69ec22cb9 Fixed duplicate scan refresh cycle is not accurate after restarting scan on ESP32 2023-04-14 12:10:38 +08:00
liuning
081b8ffb18 esp_wifi: allow connectionless ps with mesh, fix failed to sleep after scan; coex: fix esp32 wifi interrupted by ble act (d51ef5c0) 2023-04-14 12:00:51 +08:00
liuning
dce377bcfd rtc_sleep: workaround systimer stall issue during lightsleep on ESP32C3 2023-04-14 11:59:42 +08:00
Jiang Jiang Jian
e5a41d97a1 Merge branch 'bugfix/espnow_config_channel_v4.4' into 'release/v4.4'
esp_wifi: fix espnow example add peer fail when config channel(v4.4)

See merge request espressif/esp-idf!23178
2023-04-13 16:14:43 +08:00
chenjianxing
89cede3895 esp_wifi: fix espnow example add peer fail when config channel
Closes https://github.com/espressif/esp-idf/issues/9592
2023-04-13 10:53:31 +08:00
wangmengyang
7a7090a46a bt: added coex adapter operation to get version of coexist module to ESP32 Bluetooth Controller 2023-04-13 10:24:01 +08:00
wangjialiang
ab48bfb5b7 ble_mesh: stack: Update the heartbeat filter entry add/remove handling 2023-04-12 15:03:07 +08:00
xiongweichao
f9bfdd0b1e bt:Fixed esp32 controller bug
1. Fixed crash after controller disable and re-enable
2. Fixed the crash caused by processing the HCI_Read_Remote_Extented_Features command in the non-connected state
3. Fixed disconnection due to not handling lmp_unsniff_req in LC_WAIT_SNIFF_SUB_RSP state
4. Fixed crash caused by supervision timeout greater than sniff interval

Closes https://github.com/espressif/esp-idf/issues/11164
Closes https://github.com/espressif/esp-idf/issues/10835
2023-04-12 09:15:49 +08:00
Jiang Jiang Jian
7534dac3f8 Merge branch 'mesh/bugfix_fix_heap_corrupt_issue_v4.4' into 'release/v4.4'
esp_wifi: fix bugs in LR and mesh (backport v4.4)

See merge request espressif/esp-idf!23127
2023-04-11 21:18:56 +08:00
zhangyanjiao
37ff6b2ac9 Update the ESP-NOW frame length in docs 2023-04-11 14:21:43 +08:00
zhangyanjiao
fc7b5673f7 esp_wifi:
1. wifi_mesh: fix the heap corrupt issue in MTXON task
2. Update tx rate when phymode change from LR to 11N

https://github.com/espressif/esp-idf/issues/11006
2023-04-11 14:21:08 +08:00
hasheddan
e2a59b8bf4 Make custom bootloader message match actual output
Fixes the custom bootloader README.md so that the example output matches
what will actually be output by default in the custom bootloader.

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
2023-04-11 13:41:40 +08:00
Jiang Jiang Jian
8e559452d9 Merge branch 'bugfix/delete_node_during_list_traverse_4.4' into 'release/v4.4'
bugfix: Fixed the crash of LoadProhibited caused by invalid operation on list node in handling hci_hardware_error event (v4.4)

See merge request espressif/esp-idf!23118
2023-04-11 11:37:03 +08:00
Jiang Jiang Jian
43a38fc13e Merge branch 'bugfix/fix_some_wifi_bugs_230403_v4.4' into 'release/v4.4'
esp_wifi: fix some wifi bugs 230403(Backport v4.4)

See merge request espressif/esp-idf!23049
2023-04-10 20:35:22 +08:00
muhaidong
4b3ff10c5d esp_wifi: fix some wifi bugs 230403
1. fix sta auth failed but softap shows it connected issue
2. fix ftm procedure with peer failed status 4 issue
3. send ftm frames immediately
4. send null data when state change from association to run
5. docs: add some details for wifi scan description
2023-04-10 15:08:02 +08:00
Jiang Jiang Jian
b7ddd82ad6 Merge branch 'bugfix/nvs_save_for_new_config_v4.4' into 'release/v4.4'
esp_wifi: Add nvs code for new config params

See merge request espressif/esp-idf!23084
2023-04-10 14:39:05 +08:00
Jin Cheng
3a361bc62f fixed the crash of LoadProhibited caused by taht
the nodes are deleted during the traversal of the linked list
2023-04-08 11:30:35 +08:00
morris
a9c36f277f Merge branch 'bugfix/fix_i2s_mono_stereo_test_failure_v4.4' into 'release/v4.4'
i2s: fixed I2S_mono_stereo_loopback_test (v4.4)

See merge request espressif/esp-idf!23093
2023-04-07 17:26:16 +08:00
Michael (XIAO Xufeng)
e383d14cd0 Merge branch 'bugfix/himem_map_range_block_v4.4' into 'release/v4.4'
himem: fixed incorrect out_ptr when range_offset is given non-zero. (v4.4)

See merge request espressif/esp-idf!23082
2023-04-07 17:14:43 +08:00
laokaiyao
d98b6c640f i2s: fixed I2S_mono_stereo_loopback_test (v4.4) 2023-04-07 11:17:07 +08:00
morris
a6c7d78906 Merge branch 'feature/i80_lcd_allow_skip_command_phase_v4.4' into 'release/v4.4'
i80_lcd: allow skip command phase (v4.4)

See merge request espressif/esp-idf!23092
2023-04-06 19:09:54 +08:00
morris
f373bea201 i80_lcd: support skip command phase
Closes https://github.com/espressif/esp-idf/issues/10794
2023-04-06 14:47:11 +08:00
Jiang Jiang Jian
173676ea8d Merge branch 'bugfix/psram_newlib_time_rom' into 'release/v4.4'
rom: fix newlib time ROM functions being regardless of CONFIG_SPIRAM_CACHE_WORKAROUND (v4.4)

See merge request espressif/esp-idf!23003
2023-04-06 11:24:36 +08:00
jgujarathi
6f340bc902 esp_wifi: Add nvs code for new config params 2023-04-06 07:59:38 +05:30
Xiao Xufeng
4dca4bdc3e himem: Fixed incorrect out_ptr when calling esp_himem_map range_offset non-zero
Closes: https://github.com/espressif/esp-idf/issues/5639
2023-04-06 02:02:05 +08:00
Mahavir Jain
599bc24483 Merge branch 'feature/update_mbedtls_v2.28.3' into 'release/v4.4'
mbedtls: Update to release v2.28.3 (v4.4)

See merge request espressif/esp-idf!23040
2023-04-04 15:18:58 +08:00
Jiang Jiang Jian
534ec69996 Merge branch 'bugfix/stop_dhcps_before_set_dns_4.4' into 'release/v4.4'
Fixed bug for stop dhcps before set dns for 4.4

See merge request espressif/esp-idf!23048
2023-04-04 13:50:12 +08:00
Jiang Jiang Jian
6852aaa07e Merge branch 'bugfix/lcd_spi_acquire_bus_v4.4' into 'release/v4.4'
spi_lcd: don't release bus if acquire failed (v4.4)

See merge request espressif/esp-idf!23038
2023-04-04 12:10:58 +08:00
Jiang Jiang Jian
d337d9dc0b Merge branch 'bugfix/fixed_incorrect_i2s_channel_format_v4.4' into 'release/v4.4'
i2s: fixed incorrect channel format on ESP32

See merge request espressif/esp-idf!22853
2023-04-04 12:10:37 +08:00
Jiang Jiang Jian
8df9bbd5f4 Merge branch 'bugfix/wifi_config_fixes_v4.4' into 'release/v4.4'
Add APIs to get Assoc id and negotiated phymode.(v4.4)

See merge request espressif/esp-idf!22972
2023-04-04 12:10:23 +08:00
Jiang Jiang Jian
c0efc25049 Merge branch 'bugfix/fix_hw_ralunderrun_assert_v4.4' into 'release/v4.4'
Fixed BLE HW RAL_UNDERRUN asser and backport some bug fix 23-03-30 (back port v4.4)

See merge request espressif/esp-idf!23004
2023-04-04 10:50:25 +08:00
laokaiyao
73ca054b80 i2s: fixed incorrect channel format on ESP32
Closes: https://github.com/espressif/esp-idf/issues/9635
2023-04-04 10:00:05 +08:00
aditi_lonkar
dc33626566 esp_wifi: Add APIs to get Assoc id and negotiated phymode. 2023-04-03 18:27:02 +05:30
xueyunfei
2549b9fe36 Fixed bug for stop dhcps before set dns
Closes https://github.com/espressif/esp-idf/issues/10762
2023-04-03 20:12:56 +08:00
morris
ea51ee1130 Merge branch 'feature/vfs_serial_fcntl_get_rd_wr_state_v4.4' into 'release/v4.4'
vfs: uart/cdcacm/usb_serial_jtag fcntl return read/write state(v4.4)

See merge request espressif/esp-idf!19335
2023-04-03 19:15:15 +08:00
harshal.patil
617d935b44 mbedtls: Update to release v2.28.3
- Release Notes: https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.3
2023-04-03 14:28:12 +05:30
morris
1a6118193c spi_lcd: don't release bus if acquire failed
Closes https://github.com/espressif/esp-idf/issues/10952
2023-04-03 13:17:11 +08:00
Jiang Jiang Jian
4c7d97e2bd Merge branch 'bugfix/sta_sa_query_process_v4.4' into 'release/v4.4'
esp_wifi: Improve station SA query procedure handling and other bugfixes (Backport v4.4)

See merge request espressif/esp-idf!22901
2023-04-03 11:15:54 +08:00
Jiang Jiang Jian
9c38441916 Merge branch 'bugfix/fix_sc_send_failure_and_exit_issue_v4.4' into 'release/v4.4'
smartconfig: fix the issue of sending failure and exit (Backport v4.4)

See merge request espressif/esp-idf!23025
2023-04-03 11:05:02 +08:00
Mahavir Jain
4b404115e8 Merge branch 'feature/fix_load_efuses_from_flash_when_real_fe_is_on_v4.4' into 'release/v4.4'
efuse(virtual mode): Fix load_efuses_from_flash when FE is on (v4.4)

See merge request espressif/esp-idf!22969
2023-03-31 20:13:27 +08:00
Sarvesh Bodakhe
52b940bed5 esp_wifi: Improve station SA query procedure handling and other bugfixes
1. Disable SA query timers when station disconnect and other SA query related improvements
2. Send appropriate reason code in 4 way handshake failure
3. Send deauth while going from assoc state to init, if reason is assoc timeout
2023-03-31 16:26:15 +05:30
muhaidong
d52d1fc443 smartconfig: fix the issue of sending failure and exit 2023-03-31 17:26:05 +08:00
Jiang Jiang Jian
60c57ade1d Merge branch 'bugfix/tx_desc_fragment_v4.4' into 'release/v4.4'
esp_wifi: fix potential issue when tx fragment pkt(v4.4)

See merge request espressif/esp-idf!22961
2023-03-31 15:30:59 +08:00
Jiang Jiang Jian
df8c0f2191 Merge branch 'doc/update_doc_of_esp_bt_gap_set_cod_v4.4' into 'release/v4.4'
bt: Optimized the document for GAP API: esp_bt_gap_set_cod (v4.4)

See merge request espressif/esp-idf!22995
2023-03-31 13:59:45 +08:00
Jiang Jiang Jian
f67cb1d129 Merge branch 'bugfix/IDFGH-9552_v4.4' into 'release/v4.4'
NimBLE : Added configurable option for resolving peer address in bleprph example. (v4.4)

See merge request espressif/esp-idf!22992
2023-03-31 13:59:15 +08:00
Jiang Jiang Jian
fa3c3a8b46 Merge branch 'bugfix/update_wps_api_documentation_v4.4' into 'release/v4.4'
wpa_supplicant: Update WPS API documentation (v4.4)

See merge request espressif/esp-idf!23014
2023-03-31 13:58:42 +08:00
Jiang Jiang Jian
4531322dd9 Merge branch 'bugfix/improve_tx_robust_v4.4' into 'release/v4.4'
esp_wifi: improve tx robust for c3/s3(v4.4)

See merge request espressif/esp-idf!23009
2023-03-31 11:02:59 +08:00
Kapil Gupta
5c642f98c7 wpa_supplicant: Update WPS API documentation 2023-03-30 20:05:06 +05:30
chenjianxing
e0e4649c7e esp_wifi: improve tx robust for c3/s3 2023-03-30 21:48:53 +08:00
zhiweijian
db3e673053 Fixed vulnerability attacks that could cause heap overflow in fragmented Blufi packet processing 2023-03-30 17:50:20 +08:00
zwj
0ab020fef0 Fixed BLE HW RAL_UNDERRUN assert on ESP32C3 and ESP32S3 2023-03-30 17:07:19 +08:00
zwj
bd8d473006 If it is not esp32 chips, hide the configuration item: BT_BLE_RPA_SUPPORTED 2023-03-30 17:00:56 +08:00
Marius Vikhammer
9acf0aaee1 rom: fix newlib time ROM functions being regardless of CONFIG_SPIRAM_CACHE_WORKAROUND
On ESP32 ROM functions are not compatible with CONFIG_SPIRAM_CACHE_WORKAROUND.
This were handled correctly in cmake, but not in make.
2023-03-30 16:19:38 +08:00
zhiweijian
e7fd58d77a set BT_CTRL_BLE_MAX_ACT default value to 6 2023-03-30 16:14:18 +08:00
zhiweijian
49691b6a9e Fixed ATT Ignore wrong response error 2023-03-30 16:13:32 +08:00
zwj
b475798ad6 - Support ESP32C3 and ESP32S3 new BLE lib
- Disable controller 5.0 feature bits if host 5.0 feature is not enabled
- Fixed extend ADV parameters check for ADV_DIRECT_HI
2023-03-30 16:10:42 +08:00
zwj
50163578bf Merge ESP32C3 and ESP32S3 BLE bt.c files to one 2023-03-30 15:54:37 +08:00
Jin Cheng
8daf85b32a Optimized the document for GAP API:
`esp_bt_gap_set_cod`
2023-03-30 14:17:17 +08:00
isha.pardikar@espressif.com
b594199917 NimBLE: Added configurable option for resolving peer address in bleprph example
Closes IDFGH-9552
2023-03-30 11:00:48 +05:30
morris
647cc43f44 Merge branch 'bugfix/usb_host_enumeration_delay_v4.4' into 'release/v4.4'
USB Host: SetAddress recovery interval + menuconfig configuration (backport v4.4)

See merge request espressif/esp-idf!22703
2023-03-30 12:03:01 +08:00
Jiang Jiang Jian
3b54c90e0d Merge branch 'bugfix/IDFGH_9535_v4.4' into 'release/v4.4'
wifi_prov_mgr : Fixed return value of characteristic read operation in nimble (v4.4)

See merge request espressif/esp-idf!22673
2023-03-29 19:18:22 +08:00
Song Ruo Jing
81b59071fd gpio: Fix IO hold function related problems
1. Fix deep sleep wakeup IOs can not be unhold issue
2. Correct hold related APIs' description
3. Fix gpio_force_hold_all API

docs: Add GPIO wakeup source to sleep_modes doc for ESP32C3
2023-03-29 17:21:50 +08:00
Song Ruo Jing
ef648dfdf6 examples: system/deep_sleep
1. Fix EXT0 wakeup pin error on ESP32: GPIO3 is not a RTC IO, change to use GPIO25.
2. Add ESP_ERROR_CHECK to explicitly show the runtime error
3. Improve example README
2023-03-29 17:21:50 +08:00
Song Ruo Jing
5552c29b3e rtcio: Add a test case to test RTCIO's hold ability after deep sleep wakeup 2023-03-29 17:21:50 +08:00
KonstantinKondrashov
b19d685406 efuse: Fix load_efuses_from_flash when FE is on
esp_efuse_utility_load_efuses_from_flash() read emul_efuse
as an encrypted partition, but that is not correct,
this partition was never encrypted.
Need to read it as not encrypted partition.

Fxed the case: If FE is already on then EFUSE VIRT mode can work with it.

Closes https://github.com/espressif/esp-idf/issues/10929
2023-03-29 16:18:54 +08:00
Marius Vikhammer
4fb8c6f220 Merge branch 'docs/ledc_datasheet_v4.4' into 'release/v4.4'
docs: update readme links to ledstrip datasheet (v4.4)

See merge request espressif/esp-idf!22959
2023-03-29 14:45:10 +08:00
Marius Vikhammer
9071843f2b docs: update readme links to ledstrip datasheet 2023-03-29 11:09:05 +08:00
chenjianxing
d7de64691b esp_wifi: fix potential issue when tx fragment pkt 2023-03-29 11:08:35 +08:00
Jiang Jiang Jian
3c25ecb92e Merge branch 'feature/ble_mesh_console_stack_update_v4.4' into 'release/v4.4'
ble_mesh: stack: Miscellaneous fixes and updates(v4.4)

See merge request espressif/esp-idf!22924
2023-03-28 15:57:44 +08:00
lly
18a5b07607 ble_mesh: stack: Minor fix for provisioner provisioning timeout 2023-03-28 04:29:57 +00:00
wangjialiang
6c55c9c800 ble_mesh: add BQB LOG 2023-03-28 04:29:57 +00:00
luoxu
0ec64df258 ble_mesh: stack: forward rfu dst for the case NODE/RLY/BV-01 2023-03-28 04:29:57 +00:00
luoxu
8f5c5a3972 ble_mesh: stack: add send transaction ack befor provisioner send prov failed msg 2023-03-28 04:29:57 +00:00
luoxu
34841a97a5 ble_mesh: stack: for the case MESH/PVNR/PBADV/BV-01, add the close link reason before reset link 2023-03-28 04:29:57 +00:00
Marius Vikhammer
9b4ccdc911 Merge branch 'bugfix/increase_nmea_example_default_stack_v4.4' into 'release/v4.4'
uart: increase default stack size for nmea example (v4.4)

See merge request espressif/esp-idf!22916
2023-03-27 17:16:47 +08:00
Zim Kalinowski
e9e1f8e001 Merge branch 'docs/extra_component_dirs_v4.4' into 'release/v4.4'
docs: fixed EXTRA_COMPONENT_DIRS being mispelled as EXTRA_COMPONENTS_DIRS in build-system guide (v4.4)

See merge request espressif/esp-idf!22801
2023-03-27 17:02:58 +08:00
Island
c707cdd344 Merge branch 'feature/ble_mesh_add_bqb_log_test_macro_v4.4' into 'release/v4.4'
ble_mesh: stack: Add macros for BQB test to enable some internal function or log (v4.4)

See merge request espressif/esp-idf!22923
2023-03-27 16:43:07 +08:00
wangjialiang
dad6588e3d ble_mesh: stack: bug fix in bqb 2023-03-24 17:13:11 +08:00
wangjialiang
1a412555cd ble_mesh: stack: add description of internal BQB Test 2023-03-24 17:12:57 +08:00
lly
4737b4865d ble_mesh: stack: Minor updates for BQB test log 2023-03-24 17:12:47 +08:00
wangjialiang
14d90c4534 ble_mesh: stack: Add a BQB macro for BQB test to enable some internal function or log 2023-03-24 17:12:23 +08:00
Viktor Babrian
0050fa940c components/mdns: use semaphore instead of task notification bits (IDFGH-9380)
Component should not alter the task notification bits of the calling task.
2023-03-24 09:03:35 +01:00
Marius Vikhammer
40a92dbfab uart: increase default stack size for nmea example
With the old value of 2048 bytes we are right on the stack border when running on S3.

Closes https://github.com/espressif/esp-idf/issues/11044
2023-03-24 12:21:33 +08:00
Jiang Jiang Jian
90d6e45d9f Merge branch 'mesh/bugfix_fix_bugs_for_mesh_network_v4.4' into 'release/v4.4'
wifi_mesh: fix bugs for mesh network (backport v4.4)

See merge request espressif/esp-idf!22899
2023-03-24 10:58:36 +08:00
Marius Vikhammer
2222ca49d6 Merge branch 'docs/update_link_to_esp_product_selector' into 'release/v4.4'
update link to ESP product selector

See merge request espressif/esp-idf!22890
2023-03-23 18:28:33 +08:00
Zhang Xiao Yan
42c73548a1 update link to ESP product selector 2023-03-23 18:28:32 +08:00
Michael (XIAO Xufeng)
2a052f09f2 Merge branch 'bugfix/fix_uart_tx_done_hardware_concurrency_v4.4' into 'release/v4.4'
uart: Fix TX side concurrency issues (v4.4)

See merge request espressif/esp-idf!22596
2023-03-23 16:46:49 +08:00
Dong Heng
b7ea6e44b2 vfs: uart/cdcacm/usb_serial_jtag fcntl return read/write state 2023-03-23 08:22:56 +00:00
zhangyanjiao
794905b0e1 wifi_mesh: update mesh doc 2023-03-23 16:10:34 +08:00
zhangyanjiao
b10a36d0e2 wifi_mesh: Fix several bugs on mesh network 2023-03-23 16:10:11 +08:00
Jiang Jiang Jian
f3fc6f7435 Merge branch 'bugfix/add_unregister_wpa3_cb_v4.4' into 'release/v4.4'
wpa_supplicant : Add support for unregistering wifi wpa3 callbacks.

See merge request espressif/esp-idf!22556
2023-03-23 15:22:36 +08:00
Wang Meng Yang
7894f032f6 Merge branch 'bugfix/hfp_ag_cannot_init_conn_v4.4' into 'release/v4.4'
bt: Fixed the index out of bounds of hfp_ag BTC control block (v4.4)

See merge request espressif/esp-idf!22873
2023-03-23 10:50:57 +08:00
Jiang Jiang Jian
a3f285d744 Merge branch 'bugfix/dm9051_rcv_mcast_v4.4' into 'release/v4.4'
esp_eth: allowed DM9051 to receive multicast packets (v4.4)

See merge request espressif/esp-idf!22865
2023-03-23 10:44:49 +08:00
Jiang Jiang Jian
4ffc7c666c Merge branch 'bugfix/lwip_core_locking_v4.4' into 'release/v4.4'
esp_netif/lwip: Fix core-locking config (v4.4)

See merge request espressif/esp-idf!22466
2023-03-23 10:39:57 +08:00
Jin Cheng
c8a3237309 Fixed the index out of bounds of hfp_ag BTC control block 2023-03-22 15:49:56 +08:00
Ondrej
88a2afc034 esp_eth: DM9051 stop/start issue fixed 2023-03-21 16:32:46 +00:00
Ondrej
fc09ea7b19 esp_eth: allowed DM9051 to receive multicast packets
Removed extra PHY status link checks from DM9051 MAC layer
2023-03-21 16:28:51 +00:00
Jiang Jiang Jian
8cea38360f Merge branch 'bugfix/fix_examples_sdmmc_card_init_failure_esp32s3_v4.4' into 'release/v4.4'
SDMMC example: Fix for 'sdmmc_card_init failed for ESP32S3' (v4.4)

See merge request espressif/esp-idf!22653
2023-03-21 18:57:10 +08:00
David Cermak
35eeb04829 lwip: Add missing esp_sntp_enabled() 2023-03-21 10:31:25 +01:00
David Cermak
079611dd16 lwip/sntp: Fix esp_sntp_ API races (v4.4)
Some of the esp_sntp_...() APIs that wrap lwip's SNTP
module use tcpip_callback() to execute the lwip functionality
in the correct state (either with locked TCP/IP core,
or within the TCP/IP thread).
tcpip_callback() however doesn't wait for completion of the callback,
which doesn't prevent from using the stack variables after destroy
if used as a parameter.
Introduced in a71fa82.
Fixed by using of tcpip_api_call() instead of the tcpip_callback().

Closes https://github.com/espressif/esp-idf/issues/10611
2023-03-21 10:31:25 +01:00
David Cermak
29b8a00c0a esp_netif/lwip: Fix core-locking config (v4.4)
* Fix thread safety issues in non-core locking
* Add option to verify thread safety issues in lwip (core-lock assertion)
* Make esp_sntp.h thread safe API
* Fix sntp example
(v4.4 - fixes minor merge issue that duplicated
DHCP_DEFINE_CUSTOM_TIMEOUTS and DHCP_REQUEST_TIMEOUT_SEQUENCE)

Closes https://github.com/espressif/esp-idf/issues/9908
Closes https://github.com/espressif/esp-idf/issues/10502
Closes https://github.com/espressif/esp-idf/issues/10466
2023-03-21 10:31:20 +01:00
Cao Sen Miao
897082dbe5 usb_serial_jtag: Fix bug of blocking TX xfer when using driver,
Merges https://github.com/espressif/esp-idf/pull/10208
2023-03-20 14:39:35 +08:00
Sonika Rathi
d91efe9f8e SDMMC example: Fix for 'sdmmc_card_init failed for ESP32S3' (v4.4)
Closes https://github.com/espressif/esp-idf/issues/10855
2023-03-20 11:50:45 +05:30
Chip Weinberger
6cf1d8ea40 [USB Serial/JTAG Driver] use time-limited blocking for TX 2023-03-20 14:20:40 +08:00
Jiang Jiang Jian
48b3f236d3 Merge branch 'contrib/github_pr_10402_v4.4' into 'release/v4.4'
ledc: move callback to IRAM as it's called from an ISR (GitHub PR) (v4.4)

See merge request espressif/esp-idf!22593
2023-03-20 14:06:23 +08:00
Jiang Jiang Jian
3c8bc2213c Merge branch 'feature/esp32c3_uart_add_wakeup_event_v4.4' into 'release/v4.4'
UART: add uart wakeup event for esp32c3 and esp32s3 (v4.4)

See merge request espressif/esp-idf!22647
2023-03-20 14:05:42 +08:00
Jiang Jiang Jian
188bb8df22 Merge branch 'bugfix/add_debug_check_v4.4' into 'release/v4.4'
Nimble: Added debug relate flag around debug code_v4.4

See merge request espressif/esp-idf!22783
2023-03-20 14:04:54 +08:00
Jiang Jiang Jian
c5e4b7d7d4 Merge branch 'bugfix/close_rf_in_deep_sleep_backport_v4.4' into 'release/v4.4'
deep sleep: further optimize sleep current if RF is enabled (backport v4.4)

See merge request espressif/esp-idf!22737
2023-03-20 14:04:36 +08:00
Roland Dobai
e47aaa7088 Merge branch 'contrib/github_pr_10935_v4.4' into 'release/v4.4'
export: avoid error on unbound variable (GitHub PR) (v4.4)

See merge request espressif/esp-idf!22821
2023-03-18 15:38:58 +08:00
Roland Dobai
e619c17871 Merge branch 'feature/export_fish_exit_code_success_v4.4' into 'release/v4.4'
Tools: export.fish exit with success exit code (v4.4)

See merge request espressif/esp-idf!22819
2023-03-18 15:37:15 +08:00
Marc Finet
2a3cdb090f export: avoid error on unbound variable
I the shell has `set -u` (to abort on unbound variable), sourcing
export.sh currently fails when IDF_EXPORT_QUIET or IDF_PATH is not set:
> /path/to/esp-idf/export.sh:16: IDF_EXPORT_QUIET: unbound variable

This commit sets a default empty value to those variable, as done
in 16731833fb (which forgot IDF_PATH as it's usually set, the other
variable landed later in the file).
2023-03-17 18:46:42 +01:00
Max Larsson
3ed0f1665f Make export.fish exit with SUCCESS exit code
The export.fish script exits with an exit code of 4. Thus, any shell checks that make sure the source command exits successfully always failed. This was due to the last line trying to erase the __main function. In fish, you can't erase a function using the `set` command, you can only erase variables. By removing that line the script now exits with an exit code of 0 instead of 4.

Erase __main function at the end of export.fish

Closes https://github.com/espressif/esp-idf/pull/10828
2023-03-17 18:08:41 +01:00
Jiang Jiang Jian
7cfc1a747f Merge branch 'docs/update_esp_hid_device_v4.4' into 'release/v4.4'
docs: fixed missing API-reference documents for Bluetooth HID device(backport v4.4)

See merge request espressif/esp-idf!19582
2023-03-17 19:40:43 +08:00
Michael (XIAO Xufeng)
61521da8d0 Merge branch 'test/add_spi_slave_freq_test_v4.4' into 'release/v4.4'
spi_slave: fix io re-config issue (v4.4)

See merge request espressif/esp-idf!22591
2023-03-17 19:25:07 +08:00
Jiang Jiang Jian
012b5006c0 Merge branch 'bugfix/more_data_bit_issue_v4.4' into 'release/v4.4'
esp_wifi: fix more data bit cause not go to modem sleep(v4.4)

See merge request espressif/esp-idf!22791
2023-03-17 13:52:48 +08:00
Jiang Jiang Jian
11e20bbf7b Merge branch 'bugfix/avrcp_psth_cmd_rsp_v4.4' into 'release/v4.4'
bt:Added a parameter to tell the user the result of the pass through command implementation(v4.4)

See merge request espressif/esp-idf!22789
2023-03-17 13:52:39 +08:00
Marius Vikhammer
874371c382 docs: fixed EXTRA_COMPONENT_DIRS being mispelled as EXTRA_COMPONENTS_DIRS in build-system guide 2023-03-17 11:51:25 +08:00
Jiang Jiang Jian
4ceb928831 Merge branch 'feature/gatt_server_improvements_v4.4' into 'release/v4.4'
NimBLE: Added custom GATT Server functionality and encryption (v4.4)

See merge request espressif/esp-idf!22741
2023-03-17 10:53:01 +08:00
chenjianxing
bf92b0dda8 esp_wifi: fix more data bit cause not go to modem sleep
Closes AUD-4173
2023-03-16 15:45:21 +08:00
Jiang Jiang Jian
0c0d7bb1a3 Merge branch 'bufix/Backport_some_lwip_bugs_for_4.4_0315' into 'release/v4.4'
bugfix/Backport_some_lwip_bugs_for_4.4_0315

See merge request espressif/esp-idf!22762
2023-03-16 10:31:13 +08:00
Rahul Tank
4b40662fad Nimble: Added debug relate flag around debug code 2023-03-15 16:49:25 +05:30
Marius Vikhammer
207e7e6692 Merge branch 'docs/broken_links_2_v4.4' into 'release/v4.4'
docs: fix broken links (v4.4)

See merge request espressif/esp-idf!22749
2023-03-15 14:16:30 +08:00
wanlei
3fda8f942c mspi: turn down freq to fix crash when sleep 2023-03-15 11:33:07 +08:00
xueyunfei
8331ae8586 lwip: solve some routers do not forward multicast packet issue 2023-03-14 19:03:23 +08:00
xueyunfei
9403854bed tcp_in/ooseq: Fix incorrect segment trim when FIN moved
* Update submodule: git log --oneline a7abf28e02282b32479f4bbaf2d90f09d2a60f4c..6bb132e3797d5449a923804c75c57d458920f8ac

Detailed description of the changes:
  - tcp_in/ooseq: Fix incorrect segment trim when FIN moved (esp-lwip@6bb132e3)
  - api_msg: fix tcp_abort thread safety (esp-lwip@53a6e019)
2023-03-14 18:46:00 +08:00
xueyunfei
109eec4033 dhcp server:bugfix softap excedes the range of subnet 2023-03-14 18:45:43 +08:00
xiongweichao
0ac35d3f09 bt:Added a parameter to tell the user the result of the pass through command implementation 2023-03-14 16:44:10 +08:00
Krzysztof Budzynski
6d09159974 Merge branch 'docs/format_temp_sensor' into 'release/v4.4'
format temp_sensor.rst

See merge request espressif/esp-idf!22475
2023-03-14 14:15:30 +08:00
wuzhenghui
e357de5406 deep sleep: close rf to optimize sleep current 2023-03-14 14:05:15 +08:00
Linda
aac827ede7 format temp_sensor.rst 2023-03-14 13:04:34 +08:00
wangmengyang
a13f65206c examples/Bluetooth/bt_hid_mouse_device: improved the exmaple README 2023-03-14 12:13:48 +08:00
wangmengyang
b419830cb0 examples/bluetooth/bt_hid_mouse_device: fixed code format, added more comments to improve code readability 2023-03-14 12:13:48 +08:00
wangmengyang
67cc93b1d5 bt: fix the documentations for Bluetooth HID device APIs 2023-03-14 12:13:48 +08:00
wangmengyang
a91d53f04f docs: fixed missing API-reference documents for Bluetooth HID device
# Conflicts:
#	docs/docs_not_updated/esp32c2.txt
#	docs/doxygen/Doxyfile
2023-03-14 12:13:48 +08:00
Marius Vikhammer
f262f1c361 docs: fix broken links 2023-03-14 10:26:37 +08:00
Sumeet Singh
1c4a48bd11 NimBLE: Added custom GATT Server functionality and encryption (v4.4) 2023-03-13 19:46:38 +05:30
Zim Kalinowski
63f78a82f0 Merge branch 'bugfix/ulp_docs_incorrect_jump_desc_v4.4' into 'release/v4.4'
docs: Updated incorrect description for ULP FSM JUMPR and JUMPS instructions (v4.4)

See merge request espressif/esp-idf!22732
2023-03-13 21:29:27 +08:00
wuzhenghui
91b9483987 Revert "optimize deep sleep current in wifi softap mode"
This reverts commit 344ec80fad.
2023-03-13 20:41:16 +08:00
Sudeep Mohanty
c1ca9222fa docs: Updated incorrect description for ULP FSM JUMPR and JUMPS instructions
This commit updates the incorrect description for the JUMPR and JUMPS
instructions for ULP FSM on esp32/s2/s3.

Closes https://github.com/espressif/esp-idf/issues/10923
2023-03-13 11:04:30 +01:00
Zim Kalinowski
82f10149c2 Merge branch 'feature/docker_add_ruby_bsd_4.4' into 'release/v4.4'
feat (cmock): add ruby and libbsd-dev to docker image (backport v4.4)

See merge request espressif/esp-idf!22705
2023-03-13 15:37:22 +08:00
Jiang Jiang Jian
9f8f60ddb8 Merge branch 'bugfix/fix_hidh_connection_bug_v4.4' into 'release/v4.4'
Bugfix/Fix HID Host bug when handling the two consecutive connection request[backport 4.4]

See merge request espressif/esp-idf!22722
2023-03-13 15:07:11 +08:00
Jiang Jiang Jian
d56a3b5dd3 Merge branch 'bugfix/wifi_enterprise_example_typo_v4.4' into 'release/v4.4'
esp_wifi: fix typo in wifi_enterprise example README (Backport v4.4)

See merge request espressif/esp-idf!22651
2023-03-13 14:06:24 +08:00
liqigan
f0394b03bc fix HID Host bug when handling the two consecutive connection request
Closes https://github.com/espressif/esp-idf/issues/10504
2023-03-13 10:22:28 +08:00
Jakob Hasse
2b9053fe97 feat (cmock): add ruby and libbsd-dev to docker image
Closes https://github.com/espressif/esp-idf/issues/9342
2023-03-10 17:54:33 +08:00
Ivan Grokhotkov
fee50c208a Merge branch 'bugfix/modbus_remove_manifest_from_subrepo' into 'release/v4.4'
freemodbus: remove component manifest file from freemodbus subrepo

See merge request espressif/esp-idf!22693
2023-03-10 17:23:32 +08:00
Alex Lisitsyn
67b3b263db freemodbus: remove component manifest file from freemodbus subrepo 2023-03-10 17:23:32 +08:00
Wang Meng Yang
712f6cb95c Merge branch 'bugfix/spp_server_doc_v4.4' into 'release/v4.4'
SPP server documentation fix (v4.4)

See merge request espressif/esp-idf!22679
2023-03-10 17:22:19 +08:00
Michael (XIAO Xufeng)
8232f23f65 Merge branch 'feature/apply_new_version_logic_v4.4' into 'release/v4.4'
all: Apply new version logic (major * 100 + minor) (v4.4)

See merge request espressif/esp-idf!22481
2023-03-10 14:52:18 +08:00
Roman Leonov
0f47fad650 usb_host: add recovering interval after SetAddress(). Possibility to change constant delay value via menuconfig.
Closes https://github.com/espressif/esp-idf/issues/10444
Closes https://github.com/espressif/esp-idf/issues/10718
2023-03-10 07:07:38 +01:00
Zim Kalinowski
1500d703a1 Merge branch 'bugfix/spram_and_virt_efuse_can_work_v4.4' into 'release/v4.4'
esp_psram: Use efuse_ll instead of efuse API (v4.4)

See merge request espressif/esp-idf!22642
2023-03-09 22:19:12 +08:00
isha.pardikar@espressif.com
e0aa158399 Doc : SPP server documentation fix
Closes https://github.com/espressif/esp-idf/issues/10930
2023-03-09 11:59:00 +05:30
morris
6e950ad679 Merge branch 'bugfix/adc2_legacy_oneshot_clk_gating_issue' into 'release/v4.4'
adc: fix legacy oneshot driver clock gating issue on c3 (v4.4)

See merge request espressif/esp-idf!22609
2023-03-09 13:29:40 +08:00
morris
7d727fffdd Merge branch 'bugfix/return_error_when_fail_detect_oct_psram_v4.4' into 'release/v4.4'
esp_psram: return error when fail to detect oct psram (v4.4)

See merge request espressif/esp-idf!22613
2023-03-09 13:28:58 +08:00
morris
4b498e8bce Merge branch 'bugfix/fix_btld_app_overlap_c2_v4.4' into 'release/v4.4'
ld: fixed bootloader and app potential overlap issue (v4.4)

See merge request espressif/esp-idf!22570
2023-03-09 13:28:36 +08:00
morris
028f48369c Merge branch 'bugfix/no_more_public_adc2_dma_on_c3_s3_v4.4' into 'release/v4.4'
adc: no longer support adc2 continuous mode on esp32c3 and esp32s3 (v4.4)

See merge request espressif/esp-idf!21649
2023-03-09 13:27:25 +08:00
isha.pardikar@espressif.com
c134171e80 wifi_prov_mgr : Fixed return value of characteristic read operation 2023-03-09 10:44:54 +05:30
Jiang Jiang Jian
38ec6aafc6 Merge branch 'optimization/lwip_dhcp_coarse_timer_4.4' into 'release/v4.4'
lwip:optimization dhcp coarse timer for 4.4

See merge request espressif/esp-idf!22425
2023-03-09 11:07:25 +08:00
Marius Vikhammer
91930c4a6e Merge branch 'bugfix/modbus_debug_message_v4.4' into 'release/v4.4'
esp-modbus: fix debug message being printed for all builds

See merge request espressif/esp-idf!22523
2023-03-09 09:48:29 +08:00
Sarvesh Bodakhe
6a2e2d99a7 esp_wifi: fix typo in wifi_enterprise example README
Closes https://github.com/espressif/esp-idf/issues/10042
2023-03-08 13:23:54 +05:30
laokaiyao
ac67d5dd35 uart: support light sleep on esp32s3 2023-03-08 11:10:43 +08:00
Chen Wu
1d31a493e4 debug: esp32c3 uart1 wakeup 2023-03-08 10:30:46 +08:00
Chen Yi Qun
ea837e3a5e simple test for uart wakeup 2023-03-08 10:02:32 +08:00
Chen Yi Qun
176f44c15f uart: add wakeup event for esp32c3 2023-03-08 10:02:23 +08:00
KonstantinKondrashov
9e0a8e2dca esp_psram: Use efuse_ll instead of efuse API
When the virt efuse mode is on and psram is on as well
then efuse buffer is not filled by efuses (it is filled by 0).
So the psram init func gets wrong pkg_ver = 0.

Closes https://github.com/espressif/esp-idf/issues/10925
Close IDFGH-9576
2023-03-08 01:47:06 +08:00
Armando
eab3534c90 adc: no longer support adc2 oneshot mode on esp32c3
Due to HW limitation, we don't support this anymore. On c3, ADC2 under oneshot mode is not stable.

However, you can enable CONFIG_ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 to force use
ADC2.

Refer to errata to know more details:
https://www.espressif.com/sites/default/files/documentation/esp32-c3_errata_en.pdf
2023-03-07 11:58:27 +08:00
Armando
5fa6b2879c ld: fixed bootloader and app potential overlap issue 2023-03-07 02:39:56 +00:00
Armando
cf9cb577ce esp_psram: return error when fail to detect oct psram 2023-03-07 02:39:44 +00:00
Armando
f0af48b585 adc: fix legacy oneshot driver clock gating issue on c3 2023-03-07 02:39:11 +00:00
Marius Vikhammer
2d41f6fe31 esp-modbus: fix debug message being printed for all builds 2023-03-07 02:29:00 +00:00
Mahavir Jain
60b90c5144 Merge branch 'feature/memprot_test_app_v4.4' into 'release/v4.4'
memprot: Fix incorrect faulting address reported for esp32c3 (v4.4)

See merge request espressif/esp-idf!22583
2023-03-06 20:27:21 +08:00
Armando
ffb2db586a adc: no longer support adc2 continuous mode on esp32c3 and esp32s3
Due to HW limitation, we don't support this anymore. On s3 and c3, ADC2 under continuous  mode is not stable.

However, you can enable CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 to force use
ADC2.

Refer to errata to know more details:
https://www.espressif.com/sites/default/files/documentation/esp32-s3_errata_en.pdf
https://www.espressif.com/sites/default/files/documentation/esp32-c3_errata_en.pdf
2023-03-06 18:57:58 +08:00
Armando
f311bbdcf9 adc: added a soc macro indicating digital controller supported unit 2023-03-06 18:57:58 +08:00
morris
c3172de254 Merge branch 'contrib/github_pr_10640_v4.4' into 'release/v4.4'
hal/uart_ll.h: Fix compile with C++ (ESP32-S3/H2) (GitHub PR) (v4.4)

See merge request espressif/esp-idf!22589
2023-03-06 15:36:02 +08:00
Marius Vikhammer
0cd02c044c Merge branch 'refactor/move_rom_test_to_fpga_only_v4.4' into 'release/v4.4'
esp_rom: miniz test only on FPGA (backport 4.4)

See merge request espressif/esp-idf!22602
2023-03-06 09:15:24 +08:00
morris
a6473f13ec Merge branch 'contrib/github_pr_10334_v4.4' into 'release/v4.4'
Set errno in adjtime (GitHub PR) (v4.4)

See merge request espressif/esp-idf!22599
2023-03-05 21:38:00 +08:00
KonstantinKondrashov
df09f8670a version: Fix missed version checks 2023-03-05 18:25:50 +08:00
Zim Kalinowski
4227dcc4a4 Merge branch 'bugfix/fix_psram_kconfig_help_v4.4' into 'release/v4.4'
psram: removed deprecated statement about coredump and external BSS (backport v4.4)

See merge request espressif/esp-idf!22563
2023-03-04 21:59:49 +08:00
KonstantinKondrashov
2c46d5442f kconfigs: Fix config issues raised by gen_kconfig_doc.py 2023-03-03 22:26:39 +00:00
KonstantinKondrashov
a786554530 esptool: Adds support major&minor chip versions + min&max chip revision options 2023-03-03 22:26:39 +00:00
KonstantinKondrashov
8ca1779931 app: Updates the chip version format (vX.Y) 2023-03-03 22:26:39 +00:00
KonstantinKondrashov
1027c02aa1 bootloader_support: Fix iram_loader_seg overflow for ESP32-S2 when -O0 2023-03-03 22:26:39 +00:00
KonstantinKondrashov
fde8517956 chip_version: Updates for Make build system 2023-03-03 22:26:39 +00:00
KonstantinKondrashov
a86c80e3ec all: Apply new version logic (major * 100 + minor) 2023-03-03 22:26:39 +00:00
Sergei Silnov
bff43a1b6f Merge branch 'bugfix/default_components_for_component_manager_v4.4' into 'release/v4.4'
build & config: Don't include common components on early expansion (v4.4)

See merge request espressif/esp-idf!22371
2023-03-04 06:25:22 +08:00
daiziyan
5a32b53431 docs: udpate CN translation for build-system 2023-03-03 20:02:50 +01:00
Sergei Silnov
bb272d1b0a build & config: Check requirements of managed components of main and add interface versioning 2023-03-03 20:02:49 +01:00
Jakob Hasse
732ce674f0 refactor(esp_rom): miniz test only on FPGA now 2023-03-03 18:19:16 +08:00
jofrev
6802299ef4 Set errno in adjtime if delta is too large
errno should be set to EINVAL in this case according to adjtime's man
page.
2023-03-03 18:15:52 +08:00
jofrev
7ccacc7385 Set errno in adjtime if newlib time funcs are not implemented
Other time functions (e.g. settimeofday) set errno to ENOSYS if
IMPL_NEWLIB_TIME_FUNCS is not set.
adjtime should probably do the same.
2023-03-03 18:15:51 +08:00
Song Ruo Jing
093eaae4e5 uart: Fix two TX concurrency issues
1. Concurrency might cause ESP_ERR_TIMEOUT when calling uart_wait_tx_done
2. Concurrency might cause RTS line being de-assreted during tx transmission for rs485 mode
2023-03-03 18:01:46 +08:00
Song Ruo Jing
022a697ed8 ledc: Add check for whether the registered callback is in iram in ledc_cb_register 2023-03-03 17:35:35 +08:00
wanlei
86fd4b983f spi_slave: fix io re-config issue 2023-03-03 17:28:54 +08:00
chli
9fa8e2df41 ledc: move callback to IRAM, it's called from an ISR 2023-03-03 17:22:07 +08:00
Simon Arlott
f5d94ef432 hal/uart_ll.h: Fix compile issue with C++
Merges https://github.com/espressif/esp-idf/pull/10640
2023-03-03 17:01:41 +08:00
Laukik Hase
6f2bf5f856 memprot: Fix incorrect faulting address reported for esp32c3
Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2023-03-03 10:18:54 +05:30
xueyunfei
4186c9a0fc lwip:optimization dhcp coarse timer 2023-03-02 08:44:07 +00:00
Omar Chebib
35fec3a2ef psram: removed deprecated statement about coredump and external BSS 2023-03-01 19:06:30 +08:00
Krzysztof Budzynski
af9e99759a Merge branch 'docs/fix_errors_in_esp32-c3-devkitm-1_pin_list_v4.4_' into 'release/v4.4'
Docs/Fix Errors in ESP32-C3-DevKitM-1 Pin List (v4.4)

See merge request espressif/esp-idf!22495
2023-03-01 18:41:59 +08:00
Wang Ning
cb217ace1e Docs/Fix Errors in ESP32-C3-DevKitM-1 Pin List (v4.4) 2023-03-01 18:41:59 +08:00
jgujarathi
fde6be3d6a wpa_supplicant : Add validations for 192-bit Suite B test cases.
Add validations for group data cipher, pairwise cipher and AKM Suites to
ensure correct ciphers are supported by AP during 192-bit Enterprise
connections.
2023-03-01 10:43:07 +05:30
jgujarathi
cb2f801ae7 wpa_supplicant : Add deinitialization of Enterprise config_methods.
Add deinitialization of config_methods as it prevents correct reinitialization of sta in eap_peer_config_init() during reassoc.
2023-03-01 10:42:13 +05:30
jgujarathi
176dbaf4a7 wpa_supplicant : Add support for unregistering wifi wpa3 callbacks.
Unregister wifi callbacks allows for disabling support for wpa3 functions when not required.
2023-03-01 10:40:06 +05:30
Zim Kalinowski
20e5bc7ce0 Merge branch 'bugfix/nvs_cxx_example_v4.4' into 'release/v4.4'
nvs_flash: fixed wrong error check after open_nvs_handle in example (v4.4)

See merge request espressif/esp-idf!22304
2023-02-28 21:38:38 +08:00
Jiang Jiang Jian
4b6ecea959 Merge branch 'fix/efuse-function-declaration_v4.4' into 'release/v4.4'
efuse: fix esp_efuse_utility_write_reg() declaration (v4.4)

See merge request espressif/esp-idf!22087
2023-02-28 19:54:43 +08:00
Jiang Jiang Jian
f8c2f62db4 Merge branch 'bugfix/flash_large_memory_size_v4.4' into 'release/v4.4'
spi_flash: Fix issue that cannot get accurate flash size when encounter large size memory(backport v4.4)

See merge request espressif/esp-idf!21534
2023-02-28 19:53:25 +08:00
Jiang Jiang Jian
b60d5960a7 Merge branch 'docs/update-esp-rom-elfs-link_v4.4' into 'release/v4.4'
docs: update link for ESP ROM ELF releases (v4.4)

See merge request espressif/esp-idf!22262
2023-02-28 19:52:08 +08:00
Jiang Jiang Jian
97c23f2e79 Merge branch 'bugfix/twai_listen_only_errata_v4.4' into 'release/v4.4'
twai: Add errata workaround for listen only mode (v4.4)

See merge request espressif/esp-idf!22515
2023-02-28 19:51:17 +08:00
Sergei Silnov
2540cee253 build & config: Don't include common components on early expansion 2023-02-27 10:06:31 +01:00
Sergei Silnov
b8b3dfc366 CI: update mypy for pre-commit 2023-02-27 10:06:10 +01:00
Marius Vikhammer
ec3f345c8e Merge branch 'bugfix/freertos_stream_buffer_test_v4.4' into 'release/v4.4'
FreeRTOS: Fix stream buffer send-receive test (v4.4)

See merge request espressif/esp-idf!22508
2023-02-27 13:46:50 +08:00
Jiang Jiang Jian
17a0cdae49 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!22364
2023-02-26 16:13:07 +08:00
Jiang Jiang Jian
f89eedd2dc Merge branch 'bugfix/blufi_notify_v4.4' into 'release/v4.4'
BluFi : Fixed hdr getting free twice (v4.4)

See merge request espressif/esp-idf!22449
2023-02-26 16:11:22 +08:00
Jiang Jiang Jian
778b806483 Merge branch 'bugfix/bluedroid_le_coc_compile_error_v4.4' into 'release/v4.4'
bt: fix Bluedroid compile errors after enable CONFIG_ESP_SYSTEM_USE_EH_FRAME on RISC-V SoCs(backport v4.4)

See merge request espressif/esp-idf!22493
2023-02-26 16:11:01 +08:00
Jiang Jiang Jian
e857d63def Merge branch 'bugfix/set_generic_len_for_rsnxe_v4.4' into 'release/v4.4'
esp_wifi: bugfix RSNXE related changes

See merge request espressif/esp-idf!22421
2023-02-26 15:56:26 +08:00
Darian Leung
3819d22e93 twai: Add errata workaround for listen only mode
This commit adds a workaround for the TWAI listen only mode errata which is
present on the ESP32, ESP32-S2, ESP32-S3, and ESP32-C3. twai_get_status_info()
has also been updated to account for the fact that TEC/REC are frozen in
listen only mode.

Errata Description:

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

Workaround:

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

Closes https://github.com/espressif/esp-idf/issues/9157
2023-02-24 20:26:53 +08:00
morris
5d5a5f8758 Merge branch 'bugfix/correct_ext_mem_defs_for_internal_ram_v4.4' into 'release/v4.4'
soc: update iram/dram addr range in ext_mem_defs.h (v4.4)

See merge request espressif/esp-idf!22490
2023-02-24 18:36:07 +08:00
Jiang Jiang Jian
5479da3191 Merge branch 'ci/test_example_connect_ap_timeout_4.4' into 'release/v4.4'
test: fix ethernet iperf and https_server_simple test (4.4)

See merge request espressif/esp-idf!22388
2023-02-24 16:46:43 +08:00
Darian Leung
241dbcaa9c freertos: Fix stream buffer send-receive test
The stream buffer send-receive test preivously contained the following bugs:

- "sender" task would send 101 bytes instead of 100
- The main task would return before "sender" task sends its 101st item. Thus
  the sender task would cause memory corruption when accessing "tc" structure
  allocated on the main task's stack

This commit fixes and simplifies the stream buffer test.
2023-02-24 16:28:13 +08:00
Mahavir Jain
66bc1293aa Merge branch 'fix/heap-get-allocated-size_v4.4' into 'release/v4.4'
heap: Fix erroneous value returned by heap_caps_get_allocated_size() when poisoning is enabled (backport v4.4)

See merge request espressif/esp-idf!22189
2023-02-24 11:05:16 +08:00
wangmengyang
50015c6047 bt: fix Bluedroid compile errors after enable CONFIG_ESP_SYSTEM_USE_EH_FRAME on RISC-V SoCs
This root cause is incorrect source code separation by conditonal MACROs for BLE L2CAP COC related functions
2023-02-23 14:21:08 +08:00
Armando
f46e42bc1f soc: update iram/dram addr range in ext_mem_defs.h 2023-02-23 12:51:04 +08:00
Guillaume Souchere
f4ab9a440a heap: Fix erroneous value returned by heap_caps_get_allocated_size() when poisoning is enabled
When light (or comprehensive) poisoning is enabled, the size requested by the user for allocation
is extended by a few bytes to store the canary header and footer. heap_caps_get_allocated_size() should
return the original size asked by the user (without the additional canary bytes).

test_malloc.c extended with a new test assuring that  heap_caps_get_allocated_size() returns the proper size
regardless of the degree of poisoning.
2023-02-22 07:32:49 +01:00
luaijun
0ff5b1f8e8 add time delay after create tcp server on PC 2023-02-21 15:30:34 +08:00
isha.pardikar@espressif.com
8486207ac1 BluFi : Fixed hdr getting free twice
Closes IDFGH-9378
2023-02-21 11:45:26 +05:30
Roland Dobai
4199164ca1 Merge branch 'feature/add_bootloader_sector_pad_option_v4.4' into 'release/v4.4'
esptool_py: Added a --pad-to-size flag to align the bootloader image (v4.4)

See merge request espressif/esp-idf!22327
2023-02-20 19:43:45 +08:00
Marius Vikhammer
896d16b1fd Merge branch 'bugfix/newlib_tz_env_mutex_v4.4' into 'release/v4.4'
newlib: Use correct recursive mutex for env and regular mutex for tz (v4.4)

See merge request espressif/esp-idf!22294
2023-02-20 14:38:57 +08:00
Marius Vikhammer
4a466ca518 Merge branch 'docs/elm_chan_broken_link_v4.4' into 'release/v4.4'
docs: fix broken link in fatfs doc (v4.4)

See merge request espressif/esp-idf!22298
2023-02-20 14:17:38 +08:00
morris
213a16b712 Merge branch 'feature/remove_80m_ddr_warning_v4.4' into 'release/v4.4'
mspi: remove mspi 80m ddr mode warning regarding to timing tuning (v4.4)

See merge request espressif/esp-idf!21905
2023-02-20 13:30:17 +08:00
Marius Vikhammer
edd800e897 Merge branch 'docs/fix_broken_link_format_v4.4' into 'release/v4.4'
docs: fix rst external links with wrong format (v4.4)

See merge request espressif/esp-idf!22337
2023-02-20 13:12:16 +08:00
Shreyas Sheth
c6b2eedc74 esp_wifi: bugfix RSNXE related changes
1. Set AP rsnxe len generic
2. Set transition_disable value in wifi get config
2023-02-20 02:56:09 +05:30
Roland Dobai
4c2afac355 Merge branch 'bugfix/fix_ignoring_provided_corefiles_in_espcoredump' into 'release/v4.4'
tools: fix the missing chip type in esp-coredump when the board is not connected

See merge request espressif/esp-idf!22079
2023-02-17 23:40:15 +08:00
morris
a73ba529ac Merge branch 'bugfix/extram_stack_coredump_v4.4' into 'release/v4.4'
coredump: add support for stacks in external RAM (backport v4.4)

See merge request espressif/esp-idf!22391
2023-02-16 22:58:21 +08:00
morris
ae77cd6587 Merge branch 'bugfix/usb_host_hub_enumeration_string_handling_v4.4' into 'release/v4.4'
USB Host: Fix string descriptor handling by the hub driver during enumeration (backport v4.4)

See merge request espressif/esp-idf!22326
2023-02-16 13:10:57 +08:00
harshal.patil
ecbf28e252 esptool_py: Added a sector-pad option for bootloader image
When SECURE BOOT V2 is enabled and CONFIG_SECURE_BOOT_SIGNED_BINARIES
is not set, sector-pad the bootloader image, which is required for an
external PKCS#11 interface to generate a signature.

esptool_py: Update submodule to release/v3 (4bc311767b7c6df41def6f95a50f87b1c9406cbd)
2023-02-15 16:01:26 +05:30
Omar Chebib
2ef2271afd coredump: add support for stacks in external RAM
Tasks having their stacks in SPIRAM can now be part of the coredump written to flash
2023-02-15 17:46:54 +08:00
Marius Vikhammer
e62eceba34 Merge branch 'feat/verbose-alloc-failure-abort_v4.4' into 'release/v4.4'
heap: print size and caps when malloc fails before calling system abort (backport v4.4)

See merge request espressif/esp-idf!22346
2023-02-15 16:54:42 +08:00
Chen Yudong
109faee736 test: fix test_examples_protocol_https_server_simple 2023-02-15 15:42:58 +08:00
morris
7b41d6c68d Merge branch 'bugfix/rmt_force_inline_LL_functions_v4.4' into 'release/v4.4'
rmt: force inline LL functions (v4.4)

See merge request espressif/esp-idf!22370
2023-02-15 08:50:28 +08:00
Jiang Jiang Jian
b78d5763ac Merge branch 'bugfix/optimize_protocol_socket_cases_4.4' into 'release/v4.4'
CI: optimize example protocol test cases (4.4)

See merge request espressif/esp-idf!22311
2023-02-14 18:01:22 +08:00
morris
a43e796f60 rmt: force inline LL functions
Closes https://github.com/espressif/esp-idf/issues/9487
2023-02-14 15:11:35 +08:00
chenjianhua
71ed13c31f examples: fix ble address type of adv and scan params 2023-02-14 11:14:11 +08:00
chenjianhua
f986abd482 bluedroid: support ble privacy by controller 2023-02-14 11:13:56 +08:00
chenjianhua
f953320c96 bluedroid: add params in GATT connect event 2023-02-14 11:13:27 +08:00
chenjianhua
293c4d9f71 update bt-lib for ESP32
fix ble disconnect due to channel map update instant passed
2023-02-14 11:11:36 +08:00
Chen Yudong
db5bee5c16 example: fix got ip error in protocol tests 2023-02-14 11:03:37 +08:00
Jiang Jiang Jian
a75a62431a Merge branch 'bugfix/fix_gpio_wakeup_related_issues_in_ssc_sleep_test_backport_v4.4' into 'release/v4.4'
sleep: fix gpio wakeup related issues(backport v4.4)

See merge request espressif/esp-idf!22333
2023-02-14 10:36:51 +08:00
Jiang Jiang Jian
23ec5e1944 Merge branch 'bugfix/build_err_with_ssr_enabled_v4.4' into 'release/v4.4'
bt: Fixed build errors when sniff subrating is enabled (v4.4)

See merge request espressif/esp-idf!22351
2023-02-14 10:36:41 +08:00
Saurabh Kumar Bansal
f90ccf9613 usb_host: Hub driver skips fetching string descriptors if their index is 0
When a USB does not support a particular string dsecriptor (e.g.,
manufacturer, product, and serial number), the string descriptors corresponding
index will be set to 0 in the device descriptor (e.g., iManufacturer, iProduct,
iString).

Previously, the Hub driver would always attempt to fetch the all three string
descriptors, thus leading an error in CHECK_SHORT_SER_STR_DESC if the device
did not support the descriptor.

This commit fixes the Hub drvier by skipping the enumeration stages of a
particular descriptor if its index is 0 (i.e., not supported by the device).
2023-02-13 18:15:36 +05:30
Darian Leung
fd663b4ab1 usb_host: Fix error when fetching LANGID table
USB devices may support string descriptors in multiple languages. The supported
languages are stored in a LANGID table, which itself is a string descriptor at
index 0.

When fetching the LANGID table itself, the USB 2.0 specification does not
specify what LANGID to use, thus the Hub driver would use the default LANGID
"ENUM_LANGID". However, this would cause some devices to stall.

This commit fixes the issue by always requesting the LANGID table itself using
a LANGID of 0.
2023-02-13 18:15:16 +05:30
Tomas Rezucha
74f479151b usb_host: Fix interface descriptor parsing
Previously the USB host driver did not accept interface number greater or equal bNumInterfaces, even though these are valid interface numbers
2023-02-13 18:02:35 +05:30
Jin Cheng
123b6f132b Fixed build errors when sniff subrating is enabled. 2023-02-13 17:27:24 +08:00
Aditya Patwardhan
a971c13447 Merge branch 'bugfix/secure_boot_v2_part_size_check_v4.4' into 'release/v4.4'
gen_esp32part: allow secure boot v2 based app partition size 4K aligned (v4.4)

See merge request espressif/esp-idf!22286
2023-02-13 16:37:50 +08:00
Guillaume Souchere
c8e469b78d heap: Fix priority in shex() bit shift 2023-02-13 09:10:06 +01:00
Chip Weinberger
62d57edbc9 [Logs] print size and caps when malloc fails 2023-02-13 09:10:03 +01:00
Mahavir Jain
62340efd94 Merge branch 'bugfix/fix_return_value_in_httpd_socket_apis_v4.4' into 'release/v4.4'
esp_http_server: fix return values for `httpd_socket_send()` and `httpd_socket_recv()` APIs (v4.4)

See merge request espressif/esp-idf!22308
2023-02-13 14:07:35 +08:00
Marius Vikhammer
d9393d3b47 docs: fix rst external links with wrong format 2023-02-13 12:15:31 +08:00
Mahavir Jain
379d9034eb partition_table: fix make build for new "--secure [v1/v2]" argument 2023-02-12 21:29:39 +05:30
Mahavir Jain
5002ccd9c3 partition_table: add tests for checking secure boot part size 2023-02-12 18:58:47 +05:30
Mahavir Jain
51a61fb41c gen_esp32part: allow secure boot v2 based app partition size 4K aligned
For Secure Boot v2 case, unsigned image is first padded to next 64K
aligned boundary and then a signature block of 4K gets appended. Thus
an app partition whose size is 4K aligned should be allowed here.

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

Relevant:
57b601ab7f
2023-02-12 18:58:21 +05:30
Chen Yudong
1871825d7b CI: optimize example protocol test cases 2023-02-10 15:30:44 +08:00
Harshit Malpani
f7f11cfa51 esp_http_server: fix return values for httpd_socket_send() and httpd_socket_recv() APIs
Closes https://github.com/espressif/esp-idf/issues/10658
2023-02-10 10:57:22 +05:30
Jakob Hasse
1bf3ac5349 bugfix(nvs_flash): fixed wrong error check after open_nvs_handle
Closes https://github.com/espressif/esp-idf/issues/10240
2023-02-10 10:00:13 +08:00
jingli
8c491be452 sleep: fix gpio wakeup not working properly in some cases
Before this fix, when we call esp_pm_configure after gpio_wakeup_enable,
the configuration of GPIO in sleep state in gpio_wakeup_enable will be
overwritten by esp_pm_configure.
2023-02-09 17:58:40 +08:00
jingli
200dcce535 soc_caps: remove SOC_GPIO_SUPPORT_SLP_SWITCH
all esp chips support this feature
2023-02-09 17:52:49 +08:00
Marius Vikhammer
4c335b8dae docs: fix broken link in fatfs doc 2023-02-09 16:11:08 +08:00
Steve Jothen
614b06341f Use correct recursive mutex for env and regular mutex for tz 2023-02-09 16:03:02 +08:00
Jiang Jiang Jian
cb2fde3e3f Merge branch 'feature/seperate_ble_wifi_test_environment_v4.4' into 'release/v4.4'
seperate ble wifi environment (backport v4.4)

See merge request espressif/esp-idf!20083
2023-02-09 15:45:31 +08:00
Zim Kalinowski
39a4ec2045 Merge branch 'refactor/nvs_allocatable_objects_v4.4' into 'release/v4.4'
refactor(nvs): custom allocator for all objects allocated in NVS (v4.4)

See merge request espressif/esp-idf!21793
2023-02-08 18:01:10 +08:00
Zim Kalinowski
a83c40eaf0 Merge branch 'feature/mac_crc_v4.4' into 'release/v4.4'
esp_hw_support(esp32): If the MAC_FACTORY CRC check fails, then INVALID_CRC instead of abort (v4.4)

See merge request espressif/esp-idf!22115
2023-02-08 17:04:30 +08:00
morris
9160670a4a Merge branch 'docs/make_s3_octal_flash_error_handling_clearer_v4.4' into 'release/v4.4'
docs: make s3 octal flash error handling clearer (v4.4)

See merge request espressif/esp-idf!22271
2023-02-08 15:47:02 +08:00
Armando
dfe505cbb3 docs: make s3 octal flash error handling clearer 2023-02-08 12:17:45 +08:00
Aleksei Apaseev
d3eb5b2346 tools: fix the missing chip type in esp-coredump when the board is not connected
Closes https://github.com/espressif/esp-idf/issues/10400
2023-02-08 10:07:15 +08:00
chensheng
a1fd8065bd seperate ble wifi environment 2023-02-08 10:05:31 +08:00
Alexey Lapshin
7b04075676 docs: update link for ESP ROM ELF releases 2023-02-07 18:01:48 +07:00
Zim Kalinowski
80d81c6c8f Merge branch 'bugfix/ulp_riscv_i2c_example_crashes_on_s2_v4.4' into 'release/v4.4'
ulp-riscv: ULP RISC-V I2C example gets stuck on esp32s2 (v4.4)

See merge request espressif/esp-idf!21861
2023-02-07 17:55:58 +08:00
Zim Kalinowski
3cf24d8685 Merge branch 'feature/usb_host_feature_and_refactor_backports_v4.4' into 'release/v4.4'
USB Host: Backport multiple bugfixes/refactors to v4.4

See merge request espressif/esp-idf!21583
2023-02-07 17:54:35 +08:00
Zim Kalinowski
2dec69fa82 Merge branch 'feature/lower-iram-utilization-of-heap-component_v4.4' into 'release/v4.4'
heap: lower the utilization of IRAM by the heap component binary (backport v4.4)

See merge request espressif/esp-idf!21237
2023-02-07 16:54:58 +08:00
Fu Hanxi
dab3f38f0f Merge branch 'ci/fix/isort_incompatible_with_py37_v4.4' into 'release/v4.4'
ci: fix isort py37 incompatible issue (v4.4)

See merge request espressif/esp-idf!22226
2023-02-07 09:12:10 +08:00
David Čermák
57528b8d17 Merge branch 'bugfix/fix_mdns_example_v4.4_' into 'release/v4.4'
mDNS: Fix example test in CI (v4.4)

See merge request espressif/esp-idf!20815
2023-02-07 00:02:00 +08:00
Jiang Jiang Jian
4a4227a3b8 Merge branch 'bugfix/optimize_abnormal_beacon_log_4.4' into 'release/v4.4'
esp_wifi:bugfix for optimize abnormal beacon log 4.4

See merge request espressif/esp-idf!22211
2023-02-06 22:02:10 +08:00
xueyunfei
f73a2cd0f9 esp_wifi:bugfix for optimize abnormal beacon log 2023-02-06 14:52:46 +08:00
Jiang Jiang Jian
0c8dd57d2a Merge branch 'bugfix/bdsa_security_issues_v4.4' into 'release/v4.4'
wpa_supplicant:BDSA related patch updates v4.4

See merge request espressif/esp-idf!21605
2023-02-06 12:12:09 +08:00
morris
e1e9e10d3b Merge branch 'bugfix/rtc_8md256_deepsleep_time_esp32_v4.4' into 'release/v4.4'
pm: Fixed sleep time inaccurate bug when select 8MD256 as rtc slow clock on ESP32 (v4.4)

See merge request espressif/esp-idf!21822
2023-02-06 11:13:52 +08:00
morris
3ecf906721 Merge branch 'bugfix/fix_mspi_timing_tuning_psram_timing_issue_v4.4' into 'release/v4.4'
mspi_tuning: fix psram timing tuning bug (v4.4)

See merge request espressif/esp-idf!21625
2023-02-06 11:11:07 +08:00
morris
43b9f6d4ac Merge branch 'feature/do_not_disable_cache_when_xip_from_psram_v4.4' into 'release/v4.4'
system: do not disable cache when xip from psram (v4.4)

See merge request espressif/esp-idf!21651
2023-02-06 11:10:14 +08:00
Jiang Jiang Jian
d6682ce9c4 Merge branch 'bugfix/minor_syntax_changes_v4.4' into 'release/v4.4'
wpa_supplicant: Fixing a collection of issues encountered during application testing.

See merge request espressif/esp-idf!22098
2023-02-06 10:37:17 +08:00
Fu Hanxi
43ad48e43f Merge branch 'bugfix/env_var_SDKCONFIG_DEFAULTS_fail_with_bootloader_subproject_v4.4' into 'release/v4.4'
build_system: stop looking for env var `SDKCONFIG_DEFAULTS` in bootloader subproject (v4.4)

See merge request espressif/esp-idf!21975
2023-02-06 10:36:56 +08:00
Fu Hanxi
2684850a13 ci: fix isort py37 incompatible issue 2023-02-06 10:32:38 +08:00
Island
bd5af4d879 Merge branch 'bugfix/add_nimble_fail_case_kownissues' into 'release/v4.4'
add NIMBLE_GAP_17021 to kownIssues (4.4)

See merge request espressif/esp-idf!21475
2023-02-03 16:26:06 +08:00
Chen Sheng
54fea8f9b3 add NIMBLE_GAP_17021 to kownIssues (4.4) 2023-02-03 16:26:06 +08:00
Shreyas Sheth
e4c5d21106 wpa_supplicant:BDSA related patch updates 2023-02-03 06:46:30 +00:00
Roland Dobai
0e2db09744 Merge branch 'bugfix/fix_windows_path_case_sensitivity_v4.4' into 'release/v4.4'
bugfix: Fix windows path case sensitivity (v4.4)

See merge request espressif/esp-idf!22076
2023-02-03 14:40:32 +08:00
Roland Dobai
3e1f704d5b Merge branch 'fix/tools_click_envvar_v4.4' into 'release/v4.4'
Tools: Improve idf.py error message when the argument value collides with the environment variable (v4.4)

See merge request espressif/esp-idf!21886
2023-02-03 14:37:45 +08:00
Roland Dobai
dd2c7f8a59 Merge branch 'bugfix/support_coredump_stack_xtensa_v4.4' into 'release/v4.4'
coredump: custom core dump stack is now supported on Xtensa targets (backport v4.4)

See merge request espressif/esp-idf!21805
2023-02-03 14:37:16 +08:00
Roland Dobai
ff86fa0260 Merge branch 'bugfix/fix_esp32s3_diram_calculation_v4.4' into 'release/v4.4'
Tools: Fix diram size calculation (v4.4)

See merge request espressif/esp-idf!21671
2023-02-03 14:36:13 +08:00
Jiang Jiang Jian
bd54673f81 Merge branch 'doc/update_nimble_mesh_example_information_v4.4' into 'release/v4.4'
Nimble: Update Mesh example documentation (v4.4)

See merge request espressif/esp-idf!21579
2023-02-03 13:53:29 +08:00
Jiang Jiang Jian
bf4a710c23 Merge branch 'doc/update_wifi_amsdu_docs_v4.4' into 'release/v4.4'
doc: update wifi amsdu docs(Backport v4.4)

See merge request espressif/esp-idf!21750
2023-02-03 13:52:59 +08:00
Jiang Jiang Jian
c97db9189e Merge branch 'bugfix/wps_start_state_issue_v4.4' into 'release/v4.4'
esp_wifi: Add check for wps start state (v4.4)

See merge request espressif/esp-idf!22027
2023-02-03 13:52:39 +08:00
Jiang Jiang Jian
5360833e0b Merge branch 'bugfix/peer_dev_rec_add_and_clear_issue_v4.4' into 'release/v4.4'
NimBLE: Fix incomplete clearing of peer_dev_rec (v4.4)

See merge request espressif/esp-idf!22012
2023-02-03 13:51:55 +08:00
Jiang Jiang Jian
808fcf8b44 Merge branch 'bugfix/precommit_isort_deprecation_v4.4' into 'release/v4.4'
ci: Fix pre-commit hook per isort deps deprecation (v4.4)

See merge request espressif/esp-idf!22207
2023-02-03 13:51:38 +08:00
Jiang Jiang Jian
f46b03fd91 Merge branch 'bugfix/a2dp_error_code_v4.4' into 'release/v4.4'
bt:Fixed the use of invalid configuration when the peer device configures the stream, and returned an incorrect error code(v4.4)

See merge request espressif/esp-idf!21623
2023-02-03 13:51:10 +08:00
Jiang Jiang Jian
a60b89bb49 Merge branch 'bugfix/coex_enable_disable_not_in_pairs_v4.4' into 'release/v4.4'
bluetooth: fix that functions "coex_enable" and "coex_disable" are not used in pairs(backport v4.4)

See merge request espressif/esp-idf!22095
2023-02-03 13:50:53 +08:00
Jiang Jiang Jian
56083a12fc Merge branch 'example/opt_a2dp_gatts_coex_example_v4.4' into 'release/v4.4'
rebase a2dp_gatts_coex to latest a2dp_sink (v4.4)

See merge request espressif/esp-idf!22004
2023-02-03 13:50:41 +08:00
Jiang Jiang Jian
320894986d Merge branch 'bugfix/fix_ble_some_bugs_20221219_v4.4' into 'release/v4.4'
backport some BLE bugs 20221219 (backport v4.4)

See merge request espressif/esp-idf!21709
2023-02-03 13:50:26 +08:00
Jiang Jiang Jian
b818abb0d7 Merge branch 'bugfix/fix_some_ble_bugs_by_cjh_v4.4' into 'release/v4.4'
Fixed some BLE bugs (backport v4.4)

See merge request espressif/esp-idf!21691
2023-02-03 13:50:12 +08:00
Jiang Jiang Jian
202e1c1fb8 Merge branch 'feature/report_acl_conn_cmp_stat_to_app_v4.4' into 'release/v4.4'
feature/report ACL link related events to application (v4.4)

See merge request espressif/esp-idf!21525
2023-02-03 13:49:59 +08:00
Jiang Jiang Jian
cdb87a514f Merge branch 'bugfix/remove_sha384_hash_for_bigger_certs_v4.4' into 'release/v4.4'
esp_wifi: remove sha384 hash for cert size > 2k (v4.4)

See merge request espressif/esp-idf!21964
2023-02-03 13:49:46 +08:00
Jiang Jiang Jian
0c8ec2a066 Merge branch 'fix/long_assoc_comeback_time_v4.4' into 'release/v4.4'
esp_wifi: reject AP when assoc comeback time given is greater than 5 seconds (Backport v4.4)

See merge request espressif/esp-idf!21842
2023-02-03 12:23:16 +08:00
Mahavir Jain
d708ee2e92 Merge branch 'bugfix/fix_httpd_req_cleanup_v4.4' into 'release/v4.4'
esp_http_server: fix wrong context pointer in httpd_req_cleanup function (v4.4)

See merge request espressif/esp-idf!21732
2023-02-02 22:28:36 +08:00
Mahavir Jain
637dc39e8a Merge branch 'bugfix/esp_tls_timeout_v4.4' into 'release/v4.4'
esp_tls: Fix issue when timeout is not explicitly given in esp_tls_cfg_t (v4.4)

See merge request espressif/esp-idf!21744
2023-02-02 22:28:18 +08:00
Mahavir Jain
2a1ede3f9d Merge branch 'update_v4.4/mbedtls_v2.28.2' into 'release/v4.4'
mbedtls: Update to release v2.28.2 (v4.4)

See merge request espressif/esp-idf!21896
2023-02-02 22:27:22 +08:00
Mahavir Jain
0e4c086a35 Merge branch 'fix/mbedtls_port_sanity_checks_and_return_values_v4.4' into 'release/v4.4'
mbedtls/port: refactor sanity checks and their return values (v4.4)

See merge request espressif/esp-idf!22128
2023-02-02 22:26:50 +08:00
Mahavir Jain
11277bfdc5 Merge branch 'bugfix/remove_s3_dis_boot_remap_efuse_bit_v4.4' into 'release/v4.4'
docs: remove mention of DIS_BOOT_REMAP for chips other than ESP32-S2 (v4.4)

See merge request espressif/esp-idf!21810
2023-02-02 22:26:07 +08:00
Mahavir Jain
79239605fe Merge branch 'fix/stack-dram-memory-protection_v4.4' into 'release/v4.4'
heap: Modify the memory type of the memory used as startup stack when memory protection is enabled (backport v4.4)

See merge request espressif/esp-idf!22171
2023-02-02 22:24:43 +08:00
morris
969569dec0 Merge branch 'bugfix/i2s_update_regs_before_start_v4.4' into 'release/v4.4'
i2s: fixed rx update stuck bug (v4.4)

See merge request espressif/esp-idf!21777
2023-02-02 21:40:37 +08:00
morris
b58d463fdd Merge branch 'bugfix/fix_micro_error_SPI_HOST_MAX_v4.4' into 'release/v4.4'
spi: fix micro SPI_HOST_MAX error (v4.4)

See merge request espressif/esp-idf!22148
2023-02-02 21:40:14 +08:00
morris
854c55c61e Merge branch 'feature/_spi_slave_reset_trans_queue_api_v4.4' into 'release/v4.4'
spi: limit esp32 dma workaround only on esp32(v4.4)

See merge request espressif/esp-idf!21382
2023-02-02 21:39:51 +08:00
morris
cc423c3d44 Merge branch 'bugfix/gdma_uhci_id_4.4' into 'release/v4.4'
gdma: correct the dma trigger of UHCI  && fix async memcpy conflict with peripheral DMA (v4.4)

See merge request espressif/esp-idf!22007
2023-02-02 21:30:20 +08:00
Island
ae8195e9df Merge branch 'bugfix/change_position_of_vendor_model_and_gen_onoff_model_callback_forv4.4' into 'release/v4.4'
ble_mesh:example:change position of vendor model and generic onoff model callback(v4.4)

See merge request espressif/esp-idf!21799
2023-02-02 20:48:52 +08:00
Yuan Hong Hui
97ab485bdf ble_mesh:example:change position of vendor model and generic onoff model callback(v4.4) 2023-02-02 20:48:52 +08:00
Michael (XIAO Xufeng)
b94278a594 Merge branch 'update/version_4_4_4' into 'release/v4.4'
Update version to 4.4.4

See merge request espressif/esp-idf!22093
2023-02-02 20:04:56 +08:00
David Cermak
9e307b1114 ci: Fix pre-commit hook per isort deps deprecation
isorts dependecy became deprecated. Fixed to use 5.12.0 version of isort pre-commit
2023-02-02 10:07:32 +01:00
jgujarathi
922cbc0cb4 wpa_supplicant : Prevent h2e config overwrite
Current esp_wifi_get_config doesn't return correct value of h2e config which will cause h2e config to be overwritten in Station connected handler.
Add one preventative condition to take care of this.
2023-02-01 12:49:25 +05:30
jgujarathi
d23c21bd2a wpa_supplicant : Fix invalid de-init of last_scan_res_used
During the wifi deinit last_scan_res_used pointer is not set to 0 which will cause it be used directly after reinit.

Added changes which will set it to 0 during init and deinit.
2023-02-01 12:44:55 +05:30
jgujarathi
4b77473982 wpa_supplicant : Correct scan results for GCMP RSN
Fixed a typo which was causing scan results for GCMP not showing correctly
2023-02-01 12:43:01 +05:30
morris
46b66530ce gdma: prevent mutli-channels connect to the same peripheral
1. add check in the gdma driver, to prevent multiple channels connecting
   to the same peripheral
2. memory copy DMA ID will occupy the peripheral's DMA ID on some ESP
   targets (e.g. esp32c3/s3). We should search for a free one when
install async memcpy driver.

Closes https://github.com/espressif/esp-idf/issues/10575
2023-02-01 11:10:26 +08:00
morris
2a9759ea24 gdma: correct the dma trigger of uart
GDMA trigger actually is not assigned to UART controller, but for UHCI
controller
2023-02-01 10:56:01 +08:00
Guillaume Souchere
85193654f0 heap: Modify the memory type of the memory used as startup stack when memory protection is enabled
If memory protection is enabled on esp32c3 and esp32s3, we don't want to the heap component to see
the startup stack memory as D/IRAM but as DRAM only. Introduce a new type to make this possible in
the same fashion the regular D/IRAM regions are handled.
2023-01-31 07:57:02 +01:00
wanlei
d6cf435f2d spi_flash: fix flash function arg_check with spi host_id 2023-01-30 10:35:07 +08:00
wanlei
9526b100a4 spi: fix micro SPI_HOST_MAX error
Closes https://github.com/espressif/esp-idf/issues/10349
2023-01-29 16:32:45 +08:00
Sarvesh Bodakhe
a4e9c56403 esp_wifi: Update wifi libs
Update wifi libs with below changes -
1. reject AP when assoc comeback time given is greater than 5 seconds
2023-01-28 11:29:01 +05:30
harshal.patil
ecdd202285 mbedtls/port: added stream_block parameter sanity check 2023-01-25 15:38:28 +05:30
harshal.patil
734724ba79 mbedtls: fix esp_aes_crypt_ctr writing to null stream block 2023-01-25 15:38:28 +05:30
harshal.patil
865a72eb8f mbedtls: added SOC_AES_SUPPORT_AES_192 check in esp_aes_gcm_setkey() 2023-01-25 15:38:28 +05:30
KonstantinKondrashov
c1ea06443a esp_hw_support(esp32): If the MAC_FACTORY CRC check fails, then esp_efuse_mac_get_default returns INVALID_CRC instead of abort
Closes https://github.com/espressif/esp-idf/issues/10401
2023-01-23 20:05:53 +08:00
wangmengyang
86b2779adc bluetooth: fix that functions "coex_enable" and "coex_disable" are not used in pairs on ESP32-C3 and ESP32-S3 2023-01-20 10:53:52 +08:00
Xiao Xufeng
e8bdaf9198 versions: Update version to 4.4.4 2023-01-20 02:12:49 +08:00
Alexey Lapshin
3e978d1d8a efuse: fix esp_efuse_utility_write_reg() declaration 2023-01-19 14:29:36 +07:00
Djordje Nedic
e2815b3d04 bugfix: Fix windows path case sensitivity
This commit fixes an issue where paths on Windows are case insensitive, for instance when setting the build folder its name would be converted to lowercase.

The culprit is our realpath() function, that was calling os.path.normcase() internally, since we are removing that call it makes sense to just remove the function entirely and call os.path.realpath() wherever necessary.

Closes https://github.com/espressif/esp-idf/issues/10282
2023-01-18 22:41:41 +01:00
Cao Sen Miao
a645015dee esp_flash: correct veriable 'size' description 2023-01-17 14:35:04 +08:00
Cao Sen Miao
c07c9083c1 spi_flash: Fix issue that cannot get accurate flash size when encounter large size memory,
Closes https://github.com/espressif/esp-idf/pull/9566
2023-01-17 14:35:03 +08:00
Jiang Jiang Jian
800dec96e9 Merge branch 'bugfix/clear_pmk_cache_for_missing_reason_codes' into 'release/v4.4'
Fix missing disconnected callback (Backport v4.4)

See merge request espressif/esp-idf!22036
2023-01-14 01:01:20 +08:00
Shyamal Khachane
850ac23d14 esp_wifi: Fix missing disconnected callback 2023-01-13 11:38:28 +05:30
Jiang Jiang Jian
d4080633f9 Merge branch 'feature/efuse_rev_major_minor_v4.4' into 'release/v4.4'
efuse: Adds major and minor versions (v4.4)

See merge request espressif/esp-idf!19541
2023-01-12 16:24:59 +08:00
Shreyas Sheth
18f5c3e2fc esp_wifi: Add check for wps start state 2023-01-12 11:55:59 +05:30
Sumeet Singh
2a4fd41d9a NimBLE: Fix incomplete clearing of peer_dev_rec 2023-01-11 16:24:50 +05:30
Jin Cheng
ee9594aa04 rebase a2dp_gatts_coex to latest a2dp_sink 2023-01-11 14:40:22 +08:00
Jiang Jiang Jian
552beab8a9 Merge branch 'bugfix/sae_auth_and_pmk_issues_v4.4' into 'release/v4.4'
Fix SAE open auth and pmk issues (Backport v4.4)

See merge request espressif/esp-idf!21911
2023-01-10 17:19:01 +08:00
Fu Hanxi
53f390fb62 build_system: stop looking for sdkconfig file specified by env var SDKCONFIG_DEFAULTS in bootloader subproject 2023-01-10 09:49:23 +08:00
Kapil Gupta
7321307f6e Removed sha384 hash for certs > 2k 2023-01-09 15:58:13 +05:30
Shyamal Khachane
79807ec6ab wpa_supplicant: Set PMK from PMKSA incase of caching 2023-01-06 19:19:36 +05:30
Shyamal Khachane
de6fdfbd27 esp_wifi: Fix open auth issue after commit message exchange 2023-01-06 10:50:18 +05:30
Armando
c476c5e403 mspi: remove mspi 80m ddr mode warning regarding to timing tuning 2023-01-05 11:53:40 +08:00
mofeifei
c95db84365 docs: update cn trans for flash-encryptions 2023-01-04 21:33:40 +05:30
Mahavir Jain
aa027bd1f6 docs: remove mention of DIS_BOOT_REMAP for chips other than ESP32-S2
Relevant: https://esp32.com/viewtopic.php?f=13&t=31188
2023-01-04 21:31:04 +05:30
Laukik Hase
0f46f0cfa4 mbedtls: Update config options as per v2.28.2 release 2023-01-04 15:36:24 +05:30
Laukik Hase
e7fb0dbdaa mbedtls: Update to v2.28.2
- Release notes: https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.2
2023-01-04 14:05:56 +05:30
jincheng
a901900533 Added ACL link related events handler in A2DP sink GAP callback 2023-01-04 11:48:57 +08:00
jincheng
48212875f8 Added reporting for ACL link related events to application 2023-01-04 11:48:51 +08:00
Roland Dobai
1bac78fbc3 Tools: Improve idf.py error message when the argument value collides with the environment variable
Closes https://github.com/espressif/esp-idf/issues/10475
2023-01-03 19:01:14 +01:00
Sudeep Mohanty
96b152a01f ulp-riscv: ULP RISC-V I2C example gets stuck on esp32s2
This commit fixes an issue where in the ULP RISC-V I2C example causes
a spurious wakeup of the main CPU because of a Trap signal when the ULP
core does not meet the wakeup threshold values. This was due to the fact
that the RTC_CNTL_COCPU_DONE signal was being set before the
RTC_CNTL_COCPU_SHUT_RESET_EN signal which was causing the the ULP RISC-V
core to not reset properly on each cycle.

Closes https://github.com/espressif/esp-idf/issues/10301
2023-01-02 14:24:16 +01:00
Suren Gabrielyan
74721f524b mDNS: Fix example test in CI using multiple retries 2023-01-01 19:58:19 +00:00
muhaidong
42888d2919 doc: update wifi amsdu docs 2022-12-29 10:38:56 +08:00
cje
5998130eb9 sleep: fix sleep time inaccurate bug when select 8MD256 as rtc slow clock on ESP32
Related to: https://github.com/espressif/esp-idf/issues/6687
2022-12-28 15:33:57 +08:00
Omar Chebib
7d0cd23531 coredump: custom core dump stack is now supported on Xtensa targets 2022-12-26 12:24:26 +01:00
Jakob Hasse
8e47edb731 refactor(nvs): custom allocator for all objects allocated in NVS 2022-12-26 15:06:38 +08:00
laokaiyao
85392e3ec9 i2s: fixed rx update stuck bug 2022-12-23 10:53:03 +08:00
Jiang Jiang Jian
9ee3c8337d Merge branch 'bugfix/avoid_ftm_initiator_mode_on_softap_v4.4' into 'release/v4.4'
Avoid ftm initiator mode on softap (Backport v4.4)

See merge request espressif/esp-idf!21757
2022-12-23 10:39:38 +08:00
Jiang Jiang Jian
221df10ced Merge branch 'bugfix/change_the_level_of_nimble_log_forv4.4' into 'release/v4.4'
ble_mesh:example:change the level of nimble host log(v4.4)

See merge request espressif/esp-idf!21629
2022-12-22 19:42:11 +08:00
Jiang Jiang Jian
cfeccaa685 Merge branch 'bugfix/correct_the_default_SR_mode_v4.4' into 'release/v4.4'
bugfix/correct the SR_mode selection when konw nothing about Peripheral's SR_mode (v4.4)

See merge request espressif/esp-idf!21520
2022-12-22 19:37:27 +08:00
Jiang Jiang Jian
2ac433e1ae Merge branch 'feature/nimble_support_ble_max_conn_num_v4.4' into 'release/v4.4'
Nimble:  Support maximum number of connections to 9 on ESP32-C3 and ESP32-S3 (v4.4)

See merge request espressif/esp-idf!21551
2022-12-22 19:37:06 +08:00
Jiang Jiang Jian
90b5993867 Merge branch 'doc/opt_esp32_eco3_v4.4' into 'release/v4.4'
docs: mention that increasing ESP32_REV_MIN can reduce IRAM size (v4.4)

See merge request espressif/esp-idf!21702
2022-12-22 19:29:41 +08:00
Jiang Jiang Jian
aa21184a03 Merge branch 'doc/cpu_breakpoint_watchpoint_num_v4.4' into 'release/v4.4'
docs: fix the number of breakpoints and watchpoints for RISC-V chips (v4.4)

See merge request espressif/esp-idf!21704
2022-12-22 19:29:06 +08:00
Jiang Jiang Jian
2497798036 Merge branch 'contrib/github_pr_10199_v4.4' into 'release/v4.4'
Removed the 'configASSERT( xInheritanceOccurred == pdFALSE )' assertion from xQueueSemaphoreTake (GitHub PR)(v4.4)

See merge request espressif/esp-idf!21501
2022-12-22 19:28:20 +08:00
gauri patankar
a744595440 esp_wifi:Update wifi libs
1. Avoid ftm initiator mode on softap
2. Fix home channel issue in ftm for apsta mode
3. Fix int overflow for T1-T4 counter variable
2022-12-22 15:03:40 +05:30
Mahavir Jain
6d80c334f7 Merge branch 'bugfix/update_docs_for_secure_dl_mode_v4.4' into 'release/v4.4'
docs: Fix Secure DL mode documentation about flash read being unsupported (v4.4)

See merge request espressif/esp-idf!21654
2022-12-22 17:15:59 +08:00
Michael (XIAO Xufeng)
1d5fd5587e Merge branch 'feature/modbus_remove_component_v44' into 'release/v4.4'
freemodbus: remove component files from esp-idf (backport v4.4)

See merge request espressif/esp-idf!18763
2022-12-22 17:05:56 +08:00
Alex Lisitsyn
ea646a9c22 freemodbus: remove component files from esp-idf (backport v4.4) 2022-12-22 17:05:55 +08:00
Michael (XIAO Xufeng)
800d11c48f Merge branch 'contrib/github_pr_10106_v4.4' into 'release/v4.4'
hal/uart_ll.h: Fix compile with C++ (GitHub PR) (v4.4)

See merge request espressif/esp-idf!21455
2022-12-22 17:01:14 +08:00
Jiang Jiang Jian
78e9a38ef4 Merge branch 'bugfix/fix_max_conn_num_issue_v4.4' into 'release/v4.4'
esp_wifi: change max connection num on ESP32C3 and ESP32S3 (Backport v4.4)

See merge request espressif/esp-idf!21753
2022-12-22 15:36:02 +08:00
Harshit Malpani
3353d8404a esp_http_server: fix wrong context pointer in httpd_req_cleanup function
Added example which fails without the fix

Closes https://github.com/espressif/esp-idf/issues/10265
2022-12-22 10:14:34 +05:30
zhangyanjiao
8abcacd25e esp_wifi: change max connection num on ESP32C3 and ESP32S3
Closes WIFI-5134
2022-12-22 11:45:50 +08:00
Jiang Jiang Jian
3d6e33e9a4 Merge branch 'fix/clear_cur_pmksa_v4.4' into 'release/v4.4'
Clear current pmksa before generating RSN IE (Backport v4.4)

See merge request espressif/esp-idf!21687
2022-12-22 09:37:40 +08:00
Jiang Jiang Jian
c88d8829cf Merge branch 'bugfix/unstall_other_cpu_on_core_reset_v4.4' into 'release/v4.4'
bugfix: unstall other cpu on core reset (backport v4.4)

See merge request espressif/esp-idf!21496
2022-12-21 19:55:01 +08:00
Jiang Jiang Jian
1d4f6af1bc Merge branch 'refactor/freertos_remove_gpl_license_text' into 'release/v4.4'
freertos: Remove GPL license text from port files

See merge request espressif/esp-idf!21588
2022-12-21 19:54:06 +08:00
Laukik Hase
8c7b0c191e esp_tls: Fix issue when timeout is not explicitly given in esp_tls_cfg_t
- If internet connectivity weakened or disappeared suddenly while we were
  in the TLS handshake stage, the app got stuck at that point indefinitely.
- This was because when timeout was not explicitly specified in esp_tls_cfg_t,
  the default timeout was set at the wrong place. This causes the sockets to be
  setup with zero timeout, hence the indefinite wait.
2022-12-21 14:42:44 +05:30
KonstantinKondrashov
e59269efa0 esp_hw_support: Fix version in esp_chip_info for C3 and H2 2022-12-20 21:14:36 +08:00
Michael (XIAO Xufeng)
a5964c442f esp32s3: fixed bug chip v0.0 detected as vX.Y
A typical value is 2.8.

Previous commit 32ef2b321a doesn't fix the issue cleanly. The MSB of wafer_minor also has this problem.
2022-12-20 21:14:36 +08:00
Shyamal Khachane
aba1eb81ea wpa_supplicant: Clear current pmksa before generating RSN IE
Also update wifi libs with below changes -
  - Fix reason codes for Invalid PMKID
  - Fix handling of Assoc Resp status codes for Station
2022-12-20 17:35:40 +05:30
Michael (XIAO Xufeng)
9e87d53fed esp32s3: fixed bug chip v0.0 detected as vX.0
A typical value is 2.0.
2022-12-20 16:30:13 +08:00
KonstantinKondrashov
26960f1734 efuse: Adds major and minor versions and others 2022-12-20 16:30:13 +08:00
Armando
7dde97d2d6 test_app: xip_psram test app 2022-12-20 14:00:49 +08:00
zwj
046a5b145d Update bt lib for ESP32
- Add config to set duplicate scan list refresh period
- overwrite the oldest device infor if the list is full
- Fixed duplicate scan period is not accurate
2022-12-20 11:40:34 +08:00
zwj
4cb0e30b08 Update bt lib for ESP32-C3 and ESP32-S3
- Add config to set duplicate scan list refresh period
- overwrite the oldest device infor if the list is full
- Fixed duplicate scan period is not accurate
2022-12-20 11:39:35 +08:00
chenjianhua
41c643909e update bt lib for ESP32-C3 and ESP32-S3
1 fixed privacy error for directed adv
2 fixed multi periodic adv sync failed in air
2022-12-20 11:38:22 +08:00
zwj
c32c9d8833 Fixed some memory was not released after bluetooth controller initialization failed on ESP32-C3 and ESP32-S3 2022-12-20 11:36:58 +08:00
chenjianhua
bdfc1426ac update bt-lib for ESP32
1 change default TX power to 9 dBm
2 fixed disconnect reason 0x1f (unspecified error)
3 fixed connection timeout due to terminate ind has not been acknowledged
2022-12-20 11:34:43 +08:00
zwj
13493a6137 Fixed some memory was not released after bluetooth controller initialization failed on ESP32 2022-12-20 11:29:33 +08:00
Ivan Grokhotkov
78af134110 docs: fix the number of breakpoints and watchpoints for RISC-V chips 2022-12-19 14:37:15 +01:00
Djordje Nedic
2ae52901bd idf_size.py: Fix issue where diram size was halved in cases where iram was not fully filled with cache
This fixes an attempted fix for diram size calculation where it was counted twice, however the fix did not account for cases where iram was not fully filled with cache and therefore was of non 0 size.
Now the calculation should be correct regardless of the cache size.

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

Fix expected output
2022-12-19 14:22:00 +01:00
Ivan Grokhotkov
e1d01a9032 docs: mention that increasing ESP32_REV_MIN can reduce IRAM size 2022-12-19 14:07:32 +01:00
Jiang Jiang Jian
56efeb2c76 Merge branch 'bugfix/fix_multicast_issue_v4.4' into 'release/v4.4'
esp_wifi: fix multicast pkts drop issue for some AP when DTIM period > 1 (V4.4)

See merge request espressif/esp-idf!21599
2022-12-19 20:21:24 +08:00
chenjianhua
f44f3d13bc bluedroid: fix ble connection update with same params 2022-12-19 19:10:26 +08:00
chenjianhua
5d6dfd139f examples: fix ble hid led output report 2022-12-19 19:01:13 +08:00
Armando
b59cefbfc0 ut: add test config for xip_from_psram 2022-12-19 18:49:50 +08:00
chenjianhua
8cf14e42ba bluedroid: fix encrypt keysize of GATT characteristic permission 2022-12-19 17:42:08 +08:00
chenjianhua
0cb30a3da0 bluedroid: correct the length of att read by type pdu 2022-12-19 17:41:45 +08:00
Mahavir Jain
7a8fe58dd6 docs: Fix Secure DL mode documentation about flash read being unsupported
Simple flash read command is not supported if Secure DL mode is enabled on the target.
Remove reference of this from the relevant docs part.

Related: https://github.com/espressif/esptool/issues/810
Related: ESPTOOL-567
Closes IDF-6468
2022-12-16 11:52:54 +05:30
gaoxu
2e5307b247 system: don't disable cache if Flash .text and .rodata are moved to PSRAM 2022-12-16 12:59:06 +08:00
Yuan Hong Hui
b1d22143a5 ble_mesh:example:change the level of nimble host log 2022-12-15 18:00:25 +08:00
Armando
bb79980093 mspi_tuning: fix psram timing tuning bug 2022-12-15 17:08:03 +08:00
xiongweichao
d1ce1f9586 bt:Fixed the use of invalid configuration when the peer device configures the stream, and returned an incorrect error code 2022-12-15 17:01:32 +08:00
Guillaume Souchere
dd249a9ecd esp_system: fix placement of __stack_chk_fail from flash to RAM
When stack check is enabled, certain functions (sometimes placed in RAM)
are being decorated with stack guards and a call to __stask_chk_fail() in
case ofr stack corruption. For this reason, __stack_chk_fail() must be
placed in RAM too.

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

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

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

A section in mem_alloc.rst documentation is added to specify which functions from the
heap component API can be used in interrupt handlers.
2022-12-14 12:57:08 +01:00
Guillaume Souchere
6141600b61 heap: add selective placement of function in IRAM
This commit aims to place in the IRAM section only the functions that
are relevent for performance instead of placing the entire content of
multi_heap.c, mullti_heap_poisoning.c and tlsf.c in the IRAM.
2022-12-14 12:57:08 +01:00
chenjianxing
d13e431341 esp_wifi: fix multicast pkts drop issue for some AP when DTIM period > 1 2022-12-14 17:19:27 +08:00
Darian Leung
3eef9e7598 usb: Fix incorrect bmRequestType direction flag in USB Host Library
usb_host_transfer_submit_control() uses the incorrect bmRequestType direction
flag. Therefore, when doing a transfer check, all transfers were mistakenly
treated as OUT transfers (only affects transfer check and not actual transfer).
2022-12-13 22:28:02 +08:00
Darian Leung
974b955cff hal: Fix USB DWC HAL host channel halt race condition
This commit fixes a race condtion bug with usb_dwc_hal_chan_request_halt()
where a channel the channel is halted if it has just completed a transfer
(i.e., finished processing a QTD with the "HOC" flag set) but the channel is
still pending interrupt handling. In this case...

- usb_dwc_hal_chan_request_halt() would simply read the channel's underlying
register, determine it is not active, not set the "halt_requested" flag, and
simply return true.
- The caller assumes of usb_dwc_hal_chan_request_halt() will assume that the
channel has halted, and may proceed to reconfigure the pipe/port
- When usb_dwc_hal_chan_decode_intr() comes to process the pending interrupt
it will simply return USB_DWC_HAL_CHAN_EVENT_CPLT not knowing a halt has been
requested.

This commit updates the implementation of usb_dwc_hal_chan_request_halt() so
that a halt is properly requested even if the underlying channel has already
physically halted.
2022-12-13 22:27:54 +08:00
Tomas Rezucha
5842aca69c usb: Refactor USB Host tests
* Error messages improved
* Configurable for different mock devices

Note: Backport 645592e157 to v4.4 without
migrating to pytest.
2022-12-13 22:26:47 +08:00
Darian Leung
7295933f5f usb_host: Rename struct/ll/hal symbols to use "usb_dwc" prefix
Following the file renaming to use the "usb_dwc" prefix, this commit
updates the symbol names of those files to use the "usb_dwc" as well.

Some LL functions were also renamed so that the register name is
mentioned.
2022-12-13 21:36:00 +08:00
Darian Leung
c06346da35 usb_host: Rename struct/ll/hal files to use "usb_dwc" prefix
This commit updates the DWC_OTG based struct/ll/hal file names to
use the prefix "usb_dwc". This naming scheme reduces ambiguity if
another USB controller implementation is added.

As a result, "hcd.c" has been renamed to "hcd_dwc.c"
2022-12-13 21:36:00 +08:00
Darian Leung
d33e551f47 freertos: Remove GPL license text from port files
This commit removes the GPL license text from various FreeRTOS port files as it
no longer matches the licensing of FreeRTOS v10.4.3 which is distributed under
the MIT license.
2022-12-13 19:29:24 +08:00
timoxd7
b116cff94f Queue Send fix
Fixes rare deadlock on heavy loaded multicore-systems.
2022-12-13 17:23:29 +08:00
Darian Leung
9f3c0b1e38 usb_host: Fix incorrect memset() usage in HCD
This commit fixes incorrect usage of memset() in the HCD's various
_buffer_parse_...() functions. The memset was not clearing the qtd lists, and
were simply setting the first qtd to a non zero value (i.e., the length of
the QTD list).

However, no bug occurred as the subsequent _buffer_fill_...() functions would
overwrite the QTD list anyways.
2022-12-13 16:57:56 +08:00
Rahul Tank
f1ee4f551d Nimble: Update documentation to include distinction between upstream
mesh example and ESP-BLE-MESH
2022-12-13 12:56:17 +05:30
Rahul Tank
7c75d88da5 Nimble: Support maximum number of connections to 9 on ESP32-C3 and ESP32-S3 2022-12-11 18:17:25 +05:30
Aditya Patwardhan
43aa501f18 esp_flash_encrypt: If it is supported then Enable secure download mode in release mode instead of disabling it completely. 2022-12-11 18:16:56 +05:30
Jin Cheng
efcef1a400 correct the SR_mode selection when konw nothing about Peripheral 2022-12-09 10:28:06 +08:00
Mahavir Jain
e86181704a Merge branch 'fix/fix_behaviour_of_api_to_set_fe_release_mode_v4.4' into 'release/v4.4'
esp_flash_encrypt: If it is supported then Enable secure download mode in... (v4.4)

See merge request espressif/esp-idf!21494
2022-12-08 16:01:18 +08:00
wuzhenghui
e2b299660e bugfix: unstall other cpu on core reset
- Closes https://github.com/espressif/esp-idf/issues/10320
2022-12-08 15:38:01 +08:00
Aditya Patwardhan
0a83ebcded esp_flash_encrypt: If it is supported then Enable secure download mode in release mode instead of disabling it completely. 2022-12-08 10:28:48 +05:30
Mahavir Jain
9e46c9b894 Merge branch 'bugfix/fix_esp_https_server_initialize_v4.4' into 'release/v4.4'
esp_https_server: Fix initializers missing in esp_https_server (backport v4.4)

See merge request espressif/esp-idf!21482
2022-12-08 12:19:16 +08:00
morris
e72afc771f Merge branch 'bugfix/fix_slave_gpio_cs_mixed_with_iomux_bus_v4.4' into 'release/v4.4'
spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin (v4.4)

See merge request espressif/esp-idf!21375
2022-12-08 10:58:08 +08:00
Jiang Jiang Jian
4500ddf2f0 Merge branch 'bugfix/modify_wifi_max_conn_num_v4.4' into 'release/v4.4'
esp_wifi: update wifi lib

See merge request espressif/esp-idf!21479
2022-12-08 09:49:20 +08:00
Jiang Jiang Jian
6da4c6b513 Merge branch 'bugfix/fix_long_time_to_get_ip_v4.4' into 'release/v4.4'
lwip: fix the bug that long time to get IP (backport v4.4)

See merge request espressif/esp-idf!21462
2022-12-07 21:49:28 +08:00
jack
a34a4a91fb esp_wifi: update wifi lib
1. Modify wifi max connection num
2. Fix the ESPNOW senf fail after changing opmode
3.Add wifi station config for enabling transition_disbale feature
2022-12-07 18:14:36 +08:00
jack
43f93678ce reduce the max connection number to 15 2022-12-07 18:04:46 +08:00
zhangyanjiao
e943143e0f esp_wifi: fix esp32c3 connect fail
Closes IDFCI-1524
2022-12-07 18:04:46 +08:00
Ivan Grokhotkov
a82a530387 Merge branch 'staging/esp_static_assert_v4.4' into 'release/v4.4'
C/Cxx: unify static assertions with the macro ESP_STATIC_ASSERT  (v4.4)

See merge request espressif/esp-idf!21439
2022-12-07 16:58:01 +08:00
yuanjianmin
12252773b9 esp_https_server: Fix initializers missing in esp_https_server 2022-12-07 15:10:03 +08:00
Jiang Jiang Jian
17db9540d6 Merge branch 'fix/usb/error_handling_bacport_v4.4' into 'release/v4.4'
USB Host: Invalid pointer hotfix (backport v4.4)

See merge request espressif/esp-idf!21367
2022-12-07 14:00:01 +08:00
Shreyas Sheth
2bbd3ac583 esp_wifi:Add wifi station config for enabling transition_disbale feature 2022-12-07 11:44:28 +08:00
zhangyanjiao
3823a991db update doc for espnow max encryped connection 2022-12-07 11:37:06 +08:00
zhangyanjiao
5c1ff3d70b Modify maximum softap conn num and espnow encryption peer num 2022-12-07 11:33:00 +08:00
Wang Meng Yang
77b37716a3 Merge branch 'bugfix/reduce_BTU_TASK_stack_consumption_v4.4' into 'release/v4.4'
Reduce the stack consumption of BTU_TASK (backport v4.4)

See merge request espressif/esp-idf!21435
2022-12-07 11:29:48 +08:00
zhangyanjiao
85bf17d7e2 lwip: fix the bug that long time to get IP 2022-12-07 11:24:13 +08:00
Mahavir Jain
e83289fb7c Merge branch 'docs/remote_signing_of_images_cmd_fix_v4.4' into 'release/v4.4'
docs: fix secure boot "Remote Signing of Images" section command (v4.4)

See merge request espressif/esp-idf!21471
2022-12-07 11:11:41 +08:00
morris
56342a6057 Merge branch 'feature/support_rotating_lcd_ssd1306_v4.4' into 'release/v4.4'
Support rotation on SSD1306 (backport v4.4)

See merge request espressif/esp-idf!21469
2022-12-07 10:55:55 +08:00
Jiang Jiang Jian
1d52944fda Merge branch 'bufix/Backport_some_wifi_lwip_bugs_for_4.4_1205' into 'release/v4.4'
lwip:optimization dns ipv4 ipv6 timer

See merge request espressif/esp-idf!21447
2022-12-07 10:37:19 +08:00
Jiang Jiang Jian
1c0d0e505d Merge branch 'bugfix/multiple_wifi_fixes_v4.4' into 'release/v4.4'
esp_wifi: backport some wifi bugfixes to v4.4

See merge request espressif/esp-idf!21449
2022-12-07 10:28:57 +08:00
harshal.patil
0062349955 docs: fix secure boot "Remote Signing of Images" section command 2022-12-06 23:46:46 +05:30
Vilem Zavodny
68178540f0 lcd: Support rotation SSD1306 and fix mirror y. 2022-12-06 15:43:17 +01:00
Jiang Jiang Jian
4e083d8214 Merge branch 'bugfix/spp_vfs_memory_leak_v4.4' into 'release/v4.4'
Component_bt/fix esp_spp_vfs_register memory leak(v4.4)

See merge request espressif/esp-idf!21440
2022-12-06 20:40:33 +08:00
Omar Chebib
622fb9e906 CI: check_public_headers script will detect the use of static asserts in headers
When a public header contains _Static_assert or static_assert, check_public_headers.py script will detect it and report it as an issue.
Indeed, public headers shall now use ESP_STATIC_ASSERT.
2022-12-06 19:28:51 +08:00
xueyunfei
2e17ad62b8 lwip:optimization dns ipv4 ipv6 timer
* Update submodule: git log --oneline * Update submodule: git log --oneline 6132c9755a43d4e04de4457f1558ced415756e4d..79182163e9e77547e58a6aa34db94902b9812cb3
Detailed description of the changes:
  - dhcp: optimization fine timer when dhcp start(esp-lwip@79182163)
  - ip6 timer: optimization lwip ip6 reassembly timer (esp-lwip@c943fc5a)
  - ip4 timer: optimization lwip ip4 reassembly timer (esp-lwip@17f41c9f)
  - dns timer: optimization lwip dns timer (esp-lwip@7f5ab42c)
2022-12-06 17:30:47 +08:00
Marius Vikhammer
1d13716d28 Merge branch 'bugfix/freertos_port_miss_header_v4.4' into 'release/v4.4'
freertos: add missing header include for esp_chip_info.h to port.c (v4.4)

See merge request espressif/esp-idf!21459
2022-12-06 14:32:36 +08:00
Jiang Jiang Jian
52ba3f1ee0 Merge branch 'bugfix/Fix_exceptional_list_params_check_v4.4' into 'release/v4.4'
ble_mesh: stack: Fix exceptional list parameters check issue(v4.4)

See merge request espressif/esp-idf!21442
2022-12-06 14:13:20 +08:00
Wang Meng Yang
e0b8f83253 Merge branch 'bugfix/reattempt_crash_v4.4' into 'release/v4.4'
NimBLE: Fixed going for reattempt connection code (v4.4)

See merge request espressif/esp-idf!21176
2022-12-06 14:02:25 +08:00
xiongweichao
8246d6bec6 Assert when malloc user_data fail 2022-12-06 06:02:01 +00:00
xiongweichao
854a31feda Modified spp vfs example 2022-12-06 06:02:01 +00:00
xiongweichao
cdbdb31d6d Fixed memory leak when SPP initialization failed 2022-12-06 06:02:01 +00:00
xiongweichao
67341a31b7 Added esp_spp_vfs_unregister() to free memory allocated by esp_spp_vfs_register() 2022-12-06 06:02:01 +00:00
jack
da03bab573 small fixes 2022-12-06 13:12:17 +08:00
Marius Vikhammer
9e66eb4c9f freertos: add missing header include for esp_chip_info.h to port.c
Closes https://github.com/espressif/esp-idf/issues/10310
2022-12-06 12:18:20 +08:00
morris
5d4edd8218 Merge branch 'bugfix/mcpwm_example_support_usj_v4.4' into 'release/v4.4'
mcpwm: bdc control example also support usb serial jtag console

See merge request espressif/esp-idf!21432
2022-12-06 11:38:57 +08:00
Wang Meng Yang
d78c08587d Merge branch 'contrib/github_pr_9529_v4.4' into 'release/v4.4'
component_bt: Fixed memory leak due to not freeing memory if posting a message to a thread fails(v4.4)

See merge request espressif/esp-idf!21446
2022-12-06 10:51:53 +08:00
Jiang Jiang Jian
e5b0abcc57 Merge branch 'bugfix/backport_wifi_fixes_v4.4' into 'release/v4.4'
backported some wifi fixes (backport v4.4)

See merge request espressif/esp-idf!21448
2022-12-06 10:25:02 +08:00
Simon Arlott
731486ad33 hal/uart_ll.h: Fix compile with C++
I'm including <hal/uart_ll.h> in my C++ application because I need to
bypass the uart driver. The inline functions in the header file fail to
compile as C++.

All of the enums need explicit casts for conversion to/from integers.

Merges https://github.com/espressif/esp-idf/pull/10106
2022-12-06 10:18:32 +08:00
Kapil Gupta
c71071b36c esp_wifi: Add changes to skip SAE handshake during WPS connection 2022-12-05 21:35:11 +05:30
Kapil Gupta
c34ba085ba esp_wifi: Flush PMK caching if bss akm has changed 2022-12-05 21:35:05 +05:30
Kapil Gupta
9e4b31e0f2 Correct SSID copy length during WPS scan 2022-12-05 21:34:46 +05:30
morris
99b4b5fbb2 Merge branch 'bugfix/allow_bypass_lcd_cmd_v4.4' into 'release/v4.4'
spi_lcd: panel_io_spi_tx_color without cmd (v4.4)

See merge request espressif/esp-idf!21428
2022-12-05 22:47:22 +08:00
jack
9acf90f5e4 esp_wifi: backport some bugfixes to v4.4
1.Bugfix for  clear bss info when wifi stop
2.Bugfix for  add clear ap list interface
3.Modify wifi scan return value.
4.Change the log level of some logs to avoid misunderstanding.
5.Fix connect fail return wrong error code issue.
6.Fix WAPI issue on gtk compability and referrence to broadcast arp pkts.
7.Support WiFi tx fragment in the crypto mode of gcmp.
8.Fix tx fragment issue that pn code is less than msdu after pn code add two for tx fragment.
9.Fixed some issues on Soft-AP power save.
10.fix invalid child issue
11.fix WIFI_EVENT_AP_STADISCONNECTED event error
12.Fix SoftAP memory leak issue.
13.Fixed sta get ap info does not return connected ssid issue.
14.Fix SoftAP recv ps-poll not update inactive timer issue.
2022-12-05 22:38:33 +08:00
alex.li
d8362cce90 esp_wifi: fix wapi gtk id compability issue and adapt tx frag pn sequently. 2022-12-05 21:48:36 +08:00
Marius Vikhammer
082ff4e441 Apply suggestions to 2 files 2022-12-05 21:44:06 +08:00
muhaidong
d404e429ec esp_wifi: Modify wifi scan return value.
1. Modify wifi scan return value same to docs.
2. Change some logs' log level wo avoid misunderstanding.
3. Fix connect fail return wrong error code issue
2022-12-05 21:42:57 +08:00
zhangyanjiao
df9fba9d22 update doc for set channel 2022-12-05 21:41:39 +08:00
zhangyanjiao
c227cbea3f update wifi reason code 2022-12-05 21:40:44 +08:00
xueyunfei
cf3e45deef esp_wifi:add clear ap list interface 2022-12-05 20:57:00 +08:00
xiongweichao
91983ad0cf bt: Fixed incorrect parameters in switching to BTC context 2022-12-05 20:49:18 +08:00
xiongweichao
5c14b6eed1 bt:Modify the member variable *arg in struct btc_msg to arg[0] 2022-12-05 20:48:16 +08:00
xiongweichao
9ec06ba4ac bt: Fixed memory leak due to not freeing memory if posting a message to a thread fails 2022-12-05 20:48:04 +08:00
wangjialiang
4aa7b2a837 ble_mesh: stack: Fix exceptional list parameters check issue 2022-12-05 20:25:07 +08:00
Omar Chebib
049d21bb12 C/Cxx: unify static assertions with the macro ESP_STATIC_ASSERT
Closes https://github.com/espressif/esp-idf/issues/9938
2022-12-05 18:16:08 +08:00
isha.pardikar@espressif.com
d927830b81 NimBLE: Fixed going for reattempt connection code 2022-12-05 14:36:48 +05:30
Zim Kalinowski
c529135c71 Merge branch 'bugfix/share_intr_v4.4' into 'release/v4.4'
intr_alloc: fixed freed interrupt sources not being able to be allocated again with different flags (v4.4)

See merge request espressif/esp-idf!21286
2022-12-05 16:38:09 +08:00
morris
cb4fccb38a mcpwm: bdc control example also support usb serial jtag 2022-12-05 16:19:45 +08:00
zwj
b07e7d7c3f Reduce the stack consumption of BTU_TASK 2022-12-05 15:50:09 +08:00
Jiang Jiang Jian
694bc6bf47 Merge branch 'feature/backport_blufi_coexist_phy_init_flag_v4.4' into 'release/v4.4'
esp_wifi: backport coexist fix, connectionless ps fix, blufi feature

See merge request espressif/esp-idf!21411
2022-12-05 15:04:43 +08:00
Marius Vikhammer
628af15b5a Merge branch 'bugfix/xtensa_freertos_16B_aligned_v4.4' into 'release/v4.4'
FreeRTOS: Make the default stack alignment 16 for Xtensa

See merge request espressif/esp-idf!21405
2022-12-05 15:00:55 +08:00
morris
ca6a427a81 spi_lcd: panel_io_spi_tx_color without cmd
Closes https://github.com/espressif/esp-idf/issues/10302
2022-12-05 14:27:34 +08:00
Wang Meng Yang
6672ec0692 Merge branch 'feature/support_ble_max_conn_num_to_9_v4.4' into 'release/v4.4'
Support bluedroid host maximum number of connections to 9 (backport v4.4)

See merge request espressif/esp-idf!21399
2022-12-05 12:16:55 +08:00
Jiang Jiang Jian
8b24bbd919 Merge branch 'bugfix/fix_c3_s3_ble_temperature_performance_v4.4' into 'release/v4.4'
Fixed bluetooth disconnection caused by HW temperature rise or fall(backport v4.4)

See merge request espressif/esp-idf!21371
2022-12-05 10:52:27 +08:00
liuning
78cef1b7d2 esp_wifi: update lib for backport 2022-12-02 20:02:07 +08:00
liuning
b6800c3e01 phy: only set phy_init_flag at power domain off, when all modems deinit 2022-12-02 19:54:58 +08:00
liuning
c9996c010d esp_wifi: fix some connectionless related issue 2022-12-02 19:53:35 +08:00
liuning
6a66453e94 docs: update BluFi documentation 2022-12-02 19:48:41 +08:00
liuning
2d2177b4ad blufi: update version to 1.3
record connecting status, got ip status, maximum retry, connection end info (reason code, rssi) and provide greater information to phone
2022-12-02 19:45:28 +08:00
zhangyanjiao
de5156bb20 esp_wifi: report rssi info in wifi event 2022-12-02 19:43:24 +08:00
Jiang Jiang Jian
f90c12fc3c Merge branch 'bugfix/fix_hid_device_vup_without_connection_4.4' into 'release/v4.4'
Bugfix/Fix HID Device can not remove virtually cabled device without a connection[backport 4.4]

See merge request espressif/esp-idf!21366
2022-12-02 16:00:20 +08:00
Jiang Jiang Jian
3dcb9cf8ec Merge branch 'bugfix/sta_set_extra_ies_for_open_AP_v4.4' into 'release/v4.4'
esp_wifi: STA set extra IEs for open AP v4.4

See merge request espressif/esp-idf!21363
2022-12-02 16:00:31 +08:00
Omar Chebib
b2ddedb941 FreeRTOS: Make the default stack alignment 16 for Xtensa 2022-12-02 15:20:09 +08:00
Marius Vikhammer
7ae5ec946d Merge branch 'bugfix/rtc_retain_mem_always_erased_v4.4' into 'release/v4.4'
Bootloader: retained memory can now be kept after reboot when custom data enabled (backport v4.4)

See merge request espressif/esp-idf!21233
2022-12-02 13:49:59 +08:00
morris
ee867ec16b Merge branch 'bugfix/i2c_func_iram_v4.4' into 'release/v4.4'
I2C: put some interrupt used functions into IRAM

See merge request espressif/esp-idf!20991
2022-12-02 12:43:40 +08:00
zwj
417dff3a1e update BLE lib for ESP32-C3 and ESP32-S3
- Fixed lld_con.c line 3048 assert
- Fixed crash sometimes when connected as a slave by 8th device
2022-12-02 12:01:04 +08:00
zhiweijian
6e1eb4af26 bluedroid host supports the maximum number of connections to 9 2022-12-02 12:00:53 +08:00
Wang Meng Yang
2c41b01771 Merge branch 'bugfix/fix_bt_sleep_hangs_when_enable_light_sleep_backport_v4.4' into 'release/v4.4'
bt: fix bt sleep flow hangs in btdm_sleep_clock_sync(backport v4.4)

See merge request espressif/esp-idf!21383
2022-12-02 11:27:12 +08:00
Jiang Jiang Jian
f9488e59a7 Merge branch 'bugfix/check_ies_in_match_security_v4.4' into 'release/v4.4'
Adding check for ies in match security (Backport v4.4)

See merge request espressif/esp-idf!20790
2022-12-02 10:37:39 +08:00
jack
d688fc3542 eps-wifi: update wifi lib
1. Adding check for ies in match security
2. Set AP rsnxe while connecting to a AP
3. Restores station status to connected when no other AP is found for roam
4. Add config option for AP retry count
5. Fix unprotected SA Query issue
2022-12-01 19:35:30 +05:30
Armando
b23a2b0a75 spi: limit esp32 dma workaround only on esp32 2022-12-01 20:57:09 +08:00
jingli
458f7190f1 bt: fix bt sleep flow hangs in btdm_sleep_clock_sync
Bluetooth low power related logic and regs have separate power domain from MAC and BB,
and do not power down during light sleep. If reset when power up MAC and BB in sleep
flow, it may destroy the state of bt low power part.
2022-12-01 20:53:02 +08:00
wanlei
cd08ea1f31 spi_slave: fix slave can't use iomux bus mixed with gpio cs_pin 2022-12-01 20:15:21 +08:00
zhiweijian
3f42a81447 Fixed CI esp32s3.default_2_s3.Test failed 2022-12-01 19:45:04 +08:00
zhiweijian
2902766706 - update phy lib
- Enable BLE pll track to fix bluetooth disconnection caused by temperature rise or fall on ESP32C3 and ESP32S3
- call pll track in controller task
2022-12-01 19:43:55 +08:00
Omar Chebib
465577dd28 Bootloader: retained memory can now be kept after reboot when custom data enabled
User's custom data are not taken into account during the CRC calculation anymore.
Which means taht the retained mem structure is not systematically erased
on each reboot anymore.
2022-12-01 16:34:59 +08:00
Cao Sen Miao
9a6a28734b I2C: put some interrupt used functions into IRAM,
closes https://github.com/espressif/esp-idf/issues/10079
2022-12-01 16:20:56 +08:00
Tomas Rezucha
2c89caab9b usb: Don't access uninit pointer if usbh_install fails 2022-12-01 08:37:01 +01:00
liqigan
7ba36f4d47 fix HID device can not remove virtually cabled device without a connection
Closes https://github.com/espressif/esp-idf/issues/10107
2022-12-01 15:18:19 +08:00
Shreyas Sheth
7252d678a0 esp_wifi: STA set extra IEs for open AP 2022-12-01 12:19:33 +05:30
Jiang Jiang Jian
00396a9d49 Merge branch 'bufix/a2dp_fail_connect_again_after_disconnect_v4.4' into 'release/v4.4'
component_bt: Fixed a2dp failing to connect again after disconnect(v4.4)

See merge request espressif/esp-idf!21343
2022-12-01 10:34:45 +08:00
Jiang Jiang Jian
db7c50b373 Merge branch 'bugfix/security_params_overwrite_v4.4' into 'release/v4.4'
Add changes to prevent security params overwritten in full scan (backport v4.4)

See merge request espressif/esp-idf!21301
2022-11-30 22:53:32 +08:00
xiongweichao
a2e8c6f95c Fixed a2dp failing to connect again after disconnect 2022-11-30 19:11:27 +08:00
Mahavir Jain
7c1dd9025f Merge branch 'feature/update_expat_2_5_0' into 'release/v4.4'
expat: Upgrade version to release v2.5.0

See merge request espressif/esp-idf!21294
2022-11-30 16:43:15 +08:00
Jiang Jiang Jian
cdf8810f63 Merge branch 'bugfix/disable_prov_encryption_v4.4' into 'release/v4.4'
Wifi Prov: Disabled the default support for BLE Encrpytion on characteristics read /write (v4.4)

See merge request espressif/esp-idf!21264
2022-11-30 12:06:08 +08:00
Roland Dobai
99e2722aab Merge branch 'fix/gdbgui_v4.4' into 'release/v4.4'
Tools: gdbgui is not supported on Python 3.11

See merge request espressif/esp-idf!21054
2022-11-29 18:07:03 +08:00
Wang Meng Yang
89bb0c0759 Merge branch 'bt/opt_audio_datapath_v4.4' into 'release/v4.4'
bt/optimized a2dp_sink audio datapath (v4.4)

See merge request espressif/esp-idf!21223
2022-11-29 17:58:26 +08:00
Wang Meng Yang
359762c84a Merge branch 'bugfix/optimize_hidh_disconnection_4.4' into 'release/v4.4'
Bugfix/Fix HID Host improper handle of freeing resource in esp_hid component[backport 4.4]

See merge request espressif/esp-idf!21249
2022-11-29 17:56:12 +08:00
Roland Dobai
3974be7fec Tools: gdbgui is not supported on Python 3.11
Closes https://github.com/espressif/esp-idf/issues/10116
2022-11-28 10:29:34 +00:00
Roland Dobai
7a77109e0d ci: lift restriction on pygdbmi in panic test
Backport of 01f1aba2d0
2022-11-28 10:29:34 +00:00
Aleksei Apaseev
e963447276 ci: lift the restriction on pygdbmi in ttfw_idf 2022-11-28 10:29:34 +00:00
gauri patankar
5bcd438a45 Add changes to prevent security params overwritten in full scan (backport v4.4) 2022-11-28 14:52:43 +05:30
Harshit Malpani
7ad67bf462 expat: Upgrade version to release v2.5.0 2022-11-28 13:55:21 +05:30
Mahavir Jain
932b6699ac Merge branch 'fix/secure_boot_v2_fix_warning_message_v4.4' into 'release/v4.4'
Fix/secure boot v2 fix warning message (v4.4)

See merge request espressif/esp-idf!21275
2022-11-28 11:37:16 +08:00
Marius Vikhammer
e5999ea4fb intr_alloc: fixed freed interrupt sources not being able to be allocated again with different flags
Mark the vector descriptor source as freed.
2022-11-28 10:45:27 +08:00
Roland Dobai
1c82aa5369 Merge branch 'bugfix/serial_reader_linux_writes_correctly_4.4' into 'release/v4.4'
bugfix(tools): idf.py monitor now reads correctly on Linux (backport 4.4)

See merge request espressif/esp-idf!21271
2022-11-25 23:24:31 +08:00
Aditya Patwardhan
98430b2f94 secure_boot_v2: Fix warning message 2022-11-25 18:34:31 +05:30
Aditya Patwardhan
0c374689ff Merge branch 'bugfix/secure_boot_v2_bootloader_reflash_note_v4.4' into 'release/v4.4'
docs: secure-boot-v2: remove incorrect note about bootloader re-flash (v4.4)

See merge request espressif/esp-idf!21266
2022-11-25 20:23:08 +08:00
David Čermák
56b2ae504f Merge branch 'feature/mqtt_cmakefile_cleanup_v4.4' into 'release/v4.4'
[MQTT] Simplifies MQTT CMakeLists file(v4.4)

See merge request espressif/esp-idf!20483
2022-11-25 19:27:08 +08:00
Jakob Hasse
dcf87b10b6 bugfix(tools): idf.py monitor now reads correctly on Linux
A missing flush in the serial reader implementation for
Linux target was causing input to idf.py monitor to not
be forwarded to the application. This is fixed now.
2022-11-25 11:41:24 +01:00
Mahavir Jain
5e436add7a docs: secure-boot-v2: remove incorrect note about bootloader re-flash
In secure-boot-v2 scheme, one can always regenerate signature using
secure boot signing key and re-flash either bootloader or application.
2022-11-25 14:23:24 +05:30
Rahul Tank
d86afd82c1 Wifi Prov: Disabled the default support for BLE Encrpytion on characteristics read /write
By default, disabled the BLE Encrpyption requirement for provisioning characteristic.
With this flag enabled, when remote attempts to read and if the ACL link is not encrypted,
ESP device will return Insufficient Authentication. It is remote device responsibility to go
for link encryption which may result in pairing.

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

End user can enable it as per their use case.
2022-11-25 14:18:15 +05:30
David Čermák
c2c6457fbf Merge branch 'bugfix/mqtt_start_stop_timer_fixes_v4.4' into 'release/v4.4'
mqtt: Fix keepalive with esp-timer; clean close SM (v4.4)

See merge request espressif/esp-idf!20816
2022-11-25 15:25:24 +08:00
liqigan
54c5e28c80 optimize HID Host disconnection procedure 2022-11-25 09:34:12 +08:00
Euripedes Rocha
c273e132ff [MQTT] Simplifies MQTT CMakeLists file
- Removes mocks creation
- Adds tcp_transport explicitly as dependency

Closes https://github.com/espressif/esp-idf/issues/9630
2022-11-24 15:03:23 +00:00
Jiang Jiang Jian
39189e7522 Merge branch 'bugfix/fixed_HIDH_connection_failure_v4.4' into 'release/v4.4'
bugfix/fixed connection failure and build errors of HID host (v4.4)

See merge request espressif/esp-idf!21210
2022-11-24 19:12:13 +08:00
Jiang Jiang Jian
f2777e994d Merge branch 'ci/iram_overflow_build_ssc_and_test_apps_4.4' into 'release/v4.4'
CI: build ssc and test apps iram overflow (4.4)

See merge request espressif/esp-idf!21217
2022-11-24 18:45:02 +08:00
Jin Cheng
a1b4ef2806 Increase BtI2STask stack depth to avoid stack overflow 2022-11-24 12:14:15 +08:00
Jin Cheng
2c38701f68 optimized a2dp_sink audio datapath
1. removed audio cache in BTC layer of Bluedroid
2. added flow control for audio data in application layer

Closes https://github.com/espressif/esp-idf/issues/9622
2022-11-24 12:14:08 +08:00
Chen Yudong
8eb55c84a8 test_apps: fix IRAM overflow in build test apps 2022-11-24 11:33:59 +08:00
Jin Cheng
2d220b5c3f 1. changed pin_type of Legacy Paring from FIXED to VARIABLE to avoid authentication failure
2. provide compatibilities with devices that do not support Secure Simple Paring

Closes https://github.com/espressif/esp-idf/issues/10069
Closes https://github.com/espressif/esp-idf/issues/10005
2022-11-23 20:53:41 +08:00
Jin Cheng
11ab4404ff fixed build errors with Secure Simple Paring disabled 2022-11-23 20:52:09 +08:00
Jiang Jiang Jian
2302651311 Merge branch 'mesh/bugfix_fix_memory_leak_issue_v4.4' into 'release/v4.4'
esp_mesh: fix the memeory leak issue when call esp_mesh_start/stop (backport v4.4)

See merge request espressif/esp-idf!21133
2022-11-23 11:42:25 +08:00
morris
832ba7dba2 Merge branch 'bugfix/legacy_rmt_resource_leak_v4.4' into 'release/v4.4'
rmt: fix memory leak in the legacy driver (v4.4)

See merge request espressif/esp-idf!21167
2022-11-23 11:29:17 +08:00
Wang Meng Yang
4f3f8ebb3d Merge branch 'bugfix/fix_hfp_clcc_parser_bug_4.4' into 'release/v4.4'
Bugfix/Fix HFP client parse CLCC command response bug[backport 4.4]

See merge request espressif/esp-idf!21157
2022-11-23 11:09:41 +08:00
Wang Meng Yang
2b4b59e635 Merge branch 'bugfix/a2dp_source_memory_access_out_of_bounds_v4.4' into 'release/v4.4'
Fixed the issue memory access out of bounds in a2dp_source example (v4.4)

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

See merge request espressif/esp-idf!21121
2022-11-23 10:25:47 +08:00
Yuan Hong Hui
e591c290ad ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.4) 2022-11-23 10:25:45 +08:00
Jiang Jiang Jian
76d805f15a Merge branch 'feature/support_ble_memory_release_on_esp32c3_and_esp32s3_v4.4' into 'release/v4.4'
support BLE memory release on ESP32C3 and ESP32S3 (backport v4.4)

See merge request espressif/esp-idf!21168
2022-11-22 14:38:03 +08:00
Roland Dobai
00402bef5f Merge branch 'fix/bitstring_4_v4.4' into 'release/v4.4'
Tools: Use bitstring package compatible with supported Python versions

See merge request espressif/esp-idf!21165
2022-11-21 22:12:45 +08:00
Zim Kalinowski
345a12c1f9 Merge branch 'feature/tlsf-dynamic-control-size_v4.4' into 'release/v4.4'
heap: Update to the new tlsf implementation of dynamic metadata size (backport v4.4)

See merge request espressif/esp-idf!20797
2022-11-21 19:02:35 +08:00
zwj
8e50c5acb2 support BLE memory release on ESP32C3 and ESP32S3 2022-11-21 10:46:30 +08:00
morris
1cece7eef0 rmt: fix memory leak in the legacy driver
Closes https://github.com/espressif/esp-idf/issues/10173
2022-11-21 10:00:24 +08:00
Roland Dobai
7f732720f0 Tools: Use bitstring package compatible with supported Python versions
Bitstring>=4 supports Python 3.7+ only. See:
https://github.com/scott-griffiths/bitstring/releases/tag/bitstring-4.0.1
2022-11-20 17:35:34 +01:00
morris
1f63dc70b8 Merge branch 'bugfix/fix_iram_end_redefined_backportv4.4' into 'release/v4.4'
bugfix: fix redefined _iram_end (backport v4.4)

See merge request espressif/esp-idf!21159
2022-11-20 18:30:09 +08:00
wuzhenghui
cf0c0d98ee bugfix: fix redefined _iram_end 2022-11-18 19:51:23 +08:00
liqigan
a96c1fc7c6 fix HFP client parse CLCC command response bug 2022-11-18 19:41:41 +08:00
Jin Cheng
e3ec58043f Fixed the issue memory access out of bounds in a2dp_source example 2022-11-18 16:40:03 +08:00
morris
be9d294718 Merge branch 'contrib/github_pr_10027_v4.4' into 'release/v4.4'
[Panic] also print to secondary USB Serial/JTAG Console (GitHub PR) (v4.4)

See merge request espressif/esp-idf!21022
2022-11-18 11:52:06 +08:00
Wang Meng Yang
da943339ad Merge branch 'bugfix/change_default_tx_power_on_c3_and_s3_v4.4' into 'release/v4.4'
Change BLE default TX power on ESP32C3 and ESP32S3(backport v4.4)

See merge request espressif/esp-idf!21102
2022-11-18 10:46:33 +08:00
zhangyanjiao
4d6cce4b3b esp_mesh: fix the memeory leak issue when call esp_mesh_start/stop 2022-11-17 17:30:52 +08:00
morris
a54467fcfb Merge branch 'contrib/github_pr_7144_v4.4' into 'release/v4.4'
Update i2c.c to consider two I2C buses for clear bus counter (GitHub PR) (backport v4.4)

See merge request espressif/esp-idf!20505
2022-11-17 16:35:50 +08:00
zhiweijian
58979bee59 cleanup bluetooth sdkconfig.defaults 2022-11-17 03:46:02 +00:00
zwj
b6f3bfaa13 Update bt lib for ESP32C3 and ESP32S3
- Added config to disable scan backoff
- Fixed llm_scan.c assert at line 1485 during controller deinit if duplicate scan is not stopped
- Call pll track in controller task
2022-11-17 03:46:02 +00:00
zhiweijian
269c02f391 Fixed ble_compatibility_test example NVS init error 2022-11-17 03:46:02 +00:00
zwj
80078b6192 Fixed errors reported by CI clang_tidy_check 2022-11-17 03:46:02 +00:00
zwj
d6e3d887c1 Fixed sometimes BTU task overflow when doing read and write performance test 2022-11-17 03:46:02 +00:00
zwj
485f3a4ce1 change default tx power from 3dBm to 9dBm 2022-11-17 03:46:02 +00:00
Marius Vikhammer
54dcccc1f6 Merge branch 'bugfix/flake8_precommit_v4.4' into 'release/v4.4'
precommit: update flake8 repo url to use github (v4.4)

See merge request espressif/esp-idf!21096
2022-11-17 09:13:52 +08:00
Marius Vikhammer
43a411d452 precommit: update flake8 repo url to use github
Gitlab mirror repo has been deprecated.
2022-11-15 16:21:13 +08:00
morris
36dde93b57 Merge branch 'feature/remove_psram_cs_clk_pin_settings_config_s2_s3_v4.4' into 'release/v4.4'
psram: remove CS/CLK pin settings in kconfig on ESP32S2/S3 (v4.4)

See merge request espressif/esp-idf!21045
2022-11-15 10:53:23 +08:00
Jiang Jiang Jian
f902b64f40 Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.4' into 'release/v4.4'
fixed the issue iOS devices cannot initiate connection (v4.4)

See merge request espressif/esp-idf!21062
2022-11-14 15:41:14 +08:00
Jiang Jiang Jian
ca8d88a8f5 Merge branch 'bugfix/wpa_enterprise_reauth_v4.4' into 'release/v4.4'
esp_wifi: Fix WiFi Enterprise Reauthentication issue (v4.4)

See merge request espressif/esp-idf!21072
2022-11-14 15:24:37 +08:00
Shreyas Sheth
24efd4a505 esp_wifi: Bugfix WPA Enterprise Reauthentication issue 2022-11-14 11:12:22 +05:30
morris
c01e186442 Merge branch 'bugfix/esp32s3_rom_has_ets_printf_issue_v4.4' into 'release/v4.4'
esp_rom: fix esp32s3 rom ets_printf bug (backport to v4.4)

See merge request espressif/esp-idf!20795
2022-11-14 10:59:02 +08:00
Jiang Jiang Jian
c3439e040a Merge branch 'bugfix/fixing_memory_leak_wps_scan_v4.4' into 'release/v4.4'
(wpa_supplicant) : Fixed a memory leak issue created when parsing scan results

See merge request espressif/esp-idf!20988
2022-11-14 10:46:31 +08:00
Jin Cheng
07518cf467 fixed the issue iOS devices cannot initiate connection
to ESP32 while there is a BLE connection to this ESP32

Closes https://github.com/espressif/esp-idf/issues/6557
2022-11-14 09:48:13 +08:00
morris
76caa64286 Merge branch 'docs/fix-typo-touch-pad-esp32s2-esp32s3_v4.4' into 'release/v4.4'
docs:fix a typo in touch_sensor.h of esp32s2 and esp32s3 (v4.4)

See merge request espressif/esp-idf!21044
2022-11-12 00:08:05 +08:00
jgujarathi
cb0ce135a5 (wpa_supplicant) : Fixed a memory leak issue created when parsing scan results. 2022-11-11 17:11:00 +05:30
Armando
3fb3600ee0 psram: remove CS/CLK pin settings in kconfig on ESP32S2/S3 2022-11-11 17:45:03 +08:00
Linda
d6ffcfdae8 docs:fix a typo in touch_sensor.h of esp32s2 and esp32s3 2022-11-11 17:40:18 +08:00
jiangguangming
c6e5bee48a esp_rom: add rom api esp_rom_uart_set_as_console for riscv chips 2022-11-11 17:08:42 +08:00
Jiang Jiang Jian
1411de54b4 Merge branch 'feature/support_hpm_on_flash_4.4' into 'release/v4.4'
spi_flash: Building a framework to enable HPM when flash works under high speed mode, take GD as an example.(backport v4.4)

See merge request espressif/esp-idf!17758
2022-11-11 16:47:26 +08:00
Jiang Jiang Jian
86d29d566b Merge branch 'bugfix/fix_current_leakage_when_hold_digital_io_during_deep_sleep_backport_v4.4' into 'release/v4.4'
esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep(backport v4.4)

See merge request espressif/esp-idf!20945
2022-11-11 16:33:43 +08:00
Roland Dobai
538cd8f0ae Merge branch 'feature/oocd_ver_upgrade_v4.4' into 'release/v4.4'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20221026' (v4.4)

See merge request espressif/esp-idf!21005
2022-11-11 15:50:44 +08:00
Zim Kalinowski
2e1deb55c0 Merge branch 'bugfix/bt_bss_wrong_address_v4.4' into 'release/v4.4'
Bluetooth: fix BSS placement in the linker script generated by ldgen (backport v4.4)

See merge request espressif/esp-idf!20978
2022-11-11 12:14:51 +08:00
Mahavir Jain
2d9d9e52bf Merge branch 'feature/upgrade_argtable_3_2_2_files_v4.4' into 'release/v4.4'
console: argtable3: upgrade to v3.2.2 (v4.4)

See merge request espressif/esp-idf!21015
2022-11-11 11:36:40 +08:00
Jiang Jiang Jian
fd5aec2d6a Merge branch 'bugfix/fix_part_of_modem_not_reset_when_power_on_backport_v4.4' into 'release/v4.4'
Coexistence: fix part of modem module not reset when power up(backport v4.4)

See merge request espressif/esp-idf!20808
2022-11-11 10:50:56 +08:00
jiangguangming
960ed3ff26 esp_rom: remove ESP_ROM_SUPPORT_MULTIPLE_UART 2022-11-11 10:28:50 +08:00
jiangguangming
a1e6f1dada esp_rom: fix esp32s3 rom ets_printf bug 2022-11-11 10:27:48 +08:00
morris
4830bcc777 Merge branch 'feature/esp_lcd_register_io_callback_v4.4' into 'release/v4.4'
esp_lcd: Add function for register on color done callback (backport v4.4)

See merge request espressif/esp-idf!21032
2022-11-11 10:11:51 +08:00
morris
6a2cffe84d Merge branch 'doc/explain_ledc_callback_return_value_v4.4' into 'release/v4.4'
ledc: explain the callback return value (v4.4)

See merge request espressif/esp-idf!20967
2022-11-11 10:10:13 +08:00
Vilem Zavodny
7280f9c7a5 esp_lcd: Add function for register on color done callback.
(cherry picked from commit 747c5993a8)
2022-11-10 12:13:00 +01:00
morris
8cba2f2ddf ledc: explain the callback return value
Closes https://github.com/espressif/esp-idf/issues/10093
2022-11-10 18:49:51 +08:00
Ivan Grokhotkov
e2cdc7f007 console: argtable3: upgrade to v3.2.2
Closes https://github.com/espressif/esp-idf/issues/9907
Closes https://github.com/espressif/esp-idf/pull/10016
2022-11-10 11:05:24 +01:00
Ivan Grokhotkov
3e524fc18e docs: update copyrights list for argtable3 2022-11-10 11:05:24 +01:00
Ivan Grokhotkov
2ca65b9aef console: argtable3: sync arg_end argument name
...between declaration and definition, to silence clang-tidy warnings
2022-11-10 11:05:24 +01:00
Ivan Grokhotkov
5a8faed3dc console: argtable3: fix -Wwrite-strings warnings
Re-apply commit 744c2dcdd9
2022-11-10 11:05:24 +01:00
Ivan Grokhotkov
499dbc2152 console: argtable3: re-introduce arg_print_formatted function 2022-11-10 11:05:24 +01:00
Ivan Grokhotkov
5d13a0b544 console: argtable3: use newlib getopt, disable logs
Opted for changing the source code to avoid adding one extra flag to
component public CPPFLAGS.
2022-11-10 11:05:24 +01:00
Ivan Grokhotkov
85db9731e8 console: argtable3: update build system for v3.2.1 2022-11-10 11:05:23 +01:00
Ivan Grokhotkov
869ce022bd console: argtable3: add SPDX copyright headers 2022-11-10 11:05:23 +01:00
Ivan Grokhotkov
2c66721c3a console: argtable3: upgrade to v3.2.1
Source code taken from release archives in
https://github.com/argtable/argtable3/releases/tag/v3.2.1.52f24e5

Applied dos2unix to all files.
Removed trailing whitespace with the pre-commit hook.

Resolves some of the static analysis issues reported in
https://github.com/espressif/esp-idf/issues/6440
(mallocs are replaced by xmalloc wrapper which panics on failed
allocations)
2022-11-10 11:05:23 +01:00
Marius Vikhammer
7b8ce7a3a6 Merge branch 'bugfix/esp_timer_isr_dispatch_test_fail_v4.4' into 'release/v4.4'
esp_timer: fix ESP_TIMER_ISR dispatch method due to off by one error (v4.4)

See merge request espressif/esp-idf!21027
2022-11-10 16:44:50 +08:00
jingli
fbf7261531 wifi/bt: fix part of modem module not reset when power up 2022-11-10 16:00:02 +08:00
Marius Vikhammer
478ffa077c esp_timer: fix ESP_TIMER_ISR dispatch method due to off by one error 2022-11-10 15:03:15 +08:00
Jiang Jiang Jian
dde4ba5362 Merge branch 'bufix/Backport_some_wifi_lwip_bugs_for_4.4_1025' into 'release/v4.4'
Bufix/backport some wifi lwip bugs for 4.4 1025

See merge request espressif/esp-idf!20781
2022-11-10 10:59:10 +08:00
Jiang Jiang Jian
12c64be392 Merge branch 'bugfix/ble_mesh_console_memory_leak_test_forv4.4' into 'release/v4.4'
ble_mesh:example:fix memory leak(v4.4)

See merge request espressif/esp-idf!20038
2022-11-10 10:45:12 +08:00
Jiang Jiang Jian
7bd454188d Merge branch 'bugfix/remove_get_modle_and_get_comp_api_forv4.4' into 'release/v4.4'
ble_mesh:example:change the method of get model(for v4.4)

See merge request espressif/esp-idf!20393
2022-11-10 10:44:52 +08:00
Jiang Jiang Jian
35d0d68bbd Merge branch 'bugfix/use_nonblocking_coex_callback_v4.4' into 'release/v4.4'
bluetooth: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth(backport v4.4)

See merge request espressif/esp-idf!20779
2022-11-10 10:43:00 +08:00
morris
de7c64bcd3 Merge branch 'bugfix/rtc_periph_ulp_touch_v4.4' into 'release/v4.4'
sleep_modes: allow using touch/ULP with RTC_PERIPH domain (including EXT0 wakeup source) (v4.4)

See merge request espressif/esp-idf!19768
2022-11-10 10:19:16 +08:00
Omar Chebib
3ec5041255 I2C: Fix the reset counter 2022-11-10 02:07:21 +00:00
Eckhard Völlm
647dbdbcaf Update i2c.c
Fix issue with single bus clear counter but two I2C buses (I2C0, I2C1). The previously implemented single (static) counter would impact the second bus either if one bus has counter expiry.
Merges https://github.com/espressif/esp-idf/pull/7144
2022-11-10 02:07:21 +00:00
morris
2a719f245d Merge branch 'bugfix/i2s_tx_auto_clear_not_totally_clean_the_buf_v4.4' into 'release/v4.4'
i2s: fix tx incomplete auto clear (v4.4)

See merge request espressif/esp-idf!20571
2022-11-10 10:05:52 +08:00
morris
193d0d6b6e Merge branch 'bugfix/fix_rtc8m_calibration_fail_after_cpu_core_reset_v4.4' into 'release/v4.4'
rtc_clk: Fix rtc8m calibration failure after cpu/core reset (backport v4.4)

See merge request espressif/esp-idf!20553
2022-11-10 10:04:35 +08:00
morris
7a82764c49 Merge branch 'bugfix/rtc_function_needs_disable_usj_pads_esp32s3_v4.4' into 'release/v4.4'
rtcio: Disable USB Serial JTAG pad when setting pins 19 and 20 as RTC function on ESP32S3 (backport v4.4)

See merge request espressif/esp-idf!20551
2022-11-10 10:03:46 +08:00
Chip Weinberger
142fa78ce4 [Panic] also print to secondary USB Serial/JTAG Console 2022-11-09 23:54:44 +01:00
morris
79727b3a93 Merge branch 'bugfix/mcpwm_wrong_return_value_v4.4' into 'release/v4.4'
mcpwm: fix wrong return value in the legacy MCPWM driver (4.4)

See merge request espressif/esp-idf!20695
2022-11-09 22:49:42 +08:00
wangmengyang
b2c7f7689c bt: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth on ESP32 2022-11-09 19:32:01 +08:00
Ivan Grokhotkov
25719db1a9 Merge branch 'refactor/esp_lcd_panel_disp_on_off' into 'release/v4.4'
lcd: alias esp_lcd_panel_disp_on_off to esp_lcd_panel_disp_off (v4.4)

See merge request espressif/esp-idf!20949
2022-11-09 18:41:17 +08:00
Ivan Grokhotkov
f48264c68d Merge branch 'feature/usb_host_inflight_transfer_check_v4.4' into 'release/v4.4'
USB Host: Fix usbh_dev_open(), Fix usbh_ep_alloc(), Add USB Host Library check to prevent resubmitting inflight transfers (v4.4)

See merge request espressif/esp-idf!20954
2022-11-09 18:40:12 +08:00
Zim Kalinowski
2b0de33816 Merge branch 'bugfix/freertos_fpu_isr_pins_task_v4.4' into 'release/v4.4'
FreeRTOS: Fix bug where FPU usage in ISR pins the interrupted task (v4.4)

See merge request espressif/esp-idf!20627
2022-11-09 18:39:28 +08:00
Zim Kalinowski
f3c51c086c Merge branch 'bugfix/add_missing_ifdef_to_static_structs_v4.4' into 'release/v4.4'
freertos: Add missing ESP_PLATFORM preprocessor directive for FreeRTOS static data structs (v4.4)

See merge request espressif/esp-idf!20742
2022-11-09 18:38:19 +08:00
Ivan Grokhotkov
c86b6ed334 Merge branch 'contrib/github_pr_10087_v4.4' into 'release/v4.4'
fixed url to console component (GitHub PR) (v4.4)

See merge request espressif/esp-idf!20901
2022-11-09 18:34:47 +08:00
Ivan Grokhotkov
08135d4ea6 Merge branch 'bugfix/time_jump_after_reboot_v4.4' into 'release/v4.4'
esp_hw_support: Fix time jump after reboot (v4.4)

See merge request espressif/esp-idf!20907
2022-11-09 18:34:05 +08:00
Aditya Patwardhan
bdb8b487d2 Merge branch 'bugfix/http_cached_data_in_redirection_v4.4' into 'release/v4.4'
esp_http_client: free cached data in case connection gets closed for redirection (v4.4)

See merge request espressif/esp-idf!20792
2022-11-09 18:19:17 +08:00
Jiang Jiang Jian
d7ba7c3b19 Merge branch 'bugfix/fix_esprv_intc_int_set_type_err_parameter_backportv4.4' into 'release/v4.4'
bugfix: esprv_intc_int_set_type should not use bitmap parameter(backport v4.4)

See merge request espressif/esp-idf!20609
2022-11-09 18:03:25 +08:00
Jiang Jiang Jian
8ba0098492 Merge branch 'bugfix/fix_xtal_related_rtc_params_for_esp32_backport_v4.4' into 'release/v4.4'
esp32/rtc: fix xtal unstable in some cases when sleep(backport v4.4)

See merge request espressif/esp-idf!20803
2022-11-09 18:02:05 +08:00
Jiang Jiang Jian
1a06484dac Merge branch 'feature/nimble_port_init_deinit_v4.4' into 'release/v4.4'
NimBLE : Init deinit nimble stack in a loop

See merge request espressif/esp-idf!20689
2022-11-09 18:01:46 +08:00
Jiang Jiang Jian
6b5f53dcc2 Merge branch 'bugfix/esp_periph_uart_clk_gate_issues' into 'release/v4.4'
esp_system: use ESP_CONSOLE_UART_NUM instead of CONSOLE_UART_NUM

See merge request espressif/esp-idf!20942
2022-11-09 17:59:07 +08:00
Jiang Jiang Jian
770b787072 Merge branch 'bugfix/add_protection_for_mac_rst_v4.4' into 'release/v4.4'
esp_wifi: add protection for mac reset (backport 4.4)

See merge request espressif/esp-idf!20970
2022-11-09 17:58:48 +08:00
Jiang Jiang Jian
a3379e3405 Merge branch 'bugfix/fix_fast_interval_prov_adv_v4.4' into 'release/v4.4'
ble_mesh: stack: Fix send fast interval prov_adv failed(v4.4)

See merge request espressif/esp-idf!20640
2022-11-09 17:58:12 +08:00
Jiang Jiang Jian
3f3e9744ef Merge branch 'feature/Add_IVI_recovery_option_v4.4' into 'release/v4.4'
ble_mesh: stack: Add IV index recovery option when device missed the whole IV update(v4.4)

See merge request espressif/esp-idf!20642
2022-11-09 17:57:52 +08:00
Jiang Jiang Jian
6ea8717373 Merge branch 'bugfix/esp_spp_write_len_0_v4.4' into 'release/v4.4'
bt: Fixed esp_spp_write() crash when len is 0 (v4.4)

See merge request espressif/esp-idf!20705
2022-11-09 17:57:10 +08:00
Jiang Jiang Jian
f57a4e51ce Merge branch 'bugfix/update_ctrl_init_config_macro_v4.4' into 'release/v4.4'
Bugfix/update ctrl init config macro (v4.4)

See merge request espressif/esp-idf!20712
2022-11-09 17:56:42 +08:00
Jiang Jiang Jian
339e26eddd Merge branch 'bugfix/crash_in_i2s_when_reconnect_to_a2dp_v4.4' into 'release/v4.4'
fixed crash in I2S when reconnect to a2dp sink (v4.4)

See merge request espressif/esp-idf!20719
2022-11-09 17:56:14 +08:00
Jiang Jiang Jian
b07b2d529b Merge branch 'bugfix/handle_issue_of_malloc_fail_v4.4' into 'release/v4.4'
bugfix/avoid unexpected free when malloc failed (v4.4)

See merge request espressif/esp-idf!20727
2022-11-09 17:55:57 +08:00
Jiang Jiang Jian
fa83153105 Merge branch 'bugfix/fix_trans_optional_info_using_group_addr_v4.4' into 'release/v4.4'
ble_mesh: stack: Fix can't trans optional info to group address(v4.4)

See merge request espressif/esp-idf!20959
2022-11-09 17:55:27 +08:00
Jiang Jiang Jian
e55a640da4 Merge branch 'bugfix/add_security_patches_v4.4' into 'release/v4.4'
Adding security patch for SAE side channel attacks (Backport v4.4)

See merge request espressif/esp-idf!20649
2022-11-09 17:53:39 +08:00
Jiang Jiang Jian
879102ab1f Merge branch 'bugfix/reason_code_pmk_flush_v4.4' into 'release/v4.4'
Prevent pmk flush for unspecified reasoncode (v4.4)

See merge request espressif/esp-idf!20583
2022-11-09 17:53:05 +08:00
Jiang Jiang Jian
9e9f0592f8 Merge branch 'bugfix/fix_esp32_esp32c3_some_bugs' into 'release/v4.4'
Fixed BLE lld_per_adv.c line 401 assert on ESP32C3 and ESP32S3 (backport v4.4)

See merge request espressif/esp-idf!20757
2022-11-09 17:52:42 +08:00
Jiang Jiang Jian
85cc471e8e Merge branch 'bugfix/fix_esp_hid_auth_fail_crash_v4.4' into 'release/v4.4'
Fix esp hid crash when auth failed (backport v4.4)

See merge request espressif/esp-idf!20612
2022-11-09 17:51:24 +08:00
Alexey Gerenkov
d2403441a4 tools: Updates OpenOCD version to 'v0.11.0-esp32-20221026' 2022-11-09 12:51:18 +03:00
Jiang Jiang Jian
aac7947003 Merge branch 'backport/cjh_v4.4' into 'release/v4.4'
Fixed some BLE bugs on bluedroid (backport v4.4)

See merge request espressif/esp-idf!20509
2022-11-09 17:50:54 +08:00
Mahavir Jain
85dfebd0cc Merge branch 'bugfix/fix_mbedlts_ds_memory_leak_v4.4' into 'release/v4.4'
esp-tls: Fix memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled (backport v4.4)

See merge request espressif/esp-idf!20596
2022-11-09 17:45:14 +08:00
Mahavir Jain
72e365bede Merge branch 'bugfix/fix_wifi_retry_v4.4' into 'release/v4.4'
wifi_provisioning: fix error codes for wifi connect retry (v4.4)

See merge request espressif/esp-idf!20717
2022-11-09 17:44:25 +08:00
morris
f7b1e32cb4 Merge branch 'bugfix/update_duty_on_tez_tep_v4.4' into 'release/v4.4'
mcpwm: update compare value on both tep and tez (v4.4)

See merge request espressif/esp-idf!20767
2022-11-09 17:41:36 +08:00
morris
70bb00afac Merge branch 'examples/fix_examples_spi_master_esp32cx_v4.4' into 'release/v4.4'
examples: fix spi master examples on esp32cxx (v4.4)

See merge request espressif/esp-idf!20663
2022-11-09 17:40:59 +08:00
morris
ac8376c225 Merge branch 'bugfix/upgrade_i2s_es8311_version' into 'release/v4.4'
es8311: upgrade to 1.0.0 on release v4.4

See merge request espressif/esp-idf!20809
2022-11-09 17:39:51 +08:00
Marius Vikhammer
9f6b0d1531 Merge branch 'bugfix/confgen_depr_header_non_vis_v4.4' into 'release/v4.4'
kconfig: fixed non-visible deprecated configs missing from sdkconfig.h (v4.4)

See merge request espressif/esp-idf!20948
2022-11-09 17:34:35 +08:00
Marius Vikhammer
628bc99ff5 Merge branch 'bugfix/s3_ulp_riscv_cocpu_trap_v4.4' into 'release/v4.4'
ulp-riscv: always force COCPU clock on S3 (v4.4)

See merge request espressif/esp-idf!20769
2022-11-09 17:34:22 +08:00
Marius Vikhammer
1c71560f35 Merge branch 'bugfix/user_loop_example_stack' into 'release/v4.4'
esp_event: increase default stack size in user_event_loop example (v4.4)

See merge request espressif/esp-idf!20682
2022-11-09 17:33:21 +08:00
Marius Vikhammer
fea51e16fc Merge branch 'docs/i2c_spec_url_v4.4' into 'release/v4.4'
docs: remove link to i2c specs (v4.4)

See merge request espressif/esp-idf!20860
2022-11-09 17:33:00 +08:00
Roland Dobai
9d2aac1daa Merge branch 'feature/upgrade-gdb' into 'release/v4.4'
tools: add GDB version '11.2_20220823' as a tool

See merge request espressif/esp-idf!20494
2022-11-09 17:32:32 +08:00
morris
0ba41b598d Merge branch 'bugfix/2nd_bootloader_uart1_baudrate_issues_v4.4' into 'release/v4.4'
esp_rom: fix 2nd bootloader custom uart1 baudrate issue (backport to v4.4)

See merge request espressif/esp-idf!20654
2022-11-09 17:32:02 +08:00
Roland Dobai
dd9e7a8b15 Merge branch 'fix/virtualenv_dir_v4.4' into 'release/v4.4'
Tools: Keep making virtual environments with python in the bin directory

See merge request espressif/esp-idf!20589
2022-11-09 17:31:24 +08:00
Ivan Grokhotkov
cc5640aef3 Merge branch 'update/version_4_4_3' into 'release/v4.4'
Update version to 4.4.3

See merge request espressif/esp-idf!21003
2022-11-09 17:29:57 +08:00
Omar Chebib
a4df6776b6 Bluetooth: fix BSS placement in the linker script generated by ldgen 2022-11-08 14:02:31 +08:00
liuning
25abb74284 esp_wifi: add protection for mac reset (backport 4.4) 2022-11-08 11:01:51 +08:00
wangjialiang
2d3582403e ble_mesh: stack: Fix can't trans optional info to group address 2022-11-07 15:48:10 +08:00
jiangguangming
d6c783d02d esp_system: use ESP_CONSOLE_UART_NUM instead of CONSOLE_UART_NUM 2022-11-07 15:02:52 +08:00
Darian Leung
0d1bc3b2b6 usb_host: Test host library inflight transfer resubmission check
This commit updates the USB Host Library unit tests to test that resubmitting
an inflight transfer will return an error.
2022-11-07 13:52:05 +08:00
Darian Leung
1f5dc0f5a1 usb_host: Add check to prevent submitting already inflight transfers
This commit adds a simple flag/check in the USB Host Library that prevents
users from submitting a transfer that is already inflight.

- A transfer is considered inflight as soon as it is submitted by calling
usb_host_transfer_submit() or usb_host_transfer_submit_control()
- An inflight transfer remains inflight up until right before its callback
is called by one of the USB Host Library handler functions.

Closes https://github.com/espressif/esp-idf/issues/8748
2022-11-07 13:50:59 +08:00
Tomas Rezucha
87c415b11a usb_host: Fixed incorrect opening devices from multiple clients
1. During USBH device open both queues (idle and pending) must be checked.
2. Don't overwrite already allocated endpoints
2022-11-07 13:50:33 +08:00
morris
270480ff81 lcd: better name esp_lcd_panel_disp_on_off 2022-11-07 13:11:44 +08:00
Marius Vikhammer
60c07e02ad kconfig: fixed non-visible deprecated configs missing from sdkconfig.h
Non-visible configs would previously not appear in the deprecated section of the sdkconfig.h,
but non-visable configs are used in IDF (and user code) and should therefor be present.
2022-11-07 10:40:41 +08:00
jingli
ced9c9eeb6 esp_hw_support/sleep: remove redundant spinlock protection for deep sleep 2022-11-05 17:51:13 +08:00
jingli
6e7c8f18b9 hal/gpio_ll: fix digital gpio can not enable hold during deep sleep when force_unhold set(32/s2/s3) 2022-11-05 17:51:13 +08:00
jingli
87ad0e8c97 hal/gpio_ll: fix digital gpio can not disable hold during deep sleep 2022-11-05 17:51:13 +08:00
jingli
4b71ebbe49 esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep 2022-11-05 17:51:08 +08:00
KonstantinKondrashov
be904e4ae9 esp_hw_support: Fix time jump after reboot
Closes https://github.com/espressif/esp-idf/issues/9448
2022-11-02 18:54:37 +08:00
beta-tester
b32fbb9a61 doc: redirect console page
Previous the console doc is moved from api-guide to api-reference, which
broken the URL as well, this commit added a redirect link to ensure the
old URL can still work.
2022-11-02 16:08:07 +08:00
xueyunfei
78021c0937 esp_wifi:bugfix sniffer mode can not capture control packet 2022-11-01 10:46:15 +08:00
xueyunfei
a165866372 Lwip:add TCP Fin2 timeout configuration
* Update submodule: git log --oneline 76303df2386902e0d7873be4217f1d9d1b50f982..6132c9755a43d4e04de4457f1558ced415756e4d

Detailed description of the changes:
  - napt: Fix clean compilation  (espressif/esp-lwip@6132c975)
  - Lwip:add TCP Fin2 timeout configuration (espressif/esp-lwip@15b4400e)
  - napt: Fix IP forwarding when forward netif enable NAPT (espressif/esp-lwip@c950063f)
  - napt/stats: Move some napt counters to stats module (espressif/esp-lwip@475d658a)
  - ip_napt_maint: Fix timestamp overflow handling (espressif/esp-lwip@2e904508)
  - napt: Fixes and improvements (espressif/esp-lwip@fb1f3552)
2022-11-01 10:46:15 +08:00
xueyunfei
8ddc482f28 lwip:bugfix for increase ping task stack size 2022-11-01 10:46:09 +08:00
Michael (XIAO Xufeng)
07253938a6 Update components/esp_hw_support/include/esp_sleep.h 2022-10-31 16:06:44 +08:00
Michael (XIAO Xufeng)
37cd376957 sleep_modes: allow using touch/ULP with RTC_PERIPH domain (including EXT0 wakeup source) 2022-10-31 16:06:43 +08:00
Marius Vikhammer
9099608602 docs: remove link to i2c specs 2022-10-31 11:56:25 +08:00
laokaiyao
af35a6adbb es8311: upgrade to 1.0.0 2022-10-27 17:21:32 +08:00
Guillaume Souchere
75e1c4d0fb heap: Update host tests after incorporation of the new TLSF implementation 2022-10-27 09:36:17 +02:00
Guillaume Souchere
d4de73cd2c heap: update the calculation of fl index max and use bitfield in control_t
The calculation of fl index max is changed to always be the smallest
number that includes the size of the registered memory.

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

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

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

bitfields are now used in control_t when possible which reduces the size of the structure
from 56 bytes to 36 bytes.
2022-10-27 09:36:17 +02:00
David Cermak
1459711ef8 mqtt: Fix keepalive with esp-timer; clean close SM (v4.4)
* Fixes keepalive calculation to use esp-timer (previously used system
timer that might get updated by  NTP sync and failing keepalive
mechanism)
* Fixes start() -> stop() -> start() client's transitions, due to
wrong state of stopped client (could endup in WAIT_RECONNECT state and
thus never allowed to be started again)
* Update submodule: git log --oneline 60983d1dd54196b1e3f399c6f928d77256ec742a..bb9c8af9d552b608dd3aabf9617bde757a538ebe

Detailed description of the changes:
* Backport Moves state change when stopping the client
  - See merge request espressif/esp-mqtt!151
  - Closes https://github.com/espressif/esp-mqtt/issues/239
  - Moves state change when stopping the client (espressif/esp-mqtt@af58f5f)
* fix: MQTT tick not starting on connect and switch to esp_timer
  - See merge request espressif/esp-mqtt!146
  - Closes https://github.com/espressif/esp-idf/issues/9492
  - See commit https://github.com/espressif/esp-mqtt/commit/166741f
* ci: Fix CI build using public IDF images
  - See merge request espressif/esp-mqtt!148
  - See commit https://github.com/espressif/esp-mqtt/commit/530fe3a

Closes https://github.com/espressif/esp-idf/issues/9492
2022-10-26 19:37:21 +02:00
xiongweichao
c4fd19c144 bt: Fixed SPP VFS mode not being able to send data 2022-10-26 16:43:49 +08:00
jingli
83fe7a5a59 esp_hw_support/sleep: fix light sleep wakeup flag
light sleep wakeup flag is true to indicate the most recent successful wakeup from light sleep,
which means the most recent light sleep occurred successfully and then wakes up by wakeup source
2022-10-26 16:33:43 +08:00
jingli
77ba6c38ec esp32/rtc: fix xtal unstable in some cases when sleep
1. add xtal buf wait to fix high temperature restart issue
2. add min sleep value to fix xtal stop due to too short sleep time issue
2022-10-26 16:31:04 +08:00
Mahavir Jain
62884dae3a esp_http_client: free cached data in case connection gets closed for redirection
In case of `esp_http_client_read` based workflow, we cache data that is received
during fetch header stage. In case, there is URL redirection and we have to close
the connection on URL, port change then we must discard earlier cached data.

Closes AUD-4158
2022-10-26 10:11:33 +05:30
Marius Vikhammer
4acfe1a91a ulp-riscv: always force COCPU clock on S3
The coprocessor cpu trap signal doesnt have a stable reset value,
force ULP-RISC-V clock on to stop RTC_COCPU_TRAP_TRIG_EN from waking the CPU
2022-10-25 13:51:04 +08:00
morris
79ee98e229 mcpwm: update compare value on both tep and tez
Closes https://github.com/espressif/esp-idf/issues/9904
2022-10-25 13:20:41 +08:00
zwj
290a6c8ade allow bluedroid host to report adv_ind separately 2022-10-24 19:28:23 +08:00
zwj
94c74bd866 Fixed BLE lld_per_adv.c line 401 assert 2022-10-24 19:27:56 +08:00
zwj
d2ebe4e7bb Fixed ESP32 BLE assert(32 0) 2022-10-24 19:27:32 +08:00
Sudeep Mohanty
06cad10ec0 freertos: Add missing ESP_PLATFORM preprocessor directive for FreeRTOS static data structs (v4.4)
This commit adds the missing ESP_PLATFORM preprocessor directive to
static data structures to wrap the extra variable added for SMP locks.

Closes https://github.com/espressif/esp-idf/issues/9785
2022-10-21 11:25:23 +02:00
tgotic
dc059fe2ee [bt] fix if allocation fails
If osi_malloc fails for work_queues or osi_work_queue_create fails, osi_work_queue_delete in _err may release unallocated memory.
2022-10-21 14:45:25 +08:00
Jin Cheng
e59ec7e597 fixed crash in I2S when reconnect to a2dp sink 2022-10-21 14:11:27 +08:00
Harshit Malpani
04e24078d9 wifi_provisioning: fix error codes for wifi connect retry
Closes: https://github.com/espressif/esp-idf/issues/9399
2022-10-21 11:33:12 +05:30
Evan Neidler
1f2e831ad2 Update #define BT_CONTROLLER_INIT_CONFIG_DEFAULT().
Corrects header names in string from "bt.h" to "esp_bt.h".
2022-10-21 12:02:51 +08:00
xiongweichao
b35c2f9794 bt: Fixed esp_spp_write() crash when len is 0
Closes https://github.com/espressif/esp-idf/issues/9977
2022-10-21 11:18:25 +08:00
morris
8b352e1da9 mcpwm: fix wrong return value in the legacy driver
For APIs that not return esp_err_t value, we can't use macros like
ESP_RETURN_ON_xxx
2022-10-20 18:24:58 +08:00
isha.pardikar@espressif.com
51023425d2 NimBLE : Init deinit nimble stack in a loop 2022-10-19 23:13:27 +05:30
Marius Vikhammer
126ae145ec esp_event: increase default stack size in user_event_loop example
Example would trigger a stack overflow on S3.

Closes https://github.com/espressif/esp-idf/issues/10008
2022-10-19 18:01:11 +08:00
wanlei
e4aaf10ff0 examples: support spi master lcd examples on esp32s3 2022-10-19 17:03:54 +08:00
jiangguangming
ca5ee54424 esp_rom: fix 2nd bootloader custom uart1 baudrate issue 2022-10-18 14:01:31 +08:00
Darian Leung
d61715ab9a freertos: Backport FPU tests from master to v4.4
This commit combines and backports the FPU unit tests updates of the following
commits:

423fb361e7
d69361779e
2022-10-17 23:31:18 +08:00
Darian Leung
f08c4b823f freertos: Fix FPU ISR core pinning bug
This commit fixes a bug where if an unpinned task is interrupted by a level 1
ISR that users the FPU, the FPU usage will cause the interrupted task to
become pinned to the current core.

Note: This bug was already fixed in SMP FreeRTOS in commit
d6936177. This commit simply backports the fix to IDF FreeRTOS.
2022-10-17 23:31:18 +08:00
gauri patankar
aceeff0b09 wpa_supplicant: Update security patches from upstream
1. Adding security patch for SAE side channel attacks
2. Adding confirm message validation in error cases
3. Adding y coordinate for PWE in SAE
2022-10-17 17:57:14 +05:30
gauri patankar
c2af28ddce wpa_supplicant: Move SAE modules into dragonfly files 2022-10-17 17:54:02 +05:30
wangjialiang
f1e7252d4d ble_mesh: stack: Add IV index recovery option when device missed the whole IV update 2022-10-17 16:52:53 +08:00
wangjialiang
45a3ec7983 ble_mesh: stack: Fix send fast interval prov_adv failed when PB-ADV and PB-GATT enable simultaneously 2022-10-17 16:39:16 +08:00
Yuan Hong Hui
fc82b36847 ble_mesh:example:change the method of get model 2022-10-17 03:54:17 +00:00
chenjianhua
d62b9505e3 fix esp hid crash when auth failed 2022-10-14 15:57:52 +08:00
wuzhenghui
0fd3824f91 bugfix: esprv_intc_int_set_type should not use bitmap parameter 2022-10-14 15:33:53 +08:00
Roland Dobai
8f10a7ad8c Tools: Keep making virtual environments with python in the bin directory
On Ubuntu 22.04 virtualenv with the latest setuptools produces
environments with Python in "local/bin" instead of "bin" (see
https://github.com/pypa/virtualenv/issues/2350).

Closes https://github.com/espressif/esp-idf/issues/9931
2022-10-13 15:10:53 +02:00
yuanjianmin
1cb47a2f3b esp-tls: Fix memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled 2022-10-13 19:37:18 +08:00
Kapil Gupta
f2a9d457e0 Remove unnecessary code from disconnect handler 2022-10-13 12:14:20 +05:30
Kapil Gupta
722ed6cbc6 wpa_supplicant: Prevent pmk flush for unspecified reasoncode 2022-10-13 12:14:20 +05:30
laokaiyao
4853d6319e i2s: fix tx incomplete auto clear
Closes: https://github.com/espressif/esp-idf/issues/9882
2022-10-12 19:53:58 +08:00
Song Ruo Jing
883e54aa71 rtc_clk: Fix rtc8m calibration failure after cpu/core reset
Explicitly guarantee 8md256 clk is enabled before calibration
2022-10-12 12:33:47 +08:00
Song Ruo Jing
5f5ce49ff6 rtcio: Disable USB Serial JTAG pad when setting pins 19 and 20 as RTC function on ESP32S3
Similar to the fix in gpio lower layers, USB Serial JTAG pad should be disabled when the DM and DP pins want to be used as rtcio pins.

(cherry picked from commit de0401047c)
2022-10-12 12:00:05 +08:00
Alexey Lapshin
a5a4543faf tools: add GDB version '11.2_20220823' as a tool
GDB now is standalone tool separated from toolchain due to frequent updates.

Added installation tests for the new tool.

Coredump tests are changed because they were wrong, see explanation:
esp32 objdump:
    40084290 <esp_crosscore_int_send_yield>:
    ......
    /builds/espressif/esp-idf/components/esp_system/crosscore_int.c:145
    4008429c:    000090            retw

With previous GDB backtrace was:
    #0  0x4008429c in esp_crosscore_int_send_yield (core_id=0) at /builds/espressif/esp-idf/components/esp_system/crosscore_int.c:144

This commit fixes the backtrace with the right line number:
    #0  0x4008429c in esp_crosscore_int_send_yield (core_id=0) at /builds/espressif/esp-idf/components/esp_system/crosscore_int.c:145

Other tests changes have the same cause of fixing.

Closes https://github.com/espressif/esp-idf/issues/6334
2022-10-10 18:43:27 +04:00
chenjianhua
cd92bad84a bluedroid: configurable max gattc cache characteristic count 2022-10-09 16:27:54 +08:00
chenjianhua
bec6de98c4 fix ble adv tx power map 2022-10-09 16:27:06 +08:00
chenjianhua
38d1250788 bluedroid: fix ble rpa generate and update by host 2022-10-09 16:25:17 +08:00
chenjianhua
cfc85ac1c6 Revert "component/bt: add local irk to controller"
This reverts commit 95c35288bc.
2022-10-09 16:23:24 +08:00
chenjianhua
f943f37927 Revert "Fixed ESP32 BLE can't resolve the peer address when enable white list"
This reverts commit 1cc0f6aac5.
2022-10-09 16:16:59 +08:00
chenjianhua
83c9d18309 Bluedroid: Configurable option to modify max gatt service attributes count 2022-10-09 16:13:20 +08:00
Cao Sen Miao
b601dd3b24 re-enable some dummy based HPM flash chips 2022-09-30 11:29:43 +08:00
Cao Sen Miao
f28f75a46b spi_flash: Add several flash chips HPM(120M) support 2022-09-30 11:15:34 +08:00
wangyuanze
b0c38d5392 spi_flash: fix hpm dummy error when using 80m flash and psram 2022-09-29 17:17:38 +08:00
Cao Sen Miao
b0ceb22bef spi_flash: remove xmc hpm support, because there is some compatible issue with ROM,
Closes https://github.com/espressif/esp-idf/issues/8560
2022-09-29 16:37:29 +08:00
Cao Sen Miao
4074221540 spi_flash: Fix bug that in bootloader dummy is 0 when mosi is 0 2022-09-29 16:37:29 +08:00
Cao Sen Miao
0347d96124 spi_flash: Add documents for flash optional features 2022-09-29 16:37:29 +08:00
Cao Sen Miao
6c9c1f72bd spi_flash: Building a framework to enable HPM when flash works under high speed mode 2022-09-29 16:37:29 +08:00
Yuan Hong Hui
cc27c90b8c ble_mesh:example:fix memory leak 2022-09-28 03:51:33 +00:00
Guillaume Souchere
a1ca11551f Revert "tlsf control's structure should remain opaque"
This reverts commit 7010314c4a.
2022-09-20 08:58:04 +02:00
Philippe
6dae07d137 add host test with multiple heap size 2022-09-20 07:55:24 +02:00
Philippe
ffcc115e8b clarify parameter usage in tslf_create 2022-09-19 14:31:47 +02:00
Philippe
7010314c4a tlsf control's structure should remain opaque 2022-09-19 14:31:05 +02:00
Philippe
8325aff3c9 dynamic control block per heap 2022-09-19 14:28:11 +02:00
1237 changed files with 56536 additions and 124833 deletions

View File

@@ -153,6 +153,7 @@ exclude =
components/tinyusb,
components/unity/unity,
components/spiffs/spiffs,
components/freemodbus,
examples/build_system/cmake/import_lib/main/lib/tinyxml2,
examples/peripherals/secure_element/atecc608_ecdsa/components/esp-cryptoauthlib,
# autogenerated scripts
@@ -168,4 +169,5 @@ exclude =
per-file-ignores =
# Sphinx conf.py files use star imports to setup config variables
docs/conf_common.py: F405
docs/conf_common.py: F405,
components/freemodbus/docs/conf_common.py: F405

View File

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

View File

@@ -113,13 +113,19 @@ build:integration_test:
- "build:component_ut-{0}"
- build:target_test
"test:integration_test":
"test:integration_test_{0}":
matrix:
- - wifi
- ble
labels:
- integration_test_{0}
- integration_test
- target_test
patterns:
- integration_test
- integration_test_{0}
# - maybe others
included_in:
- test:integration_test
- build:integration_test
- build:target_test

View File

@@ -87,9 +87,19 @@
- "components/**/test_apps/**/*"
.patterns-integration_test: &patterns-integration_test
- "tools/ci/python_packages/tiny_test_fw/**/*"
.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"
@@ -320,6 +330,12 @@
.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'
@@ -627,13 +643,17 @@
- <<: *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
changes: *patterns-integration_test_ble
- <<: *if-dev-push
changes: *patterns-integration_test_wifi
.rules:build:macos:
rules:
@@ -664,6 +684,8 @@
- <<: *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
@@ -685,7 +707,9 @@
- <<: *if-dev-push
changes: *patterns-example_test
- <<: *if-dev-push
changes: *patterns-integration_test
changes: *patterns-integration_test_ble
- <<: *if-dev-push
changes: *patterns-integration_test_wifi
- <<: *if-dev-push
changes: *patterns-unit_test
@@ -952,9 +976,35 @@
- <<: *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
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:

View File

@@ -395,6 +395,18 @@ test_app_test_flash_psram_f8r8:
- ESP32S3
- MSPI_F8R8
test_app_test_xip_psram_esp32s2:
extends: .test_app_esp32s2_template
tags:
- ESP32S2
- Example_GENERIC
test_app_test_xip_psram_esp32s3:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- MSPI_F4R8
.component_ut_template:
extends: .target_test_job_template
needs: # the assign already needs all the build jobs
@@ -533,7 +545,7 @@ UT_006:
UT_007:
extends: .unit_test_esp32_template
parallel: 7
parallel: 8
tags:
- ESP32_IDF
- UT_T1_1
@@ -747,7 +759,7 @@ UT_C3_SDSPI:
UT_S3:
extends: .unit_test_esp32s3_template
parallel: 32
parallel: 33
tags:
- ESP32S3_IDF
- UT_T1_1
@@ -822,7 +834,9 @@ component_ut_test_lan8720:
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32C3_IDF"
nvs_compatible_test:
extends: .integration_test_template
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
artifacts:
when: always
paths:
@@ -851,122 +865,198 @@ nvs_compatible_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_001:
extends: .integration_test_template
IT_T1_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 2
tags:
- ESP32_IDF
- SSC_T1_4
- SSC_T1_Simple
IT_002:
extends: .integration_test_template
IT_T1_WAP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_2
- SSC_T1_WAP
IT_003:
extends: .integration_test_template
IT_T2_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 9
tags:
- ESP32_IDF
- SSC_T2_5
- SSC_T2_Simple
IT_005:
extends: .integration_test_template
IT_T5_BT_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_ble
parallel: 3
tags:
- ESP32_IDF
- SSC_T1_5
- SSC_T5_BT_Simple
IT_006:
extends: .integration_test_template
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_6
- SSC_T1_AP_E
IT_007:
extends: .integration_test_template
IT_T1_WNIC_AP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_7
- SSC_T1_WNIC_AP
IT_008:
extends: .integration_test_template
IT_T1_WNIC_AP_E:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_8
- SSC_T1_WNIC_AP_E
IT_011:
extends: .integration_test_template
IT_T1_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_MESH1
IT_012:
extends: .integration_test_template
IT_T2_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
parallel: 2
tags:
- ESP32_IDF
- SSC_T2_MESH1
IT_013:
extends: .integration_test_template
IT_T3_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T3_MESH1
IT_014:
extends: .integration_test_template
IT_T6_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T6_MESH1
IT_015:
extends: .integration_test_template
IT_T12_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T12_MESH1
IT_016:
extends: .integration_test_template
IT_T50_MESH1:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
allow_failure: true
tags:
- ESP32_IDF
- SSC_T50_MESH1
IT_017:
extends: .integration_test_template
IT_T1_MESH2:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_MESH2
IT_018:
extends: .integration_test_template
IT_T2_WNIC:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T1_9
- SSC_T2_WNIC
IT_019:
extends: .integration_test_template
IT_T2_AP:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T2_2
- SSC_T2_AP
IT_020:
extends: .integration_test_template
IT_T3_Simple:
extends:
- .integration_test_template
- .rules:test:integration_test_wifi
tags:
- ESP32_IDF
- SSC_T2_3
- SSC_T3_Simple
IT_022:
extends: .integration_test_template
tags:
- ESP32_IDF
- SSC_T3_2
IT_C3_001:
extends: .integration_test_esp32c3_template
parallel: 6
IT_C3_T2_BT_Simple:
extends:
- .integration_test_esp32c3_template
- .rules:test:integration_test_ble
parallel: 9
tags:
- ESP32C3_IDF
- SSC_T2_5
- 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

View File

@@ -29,13 +29,13 @@ repos:
- id: mixed-line-ending
args: ['-f=lf']
- id: double-quote-string-fixer
- repo: https://gitlab.com/pycqa/flake8
- repo: https://github.com/PyCQA/flake8
rev: 3.9.2
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/pycqa/isort
rev: 5.9.3
rev: 5.11.5 # python 3.7 compatible
hooks:
- id: isort
name: isort (python)
@@ -102,8 +102,8 @@ repos:
name: Check type annotations in python files
entry: tools/ci/check_type_comments.py
additional_dependencies:
- 'mypy==0.800'
- 'mypy-extensions==0.4.3'
- 'mypy==1.0.1'
- 'mypy-extensions==1.0.0'
exclude: >
(?x)^(
.*_pb2.py

View File

@@ -385,7 +385,6 @@ menu "Bootloader config"
config BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE
hex "Size in bytes for custom purposes"
range 0 0x10
default 0
depends on BOOTLOADER_CUSTOM_RESERVE_RTC
help
@@ -429,17 +428,22 @@ menu "Security features"
select MBEDTLS_ECDSA_C
depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE
config SECURE_ESP32_SUPPORTS_RSA
bool
default y if ESP32_REV_MIN_FULL >= 300
depends on IDF_TARGET_ESP32
config SECURE_BOOT_SUPPORTS_RSA
bool
default y
depends on ESP32_REV_MIN_3 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
# RSA secure boot is supported in ESP32 revision >= v3.0
depends on SECURE_ESP32_SUPPORTS_RSA || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 # NOERROR
config SECURE_TARGET_HAS_SECURE_ROM_DL_MODE
bool
default y
depends on IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
config SECURE_SIGNED_APPS_NO_SECURE_BOOT
bool "Require signed app images"
depends on !SECURE_BOOT
@@ -509,7 +513,8 @@ menu "Security features"
config SECURE_BOOT
bool "Enable hardware Secure Boot in bootloader (READ DOCS FIRST)"
default n
depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || ESP32C3_REV_MIN >= 3 || IDF_TARGET_ESP32S3
# Secure boot is not supported for ESP32-C3 revision < v0.3
depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || (IDF_TARGET_ESP32C3 && ESP32C3_REV_MIN_FULL >= 3) || IDF_TARGET_ESP32S3 # NOERROR
select ESPTOOLPY_NO_STUB if !IDF_TARGET_ESP32 && !IDF_TARGET_ESP32S2
help
Build a bootloader which enables Secure Boot on first boot.
@@ -522,7 +527,7 @@ menu "Security features"
choice SECURE_BOOT_VERSION
bool "Select secure boot version"
default SECURE_BOOT_V2_ENABLED if ESP32_REV_MIN_3
default SECURE_BOOT_V2_ENABLED if ESP32_REV_MIN_FULL >= 300
depends on SECURE_BOOT
help
Select the Secure Boot Version. Depends on the Chip Revision.
@@ -875,7 +880,7 @@ menu "Security features"
default SECURE_ENABLE_SECURE_ROM_DL_MODE if SECURE_TARGET_HAS_SECURE_ROM_DL_MODE && !SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT # NOERROR
default SECURE_INSECURE_ALLOW_DL_MODE
depends on SECURE_BOOT_V2_ENABLED || SECURE_FLASH_ENC_ENABLED
depends on !IDF_TARGET_ESP32 || ESP32_REV_MIN_3
depends on !(IDF_TARGET_ESP32 && ESP32_REV_MIN_FULL < 300)
config SECURE_DISABLE_ROM_DL_MODE
bool "UART ROM download mode (Permanently disabled (recommended))"
@@ -901,9 +906,9 @@ menu "Security features"
Download Mode into a separate Secure Download mode. This option can only work if
Download Mode is not already disabled by eFuse.
Secure Download mode limits the use of Download Mode functions to simple flash read,
write and erase operations, plus a command to return a summary of currently enabled
security features.
Secure Download mode limits the use of Download Mode functions to update SPI config,
changing baud rate, basic flash write and a command to return a summary of currently
enabled security features (`get_security_info`).
Secure Download mode is not compatible with the esptool.py flasher stub feature,
espefuse.py, read/writing memory or registers, encrypted download, or any other

View File

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

View File

@@ -44,7 +44,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libesp_common.a:fpga_overrides.*(.literal.bootloader_fill_random .text.bootloader_fill_random)
*libbootloader_support.a:bootloader_efuse_esp32.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -60,6 +60,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)

View File

@@ -37,6 +37,14 @@ MEMORY
dram_seg (RW) : org = bootloader_dram_seg_start, len = bootloader_dram_seg_len
}
/* The app may use RAM for static allocations up to the start of iram_loader_seg.
* If you have changed something above and this assert fails:
* 1. Check what the new value of bootloader_iram_loader_seg start is.
* 2. Update the value in this assert.
* 3. Update (SRAM_DRAM_END + I_D_SRAM_OFFSET) in components/esp_system/ld/esp32c3/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x403ce710, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
@@ -57,7 +65,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse_esp32c3.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -73,6 +81,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)

View File

@@ -57,7 +57,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse_esp32h2.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -71,6 +71,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)

View File

@@ -31,7 +31,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libesp_common.a:fpga_overrides.*(.literal.bootloader_fill_random .text.bootloader_fill_random)
*libbootloader_support.a:bootloader_efuse_esp32s2.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -47,6 +47,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)

View File

@@ -66,7 +66,7 @@ SECTIONS
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libesp_common.a:fpga_overrides.*(.literal.bootloader_fill_random .text.bootloader_fill_random)
*libbootloader_support.a:bootloader_efuse_esp32s3.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
@@ -82,6 +82,7 @@ SECTIONS
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)

View File

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

View File

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

View File

@@ -6,6 +6,7 @@
#pragma once
#include <inttypes.h>
#include "esp_assert.h"
/**
* @brief ESP chip ID
@@ -21,7 +22,7 @@ typedef enum {
} __attribute__((packed)) esp_chip_id_t;
/** @cond */
_Static_assert(sizeof(esp_chip_id_t) == 2, "esp_chip_id_t should be 16 bit");
ESP_STATIC_ASSERT(sizeof(esp_chip_id_t) == 2, "esp_chip_id_t should be 16 bit");
/** @endcond */
/**
@@ -78,8 +79,15 @@ typedef struct {
* pin and sets this field to 0xEE=disabled) */
uint8_t spi_pin_drv[3]; /*!< Drive settings for the SPI flash pins (read by ROM bootloader) */
esp_chip_id_t chip_id; /*!< Chip identification number */
uint8_t min_chip_rev; /*!< Minimum chip revision supported by image */
uint8_t reserved[8]; /*!< Reserved bytes in additional header space, currently unused */
uint8_t min_chip_rev; /*!< Minimal chip revision supported by image
* After the Major and Minor revision eFuses were introduced into the chips, this field is no longer used.
* But for compatibility reasons, we keep this field and the data in it.
* Use min_chip_rev_full instead.
* The software interprets this as a Major version for most of the chips and as a Minor version for the ESP32-C3.
*/
uint16_t min_chip_rev_full; /*!< Minimal chip revision supported by image, in format: major * 100 + minor */
uint16_t max_chip_rev_full; /*!< Maximal chip revision supported by image, in format: major * 100 + minor */
uint8_t reserved[4]; /*!< Reserved bytes in additional header space, currently unused */
uint8_t hash_appended; /*!< If 1, a SHA256 digest "simple hash" (of the entire image) is appended after the checksum.
* Included in image length. This digest
* is separate to secure boot and only used for detecting corruption.
@@ -88,7 +96,7 @@ typedef struct {
} __attribute__((packed)) esp_image_header_t;
/** @cond */
_Static_assert(sizeof(esp_image_header_t) == 24, "binary image header should be 24 bytes");
ESP_STATIC_ASSERT(sizeof(esp_image_header_t) == 24, "binary image header should be 24 bytes");
/** @endcond */

View File

@@ -12,6 +12,7 @@
#include "esp_spi_flash.h"
#endif
#include "soc/efuse_periph.h"
#include "hal/efuse_hal.h"
#include "sdkconfig.h"
#ifdef CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
@@ -46,19 +47,15 @@ typedef enum {
*/
static inline /** @cond */ IRAM_ATTR /** @endcond */ bool esp_flash_encryption_enabled(void)
{
#ifndef CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
return efuse_hal_flash_encryption_enabled();
#else
uint32_t flash_crypt_cnt = 0;
#if CONFIG_IDF_TARGET_ESP32
#ifndef CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
flash_crypt_cnt = REG_GET_FIELD(EFUSE_BLK0_RDATA0_REG, EFUSE_RD_FLASH_CRYPT_CNT);
#else
esp_efuse_read_field_blob(ESP_EFUSE_FLASH_CRYPT_CNT, &flash_crypt_cnt, ESP_EFUSE_FLASH_CRYPT_CNT[0]->bit_count);
#endif
esp_efuse_read_field_blob(ESP_EFUSE_FLASH_CRYPT_CNT, &flash_crypt_cnt, ESP_EFUSE_FLASH_CRYPT_CNT[0]->bit_count);
#else
#ifndef CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
flash_crypt_cnt = REG_GET_FIELD(EFUSE_RD_REPEAT_DATA1_REG, EFUSE_SPI_BOOT_CRYPT_CNT);
#else
esp_efuse_read_field_blob(ESP_EFUSE_SPI_BOOT_CRYPT_CNT, &flash_crypt_cnt, ESP_EFUSE_SPI_BOOT_CRYPT_CNT[0]->bit_count);
#endif
esp_efuse_read_field_blob(ESP_EFUSE_SPI_BOOT_CRYPT_CNT, &flash_crypt_cnt, ESP_EFUSE_SPI_BOOT_CRYPT_CNT[0]->bit_count);
#endif
/* __builtin_parity is in flash, so we calculate parity inline */
bool enabled = false;
@@ -69,6 +66,7 @@ static inline /** @cond */ IRAM_ATTR /** @endcond */ bool esp_flash_encryption_e
flash_crypt_cnt >>= 1;
}
return enabled;
#endif // CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
}
/* @brief Update on-device flash encryption

View File

@@ -9,6 +9,7 @@
#include <esp_err.h>
#include "esp_flash_partitions.h"
#include "esp_app_format.h"
#include "esp_assert.h"
#ifdef __cplusplus
extern "C" {
@@ -53,12 +54,18 @@ typedef struct {
uint32_t crc; /*!< Check sum crc32 */
} rtc_retain_mem_t;
ESP_STATIC_ASSERT(offsetof(rtc_retain_mem_t, crc) == sizeof(rtc_retain_mem_t) - sizeof(uint32_t), "CRC field must be the last field of rtc_retain_mem_t structure");
#ifdef CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC
_Static_assert(CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE % 4 == 0, "CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE must be a multiple of 4 bytes");
ESP_STATIC_ASSERT(CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE % 4 == 0, "CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE must be a multiple of 4 bytes");
/* The custom field must be the penultimate field */
ESP_STATIC_ASSERT(offsetof(rtc_retain_mem_t, custom) == sizeof(rtc_retain_mem_t) - sizeof(uint32_t) - CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE,
"custom field in rtc_retain_mem_t structure must be the field before the CRC one");
#endif
#if defined(CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP) || defined(CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC)
_Static_assert(CONFIG_BOOTLOADER_RESERVE_RTC_SIZE % 4 == 0, "CONFIG_BOOTLOADER_RESERVE_RTC_SIZE must be a multiple of 4 bytes");
ESP_STATIC_ASSERT(CONFIG_BOOTLOADER_RESERVE_RTC_SIZE % 4 == 0, "CONFIG_BOOTLOADER_RESERVE_RTC_SIZE must be a multiple of 4 bytes");
#endif
#ifdef CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC
@@ -68,7 +75,7 @@ _Static_assert(CONFIG_BOOTLOADER_RESERVE_RTC_SIZE % 4 == 0, "CONFIG_BOOTLOADER_R
#endif
#if defined(CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP) || defined(CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC)
_Static_assert(sizeof(rtc_retain_mem_t) <= ESP_BOOTLOADER_RESERVE_RTC, "Reserved RTC area must exceed size of rtc_retain_mem_t");
ESP_STATIC_ASSERT(sizeof(rtc_retain_mem_t) <= ESP_BOOTLOADER_RESERVE_RTC, "Reserved RTC area must exceed size of rtc_retain_mem_t");
#endif
/**

View File

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

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,10 +24,13 @@
#define CMD_RDID 0x9F
#define CMD_WRSR 0x01
#define CMD_WRSR2 0x31 /* Not all SPI flash uses this command */
#define CMD_WRSR3 0x11 /* Not all SPI flash uses this command */
#define CMD_WREN 0x06
#define CMD_WRENVSR 0x50 /* Flash write enable for volatile SR bits */
#define CMD_WRDI 0x04
#define CMD_RDSR 0x05
#define CMD_RDSR2 0x35 /* Not all SPI flash uses this command */
#define CMD_RDSR3 0x15 /* Not all SPI flash uses this command */
#define CMD_OTPEN 0x3A /* Enable OTP mode, not all SPI flash uses this command */
#define CMD_RDSFDP 0x5A /* Read the SFDP of the flash */
#define CMD_WRAP 0x77 /* Set burst with wrap command */
@@ -171,4 +174,12 @@ uint32_t bootloader_flash_read_sfdp(uint32_t sfdp_addr, unsigned int miso_byte_n
*/
void bootloader_enable_wp(void);
/**
* @brief Once this function is called,
* any on-going internal operations will be terminated and the device will return to its default power-on
* state and lose all the current volatile settings, such as Volatile Status Register bits, Write Enable Latch
* (WEL) status, Program/Erase Suspend status, etc.
*/
void bootloader_spi_flash_reset(void);
#endif

View File

@@ -7,10 +7,12 @@
#include "soc/soc.h"
#include "soc/rtc.h"
#include "soc/efuse_periph.h"
#include "soc/chip_revision.h"
#include "soc/rtc_cntl_reg.h"
#if CONFIG_IDF_TARGET_ESP32
#include "soc/dport_reg.h"
#endif
#include "hal/efuse_hal.h"
#include "esp_rom_sys.h"
#include "esp_rom_uart.h"
@@ -32,8 +34,7 @@ __attribute__((weak)) void bootloader_clock_configure(void)
* document). For rev. 0, switch to 240 instead if it has been enabled
* previously.
*/
uint32_t chip_ver_reg = REG_READ(EFUSE_BLK0_RDATA3_REG);
if ((chip_ver_reg & EFUSE_RD_CHIP_VER_REV1_M) == 0 &&
if (!ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 100) &&
DPORT_REG_GET_FIELD(DPORT_CPU_PER_CONF_REG, DPORT_CPUPERIOD_SEL) == DPORT_CPUPERIOD_SEL_240) {
cpu_freq_mhz = 240;
}

View File

@@ -22,6 +22,9 @@
#include "soc/gpio_periph.h"
#include "soc/rtc.h"
#include "soc/efuse_reg.h"
#include "soc/chip_revision.h"
#include "hal/efuse_ll.h"
#include "hal/efuse_hal.h"
#include "soc/soc_memory_types.h"
#include "hal/gpio_ll.h"
#include "esp_image_format.h"
@@ -30,6 +33,7 @@
#include "bootloader_flash_priv.h"
#define ESP_PARTITION_HASH_LEN 32 /* SHA-256 digest length */
#define IS_MAX_REV_SET(max_chip_rev_full) (((max_chip_rev_full) != 65535) && ((max_chip_rev_full) != 0))
static const char* TAG = "boot_comm";
@@ -59,28 +63,38 @@ int bootloader_common_get_active_otadata(esp_ota_select_entry_t *two_otadata)
return bootloader_common_select_otadata(two_otadata, valid_two_otadata, true);
}
esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr, esp_image_type type)
esp_err_t __attribute__((optimize("-Os"))) bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr, esp_image_type type)
{
esp_err_t err = ESP_OK;
esp_chip_id_t chip_id = CONFIG_IDF_FIRMWARE_CHIP_ID;
if (chip_id != img_hdr->chip_id) {
ESP_LOGE(TAG, "mismatch chip ID, expected %d, found %d", chip_id, img_hdr->chip_id);
err = ESP_FAIL;
}
} else {
#ifndef CONFIG_IDF_ENV_FPGA
uint8_t revision = bootloader_common_get_chip_revision();
if (revision < img_hdr->min_chip_rev) {
/* To fix this error, please update mininum supported chip revision from configuration,
* located in TARGET (e.g. ESP32) specific options under "Component config" menu */
ESP_LOGE(TAG, "This chip is revision %d but the application is configured for minimum revision %d. Can't run.", revision, img_hdr->min_chip_rev);
err = ESP_FAIL;
} else if (revision != img_hdr->min_chip_rev) {
#ifdef BOOTLOADER_BUILD
ESP_LOGI(TAG, "chip revision: %d, min. %s chip revision: %d", revision, type == ESP_IMAGE_BOOTLOADER ? "bootloader" : "application", img_hdr->min_chip_rev);
#endif
}
unsigned revision = efuse_hal_chip_revision();
unsigned int major_rev = revision / 100;
unsigned int minor_rev = revision % 100;
unsigned min_rev = img_hdr->min_chip_rev_full;
if (type == ESP_IMAGE_BOOTLOADER || type == ESP_IMAGE_APPLICATION) {
if (!ESP_CHIP_REV_ABOVE(revision, min_rev)) {
ESP_LOGE(TAG, "Image requires chip rev >= v%d.%d, but chip is v%d.%d",
min_rev / 100, min_rev % 100,
major_rev, minor_rev);
err = ESP_FAIL;
}
}
if (type == ESP_IMAGE_APPLICATION) {
unsigned max_rev = img_hdr->max_chip_rev_full;
if ((IS_MAX_REV_SET(max_rev) && (revision > max_rev) && !efuse_ll_get_disable_wafer_version_major())) {
ESP_LOGE(TAG, "Image requires chip rev <= v%d.%d, but chip is v%d.%d",
max_rev / 100, max_rev % 100,
major_rev, minor_rev);
err = ESP_FAIL;
}
}
#endif // CONFIG_IDF_ENV_FPGA
}
return err;
}
@@ -139,6 +153,8 @@ esp_err_t bootloader_common_get_partition_description(const esp_partition_pos_t
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t))
_Static_assert(RTC_RETAIN_MEM_ADDR >= SOC_RTC_DRAM_LOW, "rtc_retain_mem_t structure size is bigger than the RTC memory size. Consider reducing RTC reserved memory size.");
rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR;
#ifndef BOOTLOADER_BUILD
@@ -151,14 +167,25 @@ rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR
SOC_RESERVE_MEMORY_REGION(RTC_RETAIN_MEM_ADDR, RTC_RETAIN_MEM_ADDR + sizeof(rtc_retain_mem_t), rtc_retain_mem);
#endif
static uint32_t rtc_retain_mem_size(void) {
#ifdef CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC
/* A custom memory has been reserved by the user, do not consider this memory into CRC calculation as it may change without
* the have the user updating the CRC. Return the offset of the custom field, which is equivalent to size of the structure
* minus the size of everything after (including) `custom` */
return offsetof(rtc_retain_mem_t, custom);
#else
return sizeof(rtc_retain_mem_t) - sizeof(rtc_retain_mem->crc);
#endif
}
static bool check_rtc_retain_mem(void)
{
return esp_rom_crc32_le(UINT32_MAX, (uint8_t*)rtc_retain_mem, sizeof(rtc_retain_mem_t) - sizeof(rtc_retain_mem->crc)) == rtc_retain_mem->crc && rtc_retain_mem->crc != UINT32_MAX;
return esp_rom_crc32_le(UINT32_MAX, (uint8_t*)rtc_retain_mem, rtc_retain_mem_size()) == rtc_retain_mem->crc && rtc_retain_mem->crc != UINT32_MAX;
}
static void update_rtc_retain_mem_crc(void)
{
rtc_retain_mem->crc = esp_rom_crc32_le(UINT32_MAX, (uint8_t*)rtc_retain_mem, sizeof(rtc_retain_mem_t) - sizeof(rtc_retain_mem->crc));
rtc_retain_mem->crc = esp_rom_crc32_le(UINT32_MAX, (uint8_t*)rtc_retain_mem, rtc_retain_mem_size());
}
void bootloader_common_reset_rtc_retain_mem(void)

View File

@@ -44,12 +44,7 @@ void bootloader_console_init(void)
{
const int uart_num = CONFIG_ESP_CONSOLE_UART_NUM;
#if !ESP_ROM_SUPPORT_MULTIPLE_UART
/* esp_rom_install_channel_put is not available unless multiple UARTs are supported */
esp_rom_install_uart_printf();
#else
esp_rom_install_channel_putc(1, esp_rom_uart_putc);
#endif
// Wait for UART FIFO to be empty.
esp_rom_uart_tx_wait_idle(0);
@@ -58,10 +53,10 @@ void bootloader_console_init(void)
// Some constants to make the following code less upper-case
const int uart_tx_gpio = CONFIG_ESP_CONSOLE_UART_TX_GPIO;
const int uart_rx_gpio = CONFIG_ESP_CONSOLE_UART_RX_GPIO;
// Switch to the new UART (this just changes UART number used for esp_rom_printf in ROM code).
#if ESP_ROM_SUPPORT_MULTIPLE_UART
esp_rom_uart_set_as_console(uart_num);
#endif
// If console is attached to UART1 or if non-default pins are used,
// need to reconfigure pins using GPIO matrix
if (uart_num != 0 ||

View File

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

View File

@@ -1,61 +0,0 @@
/*
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "bootloader_common.h"
#include "bootloader_clock.h"
#include "soc/efuse_reg.h"
#include "soc/syscon_reg.h"
#include "esp_attr.h"
IRAM_ATTR uint8_t bootloader_common_get_chip_revision(void)
{
uint8_t eco_bit0, eco_bit1, eco_bit2;
eco_bit0 = (REG_READ(EFUSE_BLK0_RDATA3_REG) & 0xF000) >> 15;
eco_bit1 = (REG_READ(EFUSE_BLK0_RDATA5_REG) & 0x100000) >> 20;
eco_bit2 = (REG_READ(SYSCON_DATE_REG) & 0x80000000) >> 31;
uint32_t combine_value = (eco_bit2 << 2) | (eco_bit1 << 1) | eco_bit0;
uint8_t chip_ver = 0;
switch (combine_value) {
case 0:
chip_ver = 0;
break;
case 1:
chip_ver = 1;
break;
case 3:
chip_ver = 2;
break;
#if CONFIG_IDF_ENV_FPGA
case 4: /* Empty efuses, but SYSCON_DATE_REG bit is set */
chip_ver = 3;
break;
#endif
case 7:
chip_ver = 3;
break;
default:
chip_ver = 0;
break;
}
return chip_ver;
}
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
uint32_t pkg_version = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG);
uint32_t pkg_version_4bit = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG_4BIT);
return (pkg_version_4bit << 3) | pkg_version;
}
int bootloader_clock_get_rated_freq_mhz()
{
//Check if ESP32 is rated for a CPU frequency of 160MHz only
if (REG_GET_BIT(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_CPU_FREQ_RATED) &&
REG_GET_BIT(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_CPU_FREQ_LOW)) {
return 160;
}
return 240;
}

View File

@@ -1,21 +0,0 @@
/*
* SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include "soc/efuse_reg.h"
#include "esp_attr.h"
IRAM_ATTR uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
}
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
}

View File

@@ -1,21 +0,0 @@
/*
* SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include "soc/efuse_reg.h"
#include "esp_attr.h"
IRAM_ATTR uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
}
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_PKG_VERSION);
}

View File

@@ -1,23 +0,0 @@
/*
* SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include "bootloader_clock.h"
#include "bootloader_common.h"
#include "soc/efuse_reg.h"
#include "esp_attr.h"
IRAM_ATTR uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
}
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_4_REG, EFUSE_PKG_VERSION);
}

View File

@@ -1,21 +0,0 @@
/*
* SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include "esp_attr.h"
IRAM_ATTR uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
/* No other revisions for ESP32-S3 */
return 0;
}
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
// should return the same value as esp_efuse_get_pkg_ver()
return 0;
}

View File

@@ -10,6 +10,7 @@
#include <esp_flash_encrypt.h>
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "hal/efuse_hal.h"
#if CONFIG_IDF_TARGET_ESP32
# include "soc/spi_struct.h"
@@ -36,7 +37,7 @@
#endif
#ifdef CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
#define ENCRYPTION_IS_VIRTUAL 1
#define ENCRYPTION_IS_VIRTUAL (!efuse_hal_flash_encryption_enabled())
#else
#define ENCRYPTION_IS_VIRTUAL 0
#endif
@@ -573,7 +574,7 @@ esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void)
#ifndef g_rom_spiflash_dummy_len_plus // ESP32-C3 uses a macro to access ROM data here
extern uint8_t g_rom_spiflash_dummy_len_plus[];
#endif
IRAM_ATTR static uint32_t bootloader_flash_execute_command_common(
IRAM_ATTR uint32_t bootloader_flash_execute_command_common(
uint8_t command,
uint32_t addr_len, uint32_t address,
uint8_t dummy_len,
@@ -603,14 +604,12 @@ IRAM_ATTR static uint32_t bootloader_flash_execute_command_common(
SPIFLASH.addr = address;
#endif
//dummy phase
uint32_t total_dummy = dummy_len;
if (miso_len > 0) {
uint32_t total_dummy = dummy_len + g_rom_spiflash_dummy_len_plus[1];
SPIFLASH.user.usr_dummy = total_dummy > 0;
SPIFLASH.user1.usr_dummy_cyclelen = total_dummy - 1;
} else {
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user1.usr_dummy_cyclelen = 0;
total_dummy += g_rom_spiflash_dummy_len_plus[1];
}
SPIFLASH.user.usr_dummy = total_dummy > 0;
SPIFLASH.user1.usr_dummy_cyclelen = total_dummy - 1;
//output data
SPIFLASH.user.usr_mosi = mosi_len > 0;
#if CONFIG_IDF_TARGET_ESP32
@@ -679,6 +678,12 @@ uint32_t IRAM_ATTR bootloader_read_flash_id(void)
return id;
}
void bootloader_spi_flash_reset(void)
{
bootloader_execute_flash_command(0x66, 0, 0, 0);
bootloader_execute_flash_command(0x99, 0, 0, 0);
}
#if SOC_CACHE_SUPPORT_WRAP
esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode)
{

View File

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

View File

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

View File

@@ -23,6 +23,7 @@
#include "soc/extmem_reg.h"
#include "soc/io_mux_reg.h"
#include "soc/system_reg.h"
#include "soc/chip_revision.h"
#include "esp32c3/rom/efuse.h"
#include "esp32c3/rom/spi_flash.h"
#include "esp32c3/rom/cache.h"
@@ -38,6 +39,7 @@
#include "bootloader_flash_priv.h"
#include "bootloader_soc.h"
#include "esp_efuse.h"
#include "hal/efuse_hal.h"
static const char *TAG = "boot.esp32c3";
@@ -258,7 +260,7 @@ static inline void bootloader_hardware_init(void)
{
// This check is always included in the bootloader so it can
// print the minimum revision error message later in the boot
if (bootloader_common_get_chip_revision() < 3) {
if (!ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 3)) {
REGI2C_WRITE_MASK(I2C_ULP, I2C_ULP_IR_FORCE_XPD_IPH, 1);
REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_DREG_1P1_PVT, 12);
}
@@ -271,8 +273,7 @@ static inline void bootloader_ana_reset_config(void)
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.
*/
uint8_t chip_version = bootloader_common_get_chip_revision();
switch (chip_version) {
switch (efuse_hal_chip_revision()) {
case 0:
case 1:
//Enable WDT reset. Disable BOR and GLITCH reset

View File

@@ -218,6 +218,11 @@ static esp_err_t bootloader_init_spi_flash(void)
}
#endif
#if CONFIG_SPI_FLASH_HPM_ENABLE
// Reset flash, clear volatile bits DC[0:1]. Make it work under default mode to boot.
bootloader_spi_flash_reset();
#endif
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -174,7 +174,12 @@ void esp_flash_encryption_set_release_mode(void)
ESP_LOGE(TAG, "Flash Encryption support not added, abort..");
abort();
#endif
#if CONFIG_SOC_SUPPORTS_SECURE_DL_MODE
esp_efuse_enable_rom_secure_download_mode();
#else
esp_efuse_disable_rom_download_mode();
#endif
esp_efuse_batch_write_commit();
if (esp_get_flash_encryption_mode() != ESP_FLASH_ENC_MODE_RELEASE) {

View File

@@ -168,6 +168,11 @@ unsigned bootloader_read_status_8b_rdsr2(void)
return bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8);
}
unsigned bootloader_read_status_8b_rdsr3(void)
{
return bootloader_execute_flash_command(CMD_RDSR3, 0, 0, 8);
}
unsigned bootloader_read_status_16b_rdsr_rdsr2(void)
{
return bootloader_execute_flash_command(CMD_RDSR, 0, 0, 8) | (bootloader_execute_flash_command(CMD_RDSR2, 0, 0, 8) << 8);
@@ -183,6 +188,11 @@ void bootloader_write_status_8b_wrsr2(unsigned new_status)
bootloader_execute_flash_command(CMD_WRSR2, new_status, 8, 0);
}
void bootloader_write_status_8b_wrsr3(unsigned new_status)
{
bootloader_execute_flash_command(CMD_WRSR3, new_status, 8, 0);
}
void bootloader_write_status_16b_wrsr(unsigned new_status)
{
bootloader_execute_flash_command(CMD_WRSR, new_status, 16, 0);

View File

@@ -247,7 +247,7 @@ static esp_err_t check_and_generate_secure_boot_keys(const esp_image_metadata_t
ESP_LOGI(TAG, "%d signature block(s) found appended to the app.", app_key_digests.num_digests);
if (app_key_digests.num_digests > boot_key_digests.num_digests) {
ESP_LOGW(TAG, "App has %d signature blocks but bootloader only has %d. Some keys missing from bootloader?");
ESP_LOGW(TAG, "App has %d signature blocks but bootloader only has %d. Some keys missing from bootloader?", app_key_digests.num_digests, boot_key_digests.num_digests);
}
/* Confirm if at least one public key from the application matches a public key in the bootloader

View File

@@ -0,0 +1,6 @@
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(test_rtc_custom_section)

View File

@@ -0,0 +1,2 @@
| Supported Targets | ESP32 | ESP32-C3 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- |

View File

@@ -0,0 +1,2 @@
idf_component_register(SRCS "test_main.c"
INCLUDE_DIRS ".")

View File

@@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "bootloader_common.h"
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#define TEST_MAGIC_VALUE 0x42987561
extern rtc_retain_mem_t* bootloader_common_get_rtc_retain_mem(void);
void app_main(void) {
rtc_retain_mem_t* mem = bootloader_common_get_rtc_retain_mem();
uint32_t* _rtc_vars = (uint32_t*) mem->custom;
if (_rtc_vars[0] != TEST_MAGIC_VALUE) {
/* On the first boot, set the data inside the array */
_rtc_vars[0] = TEST_MAGIC_VALUE;
} else {
/* Second boot, the data was saved saved, success */
printf("SUCCESS: data were saved across reboot\n");
vTaskDelay(10000 / portTICK_PERIOD_MS);
}
esp_restart();
}

View File

@@ -0,0 +1,3 @@
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0x10
CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC=y
CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE=0x200

View File

@@ -6,7 +6,7 @@ if(CONFIG_BT_ENABLED)
elseif(CONFIG_IDF_TARGET_ESP32C3)
set(srcs "controller/esp32c3/bt.c")
elseif(CONFIG_IDF_TARGET_ESP32S3)
set(srcs "controller/esp32s3/bt.c")
set(srcs "controller/esp32c3/bt.c")
endif()
set(include_dirs common/osi/include)
@@ -16,7 +16,7 @@ if(CONFIG_BT_ENABLED)
elseif(CONFIG_IDF_TARGET_ESP32C3)
list(APPEND include_dirs include/esp32c3/include)
elseif(CONFIG_IDF_TARGET_ESP32S3)
list(APPEND include_dirs include/esp32s3/include)
list(APPEND include_dirs include/esp32c3/include)
endif()
list(APPEND priv_include_dirs

View File

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

View File

@@ -57,6 +57,8 @@ typedef enum {
typedef enum {
ESP_BLUFI_STA_CONN_SUCCESS = 0x00,
ESP_BLUFI_STA_CONN_FAIL = 0x01,
ESP_BLUFI_STA_CONNECTING = 0x02,
ESP_BLUFI_STA_NO_IP = 0x03,
} esp_blufi_sta_conn_state_t;
/// BLUFI init status
@@ -82,6 +84,9 @@ typedef enum {
ESP_BLUFI_READ_PARAM_ERROR,
ESP_BLUFI_MAKE_PUBLIC_ERROR,
ESP_BLUFI_DATA_FORMAT_ERROR,
ESP_BLUFI_CALC_MD5_ERROR,
ESP_BLUFI_WIFI_SCAN_FAIL,
ESP_BLUFI_MSG_STATE_ERROR,
} esp_blufi_error_state_t;
/**
@@ -105,6 +110,12 @@ typedef struct {
bool softap_max_conn_num_set; /*!< is max connection number of softap interface set */
uint8_t softap_channel; /*!< channel of softap interface */
bool softap_channel_set; /*!< is channel of softap interface set */
uint8_t sta_max_conn_retry; /*!< max retry of sta establish connection */
bool sta_max_conn_retry_set; /*!< is max retry of sta establish connection set */
uint8_t sta_conn_end_reason; /*!< reason of sta connection end */
bool sta_conn_end_reason_set; /*!< is reason of sta connection end set */
int8_t sta_conn_rssi; /*!< rssi of sta connection */
bool sta_conn_rssi_set; /*!< is rssi of sta connection set */
} esp_blufi_extra_info_t;
/** @brief Description of an WiFi AP */

View File

@@ -206,9 +206,6 @@ static void btc_thread_handler(void *arg)
break;
}
if (msg->arg) {
osi_free(msg->arg);
}
osi_free(msg);
}
@@ -227,59 +224,61 @@ static bt_status_t btc_task_post(btc_msg_t *msg, uint32_t timeout)
* @param arg paramter
* @param arg_len length of paramter
* @param copy_func deep copy function
* @param free_func deep free function
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func)
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func,
btc_arg_deep_free_t free_func)
{
btc_msg_t* lmsg;
bt_status_t ret;
// arg XOR arg_len
if ((msg == NULL) || ((arg == NULL) == !(arg_len == 0))) {
BTC_TRACE_WARNING("%s Invalid parameters\n", __func__);
return BT_STATUS_PARM_INVALID;
}
BTC_TRACE_DEBUG("%s msg %u %u %u %p\n", __func__, msg->sig, msg->pid, msg->act, arg);
lmsg = (btc_msg_t *)osi_malloc(sizeof(btc_msg_t));
lmsg = (btc_msg_t *)osi_malloc(sizeof(btc_msg_t) + arg_len);
if (lmsg == NULL) {
BTC_TRACE_WARNING("%s No memory\n", __func__);
return BT_STATUS_NOMEM;
}
memcpy(lmsg, msg, sizeof(btc_msg_t));
if (arg) {
lmsg->arg = (void *)osi_malloc(arg_len);
if (lmsg->arg == NULL) {
osi_free(lmsg);
return BT_STATUS_NOMEM;
}
memset(lmsg->arg, 0x00, arg_len); //important, avoid arg which have no length
memcpy(lmsg->arg, arg, arg_len);
if (copy_func) {
copy_func(lmsg, lmsg->arg, arg);
}
} else {
lmsg->arg = NULL;
}
return btc_task_post(lmsg, OSI_THREAD_MAX_TIMEOUT);
ret = btc_task_post(lmsg, OSI_THREAD_MAX_TIMEOUT);
if (ret != BT_STATUS_SUCCESS) {
if (copy_func && free_func) {
free_func(lmsg);
}
osi_free(lmsg);
}
return ret;
}
/**
* transfer an message to another module in tha same task.
* @param msg message
* @param arg paramter
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_inter_profile_call(btc_msg_t *msg, void *arg)
bt_status_t btc_inter_profile_call(btc_msg_t *msg)
{
if (msg == NULL) {
return BT_STATUS_PARM_INVALID;
}
msg->arg = arg;
switch (msg->sig) {
case BTC_SIG_API_CALL:
profile_tab[msg->pid].btc_call(msg);

View File

@@ -28,7 +28,7 @@ typedef struct btc_msg {
uint8_t aid; //application id
uint8_t pid; //profile id
uint8_t act; //profile action, defined in seprerate header files
void *arg; //param for btc function or function param
UINT8 arg[0]; //param for btc function or function param
} btc_msg_t;
typedef struct btc_adv_packet {
@@ -100,6 +100,7 @@ typedef struct {
} btc_func_t;
typedef void (* btc_arg_deep_copy_t)(btc_msg_t *msg, void *dst, void *src);
typedef void (* btc_arg_deep_free_t)(btc_msg_t *msg);
#ifdef __cplusplus
extern "C" {
@@ -111,19 +112,20 @@ extern "C" {
* @param arg paramter
* @param arg_len length of paramter
* @param copy_func deep copy function
* @param free_func deep free function
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func);
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func,
btc_arg_deep_free_t free_func);
/**
* transfer an message to another module in tha same task.
* @param msg message
* @param arg paramter
* @return BT_STATUS_SUCCESS: success
* others: fail
*/
bt_status_t btc_inter_profile_call(btc_msg_t *msg, void *arg);
bt_status_t btc_inter_profile_call(btc_msg_t *msg);
bt_status_t btc_init(void);
void btc_deinit(void);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -214,17 +214,17 @@ osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priorit
return NULL;
}
osi_thread_t *thread = (osi_thread_t *)osi_malloc(sizeof(osi_thread_t));
osi_thread_t *thread = (osi_thread_t *)osi_calloc(sizeof(osi_thread_t));
if (thread == NULL) {
goto _err;
}
thread->stop = false;
thread->work_queue_num = work_queue_num;
thread->work_queues = (struct work_queue **)osi_malloc(sizeof(struct work_queue *) * work_queue_num);
thread->work_queues = (struct work_queue **)osi_calloc(sizeof(struct work_queue *) * work_queue_num);
if (thread->work_queues == NULL) {
goto _err;
}
thread->work_queue_num = work_queue_num;
for (int i = 0; i < thread->work_queue_num; i++) {
size_t queue_len = work_queue_len[i] ? work_queue_len[i] : DEFAULT_WORK_QUEUE_CAPACITY;

View File

@@ -353,6 +353,22 @@ config BTDM_SCAN_DUPL_CACHE_SIZE
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BTDM_SCAN_DUPL_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
depends on BTDM_BLE_SCAN_DUPL
range 0 1000
default 0
help
If the period value is non-zero, the controller will periodically clear the device information
stored in the scan duuplicate filter. If it is 0, the scan duuplicate filter will not be cleared
until the scanning is disabled. Duplicate advertisements for this period should not be sent to the
Host in advertising report events.
There are two scenarios where the ADV packet will be repeatedly reported:
1. The duplicate scan cache is full, the controller will delete the oldest device information and
add new device information.
2. When the refresh period is up, the controller will clear all device information and start filtering
again.
config BTDM_BLE_MESH_SCAN_DUPL_EN
bool "Special duplicate scan mechanism for BLE Mesh scan"
depends on BTDM_BLE_SCAN_DUPL

View File

@@ -88,7 +88,7 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010003
#define OSI_VERSION 0x00010004
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* Types definition
@@ -175,6 +175,7 @@ struct osi_funcs_t {
void (*_interrupt_l3_disable)(void);
void (*_interrupt_l3_restore)(void);
void *(* _customer_queue_create)(uint32_t queue_len, uint32_t item_size);
int (* _coex_version_get)(unsigned int *major, unsigned int *minor, unsigned int *patch);
uint32_t _magic;
};
@@ -319,11 +320,13 @@ static uint8_t coex_schm_curr_period_get_wrapper(void);
static void * coex_schm_curr_phase_get_wrapper(void);
static int coex_wifi_channel_get_wrapper(uint8_t *primary, uint8_t *secondary);
static int coex_register_wifi_channel_change_callback_wrapper(void *cb);
static int coex_version_get_wrapper(unsigned int *major, unsigned int *minor, unsigned int *patch);
#if CONFIG_BTDM_CTRL_HLI
static void *customer_queue_create_hlevel_wrapper(uint32_t queue_len, uint32_t item_size);
#endif /* CONFIG_BTDM_CTRL_HLI */
static void IRAM_ATTR interrupt_l3_disable(void);
static void IRAM_ATTR interrupt_l3_restore(void);
static void bt_controller_deinit_internal(void);
/* Local variable definition
***************************************************************************
@@ -410,6 +413,7 @@ static const struct osi_funcs_t osi_funcs_ro = {
#else
._customer_queue_create = NULL,
#endif /* CONFIG_BTDM_CTRL_HLI */
._coex_version_get = coex_version_get_wrapper,
._magic = OSI_MAGIC_VALUE,
};
@@ -1228,6 +1232,30 @@ static int coex_register_wifi_channel_change_callback_wrapper(void *cb)
#endif
}
static int coex_version_get_wrapper(unsigned int *major, unsigned int *minor, unsigned int *patch)
{
#if CONFIG_SW_COEXIST_ENABLE
const char *ver_str = esp_coex_version_get();
if (ver_str != NULL) {
unsigned int _major = 0, _minor = 0, _patch = 0;
if (sscanf(ver_str, "%u.%u.%u", &_major, &_minor, &_patch) != 3) {
return -1;
}
if (major != NULL) {
*major = _major;
}
if (minor != NULL) {
*minor = _minor;
}
if (patch != NULL) {
*patch = _patch;
}
return 0;
}
#endif
return -1;
}
bool esp_vhci_host_check_send_available(void)
{
return API_vhci_host_check_send_available();
@@ -1478,7 +1506,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
goto error;
}
esp_phy_pd_mem_init();
esp_phy_modem_init();
esp_bt_power_domain_on();
@@ -1575,26 +1603,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_OK;
error:
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
if (s_light_sleep_pm_lock != NULL) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
}
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
}
if (s_btdm_slp_tmr != NULL) {
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
#endif
if (s_wakeup_req_sem) {
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
bt_controller_deinit_internal();
return err;
}
@@ -1606,6 +1617,13 @@ esp_err_t esp_bt_controller_deinit(void)
btdm_controller_deinit();
bt_controller_deinit_internal();
return ESP_OK;
}
static void bt_controller_deinit_internal(void)
{
periph_module_disable(PERIPH_BT_MODULE);
#ifdef CONFIG_PM_ENABLE
@@ -1627,11 +1645,16 @@ esp_err_t esp_bt_controller_deinit(void)
s_pm_lock_acquired = false;
#endif
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
free(osi_funcs_p);
osi_funcs_p = NULL;
if (s_wakeup_req_sem) {
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
if (osi_funcs_p) {
free(osi_funcs_p);
osi_funcs_p = NULL;
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
@@ -1640,9 +1663,7 @@ esp_err_t esp_bt_controller_deinit(void)
esp_bt_power_domain_off();
esp_phy_pd_mem_deinit();
return ESP_OK;
esp_phy_modem_deinit();
}
static void bt_controller_shutdown(void* arg)

View File

@@ -4,11 +4,13 @@ config BT_CTRL_MODE_EFF
config BT_CTRL_BLE_MAX_ACT
int "BLE Max Instances"
default 10
default 6
range 1 10
help
BLE maximum activities of bluetooth controllerboth of connections,
scan , sync and adv(periodic adv, multi-adv).
scan , sync and adv(periodic adv, multi-adv). Each instance needs to
consume 828 bytes, you can save RAM by modifying the instance value
according to actual needs.
config BT_CTRL_BLE_MAX_ACT_EFF
int
@@ -24,8 +26,24 @@ config BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB
(alloate when controller initialise, never free until controller de-initialise)
another is dynamically allocating (allocate before TX and free after TX).
choice BT_CTRL_PINNED_TO_CORE_CHOICE
prompt "The cpu core which bluetooth controller run"
depends on !FREERTOS_UNICORE
help
Specify the cpu core to run bluetooth controller.
Can not specify no-affinity.
config BT_CTRL_PINNED_TO_CORE_0
bool "Core 0 (PRO CPU)"
config BT_CTRL_PINNED_TO_CORE_1
bool "Core 1 (APP CPU)"
depends on !FREERTOS_UNICORE
endchoice
config BT_CTRL_PINNED_TO_CORE
int
default 0 if BT_CTRL_PINNED_TO_CORE_0
default 1 if BT_CTRL_PINNED_TO_CORE_1
default 0
choice BT_CTRL_HCI_MODE_CHOICE
@@ -36,7 +54,7 @@ choice BT_CTRL_HCI_MODE_CHOICE
config BT_CTRL_HCI_MODE_VHCI
bool "VHCI"
help
Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32C3, too.
Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32S3 or ESP32C3.
config BT_CTRL_HCI_MODE_UART_H4
bool "UART(H4)"
@@ -134,7 +152,7 @@ config BT_CTRL_RX_ANTENNA_INDEX_EFF
choice BT_CTRL_DFT_TX_POWER_LEVEL
prompt "BLE default Tx power level"
default BT_CTRL_DFT_TX_POWER_LEVEL_P3
default BT_CTRL_DFT_TX_POWER_LEVEL_P9
help
Specify default Tx power level
@@ -280,6 +298,22 @@ config BT_CTRL_SCAN_DUPL_CACHE_SIZE
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BT_CTRL_DUPL_SCAN_CACHE_REFRESH_PERIOD
int "Duplicate scan list refresh period (seconds)"
depends on BT_CTRL_BLE_SCAN_DUPL
range 0 1000
default 0
help
If the period value is non-zero, the controller will periodically clear the device information
stored in the scan duuplicate filter. If it is 0, the scan duuplicate filter will not be cleared
until the scanning is disabled. Duplicate advertisements for this period should not be sent to the
Host in advertising report events.
There are two scenarios where the ADV packet will be repeatedly reported:
1. The duplicate scan cache is full, the controller will delete the oldest device information and
add new device information.
2. When the refresh period is up, the controller will clear all device information and start filtering
again.
config BT_CTRL_BLE_MESH_SCAN_DUPL_EN
bool "Special duplicate scan mechanism for BLE Mesh scan"
depends on BT_CTRL_BLE_SCAN_DUPL
@@ -379,7 +413,6 @@ menu "MODEM SLEEP Options"
selects an external 32kHz crystal but the external 32kHz crystal does not exist or the low power clock
selects the main crystal.
endmenu
config BT_CTRL_SLEEP_MODE_EFF
@@ -413,3 +446,11 @@ config BT_CTRL_CODED_AGC_RECORRECT_EN
default n
help
Enable coded phy AGC recorrect
config BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
bool "Disable active scan backoff"
default n
help
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.

View File

@@ -20,7 +20,6 @@
#include "esp_types.h"
#include "esp_system.h"
#include "esp_task.h"
#include "riscv/interrupt.h"
#include "esp_attr.h"
#include "esp_phy_init.h"
#include "esp_bt.h"
@@ -34,18 +33,25 @@
#include "soc/soc_memory_layout.h"
#include "esp32c3/clk.h"
#include "esp_coexist_internal.h"
#include "esp32c3/rom/rom_layout.h"
#include "esp_timer.h"
#include "esp_sleep.h"
#include "esp_rom_sys.h"
#include "phy.h"
#if CONFIG_IDF_TARGET_ESP32C3
#include "riscv/interrupt.h"
#include "esp32c3/rom/rom_layout.h"
#else //CONFIG_IDF_TARGET_ESP32S3
#include "freertos/xtensa_api.h"
#include "xtensa/core-macros.h"
#include "esp32s3/rom/rom_layout.h"
#endif
#if CONFIG_BT_ENABLED
/* Macro definition
************************************************************************
*/
#define BTDM_LOG_TAG "BTDM_INIT"
#define BT_LOG_TAG "BLE_INIT"
#define BTDM_INIT_PERIOD (5000) /* ms */
@@ -125,12 +131,10 @@ typedef struct vhci_host_callback {
int (*notify_host_recv)(uint8_t *data, uint16_t len); /*!< callback used to notify that the controller has a packet to send to the host*/
} vhci_host_callback_t;
/* Dram region */
typedef struct {
esp_bt_mode_t mode;
intptr_t start;
intptr_t end;
} btdm_dram_available_region_t;
void *handle;
void *storage;
} btdm_queue_item_t;
typedef void (* osi_intr_handler)(void);
@@ -140,7 +144,7 @@ struct osi_funcs_t {
uint32_t _version;
void (*_interrupt_set)(int cpu_no, int intr_source, int interrupt_no, int interrpt_prio);
void (*_interrupt_clear)(int interrupt_source, int interrupt_no);
void (*_interrupt_handler_set)(int interrupt_no, intr_handler_t fn, void *arg);
void (*_interrupt_handler_set)(int interrupt_no, void *fn, void *arg);
void (*_interrupt_disable)(void);
void (*_interrupt_restore)(void);
void (*_task_yield)(void);
@@ -206,7 +210,6 @@ extern void btdm_controller_disable(void);
extern uint8_t btdm_controller_get_mode(void);
extern const char *btdm_controller_get_compile_version(void);
extern void btdm_rf_bb_init_phase2(void); // shall be called after PHY/RF is enabled
/* Sleep */
extern void btdm_controller_enable_sleep(bool enable);
extern uint8_t btdm_controller_get_sleep_mode(void);
@@ -217,8 +220,8 @@ extern void btdm_in_wakeup_requesting_set(bool in_wakeup_requesting);
/* vendor dependent tasks to be posted and handled by controller task*/
extern int btdm_vnd_offload_task_register(btdm_vnd_ol_sig_t sig, btdm_vnd_ol_task_func_t func);
extern int btdm_vnd_offload_task_deregister(btdm_vnd_ol_sig_t sig);
extern int btdm_vnd_offload_post_from_isr(btdm_vnd_ol_sig_t sig, void *param, bool need_yield);
extern int btdm_vnd_offload_post(btdm_vnd_ol_sig_t sig, void *param);
extern int r_btdm_vnd_offload_post_from_isr(btdm_vnd_ol_sig_t sig, void *param, bool need_yield);
extern int r_btdm_vnd_offload_post(btdm_vnd_ol_sig_t sig, void *param);
/* Low Power Clock */
extern bool btdm_lpclk_select_src(uint32_t sel);
@@ -241,7 +244,6 @@ extern bool btdm_deep_sleep_mem_init(void);
extern void btdm_deep_sleep_mem_deinit(void);
extern void btdm_ble_power_down_dma_copy(bool copy);
extern uint8_t btdm_sleep_clock_sync(void);
extern void sdk_config_extend_set_pll_track(bool enable);
#if CONFIG_MAC_BB_PD
extern void esp_mac_bb_power_down(void);
@@ -249,31 +251,25 @@ extern void esp_mac_bb_power_up(void);
extern void ets_backup_dma_copy(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem);
#endif
extern char _bss_start_btdm;
extern char _bss_end_btdm;
extern char _data_start_btdm;
extern char _data_end_btdm;
extern uint32_t _data_start_btdm_rom;
extern uint32_t _data_end_btdm_rom;
extern uint32_t _bt_bss_start;
extern uint32_t _bt_bss_end;
extern uint32_t _btdm_bss_start;
extern uint32_t _btdm_bss_end;
extern uint32_t _nimble_bss_start;
extern uint32_t _nimble_bss_end;
extern uint32_t _bt_data_start;
extern uint32_t _bt_data_end;
extern uint32_t _btdm_data_start;
extern uint32_t _btdm_data_end;
extern char _bt_tmp_bss_start;
extern char _bt_tmp_bss_end;
extern uint32_t _nimble_data_start;
extern uint32_t _nimble_data_end;
/* Local Function Declare
*********************************************************************
*/
static void interrupt_set_wrapper(int cpu_no, int intr_source, int intr_num, int intr_prio);
static void interrupt_clear_wrapper(int intr_source, int intr_num);
static void interrupt_handler_set_wrapper(int n, intr_handler_t fn, void *arg);
static void interrupt_handler_set_wrapper(int n, void *fn, void *arg);
static void IRAM_ATTR interrupt_disable(void);
static void IRAM_ATTR interrupt_restore(void);
static void IRAM_ATTR task_yield_from_isr(void);
@@ -316,6 +312,11 @@ 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_slp_tmr_callback(void *arg);
static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end);
static void bt_controller_deinit_internal(void);
/* Local variable definition
***************************************************************************
*/
@@ -404,10 +405,11 @@ static DRAM_ATTR esp_pm_lock_handle_t s_light_sleep_pm_lock;
void IRAM_ATTR btdm_hw_mac_power_down_wrapper(void)
{
#if CONFIG_MAC_BB_PD
#if CONFIG_IDF_TARGET_ESP32C3
// Bluetooth module power down
SET_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
SET_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
#endif
esp_mac_bb_power_down();
#endif
}
@@ -415,30 +417,15 @@ void IRAM_ATTR btdm_hw_mac_power_down_wrapper(void)
void IRAM_ATTR btdm_hw_mac_power_up_wrapper(void)
{
#if CONFIG_MAC_BB_PD
#if CONFIG_IDF_TARGET_ESP32C3
// Bluetooth module power up
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
#endif
esp_mac_bb_power_up();
#endif
}
static inline void esp_bt_power_domain_on(void)
{
// Bluetooth module power up
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
esp_wifi_bt_power_domain_on();
}
static inline void esp_bt_power_domain_off(void)
{
// Bluetooth module power down
SET_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
SET_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
esp_wifi_bt_power_domain_off();
}
void IRAM_ATTR btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, uint32_t num, bool to_mem)
{
#if CONFIG_MAC_BB_PD
@@ -446,31 +433,67 @@ void IRAM_ATTR btdm_backup_dma_copy_wrapper(uint32_t reg, uint32_t mem_addr, uin
#endif
}
static inline void esp_bt_power_domain_on(void)
{
// Bluetooth module power up
#if CONFIG_IDF_TARGET_ESP32C3
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
CLEAR_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
#endif
esp_wifi_bt_power_domain_on();
}
static inline void esp_bt_power_domain_off(void)
{
// Bluetooth module power down
#if CONFIG_IDF_TARGET_ESP32C3
SET_PERI_REG_MASK(RTC_CNTL_DIG_ISO_REG, RTC_CNTL_BT_FORCE_ISO);
SET_PERI_REG_MASK(RTC_CNTL_DIG_PWC_REG, RTC_CNTL_BT_FORCE_PD);
#endif
esp_wifi_bt_power_domain_off();
}
static void interrupt_set_wrapper(int cpu_no, int intr_source, int intr_num, int intr_prio)
{
#if __riscv
intr_matrix_route(intr_source, intr_num);
esprv_intc_int_set_priority(intr_num, intr_prio);
//esprv_intc_int_enable_level(1 << intr_num);
esprv_intc_int_set_type(intr_num, 0);
#else
intr_matrix_set(cpu_no, intr_source, intr_num);
#endif
}
static void interrupt_clear_wrapper(int intr_source, int intr_num)
{
}
static void interrupt_handler_set_wrapper(int n, intr_handler_t fn, void *arg)
static void interrupt_handler_set_wrapper(int n, void *fn, void *arg)
{
#if __riscv
intr_handler_set(n, fn, arg);
#else
xt_set_interrupt_handler(n, (xt_handler)fn, arg);
#endif
}
static void interrupt_on_wrapper(int intr_num)
{
#if __riscv
esprv_intc_int_enable(1 << intr_num);
#else
xt_ints_on(1 << intr_num);
#endif
}
static void interrupt_off_wrapper(int intr_num)
{
esprv_intc_int_disable(1<<intr_num);
#if __riscv
esprv_intc_int_disable(1 << intr_num);
#else
xt_ints_off(1 << intr_num);
#endif
}
static void IRAM_ATTR interrupt_disable(void)
@@ -498,36 +521,64 @@ static void IRAM_ATTR task_yield_from_isr(void)
static void *semphr_create_wrapper(uint32_t max, uint32_t init)
{
return (void *)xSemaphoreCreateCounting(max, init);
btdm_queue_item_t *semphr = heap_caps_calloc(1, sizeof(btdm_queue_item_t), MALLOC_CAP_8BIT|MALLOC_CAP_INTERNAL);
assert(semphr);
#if !CONFIG_SPIRAM_USE_MALLOC
semphr->handle = (void *)xSemaphoreCreateCounting(max, init);
#else
semphr->storage = heap_caps_malloc(sizeof(StaticQueue_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
assert(semphr->storage);
semphr->handle = (void *)xSemaphoreCreateCountingStatic(max, init, semphr->storage);
#endif
assert(semphr->handle);
return semphr;
}
static void semphr_delete_wrapper(void *semphr)
{
vSemaphoreDelete(semphr);
if (semphr == NULL) {
return;
}
btdm_queue_item_t *semphr_item = (btdm_queue_item_t *)semphr;
if (semphr_item->handle) {
vSemaphoreDelete(semphr_item->handle);
}
#ifdef CONFIG_SPIRAM_USE_MALLOC
if (semphr_item->storage) {
free(semphr_item->storage);
}
#endif
free(semphr);
}
static int IRAM_ATTR semphr_take_from_isr_wrapper(void *semphr, void *hptw)
{
return (int)xSemaphoreTakeFromISR(semphr, hptw);
return (int)xSemaphoreTakeFromISR(((btdm_queue_item_t *)semphr)->handle, hptw);
}
static int IRAM_ATTR semphr_give_from_isr_wrapper(void *semphr, void *hptw)
{
return (int)xSemaphoreGiveFromISR(semphr, hptw);
return (int)xSemaphoreGiveFromISR(((btdm_queue_item_t *)semphr)->handle, hptw);
}
static int semphr_take_wrapper(void *semphr, uint32_t block_time_ms)
{
if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) {
return (int)xSemaphoreTake(semphr, portMAX_DELAY);
return (int)xSemaphoreTake(((btdm_queue_item_t *)semphr)->handle, portMAX_DELAY);
} else {
return (int)xSemaphoreTake(semphr, block_time_ms / portTICK_PERIOD_MS);
return (int)xSemaphoreTake(((btdm_queue_item_t *)semphr)->handle, block_time_ms / portTICK_PERIOD_MS);
}
}
static int semphr_give_wrapper(void *semphr)
{
return (int)xSemaphoreGive(semphr);
return (int)xSemaphoreGive(((btdm_queue_item_t *)semphr)->handle);
}
static void *mutex_create_wrapper(void)
@@ -552,40 +603,71 @@ static int mutex_unlock_wrapper(void *mutex)
static void *queue_create_wrapper(uint32_t queue_len, uint32_t item_size)
{
return (void *)xQueueCreate(queue_len, item_size);
btdm_queue_item_t *queue = NULL;
queue = (btdm_queue_item_t*)heap_caps_malloc(sizeof(btdm_queue_item_t), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
assert(queue);
#if CONFIG_SPIRAM_USE_MALLOC
queue->storage = heap_caps_calloc(1, sizeof(StaticQueue_t) + (queue_len*item_size), MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
assert(queue->storage);
queue->handle = xQueueCreateStatic( queue_len, item_size, ((uint8_t*)(queue->storage)) + sizeof(StaticQueue_t), (StaticQueue_t*)(queue->storage));
assert(queue->handle);
#else
queue->handle = xQueueCreate( queue_len, item_size);
assert(queue->handle);
#endif
return queue;
}
static void queue_delete_wrapper(void *queue)
{
vQueueDelete(queue);
btdm_queue_item_t *queue_item = (btdm_queue_item_t *)queue;
if (queue_item) {
if(queue_item->handle){
vQueueDelete(queue_item->handle);
}
#if CONFIG_SPIRAM_USE_MALLOC
if (queue_item->storage) {
free(queue_item->storage);
}
#endif
free(queue_item);
}
}
static int queue_send_wrapper(void *queue, void *item, uint32_t block_time_ms)
{
if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) {
return (int)xQueueSend(queue, item, portMAX_DELAY);
return (int)xQueueSend(((btdm_queue_item_t*)queue)->handle, item, portMAX_DELAY);
} else {
return (int)xQueueSend(queue, item, block_time_ms / portTICK_PERIOD_MS);
return (int)xQueueSend(((btdm_queue_item_t*)queue)->handle, item, block_time_ms / portTICK_PERIOD_MS);
}
}
static int IRAM_ATTR queue_send_from_isr_wrapper(void *queue, void *item, void *hptw)
{
return (int)xQueueSendFromISR(queue, item, hptw);
return (int)xQueueSendFromISR(((btdm_queue_item_t*)queue)->handle, item, hptw);
}
static int queue_recv_wrapper(void *queue, void *item, uint32_t block_time_ms)
{
if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) {
return (int)xQueueReceive(queue, item, portMAX_DELAY);
return (int)xQueueReceive(((btdm_queue_item_t*)queue)->handle, item, portMAX_DELAY);
} else {
return (int)xQueueReceive(queue, item, block_time_ms / portTICK_PERIOD_MS);
return (int)xQueueReceive(((btdm_queue_item_t*)queue)->handle, item, block_time_ms / portTICK_PERIOD_MS);
}
}
static int IRAM_ATTR queue_recv_from_isr_wrapper(void *queue, void *item, void *hptw)
{
return (int)xQueueReceiveFromISR(queue, item, hptw);
return (int)xQueueReceiveFromISR(((btdm_queue_item_t*)queue)->handle, item, hptw);
}
static int task_create_wrapper(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id)
@@ -605,13 +687,17 @@ static bool IRAM_ATTR is_in_isr_wrapper(void)
static void *malloc_internal_wrapper(size_t size)
{
return heap_caps_malloc(size, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL|MALLOC_CAP_DMA);
void *p = heap_caps_malloc(size, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL|MALLOC_CAP_DMA);
if(p == NULL) {
ESP_LOGE(BT_LOG_TAG, "Malloc failed");
}
return p;
}
static int IRAM_ATTR read_mac_wrapper(uint8_t mac[6])
{
int ret = esp_read_mac(mac, ESP_MAC_BT);
ESP_LOGI(BTDM_LOG_TAG, "Bluetooth MAC: %02x:%02x:%02x:%02x:%02x:%02x\n",
ESP_LOGI(BT_LOG_TAG, "Bluetooth MAC: %02x:%02x:%02x:%02x:%02x:%02x\n",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return ret;
@@ -686,7 +772,7 @@ static void btdm_sleep_enter_phase1_wrapper(uint32_t lpcycles)
if (esp_timer_start_once(s_btdm_slp_tmr, us_to_sleep - uncertainty) == ESP_OK) {
s_lp_stat.wakeup_timer_started = 1;
} else {
ESP_LOGE(BTDM_LOG_TAG, "timer start failed");
ESP_LOGE(BT_LOG_TAG, "timer start failed");
assert(0);
}
}
@@ -773,7 +859,7 @@ static void IRAM_ATTR btdm_sleep_exit_phase0(void *param)
static void IRAM_ATTR btdm_slp_tmr_callback(void *arg)
{
#ifdef CONFIG_PM_ENABLE
btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)BTDM_ASYNC_WAKEUP_SRC_TMR);
r_btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)BTDM_ASYNC_WAKEUP_SRC_TMR);
#endif
}
@@ -790,7 +876,7 @@ static bool async_wakeup_request(int event)
case BTDM_ASYNC_WAKEUP_SRC_DISA:
btdm_in_wakeup_requesting_set(true);
if (!btdm_power_state_active()) {
btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)event);
r_btdm_vnd_offload_post(BTDM_VND_OL_SIG_WAKEUP_TMR, (void *)event);
do_wakeup_request = true;
semphr_take_wrapper(s_wakeup_req_sem, OSI_FUNCS_TIME_BLOCKING);
}
@@ -876,13 +962,142 @@ static void btdm_controller_mem_init(void)
esp_err_t esp_bt_controller_mem_release(esp_bt_mode_t mode)
{
ESP_LOGW(BTDM_LOG_TAG, "%s not implemented, return OK", __func__);
intptr_t mem_start=(intptr_t) NULL, mem_end=(intptr_t) NULL;
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_IDLE) {
return ESP_ERR_INVALID_STATE;
}
if (mode & ESP_BT_MODE_BLE) {
/* if the addresses of rom btdm .data and .bss are consecutive,
they are registered in the system heap as a piece of memory
*/
if(ets_rom_layout_p->data_end_btdm == ets_rom_layout_p->bss_start_btdm) {
mem_start = (intptr_t)ets_rom_layout_p->data_start_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release rom btdm [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)ets_rom_layout_p->bss_start_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release rom btdm BSS [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)ets_rom_layout_p->data_start_btdm;
mem_end = (intptr_t)ets_rom_layout_p->data_end_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release rom btdm Data [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
/* if the addresses of rom interface btdm .data and .bss are consecutive,
they are registered in the system heap as a piece of memory
*/
if(ets_rom_layout_p->data_end_interface_btdm == ets_rom_layout_p->bss_start_interface_btdm) {
mem_start = (intptr_t)ets_rom_layout_p->data_start_interface_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_interface_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release rom interface btdm [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)ets_rom_layout_p->data_start_interface_btdm;
mem_end = (intptr_t)ets_rom_layout_p->data_end_interface_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release rom interface btdm Data [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)ets_rom_layout_p->bss_start_interface_btdm;
mem_end = (intptr_t)ets_rom_layout_p->bss_end_interface_btdm;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release rom interface btdm BSS [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
}
return ESP_OK;
}
esp_err_t esp_bt_mem_release(esp_bt_mode_t mode)
{
ESP_LOGW(BTDM_LOG_TAG, "%s not implemented, return OK", __func__);
int ret;
intptr_t mem_start, mem_end;
ret = esp_bt_controller_mem_release(mode);
if (ret != ESP_OK) {
return ret;
}
if (mode & ESP_BT_MODE_BLE) {
/* if the addresses of btdm .bss and bt .bss are consecutive,
they are registered in the system heap as a piece of memory
*/
if(_bt_bss_end == _btdm_bss_start) {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_btdm_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release BSS [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)&_bt_bss_start;
mem_end = (intptr_t)&_bt_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release BT BSS [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_btdm_bss_start;
mem_end = (intptr_t)&_btdm_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release BTDM BSS [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
/* if the addresses of btdm .data and bt .data are consecutive,
they are registered in the system heap as a piece of memory
*/
if(_bt_data_end == _btdm_data_start) {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_btdm_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release data [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
} else {
mem_start = (intptr_t)&_bt_data_start;
mem_end = (intptr_t)&_bt_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release BT Data [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_btdm_data_start;
mem_end = (intptr_t)&_btdm_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release BTDM Data [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
mem_start = (intptr_t)&_nimble_bss_start;
mem_end = (intptr_t)&_nimble_bss_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release NimBLE BSS [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
mem_start = (intptr_t)&_nimble_data_start;
mem_end = (intptr_t)&_nimble_data_end;
if (mem_start != mem_end) {
ESP_LOGD(BT_LOG_TAG, "Release NimBLE Data [0x%08x] - [0x%08x], len %d", mem_start, mem_end, mem_end - mem_start);
ESP_ERROR_CHECK(try_heap_caps_add_region(mem_start, mem_end));
}
}
return ESP_OK;
}
@@ -893,19 +1108,13 @@ static esp_err_t try_heap_caps_add_region(intptr_t start, intptr_t end)
* is too small to fit a heap. This cannot be termed as a fatal error and hence
* we replace it by ESP_OK
*/
if (ret == ESP_ERR_INVALID_SIZE) {
return ESP_OK;
}
return ret;
}
// release wifi and coex memory, free about 720 bytes,
void esp_release_wifi_and_coex_mem(void)
{
ESP_ERROR_CHECK(try_heap_caps_add_region((intptr_t)ets_rom_layout_p->dram_start_coexist, (intptr_t)ets_rom_layout_p->dram_end_pp));
ESP_ERROR_CHECK(try_heap_caps_add_region((intptr_t)ets_rom_layout_p->data_start_interface_coexist,(intptr_t)ets_rom_layout_p->bss_end_interface_pp));
}
#if CONFIG_MAC_BB_PD
static void IRAM_ATTR btdm_mac_bb_power_down_cb(void)
{
@@ -938,25 +1147,25 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
if (cfg->controller_task_prio != ESP_TASK_BT_CONTROLLER_PRIO
|| cfg->controller_task_stack_size < ESP_TASK_BT_CONTROLLER_STACK) {
ESP_LOGE(BTDM_LOG_TAG, "Invalid controller task prioriy or stack size");
ESP_LOGE(BT_LOG_TAG, "Invalid controller task prioriy or stack size");
return ESP_ERR_INVALID_ARG;
}
if (cfg->bluetooth_mode != ESP_BT_MODE_BLE) {
ESP_LOGE(BTDM_LOG_TAG, "%s controller only support BLE only mode", __func__);
ESP_LOGE(BT_LOG_TAG, "%s controller only support BLE only mode", __func__);
return ESP_ERR_NOT_SUPPORTED;
}
if (cfg->bluetooth_mode & ESP_BT_MODE_BLE) {
if ((cfg->ble_max_act <= 0) || (cfg->ble_max_act > BT_CTRL_BLE_MAX_ACT_LIMIT)) {
ESP_LOGE(BTDM_LOG_TAG, "Invalid value of ble_max_act");
ESP_LOGE(BT_LOG_TAG, "Invalid value of ble_max_act");
return ESP_ERR_INVALID_ARG;
}
}
if (cfg->sleep_mode == ESP_BT_SLEEP_MODE_1) {
if (cfg->sleep_clock == ESP_BT_SLEEP_CLOCK_NONE) {
ESP_LOGE(BTDM_LOG_TAG, "SLEEP_MODE_1 enabled but sleep clock not configured");
ESP_LOGE(BT_LOG_TAG, "SLEEP_MODE_1 enabled but sleep clock not configured");
return ESP_ERR_INVALID_ARG;
}
}
@@ -964,12 +1173,10 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
// overwrite some parameters
cfg->magic = ESP_BT_CTRL_CONFIG_MAGIC_VAL;
sdk_config_extend_set_pll_track(false);
#if CONFIG_MAC_BB_PD
esp_mac_bb_pd_mem_init();
#endif
esp_phy_pd_mem_init();
esp_phy_modem_init();
esp_bt_power_domain_on();
btdm_controller_mem_init();
@@ -996,7 +1203,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_ERR_INVALID_ARG;
}
ESP_LOGI(BTDM_LOG_TAG, "BT controller compile version [%s]", btdm_controller_get_compile_version());
ESP_LOGI(BT_LOG_TAG, "BT controller compile version [%s]", btdm_controller_get_compile_version());
// init low-power control resources
do {
@@ -1047,19 +1254,19 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
btdm_lpcycle_us = 2 << (btdm_lpcycle_us_frac);
// set default bluetooth sleep clock source
s_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_XTAL; // set default value
s_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_XTAL; // set default value
#if CONFIG_BT_CTRL_LPCLK_SEL_EXT_32K_XTAL
// check whether or not EXT_CRYS is working
if (rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_32K_XTAL) {
s_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_XTAL32K; // External 32 kHz XTAL
} else {
ESP_LOGW(BTDM_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock.");
ESP_LOGW(BT_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock");
#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
s_lp_cntl.no_light_sleep = 1;
#endif
}
#elif (CONFIG_BT_CTRL_LPCLK_SEL_MAIN_XTAL)
ESP_LOGI(BTDM_LOG_TAG, "Bluetooth will use main XTAL as Bluetooth sleep clock.");
ESP_LOGI(BT_LOG_TAG, "Bluetooth will use main XTAL as Bluetooth sleep clock.");
#if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
s_lp_cntl.no_light_sleep = 1;
#endif
@@ -1067,10 +1274,10 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
// check whether or not internal 150 kHz RC oscillator is working
if (rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_RTC) {
s_lp_cntl.lpclk_sel = BTDM_LPCLK_SEL_RTC_SLOW; // Internal 150 kHz RC oscillator
ESP_LOGW(BTDM_LOG_TAG, "Internal 150kHz RC osciallator. The accuracy of this clock is a lot larger than 500ppm which is "
ESP_LOGW(BT_LOG_TAG, "Internal 150kHz RC osciallator. The accuracy of this clock is a lot larger than 500ppm which is "
"required in Bluetooth communication, so don't select this option in scenarios such as BLE connection state.");
} else {
ESP_LOGW(BTDM_LOG_TAG, "Internal 150kHz RC oscillator not detected.");
ESP_LOGW(BT_LOG_TAG, "Internal 150kHz RC oscillator not detected.");
assert(0);
}
#endif
@@ -1115,7 +1322,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
err = ESP_ERR_NO_MEM;
goto error;
}
ESP_LOGW(BTDM_LOG_TAG, "Light sleep mode will not be able to apply when bluetooth is enabled.");
ESP_LOGW(BT_LOG_TAG, "light sleep mode will not be able to apply when bluetooth is enabled.");
}
if ((err = esp_pm_lock_create(ESP_PM_APB_FREQ_MAX, 0, "bt", &s_pm_lock)) != ESP_OK) {
err = ESP_ERR_NO_MEM;
@@ -1147,31 +1354,36 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
return ESP_OK;
error:
bt_controller_deinit_internal();
return err;
}
esp_err_t esp_bt_controller_deinit(void)
{
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_INITED) {
return ESP_ERR_INVALID_STATE;
}
btdm_controller_deinit();
bt_controller_deinit_internal();
return ESP_OK;
}
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 {
// deinit low power control resources
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
if (s_light_sleep_pm_lock != NULL) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
}
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
s_lp_stat.pm_lock_released = 0;
}
#endif
if (s_lp_cntl.wakeup_timer_required && s_btdm_slp_tmr != NULL) {
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
#if CONFIG_MAC_BB_PD
if (s_lp_cntl.mac_bb_pd) {
@@ -1179,6 +1391,32 @@ error:
s_lp_cntl.mac_bb_pd = 0;
}
#endif
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
if (s_light_sleep_pm_lock != NULL) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
}
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
s_lp_stat.pm_lock_released = 0;
}
#endif
if (s_lp_cntl.wakeup_timer_required) {
if (s_lp_stat.wakeup_timer_started) {
esp_timer_stop(s_btdm_slp_tmr);
}
s_lp_stat.wakeup_timer_started = 0;
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
if (s_lp_cntl.enable) {
btdm_vnd_offload_task_deregister(BTDM_VND_OL_SIG_WAKEUP_TMR);
if (s_wakeup_req_sem != NULL) {
@@ -1206,107 +1444,26 @@ error:
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
if (osi_funcs_p != NULL) {
free(osi_funcs_p);
osi_funcs_p = NULL;
}
return err;
}
esp_err_t esp_bt_controller_deinit(void)
{
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_INITED) {
return ESP_ERR_INVALID_STATE;
}
btdm_controller_deinit();
periph_module_disable(PERIPH_BT_MODULE);
if (s_lp_stat.phy_enabled) {
esp_phy_disable();
s_lp_stat.phy_enabled = 0;
} else {
assert(0);
}
// deinit low power control resources
do {
#if CONFIG_MAC_BB_PD
btdm_deep_sleep_mem_deinit();
#endif
#ifdef CONFIG_PM_ENABLE
if (s_lp_cntl.no_light_sleep) {
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
s_lp_stat.pm_lock_released = 0;
#endif
if (s_lp_cntl.wakeup_timer_required) {
if (s_lp_stat.wakeup_timer_started) {
esp_timer_stop(s_btdm_slp_tmr);
}
s_lp_stat.wakeup_timer_started = 0;
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
if (s_lp_cntl.enable) {
btdm_vnd_offload_task_deregister(BTDM_VND_OL_SIG_WAKEUP_TMR);
semphr_delete_wrapper(s_wakeup_req_sem);
s_wakeup_req_sem = NULL;
}
if (s_lp_cntl.lpclk_sel == BTDM_LPCLK_SEL_XTAL) {
#ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
if (s_lp_cntl.main_xtal_pu) {
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_OFF));
s_lp_cntl.main_xtal_pu = 0;
}
#endif
btdm_lpclk_select_src(BTDM_LPCLK_SEL_RTC_SLOW);
btdm_lpclk_set_div(0);
#if CONFIG_SW_COEXIST_ENABLE
coex_update_lpclk_interval();
#endif
}
btdm_lpcycle_us = 0;
} while (0);
#if CONFIG_MAC_BB_PD
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
#endif
/* Fix the issue caused by the power off the bt power domain.
* This issue is only on ESP32C3.
*/
phy_init_flag();
esp_bt_power_domain_off();
#if CONFIG_MAC_BB_PD
esp_mac_bb_pd_mem_deinit();
#endif
esp_phy_pd_mem_deinit();
esp_phy_modem_deinit();
free(osi_funcs_p);
osi_funcs_p = NULL;
if (osi_funcs_p != NULL) {
free(osi_funcs_p);
osi_funcs_p = NULL;
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_IDLE;
return ESP_OK;
}
esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
{
int ret = ESP_OK;
esp_err_t ret = ESP_OK;
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_INITED) {
return ESP_ERR_INVALID_STATE;
@@ -1314,7 +1471,7 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
//As the history reason, mode should be equal to the mode which set in esp_bt_controller_init()
if (mode != btdm_controller_get_mode()) {
ESP_LOGE(BTDM_LOG_TAG, "invalid mode %d, controller support mode is %d", mode, btdm_controller_get_mode());
ESP_LOGE(BT_LOG_TAG, "invalid mode %d, controller support mode is %d", mode, btdm_controller_get_mode());
return ESP_ERR_INVALID_ARG;
}
@@ -1361,6 +1518,9 @@ error:
#endif
} while (0);
#if CONFIG_SW_COEXIST_ENABLE
coex_disable();
#endif
return ret;
}

View File

@@ -1,431 +1 @@
config BT_CTRL_MODE_EFF
int
default 1
config BT_CTRL_BLE_MAX_ACT
int "BLE Max Instances"
default 10
range 1 10
help
BLE maximum instances of bluetooth controller.
config BT_CTRL_BLE_MAX_ACT_EFF
int
default BT_CTRL_BLE_MAX_ACT
default 0
config BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB
int "BLE static ACL TX buffer numbers"
range 0 12
default 0
help
BLE ACL buffer have two methods to be allocated. One is persistent allocating
(alloate when controller initialise, never free until controller de-initialise)
another is dynamically allocating (allocate before TX and free after TX).
choice BT_CTRL_PINNED_TO_CORE_CHOICE
prompt "The cpu core which bluetooth controller run"
depends on !FREERTOS_UNICORE
help
Specify the cpu core to run bluetooth controller.
Can not specify no-affinity.
config BT_CTRL_PINNED_TO_CORE_0
bool "Core 0 (PRO CPU)"
config BT_CTRL_PINNED_TO_CORE_1
bool "Core 1 (APP CPU)"
depends on !FREERTOS_UNICORE
endchoice
config BT_CTRL_PINNED_TO_CORE
int
default 0 if BT_CTRL_PINNED_TO_CORE_0
default 1 if BT_CTRL_PINNED_TO_CORE_1
default 0
choice BT_CTRL_HCI_MODE_CHOICE
prompt "HCI mode"
help
Specify HCI mode as VHCI or UART(H4)
config BT_CTRL_HCI_MODE_VHCI
bool "VHCI"
help
Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32S3, too.
config BT_CTRL_HCI_MODE_UART_H4
bool "UART(H4)"
help
If use external bluetooth host which run on other hardware and use UART as the HCI interface,
choose this option.
endchoice
config BT_CTRL_HCI_TL
int
default 0 if BT_CTRL_HCI_MODE_UART_H4
default 1 if BT_CTRL_HCI_M0DE_VHCI
default 1
help
HCI mode as VHCI or UART(H4)
config BT_CTRL_ADV_DUP_FILT_MAX
int "The maxinum number of 5.0 extend duplicate scan filter"
range 1 500
default 30
help
The maxinum number of suplicate scan filter
config BT_CTRL_HW_CCA
bool "HW CCA check enable"
default n
help
It enables HW CCA feature in controller
config BT_CTRL_HW_CCA_VAL
int "CCA threshold value"
range 20 60
default 20
help
It is the threshold value of HW CCA, if the value is 30, it means CCA threshold is -30 dBm.
config BT_CTRL_HW_CCA_EFF
int
default 1 if BT_CTRL_HW_CCA
default 0
help
If other devices are sending packets in the air and the signal is strong,
the packet hw to be sent this time is cancelled.
choice BT_CTRL_CE_LENGTH_TYPE
prompt "Connection event length determination method"
help
Specify connection event length determination
config BT_CTRL_CE_LENGTH_TYPE_ORIG
bool "ORIGINAL"
config BT_CTRL_CE_LENGTH_TYPE_CE
bool "Use CE parameter for HCI command"
config BT_CTRL_CE_LENGTH_TYPE_SD
bool "Use Espressif self-defined method"
endchoice
config BT_CTRL_CE_LENGTH_TYPE_EFF
int
default 0 if BT_CTRL_CE_LENGTH_TYPE_ORIG
default 1 if BT_CTRL_CE_LENGTH_TYPE_CE
default 2 if BT_CTRL_CE_LENGTH_TYPE_SD
choice BT_CTRL_TX_ANTENNA_INDEX
prompt "default Tx anntena used"
help
Specify default Tx antenna used for bluetooth
config BT_CTRL_TX_ANTENNA_INDEX_0
bool "Antenna 0"
config BT_CTRL_TX_ANTENNA_INDEX_1
bool "Antenna 1"
endchoice
config BT_CTRL_TX_ANTENNA_INDEX_EFF
int
default 0 if BT_CTRL_TX_ANTENNA_INDEX_0
default 1 if BT_CTRL_TX_ANTENNA_INDEX_1
choice BT_CTRL_RX_ANTENNA_INDEX
prompt "default Rx anntena used"
help
Specify default Rx antenna used for bluetooth
config BT_CTRL_RX_ANTENNA_INDEX_0
bool "Antenna 0"
config BT_CTRL_RX_ANTENNA_INDEX_1
bool "Antenna 1"
endchoice
config BT_CTRL_RX_ANTENNA_INDEX_EFF
int
default 0 if BT_CTRL_RX_ANTENNA_INDEX_0
default 1 if BT_CTRL_RX_ANTENNA_INDEX_1
choice BT_CTRL_DFT_TX_POWER_LEVEL
prompt "BLE default Tx power level"
default BT_CTRL_DFT_TX_POWER_LEVEL_P3
help
Specify default Tx power level
config BT_CTRL_DFT_TX_POWER_LEVEL_N24
bool "-24dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N21
bool "-21dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N18
bool "-18dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N15
bool "-15dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N12
bool "-12dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N9
bool "-9dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N6
bool "-6dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N3
bool "-3dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_N0
bool "0dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P3
bool "+3dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P6
bool "+6dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P9
bool "+9dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P12
bool "+12dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P15
bool "+15dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P18
bool "+18dBm"
config BT_CTRL_DFT_TX_POWER_LEVEL_P18
bool "+21dBm"
endchoice
config BT_CTRL_DFT_TX_POWER_LEVEL_EFF
int
default 0 if BT_CTRL_DFT_TX_POWER_LEVEL_N24
default 1 if BT_CTRL_DFT_TX_POWER_LEVEL_N21
default 2 if BT_CTRL_DFT_TX_POWER_LEVEL_N18
default 3 if BT_CTRL_DFT_TX_POWER_LEVEL_N15
default 4 if BT_CTRL_DFT_TX_POWER_LEVEL_N12
default 5 if BT_CTRL_DFT_TX_POWER_LEVEL_N9
default 6 if BT_CTRL_DFT_TX_POWER_LEVEL_N6
default 7 if BT_CTRL_DFT_TX_POWER_LEVEL_N3
default 8 if BT_CTRL_DFT_TX_POWER_LEVEL_N0
default 9 if BT_CTRL_DFT_TX_POWER_LEVEL_P3
default 10 if BT_CTRL_DFT_TX_POWER_LEVEL_P6
default 11 if BT_CTRL_DFT_TX_POWER_LEVEL_P9
default 12 if BT_CTRL_DFT_TX_POWER_LEVEL_P12
default 13 if BT_CTRL_DFT_TX_POWER_LEVEL_P15
default 14 if BT_CTRL_DFT_TX_POWER_LEVEL_P18
default 15 if BT_CTRL_DFT_TX_POWER_LEVEL_P21
default 0
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
bool "BLE adv report flow control supported"
default y
help
The function is mainly used to enable flow control for advertising reports. When it is enabled,
advertising reports will be discarded by the controller if the number of unprocessed advertising
reports exceeds the size of BLE adv report flow control.
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM
int "BLE adv report flow control number"
depends on BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
range 50 1000
default 100
help
The number of unprocessed advertising report that bluetooth host can save.If you set
`BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a small value, this may cause adv packets lost.
If you set `BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a large value, bluetooth host may cache a
lot of adv packets and this may cause system memory run out. For example, if you set
it to 50, the maximum memory consumed by host is 35 * 50 bytes. Please set
`BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` according to your system free memory and handle adv
packets as fast as possible, otherwise it will cause adv packets lost.
config BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD
int "BLE adv lost event threshold value"
depends on BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
range 1 1000
default 20
help
When adv report flow control is enabled, The ADV lost event will be generated when the number
of ADV packets lost in the controller reaches this threshold. It is better to set a larger value.
If you set `BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more.
config BT_CTRL_BLE_SCAN_DUPL
bool "BLE Scan Duplicate Options"
default y
help
This select enables parameters setting of BLE scan duplicate.
choice BT_CTRL_SCAN_DUPL_TYPE
prompt "Scan Duplicate Type"
default BT_CTRL_SCAN_DUPL_TYPE_DEVICE
depends on BT_CTRL_BLE_SCAN_DUPL
help
Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use
advertiser address filtering. The adv packet of the same address is only allowed to be reported once.
Another way is "Scan Duplicate By Device Address And Advertising Data". This way is to use advertising
data and device address filtering. All different adv packets with the same address are allowed to be
reported. The last way is "Scan Duplicate By Advertising Data". 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.
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
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.
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.
endchoice
config BT_CTRL_SCAN_DUPL_TYPE
int
depends on BT_CTRL_BLE_SCAN_DUPL
default 0 if BT_CTRL_SCAN_DUPL_TYPE_DEVICE
default 1 if BT_CTRL_SCAN_DUPL_TYPE_DATA
default 2 if BT_CTRL_SCAN_DUPL_TYPE_DATA_DEVICE
default 0
config BT_CTRL_SCAN_DUPL_CACHE_SIZE
int "Maximum number of devices in scan duplicate filter"
depends on BT_CTRL_BLE_SCAN_DUPL
range 10 1000
default 100
help
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BT_CTRL_BLE_MESH_SCAN_DUPL_EN
bool "Special duplicate scan mechanism for BLE Mesh scan"
depends on BT_CTRL_BLE_SCAN_DUPL
default n
help
This enables the BLE scan duplicate for special BLE Mesh scan.
config BT_CTRL_MESH_DUPL_SCAN_CACHE_SIZE
int "Maximum number of Mesh adv packets in scan duplicate filter"
depends on BT_CTRL_BLE_MESH_SCAN_DUPL_EN
range 10 1000
default 100
help
Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
choice BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM
prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection"
default BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS
depends on ESP32_WIFI_SW_COEXIST_ENABLE
help
When using PHY-Coded in BLE connection, limitation on max tx/rx time can be applied to
better avoid dramatic performance deterioration of Wi-Fi.
config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EN
bool "Force Enable"
help
Always enable the limitation on max tx/rx time for Coded-PHY connection
config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS
bool "Force Disable"
help
Disable the limitation on max tx/rx time for Coded-PHY connection
endchoice
config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF
int
default 0 if (!ESP32_WIFI_SW_COEXIST_ENABLE)
default 1 if BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EN
default 0 if BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS
menu "MODEM SLEEP Options"
visible if BT_ENABLED
config BT_CTRL_MODEM_SLEEP
bool "Bluetooth modem sleep"
depends on !BT_CTRL_HCI_MODE_UART_H4
default n
help
Enable/disable bluetooth controller low power mode.
Modem sleep is not supported to be used with UART HCI.
config BT_CTRL_MODEM_SLEEP_MODE_1
bool "Bluetooth Modem sleep Mode 1"
depends on BT_CTRL_MODEM_SLEEP
default y
help
Mode 1 is the currently supported sleep mode. In this mode,
bluetooth controller sleeps between and BLE events. A low
power clock is used to maintain bluetooth reference clock.
choice BT_CTRL_LOW_POWER_CLOCK
prompt "Bluetooth low power clock"
depends on BT_CTRL_MODEM_SLEEP_MODE_1
help
Select the low power clock source for bluetooth controller
config BT_CTRL_LPCLK_SEL_MAIN_XTAL
bool "Main crystal"
help
Main crystal can be used as low power clock for bluetooth modem sleep. If this option is
selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, and
bluetooth can work under light sleep enabled. Main crystal has a relatively better performance
than other bluetooth low power clock sources.
config BT_CTRL_LPCLK_SEL_EXT_32K_XTAL
bool "External 32kHz crystal"
depends on 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
modem sleep to be used with both DFS and light sleep.
config BT_CTRL_LPCLK_SEL_RTC_SLOW
bool "Internal 150kHz RC oscillator"
depends on 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.
endchoice
config BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP
bool "power up main XTAL during light sleep"
depends on (BT_CTRL_LPCLK_SEL_MAIN_XTAL || BT_CTRL_LPCLK_SEL_EXT_32K_XTAL) && FREERTOS_USE_TICKLESS_IDLE
default n
help
If this option is selected, the main crystal will power up during light sleep when the low power clock
selects an external 32kHz crystal but the external 32kHz crystal does not exist or the low power clock
selects the main crystal.
endmenu
config BT_CTRL_SLEEP_MODE_EFF
int
default 1 if BT_CTRL_MODEM_SLEEP_MODE_1
default 0
config BT_CTRL_SLEEP_CLOCK_EFF
int
default 1 if BT_CTRL_LPCLK_SEL_MAIN_XTAL
default 2 if BT_CTRL_LPCLK_SEL_EXT_32K_XTAL
default 3 if BT_CTRL_LPCLK_SEL_RTC_SLOW
default 0
config BT_CTRL_HCI_TL_EFF
int
default 0 if BT_CTRL_HCI_MODE_UART_H4
default 1 if BT_CTRL_HCI_M0DE_VHCI
default 1
config BT_CTRL_AGC_RECORRECT_EN
bool "Enable HW AGC recorrect"
default n
help
Enable uncoded phy AGC recorrect
config BT_CTRL_CODED_AGC_RECORRECT_EN
bool "Enable coded phy AGC recorrect"
depends on BT_CTRL_AGC_RECORRECT_EN
default n
help
Enable coded phy AGC recorrect
source "$IDF_PATH/components/bt/controller/esp32c3/Kconfig.in"

File diff suppressed because it is too large Load Diff

View File

@@ -585,6 +585,21 @@ if BLE_MESH
stored to flash. E.g. the default value of 4 means that the
state is saved every 24 hours (96 / 4).
config BLE_MESH_IVU_RECOVERY_IVI
bool "Recovery the IV index when the latest whole IV update procedure is missed"
default n
help
According to Section 3.10.5 of Mesh Specification v1.0.1.
If a node in Normal Operation receives a Secure Network beacon with an IV index
equal to the last known IV index+1 and the IV Update Flag set to 0, the node may
update its IV without going to the IV Update in Progress state, or it may initiate
an IV Index Recovery procedure (Section 3.10.6), or it may ignore the Secure
Network beacon. The node makes the choice depending on the time since last IV
update and the likelihood that the node has missed the Secure Network beacons
with the IV update Flag.
When the above situation is encountered, this option can be used to decide whether
to perform the IV index recovery procedure.
config BLE_MESH_TX_SEG_MSG_COUNT
int "Maximum number of simultaneous outgoing segmented messages"
default 1
@@ -1117,6 +1132,19 @@ if BLE_MESH
This option adds extra self-tests which are run every time BLE Mesh
networking is initialized.
config BLE_MESH_BQB_TEST
bool "Enable BLE Mesh specific internal test"
default n
help
This option is used to enable some internal functions for auto-pts test.
config BLE_MESH_BQB_TEST_LOG
bool
depends on BLE_MESH_BQB_TEST
default y
help
This option is used to enable the log of auto-pts test.
if BLE_MESH_SELF_TEST
config BLE_MESH_TEST_AUTO_ENTER_NETWORK

View File

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

View File

@@ -47,7 +47,7 @@ esp_err_t esp_ble_mesh_init(esp_ble_mesh_prov_t *prov, esp_ble_mesh_comp_t *comp
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_MESH_INIT;
if (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL) != BT_STATUS_SUCCESS) {
if (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL) != BT_STATUS_SUCCESS) {
vSemaphoreDelete(semaphore);
BT_ERR("Failed to start mesh init");
return ESP_FAIL;
@@ -79,7 +79,7 @@ esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_DEINIT_MESH;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_DEINIT */

View File

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

View File

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

View File

@@ -101,8 +101,8 @@ static esp_err_t ble_mesh_model_send_msg(esp_ble_mesh_model_t *model,
arg.model_send.msg_timeout = msg_timeout;
}
status = (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
status = (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy,
btc_ble_mesh_model_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
bt_mesh_free(msg_data);
@@ -236,8 +236,8 @@ esp_err_t esp_ble_mesh_server_model_update_state(esp_ble_mesh_model_t *model,
msg.pid = BTC_PID_MODEL;
msg.act = BTC_BLE_MESH_ACT_SERVER_MODEL_UPDATE_STATE;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy,
btc_ble_mesh_model_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SERVER_MODEL */
@@ -251,7 +251,7 @@ esp_err_t esp_ble_mesh_node_local_reset(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_NODE_RESET;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#if (CONFIG_BLE_MESH_PROVISIONER)
@@ -275,7 +275,7 @@ esp_err_t esp_ble_mesh_provisioner_set_node_name(uint16_t index, const char *nam
memset(arg.set_node_name.name, 0, sizeof(arg.set_node_name.name));
strncpy(arg.set_node_name.name, name, ESP_BLE_MESH_NODE_NAME_MAX_LEN);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -312,8 +312,8 @@ esp_err_t esp_ble_mesh_provisioner_store_node_comp_data(uint16_t unicast_addr,
arg.store_node_comp_data.unicast_addr = unicast_addr;
arg.store_node_comp_data.length = length;
arg.store_node_comp_data.data = data;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy,
btc_ble_mesh_prov_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_ble_mesh_node_t *esp_ble_mesh_provisioner_get_node_with_uuid(const uint8_t uuid[16])
@@ -370,7 +370,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_node_with_uuid(const uint8_t uuid[16])
memcpy(arg.delete_node_with_uuid.uuid, uuid, 16);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -391,7 +391,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_node_with_addr(uint16_t unicast_addr)
arg.delete_node_with_addr.unicast_addr = unicast_addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -414,7 +414,7 @@ esp_err_t esp_ble_mesh_provisioner_add_local_app_key(const uint8_t app_key[16],
} else {
bzero(arg.add_local_app_key.app_key, 16);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -437,7 +437,7 @@ esp_err_t esp_ble_mesh_provisioner_update_local_app_key(const uint8_t app_key[16
memcpy(arg.update_local_app_key.app_key, app_key, 16);
arg.update_local_app_key.net_idx = net_idx;
arg.update_local_app_key.app_idx = app_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -466,7 +466,7 @@ esp_err_t esp_ble_mesh_provisioner_bind_app_key_to_local_model(uint16_t element_
arg.local_mod_app_bind.app_idx = app_idx;
arg.local_mod_app_bind.model_id = model_id;
arg.local_mod_app_bind.cid = company_id;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -491,7 +491,7 @@ esp_err_t esp_ble_mesh_provisioner_add_local_net_key(const uint8_t net_key[16],
} else {
bzero(arg.add_local_net_key.net_key, 16);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -512,7 +512,7 @@ esp_err_t esp_ble_mesh_provisioner_update_local_net_key(const uint8_t net_key[16
memcpy(arg.update_local_net_key.net_key, net_key, 16);
arg.update_local_net_key.net_idx = net_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -535,7 +535,7 @@ esp_err_t esp_ble_mesh_provisioner_recv_heartbeat(bool enable)
arg.enable_heartbeat_recv.enable = enable;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -556,7 +556,7 @@ esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_type(uint8_t type)
arg.set_heartbeat_filter_type.type = type;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -585,7 +585,7 @@ esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_info(uint8_t op, esp_ble
arg.set_heartbeat_filter_info.hb_src = info->hb_src;
arg.set_heartbeat_filter_info.hb_dst = info->hb_dst;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_PROVISIONER_RECV_HB */
@@ -602,7 +602,7 @@ esp_err_t esp_ble_mesh_provisioner_direct_erase_settings(void)
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_DIRECT_ERASE_SETTINGS;
return (btc_transfer_context(&msg, NULL, 0, NULL)
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SETTINGS */
@@ -625,7 +625,7 @@ esp_err_t esp_ble_mesh_provisioner_open_settings_with_index(uint8_t index)
arg.open_settings_with_index.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -646,7 +646,7 @@ esp_err_t esp_ble_mesh_provisioner_open_settings_with_uid(const char *uid)
strncpy(arg.open_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -668,7 +668,7 @@ esp_err_t esp_ble_mesh_provisioner_close_settings_with_index(uint8_t index, bool
arg.close_settings_with_index.index = index;
arg.close_settings_with_index.erase = erase;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -690,7 +690,7 @@ esp_err_t esp_ble_mesh_provisioner_close_settings_with_uid(const char *uid, bool
strncpy(arg.close_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
arg.close_settings_with_uid.erase = erase;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -711,7 +711,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_settings_with_index(uint8_t index)
arg.delete_settings_with_index.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -732,7 +732,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_settings_with_uid(const char *uid)
strncpy(arg.delete_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -57,7 +57,7 @@ esp_err_t esp_ble_mesh_node_prov_enable(esp_ble_mesh_prov_bearer_t bearers)
msg.act = BTC_BLE_MESH_ACT_PROV_ENABLE;
arg.node_prov_enable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -77,7 +77,7 @@ esp_err_t esp_ble_mesh_node_prov_disable(esp_ble_mesh_prov_bearer_t bearers)
msg.act = BTC_BLE_MESH_ACT_PROV_DISABLE;
arg.node_prov_disable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -101,7 +101,7 @@ esp_err_t esp_ble_mesh_node_set_oob_pub_key(uint8_t pub_key_x[32], uint8_t pub_k
memcpy(arg.set_oob_pub_key.pub_key_y, pub_key_y, 32);
memcpy(arg.set_oob_pub_key.private_key, private_key, 32);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -121,7 +121,7 @@ esp_err_t esp_ble_mesh_node_input_number(uint32_t number)
msg.act = BTC_BLE_MESH_ACT_INPUT_NUMBER;
arg.input_number.number = number;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -143,7 +143,7 @@ esp_err_t esp_ble_mesh_node_input_string(const char *string)
strncpy(arg.input_string.string, string,
MIN(strlen(string), sizeof(arg.input_string.string)));
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -165,7 +165,7 @@ esp_err_t esp_ble_mesh_set_unprovisioned_device_name(const char *name)
memset(arg.set_device_name.name, 0, sizeof(arg.set_device_name.name));
strncpy(arg.set_device_name.name, name, ESP_BLE_MESH_DEVICE_NAME_MAX_LEN);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -190,7 +190,7 @@ esp_err_t esp_ble_mesh_provisioner_read_oob_pub_key(uint8_t link_idx, uint8_t pu
memcpy(arg.provisioner_read_oob_pub_key.pub_key_x, pub_key_x, 32);
memcpy(arg.provisioner_read_oob_pub_key.pub_key_y, pub_key_y, 32);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -215,7 +215,7 @@ esp_err_t esp_ble_mesh_provisioner_input_string(const char *string, uint8_t link
MIN(strlen(string), sizeof(arg.provisioner_input_str.string)));
arg.provisioner_input_str.link_idx = link_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -237,7 +237,7 @@ esp_err_t esp_ble_mesh_provisioner_input_number(uint32_t number, uint8_t link_id
arg.provisioner_input_num.number = number;
arg.provisioner_input_num.link_idx = link_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -258,7 +258,7 @@ esp_err_t esp_ble_mesh_provisioner_prov_enable(esp_ble_mesh_prov_bearer_t bearer
arg.provisioner_enable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -279,7 +279,7 @@ esp_err_t esp_ble_mesh_provisioner_prov_disable(esp_ble_mesh_prov_bearer_t beare
arg.provisioner_disable.bearers = bearers;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -305,7 +305,7 @@ esp_err_t esp_ble_mesh_provisioner_add_unprov_dev(esp_ble_mesh_unprov_dev_add_t
memcpy(arg.provisioner_dev_add.add_dev.addr, add_dev->addr, sizeof(esp_ble_mesh_bd_addr_t));
memcpy(arg.provisioner_dev_add.add_dev.uuid, add_dev->uuid, 16);
arg.provisioner_dev_add.flags = flags;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -339,7 +339,7 @@ esp_err_t esp_ble_mesh_provisioner_prov_device_with_addr(const uint8_t uuid[16],
arg.provisioner_prov_dev_with_addr.bearer = bearer;
arg.provisioner_prov_dev_with_addr.oob_info = oob_info;
arg.provisioner_prov_dev_with_addr.unicast_addr = unicast_addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -366,7 +366,7 @@ esp_err_t esp_ble_mesh_provisioner_delete_dev(esp_ble_mesh_device_delete_t *del_
} else if (del_dev->flag & DEL_DEV_UUID_FLAG) {
memcpy(arg.provisioner_dev_del.del_dev.uuid, del_dev->uuid, 16);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -392,7 +392,7 @@ esp_err_t esp_ble_mesh_provisioner_set_dev_uuid_match(const uint8_t *match_val,
arg.set_dev_uuid_match.match_len = match_len;
arg.set_dev_uuid_match.offset = offset;
arg.set_dev_uuid_match.prov_after_match = prov_after_match;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -420,7 +420,7 @@ esp_err_t esp_ble_mesh_provisioner_set_prov_data_info(esp_ble_mesh_prov_data_inf
} else if (prov_data_info->flag & PROV_DATA_IV_INDEX_FLAG) {
arg.set_prov_data_info.prov_data.iv_index = prov_data_info->iv_index;
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -441,7 +441,7 @@ esp_err_t esp_ble_mesh_provisioner_set_static_oob_value(const uint8_t *value, ui
arg.set_static_oob_val.length = length;
memcpy(arg.set_static_oob_val.value, value, length);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -461,7 +461,7 @@ esp_err_t esp_ble_mesh_provisioner_set_primary_elem_addr(uint16_t addr)
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_SET_PRIMARY_ELEM_ADDR;
arg.set_primary_elem_addr.addr = addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -497,7 +497,7 @@ esp_err_t esp_ble_mesh_set_fast_prov_info(esp_ble_mesh_fast_prov_info_t *fast_pr
if (fast_prov_info->match_len && fast_prov_info->match_val) {
memcpy(arg.set_fast_prov_info.match_val, fast_prov_info->match_val, fast_prov_info->match_len);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -517,7 +517,7 @@ esp_err_t esp_ble_mesh_set_fast_prov_action(esp_ble_mesh_fast_prov_action_t acti
msg.act = BTC_BLE_MESH_ACT_SET_FAST_PROV_ACTION;
arg.set_fast_prov_action.action = action;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -22,7 +22,7 @@ esp_err_t esp_ble_mesh_proxy_identity_enable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROXY_IDENTITY_ENABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_gatt_enable(void)
@@ -35,7 +35,7 @@ esp_err_t esp_ble_mesh_proxy_gatt_enable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROXY_GATT_ENABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_gatt_disable(void)
@@ -48,7 +48,7 @@ esp_err_t esp_ble_mesh_proxy_gatt_disable(void)
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROXY_GATT_DISABLE;
return (btc_transfer_context(&msg, NULL, 0, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_client_connect(esp_ble_mesh_bd_addr_t addr,
@@ -72,7 +72,7 @@ esp_err_t esp_ble_mesh_proxy_client_connect(esp_ble_mesh_bd_addr_t addr,
arg.proxy_client_connect.addr_type = addr_type;
arg.proxy_client_connect.net_idx = net_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -89,7 +89,7 @@ esp_err_t esp_ble_mesh_proxy_client_disconnect(uint8_t conn_handle)
arg.proxy_client_disconnect.conn_handle = conn_handle;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -113,7 +113,7 @@ esp_err_t esp_ble_mesh_proxy_client_set_filter_type(uint8_t conn_handle, uint16_
arg.proxy_client_set_filter_type.net_idx = net_idx;
arg.proxy_client_set_filter_type.filter_type = filter_type;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -138,8 +138,8 @@ esp_err_t esp_ble_mesh_proxy_client_add_filter_addr(uint8_t conn_handle, uint16_
arg.proxy_client_add_filter_addr.addr_num = addr_num;
arg.proxy_client_add_filter_addr.addr = addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy,
btc_ble_mesh_prov_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_proxy_client_remove_filter_addr(uint8_t conn_handle, uint16_t net_idx,
@@ -163,6 +163,6 @@ esp_err_t esp_ble_mesh_proxy_client_remove_filter_addr(uint8_t conn_handle, uint
arg.proxy_client_remove_filter_addr.addr_num = addr_num;
arg.proxy_client_remove_filter_addr.addr = addr;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), btc_ble_mesh_prov_arg_deep_copy,
btc_ble_mesh_prov_arg_deep_free) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -120,6 +120,52 @@ extern "C" {
#define NET_BUF_SIMPLE_ASSERT(cond)
#endif
#if CONFIG_BLE_MESH_BQB_TEST_LOG
/**
* For example, the test case "MESH/NODE/TNPT/BV-01-C"
* could use BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT, "msg %s", msg)
* to print some message.
*/
enum BLE_MESH_BQB_TEST_LOG_LEVEL {
BLE_MESH_BQB_TEST_LOG_LEVEL_OUTPUT_ALL = 0, /* Output all BQB related test log */
BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE = BIT(0),
BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_PVNR = BIT(1),
BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_CFGCL = BIT(2),
BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_SR = BIT(3),
BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_CL = BIT(4),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_PBADV = BIT(5),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_MPS = BIT(6),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_PROV = BIT(7),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_BCN = BIT(8),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_NET = BIT(9),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_RLY = BIT(10),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT = BIT(11),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_IVU = BIT(12),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_KR = BIT(13),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_FRND_FN = BIT(14),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_FRND_LPN = BIT(15),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_PROX = BIT(16),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_MPXS = BIT(17),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_CFG = BIT(18),
BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_HM = BIT(19),
};
#define BLE_MESH_BQB_TEST_LOG_LEVEL_OUTPUT_NONE 0x000FFFFF
#endif /* CONFIG_BLE_MESH_BQB_TEST_LOG */
#if (CONFIG_BLE_MESH_BQB_TEST_LOG && !CONFIG_BLE_MESH_NO_LOG)
extern bool bt_mesh_bqb_test_flag_check(uint32_t flag_mask);
extern int bt_mesh_bqb_test_flag_set(uint32_t value);
#define BT_BQB(flag_mask, fmt, args...) \
do { \
if (bt_mesh_bqb_test_flag_check(flag_mask)) \
BLE_MESH_PRINT_I("BLE_MESH_BQB", fmt, ## args); \
} while (0)
#else
#define BT_BQB(flag_mask, fmt, args...)
#endif
#ifdef __cplusplus
}
#endif

View File

@@ -7,9 +7,11 @@
*/
#include <string.h>
#include <errno.h>
#include "mesh_types.h"
#include "mesh_util.h"
#include "mesh_trace.h"
const char *bt_hex(const void *buf, size_t len)
{
@@ -42,3 +44,55 @@ void mem_rcopy(uint8_t *dst, uint8_t const *src, uint16_t len)
*dst++ = *--src;
}
}
#ifdef CONFIG_BLE_MESH_BQB_TEST_LOG
enum BLE_MESH_BQB_TEST_FLAG_OP {
BLE_MESH_BQB_TEST_FLAG_OP_GET = 0,
BLE_MESH_BQB_TEST_FLAG_OP_SET,
};
static uint32_t bt_mesh_bqb_test_flag(uint8_t op, uint32_t value)
{
static uint32_t bqb_log_flag = 0;
switch (op) {
case BLE_MESH_BQB_TEST_FLAG_OP_GET:
break;
case BLE_MESH_BQB_TEST_FLAG_OP_SET:
bqb_log_flag = value;
break;
default:
BT_ERR("Unknown BQB test flag opcode 0x%02x", op);
break;
}
return bqb_log_flag;
}
uint32_t bt_mesh_bqb_test_flag_get(void)
{
return bt_mesh_bqb_test_flag(BLE_MESH_BQB_TEST_FLAG_OP_GET, 0);
}
int bt_mesh_bqb_test_flag_set(uint32_t flag_mask)
{
if (flag_mask > BLE_MESH_BQB_TEST_LOG_LEVEL_OUTPUT_NONE) {
BT_ERR("Invalid BQB test flag mask 0x%08x", flag_mask);
return -EINVAL;
}
return (bt_mesh_bqb_test_flag(BLE_MESH_BQB_TEST_FLAG_OP_SET, flag_mask) == flag_mask) ? 0 : -EINVAL;
}
bool bt_mesh_bqb_test_flag_check(uint32_t flag_mask)
{
if (flag_mask > BLE_MESH_BQB_TEST_LOG_LEVEL_OUTPUT_NONE) {
BT_ERR("Invalid BQB test flag mask 0x%08x", flag_mask);
return false;
}
return ((bt_mesh_bqb_test_flag_get() & flag_mask) == flag_mask);
}
#endif /* CONFIG_BLE_MESH_BQB_TEST_LOG */

View File

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

View File

@@ -1464,6 +1464,9 @@ static void mod_sub_add(struct bt_mesh_model *model,
goto send_status;
}
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
"SubGroupAddr: 0x%x", sub_addr);
for (i = 0; i < ARRAY_SIZE(mod->groups); i++) {
if (mod->groups[i] == BLE_MESH_ADDR_UNASSIGNED) {
mod->groups[i] = sub_addr;
@@ -1865,6 +1868,9 @@ static void mod_sub_va_add(struct bt_mesh_model *model,
goto send_status;
}
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
"SubVirtualAddr: 0x%x", sub_addr);
for (i = 0; i < ARRAY_SIZE(mod->groups); i++) {
if (mod->groups[i] == BLE_MESH_ADDR_UNASSIGNED) {
mod->groups[i] = sub_addr;

View File

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

View File

@@ -613,14 +613,14 @@ int bt_mesh_provisioner_enable(bt_mesh_prov_bearer_t bearers)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
if (IS_ENABLED(CONFIG_BLE_MESH_PB_ADV) &&
(bearers & BLE_MESH_PROV_ADV)) {
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_BEACON, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON, NULL);
}
if (IS_ENABLED(CONFIG_BLE_MESH_PB_GATT) &&
(bearers & BLE_MESH_PROV_GATT)) {
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_PROV_ADV, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROV_ADV, NULL);
}
#endif
@@ -668,8 +668,8 @@ int bt_mesh_provisioner_disable(bt_mesh_prov_bearer_t bearers)
(bearers & BLE_MESH_PROV_GATT)) {
bt_mesh_proxy_client_prov_disable();
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_PROV_ADV, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_PROV_ADV, NULL);
#endif
}
@@ -680,8 +680,8 @@ int bt_mesh_provisioner_disable(bt_mesh_prov_bearer_t bearers)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
if (IS_ENABLED(CONFIG_BLE_MESH_PB_ADV) &&
(enable & BLE_MESH_PROV_ADV)) {
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_BEACON, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON, NULL);
}
#endif

View File

@@ -673,7 +673,11 @@ bool bt_mesh_net_iv_update(uint32_t iv_index, bool iv_update)
return false;
}
if (iv_index > bt_mesh.iv_index + 1) {
if ((iv_index > bt_mesh.iv_index + 1)
#if CONFIG_BLE_MESH_IVU_RECOVERY_IVI
|| (iv_index == bt_mesh.iv_index + 1 && !iv_update)
#endif
) {
BT_WARN("Performing IV Index Recovery");
(void)memset(bt_mesh.rpl, 0, sizeof(bt_mesh.rpl));
bt_mesh.iv_index = iv_index;
@@ -681,10 +685,12 @@ bool bt_mesh_net_iv_update(uint32_t iv_index, bool iv_update)
goto do_update;
}
#if !CONFIG_BLE_MESH_IVU_RECOVERY_IVI
if (iv_index == bt_mesh.iv_index + 1 && !iv_update) {
BT_WARN("Ignoring new index in normal mode");
return false;
}
#endif
if (!iv_update) {
/* Nothing to do */
@@ -1381,10 +1387,12 @@ int bt_mesh_net_decode(struct net_buf_simple *data, enum bt_mesh_net_if net_if,
}
/* For case MESH/NODE/RLY/BV-01-C, even the DST is RFU, it needs to be forwarded. */
#if !CONFIG_BLE_MESH_BQB_TEST
if (BLE_MESH_ADDR_IS_RFU(rx->ctx.recv_dst)) {
BT_ERR("Destination address is RFU; dropping packet 0x%02x", rx->ctx.recv_dst);
return -EBADMSG;
}
#endif
if (net_if != BLE_MESH_NET_IF_LOCAL && bt_mesh_elem_find(rx->ctx.addr)) {
BT_DBG("Dropping locally originated packet");
@@ -1464,6 +1472,11 @@ void bt_mesh_net_recv(struct net_buf_simple *data, int8_t rssi,
/* Save the state so the buffer can later be relayed */
net_buf_simple_save(&buf, &state);
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_NET,
"\nNetRecv: ctl: %d, src: %d, dst: %d, ttl: %d, data: 0x%s",
CTL(buf.data), SRC(buf.data), DST(buf.data), TTL(buf.data),
bt_hex(buf.data + BLE_MESH_NET_HDR_LEN, buf.len - BLE_MESH_NET_HDR_LEN));
rx.local_match = (bt_mesh_fixed_group_match(rx.ctx.recv_dst) ||
bt_mesh_elem_find(rx.ctx.recv_dst));
@@ -1544,8 +1557,8 @@ void bt_mesh_net_start(void)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Add Mesh beacon type (Secure Network Beacon) to the exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_BEACON, NULL);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_BEACON, NULL);
#endif
if (IS_ENABLED(CONFIG_BLE_MESH_LOW_POWER)) {

View File

@@ -311,8 +311,8 @@ static void reset_adv_link(void)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Remove the link id from exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link.id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link.id);
#endif
reset_state();
@@ -1380,8 +1380,8 @@ static void link_open(struct prov_rx *rx, struct net_buf_simple *buf)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Add the link id into exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link.id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link.id);
#endif
bearer_ctl_send(LINK_ACK, NULL, 0);
@@ -1837,8 +1837,8 @@ int bt_mesh_prov_deinit(void)
k_delayed_work_free(&link.tx.retransmit);
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Remove the link id from exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link.id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link.id);
#endif /* CONFIG_BLE_MESH_USE_DUPLICATE_SCAN */
#endif /* CONFIG_BLE_MESH_PB_ADV */

View File

@@ -1547,13 +1547,8 @@ int bt_mesh_provisioner_store_node_info(struct bt_mesh_node *node)
#define HEARTBEAT_FILTER_ADD 0x00
#define HEARTBEAT_FILTER_REMOVE 0x01
#define HEARTBEAT_FILTER_WITH_SRC BIT(0)
#define HEARTBEAT_FILTER_WITH_DST BIT(1)
#define HEARTBEAT_FILTER_WITH_BOTH (BIT(1) | BIT(0))
static struct heartbeat_recv {
struct heartbeat_filter {
uint8_t type; /* Indicate if using src or dst or both to filter heartbeat messages */
uint16_t src; /* Heartbeat source address (unicast address) */
uint16_t dst; /* Heartbeat destination address (unicast address or group address) */
} filter[CONFIG_BLE_MESH_PROVISIONER_RECV_HB_FILTER_SIZE];
@@ -1590,19 +1585,6 @@ int bt_mesh_provisioner_set_heartbeat_filter_type(uint8_t type)
return 0;
}
static inline uint8_t get_filter_addr_type(uint16_t src, uint16_t dst)
{
if (BLE_MESH_ADDR_IS_UNICAST(src)) {
if (BLE_MESH_ADDR_IS_UNICAST(dst) || BLE_MESH_ADDR_IS_GROUP(dst)) {
return HEARTBEAT_FILTER_WITH_BOTH;
} else {
return HEARTBEAT_FILTER_WITH_SRC;
}
} else {
return HEARTBEAT_FILTER_WITH_DST;
}
}
static int hb_filter_alloc(uint16_t src, uint16_t dst)
{
int i;
@@ -1612,7 +1594,6 @@ static int hb_filter_alloc(uint16_t src, uint16_t dst)
if (filter->src == BLE_MESH_ADDR_UNASSIGNED &&
filter->dst == BLE_MESH_ADDR_UNASSIGNED) {
filter->type = get_filter_addr_type(src, dst);
filter->src = src;
filter->dst = dst;
return 0;
@@ -1627,8 +1608,8 @@ static int hb_filter_add(uint16_t src, uint16_t dst)
{
int i;
if (!BLE_MESH_ADDR_IS_UNICAST(src) &&
!BLE_MESH_ADDR_IS_UNICAST(dst) && !BLE_MESH_ADDR_IS_GROUP(dst)) {
if (!(BLE_MESH_ADDR_IS_UNICAST(src) &&
(BLE_MESH_ADDR_IS_UNICAST(dst) || BLE_MESH_ADDR_IS_GROUP(dst)))) {
BT_ERR("Invalid filter address, src 0x%04x, dst 0x%04x", src, dst);
return -EINVAL;
}
@@ -1637,10 +1618,9 @@ static int hb_filter_add(uint16_t src, uint16_t dst)
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
if ((BLE_MESH_ADDR_IS_UNICAST(src) && filter->src == src) ||
((BLE_MESH_ADDR_IS_UNICAST(dst) || BLE_MESH_ADDR_IS_GROUP(dst)) &&
filter->dst == dst)) {
memset(filter, 0, sizeof(struct heartbeat_filter));
if (filter->src == src && filter->dst == dst) {
BT_WARN("Filter already exists, src 0x%04x dst 0x%04x", filter->src, filter->dst);
return 0;
}
}
@@ -1651,8 +1631,8 @@ static int hb_filter_remove(uint16_t src, uint16_t dst)
{
int i;
if (!BLE_MESH_ADDR_IS_UNICAST(src) &&
!BLE_MESH_ADDR_IS_UNICAST(dst) && !BLE_MESH_ADDR_IS_GROUP(dst)) {
if (!(BLE_MESH_ADDR_IS_UNICAST(src) &&
(BLE_MESH_ADDR_IS_UNICAST(dst) || BLE_MESH_ADDR_IS_GROUP(dst)))) {
BT_ERR("Invalid filter address, src 0x%04x, dst 0x%04x", src, dst);
return -EINVAL;
}
@@ -1660,9 +1640,7 @@ static int hb_filter_remove(uint16_t src, uint16_t dst)
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
if ((BLE_MESH_ADDR_IS_UNICAST(src) && filter->src == src) ||
((BLE_MESH_ADDR_IS_UNICAST(dst) || BLE_MESH_ADDR_IS_GROUP(dst)) &&
filter->dst == dst)) {
if (filter->src == src && filter->dst == dst) {
memset(filter, 0, sizeof(struct heartbeat_filter));
}
}
@@ -1689,26 +1667,8 @@ static bool filter_with_rejectlist(uint16_t hb_src, uint16_t hb_dst)
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
switch (filter->type) {
case HEARTBEAT_FILTER_WITH_SRC:
if (hb_src == filter->src) {
return true;
}
break;
case HEARTBEAT_FILTER_WITH_DST:
if (hb_dst == filter->dst) {
return true;
}
break;
case HEARTBEAT_FILTER_WITH_BOTH:
if (hb_src == filter->src && hb_dst == filter->dst) {
return true;
}
break;
default:
BT_DBG("Unknown filter addr type 0x%02x", filter->type);
break;
if (hb_src == filter->src && hb_dst == filter->dst) {
return true;
}
}
@@ -1721,26 +1681,8 @@ static bool filter_with_acceptlist(uint16_t hb_src, uint16_t hb_dst)
for (i = 0; i < ARRAY_SIZE(hb_rx.filter); i++) {
struct heartbeat_filter *filter = &hb_rx.filter[i];
switch (filter->type) {
case HEARTBEAT_FILTER_WITH_SRC:
if (hb_src == filter->src) {
return false;
}
break;
case HEARTBEAT_FILTER_WITH_DST:
if (hb_dst == filter->dst) {
return false;
}
break;
case HEARTBEAT_FILTER_WITH_BOTH:
if (hb_src == filter->src && hb_dst == filter->dst) {
return false;
}
break;
default:
BT_DBG("Unknown filter addr type 0x%02x", filter->type);
break;
if (hb_src == filter->src && hb_dst == filter->dst) {
return false;
}
}

View File

@@ -1318,8 +1318,8 @@ static void reset_link(const uint8_t idx, uint8_t reason)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Remove the link id from exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link[idx].link_id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link[idx].link_id);
#endif
/* Clear everything except the retransmit delayed work config */
@@ -1478,8 +1478,8 @@ static void send_link_open(const uint8_t idx)
#if defined(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN)
/* Add the link id into exceptional list */
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_ADD,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link[idx].link_id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_ADD,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link[idx].link_id);
#endif
bearer_ctl_send(idx, LINK_OPEN, link[idx].uuid, 16);
@@ -2725,7 +2725,8 @@ static void prov_retransmit(struct k_work *work)
#endif
if (k_uptime_get() - link[idx].tx.start > timeout) {
BT_WARN("Provisioner timeout, giving up transaction");
reset_link(idx, CLOSE_REASON_TIMEOUT);
/* Provisioner should send Link Close here */
close_link(idx, CLOSE_REASON_TIMEOUT);
return;
}
@@ -2866,6 +2867,12 @@ static void prov_msg_recv(const uint8_t idx)
return;
fail:
/**
* For the case MESH/PVNR/PROV/BV-10-C and MESH/PVNR/PROV/BI-14-C,
* provisioner should send transaction ack before closing the link.
*/
gen_prov_ack_send(idx, link[idx].rx.trans_id);
close_link(idx, CLOSE_REASON_FAILED);
return;
}
@@ -3338,8 +3345,8 @@ int bt_mesh_provisioner_prov_reset(bool erase)
#if CONFIG_BLE_MESH_PB_ADV
prov_clear_tx(i);
#if CONFIG_BLE_MESH_USE_DUPLICATE_SCAN
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_REMOVE,
BLE_MESH_EXCEP_INFO_MESH_LINK_ID, &link[i].link_id);
bt_mesh_update_exceptional_list(BLE_MESH_EXCEP_LIST_SUB_CODE_REMOVE,
BLE_MESH_EXCEP_LIST_TYPE_MESH_LINK_ID, &link[i].link_id);
#endif
memset(&link[i], 0, offsetof(struct prov_link, tx.retransmit));
link[i].pending_ack = XACT_NVAL;

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