Commit Graph

15402 Commits

Author SHA1 Message Date
Michael (XIAO Xufeng)
e1bd7b9d8f bootloader: create public bootloader_flash.h header
Move non-public functions into bootloader_flash_priv.h header
2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
9582cbe5b8 bootloader: fix the WRSR format for ISSI flash chips
1. The 2nd bootloader always call `rom_spiflash_unlock()`, but never help to clear the WEL bit when exit. This may cause system unstability.

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

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

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

   Status register bitmap of ISSI chip and GD chip:

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

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

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

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

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

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

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

Also move the execute_flash_command to be a bootloader API; move
implementation of spi_flash_wrap_set to the bootloader
2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
a130dcd5ec test_spiffs: increase test case stack size 2022-06-09 12:41:56 +08:00
Michael (XIAO Xufeng)
51584d4f2a spi_flash: partially move API functions out of IRAM 2022-06-09 12:41:56 +08:00
Jiang Jiang Jian
b6b7a59958 Merge branch 'bugfix/twai_esp32_errata_workarounds_backport_v4.2' into 'release/v4.2'
TWAI: Add FIFO overrun handling and ESP32 hardware errata workarounds + Refactor TWAI HAL to store state information  (backport v4.2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

See merge request espressif/esp-idf!17844
2022-04-21 15:47:04 +08:00
xiewenxiang
d976bbec08 esp_phy: Add IRAM_ATTR for phy i2c spinlock 2022-04-21 02:57:08 +08:00
Wang Meng Yang
d8105a565e Merge branch 'bugfix/fix_spp_initiator_connect_failed_v4.2' into 'release/v4.2'
Component_bt/Fix SPP initiator can not free resource when connection is failed[backport 4.2]

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

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

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

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

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

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

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

See merge request espressif/esp-idf!17699
2022-04-07 10:54:08 +08:00