Tim Cook [Sun, 26 Nov 2017 21:25:46 +0000 (16:25 -0500)]
n btm_sec_save_le_key() set BTM_SEC_LE_LINK_KEY_KNOWN (and BTM_SEC_LE_LINK_KEY_AUTHED if MITM was used) when process a local Long Term Key (key type BTM_LE_KEY_LENC). This is because these flags share bits with the BTM_SEC_FLAG_LKEY_KNOWN (and BTM_SEC_FLAG_LKEY_AUTHED) flag in btm_api.h. Without this code a link that is encrypted via SM pairing where only the local device exchanges the LTK (peer does not send its LTK) will not allow GATT operations that require encryption (request will be incorrectly rejected with insufficient authentication reason, regardless of if MITM is required).
Per Malmberg [Thu, 28 Dec 2017 14:21:00 +0000 (15:21 +0100)]
Removed logging from pthread conditional variable which completely drowned out any other logging and also had negative effects on the RMT due to sharing the same log system. Related to #1345 / TW#16842
wangmengyang [Thu, 28 Dec 2017 06:51:19 +0000 (14:51 +0800)]
component/bt: disable Secure Connections(Host Supported) of classic Bluetooth to workaround AES encryption issue in controller
1. ESP32 is found to suffer from AES encryption start/resume failure with specific device. Therefore temporarily disable BR/EDR Secure Connections for a workaround
2. BR/EDR Secure Connections is a feature for BT Classic introduced in Bluetooth 4.1. This change disables the setting of Secure Connections(Host Supported), and will result in the use of legacy authentication instead of secure authentication, and E0 encryption(legacy) instead of AES-CCM encryption. BLE security procedures are not affected.
Darian Leung [Mon, 18 Dec 2017 13:58:15 +0000 (21:58 +0800)]
freertos: prvCheckTasksWaitingTermination bugfix
Bugfix to prevent a self deleting no affinity task's memory from being freed by the
idle task of the other core before the self deleting no affinity task is able to context
switch out. prvCheckTasksWaitingTermination now checks if the task is still on
pxCurrentTCB before freeing task memory.
Jeroen Domburg [Tue, 19 Dec 2017 11:12:58 +0000 (19:12 +0800)]
Fix the clock subsystem so it doesn't undo the weird condition spiram_psram.c jams the enable/reset bits of SPI3 in when 80MHz mode is selected anymore
Yulong [Wed, 29 Nov 2017 06:23:21 +0000 (01:23 -0500)]
component/bt: Optimized broadcast callback function, send the callback function to the application after the controller confirms receipt of the broadcast start.
1. optimiz the ble stop adv callback function.
2. added the osi_mutex_unlock in the bta_gattc_wait4_service_change_ccc_cback function when the p_timer_param == NULL || p_conn == NULL.
Tian Hao [Tue, 12 Dec 2017 07:24:43 +0000 (15:24 +0800)]
component/bt : fix btdm mem release cause 0x3ffbbb28-0x3ffbdb28 add to region but should not.
1. fix the bug. Modify the condition that esp_bt_controller_mem_release() shoud be only called before esp_bt_controller_init() or after esp_bt_controller_deinit()
2. modify the example to use esp_bt_controller_mem_release()
krzychb [Thu, 7 Dec 2017 21:45:39 +0000 (22:45 +0100)]
1. Following https://esp32.com/viewtopic.php?f=14&t=3834 and https://github.com/espressif/esp-idf/issues/1351 updated information regarding selection of the main XTAL frequency. 2. Removed obsolete note about ': not a valid identifier...', as it does not show up anymore with the latests MSYS2 installation.
Ivan Grokhotkov [Fri, 8 Dec 2017 08:14:20 +0000 (16:14 +0800)]
time: rename time source option from FRC to "high-resolution timer"
libc time function now rely on esp_timer_get_time as the source of
high-resolution time, rather than FRC1 timer. Internally, on the ESP32
esp_timer implementation uses FRC2 timer.
- Change help text and labels in Kconfig to use "high-resolution timer"
instead of FRC1. Keep existing Kconfig option name to be backwards
compatible.
- Change references to "FRC1" in the source code to "FRC".
Ivan Grokhotkov [Fri, 8 Dec 2017 12:03:24 +0000 (20:03 +0800)]
vfs/fatfs: use structures with bit fields for FAT date/time
Replace explicit masks and shifts with bit fields when working with FATFS date and time representations. Also zero-initialize remaining members of struct tm.
A couple of typos referencing tx_ring_buf when rx_ring_buf, slv_tx_mux
instead of slv_rx_mux.
Also, I2C_ENTER_CRITICAL()/I2C_EXIT_CRITICAL() usage was not consistent.
Only some of the _set_ functions had them. Most of the _get_ function
had them? It is my understanding that they should be wrapped around
writes, not reads? (I think we still need the lock for reading pairs of consistent values)
Also, the ticks_to_wait timeout handling in i2c_master_cmd_begin() would
not handle integer rollover correctly.
Ivan Grokhotkov [Fri, 8 Dec 2017 04:23:54 +0000 (12:23 +0800)]
sdspi: use response timeout passed from upper layer
Previously SDSPI host driver would rely on retry count when waiting for
the card to read or write data. This caused different timeout times
depending on CPU frequency and card clock frequency. In practice, card
performance does not depend on these two factors.
This change uses timeout_ms field of sdmmc_command_t introduced
previously for SDMMC host.
Fixes https://esp32.com/viewtopic.php?f=2&t=3440&p=16037 and similar
issues related to SDSPI timeouts.
Ivan Grokhotkov [Fri, 8 Dec 2017 11:58:39 +0000 (19:58 +0800)]
vfs/fatfs: fix stat call failing when called for mount point
FATFS does not support f_stat call for drive root. When handling stat
for drive root, don't call f_stat and just return struct st with S_IFDIR
flag set.